; 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"

%"struct.Crypto::Hash" = type { [32 x i8] }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon.38 }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon.38 = type { i64, [8 x i8] }
%"class.Logging::LoggerMessage" = type <{ %"class.std::basic_ostream.base", %"class.std::basic_streambuf", ptr, %"class.std::__cxx11::basic_string", i32, [4 x i8], %"class.std::__cxx11::basic_string", %"class.boost::posix_time::ptime", i8, [7 x i8], %"class.std::basic_ios" }>
%"class.std::basic_ostream.base" = type { ptr }
%"class.std::basic_streambuf" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::locale" }
%"class.std::locale" = type { ptr }
%"class.boost::posix_time::ptime" = type { %"class.boost::date_time::base_time" }
%"class.boost::date_time::base_time" = type { %"struct.boost::date_time::counted_time_rep" }
%"struct.boost::date_time::counted_time_rep" = type { %"class.boost::date_time::int_adapter" }
%"class.boost::date_time::int_adapter" = type { i64 }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::vector.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::lock_guard" = type { ptr }
%"class.std::chrono::time_point" = type { %"class.std::chrono::duration" }
%"class.std::chrono::duration" = type { i64 }
%"struct.DynexCN::TransactionExtraMergeTag" = type { i64, %"struct.Crypto::Hash" }
%"class.std::chrono::duration.389" = type { i64 }
%"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.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 }
%"struct.DynexCN::Blockchain::TransactionIndex" = type { i32, i16 }
%"struct.std::_Setfill" = type { i8 }
%"struct.std::_Setw" = type { i32 }
%"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 }
%"class.Logging::LoggerRef" = type { ptr, %"class.std::__cxx11::basic_string" }
%"struct.DynexCN::block_verification_context" = type { i8, i8, i8, i8, i8 }
%"struct.DynexCN::Blockchain::TransactionEntry" = type { %"struct.DynexCN::Transaction", %"class.std::vector.234" }
%"class.std::vector.234" = type { %"struct.std::_Vector_base.235" }
%"struct.std::_Vector_base.235" = type { %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl" }
%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl" = type { %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl_data" = type { ptr, ptr, ptr }

@_ZN7DynexCNL9NULL_HASHE = external hidden global %"struct.Crypto::Hash", align 1
@_ZN7Logging7DEFAULTB5cxx11E = external global %"class.std::__cxx11::basic_string", align 8
@_ZN7Logging10BRIGHT_REDB5cxx11E = external global %"class.std::__cxx11::basic_string", align 8
@_ZN7Logging12BRIGHT_WHITEB5cxx11E = external global %"class.std::__cxx11::basic_string", align 8
@.str.30 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.104 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.105 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.116 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.117 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.180 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.208 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.209 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.210 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.211 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.212 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.213 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.214 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.215 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.216 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.217 = external hidden unnamed_addr constant [34 x i8], align 1
@_ZN7Logging14BRIGHT_MAGENTAB5cxx11E = external global %"class.std::__cxx11::basic_string", align 8
@.str.218 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.219 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.220 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.221 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.222 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.223 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.224 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.225 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.226 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.227 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.228 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.229 = external hidden unnamed_addr constant [4 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: mustprogress uwtable
declare dso_local noundef i32 @_ZN7DynexCN10Blockchain26getCurrentBlockchainHeightEv(ptr noundef nonnull align 8 dereferenceable(2636)) #3 align 2

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

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

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

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

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

; 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 #3 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: 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)) #5

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

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

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

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

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

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

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

; Function Attrs: nounwind
declare i64 @_ZNSt6chrono3_V212steady_clock3nowEv() #7

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7DynexCN13getObjectHashINS_11TransactionEEEN6Crypto4HashERKT_(ptr dead_on_unwind noalias writable sret(%"struct.Crypto::Hash") align 1, ptr noundef nonnull align 8 dereferenceable(112)) #3

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7DynexCN10Blockchain9getTailIdEv(ptr dead_on_unwind noalias writable sret(%"struct.Crypto::Hash") align 1, ptr noundef nonnull align 8 dereferenceable(2636)) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZNK7DynexCN10BlockIndex8hasBlockERKN6Crypto4HashE(ptr noundef nonnull align 8 dereferenceable(128), ptr noundef nonnull align 1 dereferenceable(32)) #3 align 2

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN7DynexCN10Blockchain29prevalidate_miner_transactionERKNS_5BlockEj(ptr noundef nonnull align 8 dereferenceable(2636), ptr noundef nonnull align 8 dereferenceable(384), i32 noundef) #3 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN7DynexCN10Blockchain26validate_miner_transactionERKNS_5BlockEjmmmRmRl(ptr noundef nonnull align 8 dereferenceable(2636), ptr noundef nonnull align 8 dereferenceable(384), i32 noundef, i64 noundef, i64 noundef, i64 noundef, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) #3 align 2

declare void @_ZNK7DynexCN8Currency12formatAmountB5cxx11Em(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(984), i64 noundef) #6

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

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) #5

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_(ptr noundef nonnull align 8 dereferenceable(8)) #5

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN7DynexCN10Blockchain24checkCumulativeBlockSizeERKN6Crypto4HashEmm(ptr noundef nonnull align 8 dereferenceable(2636), ptr noundef nonnull align 1 dereferenceable(32), i64 noundef, i64 noundef) #3 align 2

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

declare noundef zeroext i1 @_ZN7DynexCN26getMergeMiningTagFromExtraERKSt6vectorIhSaIhEERNS_24TransactionExtraMergeTagE(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(40)) #6

declare noundef zeroext i1 @_ZNK7DynexCN8Currency16checkProofOfWorkERN6Crypto10cn_contextERKNS_5BlockEmRNS1_4HashE(ptr noundef nonnull align 8 dereferenceable(984), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(384), i64 noundef, ptr noundef nonnull align 1 dereferenceable(32)) #6

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7DynexCN13toBinaryArrayINS_11TransactionEEESt6vectorIhSaIhEERKT_(ptr dead_on_unwind noalias writable sret(%"class.std::vector.162") align 8, ptr noundef nonnull align 8 dereferenceable(112)) #3

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

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(32)) #5

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN7DynexCN10Blockchain22checkTransactionInputsERKNS_11TransactionEPj(ptr noundef nonnull align 8 dereferenceable(2636), ptr noundef nonnull align 8 dereferenceable(112), ptr noundef) #3 align 2

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef i64 @_ZN7DynexCN19getObjectBinarySizeINS_11TransactionEEEmRKT_(ptr noundef nonnull align 8 dereferenceable(112)) #3

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_ZN7DynexCN10Blockchain9pushBlockERKNS_5BlockERKSt6vectorINS_11TransactionESaIS5_EERNS_26block_verification_contextE(ptr noundef nonnull align 8 dereferenceable(2636) %0, ptr noundef nonnull align 8 dereferenceable(384) %1, ptr noundef nonnull align 8 dereferenceable(24) %2, ptr noundef nonnull align 1 dereferenceable(5) %3) #3 align 2 personality ptr @__gxx_personality_v0 {
  %5 = alloca i1, align 1
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca ptr, align 8
  %9 = alloca ptr, align 8
  %10 = alloca %"class.std::lock_guard", align 8
  %11 = alloca %"class.std::chrono::time_point", align 8
  %12 = alloca %"struct.Crypto::Hash", align 1
  %13 = alloca ptr, align 8
  %14 = alloca i32, align 4
  %15 = alloca %"class.Logging::LoggerMessage", align 8
  %16 = alloca i32, align 4
  %17 = alloca %"struct.DynexCN::TransactionExtraMergeTag", align 8
  %18 = alloca %"class.Logging::LoggerMessage", align 8
  %19 = alloca %"struct.Crypto::Hash", align 1
  %20 = alloca %"class.Logging::LoggerMessage", align 8
  %21 = alloca %"struct.Crypto::Hash", align 1
  %22 = alloca %"class.Logging::LoggerMessage", align 8
  %23 = alloca %"class.std::chrono::time_point", align 8
  %24 = alloca i64, align 8
  %25 = alloca i64, align 8
  %26 = alloca %"class.std::chrono::duration.389", align 8
  %27 = alloca %"class.std::chrono::duration", align 8
  %28 = alloca %"class.std::chrono::time_point", align 8
  %29 = alloca %"class.Logging::LoggerMessage", align 8
  %30 = alloca %"class.std::chrono::time_point", align 8
  %31 = alloca %"struct.Crypto::Hash", align 1
  %32 = alloca i8, align 1
  %33 = alloca %"class.Logging::LoggerMessage", align 8
  %34 = alloca %"class.Logging::LoggerMessage", align 8
  %35 = alloca i64, align 8
  %36 = alloca %"class.std::chrono::duration.389", align 8
  %37 = alloca %"class.std::chrono::duration", align 8
  %38 = alloca %"class.std::chrono::time_point", align 8
  %39 = alloca %"class.Logging::LoggerMessage", align 8
  %40 = alloca %"struct.Crypto::Hash", align 1
  %41 = alloca %"struct.DynexCN::Blockchain::BlockEntry", align 8
  %42 = alloca %"struct.DynexCN::Blockchain::TransactionIndex", align 4
  %43 = alloca %"struct.DynexCN::Blockchain::TransactionIndex", align 4
  %44 = alloca i64, align 8
  %45 = alloca i64, align 8
  %46 = alloca i64, align 8
  %47 = alloca i64, align 8
  %48 = alloca ptr, align 8
  %49 = alloca i64, align 8
  %50 = alloca i64, align 8
  %51 = alloca %"class.std::vector.162", align 8
  %52 = alloca %"class.Logging::LoggerMessage", align 8
  %53 = alloca %"class.Logging::LoggerMessage", align 8
  %54 = alloca %"struct.DynexCN::Blockchain::TransactionIndex", align 4
  %55 = alloca i64, align 8
  %56 = alloca i64, align 8
  %57 = alloca i64, align 8
  %58 = alloca %"class.Logging::LoggerMessage", align 8
  %59 = alloca i64, align 8
  %60 = alloca %"class.Logging::LoggerMessage", align 8
  %61 = alloca i32, align 4
  %62 = alloca %"struct.std::_Setfill", align 1
  %63 = alloca %"struct.std::_Setw", align 4
  %64 = alloca i64, align 8
  %65 = alloca %"class.std::chrono::duration.389", align 8
  %66 = alloca %"class.std::chrono::duration", align 8
  %67 = alloca %"class.std::chrono::time_point", align 8
  %68 = alloca %"class.Logging::LoggerMessage", align 8
  %69 = alloca %"class.std::__cxx11::basic_string", align 8
  %70 = alloca %"class.std::__cxx11::basic_string", align 8
  store ptr %0, ptr %6, align 8, !tbaa !5
  store ptr %1, ptr %7, align 8, !tbaa !5
  store ptr %2, ptr %8, align 8, !tbaa !5
  store ptr %3, ptr %9, align 8, !tbaa !5
  %71 = load ptr, ptr %6, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #8
  %72 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %71, i32 0, i32 7
  call void @_ZNSt10lock_guardISt15recursive_mutexEC2ERS0_(ptr noundef nonnull align 8 dereferenceable(8) %10, ptr noundef nonnull align 8 dereferenceable(40) %72)
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #8
  %73 = call i64 @_ZNSt6chrono3_V212steady_clock3nowEv() #8
  %74 = getelementptr inbounds %"class.std::chrono::time_point", ptr %11, i32 0, i32 0
  %75 = getelementptr inbounds %"class.std::chrono::duration", ptr %74, i32 0, i32 0
  store i64 %73, ptr %75, align 8
  call void @llvm.lifetime.start.p0(i64 32, ptr %12) #8
  %76 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN7DynexCN14get_block_hashERKNS_5BlockE(ptr dead_on_unwind writable sret(%"struct.Crypto::Hash") align 1 %12, ptr noundef nonnull align 8 dereferenceable(384) %76)
          to label %77 unwind label %92

77:                                               ; preds = %4
  %78 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %71, i32 0, i32 19
  %79 = invoke noundef zeroext i1 @_ZNK7DynexCN10BlockIndex8hasBlockERKN6Crypto4HashE(ptr noundef nonnull align 8 dereferenceable(128) %78, ptr noundef nonnull align 1 dereferenceable(32) %12)
          to label %80 unwind label %92

80:                                               ; preds = %77
  br i1 %79, label %81, label %105

81:                                               ; preds = %80
  call void @llvm.lifetime.start.p0(i64 432, ptr %15) #8
  %82 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %71, i32 0, i32 33
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.Logging::LoggerMessage") align 8 %15, ptr noundef nonnull align 8 dereferenceable(40) %82, i32 noundef 1, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging10BRIGHT_REDB5cxx11E)
          to label %83 unwind label %96

83:                                               ; preds = %81
  %84 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA7_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %15, ptr noundef nonnull align 1 dereferenceable(7) @.str.180)
          to label %85 unwind label %100

85:                                               ; preds = %83
  %86 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEN6Crypto4HashEEOT_S5_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %84, ptr noundef nonnull align 1 dereferenceable(32) %12)
          to label %87 unwind label %100

87:                                               ; preds = %85
  %88 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA31_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %86, ptr noundef nonnull align 1 dereferenceable(31) @.str.208)
          to label %89 unwind label %100

89:                                               ; preds = %87
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %15) #8
  call void @llvm.lifetime.end.p0(i64 432, ptr %15) #8
  %90 = load ptr, ptr %9, align 8, !tbaa !5
  %91 = getelementptr inbounds %"struct.DynexCN::block_verification_context", ptr %90, i32 0, i32 1
  store i8 1, ptr %91, align 1, !tbaa !9
  store i1 false, ptr %5, align 1
  store i32 1, ptr %16, align 4
  br label %905

92:                                               ; preds = %112, %105, %77, %4
  %93 = landingpad { ptr, i32 }
          cleanup
  %94 = extractvalue { ptr, i32 } %93, 0
  store ptr %94, ptr %13, align 8
  %95 = extractvalue { ptr, i32 } %93, 1
  store i32 %95, ptr %14, align 4
  br label %907

96:                                               ; preds = %81
  %97 = landingpad { ptr, i32 }
          cleanup
  %98 = extractvalue { ptr, i32 } %97, 0
  store ptr %98, ptr %13, align 8
  %99 = extractvalue { ptr, i32 } %97, 1
  store i32 %99, ptr %14, align 4
  br label %104

100:                                              ; preds = %87, %85, %83
  %101 = landingpad { ptr, i32 }
          cleanup
  %102 = extractvalue { ptr, i32 } %101, 0
  store ptr %102, ptr %13, align 8
  %103 = extractvalue { ptr, i32 } %101, 1
  store i32 %103, ptr %14, align 4
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %15) #8
  br label %104

104:                                              ; preds = %100, %96
  call void @llvm.lifetime.end.p0(i64 432, ptr %15) #8
  br label %907

105:                                              ; preds = %80
  %106 = load ptr, ptr %7, align 8, !tbaa !5
  %107 = invoke noundef zeroext i1 @_ZN7DynexCN10Blockchain17checkBlockVersionERKNS_5BlockERKN6Crypto4HashE(ptr noundef nonnull align 8 dereferenceable(2636) %71, ptr noundef nonnull align 8 dereferenceable(384) %106, ptr noundef nonnull align 1 dereferenceable(32) %12)
          to label %108 unwind label %92

108:                                              ; preds = %105
  br i1 %107, label %112, label %109

109:                                              ; preds = %108
  %110 = load ptr, ptr %9, align 8, !tbaa !5
  %111 = getelementptr inbounds %"struct.DynexCN::block_verification_context", ptr %110, i32 0, i32 1
  store i8 1, ptr %111, align 1, !tbaa !9
  store i1 false, ptr %5, align 1
  store i32 1, ptr %16, align 4
  br label %905

112:                                              ; preds = %108
  %113 = load ptr, ptr %7, align 8, !tbaa !5
  %114 = invoke noundef zeroext i1 @_ZN7DynexCN10Blockchain20checkParentBlockSizeERKNS_5BlockERKN6Crypto4HashE(ptr noundef nonnull align 8 dereferenceable(2636) %71, ptr noundef nonnull align 8 dereferenceable(384) %113, ptr noundef nonnull align 1 dereferenceable(32) %12)
          to label %115 unwind label %92

115:                                              ; preds = %112
  br i1 %114, label %119, label %116

116:                                              ; preds = %115
  %117 = load ptr, ptr %9, align 8, !tbaa !5
  %118 = getelementptr inbounds %"struct.DynexCN::block_verification_context", ptr %117, i32 0, i32 1
  store i8 1, ptr %118, align 1, !tbaa !9
  store i1 false, ptr %5, align 1
  store i32 1, ptr %16, align 4
  br label %905

119:                                              ; preds = %115
  call void @llvm.lifetime.start.p0(i64 40, ptr %17) #8
  %120 = load ptr, ptr %7, align 8, !tbaa !5
  %121 = getelementptr inbounds %"struct.DynexCN::Block", ptr %120, i32 0, i32 2
  %122 = getelementptr inbounds %"struct.DynexCN::TransactionPrefix", ptr %121, i32 0, i32 4
  %123 = invoke noundef zeroext i1 @_ZN7DynexCN26getMergeMiningTagFromExtraERKSt6vectorIhSaIhEERNS_24TransactionExtraMergeTagE(ptr noundef nonnull align 8 dereferenceable(24) %122, ptr noundef nonnull align 8 dereferenceable(40) %17)
          to label %124 unwind label %136

124:                                              ; preds = %119
  br i1 %123, label %125, label %149

125:                                              ; preds = %124
  %126 = load ptr, ptr %7, align 8, !tbaa !5
  %127 = getelementptr inbounds %"struct.DynexCN::BlockHeader", ptr %126, i32 0, i32 0
  %128 = load i8, ptr %127, align 8, !tbaa !12
  %129 = zext i8 %128 to i32
  %130 = icmp sge i32 %129, 4
  br i1 %130, label %131, label %149

131:                                              ; preds = %125
  call void @llvm.lifetime.start.p0(i64 432, ptr %18) #8
  %132 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %71, i32 0, i32 33
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.Logging::LoggerMessage") align 8 %18, ptr noundef nonnull align 8 dereferenceable(40) %132, i32 noundef 1, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging10BRIGHT_REDB5cxx11E)
          to label %133 unwind label %140

133:                                              ; preds = %131
  %134 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA53_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %18, ptr noundef nonnull align 1 dereferenceable(53) @.str.105)
          to label %135 unwind label %144

135:                                              ; preds = %133
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %18) #8
  call void @llvm.lifetime.end.p0(i64 432, ptr %18) #8
  store i1 false, ptr %5, align 1
  store i32 1, ptr %16, align 4
  br label %903

136:                                              ; preds = %193, %119
  %137 = landingpad { ptr, i32 }
          cleanup
  %138 = extractvalue { ptr, i32 } %137, 0
  store ptr %138, ptr %13, align 8
  %139 = extractvalue { ptr, i32 } %137, 1
  store i32 %139, ptr %14, align 4
  br label %904

140:                                              ; preds = %131
  %141 = landingpad { ptr, i32 }
          cleanup
  %142 = extractvalue { ptr, i32 } %141, 0
  store ptr %142, ptr %13, align 8
  %143 = extractvalue { ptr, i32 } %141, 1
  store i32 %143, ptr %14, align 4
  br label %148

144:                                              ; preds = %133
  %145 = landingpad { ptr, i32 }
          cleanup
  %146 = extractvalue { ptr, i32 } %145, 0
  store ptr %146, ptr %13, align 8
  %147 = extractvalue { ptr, i32 } %145, 1
  store i32 %147, ptr %14, align 4
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %18) #8
  br label %148

148:                                              ; preds = %144, %140
  call void @llvm.lifetime.end.p0(i64 432, ptr %18) #8
  br label %904

149:                                              ; preds = %125, %124
  %150 = load ptr, ptr %7, align 8, !tbaa !5
  %151 = getelementptr inbounds %"struct.DynexCN::BlockHeader", ptr %150, i32 0, i32 4
  call void @llvm.lifetime.start.p0(i64 32, ptr %19) #8
  invoke void @_ZN7DynexCN10Blockchain9getTailIdEv(ptr dead_on_unwind writable sret(%"struct.Crypto::Hash") align 1 %19, ptr noundef nonnull align 8 dereferenceable(2636) %71)
          to label %152 unwind label %175

152:                                              ; preds = %149
  %153 = invoke noundef zeroext i1 @_ZN6CryptoneERKNS_4HashES2_(ptr noundef nonnull align 1 dereferenceable(32) %151, ptr noundef nonnull align 1 dereferenceable(32) %19)
          to label %154 unwind label %175

154:                                              ; preds = %152
  call void @llvm.lifetime.end.p0(i64 32, ptr %19) #8
  br i1 %153, label %155, label %193

155:                                              ; preds = %154
  call void @llvm.lifetime.start.p0(i64 432, ptr %20) #8
  %156 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %71, 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) %156, i32 noundef 3, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging12BRIGHT_WHITEB5cxx11E)
          to label %157 unwind label %179

157:                                              ; preds = %155
  %158 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA7_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %20, ptr noundef nonnull align 1 dereferenceable(7) @.str.180)
          to label %159 unwind label %183

159:                                              ; preds = %157
  %160 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEN6Crypto4HashEEOT_S5_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %158, ptr noundef nonnull align 1 dereferenceable(32) %12)
          to label %161 unwind label %183

161:                                              ; preds = %159
  %162 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA31_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %160, ptr noundef nonnull align 1 dereferenceable(31) @.str.209)
          to label %163 unwind label %183

163:                                              ; preds = %161
  %164 = load ptr, ptr %7, align 8, !tbaa !5
  %165 = getelementptr inbounds %"struct.DynexCN::BlockHeader", ptr %164, i32 0, i32 4
  %166 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEN6Crypto4HashEEOT_S5_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %162, ptr noundef nonnull align 1 dereferenceable(32) %165)
          to label %167 unwind label %183

167:                                              ; preds = %163
  %168 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA13_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %166, ptr noundef nonnull align 1 dereferenceable(13) @.str.82)
          to label %169 unwind label %183

169:                                              ; preds = %167
  call void @llvm.lifetime.start.p0(i64 32, ptr %21) #8
  invoke void @_ZN7DynexCN10Blockchain9getTailIdEv(ptr dead_on_unwind writable sret(%"struct.Crypto::Hash") align 1 %21, ptr noundef nonnull align 8 dereferenceable(2636) %71)
          to label %170 unwind label %187

170:                                              ; preds = %169
  %171 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEN6Crypto4HashEEOT_S5_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %168, ptr noundef nonnull align 1 dereferenceable(32) %21)
          to label %172 unwind label %187

172:                                              ; preds = %170
  call void @llvm.lifetime.end.p0(i64 32, ptr %21) #8
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %20) #8
  call void @llvm.lifetime.end.p0(i64 432, ptr %20) #8
  %173 = load ptr, ptr %9, align 8, !tbaa !5
  %174 = getelementptr inbounds %"struct.DynexCN::block_verification_context", ptr %173, i32 0, i32 1
  store i8 1, ptr %174, align 1, !tbaa !9
  store i1 false, ptr %5, align 1
  store i32 1, ptr %16, align 4
  br label %903

175:                                              ; preds = %152, %149
  %176 = landingpad { ptr, i32 }
          cleanup
  %177 = extractvalue { ptr, i32 } %176, 0
  store ptr %177, ptr %13, align 8
  %178 = extractvalue { ptr, i32 } %176, 1
  store i32 %178, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %19) #8
  br label %904

179:                                              ; preds = %155
  %180 = landingpad { ptr, i32 }
          cleanup
  %181 = extractvalue { ptr, i32 } %180, 0
  store ptr %181, ptr %13, align 8
  %182 = extractvalue { ptr, i32 } %180, 1
  store i32 %182, ptr %14, align 4
  br label %192

183:                                              ; preds = %167, %163, %161, %159, %157
  %184 = landingpad { ptr, i32 }
          cleanup
  %185 = extractvalue { ptr, i32 } %184, 0
  store ptr %185, ptr %13, align 8
  %186 = extractvalue { ptr, i32 } %184, 1
  store i32 %186, ptr %14, align 4
  br label %191

187:                                              ; preds = %170, %169
  %188 = landingpad { ptr, i32 }
          cleanup
  %189 = extractvalue { ptr, i32 } %188, 0
  store ptr %189, ptr %13, align 8
  %190 = extractvalue { ptr, i32 } %188, 1
  store i32 %190, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %21) #8
  br label %191

191:                                              ; preds = %187, %183
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %20) #8
  br label %192

192:                                              ; preds = %191, %179
  call void @llvm.lifetime.end.p0(i64 432, ptr %20) #8
  br label %904

193:                                              ; preds = %154
  %194 = load ptr, ptr %7, align 8, !tbaa !5
  %195 = invoke noundef zeroext i1 @_ZN7DynexCN10Blockchain26check_block_timestamp_mainERKNS_5BlockE(ptr noundef nonnull align 8 dereferenceable(2636) %71, ptr noundef nonnull align 8 dereferenceable(384) %194)
          to label %196 unwind label %136

196:                                              ; preds = %193
  br i1 %195, label %221, label %197

197:                                              ; preds = %196
  call void @llvm.lifetime.start.p0(i64 432, ptr %22) #8
  %198 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %71, i32 0, i32 33
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.Logging::LoggerMessage") align 8 %22, ptr noundef nonnull align 8 dereferenceable(40) %198, i32 noundef 3, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging12BRIGHT_WHITEB5cxx11E)
          to label %199 unwind label %212

199:                                              ; preds = %197
  %200 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA7_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %22, ptr noundef nonnull align 1 dereferenceable(7) @.str.180)
          to label %201 unwind label %216

201:                                              ; preds = %199
  %202 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEN6Crypto4HashEEOT_S5_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %200, ptr noundef nonnull align 1 dereferenceable(32) %12)
          to label %203 unwind label %216

203:                                              ; preds = %201
  %204 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA25_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %202, ptr noundef nonnull align 1 dereferenceable(25) @.str.210)
          to label %205 unwind label %216

205:                                              ; preds = %203
  %206 = load ptr, ptr %7, align 8, !tbaa !5
  %207 = getelementptr inbounds %"struct.DynexCN::BlockHeader", ptr %206, i32 0, i32 3
  %208 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEmEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %204, ptr noundef nonnull align 8 dereferenceable(8) %207)
          to label %209 unwind label %216

209:                                              ; preds = %205
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %22) #8
  call void @llvm.lifetime.end.p0(i64 432, ptr %22) #8
  %210 = load ptr, ptr %9, align 8, !tbaa !5
  %211 = getelementptr inbounds %"struct.DynexCN::block_verification_context", ptr %210, i32 0, i32 1
  store i8 1, ptr %211, align 1, !tbaa !9
  store i1 false, ptr %5, align 1
  store i32 1, ptr %16, align 4
  br label %903

212:                                              ; preds = %197
  %213 = landingpad { ptr, i32 }
          cleanup
  %214 = extractvalue { ptr, i32 } %213, 0
  store ptr %214, ptr %13, align 8
  %215 = extractvalue { ptr, i32 } %213, 1
  store i32 %215, ptr %14, align 4
  br label %220

216:                                              ; preds = %205, %203, %201, %199
  %217 = landingpad { ptr, i32 }
          cleanup
  %218 = extractvalue { ptr, i32 } %217, 0
  store ptr %218, ptr %13, align 8
  %219 = extractvalue { ptr, i32 } %217, 1
  store i32 %219, ptr %14, align 4
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %22) #8
  br label %220

220:                                              ; preds = %216, %212
  call void @llvm.lifetime.end.p0(i64 432, ptr %22) #8
  br label %904

221:                                              ; preds = %196
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #8
  %222 = call i64 @_ZNSt6chrono3_V212steady_clock3nowEv() #8
  %223 = getelementptr inbounds %"class.std::chrono::time_point", ptr %23, i32 0, i32 0
  %224 = getelementptr inbounds %"class.std::chrono::duration", ptr %223, i32 0, i32 0
  store i64 %222, ptr %224, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #8
  %225 = invoke noundef i64 @_ZN7DynexCN10Blockchain25getDifficultyForNextBlockEv(ptr noundef nonnull align 8 dereferenceable(2636) %71)
          to label %226 unwind label %245

226:                                              ; preds = %221
  store i64 %225, ptr %24, align 8, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #8
  %227 = call i64 @_ZNSt6chrono3_V212steady_clock3nowEv() #8
  %228 = getelementptr inbounds %"class.std::chrono::time_point", ptr %28, i32 0, i32 0
  %229 = getelementptr inbounds %"class.std::chrono::duration", ptr %228, i32 0, i32 0
  store i64 %227, ptr %229, align 8
  %230 = invoke i64 @_ZNSt6chronomiINS_3_V212steady_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE(ptr noundef nonnull align 8 dereferenceable(8) %28, ptr noundef nonnull align 8 dereferenceable(8) %23)
          to label %231 unwind label %249

231:                                              ; preds = %226
  %232 = getelementptr inbounds %"class.std::chrono::duration", ptr %27, i32 0, i32 0
  store i64 %230, ptr %232, align 8
  %233 = invoke i64 @_ZNSt6chrono13duration_castINS_8durationIlSt5ratioILl1ELl1000EEEElS2_ILl1ELl1000000000EEEENSt9enable_ifIXsr13__is_durationIT_EE5valueES7_E4typeERKNS1_IT0_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %27)
          to label %234 unwind label %249

234:                                              ; preds = %231
  %235 = getelementptr inbounds %"class.std::chrono::duration.389", ptr %26, i32 0, i32 0
  store i64 %233, ptr %235, align 8
  %236 = invoke noundef i64 @_ZNKSt6chrono8durationIlSt5ratioILl1ELl1000EEE5countEv(ptr noundef nonnull align 8 dereferenceable(8) %26)
          to label %237 unwind label %249

237:                                              ; preds = %234
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #8
  store i64 %236, ptr %25, align 8, !tbaa !17
  %238 = load i64, ptr %24, align 8, !tbaa !17
  %239 = icmp ne i64 %238, 0
  br i1 %239, label %262, label %240

240:                                              ; preds = %237
  call void @llvm.lifetime.start.p0(i64 432, ptr %29) #8
  %241 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %71, 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) %241, i32 noundef 1, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging10BRIGHT_REDB5cxx11E)
          to label %242 unwind label %253

242:                                              ; preds = %240
  %243 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA40_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %29, ptr noundef nonnull align 1 dereferenceable(40) @.str.211)
          to label %244 unwind label %257

244:                                              ; preds = %242
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %29) #8
  call void @llvm.lifetime.end.p0(i64 432, ptr %29) #8
  store i1 false, ptr %5, align 1
  store i32 1, ptr %16, align 4
  br label %900

245:                                              ; preds = %221
  %246 = landingpad { ptr, i32 }
          cleanup
  %247 = extractvalue { ptr, i32 } %246, 0
  store ptr %247, ptr %13, align 8
  %248 = extractvalue { ptr, i32 } %246, 1
  store i32 %248, ptr %14, align 4
  br label %902

249:                                              ; preds = %234, %231, %226
  %250 = landingpad { ptr, i32 }
          cleanup
  %251 = extractvalue { ptr, i32 } %250, 0
  store ptr %251, ptr %13, align 8
  %252 = extractvalue { ptr, i32 } %250, 1
  store i32 %252, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #8
  br label %901

253:                                              ; preds = %240
  %254 = landingpad { ptr, i32 }
          cleanup
  %255 = extractvalue { ptr, i32 } %254, 0
  store ptr %255, ptr %13, align 8
  %256 = extractvalue { ptr, i32 } %254, 1
  store i32 %256, ptr %14, align 4
  br label %261

257:                                              ; preds = %242
  %258 = landingpad { ptr, i32 }
          cleanup
  %259 = extractvalue { ptr, i32 } %258, 0
  store ptr %259, ptr %13, align 8
  %260 = extractvalue { ptr, i32 } %258, 1
  store i32 %260, ptr %14, align 4
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %29) #8
  br label %261

261:                                              ; preds = %257, %253
  call void @llvm.lifetime.end.p0(i64 432, ptr %29) #8
  br label %901

262:                                              ; preds = %237
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #8
  %263 = call i64 @_ZNSt6chrono3_V212steady_clock3nowEv() #8
  %264 = getelementptr inbounds %"class.std::chrono::time_point", ptr %30, i32 0, i32 0
  %265 = getelementptr inbounds %"class.std::chrono::duration", ptr %264, i32 0, i32 0
  store i64 %263, ptr %265, align 8
  call void @llvm.lifetime.start.p0(i64 32, ptr %31) #8
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %31, ptr align 1 @_ZN7DynexCNL9NULL_HASHE, i64 32, i1 false), !tbaa.struct !18
  call void @llvm.lifetime.start.p0(i64 1, ptr %32) #8
  %266 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %71, i32 0, i32 15
  %267 = invoke noundef i32 @_ZN7DynexCN10Blockchain26getCurrentBlockchainHeightEv(ptr noundef nonnull align 8 dereferenceable(2636) %71)
          to label %268 unwind label %287

268:                                              ; preds = %262
  %269 = invoke noundef zeroext i1 @_ZNK7DynexCN11Checkpoints21is_in_checkpoint_zoneEj(ptr noundef nonnull align 8 dereferenceable(88) %266, i32 noundef %267)
          to label %270 unwind label %287

270:                                              ; preds = %268
  %271 = zext i1 %269 to i8
  store i8 %271, ptr %32, align 1, !tbaa !20
  %272 = load i8, ptr %32, align 1, !tbaa !20, !range !21, !noundef !22
  %273 = trunc i8 %272 to i1
  br i1 %273, label %274, label %301

274:                                              ; preds = %270
  %275 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %71, i32 0, i32 15
  %276 = invoke noundef i32 @_ZN7DynexCN10Blockchain26getCurrentBlockchainHeightEv(ptr noundef nonnull align 8 dereferenceable(2636) %71)
          to label %277 unwind label %287

277:                                              ; preds = %274
  %278 = invoke noundef zeroext i1 @_ZNK7DynexCN11Checkpoints11check_blockEjRKN6Crypto4HashE(ptr noundef nonnull align 8 dereferenceable(88) %275, i32 noundef %276, ptr noundef nonnull align 1 dereferenceable(32) %12)
          to label %279 unwind label %287

279:                                              ; preds = %277
  br i1 %278, label %300, label %280

280:                                              ; preds = %279
  call void @llvm.lifetime.start.p0(i64 432, ptr %33) #8
  %281 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %71, 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) %281, i32 noundef 1, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging10BRIGHT_REDB5cxx11E)
          to label %282 unwind label %291

282:                                              ; preds = %280
  %283 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA29_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %33, ptr noundef nonnull align 1 dereferenceable(29) @.str.104)
          to label %284 unwind label %295

284:                                              ; preds = %282
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %33) #8
  call void @llvm.lifetime.end.p0(i64 432, ptr %33) #8
  %285 = load ptr, ptr %9, align 8, !tbaa !5
  %286 = getelementptr inbounds %"struct.DynexCN::block_verification_context", ptr %285, i32 0, i32 1
  store i8 1, ptr %286, align 1, !tbaa !9
  store i1 false, ptr %5, align 1
  store i32 1, ptr %16, align 4
  br label %898

287:                                              ; preds = %301, %277, %274, %268, %262
  %288 = landingpad { ptr, i32 }
          cleanup
  %289 = extractvalue { ptr, i32 } %288, 0
  store ptr %289, ptr %13, align 8
  %290 = extractvalue { ptr, i32 } %288, 1
  store i32 %290, ptr %14, align 4
  br label %899

291:                                              ; preds = %280
  %292 = landingpad { ptr, i32 }
          cleanup
  %293 = extractvalue { ptr, i32 } %292, 0
  store ptr %293, ptr %13, align 8
  %294 = extractvalue { ptr, i32 } %292, 1
  store i32 %294, ptr %14, align 4
  br label %299

295:                                              ; preds = %282
  %296 = landingpad { ptr, i32 }
          cleanup
  %297 = extractvalue { ptr, i32 } %296, 0
  store ptr %297, ptr %13, align 8
  %298 = extractvalue { ptr, i32 } %296, 1
  store i32 %298, ptr %14, align 4
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %33) #8
  br label %299

299:                                              ; preds = %295, %291
  call void @llvm.lifetime.end.p0(i64 432, ptr %33) #8
  br label %899

300:                                              ; preds = %279
  br label %336

301:                                              ; preds = %270
  %302 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %71, i32 0, i32 5
  %303 = load ptr, ptr %302, align 8, !tbaa !23
  %304 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %71, i32 0, i32 8
  %305 = load ptr, ptr %7, align 8, !tbaa !5
  %306 = load i64, ptr %24, align 8, !tbaa !17
  %307 = invoke noundef zeroext i1 @_ZNK7DynexCN8Currency16checkProofOfWorkERN6Crypto10cn_contextERKNS_5BlockEmRNS1_4HashE(ptr noundef nonnull align 8 dereferenceable(984) %303, ptr noundef nonnull align 8 dereferenceable(8) %304, ptr noundef nonnull align 8 dereferenceable(384) %305, i64 noundef %306, ptr noundef nonnull align 1 dereferenceable(32) %31)
          to label %308 unwind label %287

308:                                              ; preds = %301
  br i1 %307, label %335, label %309

309:                                              ; preds = %308
  call void @llvm.lifetime.start.p0(i64 432, ptr %34) #8
  %310 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %71, 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) %310, i32 noundef 3, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging12BRIGHT_WHITEB5cxx11E)
          to label %311 unwind label %326

311:                                              ; preds = %309
  %312 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA7_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %34, ptr noundef nonnull align 1 dereferenceable(7) @.str.180)
          to label %313 unwind label %330

313:                                              ; preds = %311
  %314 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEN6Crypto4HashEEOT_S5_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %312, ptr noundef nonnull align 1 dereferenceable(32) %12)
          to label %315 unwind label %330

315:                                              ; preds = %313
  %316 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA31_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %314, ptr noundef nonnull align 1 dereferenceable(31) @.str.212)
          to label %317 unwind label %330

317:                                              ; preds = %315
  %318 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEN6Crypto4HashEEOT_S5_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %316, ptr noundef nonnull align 1 dereferenceable(32) %31)
          to label %319 unwind label %330

319:                                              ; preds = %317
  %320 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA24_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %318, ptr noundef nonnull align 1 dereferenceable(24) @.str.213)
          to label %321 unwind label %330

321:                                              ; preds = %319
  %322 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEmEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %320, ptr noundef nonnull align 8 dereferenceable(8) %24)
          to label %323 unwind label %330

323:                                              ; preds = %321
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %34) #8
  call void @llvm.lifetime.end.p0(i64 432, ptr %34) #8
  %324 = load ptr, ptr %9, align 8, !tbaa !5
  %325 = getelementptr inbounds %"struct.DynexCN::block_verification_context", ptr %324, i32 0, i32 1
  store i8 1, ptr %325, align 1, !tbaa !9
  store i1 false, ptr %5, align 1
  store i32 1, ptr %16, align 4
  br label %898

326:                                              ; preds = %309
  %327 = landingpad { ptr, i32 }
          cleanup
  %328 = extractvalue { ptr, i32 } %327, 0
  store ptr %328, ptr %13, align 8
  %329 = extractvalue { ptr, i32 } %327, 1
  store i32 %329, ptr %14, align 4
  br label %334

330:                                              ; preds = %321, %319, %317, %315, %313, %311
  %331 = landingpad { ptr, i32 }
          cleanup
  %332 = extractvalue { ptr, i32 } %331, 0
  store ptr %332, ptr %13, align 8
  %333 = extractvalue { ptr, i32 } %331, 1
  store i32 %333, ptr %14, align 4
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %34) #8
  br label %334

334:                                              ; preds = %330, %326
  call void @llvm.lifetime.end.p0(i64 432, ptr %34) #8
  br label %899

335:                                              ; preds = %308
  br label %336

336:                                              ; preds = %335, %300
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #8
  %337 = call i64 @_ZNSt6chrono3_V212steady_clock3nowEv() #8
  %338 = getelementptr inbounds %"class.std::chrono::time_point", ptr %38, i32 0, i32 0
  %339 = getelementptr inbounds %"class.std::chrono::duration", ptr %338, i32 0, i32 0
  store i64 %337, ptr %339, align 8
  %340 = invoke i64 @_ZNSt6chronomiINS_3_V212steady_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE(ptr noundef nonnull align 8 dereferenceable(8) %38, ptr noundef nonnull align 8 dereferenceable(8) %30)
          to label %341 unwind label %366

341:                                              ; preds = %336
  %342 = getelementptr inbounds %"class.std::chrono::duration", ptr %37, i32 0, i32 0
  store i64 %340, ptr %342, align 8
  %343 = invoke i64 @_ZNSt6chrono13duration_castINS_8durationIlSt5ratioILl1ELl1000EEEElS2_ILl1ELl1000000000EEEENSt9enable_ifIXsr13__is_durationIT_EE5valueES7_E4typeERKNS1_IT0_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %37)
          to label %344 unwind label %366

344:                                              ; preds = %341
  %345 = getelementptr inbounds %"class.std::chrono::duration.389", ptr %36, i32 0, i32 0
  store i64 %343, ptr %345, align 8
  %346 = invoke noundef i64 @_ZNKSt6chrono8durationIlSt5ratioILl1ELl1000EEE5countEv(ptr noundef nonnull align 8 dereferenceable(8) %36)
          to label %347 unwind label %366

347:                                              ; preds = %344
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #8
  store i64 %346, ptr %35, align 8, !tbaa !17
  %348 = load ptr, ptr %7, align 8, !tbaa !5
  %349 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %71, i32 0, i32 18
  %350 = invoke noundef i64 @_ZNK13SwappedVectorIN7DynexCN10Blockchain10BlockEntryEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(1184) %349)
          to label %351 unwind label %370

351:                                              ; preds = %347
  %352 = trunc i64 %350 to i32
  %353 = invoke noundef zeroext i1 @_ZN7DynexCN10Blockchain29prevalidate_miner_transactionERKNS_5BlockEj(ptr noundef nonnull align 8 dereferenceable(2636) %71, ptr noundef nonnull align 8 dereferenceable(384) %348, i32 noundef %352)
          to label %354 unwind label %370

354:                                              ; preds = %351
  br i1 %353, label %383, label %355

355:                                              ; preds = %354
  call void @llvm.lifetime.start.p0(i64 432, ptr %39) #8
  %356 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %71, i32 0, i32 33
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.Logging::LoggerMessage") align 8 %39, ptr noundef nonnull align 8 dereferenceable(40) %356, i32 noundef 3, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging12BRIGHT_WHITEB5cxx11E)
          to label %357 unwind label %374

357:                                              ; preds = %355
  %358 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA7_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %39, ptr noundef nonnull align 1 dereferenceable(7) @.str.180)
          to label %359 unwind label %378

359:                                              ; preds = %357
  %360 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEN6Crypto4HashEEOT_S5_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %358, ptr noundef nonnull align 1 dereferenceable(32) %12)
          to label %361 unwind label %378

361:                                              ; preds = %359
  %362 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA30_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %360, ptr noundef nonnull align 1 dereferenceable(30) @.str.214)
          to label %363 unwind label %378

363:                                              ; preds = %361
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %39) #8
  call void @llvm.lifetime.end.p0(i64 432, ptr %39) #8
  %364 = load ptr, ptr %9, align 8, !tbaa !5
  %365 = getelementptr inbounds %"struct.DynexCN::block_verification_context", ptr %364, i32 0, i32 1
  store i8 1, ptr %365, align 1, !tbaa !9
  store i1 false, ptr %5, align 1
  store i32 1, ptr %16, align 4
  br label %896

366:                                              ; preds = %344, %341, %336
  %367 = landingpad { ptr, i32 }
          cleanup
  %368 = extractvalue { ptr, i32 } %367, 0
  store ptr %368, ptr %13, align 8
  %369 = extractvalue { ptr, i32 } %367, 1
  store i32 %369, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #8
  br label %897

370:                                              ; preds = %351, %347
  %371 = landingpad { ptr, i32 }
          cleanup
  %372 = extractvalue { ptr, i32 } %371, 0
  store ptr %372, ptr %13, align 8
  %373 = extractvalue { ptr, i32 } %371, 1
  store i32 %373, ptr %14, align 4
  br label %897

374:                                              ; preds = %355
  %375 = landingpad { ptr, i32 }
          cleanup
  %376 = extractvalue { ptr, i32 } %375, 0
  store ptr %376, ptr %13, align 8
  %377 = extractvalue { ptr, i32 } %375, 1
  store i32 %377, ptr %14, align 4
  br label %382

378:                                              ; preds = %361, %359, %357
  %379 = landingpad { ptr, i32 }
          cleanup
  %380 = extractvalue { ptr, i32 } %379, 0
  store ptr %380, ptr %13, align 8
  %381 = extractvalue { ptr, i32 } %379, 1
  store i32 %381, ptr %14, align 4
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %39) #8
  br label %382

382:                                              ; preds = %378, %374
  call void @llvm.lifetime.end.p0(i64 432, ptr %39) #8
  br label %897

383:                                              ; preds = %354
  call void @llvm.lifetime.start.p0(i64 32, ptr %40) #8
  %384 = load ptr, ptr %7, align 8, !tbaa !5
  %385 = getelementptr inbounds %"struct.DynexCN::Block", ptr %384, i32 0, i32 2
  invoke void @_ZN7DynexCN13getObjectHashINS_11TransactionEEEN6Crypto4HashERKT_(ptr dead_on_unwind writable sret(%"struct.Crypto::Hash") align 1 %40, ptr noundef nonnull align 8 dereferenceable(112) %385)
          to label %386 unwind label %420

386:                                              ; preds = %383
  call void @llvm.lifetime.start.p0(i64 440, ptr %41) #8
  call void @_ZN7DynexCN10Blockchain10BlockEntryC2Ev(ptr noundef nonnull align 8 dereferenceable(440) %41) #8
  %387 = load ptr, ptr %7, align 8, !tbaa !5
  %388 = getelementptr inbounds %"struct.DynexCN::Blockchain::BlockEntry", ptr %41, i32 0, i32 0
  %389 = invoke noundef nonnull align 8 dereferenceable(384) ptr @_ZN7DynexCN5BlockaSERKS0_(ptr noundef nonnull align 8 dereferenceable(384) %388, ptr noundef nonnull align 8 dereferenceable(384) %387)
          to label %390 unwind label %424

390:                                              ; preds = %386
  %391 = getelementptr inbounds %"struct.DynexCN::Blockchain::BlockEntry", ptr %41, i32 0, i32 5
  invoke void @_ZNSt6vectorIN7DynexCN10Blockchain16TransactionEntryESaIS2_EE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %391, i64 noundef 1)
          to label %392 unwind label %424

392:                                              ; preds = %390
  %393 = load ptr, ptr %7, align 8, !tbaa !5
  %394 = getelementptr inbounds %"struct.DynexCN::Block", ptr %393, i32 0, i32 2
  %395 = getelementptr inbounds %"struct.DynexCN::Blockchain::BlockEntry", ptr %41, i32 0, i32 5
  %396 = call noundef nonnull align 8 dereferenceable(136) ptr @_ZNSt6vectorIN7DynexCN10Blockchain16TransactionEntryESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %395, i64 noundef 0) #8
  %397 = getelementptr inbounds %"struct.DynexCN::Blockchain::TransactionEntry", ptr %396, i32 0, i32 0
  %398 = invoke noundef nonnull align 8 dereferenceable(112) ptr @_ZN7DynexCN11TransactionaSERKS0_(ptr noundef nonnull align 8 dereferenceable(112) %397, ptr noundef nonnull align 8 dereferenceable(112) %394)
          to label %399 unwind label %424

399:                                              ; preds = %392
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #8
  %400 = getelementptr inbounds %"struct.DynexCN::Blockchain::TransactionIndex", ptr %42, i32 0, i32 0
  %401 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %71, i32 0, i32 18
  %402 = invoke noundef i64 @_ZNK13SwappedVectorIN7DynexCN10Blockchain10BlockEntryEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(1184) %401)
          to label %403 unwind label %428

403:                                              ; preds = %399
  %404 = trunc i64 %402 to i32
  store i32 %404, ptr %400, align 4, !tbaa !161
  %405 = getelementptr inbounds %"struct.DynexCN::Blockchain::TransactionIndex", ptr %42, i32 0, i32 1
  store i16 0, ptr %405, align 4, !tbaa !164
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %43, ptr align 4 %42, i64 8, i1 false), !tbaa.struct !165
  %406 = load i64, ptr %43, align 4
  %407 = invoke noundef zeroext i1 @_ZN7DynexCN10Blockchain15pushTransactionERNS0_10BlockEntryERKN6Crypto4HashENS0_16TransactionIndexE(ptr noundef nonnull align 8 dereferenceable(2636) %71, ptr noundef nonnull align 8 dereferenceable(440) %41, ptr noundef nonnull align 1 dereferenceable(32) %40, i64 %406)
          to label %408 unwind label %428

408:                                              ; preds = %403
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #8
  %409 = load ptr, ptr %7, align 8, !tbaa !5
  %410 = getelementptr inbounds %"struct.DynexCN::Block", ptr %409, i32 0, i32 2
  %411 = invoke noundef i64 @_ZN7DynexCN19getObjectBinarySizeINS_11TransactionEEEmRKT_(ptr noundef nonnull align 8 dereferenceable(112) %410)
          to label %412 unwind label %432

412:                                              ; preds = %408
  store i64 %411, ptr %44, align 8, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #8
  %413 = load i64, ptr %44, align 8, !tbaa !17
  store i64 %413, ptr %45, align 8, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #8
  store i64 0, ptr %46, align 8, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #8
  store i64 0, ptr %47, align 8, !tbaa !17
  br label %414

414:                                              ; preds = %564, %412
  %415 = load i64, ptr %47, align 8, !tbaa !17
  %416 = load ptr, ptr %8, align 8, !tbaa !5
  %417 = call noundef i64 @_ZNKSt6vectorIN7DynexCN11TransactionESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %416) #8
  %418 = icmp ult i64 %415, %417
  br i1 %418, label %436, label %419

419:                                              ; preds = %414
  store i32 2, ptr %16, align 4
  br label %569

420:                                              ; preds = %383
  %421 = landingpad { ptr, i32 }
          cleanup
  %422 = extractvalue { ptr, i32 } %421, 0
  store ptr %422, ptr %13, align 8
  %423 = extractvalue { ptr, i32 } %421, 1
  store i32 %423, ptr %14, align 4
  br label %895

424:                                              ; preds = %392, %390, %386
  %425 = landingpad { ptr, i32 }
          cleanup
  %426 = extractvalue { ptr, i32 } %425, 0
  store ptr %426, ptr %13, align 8
  %427 = extractvalue { ptr, i32 } %425, 1
  store i32 %427, ptr %14, align 4
  br label %894

428:                                              ; preds = %403, %399
  %429 = landingpad { ptr, i32 }
          cleanup
  %430 = extractvalue { ptr, i32 } %429, 0
  store ptr %430, ptr %13, align 8
  %431 = extractvalue { ptr, i32 } %429, 1
  store i32 %431, ptr %14, align 4
  br label %893

432:                                              ; preds = %408
  %433 = landingpad { ptr, i32 }
          cleanup
  %434 = extractvalue { ptr, i32 } %433, 0
  store ptr %434, ptr %13, align 8
  %435 = extractvalue { ptr, i32 } %433, 1
  store i32 %435, ptr %14, align 4
  br label %892

436:                                              ; preds = %414
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #8
  %437 = load ptr, ptr %7, align 8, !tbaa !5
  %438 = getelementptr inbounds %"struct.DynexCN::Block", ptr %437, i32 0, i32 3
  %439 = load i64, ptr %47, align 8, !tbaa !17
  %440 = call noundef nonnull align 1 dereferenceable(32) ptr @_ZNKSt6vectorIN6Crypto4HashESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %438, i64 noundef %439) #8
  store ptr %440, ptr %48, align 8, !tbaa !5
  %441 = getelementptr inbounds %"struct.DynexCN::Blockchain::BlockEntry", ptr %41, i32 0, i32 5
  %442 = getelementptr inbounds %"struct.DynexCN::Blockchain::BlockEntry", ptr %41, i32 0, i32 5
  %443 = call noundef i64 @_ZNKSt6vectorIN7DynexCN10Blockchain16TransactionEntryESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %442) #8
  %444 = add i64 %443, 1
  invoke void @_ZNSt6vectorIN7DynexCN10Blockchain16TransactionEntryESaIS2_EE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %441, i64 noundef %444)
          to label %445 unwind label %491

445:                                              ; preds = %436
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #8
  store i64 0, ptr %49, align 8, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #8
  store i64 0, ptr %50, align 8, !tbaa !17
  %446 = load ptr, ptr %8, align 8, !tbaa !5
  %447 = load i64, ptr %47, align 8, !tbaa !17
  %448 = call noundef nonnull align 8 dereferenceable(112) ptr @_ZNKSt6vectorIN7DynexCN11TransactionESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %446, i64 noundef %447) #8
  %449 = getelementptr inbounds %"struct.DynexCN::Blockchain::BlockEntry", ptr %41, i32 0, i32 5
  %450 = call noundef nonnull align 8 dereferenceable(136) ptr @_ZNSt6vectorIN7DynexCN10Blockchain16TransactionEntryESaIS2_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %449) #8
  %451 = getelementptr inbounds %"struct.DynexCN::Blockchain::TransactionEntry", ptr %450, i32 0, i32 0
  %452 = invoke noundef nonnull align 8 dereferenceable(112) ptr @_ZN7DynexCN11TransactionaSERKS0_(ptr noundef nonnull align 8 dereferenceable(112) %451, ptr noundef nonnull align 8 dereferenceable(112) %448)
          to label %453 unwind label %495

453:                                              ; preds = %445
  call void @llvm.lifetime.start.p0(i64 24, ptr %51) #8
  %454 = getelementptr inbounds %"struct.DynexCN::Blockchain::BlockEntry", ptr %41, i32 0, i32 5
  %455 = call noundef nonnull align 8 dereferenceable(136) ptr @_ZNSt6vectorIN7DynexCN10Blockchain16TransactionEntryESaIS2_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %454) #8
  %456 = getelementptr inbounds %"struct.DynexCN::Blockchain::TransactionEntry", ptr %455, i32 0, i32 0
  invoke void @_ZN7DynexCN13toBinaryArrayINS_11TransactionEEESt6vectorIhSaIhEERKT_(ptr dead_on_unwind writable sret(%"class.std::vector.162") align 8 %51, ptr noundef nonnull align 8 dereferenceable(112) %456)
          to label %457 unwind label %499

457:                                              ; preds = %453
  %458 = call noundef i64 @_ZNKSt6vectorIhSaIhEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %51) #8
  store i64 %458, ptr %49, align 8, !tbaa !17
  call void @_ZNSt6vectorIhSaIhEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %51) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %51) #8
  %459 = getelementptr inbounds %"struct.DynexCN::Blockchain::BlockEntry", ptr %41, i32 0, i32 5
  %460 = call noundef nonnull align 8 dereferenceable(136) ptr @_ZNSt6vectorIN7DynexCN10Blockchain16TransactionEntryESaIS2_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %459) #8
  %461 = getelementptr inbounds %"struct.DynexCN::Blockchain::TransactionEntry", ptr %460, i32 0, i32 0
  %462 = invoke noundef i64 @_ZN7DynexCN14getInputAmountERKNS_11TransactionE(ptr noundef nonnull align 8 dereferenceable(112) %461)
          to label %463 unwind label %495

463:                                              ; preds = %457
  %464 = getelementptr inbounds %"struct.DynexCN::Blockchain::BlockEntry", ptr %41, i32 0, i32 5
  %465 = call noundef nonnull align 8 dereferenceable(136) ptr @_ZNSt6vectorIN7DynexCN10Blockchain16TransactionEntryESaIS2_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %464) #8
  %466 = getelementptr inbounds %"struct.DynexCN::Blockchain::TransactionEntry", ptr %465, i32 0, i32 0
  %467 = invoke noundef i64 @_ZN7DynexCN15getOutputAmountERKNS_11TransactionE(ptr noundef nonnull align 8 dereferenceable(112) %466)
          to label %468 unwind label %495

468:                                              ; preds = %463
  %469 = sub i64 %462, %467
  store i64 %469, ptr %50, align 8, !tbaa !17
  %470 = getelementptr inbounds %"struct.DynexCN::Blockchain::BlockEntry", ptr %41, i32 0, i32 5
  %471 = call noundef nonnull align 8 dereferenceable(136) ptr @_ZNSt6vectorIN7DynexCN10Blockchain16TransactionEntryESaIS2_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %470) #8
  %472 = getelementptr inbounds %"struct.DynexCN::Blockchain::TransactionEntry", ptr %471, i32 0, i32 0
  %473 = invoke noundef zeroext i1 @_ZN7DynexCN10Blockchain22checkTransactionInputsERKNS_11TransactionEPj(ptr noundef nonnull align 8 dereferenceable(2636) %71, ptr noundef nonnull align 8 dereferenceable(112) %472, ptr noundef null)
          to label %474 unwind label %495

474:                                              ; preds = %468
  br i1 %473, label %512, label %475

475:                                              ; preds = %474
  call void @llvm.lifetime.start.p0(i64 432, ptr %52) #8
  %476 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %71, i32 0, i32 33
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.Logging::LoggerMessage") align 8 %52, ptr noundef nonnull align 8 dereferenceable(40) %476, i32 noundef 3, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging12BRIGHT_WHITEB5cxx11E)
          to label %477 unwind label %503

477:                                              ; preds = %475
  %478 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA7_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %52, ptr noundef nonnull align 1 dereferenceable(7) @.str.180)
          to label %479 unwind label %507

479:                                              ; preds = %477
  %480 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEN6Crypto4HashEEOT_S5_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %478, ptr noundef nonnull align 1 dereferenceable(32) %12)
          to label %481 unwind label %507

481:                                              ; preds = %479
  %482 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA50_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %480, ptr noundef nonnull align 1 dereferenceable(50) @.str.215)
          to label %483 unwind label %507

483:                                              ; preds = %481
  %484 = load ptr, ptr %48, align 8, !tbaa !5
  %485 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEN6Crypto4HashEEOT_S5_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %482, ptr noundef nonnull align 1 dereferenceable(32) %484)
          to label %486 unwind label %507

486:                                              ; preds = %483
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %52) #8
  call void @llvm.lifetime.end.p0(i64 432, ptr %52) #8
  %487 = load ptr, ptr %9, align 8, !tbaa !5
  %488 = getelementptr inbounds %"struct.DynexCN::block_verification_context", ptr %487, i32 0, i32 1
  store i8 1, ptr %488, align 1, !tbaa !9
  %489 = getelementptr inbounds %"struct.DynexCN::Blockchain::BlockEntry", ptr %41, i32 0, i32 5
  call void @_ZNSt6vectorIN7DynexCN10Blockchain16TransactionEntryESaIS2_EE8pop_backEv(ptr noundef nonnull align 8 dereferenceable(24) %489) #8
  invoke void @_ZN7DynexCN10Blockchain15popTransactionsERKNS0_10BlockEntryERKN6Crypto4HashE(ptr noundef nonnull align 8 dereferenceable(2636) %71, ptr noundef nonnull align 8 dereferenceable(440) %41, ptr noundef nonnull align 1 dereferenceable(32) %40)
          to label %490 unwind label %495

490:                                              ; preds = %486
  store i1 false, ptr %5, align 1
  store i32 1, ptr %16, align 4
  br label %561

491:                                              ; preds = %436
  %492 = landingpad { ptr, i32 }
          cleanup
  %493 = extractvalue { ptr, i32 } %492, 0
  store ptr %493, ptr %13, align 8
  %494 = extractvalue { ptr, i32 } %492, 1
  store i32 %494, ptr %14, align 4
  br label %568

495:                                              ; preds = %547, %532, %515, %486, %468, %463, %457, %445
  %496 = landingpad { ptr, i32 }
          cleanup
  %497 = extractvalue { ptr, i32 } %496, 0
  store ptr %497, ptr %13, align 8
  %498 = extractvalue { ptr, i32 } %496, 1
  store i32 %498, ptr %14, align 4
  br label %567

499:                                              ; preds = %453
  %500 = landingpad { ptr, i32 }
          cleanup
  %501 = extractvalue { ptr, i32 } %500, 0
  store ptr %501, ptr %13, align 8
  %502 = extractvalue { ptr, i32 } %500, 1
  store i32 %502, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %51) #8
  br label %567

503:                                              ; preds = %475
  %504 = landingpad { ptr, i32 }
          cleanup
  %505 = extractvalue { ptr, i32 } %504, 0
  store ptr %505, ptr %13, align 8
  %506 = extractvalue { ptr, i32 } %504, 1
  store i32 %506, ptr %14, align 4
  br label %511

507:                                              ; preds = %483, %481, %479, %477
  %508 = landingpad { ptr, i32 }
          cleanup
  %509 = extractvalue { ptr, i32 } %508, 0
  store ptr %509, ptr %13, align 8
  %510 = extractvalue { ptr, i32 } %508, 1
  store i32 %510, ptr %14, align 4
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %52) #8
  br label %511

511:                                              ; preds = %507, %503
  call void @llvm.lifetime.end.p0(i64 432, ptr %52) #8
  br label %567

512:                                              ; preds = %474
  %513 = load i8, ptr %32, align 1, !tbaa !20, !range !21, !noundef !22
  %514 = trunc i8 %513 to i1
  br i1 %514, label %547, label %515

515:                                              ; preds = %512
  %516 = getelementptr inbounds %"struct.DynexCN::Blockchain::BlockEntry", ptr %41, i32 0, i32 5
  %517 = call noundef nonnull align 8 dereferenceable(136) ptr @_ZNSt6vectorIN7DynexCN10Blockchain16TransactionEntryESaIS2_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %516) #8
  %518 = getelementptr inbounds %"struct.DynexCN::Blockchain::TransactionEntry", ptr %517, i32 0, i32 0
  %519 = invoke noundef zeroext i1 @_ZN7DynexCN10Blockchain17check_non_privacyERKNS_11TransactionE(ptr noundef nonnull align 8 dereferenceable(2636) %71, ptr noundef nonnull align 8 dereferenceable(112) %518)
          to label %520 unwind label %495

520:                                              ; preds = %515
  br i1 %519, label %546, label %521

521:                                              ; preds = %520
  call void @llvm.lifetime.start.p0(i64 432, ptr %53) #8
  %522 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %71, 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) %522, i32 noundef 3, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging12BRIGHT_WHITEB5cxx11E)
          to label %523 unwind label %537

523:                                              ; preds = %521
  %524 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA7_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %53, ptr noundef nonnull align 1 dereferenceable(7) @.str.180)
          to label %525 unwind label %541

525:                                              ; preds = %523
  %526 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEN6Crypto4HashEEOT_S5_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %524, ptr noundef nonnull align 1 dereferenceable(32) %12)
          to label %527 unwind label %541

527:                                              ; preds = %525
  %528 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA64_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %526, ptr noundef nonnull align 1 dereferenceable(64) @.str.216)
          to label %529 unwind label %541

529:                                              ; preds = %527
  %530 = load ptr, ptr %48, align 8, !tbaa !5
  %531 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEN6Crypto4HashEEOT_S5_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %528, ptr noundef nonnull align 1 dereferenceable(32) %530)
          to label %532 unwind label %541

532:                                              ; preds = %529
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %53) #8
  call void @llvm.lifetime.end.p0(i64 432, ptr %53) #8
  %533 = load ptr, ptr %9, align 8, !tbaa !5
  %534 = getelementptr inbounds %"struct.DynexCN::block_verification_context", ptr %533, i32 0, i32 1
  store i8 1, ptr %534, align 1, !tbaa !9
  %535 = getelementptr inbounds %"struct.DynexCN::Blockchain::BlockEntry", ptr %41, i32 0, i32 5
  call void @_ZNSt6vectorIN7DynexCN10Blockchain16TransactionEntryESaIS2_EE8pop_backEv(ptr noundef nonnull align 8 dereferenceable(24) %535) #8
  invoke void @_ZN7DynexCN10Blockchain15popTransactionsERKNS0_10BlockEntryERKN6Crypto4HashE(ptr noundef nonnull align 8 dereferenceable(2636) %71, ptr noundef nonnull align 8 dereferenceable(440) %41, ptr noundef nonnull align 1 dereferenceable(32) %40)
          to label %536 unwind label %495

536:                                              ; preds = %532
  store i1 false, ptr %5, align 1
  store i32 1, ptr %16, align 4
  br label %561

537:                                              ; preds = %521
  %538 = landingpad { ptr, i32 }
          cleanup
  %539 = extractvalue { ptr, i32 } %538, 0
  store ptr %539, ptr %13, align 8
  %540 = extractvalue { ptr, i32 } %538, 1
  store i32 %540, ptr %14, align 4
  br label %545

541:                                              ; preds = %529, %527, %525, %523
  %542 = landingpad { ptr, i32 }
          cleanup
  %543 = extractvalue { ptr, i32 } %542, 0
  store ptr %543, ptr %13, align 8
  %544 = extractvalue { ptr, i32 } %542, 1
  store i32 %544, ptr %14, align 4
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %53) #8
  br label %545

545:                                              ; preds = %541, %537
  call void @llvm.lifetime.end.p0(i64 432, ptr %53) #8
  br label %567

546:                                              ; preds = %520
  br label %547

547:                                              ; preds = %546, %512
  %548 = getelementptr inbounds %"struct.DynexCN::Blockchain::TransactionIndex", ptr %42, i32 0, i32 1
  %549 = load i16, ptr %548, align 4, !tbaa !164
  %550 = add i16 %549, 1
  store i16 %550, ptr %548, align 4, !tbaa !164
  %551 = load ptr, ptr %48, align 8, !tbaa !5
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %54, ptr align 4 %42, i64 8, i1 false), !tbaa.struct !165
  %552 = load i64, ptr %54, align 4
  %553 = invoke noundef zeroext i1 @_ZN7DynexCN10Blockchain15pushTransactionERNS0_10BlockEntryERKN6Crypto4HashENS0_16TransactionIndexE(ptr noundef nonnull align 8 dereferenceable(2636) %71, ptr noundef nonnull align 8 dereferenceable(440) %41, ptr noundef nonnull align 1 dereferenceable(32) %551, i64 %552)
          to label %554 unwind label %495

554:                                              ; preds = %547
  %555 = load i64, ptr %49, align 8, !tbaa !17
  %556 = load i64, ptr %45, align 8, !tbaa !17
  %557 = add i64 %556, %555
  store i64 %557, ptr %45, align 8, !tbaa !17
  %558 = load i64, ptr %50, align 8, !tbaa !17
  %559 = load i64, ptr %46, align 8, !tbaa !17
  %560 = add i64 %559, %558
  store i64 %560, ptr %46, align 8, !tbaa !17
  store i32 0, ptr %16, align 4
  br label %561

561:                                              ; preds = %554, %536, %490
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #8
  %562 = load i32, ptr %16, align 4
  switch i32 %562, label %569 [
    i32 0, label %563
  ]

563:                                              ; preds = %561
  br label %564

564:                                              ; preds = %563
  %565 = load i64, ptr %47, align 8, !tbaa !17
  %566 = add i64 %565, 1
  store i64 %566, ptr %47, align 8, !tbaa !17
  br label %414, !llvm.loop !168

567:                                              ; preds = %545, %511, %499, %495
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #8
  br label %568

568:                                              ; preds = %567, %491
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #8
  br label %891

569:                                              ; preds = %561, %419
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #8
  %570 = load i32, ptr %16, align 4
  switch i32 %570, label %890 [
    i32 2, label %571
  ]

571:                                              ; preds = %569
  %572 = load i64, ptr %45, align 8, !tbaa !17
  %573 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %71, i32 0, i32 18
  %574 = invoke noundef i64 @_ZNK13SwappedVectorIN7DynexCN10Blockchain10BlockEntryEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(1184) %573)
          to label %575 unwind label %581

575:                                              ; preds = %571
  %576 = invoke noundef zeroext i1 @_ZN7DynexCN10Blockchain24checkCumulativeBlockSizeERKN6Crypto4HashEmm(ptr noundef nonnull align 8 dereferenceable(2636) %71, ptr noundef nonnull align 1 dereferenceable(32) %12, i64 noundef %572, i64 noundef %574)
          to label %577 unwind label %581

577:                                              ; preds = %575
  br i1 %576, label %585, label %578

578:                                              ; preds = %577
  %579 = load ptr, ptr %9, align 8, !tbaa !5
  %580 = getelementptr inbounds %"struct.DynexCN::block_verification_context", ptr %579, i32 0, i32 1
  store i8 1, ptr %580, align 1, !tbaa !9
  store i1 false, ptr %5, align 1
  store i32 1, ptr %16, align 4
  br label %890

581:                                              ; preds = %575, %571
  %582 = landingpad { ptr, i32 }
          cleanup
  %583 = extractvalue { ptr, i32 } %582, 0
  store ptr %583, ptr %13, align 8
  %584 = extractvalue { ptr, i32 } %582, 1
  store i32 %584, ptr %14, align 4
  br label %891

585:                                              ; preds = %577
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #8
  store i64 0, ptr %55, align 8, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #8
  store i64 0, ptr %56, align 8, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #8
  %586 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %71, i32 0, i32 18
  %587 = invoke noundef zeroext i1 @_ZNK13SwappedVectorIN7DynexCN10Blockchain10BlockEntryEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(1184) %586)
          to label %588 unwind label %620

588:                                              ; preds = %585
  br i1 %587, label %589, label %590

589:                                              ; preds = %588
  br label %596

590:                                              ; preds = %588
  %591 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %71, i32 0, i32 18
  %592 = invoke noundef nonnull align 8 dereferenceable(440) ptr @_ZN13SwappedVectorIN7DynexCN10Blockchain10BlockEntryEE4backEv(ptr noundef nonnull align 8 dereferenceable(1184) %591)
          to label %593 unwind label %620

593:                                              ; preds = %590
  %594 = getelementptr inbounds %"struct.DynexCN::Blockchain::BlockEntry", ptr %592, i32 0, i32 4
  %595 = load i64, ptr %594, align 8, !tbaa !170
  br label %596

596:                                              ; preds = %593, %589
  %597 = phi i64 [ 0, %589 ], [ %595, %593 ]
  store i64 %597, ptr %57, align 8, !tbaa !17
  %598 = load ptr, ptr %7, align 8, !tbaa !5
  %599 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %71, i32 0, i32 18
  %600 = invoke noundef i64 @_ZNK13SwappedVectorIN7DynexCN10Blockchain10BlockEntryEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(1184) %599)
          to label %601 unwind label %620

601:                                              ; preds = %596
  %602 = trunc i64 %600 to i32
  %603 = load i64, ptr %45, align 8, !tbaa !17
  %604 = load i64, ptr %57, align 8, !tbaa !17
  %605 = load i64, ptr %46, align 8, !tbaa !17
  %606 = invoke noundef zeroext i1 @_ZN7DynexCN10Blockchain26validate_miner_transactionERKNS_5BlockEjmmmRmRl(ptr noundef nonnull align 8 dereferenceable(2636) %71, ptr noundef nonnull align 8 dereferenceable(384) %598, i32 noundef %602, i64 noundef %603, i64 noundef %604, i64 noundef %605, ptr noundef nonnull align 8 dereferenceable(8) %56, ptr noundef nonnull align 8 dereferenceable(8) %55)
          to label %607 unwind label %620

607:                                              ; preds = %601
  br i1 %606, label %633, label %608

608:                                              ; preds = %607
  call void @llvm.lifetime.start.p0(i64 432, ptr %58) #8
  %609 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %71, i32 0, i32 33
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.Logging::LoggerMessage") align 8 %58, ptr noundef nonnull align 8 dereferenceable(40) %609, i32 noundef 3, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging12BRIGHT_WHITEB5cxx11E)
          to label %610 unwind label %624

610:                                              ; preds = %608
  %611 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA7_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %58, ptr noundef nonnull align 1 dereferenceable(7) @.str.180)
          to label %612 unwind label %628

612:                                              ; preds = %610
  %613 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEN6Crypto4HashEEOT_S5_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %611, ptr noundef nonnull align 1 dereferenceable(32) %12)
          to label %614 unwind label %628

614:                                              ; preds = %612
  %615 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA34_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %613, ptr noundef nonnull align 1 dereferenceable(34) @.str.217)
          to label %616 unwind label %628

616:                                              ; preds = %614
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %58) #8
  call void @llvm.lifetime.end.p0(i64 432, ptr %58) #8
  %617 = load ptr, ptr %9, align 8, !tbaa !5
  %618 = getelementptr inbounds %"struct.DynexCN::block_verification_context", ptr %617, i32 0, i32 1
  store i8 1, ptr %618, align 1, !tbaa !9
  invoke void @_ZN7DynexCN10Blockchain15popTransactionsERKNS0_10BlockEntryERKN6Crypto4HashE(ptr noundef nonnull align 8 dereferenceable(2636) %71, ptr noundef nonnull align 8 dereferenceable(440) %41, ptr noundef nonnull align 1 dereferenceable(32) %40)
          to label %619 unwind label %620

619:                                              ; preds = %616
  store i1 false, ptr %5, align 1
  store i32 1, ptr %16, align 4
  br label %888

620:                                              ; preds = %616, %601, %596, %590, %585
  %621 = landingpad { ptr, i32 }
          cleanup
  %622 = extractvalue { ptr, i32 } %621, 0
  store ptr %622, ptr %13, align 8
  %623 = extractvalue { ptr, i32 } %621, 1
  store i32 %623, ptr %14, align 4
  br label %889

624:                                              ; preds = %608
  %625 = landingpad { ptr, i32 }
          cleanup
  %626 = extractvalue { ptr, i32 } %625, 0
  store ptr %626, ptr %13, align 8
  %627 = extractvalue { ptr, i32 } %625, 1
  store i32 %627, ptr %14, align 4
  br label %632

628:                                              ; preds = %614, %612, %610
  %629 = landingpad { ptr, i32 }
          cleanup
  %630 = extractvalue { ptr, i32 } %629, 0
  store ptr %630, ptr %13, align 8
  %631 = extractvalue { ptr, i32 } %629, 1
  store i32 %631, ptr %14, align 4
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %58) #8
  br label %632

632:                                              ; preds = %628, %624
  call void @llvm.lifetime.end.p0(i64 432, ptr %58) #8
  br label %889

633:                                              ; preds = %607
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #8
  %634 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %71, i32 0, i32 34
  %635 = load i32, ptr %634, align 8, !tbaa !200
  %636 = zext i32 %635 to i64
  %637 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %71, i32 0, i32 18
  %638 = invoke noundef i64 @_ZNK13SwappedVectorIN7DynexCN10Blockchain10BlockEntryEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(1184) %637)
          to label %639 unwind label %695

639:                                              ; preds = %633
  %640 = sub nsw i64 %636, %638
  store i64 %640, ptr %59, align 8, !tbaa !17
  %641 = load i8, ptr %32, align 1, !tbaa !20, !range !21, !noundef !22
  %642 = trunc i8 %641 to i1
  br i1 %642, label %723, label %643

643:                                              ; preds = %639
  %644 = load i64, ptr %59, align 8, !tbaa !17
  %645 = icmp sle i64 %644, 100
  br i1 %645, label %650, label %646

646:                                              ; preds = %643
  %647 = load i64, ptr %59, align 8, !tbaa !17
  %648 = srem i64 %647, 100
  %649 = icmp eq i64 %648, 0
  br i1 %649, label %650, label %723

650:                                              ; preds = %646, %643
  %651 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %71, i32 0, i32 18
  %652 = invoke noundef i64 @_ZNK13SwappedVectorIN7DynexCN10Blockchain10BlockEntryEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(1184) %651)
          to label %653 unwind label %695

653:                                              ; preds = %650
  %654 = trunc i64 %652 to i32
  %655 = load ptr, ptr %7, align 8, !tbaa !5
  %656 = getelementptr inbounds %"struct.DynexCN::BlockHeader", ptr %655, i32 0, i32 2
  %657 = load i32, ptr %656, align 4, !tbaa !201
  %658 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %71, i32 0, i32 33
  %659 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7Logging9LoggerRef9getLoggerEv(ptr noundef nonnull align 8 dereferenceable(40) %658)
          to label %660 unwind label %695

660:                                              ; preds = %653
  %661 = invoke noundef zeroext i1 @_ZN7DynexCN9AuthBlockEjjRN7Logging7ILoggerE(i32 noundef %654, i32 noundef %657, ptr noundef nonnull align 8 dereferenceable(8) %659)
          to label %662 unwind label %695

662:                                              ; preds = %660
  br i1 %661, label %723, label %663

663:                                              ; preds = %662
  call void @llvm.lifetime.start.p0(i64 432, ptr %60) #8
  %664 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %71, i32 0, i32 33
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.Logging::LoggerMessage") align 8 %60, ptr noundef nonnull align 8 dereferenceable(40) %664, i32 noundef 3, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging14BRIGHT_MAGENTAB5cxx11E)
          to label %665 unwind label %699

665:                                              ; preds = %663
  %666 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA20_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %60, ptr noundef nonnull align 1 dereferenceable(20) @.str.218)
          to label %667 unwind label %703

667:                                              ; preds = %665
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #8
  %668 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %71, i32 0, i32 18
  %669 = invoke noundef i64 @_ZNK13SwappedVectorIN7DynexCN10Blockchain10BlockEntryEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(1184) %668)
          to label %670 unwind label %707

670:                                              ; preds = %667
  %671 = trunc i64 %669 to i32
  store i32 %671, ptr %61, align 4, !tbaa !166
  %672 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEjEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %666, ptr noundef nonnull align 4 dereferenceable(4) %61)
          to label %673 unwind label %707

673:                                              ; preds = %670
  %674 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA13_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %672, ptr noundef nonnull align 1 dereferenceable(13) @.str.219)
          to label %675 unwind label %707

675:                                              ; preds = %673
  %676 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEFRSt8ios_baseS3_EEOT_S6_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %674, ptr noundef nonnull @_ZSt3hexRSt8ios_base)
          to label %677 unwind label %707

677:                                              ; preds = %675
  call void @llvm.lifetime.start.p0(i64 1, ptr %62) #8
  %678 = invoke i8 @_ZSt7setfillIcESt8_SetfillIT_ES1_(i8 noundef signext 48)
          to label %679 unwind label %711

679:                                              ; preds = %677
  %680 = getelementptr inbounds %"struct.std::_Setfill", ptr %62, i32 0, i32 0
  store i8 %678, ptr %680, align 1
  %681 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageESt8_SetfillIcEEOT_S5_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %676, ptr noundef nonnull align 1 dereferenceable(1) %62)
          to label %682 unwind label %711

682:                                              ; preds = %679
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #8
  %683 = invoke i32 @_ZSt4setwi(i32 noundef 8)
          to label %684 unwind label %715

684:                                              ; preds = %682
  %685 = getelementptr inbounds %"struct.std::_Setw", ptr %63, i32 0, i32 0
  store i32 %683, ptr %685, align 4
  %686 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageESt5_SetwEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %681, ptr noundef nonnull align 4 dereferenceable(4) %63)
          to label %687 unwind label %715

687:                                              ; preds = %684
  %688 = load ptr, ptr %7, align 8, !tbaa !5
  %689 = getelementptr inbounds %"struct.DynexCN::BlockHeader", ptr %688, i32 0, i32 2
  %690 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEjEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %686, ptr noundef nonnull align 4 dereferenceable(4) %689)
          to label %691 unwind label %715

691:                                              ; preds = %687
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %62) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #8
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %60) #8
  call void @llvm.lifetime.end.p0(i64 432, ptr %60) #8
  %692 = load ptr, ptr %9, align 8, !tbaa !5
  %693 = getelementptr inbounds %"struct.DynexCN::block_verification_context", ptr %692, i32 0, i32 1
  store i8 1, ptr %693, align 1, !tbaa !9
  invoke void @_ZN7DynexCN10Blockchain15popTransactionsERKNS0_10BlockEntryERKN6Crypto4HashE(ptr noundef nonnull align 8 dereferenceable(2636) %71, ptr noundef nonnull align 8 dereferenceable(440) %41, ptr noundef nonnull align 1 dereferenceable(32) %40)
          to label %694 unwind label %695

694:                                              ; preds = %691
  store i1 false, ptr %5, align 1
  store i32 1, ptr %16, align 4
  br label %886

695:                                              ; preds = %750, %741, %726, %723, %691, %660, %653, %650, %633
  %696 = landingpad { ptr, i32 }
          cleanup
  %697 = extractvalue { ptr, i32 } %696, 0
  store ptr %697, ptr %13, align 8
  %698 = extractvalue { ptr, i32 } %696, 1
  store i32 %698, ptr %14, align 4
  br label %887

699:                                              ; preds = %663
  %700 = landingpad { ptr, i32 }
          cleanup
  %701 = extractvalue { ptr, i32 } %700, 0
  store ptr %701, ptr %13, align 8
  %702 = extractvalue { ptr, i32 } %700, 1
  store i32 %702, ptr %14, align 4
  br label %722

703:                                              ; preds = %665
  %704 = landingpad { ptr, i32 }
          cleanup
  %705 = extractvalue { ptr, i32 } %704, 0
  store ptr %705, ptr %13, align 8
  %706 = extractvalue { ptr, i32 } %704, 1
  store i32 %706, ptr %14, align 4
  br label %721

707:                                              ; preds = %675, %673, %670, %667
  %708 = landingpad { ptr, i32 }
          cleanup
  %709 = extractvalue { ptr, i32 } %708, 0
  store ptr %709, ptr %13, align 8
  %710 = extractvalue { ptr, i32 } %708, 1
  store i32 %710, ptr %14, align 4
  br label %720

711:                                              ; preds = %679, %677
  %712 = landingpad { ptr, i32 }
          cleanup
  %713 = extractvalue { ptr, i32 } %712, 0
  store ptr %713, ptr %13, align 8
  %714 = extractvalue { ptr, i32 } %712, 1
  store i32 %714, ptr %14, align 4
  br label %719

715:                                              ; preds = %687, %684, %682
  %716 = landingpad { ptr, i32 }
          cleanup
  %717 = extractvalue { ptr, i32 } %716, 0
  store ptr %717, ptr %13, align 8
  %718 = extractvalue { ptr, i32 } %716, 1
  store i32 %718, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #8
  br label %719

719:                                              ; preds = %715, %711
  call void @llvm.lifetime.end.p0(i64 1, ptr %62) #8
  br label %720

720:                                              ; preds = %719, %707
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #8
  br label %721

721:                                              ; preds = %720, %703
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %60) #8
  br label %722

722:                                              ; preds = %721, %699
  call void @llvm.lifetime.end.p0(i64 432, ptr %60) #8
  br label %887

723:                                              ; preds = %662, %646, %639
  %724 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %71, i32 0, i32 18
  %725 = invoke noundef i64 @_ZNK13SwappedVectorIN7DynexCN10Blockchain10BlockEntryEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(1184) %724)
          to label %726 unwind label %695

726:                                              ; preds = %723
  %727 = trunc i64 %725 to i32
  %728 = getelementptr inbounds %"struct.DynexCN::Blockchain::BlockEntry", ptr %41, i32 0, i32 1
  store i32 %727, ptr %728, align 8, !tbaa !202
  %729 = load i64, ptr %45, align 8, !tbaa !17
  %730 = getelementptr inbounds %"struct.DynexCN::Blockchain::BlockEntry", ptr %41, i32 0, i32 2
  store i64 %729, ptr %730, align 8, !tbaa !203
  %731 = load i64, ptr %24, align 8, !tbaa !17
  %732 = getelementptr inbounds %"struct.DynexCN::Blockchain::BlockEntry", ptr %41, i32 0, i32 3
  store i64 %731, ptr %732, align 8, !tbaa !204
  %733 = load i64, ptr %57, align 8, !tbaa !17
  %734 = load i64, ptr %55, align 8, !tbaa !17
  %735 = add i64 %733, %734
  %736 = getelementptr inbounds %"struct.DynexCN::Blockchain::BlockEntry", ptr %41, i32 0, i32 4
  store i64 %735, ptr %736, align 8, !tbaa !170
  %737 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %71, i32 0, i32 18
  %738 = invoke noundef i64 @_ZNK13SwappedVectorIN7DynexCN10Blockchain10BlockEntryEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(1184) %737)
          to label %739 unwind label %695

739:                                              ; preds = %726
  %740 = icmp ugt i64 %738, 0
  br i1 %740, label %741, label %750

741:                                              ; preds = %739
  %742 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %71, i32 0, i32 18
  %743 = invoke noundef nonnull align 8 dereferenceable(440) ptr @_ZN13SwappedVectorIN7DynexCN10Blockchain10BlockEntryEE4backEv(ptr noundef nonnull align 8 dereferenceable(1184) %742)
          to label %744 unwind label %695

744:                                              ; preds = %741
  %745 = getelementptr inbounds %"struct.DynexCN::Blockchain::BlockEntry", ptr %743, i32 0, i32 3
  %746 = load i64, ptr %745, align 8, !tbaa !204
  %747 = getelementptr inbounds %"struct.DynexCN::Blockchain::BlockEntry", ptr %41, i32 0, i32 3
  %748 = load i64, ptr %747, align 8, !tbaa !204
  %749 = add i64 %748, %746
  store i64 %749, ptr %747, align 8, !tbaa !204
  br label %750

750:                                              ; preds = %744, %739
  %751 = invoke noundef zeroext i1 @_ZN7DynexCN10Blockchain9pushBlockERNS0_10BlockEntryE(ptr noundef nonnull align 8 dereferenceable(2636) %71, ptr noundef nonnull align 8 dereferenceable(440) %41)
          to label %752 unwind label %695

752:                                              ; preds = %750
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %67) #8
  %753 = call i64 @_ZNSt6chrono3_V212steady_clock3nowEv() #8
  %754 = getelementptr inbounds %"class.std::chrono::time_point", ptr %67, i32 0, i32 0
  %755 = getelementptr inbounds %"class.std::chrono::duration", ptr %754, i32 0, i32 0
  store i64 %753, ptr %755, align 8
  %756 = invoke i64 @_ZNSt6chronomiINS_3_V212steady_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE(ptr noundef nonnull align 8 dereferenceable(8) %67, ptr noundef nonnull align 8 dereferenceable(8) %11)
          to label %757 unwind label %848

757:                                              ; preds = %752
  %758 = getelementptr inbounds %"class.std::chrono::duration", ptr %66, i32 0, i32 0
  store i64 %756, ptr %758, align 8
  %759 = invoke i64 @_ZNSt6chrono13duration_castINS_8durationIlSt5ratioILl1ELl1000EEEElS2_ILl1ELl1000000000EEEENSt9enable_ifIXsr13__is_durationIT_EE5valueES7_E4typeERKNS1_IT0_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %66)
          to label %760 unwind label %848

760:                                              ; preds = %757
  %761 = getelementptr inbounds %"class.std::chrono::duration.389", ptr %65, i32 0, i32 0
  store i64 %759, ptr %761, align 8
  %762 = invoke noundef i64 @_ZNKSt6chrono8durationIlSt5ratioILl1ELl1000EEE5countEv(ptr noundef nonnull align 8 dereferenceable(8) %65)
          to label %763 unwind label %848

763:                                              ; preds = %760
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #8
  store i64 %762, ptr %64, align 8, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 432, ptr %68) #8
  %764 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %71, i32 0, i32 33
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.Logging::LoggerMessage") align 8 %68, ptr noundef nonnull align 8 dereferenceable(40) %764, i32 noundef 4, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging7DEFAULTB5cxx11E)
          to label %765 unwind label %852

765:                                              ; preds = %763
  %766 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA31_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %68, ptr noundef nonnull align 1 dereferenceable(31) @.str.220)
          to label %767 unwind label %856

767:                                              ; preds = %765
  %768 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %766, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %769 unwind label %856

769:                                              ; preds = %767
  %770 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %768, ptr noundef @.str.116)
          to label %771 unwind label %856

771:                                              ; preds = %769
  %772 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN6CryptolsERSoRKNS_4HashE(ptr noundef nonnull align 8 dereferenceable(8) %770, ptr noundef nonnull align 1 dereferenceable(32) %12)
          to label %773 unwind label %856

773:                                              ; preds = %771
  %774 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %772, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %775 unwind label %856

775:                                              ; preds = %773
  %776 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %774, ptr noundef @.str.117)
          to label %777 unwind label %856

777:                                              ; preds = %775
  %778 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN6CryptolsERSoRKNS_4HashE(ptr noundef nonnull align 8 dereferenceable(8) %776, ptr noundef nonnull align 1 dereferenceable(32) %31)
          to label %779 unwind label %856

779:                                              ; preds = %777
  %780 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %778, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %781 unwind label %856

781:                                              ; preds = %779
  %782 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %780, ptr noundef @.str.221)
          to label %783 unwind label %856

783:                                              ; preds = %781
  %784 = getelementptr inbounds %"struct.DynexCN::Blockchain::BlockEntry", ptr %41, i32 0, i32 1
  %785 = load i32, ptr %784, align 8, !tbaa !202
  %786 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %782, i32 noundef %785)
          to label %787 unwind label %856

787:                                              ; preds = %783
  %788 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %786, ptr noundef @.str.222)
          to label %789 unwind label %856

789:                                              ; preds = %787
  %790 = load i64, ptr %24, align 8, !tbaa !17
  %791 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %788, i64 noundef %790)
          to label %792 unwind label %856

792:                                              ; preds = %789
  %793 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %791, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %794 unwind label %856

794:                                              ; preds = %792
  %795 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %793, ptr noundef @.str.223)
          to label %796 unwind label %856

796:                                              ; preds = %794
  call void @llvm.lifetime.start.p0(i64 32, ptr %69) #8
  %797 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %71, i32 0, i32 5
  %798 = load ptr, ptr %797, align 8, !tbaa !23
  %799 = load i64, ptr %56, align 8, !tbaa !17
  invoke void @_ZNK7DynexCN8Currency12formatAmountB5cxx11Em(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %69, ptr noundef nonnull align 8 dereferenceable(984) %798, i64 noundef %799)
          to label %800 unwind label %860

800:                                              ; preds = %796
  %801 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %795, ptr noundef nonnull align 8 dereferenceable(32) %69)
          to label %802 unwind label %864

802:                                              ; preds = %800
  %803 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %801, ptr noundef @.str.224)
          to label %804 unwind label %864

804:                                              ; preds = %802
  call void @llvm.lifetime.start.p0(i64 32, ptr %70) #8
  %805 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %71, i32 0, i32 5
  %806 = load ptr, ptr %805, align 8, !tbaa !23
  %807 = load i64, ptr %46, align 8, !tbaa !17
  invoke void @_ZNK7DynexCN8Currency12formatAmountB5cxx11Em(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %70, ptr noundef nonnull align 8 dereferenceable(984) %806, i64 noundef %807)
          to label %808 unwind label %868

808:                                              ; preds = %804
  %809 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %803, ptr noundef nonnull align 8 dereferenceable(32) %70)
          to label %810 unwind label %872

810:                                              ; preds = %808
  %811 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %809, ptr noundef @.str.225)
          to label %812 unwind label %872

812:                                              ; preds = %810
  %813 = load i64, ptr %44, align 8, !tbaa !17
  %814 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %811, i64 noundef %813)
          to label %815 unwind label %872

815:                                              ; preds = %812
  %816 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %814, ptr noundef @.str.226)
          to label %817 unwind label %872

817:                                              ; preds = %815
  %818 = load i64, ptr %45, align 8, !tbaa !17
  %819 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %816, i64 noundef %818)
          to label %820 unwind label %872

820:                                              ; preds = %817
  %821 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %819, ptr noundef @.str.30)
          to label %822 unwind label %872

822:                                              ; preds = %820
  %823 = load i64, ptr %64, align 8, !tbaa !17
  %824 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEl(ptr noundef nonnull align 8 dereferenceable(8) %821, i64 noundef %823)
          to label %825 unwind label %872

825:                                              ; preds = %822
  %826 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %824, ptr noundef @.str.227)
          to label %827 unwind label %872

827:                                              ; preds = %825
  %828 = load i64, ptr %25, align 8, !tbaa !17
  %829 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEl(ptr noundef nonnull align 8 dereferenceable(8) %826, i64 noundef %828)
          to label %830 unwind label %872

830:                                              ; preds = %827
  %831 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %829, ptr noundef @.str.228)
          to label %832 unwind label %872

832:                                              ; preds = %830
  %833 = load i64, ptr %35, align 8, !tbaa !17
  %834 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEl(ptr noundef nonnull align 8 dereferenceable(8) %831, i64 noundef %833)
          to label %835 unwind label %872

835:                                              ; preds = %832
  %836 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %834, ptr noundef @.str.229)
          to label %837 unwind label %872

837:                                              ; preds = %835
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %70) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %69) #8
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %68) #8
  call void @llvm.lifetime.end.p0(i64 432, ptr %68) #8
  %838 = load ptr, ptr %9, align 8, !tbaa !5
  %839 = getelementptr inbounds %"struct.DynexCN::block_verification_context", ptr %838, i32 0, i32 0
  store i8 1, ptr %839, align 1, !tbaa !205
  %840 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %71, i32 0, i32 22
  invoke void @_ZN7DynexCN20BasicUpgradeDetectorI13SwappedVectorINS_10Blockchain10BlockEntryEEE11blockPushedEv(ptr noundef nonnull align 8 dereferenceable(64) %840)
          to label %841 unwind label %881

841:                                              ; preds = %837
  %842 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %71, i32 0, i32 23
  invoke void @_ZN7DynexCN20BasicUpgradeDetectorI13SwappedVectorINS_10Blockchain10BlockEntryEEE11blockPushedEv(ptr noundef nonnull align 8 dereferenceable(64) %842)
          to label %843 unwind label %881

843:                                              ; preds = %841
  %844 = getelementptr inbounds %"class.DynexCN::Blockchain", ptr %71, i32 0, i32 24
  invoke void @_ZN7DynexCN20BasicUpgradeDetectorI13SwappedVectorINS_10Blockchain10BlockEntryEEE11blockPushedEv(ptr noundef nonnull align 8 dereferenceable(64) %844)
          to label %845 unwind label %881

845:                                              ; preds = %843
  %846 = invoke noundef zeroext i1 @_ZN7DynexCN10Blockchain33update_next_cumulative_size_limitEv(ptr noundef nonnull align 8 dereferenceable(2636) %71)
          to label %847 unwind label %881

847:                                              ; preds = %845
  store i1 true, ptr %5, align 1
  store i32 1, ptr %16, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #8
  br label %886

848:                                              ; preds = %760, %757, %752
  %849 = landingpad { ptr, i32 }
          cleanup
  %850 = extractvalue { ptr, i32 } %849, 0
  store ptr %850, ptr %13, align 8
  %851 = extractvalue { ptr, i32 } %849, 1
  store i32 %851, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #8
  br label %885

852:                                              ; preds = %763
  %853 = landingpad { ptr, i32 }
          cleanup
  %854 = extractvalue { ptr, i32 } %853, 0
  store ptr %854, ptr %13, align 8
  %855 = extractvalue { ptr, i32 } %853, 1
  store i32 %855, ptr %14, align 4
  br label %880

856:                                              ; preds = %794, %792, %789, %787, %783, %781, %779, %777, %775, %773, %771, %769, %767, %765
  %857 = landingpad { ptr, i32 }
          cleanup
  %858 = extractvalue { ptr, i32 } %857, 0
  store ptr %858, ptr %13, align 8
  %859 = extractvalue { ptr, i32 } %857, 1
  store i32 %859, ptr %14, align 4
  br label %879

860:                                              ; preds = %796
  %861 = landingpad { ptr, i32 }
          cleanup
  %862 = extractvalue { ptr, i32 } %861, 0
  store ptr %862, ptr %13, align 8
  %863 = extractvalue { ptr, i32 } %861, 1
  store i32 %863, ptr %14, align 4
  br label %878

864:                                              ; preds = %802, %800
  %865 = landingpad { ptr, i32 }
          cleanup
  %866 = extractvalue { ptr, i32 } %865, 0
  store ptr %866, ptr %13, align 8
  %867 = extractvalue { ptr, i32 } %865, 1
  store i32 %867, ptr %14, align 4
  br label %877

868:                                              ; preds = %804
  %869 = landingpad { ptr, i32 }
          cleanup
  %870 = extractvalue { ptr, i32 } %869, 0
  store ptr %870, ptr %13, align 8
  %871 = extractvalue { ptr, i32 } %869, 1
  store i32 %871, ptr %14, align 4
  br label %876

872:                                              ; preds = %835, %832, %830, %827, %825, %822, %820, %817, %815, %812, %810, %808
  %873 = landingpad { ptr, i32 }
          cleanup
  %874 = extractvalue { ptr, i32 } %873, 0
  store ptr %874, ptr %13, align 8
  %875 = extractvalue { ptr, i32 } %873, 1
  store i32 %875, ptr %14, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #8
  br label %876

876:                                              ; preds = %872, %868
  call void @llvm.lifetime.end.p0(i64 32, ptr %70) #8
  br label %877

877:                                              ; preds = %876, %864
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #8
  br label %878

878:                                              ; preds = %877, %860
  call void @llvm.lifetime.end.p0(i64 32, ptr %69) #8
  br label %879

879:                                              ; preds = %878, %856
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %68) #8
  br label %880

880:                                              ; preds = %879, %852
  call void @llvm.lifetime.end.p0(i64 432, ptr %68) #8
  br label %885

881:                                              ; preds = %845, %843, %841, %837
  %882 = landingpad { ptr, i32 }
          cleanup
  %883 = extractvalue { ptr, i32 } %882, 0
  store ptr %883, ptr %13, align 8
  %884 = extractvalue { ptr, i32 } %882, 1
  store i32 %884, ptr %14, align 4
  br label %885

885:                                              ; preds = %881, %880, %848
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #8
  br label %887

886:                                              ; preds = %847, %694
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #8
  br label %888

887:                                              ; preds = %885, %722, %695
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #8
  br label %889

888:                                              ; preds = %886, %619
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #8
  br label %890

889:                                              ; preds = %887, %632, %620
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #8
  br label %891

890:                                              ; preds = %888, %578, %569
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #8
  call void @_ZN7DynexCN10Blockchain10BlockEntryD2Ev(ptr noundef nonnull align 8 dereferenceable(440) %41) #8
  call void @llvm.lifetime.end.p0(i64 440, ptr %41) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %40) #8
  br label %896

891:                                              ; preds = %889, %581, %568
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #8
  br label %892

892:                                              ; preds = %891, %432
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #8
  br label %893

893:                                              ; preds = %892, %428
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #8
  br label %894

894:                                              ; preds = %893, %424
  call void @_ZN7DynexCN10Blockchain10BlockEntryD2Ev(ptr noundef nonnull align 8 dereferenceable(440) %41) #8
  call void @llvm.lifetime.end.p0(i64 440, ptr %41) #8
  br label %895

895:                                              ; preds = %894, %420
  call void @llvm.lifetime.end.p0(i64 32, ptr %40) #8
  br label %897

896:                                              ; preds = %890, %363
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #8
  br label %898

897:                                              ; preds = %895, %382, %370, %366
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #8
  br label %899

898:                                              ; preds = %896, %323, %284
  call void @llvm.lifetime.end.p0(i64 1, ptr %32) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %31) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #8
  br label %900

899:                                              ; preds = %897, %334, %299, %287
  call void @llvm.lifetime.end.p0(i64 1, ptr %32) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %31) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #8
  br label %901

900:                                              ; preds = %898, %244
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #8
  br label %903

901:                                              ; preds = %899, %261, %249
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #8
  br label %902

902:                                              ; preds = %901, %245
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #8
  br label %904

903:                                              ; preds = %900, %209, %172, %135
  call void @llvm.lifetime.end.p0(i64 40, ptr %17) #8
  br label %905

904:                                              ; preds = %902, %220, %192, %175, %148, %136
  call void @llvm.lifetime.end.p0(i64 40, ptr %17) #8
  br label %907

905:                                              ; preds = %903, %116, %109, %89
  call void @llvm.lifetime.end.p0(i64 32, ptr %12) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #8
  call void @_ZNSt10lock_guardISt15recursive_mutexED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %10) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #8
  %906 = load i1, ptr %5, align 1
  ret i1 %906

907:                                              ; preds = %904, %104, %92
  call void @llvm.lifetime.end.p0(i64 32, ptr %12) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #8
  call void @_ZNSt10lock_guardISt15recursive_mutexED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %10) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #8
  br label %908

908:                                              ; preds = %907
  %909 = load ptr, ptr %13, align 8
  %910 = load i32, ptr %14, align 4
  %911 = insertvalue { ptr, i32 } poison, ptr %909, 0
  %912 = insertvalue { ptr, i32 } %911, i32 %910, 1
  resume { ptr, i32 } %912
}

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN7DynexCN10Blockchain17check_non_privacyERKNS_11TransactionE(ptr noundef nonnull align 8 dereferenceable(2636), ptr noundef nonnull align 8 dereferenceable(112)) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local i64 @_ZNSt6chrono13duration_castINS_8durationIlSt5ratioILl1ELl1000EEEElS2_ILl1ELl1000000000EEEENSt9enable_ifIXsr13__is_durationIT_EE5valueES7_E4typeERKNS1_IT0_T1_EE(ptr noundef nonnull align 8 dereferenceable(8)) #3

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

declare noundef zeroext i1 @_ZNK7DynexCN11Checkpoints21is_in_checkpoint_zoneEj(ptr noundef nonnull align 8 dereferenceable(88), i32 noundef) #6

declare noundef zeroext i1 @_ZNK7DynexCN11Checkpoints11check_blockEjRKN6Crypto4HashE(ptr noundef nonnull align 8 dereferenceable(88), i32 noundef, ptr noundef nonnull align 1 dereferenceable(32)) #6

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN7DynexCN10Blockchain15pushTransactionERNS0_10BlockEntryERKN6Crypto4HashENS0_16TransactionIndexE(ptr noundef nonnull align 8 dereferenceable(2636), ptr noundef nonnull align 8 dereferenceable(440), ptr noundef nonnull align 1 dereferenceable(32), i64) #3 align 2

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

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

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

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

declare noundef i64 @_ZN7DynexCN14getInputAmountERKNS_11TransactionE(ptr noundef nonnull align 8 dereferenceable(112)) #6

declare noundef i64 @_ZN7DynexCN15getOutputAmountERKNS_11TransactionE(ptr noundef nonnull align 8 dereferenceable(112)) #6

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7DynexCN10Blockchain15popTransactionsERKNS0_10BlockEntryERKN6Crypto4HashE(ptr noundef nonnull align 8 dereferenceable(2636), ptr noundef nonnull align 8 dereferenceable(440), ptr noundef nonnull align 1 dereferenceable(32)) #3 align 2

declare noundef zeroext i1 @_ZN7DynexCN9AuthBlockEjjRN7Logging7ILoggerE(i32 noundef, i32 noundef, ptr noundef nonnull align 8 dereferenceable(8)) #6

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(216) ptr @_ZSt3hexRSt8ios_base(ptr noundef nonnull align 8 dereferenceable(216)) #5

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local i8 @_ZSt7setfillIcESt8_SetfillIT_ES1_(i8 noundef signext) #4

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local i32 @_ZSt4setwi(i32 noundef) #4

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN7DynexCN10Blockchain9pushBlockERNS0_10BlockEntryE(ptr noundef nonnull align 8 dereferenceable(2636), ptr noundef nonnull align 8 dereferenceable(440)) #3 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7DynexCN20BasicUpgradeDetectorI13SwappedVectorINS_10Blockchain10BlockEntryEEE11blockPushedEv(ptr noundef nonnull align 8 dereferenceable(64)) #3 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 = { 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 #4 = { 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 #5 = { 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 #6 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { nounwind }

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

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

%"struct.Crypto::Hash" = type { [32 x i8] }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon.38 }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon.38 = type { i64, [8 x i8] }
%"class.Logging::LoggerMessage" = type <{ %"class.std::basic_ostream.base", %"class.std::basic_streambuf", ptr, %"class.std::__cxx11::basic_string", i32, [4 x i8], %"class.std::__cxx11::basic_string", %"class.boost::posix_time::ptime", i8, [7 x i8], %"class.std::basic_ios" }>
%"class.std::basic_ostream.base" = type { ptr }
%"class.std::basic_streambuf" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::locale" }
%"class.std::locale" = type { ptr }
%"class.boost::posix_time::ptime" = type { %"class.boost::date_time::base_time" }
%"class.boost::date_time::base_time" = type { %"struct.boost::date_time::counted_time_rep" }
%"struct.boost::date_time::counted_time_rep" = type { %"class.boost::date_time::int_adapter" }
%"class.boost::date_time::int_adapter" = type { i64 }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::vector.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::lock_guard" = type { ptr }
%"class.std::chrono::time_point" = type { %"class.std::chrono::duration" }
%"class.std::chrono::duration" = type { i64 }
%"struct.DynexCN::TransactionExtraMergeTag" = type { i64, %"struct.Crypto::Hash" }
%"class.std::chrono::duration.389" = type { i64 }
%"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.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 }
%"struct.std::_Setfill" = type { i8 }
%"struct.std::_Setw" = type { i32 }

@_ZN7DynexCNL9NULL_HASHE = external hidden local_unnamed_addr global %"struct.Crypto::Hash", align 1
@_ZN7Logging7DEFAULTB5cxx11E = external global %"class.std::__cxx11::basic_string", align 8
@_ZN7Logging10BRIGHT_REDB5cxx11E = external global %"class.std::__cxx11::basic_string", align 8
@_ZN7Logging12BRIGHT_WHITEB5cxx11E = external global %"class.std::__cxx11::basic_string", align 8
@.str.30 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.104 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.105 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.116 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.117 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.180 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.208 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.209 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.210 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.211 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.212 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.213 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.214 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.215 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.216 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.217 = external hidden unnamed_addr constant [34 x i8], align 1
@_ZN7Logging14BRIGHT_MAGENTAB5cxx11E = external global %"class.std::__cxx11::basic_string", align 8
@.str.218 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.219 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.220 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.221 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.222 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.223 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.224 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.225 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.226 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.227 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.228 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.229 = external hidden unnamed_addr constant [4 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: mustprogress uwtable
declare dso_local noundef i32 @_ZN7DynexCN10Blockchain26getCurrentBlockchainHeightEv(ptr noundef nonnull align 8 dereferenceable(2636)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN6CryptoneERKNS_4HashES2_(ptr noundef nonnull align 1 dereferenceable(32), 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 @_ZStlsIN7Logging13LoggerMessageEmEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #5

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

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

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

; 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 #3 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: 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 #5

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

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

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

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

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

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

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

; Function Attrs: nounwind
declare i64 @_ZNSt6chrono3_V212steady_clock3nowEv() local_unnamed_addr #7

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7DynexCN13getObjectHashINS_11TransactionEEEN6Crypto4HashERKT_(ptr dead_on_unwind noalias writable sret(%"struct.Crypto::Hash") align 1, ptr noundef nonnull align 8 dereferenceable(112)) local_unnamed_addr #3

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7DynexCN10Blockchain9getTailIdEv(ptr dead_on_unwind noalias writable sret(%"struct.Crypto::Hash") align 1, ptr noundef nonnull align 8 dereferenceable(2636)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZNK7DynexCN10BlockIndex8hasBlockERKN6Crypto4HashE(ptr noundef nonnull align 8 dereferenceable(128), ptr noundef nonnull align 1 dereferenceable(32)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(384) ptr @_ZN7DynexCN5BlockaSERKS0_(ptr noundef nonnull align 8 dereferenceable(384), ptr noundef nonnull align 8 dereferenceable(384)) local_unnamed_addr #5 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN7DynexCN10Blockchain29prevalidate_miner_transactionERKNS_5BlockEj(ptr noundef nonnull align 8 dereferenceable(2636), ptr noundef nonnull align 8 dereferenceable(384), i32 noundef) local_unnamed_addr #3 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN7DynexCN10Blockchain26validate_miner_transactionERKNS_5BlockEjmmmRmRl(ptr noundef nonnull align 8 dereferenceable(2636), ptr noundef nonnull align 8 dereferenceable(384), i32 noundef, i64 noundef, i64 noundef, i64 noundef, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3 align 2

declare void @_ZNK7DynexCN8Currency12formatAmountB5cxx11Em(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(984), i64 noundef) local_unnamed_addr #6

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_(ptr noundef nonnull align 8 dereferenceable(8)) #5

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN7DynexCN10Blockchain24checkCumulativeBlockSizeERKN6Crypto4HashEmm(ptr noundef nonnull align 8 dereferenceable(2636), ptr noundef nonnull align 1 dereferenceable(32), i64 noundef, i64 noundef) local_unnamed_addr #3 align 2

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

declare noundef zeroext i1 @_ZN7DynexCN26getMergeMiningTagFromExtraERKSt6vectorIhSaIhEERNS_24TransactionExtraMergeTagE(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(40)) local_unnamed_addr #6

declare noundef zeroext i1 @_ZNK7DynexCN8Currency16checkProofOfWorkERN6Crypto10cn_contextERKNS_5BlockEmRNS1_4HashE(ptr noundef nonnull align 8 dereferenceable(984), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(384), i64 noundef, ptr noundef nonnull align 1 dereferenceable(32)) local_unnamed_addr #6

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7DynexCN13toBinaryArrayINS_11TransactionEEESt6vectorIhSaIhEERKT_(ptr dead_on_unwind noalias writable sret(%"class.std::vector.162") align 8, ptr noundef nonnull align 8 dereferenceable(112)) local_unnamed_addr #3

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

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #5

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef i64 @_ZN7DynexCN19getObjectBinarySizeINS_11TransactionEEEmRKT_(ptr noundef nonnull align 8 dereferenceable(112)) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_ZN7DynexCN10Blockchain9pushBlockERKNS_5BlockERKSt6vectorINS_11TransactionESaIS5_EERNS_26block_verification_contextE(ptr noundef nonnull align 8 dereferenceable(2636) %0, ptr noundef nonnull align 8 dereferenceable(384) %1, ptr noundef nonnull align 8 dereferenceable(24) %2, ptr nocapture noundef nonnull writeonly align 1 dereferenceable(5) %3) local_unnamed_addr #3 align 2 personality ptr @__gxx_personality_v0 {
  %5 = alloca %"class.std::lock_guard", align 8
  %6 = alloca %"class.std::chrono::time_point", align 8
  %7 = alloca %"struct.Crypto::Hash", align 1
  %8 = alloca %"class.Logging::LoggerMessage", align 8
  %9 = alloca %"struct.DynexCN::TransactionExtraMergeTag", align 8
  %10 = alloca %"class.Logging::LoggerMessage", align 8
  %11 = alloca %"struct.Crypto::Hash", align 1
  %12 = alloca %"class.Logging::LoggerMessage", align 8
  %13 = alloca %"struct.Crypto::Hash", align 1
  %14 = alloca %"class.Logging::LoggerMessage", align 8
  %15 = alloca %"class.std::chrono::time_point", align 8
  %16 = alloca i64, align 8
  %17 = alloca %"class.std::chrono::duration.389", align 8
  %18 = alloca %"class.std::chrono::duration", align 8
  %19 = alloca %"class.std::chrono::time_point", align 8
  %20 = alloca %"class.Logging::LoggerMessage", align 8
  %21 = alloca %"class.std::chrono::time_point", align 8
  %22 = alloca %"struct.Crypto::Hash", align 1
  %23 = alloca %"class.Logging::LoggerMessage", align 8
  %24 = alloca %"class.Logging::LoggerMessage", align 8
  %25 = alloca %"class.std::chrono::duration.389", align 8
  %26 = alloca %"class.std::chrono::duration", align 8
  %27 = alloca %"class.std::chrono::time_point", align 8
  %28 = alloca %"class.Logging::LoggerMessage", align 8
  %29 = alloca %"struct.Crypto::Hash", align 1
  %30 = alloca %"struct.DynexCN::Blockchain::BlockEntry", align 8
  %31 = alloca %"class.std::vector.162", align 8
  %32 = alloca %"class.Logging::LoggerMessage", align 8
  %33 = alloca %"class.Logging::LoggerMessage", align 8
  %34 = alloca i64, align 8
  %35 = alloca i64, align 8
  %36 = alloca %"class.Logging::LoggerMessage", align 8
  %37 = alloca %"class.Logging::LoggerMessage", align 8
  %38 = alloca i32, align 4
  %39 = alloca %"struct.std::_Setfill", align 1
  %40 = alloca %"struct.std::_Setw", align 4
  %41 = alloca %"class.std::chrono::duration.389", align 8
  %42 = alloca %"class.std::chrono::duration", align 8
  %43 = alloca %"class.std::chrono::time_point", align 8
  %44 = alloca %"class.Logging::LoggerMessage", align 8
  %45 = alloca %"class.std::__cxx11::basic_string", align 8
  %46 = alloca %"class.std::__cxx11::basic_string", align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #8
  %47 = getelementptr inbounds i8, ptr %0, i64 96
  call void @_ZNSt10lock_guardISt15recursive_mutexEC2ERS0_(ptr noundef nonnull align 8 dereferenceable(8) %5, ptr noundef nonnull align 8 dereferenceable(40) %47)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #8
  %48 = call i64 @_ZNSt6chrono3_V212steady_clock3nowEv() #8
  store i64 %48, ptr %6, align 8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %7) #8
  invoke void @_ZN7DynexCN14get_block_hashERKNS_5BlockE(ptr dead_on_unwind nonnull writable sret(%"struct.Crypto::Hash") align 1 %7, ptr noundef nonnull align 8 dereferenceable(384) %1)
          to label %49 unwind label %63

49:                                               ; preds = %4
  %50 = getelementptr inbounds i8, ptr %0, i64 1760
  %51 = invoke noundef zeroext i1 @_ZNK7DynexCN10BlockIndex8hasBlockERKN6Crypto4HashE(ptr noundef nonnull align 8 dereferenceable(128) %50, ptr noundef nonnull align 1 dereferenceable(32) %7)
          to label %52 unwind label %63

52:                                               ; preds = %49
  br i1 %51, label %53, label %70

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

55:                                               ; preds = %53
  %56 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA7_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %8, ptr noundef nonnull align 1 dereferenceable(7) @.str.180)
          to label %57 unwind label %67

57:                                               ; preds = %55
  %58 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEN6Crypto4HashEEOT_S5_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %56, ptr noundef nonnull align 1 dereferenceable(32) %7)
          to label %59 unwind label %67

59:                                               ; preds = %57
  %60 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA31_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %58, ptr noundef nonnull align 1 dereferenceable(31) @.str.208)
          to label %61 unwind label %67

61:                                               ; preds = %59
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %8) #8
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %8) #8
  %62 = getelementptr inbounds i8, ptr %3, i64 1
  store i8 1, ptr %62, align 1, !tbaa !5
  br label %575

63:                                               ; preds = %75, %70, %49, %4
  %64 = landingpad { ptr, i32 }
          cleanup
  br label %576

65:                                               ; preds = %53
  %66 = landingpad { ptr, i32 }
          cleanup
  br label %69

67:                                               ; preds = %59, %57, %55
  %68 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %8) #8
  br label %69

69:                                               ; preds = %67, %65
  %.pn191 = phi { ptr, i32 } [ %68, %67 ], [ %66, %65 ]
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %8) #8
  br label %576

70:                                               ; preds = %52
  %71 = invoke noundef zeroext i1 @_ZN7DynexCN10Blockchain17checkBlockVersionERKNS_5BlockERKN6Crypto4HashE(ptr noundef nonnull align 8 dereferenceable(2636) %0, ptr noundef nonnull align 8 dereferenceable(384) %1, ptr noundef nonnull align 1 dereferenceable(32) %7)
          to label %72 unwind label %63

72:                                               ; preds = %70
  br i1 %71, label %75, label %73

73:                                               ; preds = %72
  %74 = getelementptr inbounds i8, ptr %3, i64 1
  store i8 1, ptr %74, align 1, !tbaa !5
  br label %575

75:                                               ; preds = %72
  %76 = invoke noundef zeroext i1 @_ZN7DynexCN10Blockchain20checkParentBlockSizeERKNS_5BlockERKN6Crypto4HashE(ptr noundef nonnull align 8 dereferenceable(2636) %0, ptr noundef nonnull align 8 dereferenceable(384) %1, ptr noundef nonnull align 1 dereferenceable(32) %7)
          to label %77 unwind label %63

77:                                               ; preds = %75
  br i1 %76, label %80, label %78

78:                                               ; preds = %77
  %79 = getelementptr inbounds i8, ptr %3, i64 1
  store i8 1, ptr %79, align 1, !tbaa !5
  br label %575

80:                                               ; preds = %77
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %9) #8
  %81 = getelementptr inbounds i8, ptr %1, i64 248
  %82 = getelementptr inbounds i8, ptr %1, i64 312
  %83 = invoke noundef zeroext i1 @_ZN7DynexCN26getMergeMiningTagFromExtraERKSt6vectorIhSaIhEERNS_24TransactionExtraMergeTagE(ptr noundef nonnull align 8 dereferenceable(24) %82, ptr noundef nonnull align 8 dereferenceable(40) %9)
          to label %84 unwind label %92

84:                                               ; preds = %80
  %85 = load i8, ptr %1, align 8
  %86 = icmp ugt i8 %85, 3
  %or.cond = select i1 %83, i1 %86, i1 false
  br i1 %or.cond, label %87, label %99

87:                                               ; preds = %84
  call void @llvm.lifetime.start.p0(i64 432, ptr nonnull %10) #8
  %88 = 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 %10, ptr noundef nonnull align 8 dereferenceable(40) %88, i32 noundef 1, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging10BRIGHT_REDB5cxx11E)
          to label %89 unwind label %94

89:                                               ; preds = %87
  %90 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA53_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %10, ptr noundef nonnull align 1 dereferenceable(53) @.str.105)
          to label %91 unwind label %96

91:                                               ; preds = %89
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %10) #8
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %10) #8
  br label %573

92:                                               ; preds = %130, %80
  %93 = landingpad { ptr, i32 }
          cleanup
  br label %574

94:                                               ; preds = %87
  %95 = landingpad { ptr, i32 }
          cleanup
  br label %98

96:                                               ; preds = %89
  %97 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %10) #8
  br label %98

98:                                               ; preds = %96, %94
  %.pn188 = phi { ptr, i32 } [ %97, %96 ], [ %95, %94 ]
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %10) #8
  br label %574

99:                                               ; preds = %84
  %100 = getelementptr inbounds i8, ptr %1, i64 16
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %11) #8
  invoke void @_ZN7DynexCN10Blockchain9getTailIdEv(ptr dead_on_unwind nonnull writable sret(%"struct.Crypto::Hash") align 1 %11, ptr noundef nonnull align 8 dereferenceable(2636) %0)
          to label %101 unwind label %120

101:                                              ; preds = %99
  %102 = call noundef zeroext i1 @_ZN6CryptoneERKNS_4HashES2_(ptr noundef nonnull align 1 dereferenceable(32) %100, ptr noundef nonnull align 1 dereferenceable(32) %11)
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #8
  br i1 %102, label %103, label %130

103:                                              ; preds = %101
  call void @llvm.lifetime.start.p0(i64 432, ptr nonnull %12) #8
  %104 = 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 %12, ptr noundef nonnull align 8 dereferenceable(40) %104, i32 noundef 3, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging12BRIGHT_WHITEB5cxx11E)
          to label %105 unwind label %122

105:                                              ; preds = %103
  %106 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA7_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %12, ptr noundef nonnull align 1 dereferenceable(7) @.str.180)
          to label %107 unwind label %124

107:                                              ; preds = %105
  %108 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEN6Crypto4HashEEOT_S5_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %106, ptr noundef nonnull align 1 dereferenceable(32) %7)
          to label %109 unwind label %124

109:                                              ; preds = %107
  %110 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA31_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %108, ptr noundef nonnull align 1 dereferenceable(31) @.str.209)
          to label %111 unwind label %124

111:                                              ; preds = %109
  %112 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEN6Crypto4HashEEOT_S5_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %110, ptr noundef nonnull align 1 dereferenceable(32) %100)
          to label %113 unwind label %124

113:                                              ; preds = %111
  %114 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA13_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %112, ptr noundef nonnull align 1 dereferenceable(13) @.str.82)
          to label %115 unwind label %124

115:                                              ; preds = %113
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %13) #8
  invoke void @_ZN7DynexCN10Blockchain9getTailIdEv(ptr dead_on_unwind nonnull writable sret(%"struct.Crypto::Hash") align 1 %13, ptr noundef nonnull align 8 dereferenceable(2636) %0)
          to label %116 unwind label %126

116:                                              ; preds = %115
  %117 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEN6Crypto4HashEEOT_S5_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %114, ptr noundef nonnull align 1 dereferenceable(32) %13)
          to label %118 unwind label %126

118:                                              ; preds = %116
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #8
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %12) #8
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %12) #8
  %119 = getelementptr inbounds i8, ptr %3, i64 1
  store i8 1, ptr %119, align 1, !tbaa !5
  br label %573

120:                                              ; preds = %99
  %121 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #8
  br label %574

122:                                              ; preds = %103
  %123 = landingpad { ptr, i32 }
          cleanup
  br label %129

124:                                              ; preds = %113, %111, %109, %107, %105
  %125 = landingpad { ptr, i32 }
          cleanup
  br label %128

126:                                              ; preds = %116, %115
  %127 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #8
  br label %128

128:                                              ; preds = %126, %124
  %.pn185 = phi { ptr, i32 } [ %127, %126 ], [ %125, %124 ]
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %12) #8
  br label %129

129:                                              ; preds = %128, %122
  %.pn185.pn = phi { ptr, i32 } [ %.pn185, %128 ], [ %123, %122 ]
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %12) #8
  br label %574

130:                                              ; preds = %101
  %131 = invoke noundef zeroext i1 @_ZN7DynexCN10Blockchain26check_block_timestamp_mainERKNS_5BlockE(ptr noundef nonnull align 8 dereferenceable(2636) %0, ptr noundef nonnull align 8 dereferenceable(384) %1)
          to label %132 unwind label %92

132:                                              ; preds = %130
  br i1 %131, label %151, label %133

133:                                              ; preds = %132
  call void @llvm.lifetime.start.p0(i64 432, ptr nonnull %14) #8
  %134 = 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 %14, ptr noundef nonnull align 8 dereferenceable(40) %134, i32 noundef 3, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging12BRIGHT_WHITEB5cxx11E)
          to label %135 unwind label %146

135:                                              ; preds = %133
  %136 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA7_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %14, ptr noundef nonnull align 1 dereferenceable(7) @.str.180)
          to label %137 unwind label %148

137:                                              ; preds = %135
  %138 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEN6Crypto4HashEEOT_S5_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %136, ptr noundef nonnull align 1 dereferenceable(32) %7)
          to label %139 unwind label %148

139:                                              ; preds = %137
  %140 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA25_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %138, ptr noundef nonnull align 1 dereferenceable(25) @.str.210)
          to label %141 unwind label %148

141:                                              ; preds = %139
  %142 = getelementptr inbounds i8, ptr %1, i64 8
  %143 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEmEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %140, ptr noundef nonnull align 8 dereferenceable(8) %142)
          to label %144 unwind label %148

144:                                              ; preds = %141
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %14) #8
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %14) #8
  %145 = getelementptr inbounds i8, ptr %3, i64 1
  store i8 1, ptr %145, align 1, !tbaa !5
  br label %573

146:                                              ; preds = %133
  %147 = landingpad { ptr, i32 }
          cleanup
  br label %150

148:                                              ; preds = %141, %139, %137, %135
  %149 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %14) #8
  br label %150

150:                                              ; preds = %148, %146
  %.pn = phi { ptr, i32 } [ %149, %148 ], [ %147, %146 ]
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %14) #8
  br label %574

151:                                              ; preds = %132
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #8
  %152 = call i64 @_ZNSt6chrono3_V212steady_clock3nowEv() #8
  store i64 %152, ptr %15, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #8
  %153 = invoke noundef i64 @_ZN7DynexCN10Blockchain25getDifficultyForNextBlockEv(ptr noundef nonnull align 8 dereferenceable(2636) %0)
          to label %154 unwind label %166

154:                                              ; preds = %151
  store i64 %153, ptr %16, align 8, !tbaa !10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #8
  %155 = call i64 @_ZNSt6chrono3_V212steady_clock3nowEv() #8
  store i64 %155, ptr %19, align 8
  %156 = invoke i64 @_ZNSt6chronomiINS_3_V212steady_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE(ptr noundef nonnull align 8 dereferenceable(8) %19, ptr noundef nonnull align 8 dereferenceable(8) %15)
          to label %157 unwind label %168

157:                                              ; preds = %154
  store i64 %156, ptr %18, align 8
  %158 = invoke i64 @_ZNSt6chrono13duration_castINS_8durationIlSt5ratioILl1ELl1000EEEElS2_ILl1ELl1000000000EEEENSt9enable_ifIXsr13__is_durationIT_EE5valueES7_E4typeERKNS1_IT0_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %18)
          to label %159 unwind label %168

159:                                              ; preds = %157
  store i64 %158, ptr %17, align 8
  %160 = call noundef i64 @_ZNKSt6chrono8durationIlSt5ratioILl1ELl1000EEE5countEv(ptr noundef nonnull align 8 dereferenceable(8) %17)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #8
  %.not = icmp eq i64 %153, 0
  br i1 %.not, label %161, label %175

161:                                              ; preds = %159
  call void @llvm.lifetime.start.p0(i64 432, ptr nonnull %20) #8
  %162 = 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 %20, ptr noundef nonnull align 8 dereferenceable(40) %162, i32 noundef 1, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging10BRIGHT_REDB5cxx11E)
          to label %163 unwind label %170

163:                                              ; preds = %161
  %164 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA40_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %20, ptr noundef nonnull align 1 dereferenceable(40) @.str.211)
          to label %165 unwind label %172

165:                                              ; preds = %163
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %20) #8
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %20) #8
  br label %571

166:                                              ; preds = %151
  %167 = landingpad { ptr, i32 }
          cleanup
  br label %572

168:                                              ; preds = %157, %154
  %169 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #8
  br label %572

170:                                              ; preds = %161
  %171 = landingpad { ptr, i32 }
          cleanup
  br label %174

172:                                              ; preds = %163
  %173 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %20) #8
  br label %174

174:                                              ; preds = %172, %170
  %.pn142 = phi { ptr, i32 } [ %173, %172 ], [ %171, %170 ]
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %20) #8
  br label %572

175:                                              ; preds = %159
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #8
  %176 = call i64 @_ZNSt6chrono3_V212steady_clock3nowEv() #8
  store i64 %176, ptr %21, align 8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %22) #8
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(32) %22, ptr noundef nonnull align 1 dereferenceable(32) @_ZN7DynexCNL9NULL_HASHE, i64 32, i1 false), !tbaa.struct !12
  %177 = getelementptr inbounds i8, ptr %0, i64 480
  %178 = invoke noundef i32 @_ZN7DynexCN10Blockchain26getCurrentBlockchainHeightEv(ptr noundef nonnull align 8 dereferenceable(2636) %0)
          to label %179 unwind label %193

179:                                              ; preds = %175
  %180 = invoke noundef zeroext i1 @_ZNK7DynexCN11Checkpoints21is_in_checkpoint_zoneEj(ptr noundef nonnull align 8 dereferenceable(88) %177, i32 noundef %178)
          to label %181 unwind label %193

181:                                              ; preds = %179
  br i1 %180, label %182, label %200

182:                                              ; preds = %181
  %183 = invoke noundef i32 @_ZN7DynexCN10Blockchain26getCurrentBlockchainHeightEv(ptr noundef nonnull align 8 dereferenceable(2636) %0)
          to label %184 unwind label %193

184:                                              ; preds = %182
  %185 = invoke noundef zeroext i1 @_ZNK7DynexCN11Checkpoints11check_blockEjRKN6Crypto4HashE(ptr noundef nonnull align 8 dereferenceable(88) %177, i32 noundef %183, ptr noundef nonnull align 1 dereferenceable(32) %7)
          to label %186 unwind label %193

186:                                              ; preds = %184
  br i1 %185, label %227, label %187

187:                                              ; preds = %186
  call void @llvm.lifetime.start.p0(i64 432, ptr nonnull %23) #8
  %188 = 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 %23, ptr noundef nonnull align 8 dereferenceable(40) %188, i32 noundef 1, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging10BRIGHT_REDB5cxx11E)
          to label %189 unwind label %195

189:                                              ; preds = %187
  %190 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA29_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %23, ptr noundef nonnull align 1 dereferenceable(29) @.str.104)
          to label %191 unwind label %197

191:                                              ; preds = %189
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %23) #8
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %23) #8
  %192 = getelementptr inbounds i8, ptr %3, i64 1
  store i8 1, ptr %192, align 1, !tbaa !5
  br label %569

193:                                              ; preds = %200, %184, %182, %179, %175
  %194 = landingpad { ptr, i32 }
          cleanup
  br label %570

195:                                              ; preds = %187
  %196 = landingpad { ptr, i32 }
          cleanup
  br label %199

197:                                              ; preds = %189
  %198 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %23) #8
  br label %199

199:                                              ; preds = %197, %195
  %.pn146 = phi { ptr, i32 } [ %198, %197 ], [ %196, %195 ]
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %23) #8
  br label %570

200:                                              ; preds = %181
  %201 = getelementptr inbounds i8, ptr %0, i64 80
  %202 = load ptr, ptr %201, align 8, !tbaa !14
  %203 = getelementptr inbounds i8, ptr %0, i64 136
  %204 = invoke noundef zeroext i1 @_ZNK7DynexCN8Currency16checkProofOfWorkERN6Crypto10cn_contextERKNS_5BlockEmRNS1_4HashE(ptr noundef nonnull align 8 dereferenceable(984) %202, ptr noundef nonnull align 8 dereferenceable(8) %203, ptr noundef nonnull align 8 dereferenceable(384) %1, i64 noundef %153, ptr noundef nonnull align 1 dereferenceable(32) %22)
          to label %205 unwind label %193

205:                                              ; preds = %200
  br i1 %204, label %227, label %206

206:                                              ; preds = %205
  call void @llvm.lifetime.start.p0(i64 432, ptr nonnull %24) #8
  %207 = 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 %24, ptr noundef nonnull align 8 dereferenceable(40) %207, i32 noundef 3, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging12BRIGHT_WHITEB5cxx11E)
          to label %208 unwind label %222

208:                                              ; preds = %206
  %209 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA7_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %24, ptr noundef nonnull align 1 dereferenceable(7) @.str.180)
          to label %210 unwind label %224

210:                                              ; preds = %208
  %211 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEN6Crypto4HashEEOT_S5_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %209, ptr noundef nonnull align 1 dereferenceable(32) %7)
          to label %212 unwind label %224

212:                                              ; preds = %210
  %213 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA31_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %211, ptr noundef nonnull align 1 dereferenceable(31) @.str.212)
          to label %214 unwind label %224

214:                                              ; preds = %212
  %215 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEN6Crypto4HashEEOT_S5_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %213, ptr noundef nonnull align 1 dereferenceable(32) %22)
          to label %216 unwind label %224

216:                                              ; preds = %214
  %217 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA24_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %215, ptr noundef nonnull align 1 dereferenceable(24) @.str.213)
          to label %218 unwind label %224

218:                                              ; preds = %216
  %219 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEmEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %217, ptr noundef nonnull align 8 dereferenceable(8) %16)
          to label %220 unwind label %224

220:                                              ; preds = %218
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %24) #8
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %24) #8
  %221 = getelementptr inbounds i8, ptr %3, i64 1
  store i8 1, ptr %221, align 1, !tbaa !5
  br label %569

222:                                              ; preds = %206
  %223 = landingpad { ptr, i32 }
          cleanup
  br label %226

224:                                              ; preds = %218, %216, %214, %212, %210, %208
  %225 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %24) #8
  br label %226

226:                                              ; preds = %224, %222
  %.pn144 = phi { ptr, i32 } [ %225, %224 ], [ %223, %222 ]
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %24) #8
  br label %570

227:                                              ; preds = %205, %186
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %25) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %26) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) #8
  %228 = call i64 @_ZNSt6chrono3_V212steady_clock3nowEv() #8
  store i64 %228, ptr %27, align 8
  %229 = invoke i64 @_ZNSt6chronomiINS_3_V212steady_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE(ptr noundef nonnull align 8 dereferenceable(8) %27, ptr noundef nonnull align 8 dereferenceable(8) %21)
          to label %230 unwind label %249

230:                                              ; preds = %227
  store i64 %229, ptr %26, align 8
  %231 = invoke i64 @_ZNSt6chrono13duration_castINS_8durationIlSt5ratioILl1ELl1000EEEElS2_ILl1ELl1000000000EEEENSt9enable_ifIXsr13__is_durationIT_EE5valueES7_E4typeERKNS1_IT0_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %26)
          to label %232 unwind label %249

232:                                              ; preds = %230
  store i64 %231, ptr %25, align 8
  %233 = call noundef i64 @_ZNKSt6chrono8durationIlSt5ratioILl1ELl1000EEE5countEv(ptr noundef nonnull align 8 dereferenceable(8) %25)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #8
  %234 = getelementptr inbounds i8, ptr %0, i64 576
  %235 = call noundef i64 @_ZNK13SwappedVectorIN7DynexCN10Blockchain10BlockEntryEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(1184) %234)
  %236 = trunc i64 %235 to i32
  %237 = invoke noundef zeroext i1 @_ZN7DynexCN10Blockchain29prevalidate_miner_transactionERKNS_5BlockEj(ptr noundef nonnull align 8 dereferenceable(2636) %0, ptr noundef nonnull align 8 dereferenceable(384) %1, i32 noundef %236)
          to label %238 unwind label %251

238:                                              ; preds = %232
  br i1 %237, label %258, label %239

239:                                              ; preds = %238
  call void @llvm.lifetime.start.p0(i64 432, ptr nonnull %28) #8
  %240 = 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 %28, ptr noundef nonnull align 8 dereferenceable(40) %240, i32 noundef 3, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging12BRIGHT_WHITEB5cxx11E)
          to label %241 unwind label %253

241:                                              ; preds = %239
  %242 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA7_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %28, ptr noundef nonnull align 1 dereferenceable(7) @.str.180)
          to label %243 unwind label %255

243:                                              ; preds = %241
  %244 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEN6Crypto4HashEEOT_S5_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %242, ptr noundef nonnull align 1 dereferenceable(32) %7)
          to label %245 unwind label %255

245:                                              ; preds = %243
  %246 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA30_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %244, ptr noundef nonnull align 1 dereferenceable(30) @.str.214)
          to label %247 unwind label %255

247:                                              ; preds = %245
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %28) #8
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %28) #8
  %248 = getelementptr inbounds i8, ptr %3, i64 1
  store i8 1, ptr %248, align 1, !tbaa !5
  br label %569

249:                                              ; preds = %230, %227
  %250 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #8
  br label %570

251:                                              ; preds = %232
  %252 = landingpad { ptr, i32 }
          cleanup
  br label %570

253:                                              ; preds = %239
  %254 = landingpad { ptr, i32 }
          cleanup
  br label %257

255:                                              ; preds = %245, %243, %241
  %256 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %28) #8
  br label %257

257:                                              ; preds = %255, %253
  %.pn148 = phi { ptr, i32 } [ %256, %255 ], [ %254, %253 ]
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %28) #8
  br label %570

258:                                              ; preds = %238
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %29) #8
  invoke void @_ZN7DynexCN13getObjectHashINS_11TransactionEEEN6Crypto4HashERKT_(ptr dead_on_unwind nonnull writable sret(%"struct.Crypto::Hash") align 1 %29, ptr noundef nonnull align 8 dereferenceable(112) %81)
          to label %259 unwind label %273

259:                                              ; preds = %258
  call void @llvm.lifetime.start.p0(i64 440, ptr nonnull %30) #8
  call void @_ZN7DynexCN10Blockchain10BlockEntryC2Ev(ptr noundef nonnull align 8 dereferenceable(440) %30) #8
  %260 = invoke noundef nonnull align 8 dereferenceable(384) ptr @_ZN7DynexCN5BlockaSERKS0_(ptr noundef nonnull align 8 dereferenceable(384) %30, ptr noundef nonnull align 8 dereferenceable(384) %1)
          to label %261 unwind label %275

261:                                              ; preds = %259
  %262 = getelementptr inbounds i8, ptr %30, i64 416
  invoke void @_ZNSt6vectorIN7DynexCN10Blockchain16TransactionEntryESaIS2_EE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %262, i64 noundef 1)
          to label %263 unwind label %275

263:                                              ; preds = %261
  %264 = call noundef nonnull align 8 dereferenceable(136) ptr @_ZNSt6vectorIN7DynexCN10Blockchain16TransactionEntryESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %262, i64 noundef 0) #8
  %265 = invoke noundef nonnull align 8 dereferenceable(112) ptr @_ZN7DynexCN11TransactionaSERKS0_(ptr noundef nonnull align 8 dereferenceable(112) %264, ptr noundef nonnull align 8 dereferenceable(112) %81)
          to label %266 unwind label %275

266:                                              ; preds = %263
  %267 = call noundef i64 @_ZNK13SwappedVectorIN7DynexCN10Blockchain10BlockEntryEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(1184) %234)
  %.sroa.025.0.insert.ext26 = and i64 %267, 4294967295
  %268 = invoke noundef zeroext i1 @_ZN7DynexCN10Blockchain15pushTransactionERNS0_10BlockEntryERKN6Crypto4HashENS0_16TransactionIndexE(ptr noundef nonnull align 8 dereferenceable(2636) %0, ptr noundef nonnull align 8 dereferenceable(440) %30, ptr noundef nonnull align 1 dereferenceable(32) %29, i64 %.sroa.025.0.insert.ext26)
          to label %269 unwind label %277

269:                                              ; preds = %266
  %270 = invoke noundef i64 @_ZN7DynexCN19getObjectBinarySizeINS_11TransactionEEEmRKT_(ptr noundef nonnull align 8 dereferenceable(112) %81)
          to label %.preheader unwind label %279

.preheader:                                       ; preds = %269
  %271 = call noundef i64 @_ZNKSt6vectorIN7DynexCN11TransactionESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %2) #8
  %.not157216.not = icmp eq i64 %271, 0
  br i1 %.not157216.not, label %._crit_edge, label %.lr.ph

.lr.ph:                                           ; preds = %.preheader
  %272 = getelementptr inbounds i8, ptr %1, i64 360
  br label %281

273:                                              ; preds = %258
  %274 = landingpad { ptr, i32 }
          cleanup
  br label %568

275:                                              ; preds = %263, %261, %259
  %276 = landingpad { ptr, i32 }
          cleanup
  br label %567

277:                                              ; preds = %266
  %278 = landingpad { ptr, i32 }
          cleanup
  br label %567

279:                                              ; preds = %269
  %280 = landingpad { ptr, i32 }
          cleanup
  br label %567

281:                                              ; preds = %.lr.ph, %347
  %.0133220 = phi i64 [ 0, %.lr.ph ], [ %345, %347 ]
  %.0134219 = phi i64 [ 0, %.lr.ph ], [ %350, %347 ]
  %.0137218 = phi i64 [ %270, %.lr.ph ], [ %348, %347 ]
  %282 = call noundef nonnull align 1 dereferenceable(32) ptr @_ZNKSt6vectorIN6Crypto4HashESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %272, i64 noundef %.0133220) #8
  %283 = call noundef i64 @_ZNKSt6vectorIN7DynexCN10Blockchain16TransactionEntryESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %262) #8
  %284 = add i64 %283, 1
  invoke void @_ZNSt6vectorIN7DynexCN10Blockchain16TransactionEntryESaIS2_EE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %262, i64 noundef %284)
          to label %285 unwind label %314

285:                                              ; preds = %281
  %286 = call noundef nonnull align 8 dereferenceable(112) ptr @_ZNKSt6vectorIN7DynexCN11TransactionESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %2, i64 noundef %.0133220) #8
  %287 = call noundef nonnull align 8 dereferenceable(136) ptr @_ZNSt6vectorIN7DynexCN10Blockchain16TransactionEntryESaIS2_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %262) #8
  %288 = invoke noundef nonnull align 8 dereferenceable(112) ptr @_ZN7DynexCN11TransactionaSERKS0_(ptr noundef nonnull align 8 dereferenceable(112) %287, ptr noundef nonnull align 8 dereferenceable(112) %286)
          to label %289 unwind label %.loopexit

289:                                              ; preds = %285
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %31) #8
  %290 = call noundef nonnull align 8 dereferenceable(136) ptr @_ZNSt6vectorIN7DynexCN10Blockchain16TransactionEntryESaIS2_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %262) #8
  invoke void @_ZN7DynexCN13toBinaryArrayINS_11TransactionEEESt6vectorIhSaIhEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::vector.162") align 8 %31, ptr noundef nonnull align 8 dereferenceable(112) %290)
          to label %291 unwind label %316

291:                                              ; preds = %289
  %292 = call noundef i64 @_ZNKSt6vectorIhSaIhEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %31) #8
  call void @_ZNSt6vectorIhSaIhEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %31) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %31) #8
  %293 = call noundef nonnull align 8 dereferenceable(136) ptr @_ZNSt6vectorIN7DynexCN10Blockchain16TransactionEntryESaIS2_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %262) #8
  %294 = invoke noundef i64 @_ZN7DynexCN14getInputAmountERKNS_11TransactionE(ptr noundef nonnull align 8 dereferenceable(112) %293)
          to label %295 unwind label %.loopexit

295:                                              ; preds = %291
  %296 = call noundef nonnull align 8 dereferenceable(136) ptr @_ZNSt6vectorIN7DynexCN10Blockchain16TransactionEntryESaIS2_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %262) #8
  %297 = invoke noundef i64 @_ZN7DynexCN15getOutputAmountERKNS_11TransactionE(ptr noundef nonnull align 8 dereferenceable(112) %296)
          to label %298 unwind label %.loopexit

298:                                              ; preds = %295
  %299 = call noundef nonnull align 8 dereferenceable(136) ptr @_ZNSt6vectorIN7DynexCN10Blockchain16TransactionEntryESaIS2_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %262) #8
  %300 = invoke noundef zeroext i1 @_ZN7DynexCN10Blockchain22checkTransactionInputsERKNS_11TransactionEPj(ptr noundef nonnull align 8 dereferenceable(2636) %0, ptr noundef nonnull align 8 dereferenceable(112) %299, ptr noundef null)
          to label %301 unwind label %.loopexit

301:                                              ; preds = %298
  br i1 %300, label %323, label %302

302:                                              ; preds = %301
  call void @llvm.lifetime.start.p0(i64 432, ptr nonnull %32) #8
  %303 = 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 %32, ptr noundef nonnull align 8 dereferenceable(40) %303, i32 noundef 3, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging12BRIGHT_WHITEB5cxx11E)
          to label %304 unwind label %318

304:                                              ; preds = %302
  %305 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA7_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %32, ptr noundef nonnull align 1 dereferenceable(7) @.str.180)
          to label %306 unwind label %320

306:                                              ; preds = %304
  %307 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEN6Crypto4HashEEOT_S5_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %305, ptr noundef nonnull align 1 dereferenceable(32) %7)
          to label %308 unwind label %320

308:                                              ; preds = %306
  %309 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA50_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %307, ptr noundef nonnull align 1 dereferenceable(50) @.str.215)
          to label %310 unwind label %320

310:                                              ; preds = %308
  %311 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEN6Crypto4HashEEOT_S5_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %309, ptr noundef nonnull align 1 dereferenceable(32) %282)
          to label %312 unwind label %320

312:                                              ; preds = %310
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %32) #8
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %32) #8
  br label %.invoke

.invoke:                                          ; preds = %338, %312
  %313 = getelementptr inbounds i8, ptr %3, i64 1
  store i8 1, ptr %313, align 1, !tbaa !5
  call void @_ZNSt6vectorIN7DynexCN10Blockchain16TransactionEntryESaIS2_EE8pop_backEv(ptr noundef nonnull align 8 dereferenceable(24) %262) #8
  invoke void @_ZN7DynexCN10Blockchain15popTransactionsERKNS0_10BlockEntryERKN6Crypto4HashE(ptr noundef nonnull align 8 dereferenceable(2636) %0, ptr noundef nonnull align 8 dereferenceable(440) %30, ptr noundef nonnull align 1 dereferenceable(32) %29)
          to label %.thread201 unwind label %.loopexit.split-lp

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

.loopexit:                                        ; preds = %285, %291, %295, %298, %324, %344
  %lpad.loopexit = landingpad { ptr, i32 }
          cleanup
  br label %567

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

316:                                              ; preds = %289
  %317 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %31) #8
  br label %567

318:                                              ; preds = %302
  %319 = landingpad { ptr, i32 }
          cleanup
  br label %322

320:                                              ; preds = %310, %308, %306, %304
  %321 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %32) #8
  br label %322

322:                                              ; preds = %320, %318
  %.pn150 = phi { ptr, i32 } [ %321, %320 ], [ %319, %318 ]
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %32) #8
  br label %567

323:                                              ; preds = %301
  br i1 %180, label %344, label %324

324:                                              ; preds = %323
  %325 = call noundef nonnull align 8 dereferenceable(136) ptr @_ZNSt6vectorIN7DynexCN10Blockchain16TransactionEntryESaIS2_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %262) #8
  %326 = invoke noundef zeroext i1 @_ZN7DynexCN10Blockchain17check_non_privacyERKNS_11TransactionE(ptr noundef nonnull align 8 dereferenceable(2636) %0, ptr noundef nonnull align 8 dereferenceable(112) %325)
          to label %327 unwind label %.loopexit

327:                                              ; preds = %324
  br i1 %326, label %344, label %328

328:                                              ; preds = %327
  call void @llvm.lifetime.start.p0(i64 432, ptr nonnull %33) #8
  %329 = 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 %33, ptr noundef nonnull align 8 dereferenceable(40) %329, i32 noundef 3, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging12BRIGHT_WHITEB5cxx11E)
          to label %330 unwind label %339

330:                                              ; preds = %328
  %331 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA7_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %33, ptr noundef nonnull align 1 dereferenceable(7) @.str.180)
          to label %332 unwind label %341

332:                                              ; preds = %330
  %333 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEN6Crypto4HashEEOT_S5_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %331, ptr noundef nonnull align 1 dereferenceable(32) %7)
          to label %334 unwind label %341

334:                                              ; preds = %332
  %335 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA64_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %333, ptr noundef nonnull align 1 dereferenceable(64) @.str.216)
          to label %336 unwind label %341

336:                                              ; preds = %334
  %337 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEN6Crypto4HashEEOT_S5_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %335, ptr noundef nonnull align 1 dereferenceable(32) %282)
          to label %338 unwind label %341

338:                                              ; preds = %336
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %33) #8
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %33) #8
  br label %.invoke

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

341:                                              ; preds = %336, %334, %332, %330
  %342 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %33) #8
  br label %343

343:                                              ; preds = %341, %339
  %.pn152 = phi { ptr, i32 } [ %342, %341 ], [ %340, %339 ]
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %33) #8
  br label %567

344:                                              ; preds = %327, %323
  %345 = add nuw i64 %.0133220, 1
  %.sroa.6.0.insert.ext = shl i64 %345, 32
  %.sroa.6.0.insert.shift = and i64 %.sroa.6.0.insert.ext, 281470681743360
  %.sroa.025.0.insert.insert = or disjoint i64 %.sroa.6.0.insert.shift, %.sroa.025.0.insert.ext26
  %346 = invoke noundef zeroext i1 @_ZN7DynexCN10Blockchain15pushTransactionERNS0_10BlockEntryERKN6Crypto4HashENS0_16TransactionIndexE(ptr noundef nonnull align 8 dereferenceable(2636) %0, ptr noundef nonnull align 8 dereferenceable(440) %30, ptr noundef nonnull align 1 dereferenceable(32) %282, i64 %.sroa.025.0.insert.insert)
          to label %347 unwind label %.loopexit

347:                                              ; preds = %344
  %348 = add i64 %292, %.0137218
  %349 = add i64 %294, %.0134219
  %350 = sub i64 %349, %297
  %351 = call noundef i64 @_ZNKSt6vectorIN7DynexCN11TransactionESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %2) #8
  %.not157 = icmp ult i64 %345, %351
  br i1 %.not157, label %281, label %._crit_edge, !llvm.loop !154

._crit_edge:                                      ; preds = %347, %.preheader
  %.0137.lcssa = phi i64 [ %270, %.preheader ], [ %348, %347 ]
  %.0134.lcssa = phi i64 [ 0, %.preheader ], [ %350, %347 ]
  %352 = call noundef i64 @_ZNK13SwappedVectorIN7DynexCN10Blockchain10BlockEntryEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(1184) %234)
  %353 = invoke noundef zeroext i1 @_ZN7DynexCN10Blockchain24checkCumulativeBlockSizeERKN6Crypto4HashEmm(ptr noundef nonnull align 8 dereferenceable(2636) %0, ptr noundef nonnull align 1 dereferenceable(32) %7, i64 noundef %.0137.lcssa, i64 noundef %352)
          to label %354 unwind label %357

354:                                              ; preds = %._crit_edge
  br i1 %353, label %359, label %355

355:                                              ; preds = %354
  %356 = getelementptr inbounds i8, ptr %3, i64 1
  store i8 1, ptr %356, align 1, !tbaa !5
  br label %.thread201

357:                                              ; preds = %._crit_edge
  %358 = landingpad { ptr, i32 }
          cleanup
  br label %567

359:                                              ; preds = %354
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %34) #8
  store i64 0, ptr %34, align 8, !tbaa !10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %35) #8
  store i64 0, ptr %35, align 8, !tbaa !10
  %360 = call noundef zeroext i1 @_ZNK13SwappedVectorIN7DynexCN10Blockchain10BlockEntryEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(1184) %234)
  br i1 %360, label %366, label %361

361:                                              ; preds = %359
  %362 = invoke noundef nonnull align 8 dereferenceable(440) ptr @_ZN13SwappedVectorIN7DynexCN10Blockchain10BlockEntryEE4backEv(ptr noundef nonnull align 8 dereferenceable(1184) %234)
          to label %363 unwind label %382

363:                                              ; preds = %361
  %364 = getelementptr inbounds i8, ptr %362, i64 408
  %365 = load i64, ptr %364, align 8, !tbaa !156
  br label %366

366:                                              ; preds = %359, %363
  %367 = phi i64 [ %365, %363 ], [ 0, %359 ]
  %368 = call noundef i64 @_ZNK13SwappedVectorIN7DynexCN10Blockchain10BlockEntryEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(1184) %234)
  %369 = trunc i64 %368 to i32
  %370 = invoke noundef zeroext i1 @_ZN7DynexCN10Blockchain26validate_miner_transactionERKNS_5BlockEjmmmRmRl(ptr noundef nonnull align 8 dereferenceable(2636) %0, ptr noundef nonnull align 8 dereferenceable(384) %1, i32 noundef %369, i64 noundef %.0137.lcssa, i64 noundef %367, i64 noundef %.0134.lcssa, ptr noundef nonnull align 8 dereferenceable(8) %35, ptr noundef nonnull align 8 dereferenceable(8) %34)
          to label %371 unwind label %382

371:                                              ; preds = %366
  br i1 %370, label %389, label %372

372:                                              ; preds = %371
  call void @llvm.lifetime.start.p0(i64 432, ptr nonnull %36) #8
  %373 = 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 %36, ptr noundef nonnull align 8 dereferenceable(40) %373, i32 noundef 3, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging12BRIGHT_WHITEB5cxx11E)
          to label %374 unwind label %384

374:                                              ; preds = %372
  %375 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA7_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %36, ptr noundef nonnull align 1 dereferenceable(7) @.str.180)
          to label %376 unwind label %386

376:                                              ; preds = %374
  %377 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEN6Crypto4HashEEOT_S5_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %375, ptr noundef nonnull align 1 dereferenceable(32) %7)
          to label %378 unwind label %386

378:                                              ; preds = %376
  %379 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA34_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %377, ptr noundef nonnull align 1 dereferenceable(34) @.str.217)
          to label %380 unwind label %386

380:                                              ; preds = %378
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %36) #8
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %36) #8
  %381 = getelementptr inbounds i8, ptr %3, i64 1
  store i8 1, ptr %381, align 1, !tbaa !5
  invoke void @_ZN7DynexCN10Blockchain15popTransactionsERKNS0_10BlockEntryERKN6Crypto4HashE(ptr noundef nonnull align 8 dereferenceable(2636) %0, ptr noundef nonnull align 8 dereferenceable(440) %30, ptr noundef nonnull align 1 dereferenceable(32) %29)
          to label %565 unwind label %382

382:                                              ; preds = %380, %366, %361
  %383 = landingpad { ptr, i32 }
          cleanup
  br label %566

384:                                              ; preds = %372
  %385 = landingpad { ptr, i32 }
          cleanup
  br label %388

386:                                              ; preds = %378, %376, %374
  %387 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %36) #8
  br label %388

388:                                              ; preds = %386, %384
  %.pn158 = phi { ptr, i32 } [ %387, %386 ], [ %385, %384 ]
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %36) #8
  br label %566

389:                                              ; preds = %371
  %390 = getelementptr inbounds i8, ptr %0, i64 2632
  %391 = load i32, ptr %390, align 8, !tbaa !189
  %392 = call noundef i64 @_ZNK13SwappedVectorIN7DynexCN10Blockchain10BlockEntryEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(1184) %234)
  br i1 %180, label %446, label %393

393:                                              ; preds = %389
  %394 = zext i32 %391 to i64
  %395 = sub nsw i64 %394, %392
  %396 = icmp slt i64 %395, 101
  %397 = urem i64 %395, 100
  %398 = icmp eq i64 %397, 0
  %or.cond196 = or i1 %396, %398
  br i1 %or.cond196, label %399, label %446

399:                                              ; preds = %393
  %400 = call noundef i64 @_ZNK13SwappedVectorIN7DynexCN10Blockchain10BlockEntryEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(1184) %234)
  %401 = getelementptr inbounds i8, ptr %1, i64 4
  %402 = load i32, ptr %401, align 4, !tbaa !190
  %403 = getelementptr inbounds i8, ptr %0, i64 2592
  %404 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK7Logging9LoggerRef9getLoggerEv(ptr noundef nonnull align 8 dereferenceable(40) %403)
          to label %405 unwind label %430

405:                                              ; preds = %399
  %406 = trunc i64 %400 to i32
  %407 = invoke noundef zeroext i1 @_ZN7DynexCN9AuthBlockEjjRN7Logging7ILoggerE(i32 noundef %406, i32 noundef %402, ptr noundef nonnull align 8 dereferenceable(8) %404)
          to label %408 unwind label %430

408:                                              ; preds = %405
  br i1 %407, label %446, label %409

409:                                              ; preds = %408
  call void @llvm.lifetime.start.p0(i64 432, ptr nonnull %37) #8
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.Logging::LoggerMessage") align 8 %37, ptr noundef nonnull align 8 dereferenceable(40) %403, i32 noundef 3, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging14BRIGHT_MAGENTAB5cxx11E)
          to label %410 unwind label %432

410:                                              ; preds = %409
  %411 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA20_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %37, ptr noundef nonnull align 1 dereferenceable(20) @.str.218)
          to label %412 unwind label %434

412:                                              ; preds = %410
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %38) #8
  %413 = call noundef i64 @_ZNK13SwappedVectorIN7DynexCN10Blockchain10BlockEntryEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(1184) %234)
  %414 = trunc i64 %413 to i32
  store i32 %414, ptr %38, align 4, !tbaa !191
  %415 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEjEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %411, ptr noundef nonnull align 4 dereferenceable(4) %38)
          to label %416 unwind label %436

416:                                              ; preds = %412
  %417 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA13_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %415, ptr noundef nonnull align 1 dereferenceable(13) @.str.219)
          to label %418 unwind label %436

418:                                              ; preds = %416
  %419 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEFRSt8ios_baseS3_EEOT_S6_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %417, ptr noundef nonnull @_ZSt3hexRSt8ios_base)
          to label %420 unwind label %436

420:                                              ; preds = %418
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %39) #8
  %421 = call i8 @_ZSt7setfillIcESt8_SetfillIT_ES1_(i8 noundef signext 48)
  store i8 %421, ptr %39, align 1
  %422 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageESt8_SetfillIcEEOT_S5_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %419, ptr noundef nonnull align 1 dereferenceable(1) %39)
          to label %423 unwind label %438

423:                                              ; preds = %420
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %40) #8
  %424 = call i32 @_ZSt4setwi(i32 noundef 8)
  store i32 %424, ptr %40, align 4
  %425 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageESt5_SetwEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %422, ptr noundef nonnull align 4 dereferenceable(4) %40)
          to label %426 unwind label %440

426:                                              ; preds = %423
  %427 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEjEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %425, ptr noundef nonnull align 4 dereferenceable(4) %401)
          to label %428 unwind label %440

428:                                              ; preds = %426
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %40) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %39) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %38) #8
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %37) #8
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %37) #8
  %429 = getelementptr inbounds i8, ptr %3, i64 1
  store i8 1, ptr %429, align 1, !tbaa !5
  invoke void @_ZN7DynexCN10Blockchain15popTransactionsERKNS0_10BlockEntryERKN6Crypto4HashE(ptr noundef nonnull align 8 dereferenceable(2636) %0, ptr noundef nonnull align 8 dereferenceable(440) %30, ptr noundef nonnull align 1 dereferenceable(32) %29)
          to label %565 unwind label %430

430:                                              ; preds = %463, %456, %428, %405, %399
  %431 = landingpad { ptr, i32 }
          cleanup
  br label %566

432:                                              ; preds = %409
  %433 = landingpad { ptr, i32 }
          cleanup
  br label %445

434:                                              ; preds = %410
  %435 = landingpad { ptr, i32 }
          cleanup
  br label %444

436:                                              ; preds = %418, %416, %412
  %437 = landingpad { ptr, i32 }
          cleanup
  br label %443

438:                                              ; preds = %420
  %439 = landingpad { ptr, i32 }
          cleanup
  br label %442

440:                                              ; preds = %426, %423
  %441 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %40) #8
  br label %442

442:                                              ; preds = %440, %438
  %.pn160 = phi { ptr, i32 } [ %441, %440 ], [ %439, %438 ]
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %39) #8
  br label %443

443:                                              ; preds = %442, %436
  %.pn160.pn = phi { ptr, i32 } [ %.pn160, %442 ], [ %437, %436 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %38) #8
  br label %444

444:                                              ; preds = %443, %434
  %.pn160.pn.pn = phi { ptr, i32 } [ %.pn160.pn, %443 ], [ %435, %434 ]
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %37) #8
  br label %445

445:                                              ; preds = %444, %432
  %.pn160.pn.pn.pn = phi { ptr, i32 } [ %.pn160.pn.pn, %444 ], [ %433, %432 ]
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %37) #8
  br label %566

446:                                              ; preds = %393, %408, %389
  %447 = call noundef i64 @_ZNK13SwappedVectorIN7DynexCN10Blockchain10BlockEntryEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(1184) %234)
  %448 = trunc i64 %447 to i32
  %449 = getelementptr inbounds i8, ptr %30, i64 384
  store i32 %448, ptr %449, align 8, !tbaa !192
  %450 = getelementptr inbounds i8, ptr %30, i64 392
  store i64 %.0137.lcssa, ptr %450, align 8, !tbaa !193
  %451 = getelementptr inbounds i8, ptr %30, i64 400
  store i64 %153, ptr %451, align 8, !tbaa !194
  %452 = load i64, ptr %34, align 8, !tbaa !10
  %453 = add i64 %452, %367
  %454 = getelementptr inbounds i8, ptr %30, i64 408
  store i64 %453, ptr %454, align 8, !tbaa !156
  %455 = call noundef i64 @_ZNK13SwappedVectorIN7DynexCN10Blockchain10BlockEntryEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(1184) %234)
  %.not165 = icmp eq i64 %455, 0
  br i1 %.not165, label %463, label %456

456:                                              ; preds = %446
  %457 = invoke noundef nonnull align 8 dereferenceable(440) ptr @_ZN13SwappedVectorIN7DynexCN10Blockchain10BlockEntryEE4backEv(ptr noundef nonnull align 8 dereferenceable(1184) %234)
          to label %458 unwind label %430

458:                                              ; preds = %456
  %459 = getelementptr inbounds i8, ptr %457, i64 400
  %460 = load i64, ptr %459, align 8, !tbaa !194
  %461 = load i64, ptr %451, align 8, !tbaa !194
  %462 = add i64 %461, %460
  store i64 %462, ptr %451, align 8, !tbaa !194
  br label %463

463:                                              ; preds = %458, %446
  %464 = invoke noundef zeroext i1 @_ZN7DynexCN10Blockchain9pushBlockERNS0_10BlockEntryE(ptr noundef nonnull align 8 dereferenceable(2636) %0, ptr noundef nonnull align 8 dereferenceable(440) %30)
          to label %465 unwind label %430

465:                                              ; preds = %463
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %41) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %42) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %43) #8
  %466 = call i64 @_ZNSt6chrono3_V212steady_clock3nowEv() #8
  store i64 %466, ptr %43, align 8
  %467 = invoke i64 @_ZNSt6chronomiINS_3_V212steady_clockENS_8durationIlSt5ratioILl1ELl1000000000EEEES6_EENSt11common_typeIJT0_T1_EE4typeERKNS_10time_pointIT_S8_EERKNSC_ISD_S9_EE(ptr noundef nonnull align 8 dereferenceable(8) %43, ptr noundef nonnull align 8 dereferenceable(8) %6)
          to label %468 unwind label %544

468:                                              ; preds = %465
  store i64 %467, ptr %42, align 8
  %469 = invoke i64 @_ZNSt6chrono13duration_castINS_8durationIlSt5ratioILl1ELl1000EEEElS2_ILl1ELl1000000000EEEENSt9enable_ifIXsr13__is_durationIT_EE5valueES7_E4typeERKNS1_IT0_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %42)
          to label %470 unwind label %544

470:                                              ; preds = %468
  store i64 %469, ptr %41, align 8
  %471 = call noundef i64 @_ZNKSt6chrono8durationIlSt5ratioILl1ELl1000EEE5countEv(ptr noundef nonnull align 8 dereferenceable(8) %41)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %43) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %42) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #8
  call void @llvm.lifetime.start.p0(i64 432, ptr nonnull %44) #8
  %472 = 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 %44, ptr noundef nonnull align 8 dereferenceable(40) %472, i32 noundef 4, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging7DEFAULTB5cxx11E)
          to label %473 unwind label %546

473:                                              ; preds = %470
  %474 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA31_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %44, ptr noundef nonnull align 1 dereferenceable(31) @.str.220)
          to label %475 unwind label %548

475:                                              ; preds = %473
  %476 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %474, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %477 unwind label %548

477:                                              ; preds = %475
  %478 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %476, ptr noundef nonnull @.str.116)
          to label %479 unwind label %548

479:                                              ; preds = %477
  %480 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN6CryptolsERSoRKNS_4HashE(ptr noundef nonnull align 8 dereferenceable(8) %478, ptr noundef nonnull align 1 dereferenceable(32) %7)
          to label %481 unwind label %548

481:                                              ; preds = %479
  %482 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %480, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %483 unwind label %548

483:                                              ; preds = %481
  %484 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %482, ptr noundef nonnull @.str.117)
          to label %485 unwind label %548

485:                                              ; preds = %483
  %486 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN6CryptolsERSoRKNS_4HashE(ptr noundef nonnull align 8 dereferenceable(8) %484, ptr noundef nonnull align 1 dereferenceable(32) %22)
          to label %487 unwind label %548

487:                                              ; preds = %485
  %488 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %486, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %489 unwind label %548

489:                                              ; preds = %487
  %490 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %488, ptr noundef nonnull @.str.221)
          to label %491 unwind label %548

491:                                              ; preds = %489
  %492 = load i32, ptr %449, align 8, !tbaa !192
  %493 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %490, i32 noundef %492)
          to label %494 unwind label %548

494:                                              ; preds = %491
  %495 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %493, ptr noundef nonnull @.str.222)
          to label %496 unwind label %548

496:                                              ; preds = %494
  %497 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %495, i64 noundef %153)
          to label %498 unwind label %548

498:                                              ; preds = %496
  %499 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %497, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %500 unwind label %548

500:                                              ; preds = %498
  %501 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %499, ptr noundef nonnull @.str.223)
          to label %502 unwind label %548

502:                                              ; preds = %500
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %45) #8
  %503 = getelementptr inbounds i8, ptr %0, i64 80
  %504 = load ptr, ptr %503, align 8, !tbaa !14
  %505 = load i64, ptr %35, align 8, !tbaa !10
  invoke void @_ZNK7DynexCN8Currency12formatAmountB5cxx11Em(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %45, ptr noundef nonnull align 8 dereferenceable(984) %504, i64 noundef %505)
          to label %506 unwind label %550

506:                                              ; preds = %502
  %507 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %501, ptr noundef nonnull align 8 dereferenceable(32) %45)
          to label %508 unwind label %552

508:                                              ; preds = %506
  %509 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %507, ptr noundef nonnull @.str.224)
          to label %510 unwind label %552

510:                                              ; preds = %508
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %46) #8
  %511 = load ptr, ptr %503, align 8, !tbaa !14
  invoke void @_ZNK7DynexCN8Currency12formatAmountB5cxx11Em(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %46, ptr noundef nonnull align 8 dereferenceable(984) %511, i64 noundef %.0134.lcssa)
          to label %512 unwind label %554

512:                                              ; preds = %510
  %513 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %509, ptr noundef nonnull align 8 dereferenceable(32) %46)
          to label %514 unwind label %556

514:                                              ; preds = %512
  %515 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %513, ptr noundef nonnull @.str.225)
          to label %516 unwind label %556

516:                                              ; preds = %514
  %517 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %515, i64 noundef %270)
          to label %518 unwind label %556

518:                                              ; preds = %516
  %519 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %517, ptr noundef nonnull @.str.226)
          to label %520 unwind label %556

520:                                              ; preds = %518
  %521 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %519, i64 noundef %.0137.lcssa)
          to label %522 unwind label %556

522:                                              ; preds = %520
  %523 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %521, ptr noundef nonnull @.str.30)
          to label %524 unwind label %556

524:                                              ; preds = %522
  %525 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEl(ptr noundef nonnull align 8 dereferenceable(8) %523, i64 noundef %471)
          to label %526 unwind label %556

526:                                              ; preds = %524
  %527 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %525, ptr noundef nonnull @.str.227)
          to label %528 unwind label %556

528:                                              ; preds = %526
  %529 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEl(ptr noundef nonnull align 8 dereferenceable(8) %527, i64 noundef %160)
          to label %530 unwind label %556

530:                                              ; preds = %528
  %531 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %529, ptr noundef nonnull @.str.228)
          to label %532 unwind label %556

532:                                              ; preds = %530
  %533 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEl(ptr noundef nonnull align 8 dereferenceable(8) %531, i64 noundef %233)
          to label %534 unwind label %556

534:                                              ; preds = %532
  %535 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %533, ptr noundef nonnull @.str.229)
          to label %536 unwind label %556

536:                                              ; preds = %534
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %46) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %45) #8
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %44) #8
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %44) #8
  store i8 1, ptr %3, align 1, !tbaa !195
  %537 = getelementptr inbounds i8, ptr %0, i64 2032
  invoke void @_ZN7DynexCN20BasicUpgradeDetectorI13SwappedVectorINS_10Blockchain10BlockEntryEEE11blockPushedEv(ptr noundef nonnull align 8 dereferenceable(64) %537)
          to label %538 unwind label %563

538:                                              ; preds = %536
  %539 = getelementptr inbounds i8, ptr %0, i64 2096
  invoke void @_ZN7DynexCN20BasicUpgradeDetectorI13SwappedVectorINS_10Blockchain10BlockEntryEEE11blockPushedEv(ptr noundef nonnull align 8 dereferenceable(64) %539)
          to label %540 unwind label %563

540:                                              ; preds = %538
  %541 = getelementptr inbounds i8, ptr %0, i64 2160
  invoke void @_ZN7DynexCN20BasicUpgradeDetectorI13SwappedVectorINS_10Blockchain10BlockEntryEEE11blockPushedEv(ptr noundef nonnull align 8 dereferenceable(64) %541)
          to label %542 unwind label %563

542:                                              ; preds = %540
  %543 = invoke noundef zeroext i1 @_ZN7DynexCN10Blockchain33update_next_cumulative_size_limitEv(ptr noundef nonnull align 8 dereferenceable(2636) %0)
          to label %565 unwind label %563

544:                                              ; preds = %468, %465
  %545 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %43) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %42) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #8
  br label %566

546:                                              ; preds = %470
  %547 = landingpad { ptr, i32 }
          cleanup
  br label %562

548:                                              ; preds = %500, %498, %496, %494, %491, %489, %487, %485, %483, %481, %479, %477, %475, %473
  %549 = landingpad { ptr, i32 }
          cleanup
  br label %561

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

552:                                              ; preds = %508, %506
  %553 = landingpad { ptr, i32 }
          cleanup
  br label %559

554:                                              ; preds = %510
  %555 = landingpad { ptr, i32 }
          cleanup
  br label %558

556:                                              ; preds = %534, %532, %530, %528, %526, %524, %522, %520, %518, %516, %514, %512
  %557 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #8
  br label %558

558:                                              ; preds = %556, %554
  %.pn166 = phi { ptr, i32 } [ %557, %556 ], [ %555, %554 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %46) #8
  br label %559

559:                                              ; preds = %558, %552
  %.pn166.pn = phi { ptr, i32 } [ %.pn166, %558 ], [ %553, %552 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #8
  br label %560

560:                                              ; preds = %559, %550
  %.pn166.pn.pn = phi { ptr, i32 } [ %.pn166.pn, %559 ], [ %551, %550 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %45) #8
  br label %561

561:                                              ; preds = %560, %548
  %.pn166.pn.pn.pn = phi { ptr, i32 } [ %.pn166.pn.pn, %560 ], [ %549, %548 ]
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %44) #8
  br label %562

562:                                              ; preds = %561, %546
  %.pn166.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn166.pn.pn.pn, %561 ], [ %547, %546 ]
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %44) #8
  br label %566

563:                                              ; preds = %542, %540, %538, %536
  %564 = landingpad { ptr, i32 }
          cleanup
  br label %566

565:                                              ; preds = %428, %542, %380
  %.4 = phi i1 [ false, %380 ], [ false, %428 ], [ true, %542 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #8
  br label %.thread201

566:                                              ; preds = %430, %445, %563, %562, %544, %388, %382
  %.pn172.pn.pn = phi { ptr, i32 } [ %383, %382 ], [ %.pn158, %388 ], [ %431, %430 ], [ %.pn160.pn.pn.pn, %445 ], [ %564, %563 ], [ %.pn166.pn.pn.pn.pn, %562 ], [ %545, %544 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #8
  br label %567

.thread201:                                       ; preds = %.invoke, %565, %355
  %.5 = phi i1 [ %.4, %565 ], [ false, %355 ], [ false, %.invoke ]
  call void @_ZN7DynexCN10Blockchain10BlockEntryD2Ev(ptr noundef nonnull align 8 dereferenceable(440) %30) #8
  call void @llvm.lifetime.end.p0(i64 440, ptr nonnull %30) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #8
  br label %569

567:                                              ; preds = %.loopexit, %.loopexit.split-lp, %277, %357, %566, %316, %322, %343, %314, %279, %275
  %.pn172.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %276, %275 ], [ %278, %277 ], [ %280, %279 ], [ %.pn172.pn.pn, %566 ], [ %358, %357 ], [ %315, %314 ], [ %.pn152, %343 ], [ %.pn150, %322 ], [ %317, %316 ], [ %lpad.loopexit, %.loopexit ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ]
  call void @_ZN7DynexCN10Blockchain10BlockEntryD2Ev(ptr noundef nonnull align 8 dereferenceable(440) %30) #8
  call void @llvm.lifetime.end.p0(i64 440, ptr nonnull %30) #8
  br label %568

568:                                              ; preds = %567, %273
  %.pn172.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn172.pn.pn.pn.pn.pn.pn, %567 ], [ %274, %273 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #8
  br label %570

569:                                              ; preds = %247, %.thread201, %220, %191
  %.7 = phi i1 [ false, %191 ], [ false, %220 ], [ %.5, %.thread201 ], [ false, %247 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #8
  br label %571

570:                                              ; preds = %249, %251, %257, %568, %226, %199, %193
  %.pn172.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn146, %199 ], [ %194, %193 ], [ %.pn144, %226 ], [ %.pn172.pn.pn.pn.pn.pn.pn.pn, %568 ], [ %.pn148, %257 ], [ %252, %251 ], [ %250, %249 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #8
  br label %572

571:                                              ; preds = %569, %165
  %.8 = phi i1 [ %.7, %569 ], [ false, %165 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #8
  br label %573

572:                                              ; preds = %168, %174, %570, %166
  %.pn172.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %167, %166 ], [ %.pn172.pn.pn.pn.pn.pn.pn.pn.pn.pn, %570 ], [ %.pn142, %174 ], [ %169, %168 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #8
  br label %574

573:                                              ; preds = %571, %144, %118, %91
  %.9 = phi i1 [ false, %91 ], [ false, %118 ], [ %.8, %571 ], [ false, %144 ]
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %9) #8
  br label %575

574:                                              ; preds = %572, %150, %129, %120, %98, %92
  %.pn188.pn = phi { ptr, i32 } [ %.pn188, %98 ], [ %.pn185.pn, %129 ], [ %.pn172.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %572 ], [ %.pn, %150 ], [ %93, %92 ], [ %121, %120 ]
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %9) #8
  br label %576

575:                                              ; preds = %573, %78, %73, %61
  %.10 = phi i1 [ false, %61 ], [ %.9, %573 ], [ false, %78 ], [ false, %73 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #8
  call void @_ZNSt10lock_guardISt15recursive_mutexED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %5) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #8
  ret i1 %.10

576:                                              ; preds = %574, %69, %63
  %.pn191.pn = phi { ptr, i32 } [ %.pn191, %69 ], [ %.pn188.pn, %574 ], [ %64, %63 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #8
  call void @_ZNSt10lock_guardISt15recursive_mutexED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %5) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #8
  resume { ptr, i32 } %.pn191.pn
}

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

; Function Attrs: mustprogress uwtable
declare dso_local i64 @_ZNSt6chrono13duration_castINS_8durationIlSt5ratioILl1ELl1000EEEElS2_ILl1ELl1000000000EEEENSt9enable_ifIXsr13__is_durationIT_EE5valueES7_E4typeERKNS1_IT0_T1_EE(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3

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

declare noundef zeroext i1 @_ZNK7DynexCN11Checkpoints21is_in_checkpoint_zoneEj(ptr noundef nonnull align 8 dereferenceable(88), i32 noundef) local_unnamed_addr #6

declare noundef zeroext i1 @_ZNK7DynexCN11Checkpoints11check_blockEjRKN6Crypto4HashE(ptr noundef nonnull align 8 dereferenceable(88), i32 noundef, ptr noundef nonnull align 1 dereferenceable(32)) local_unnamed_addr #6

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(112) ptr @_ZN7DynexCN11TransactionaSERKS0_(ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 8 dereferenceable(112)) local_unnamed_addr #5 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN7DynexCN10Blockchain15pushTransactionERNS0_10BlockEntryERKN6Crypto4HashENS0_16TransactionIndexE(ptr noundef nonnull align 8 dereferenceable(2636), ptr noundef nonnull align 8 dereferenceable(440), ptr noundef nonnull align 1 dereferenceable(32), i64) local_unnamed_addr #3 align 2

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

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

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

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

declare noundef i64 @_ZN7DynexCN14getInputAmountERKNS_11TransactionE(ptr noundef nonnull align 8 dereferenceable(112)) local_unnamed_addr #6

declare noundef i64 @_ZN7DynexCN15getOutputAmountERKNS_11TransactionE(ptr noundef nonnull align 8 dereferenceable(112)) local_unnamed_addr #6

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7DynexCN10Blockchain15popTransactionsERKNS0_10BlockEntryERKN6Crypto4HashE(ptr noundef nonnull align 8 dereferenceable(2636), ptr noundef nonnull align 8 dereferenceable(440), ptr noundef nonnull align 1 dereferenceable(32)) local_unnamed_addr #3 align 2

declare noundef zeroext i1 @_ZN7DynexCN9AuthBlockEjjRN7Logging7ILoggerE(i32 noundef, i32 noundef, ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #6

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(216) ptr @_ZSt3hexRSt8ios_base(ptr noundef nonnull align 8 dereferenceable(216)) #5

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local i8 @_ZSt7setfillIcESt8_SetfillIT_ES1_(i8 noundef signext) local_unnamed_addr #4

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local i32 @_ZSt4setwi(i32 noundef) local_unnamed_addr #4

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7DynexCN20BasicUpgradeDetectorI13SwappedVectorINS_10Blockchain10BlockEntryEEE11blockPushedEv(ptr noundef nonnull align 8 dereferenceable(64)) local_unnamed_addr #3 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 = { 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 #4 = { 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 #5 = { 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 #6 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { nounwind }

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

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


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