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

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

%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = 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.DynexCN::LockedBlockchainStorage" = type { ptr, %"class.std::lock_guard.307" }
%"class.std::lock_guard.307" = type { ptr }
%"class.boost::value_initialized.308" = type { %"class.boost::initialized.309" }
%"class.boost::initialized.309" = type { %"struct.DynexCN::Block" }
%"struct.DynexCN::Block" = type { %"struct.DynexCN::BlockHeader", %"struct.DynexCN::ParentBlock", %"struct.DynexCN::Transaction", %"class.std::vector.201" }
%"struct.DynexCN::BlockHeader" = type { i8, i8, i32, i64, %"struct.Crypto::Hash" }
%"struct.Crypto::Hash" = type { [32 x i8] }
%"struct.DynexCN::ParentBlock" = type { i8, i8, %"struct.Crypto::Hash", i16, %"class.std::vector.201", %"struct.DynexCN::Transaction", %"class.std::vector.201" }
%"struct.DynexCN::Transaction" = type { %"struct.DynexCN::TransactionPrefix", %"class.std::vector.221" }
%"struct.DynexCN::TransactionPrefix" = type { i8, i64, %"class.std::vector.206", %"class.std::vector.211", %"class.std::vector.216" }
%"class.std::vector.206" = type { %"struct.std::_Vector_base.207" }
%"struct.std::_Vector_base.207" = 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.211" = type { %"struct.std::_Vector_base.212" }
%"struct.std::_Vector_base.212" = 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.216" = type { %"struct.std::_Vector_base.217" }
%"struct.std::_Vector_base.217" = type { %"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl" }
%"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl" = type { %"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl_data" }
%"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.221" = type { %"struct.std::_Vector_base.222" }
%"struct.std::_Vector_base.222" = 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.201" = type { %"struct.std::_Vector_base.202" }
%"struct.std::_Vector_base.202" = 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 }
%"struct.DynexCN::TransactionExtraMergeTag" = type { i64, %"struct.Crypto::Hash" }
%"class.boost::value_initialized.310" = type { %"class.boost::initialized.311" }
%"class.boost::initialized.311" = type { %"struct.DynexCN::TransactionExtraMergeTag" }
%"class.std::vector.116" = type { %"struct.std::_Vector_base.117" }
%"struct.std::_Vector_base.117" = 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.__gnu_cxx::__normal_iterator.313" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.312" = type { ptr }
%"class.DynexCN::core" = type { %"class.DynexCN::ICore", %"struct.DynexCN::IBlockHandler", %"class.DynexCN::IBlockchainStorageObserver", %"class.DynexCN::ITxPoolObserver", ptr, %"class.DynexCN::Checkpoints", %"class.Logging::LoggerRef", %"struct.DynexCN::RealTimeProvider", %"class.DynexCN::tx_memory_pool", %"class.DynexCN::Blockchain", ptr, %"class.std::__cxx11::basic_string", %"struct.DynexCN::cn_protocol_stub", %"struct.std::atomic", %"class.Tools::ObserverManager.195", i64 }
%"class.DynexCN::ICore" = type { ptr }
%"struct.DynexCN::IBlockHandler" = type { ptr }
%"class.DynexCN::IBlockchainStorageObserver" = type { ptr }
%"class.DynexCN::ITxPoolObserver" = type { ptr }
%"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 }
%"class.Logging::LoggerRef" = type { ptr, %"class.std::__cxx11::basic_string" }
%"struct.DynexCN::RealTimeProvider" = type { %"struct.DynexCN::ITimeProvider" }
%"struct.DynexCN::ITimeProvider" = type { ptr }
%"class.DynexCN::tx_memory_pool" = type { %"class.Tools::ObserverManager", ptr, ptr, %"class.DynexCN::OnceInTimeInterval", %"class.std::recursive_mutex", %"class.std::unordered_map.15", %"class.std::set", %"class.std::__cxx11::basic_string", ptr, ptr, %"class.boost::multi_index::multi_index_container", ptr, %"class.std::unordered_map.39", %"class.Logging::LoggerRef", %"class.DynexCN::PaymentIdIndex", %"class.DynexCN::AddressIndex", %"class.DynexCN::TimestampTransactionsIndex" }
%"class.Tools::ObserverManager" = type { %"class.std::vector", %"class.std::mutex" }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<DynexCN::ITxPoolObserver *, std::allocator<DynexCN::ITxPoolObserver *>>::_Vector_impl" }
%"struct.std::_Vector_base<DynexCN::ITxPoolObserver *, std::allocator<DynexCN::ITxPoolObserver *>>::_Vector_impl" = type { %"struct.std::_Vector_base<DynexCN::ITxPoolObserver *, std::allocator<DynexCN::ITxPoolObserver *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<DynexCN::ITxPoolObserver *, std::allocator<DynexCN::ITxPoolObserver *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::mutex" = type { %"class.std::__mutex_base" }
%"class.std::__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.DynexCN::OnceInTimeInterval" = type { i64, i32, ptr }
%"class.std::recursive_mutex" = type { %"class.std::__recursive_mutex_base" }
%"class.std::__recursive_mutex_base" = type { %union.pthread_mutex_t }
%"class.std::unordered_map.15" = type { %"class.std::_Hashtable.16" }
%"class.std::_Hashtable.16" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"struct.std::__detail::_Hash_node_base" = type { ptr }
%"struct.std::__detail::_Prime_rehash_policy" = type { float, i64 }
%"class.std::set" = type { %"class.std::_Rb_tree.34" }
%"class.std::_Rb_tree.34" = type { %"struct.std::_Rb_tree<std::pair<unsigned long, unsigned long>, std::pair<unsigned long, unsigned long>, std::_Identity<std::pair<unsigned long, unsigned long>>, std::less<std::pair<unsigned long, unsigned long>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::pair<unsigned long, unsigned long>, std::pair<unsigned long, unsigned long>, std::_Identity<std::pair<unsigned long, unsigned long>>, std::less<std::pair<unsigned long, unsigned long>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.boost::multi_index::multi_index_container" = type { [8 x i8], %"struct.boost::multi_index::detail::header_holder", %"class.boost::multi_index::detail::hashed_index", i64 }
%"struct.boost::multi_index::detail::header_holder" = type { ptr }
%"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.39" = type { %"class.std::_Hashtable.40" }
%"class.std::_Hashtable.40" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.DynexCN::PaymentIdIndex" = type <{ %"class.std::unordered_multimap", i8, [7 x i8] }>
%"class.std::unordered_multimap" = type { %"class.std::_Hashtable.53" }
%"class.std::_Hashtable.53" = type { %"struct.std::__detail::_Hashtable_base.54", ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"struct.std::__detail::_Hashtable_base.54" = type { %"struct.std::__detail::_Hash_code_base.55" }
%"struct.std::__detail::_Hash_code_base.55" = type { %"struct.std::__detail::_Hashtable_ebo_helper.56" }
%"struct.std::__detail::_Hashtable_ebo_helper.56" = 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.67" }
%"class.std::_Rb_tree.67" = 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::TimestampTransactionsIndex" = type <{ %"class.std::multimap.72", i8, [7 x i8] }>
%"class.std::multimap.72" = type { %"class.std::_Rb_tree.73" }
%"class.std::_Rb_tree.73" = 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::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.78", %"class.boost::multi_index::multi_index_container.84", i64, %"class.std::unordered_map.94", %"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.138", %"class.google::sparse_hash_map.152", %"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 }
%"class.Crypto::cn_context" = type { ptr }
%"class.Tools::ObserverManager.78" = type { %"class.std::vector.79", %"class.std::mutex" }
%"class.std::vector.79" = type { %"struct.std::_Vector_base.80" }
%"struct.std::_Vector_base.80" = 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.boost::multi_index::multi_index_container.84" = type { [8 x i8], %"struct.boost::multi_index::detail::header_holder.86", %"class.boost::multi_index::detail::ordered_index.base", i64 }
%"struct.boost::multi_index::detail::header_holder.86" = 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.89", [2 x i8] }>
%"class.boost::multi_index::detail::hashed_index.89" = type { [8 x i8], %"class.boost::multi_index::detail::bucket_array.92", float, i64 }
%"class.boost::multi_index::detail::bucket_array.92" = type { i64, %"struct.boost::multi_index::detail::auto_space.93" }
%"struct.boost::multi_index::detail::auto_space.93" = type { [8 x i8], i64, ptr }
%"class.std::unordered_map.94" = type { %"class.std::_Hashtable.95" }
%"class.std::_Hashtable.95" = 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.111", %"class.google::sparsetable<std::pair<const unsigned long, std::vector<std::pair<DynexCN::Blockchain::TransactionIndex, unsigned short>>>>::Settings" }
%"class.std::vector.111" = type { %"struct.std::_Vector_base.112" }
%"struct.std::_Vector_base.112" = 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.SwappedVector = type { %"class.std::basic_fstream", %"class.std::basic_fstream", i64, %"class.std::vector.116", i64, %"class.std::map.121", %"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.115 }
%union.anon.115 = type { i32 }
%"class.std::map.121" = type { %"class.std::_Rb_tree.122" }
%"class.std::_Rb_tree.122" = 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.129", ptr }
%"class.boost::multi_index::multi_index_container.129" = type { [8 x i8], %"struct.boost::multi_index::detail::header_holder.131", %"class.boost::multi_index::detail::random_access_index", i64 }
%"struct.boost::multi_index::detail::header_holder.131" = type { ptr }
%"class.boost::multi_index::detail::random_access_index" = type { %"class.boost::multi_index::detail::hashed_index.132", %"class.boost::multi_index::detail::random_access_index_ptr_array" }
%"class.boost::multi_index::detail::hashed_index.132" = type { [8 x i8], %"class.boost::multi_index::detail::bucket_array.135", float, i64 }
%"class.boost::multi_index::detail::bucket_array.135" = type { i64, %"struct.boost::multi_index::detail::auto_space.136" }
%"struct.boost::multi_index::detail::auto_space.136" = 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.137" }
%"struct.boost::multi_index::detail::auto_space.137" = type { [8 x i8], i64, ptr }
%"class.std::unordered_map.138" = type { %"class.std::_Hashtable.139" }
%"class.std::_Hashtable.139" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.google::sparse_hash_map.152" = type { %"class.google::sparse_hashtable.153" }
%"class.google::sparse_hashtable.153" = 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.154" }
%"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.154" = type { %"class.std::vector.155", %"class.google::sparsetable<std::pair<const unsigned long, std::vector<DynexCN::Blockchain::MultisignatureOutputUsage>>>::Settings" }
%"class.std::vector.155" = type { %"struct.std::_Vector_base.156" }
%"struct.std::_Vector_base.156" = 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::TimestampBlocksIndex" = type <{ %"class.std::multimap.72", i8, [7 x i8] }>
%"class.DynexCN::GeneratedTransactionsIndex" = type <{ %"class.std::unordered_map.161", i64, i8, [7 x i8] }>
%"class.std::unordered_map.161" = type { %"class.std::_Hashtable.162" }
%"class.std::_Hashtable.162" = 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.181", i8, [7 x i8] }>
%"class.std::unordered_multimap.181" = type { %"class.std::_Hashtable.182" }
%"class.std::_Hashtable.182" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.DynexCN::IntrusiveLinkedList" = type { ptr, ptr }
%"struct.DynexCN::cn_protocol_stub" = type { %"struct.DynexCN::i_cn_protocol" }
%"struct.DynexCN::i_cn_protocol" = type { ptr }
%"struct.std::atomic" = type { %"struct.std::__atomic_base" }
%"struct.std::__atomic_base" = type { i8 }
%"class.Tools::ObserverManager.195" = type { %"class.std::vector.196", %"class.std::mutex" }
%"class.std::vector.196" = type { %"struct.std::_Vector_base.197" }
%"struct.std::_Vector_base.197" = type { %"struct.std::_Vector_base<DynexCN::ICoreObserver *, std::allocator<DynexCN::ICoreObserver *>>::_Vector_impl" }
%"struct.std::_Vector_base<DynexCN::ICoreObserver *, std::allocator<DynexCN::ICoreObserver *>>::_Vector_impl" = type { %"struct.std::_Vector_base<DynexCN::ICoreObserver *, std::allocator<DynexCN::ICoreObserver *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<DynexCN::ICoreObserver *, std::allocator<DynexCN::ICoreObserver *>>::_Vector_impl_data" = type { ptr, ptr, ptr }

@_ZN7Logging10BRIGHT_REDB5cxx11E = external global %"class.std::__cxx11::basic_string", align 8
@.str.53 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [6 x i8], align 1
@_ZN7Logging12BRIGHT_GREENB5cxx11E = external global %"class.std::__cxx11::basic_string", align 8
@.str.62 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [7 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(...)

declare noundef i32 @_ZN7DynexCN10Blockchain26getCurrentBlockchainHeightEv(ptr noundef nonnull align 8 dereferenceable(2636)) #2

declare noundef zeroext i8 @_ZNK7DynexCN10Blockchain29getBlockMajorVersionForHeightEj(ptr noundef nonnull align 8 dereferenceable(2636), i32 noundef) #2

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7DynexCN23LockedBlockchainStorageC2ERNS_10BlockchainE(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(2636)) unnamed_addr #6 align 2

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

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

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_ZN7DynexCN4core18get_block_templateERNS_5BlockERKNS_20AccountPublicAddressERmRjRKSt6vectorIhSaIhEE(ptr noundef nonnull align 8 dereferenceable(3632) %0, ptr noundef nonnull align 8 dereferenceable(384) %1, ptr noundef nonnull align 1 dereferenceable(64) %2, ptr noundef nonnull align 8 dereferenceable(8) %3, ptr noundef nonnull align 4 dereferenceable(4) %4, ptr noundef nonnull align 8 dereferenceable(24) %5) unnamed_addr #6 align 2 personality ptr @__gxx_personality_v0 {
  %7 = alloca i1, align 1
  %8 = alloca ptr, align 8
  %9 = alloca ptr, align 8
  %10 = alloca ptr, align 8
  %11 = alloca ptr, align 8
  %12 = alloca ptr, align 8
  %13 = alloca ptr, align 8
  %14 = alloca i64, align 8
  %15 = alloca i64, align 8
  %16 = alloca %"class.DynexCN::LockedBlockchainStorage", align 8
  %17 = alloca ptr, align 8
  %18 = alloca i32, align 4
  %19 = alloca %"class.Logging::LoggerMessage", align 8
  %20 = alloca i32, align 4
  %21 = alloca %"class.boost::value_initialized.308", align 8
  %22 = alloca %"struct.DynexCN::TransactionExtraMergeTag", align 8
  %23 = alloca %"class.boost::value_initialized.310", align 8
  %24 = alloca %"class.Logging::LoggerMessage", align 8
  %25 = alloca %"struct.Crypto::Hash", align 1
  %26 = alloca %"class.std::vector.116", align 8
  %27 = alloca i32, align 4
  %28 = alloca i64, align 8
  %29 = alloca i64, align 8
  %30 = alloca i64, align 8
  %31 = alloca i64, align 8
  %32 = alloca i8, align 1
  %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 i64, align 8
  %38 = alloca i64, align 8
  %39 = alloca %"class.__gnu_cxx::__normal_iterator.313", align 8
  %40 = alloca %"class.__gnu_cxx::__normal_iterator.312", align 8
  %41 = alloca i8, align 1
  %42 = alloca %"class.__gnu_cxx::__normal_iterator.312", align 8
  %43 = alloca %"class.Logging::LoggerMessage", align 8
  %44 = alloca i64, align 8
  %45 = alloca %"class.Logging::LoggerMessage", align 8
  %46 = alloca i64, align 8
  %47 = alloca %"class.Logging::LoggerMessage", align 8
  %48 = alloca i64, align 8
  %49 = alloca %"class.Logging::LoggerMessage", align 8
  %50 = alloca i64, align 8
  %51 = alloca %"class.Logging::LoggerMessage", align 8
  %52 = alloca i32, align 4
  store ptr %0, ptr %8, align 8, !tbaa !5
  store ptr %1, ptr %9, align 8, !tbaa !5
  store ptr %2, ptr %10, align 8, !tbaa !5
  store ptr %3, ptr %11, align 8, !tbaa !5
  store ptr %4, ptr %12, align 8, !tbaa !5
  store ptr %5, ptr %13, align 8, !tbaa !5
  %53 = load ptr, ptr %8, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr %16) #8
  %54 = getelementptr inbounds %"class.DynexCN::core", ptr %53, i32 0, i32 9
  call void @_ZN7DynexCN23LockedBlockchainStorageC2ERNS_10BlockchainE(ptr noundef nonnull align 8 dereferenceable(16) %16, ptr noundef nonnull align 8 dereferenceable(2636) %54)
  %55 = getelementptr inbounds %"class.DynexCN::core", ptr %53, i32 0, i32 9
  %56 = invoke noundef i32 @_ZN7DynexCN10Blockchain26getCurrentBlockchainHeightEv(ptr noundef nonnull align 8 dereferenceable(2636) %55)
          to label %57 unwind label %71

57:                                               ; preds = %6
  %58 = load ptr, ptr %12, align 8, !tbaa !5
  store i32 %56, ptr %58, align 4, !tbaa !9
  %59 = getelementptr inbounds %"class.DynexCN::core", ptr %53, i32 0, i32 9
  %60 = invoke noundef i64 @_ZN7DynexCN10Blockchain25getDifficultyForNextBlockEv(ptr noundef nonnull align 8 dereferenceable(2636) %59)
          to label %61 unwind label %71

61:                                               ; preds = %57
  %62 = load ptr, ptr %11, align 8, !tbaa !5
  store i64 %60, ptr %62, align 8, !tbaa !11
  %63 = load ptr, ptr %11, align 8, !tbaa !5
  %64 = load i64, ptr %63, align 8, !tbaa !11
  %65 = icmp ne i64 %64, 0
  br i1 %65, label %84, label %66

66:                                               ; preds = %61
  call void @llvm.lifetime.start.p0(i64 432, ptr %19) #8
  %67 = getelementptr inbounds %"class.DynexCN::core", ptr %53, i32 0, i32 6
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.Logging::LoggerMessage") align 8 %19, ptr noundef nonnull align 8 dereferenceable(40) %67, i32 noundef 1, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging10BRIGHT_REDB5cxx11E)
          to label %68 unwind label %75

68:                                               ; preds = %66
  %69 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA21_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %19, ptr noundef nonnull align 1 dereferenceable(21) @.str.53)
          to label %70 unwind label %79

70:                                               ; preds = %68
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %19) #8
  call void @llvm.lifetime.end.p0(i64 432, ptr %19) #8
  store i1 false, ptr %7, align 1
  store i32 1, ptr %20, align 4
  br label %301

71:                                               ; preds = %296, %293, %218, %205, %134, %103, %90, %57, %6
  %72 = landingpad { ptr, i32 }
          cleanup
  %73 = extractvalue { ptr, i32 } %72, 0
  store ptr %73, ptr %17, align 8
  %74 = extractvalue { ptr, i32 } %72, 1
  store i32 %74, ptr %18, align 4
  br label %316

75:                                               ; preds = %66
  %76 = landingpad { ptr, i32 }
          cleanup
  %77 = extractvalue { ptr, i32 } %76, 0
  store ptr %77, ptr %17, align 8
  %78 = extractvalue { ptr, i32 } %76, 1
  store i32 %78, ptr %18, align 4
  br label %83

79:                                               ; preds = %68
  %80 = landingpad { ptr, i32 }
          cleanup
  %81 = extractvalue { ptr, i32 } %80, 0
  store ptr %81, ptr %17, align 8
  %82 = extractvalue { ptr, i32 } %80, 1
  store i32 %82, ptr %18, align 4
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %19) #8
  br label %83

83:                                               ; preds = %79, %75
  call void @llvm.lifetime.end.p0(i64 432, ptr %19) #8
  br label %316

84:                                               ; preds = %61
  call void @llvm.lifetime.start.p0(i64 384, ptr %21) #8
  invoke void @_ZN5boost17value_initializedIN7DynexCN5BlockEEC2Ev(ptr noundef nonnull align 8 dereferenceable(384) %21)
          to label %85 unwind label %113

85:                                               ; preds = %84
  %86 = invoke noundef nonnull align 8 dereferenceable(384) ptr @_ZN5boost17value_initializedIN7DynexCN5BlockEEcvRS2_Ev(ptr noundef nonnull align 8 dereferenceable(384) %21)
          to label %87 unwind label %117

87:                                               ; preds = %85
  %88 = load ptr, ptr %9, align 8, !tbaa !5
  %89 = invoke noundef nonnull align 8 dereferenceable(384) ptr @_ZN7DynexCN5BlockaSERKS0_(ptr noundef nonnull align 8 dereferenceable(384) %88, ptr noundef nonnull align 8 dereferenceable(384) %86)
          to label %90 unwind label %117

90:                                               ; preds = %87
  call void @_ZN5boost17value_initializedIN7DynexCN5BlockEED2Ev(ptr noundef nonnull align 8 dereferenceable(384) %21) #8
  call void @llvm.lifetime.end.p0(i64 384, ptr %21) #8
  %91 = getelementptr inbounds %"class.DynexCN::core", ptr %53, i32 0, i32 9
  %92 = load ptr, ptr %12, align 8, !tbaa !5
  %93 = load i32, ptr %92, align 4, !tbaa !9
  %94 = invoke noundef zeroext i8 @_ZNK7DynexCN10Blockchain29getBlockMajorVersionForHeightEj(ptr noundef nonnull align 8 dereferenceable(2636) %91, i32 noundef %93)
          to label %95 unwind label %71

95:                                               ; preds = %90
  %96 = load ptr, ptr %9, align 8, !tbaa !5
  %97 = getelementptr inbounds %"struct.DynexCN::BlockHeader", ptr %96, i32 0, i32 0
  store i8 %94, ptr %97, align 8, !tbaa !13
  %98 = load ptr, ptr %9, align 8, !tbaa !5
  %99 = getelementptr inbounds %"struct.DynexCN::BlockHeader", ptr %98, i32 0, i32 0
  %100 = load i8, ptr %99, align 8, !tbaa !13
  %101 = zext i8 %100 to i32
  %102 = icmp eq i32 %101, 1
  br i1 %102, label %103, label %122

103:                                              ; preds = %95
  %104 = getelementptr inbounds %"class.DynexCN::core", ptr %53, i32 0, i32 4
  %105 = load ptr, ptr %104, align 8, !tbaa !16
  %106 = invoke noundef i32 @_ZNK7DynexCN8Currency13upgradeHeightEh(ptr noundef nonnull align 8 dereferenceable(984) %105, i8 noundef zeroext 2)
          to label %107 unwind label %71

107:                                              ; preds = %103
  %108 = icmp eq i32 %106, -1
  %109 = zext i1 %108 to i64
  %110 = select i1 %108, i8 1, i8 0
  %111 = load ptr, ptr %9, align 8, !tbaa !5
  %112 = getelementptr inbounds %"struct.DynexCN::BlockHeader", ptr %111, i32 0, i32 1
  store i8 %110, ptr %112, align 1, !tbaa !198
  br label %217

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

117:                                              ; preds = %87, %85
  %118 = landingpad { ptr, i32 }
          cleanup
  %119 = extractvalue { ptr, i32 } %118, 0
  store ptr %119, ptr %17, align 8
  %120 = extractvalue { ptr, i32 } %118, 1
  store i32 %120, ptr %18, align 4
  call void @_ZN5boost17value_initializedIN7DynexCN5BlockEED2Ev(ptr noundef nonnull align 8 dereferenceable(384) %21) #8
  br label %121

121:                                              ; preds = %117, %113
  call void @llvm.lifetime.end.p0(i64 384, ptr %21) #8
  br label %316

122:                                              ; preds = %95
  %123 = load ptr, ptr %9, align 8, !tbaa !5
  %124 = getelementptr inbounds %"struct.DynexCN::BlockHeader", ptr %123, i32 0, i32 0
  %125 = load i8, ptr %124, align 8, !tbaa !13
  %126 = zext i8 %125 to i32
  %127 = icmp eq i32 %126, 2
  br i1 %127, label %134, label %128

128:                                              ; preds = %122
  %129 = load ptr, ptr %9, align 8, !tbaa !5
  %130 = getelementptr inbounds %"struct.DynexCN::BlockHeader", ptr %129, i32 0, i32 0
  %131 = load i8, ptr %130, align 8, !tbaa !13
  %132 = zext i8 %131 to i32
  %133 = icmp eq i32 %132, 3
  br i1 %133, label %134, label %199

134:                                              ; preds = %128, %122
  %135 = getelementptr inbounds %"class.DynexCN::core", ptr %53, i32 0, i32 4
  %136 = load ptr, ptr %135, align 8, !tbaa !16
  %137 = invoke noundef i32 @_ZNK7DynexCN8Currency13upgradeHeightEh(ptr noundef nonnull align 8 dereferenceable(984) %136, i8 noundef zeroext 3)
          to label %138 unwind label %71

138:                                              ; preds = %134
  %139 = icmp eq i32 %137, -1
  br i1 %139, label %140, label %150

140:                                              ; preds = %138
  %141 = load ptr, ptr %9, align 8, !tbaa !5
  %142 = getelementptr inbounds %"struct.DynexCN::BlockHeader", ptr %141, i32 0, i32 0
  %143 = load i8, ptr %142, align 8, !tbaa !13
  %144 = zext i8 %143 to i32
  %145 = icmp eq i32 %144, 2
  %146 = zext i1 %145 to i64
  %147 = select i1 %145, i8 1, i8 0
  %148 = load ptr, ptr %9, align 8, !tbaa !5
  %149 = getelementptr inbounds %"struct.DynexCN::BlockHeader", ptr %148, i32 0, i32 1
  store i8 %147, ptr %149, align 1, !tbaa !198
  br label %153

150:                                              ; preds = %138
  %151 = load ptr, ptr %9, align 8, !tbaa !5
  %152 = getelementptr inbounds %"struct.DynexCN::BlockHeader", ptr %151, i32 0, i32 1
  store i8 0, ptr %152, align 1, !tbaa !198
  br label %153

153:                                              ; preds = %150, %140
  %154 = load ptr, ptr %9, align 8, !tbaa !5
  %155 = getelementptr inbounds %"struct.DynexCN::Block", ptr %154, i32 0, i32 1
  %156 = getelementptr inbounds %"struct.DynexCN::ParentBlock", ptr %155, i32 0, i32 0
  store i8 1, ptr %156, align 8, !tbaa !199
  %157 = load ptr, ptr %9, align 8, !tbaa !5
  %158 = getelementptr inbounds %"struct.DynexCN::Block", ptr %157, i32 0, i32 1
  %159 = getelementptr inbounds %"struct.DynexCN::ParentBlock", ptr %158, i32 0, i32 0
  store i8 0, ptr %159, align 8, !tbaa !199
  %160 = load ptr, ptr %9, align 8, !tbaa !5
  %161 = getelementptr inbounds %"struct.DynexCN::Block", ptr %160, i32 0, i32 1
  %162 = getelementptr inbounds %"struct.DynexCN::ParentBlock", ptr %161, i32 0, i32 3
  store i16 1, ptr %162, align 2, !tbaa !225
  call void @llvm.lifetime.start.p0(i64 40, ptr %22) #8
  call void @llvm.lifetime.start.p0(i64 40, ptr %23) #8
  invoke void @_ZN5boost17value_initializedIN7DynexCN24TransactionExtraMergeTagEEC2Ev(ptr noundef nonnull align 8 dereferenceable(40) %23)
          to label %163 unwind label %177

163:                                              ; preds = %153
  %164 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZN5boost17value_initializedIN7DynexCN24TransactionExtraMergeTagEEcvRS2_Ev(ptr noundef nonnull align 8 dereferenceable(40) %23)
          to label %165 unwind label %177

165:                                              ; preds = %163
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %22, ptr align 8 %164, i64 40, i1 false), !tbaa.struct !226
  call void @llvm.lifetime.end.p0(i64 40, ptr %23) #8
  %166 = load ptr, ptr %9, align 8, !tbaa !5
  %167 = getelementptr inbounds %"struct.DynexCN::Block", ptr %166, i32 0, i32 1
  %168 = getelementptr inbounds %"struct.DynexCN::ParentBlock", ptr %167, i32 0, i32 5
  %169 = getelementptr inbounds %"struct.DynexCN::TransactionPrefix", ptr %168, i32 0, i32 4
  %170 = invoke noundef zeroext i1 @_ZN7DynexCN27appendMergeMiningTagToExtraERSt6vectorIhSaIhEERKNS_24TransactionExtraMergeTagE(ptr noundef nonnull align 8 dereferenceable(24) %169, ptr noundef nonnull align 8 dereferenceable(40) %22)
          to label %171 unwind label %181

171:                                              ; preds = %165
  br i1 %170, label %194, label %172

172:                                              ; preds = %171
  call void @llvm.lifetime.start.p0(i64 432, ptr %24) #8
  %173 = getelementptr inbounds %"class.DynexCN::core", ptr %53, i32 0, i32 6
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.Logging::LoggerMessage") align 8 %24, ptr noundef nonnull align 8 dereferenceable(40) %173, i32 noundef 1, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging10BRIGHT_REDB5cxx11E)
          to label %174 unwind label %185

174:                                              ; preds = %172
  %175 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA77_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %24, ptr noundef nonnull align 1 dereferenceable(77) @.str.54)
          to label %176 unwind label %189

176:                                              ; preds = %174
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %24) #8
  call void @llvm.lifetime.end.p0(i64 432, ptr %24) #8
  store i1 false, ptr %7, align 1
  store i32 1, ptr %20, align 4
  br label %195

177:                                              ; preds = %163, %153
  %178 = landingpad { ptr, i32 }
          cleanup
  %179 = extractvalue { ptr, i32 } %178, 0
  store ptr %179, ptr %17, align 8
  %180 = extractvalue { ptr, i32 } %178, 1
  store i32 %180, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 40, ptr %23) #8
  br label %198

181:                                              ; preds = %165
  %182 = landingpad { ptr, i32 }
          cleanup
  %183 = extractvalue { ptr, i32 } %182, 0
  store ptr %183, ptr %17, align 8
  %184 = extractvalue { ptr, i32 } %182, 1
  store i32 %184, ptr %18, align 4
  br label %198

185:                                              ; preds = %172
  %186 = landingpad { ptr, i32 }
          cleanup
  %187 = extractvalue { ptr, i32 } %186, 0
  store ptr %187, ptr %17, align 8
  %188 = extractvalue { ptr, i32 } %186, 1
  store i32 %188, ptr %18, align 4
  br label %193

189:                                              ; preds = %174
  %190 = landingpad { ptr, i32 }
          cleanup
  %191 = extractvalue { ptr, i32 } %190, 0
  store ptr %191, ptr %17, align 8
  %192 = extractvalue { ptr, i32 } %190, 1
  store i32 %192, ptr %18, align 4
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %24) #8
  br label %193

193:                                              ; preds = %189, %185
  call void @llvm.lifetime.end.p0(i64 432, ptr %24) #8
  br label %198

194:                                              ; preds = %171
  store i32 0, ptr %20, align 4
  br label %195

195:                                              ; preds = %194, %176
  call void @llvm.lifetime.end.p0(i64 40, ptr %22) #8
  %196 = load i32, ptr %20, align 4
  switch i32 %196, label %301 [
    i32 0, label %197
  ]

197:                                              ; preds = %195
  br label %216

198:                                              ; preds = %193, %181, %177
  call void @llvm.lifetime.end.p0(i64 40, ptr %22) #8
  br label %316

199:                                              ; preds = %128
  %200 = load ptr, ptr %9, align 8, !tbaa !5
  %201 = getelementptr inbounds %"struct.DynexCN::BlockHeader", ptr %200, i32 0, i32 0
  %202 = load i8, ptr %201, align 8, !tbaa !13
  %203 = zext i8 %202 to i32
  %204 = icmp sge i32 %203, 4
  br i1 %204, label %205, label %215

205:                                              ; preds = %199
  %206 = getelementptr inbounds %"class.DynexCN::core", ptr %53, i32 0, i32 4
  %207 = load ptr, ptr %206, align 8, !tbaa !16
  %208 = invoke noundef i32 @_ZNK7DynexCN8Currency13upgradeHeightEh(ptr noundef nonnull align 8 dereferenceable(984) %207, i8 noundef zeroext 4)
          to label %209 unwind label %71

209:                                              ; preds = %205
  %210 = icmp eq i32 %208, -1
  %211 = zext i1 %210 to i64
  %212 = select i1 %210, i8 1, i8 0
  %213 = load ptr, ptr %9, align 8, !tbaa !5
  %214 = getelementptr inbounds %"struct.DynexCN::BlockHeader", ptr %213, i32 0, i32 1
  store i8 %212, ptr %214, align 1, !tbaa !198
  br label %215

215:                                              ; preds = %209, %199
  br label %216

216:                                              ; preds = %215, %197
  br label %217

217:                                              ; preds = %216, %107
  call void @llvm.lifetime.start.p0(i64 32, ptr %25) #8
  invoke void @_ZN7DynexCN4core11get_tail_idEv(ptr dead_on_unwind writable sret(%"struct.Crypto::Hash") align 1 %25, ptr noundef nonnull align 8 dereferenceable(3632) %53)
          to label %218 unwind label %253

218:                                              ; preds = %217
  %219 = load ptr, ptr %9, align 8, !tbaa !5
  %220 = getelementptr inbounds %"struct.DynexCN::BlockHeader", ptr %219, i32 0, i32 4
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %220, ptr align 1 %25, i64 32, i1 false), !tbaa.struct !228
  call void @llvm.lifetime.end.p0(i64 32, ptr %25) #8
  %221 = call i64 @time(ptr noundef null) #8
  %222 = load ptr, ptr %9, align 8, !tbaa !5
  %223 = getelementptr inbounds %"struct.DynexCN::BlockHeader", ptr %222, i32 0, i32 3
  store i64 %221, ptr %223, align 8, !tbaa !229
  %224 = load ptr, ptr %12, align 8, !tbaa !5
  %225 = load i32, ptr %224, align 4, !tbaa !9
  %226 = zext i32 %225 to i64
  %227 = getelementptr inbounds %"class.DynexCN::core", ptr %53, i32 0, i32 4
  %228 = load ptr, ptr %227, align 8, !tbaa !16
  %229 = load ptr, ptr %9, align 8, !tbaa !5
  %230 = getelementptr inbounds %"struct.DynexCN::BlockHeader", ptr %229, i32 0, i32 0
  %231 = load i8, ptr %230, align 8, !tbaa !13
  %232 = invoke noundef i64 @_ZNK7DynexCN8Currency20timestampCheckWindowEh(ptr noundef nonnull align 8 dereferenceable(984) %228, i8 noundef zeroext %231)
          to label %233 unwind label %71

233:                                              ; preds = %218
  %234 = icmp uge i64 %226, %232
  br i1 %234, label %235, label %293

235:                                              ; preds = %233
  call void @llvm.lifetime.start.p0(i64 24, ptr %26) #8
  call void @_ZNSt6vectorImSaImEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %26) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #8
  %236 = load ptr, ptr %12, align 8, !tbaa !5
  %237 = load i32, ptr %236, align 4, !tbaa !9
  %238 = getelementptr inbounds %"class.DynexCN::core", ptr %53, i32 0, i32 4
  %239 = load ptr, ptr %238, align 8, !tbaa !16
  %240 = load ptr, ptr %9, align 8, !tbaa !5
  %241 = getelementptr inbounds %"struct.DynexCN::BlockHeader", ptr %240, i32 0, i32 0
  %242 = load i8, ptr %241, align 8, !tbaa !13
  %243 = invoke noundef i64 @_ZNK7DynexCN8Currency20timestampCheckWindowEh(ptr noundef nonnull align 8 dereferenceable(984) %239, i8 noundef zeroext %242)
          to label %244 unwind label %257

244:                                              ; preds = %235
  %245 = trunc i64 %243 to i32
  %246 = sub i32 %237, %245
  store i32 %246, ptr %27, align 4, !tbaa !9
  br label %247

247:                                              ; preds = %267, %244
  %248 = load i32, ptr %27, align 4, !tbaa !9
  %249 = load ptr, ptr %12, align 8, !tbaa !5
  %250 = load i32, ptr %249, align 4, !tbaa !9
  %251 = icmp ult i32 %248, %250
  br i1 %251, label %261, label %252

252:                                              ; preds = %247
  store i32 2, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #8
  br label %275

253:                                              ; preds = %217
  %254 = landingpad { ptr, i32 }
          cleanup
  %255 = extractvalue { ptr, i32 } %254, 0
  store ptr %255, ptr %17, align 8
  %256 = extractvalue { ptr, i32 } %254, 1
  store i32 %256, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %25) #8
  br label %316

257:                                              ; preds = %235
  %258 = landingpad { ptr, i32 }
          cleanup
  %259 = extractvalue { ptr, i32 } %258, 0
  store ptr %259, ptr %17, align 8
  %260 = extractvalue { ptr, i32 } %258, 1
  store i32 %260, ptr %18, align 4
  br label %274

261:                                              ; preds = %247
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #8
  %262 = getelementptr inbounds %"class.DynexCN::core", ptr %53, i32 0, i32 9
  %263 = load i32, ptr %27, align 4, !tbaa !9
  %264 = invoke noundef i64 @_ZN7DynexCN10Blockchain17getBlockTimestampEj(ptr noundef nonnull align 8 dereferenceable(2636) %262, i32 noundef %263)
          to label %265 unwind label %270

265:                                              ; preds = %261
  store i64 %264, ptr %28, align 8, !tbaa !11
  invoke void @_ZNSt6vectorImSaImEE9push_backEOm(ptr noundef nonnull align 8 dereferenceable(24) %26, ptr noundef nonnull align 8 dereferenceable(8) %28)
          to label %266 unwind label %270

266:                                              ; preds = %265
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #8
  br label %267

267:                                              ; preds = %266
  %268 = load i32, ptr %27, align 4, !tbaa !9
  %269 = add i32 %268, 1
  store i32 %269, ptr %27, align 4, !tbaa !9
  br label %247, !llvm.loop !230

270:                                              ; preds = %265, %261
  %271 = landingpad { ptr, i32 }
          cleanup
  %272 = extractvalue { ptr, i32 } %271, 0
  store ptr %272, ptr %17, align 8
  %273 = extractvalue { ptr, i32 } %271, 1
  store i32 %273, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #8
  br label %274

274:                                              ; preds = %270, %257
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #8
  br label %292

275:                                              ; preds = %252
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #8
  %276 = invoke noundef i64 @_ZN6Common11medianValueImEET_RSt6vectorIS1_SaIS1_EE(ptr noundef nonnull align 8 dereferenceable(24) %26)
          to label %277 unwind label %287

277:                                              ; preds = %275
  store i64 %276, ptr %29, align 8, !tbaa !11
  %278 = load ptr, ptr %9, align 8, !tbaa !5
  %279 = getelementptr inbounds %"struct.DynexCN::BlockHeader", ptr %278, i32 0, i32 3
  %280 = load i64, ptr %279, align 8, !tbaa !229
  %281 = load i64, ptr %29, align 8, !tbaa !11
  %282 = icmp ult i64 %280, %281
  br i1 %282, label %283, label %291

283:                                              ; preds = %277
  %284 = load i64, ptr %29, align 8, !tbaa !11
  %285 = load ptr, ptr %9, align 8, !tbaa !5
  %286 = getelementptr inbounds %"struct.DynexCN::BlockHeader", ptr %285, i32 0, i32 3
  store i64 %284, ptr %286, align 8, !tbaa !229
  br label %291

287:                                              ; preds = %275
  %288 = landingpad { ptr, i32 }
          cleanup
  %289 = extractvalue { ptr, i32 } %288, 0
  store ptr %289, ptr %17, align 8
  %290 = extractvalue { ptr, i32 } %288, 1
  store i32 %290, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #8
  br label %292

291:                                              ; preds = %283, %277
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #8
  call void @_ZNSt6vectorImSaImEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %26) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %26) #8
  br label %293

292:                                              ; preds = %287, %274
  call void @_ZNSt6vectorImSaImEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %26) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %26) #8
  br label %316

293:                                              ; preds = %291, %233
  %294 = getelementptr inbounds %"class.DynexCN::core", ptr %53, i32 0, i32 9
  %295 = invoke noundef i64 @_ZN7DynexCN10Blockchain34getCurrentCumulativeBlocksizeLimitEv(ptr noundef nonnull align 8 dereferenceable(2636) %294)
          to label %296 unwind label %71

296:                                              ; preds = %293
  %297 = udiv i64 %295, 2
  store i64 %297, ptr %14, align 8, !tbaa !11
  %298 = getelementptr inbounds %"class.DynexCN::core", ptr %53, i32 0, i32 9
  %299 = invoke noundef i64 @_ZN7DynexCN10Blockchain21getCoinsInCirculationEv(ptr noundef nonnull align 8 dereferenceable(2636) %298)
          to label %300 unwind label %71

300:                                              ; preds = %296
  store i64 %299, ptr %15, align 8, !tbaa !11
  store i32 0, ptr %20, align 4
  br label %301

301:                                              ; preds = %300, %195, %70
  call void @_ZN7DynexCN23LockedBlockchainStorageD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %16) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %16) #8
  %302 = load i32, ptr %20, align 4
  switch i32 %302, label %600 [
    i32 0, label %303
  ]

303:                                              ; preds = %301
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #8
  %304 = getelementptr inbounds %"class.DynexCN::core", ptr %53, i32 0, i32 8
  %305 = load ptr, ptr %9, align 8, !tbaa !5
  %306 = load i64, ptr %14, align 8, !tbaa !11
  %307 = getelementptr inbounds %"class.DynexCN::core", ptr %53, i32 0, i32 4
  %308 = load ptr, ptr %307, align 8, !tbaa !16
  %309 = load ptr, ptr %12, align 8, !tbaa !5
  %310 = load i32, ptr %309, align 4, !tbaa !9
  %311 = zext i32 %310 to i64
  %312 = call noundef i64 @_ZNK7DynexCN8Currency22maxBlockCumulativeSizeEm(ptr noundef nonnull align 8 dereferenceable(984) %308, i64 noundef %311)
  %313 = load i64, ptr %15, align 8, !tbaa !11
  %314 = call noundef zeroext i1 @_ZN7DynexCN14tx_memory_pool19fill_block_templateERNS_5BlockEmmmRmS3_(ptr noundef nonnull align 8 dereferenceable(688) %304, ptr noundef nonnull align 8 dereferenceable(384) %305, i64 noundef %306, i64 noundef %312, i64 noundef %313, ptr noundef nonnull align 8 dereferenceable(8) %30, ptr noundef nonnull align 8 dereferenceable(8) %31)
  br i1 %314, label %317, label %315

315:                                              ; preds = %303
  store i1 false, ptr %7, align 1
  store i32 1, ptr %20, align 4
  br label %599

316:                                              ; preds = %292, %253, %198, %121, %83, %71
  call void @_ZN7DynexCN23LockedBlockchainStorageD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %16) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %16) #8
  br label %602

317:                                              ; preds = %303
  call void @llvm.lifetime.start.p0(i64 1, ptr %32) #8
  %318 = getelementptr inbounds %"class.DynexCN::core", ptr %53, i32 0, i32 4
  %319 = load ptr, ptr %318, align 8, !tbaa !16
  %320 = load ptr, ptr %9, align 8, !tbaa !5
  %321 = getelementptr inbounds %"struct.DynexCN::BlockHeader", ptr %320, i32 0, i32 0
  %322 = load i8, ptr %321, align 8, !tbaa !13
  %323 = load ptr, ptr %12, align 8, !tbaa !5
  %324 = load i32, ptr %323, align 4, !tbaa !9
  %325 = load i64, ptr %14, align 8, !tbaa !11
  %326 = load i64, ptr %15, align 8, !tbaa !11
  %327 = load i64, ptr %30, align 8, !tbaa !11
  %328 = load i64, ptr %31, align 8, !tbaa !11
  %329 = load ptr, ptr %10, align 8, !tbaa !5
  %330 = load ptr, ptr %9, align 8, !tbaa !5
  %331 = getelementptr inbounds %"struct.DynexCN::Block", ptr %330, i32 0, i32 2
  %332 = load ptr, ptr %13, align 8, !tbaa !5
  %333 = call noundef zeroext i1 @_ZNK7DynexCN8Currency16constructMinerTxEhjmmmmRKNS_20AccountPublicAddressERNS_11TransactionERKSt6vectorIhSaIhEEm(ptr noundef nonnull align 8 dereferenceable(984) %319, i8 noundef zeroext %322, i32 noundef %324, i64 noundef %325, i64 noundef %326, i64 noundef %327, i64 noundef %328, ptr noundef nonnull align 1 dereferenceable(64) %329, ptr noundef nonnull align 8 dereferenceable(112) %331, ptr noundef nonnull align 8 dereferenceable(24) %332, i64 noundef 14)
  %334 = zext i1 %333 to i8
  store i8 %334, ptr %32, align 1, !tbaa !232
  %335 = load i8, ptr %32, align 1, !tbaa !232, !range !233, !noundef !234
  %336 = trunc i8 %335 to i1
  br i1 %336, label %345, label %337

337:                                              ; preds = %317
  call void @llvm.lifetime.start.p0(i64 432, ptr %33) #8
  %338 = getelementptr inbounds %"class.DynexCN::core", ptr %53, i32 0, i32 6
  call 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) %338, i32 noundef 1, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging10BRIGHT_REDB5cxx11E)
  %339 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA46_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %33, ptr noundef nonnull align 1 dereferenceable(46) @.str.55)
          to label %340 unwind label %341

340:                                              ; preds = %337
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %33) #8
  call void @llvm.lifetime.end.p0(i64 432, ptr %33) #8
  store i1 false, ptr %7, align 1
  store i32 1, ptr %20, align 4
  br label %597

341:                                              ; preds = %337
  %342 = landingpad { ptr, i32 }
          cleanup
  %343 = extractvalue { ptr, i32 } %342, 0
  store ptr %343, ptr %17, align 8
  %344 = extractvalue { ptr, i32 } %342, 1
  store i32 %344, ptr %18, align 4
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %33) #8
  call void @llvm.lifetime.end.p0(i64 432, ptr %33) #8
  br label %598

345:                                              ; preds = %317
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #8
  %346 = load i64, ptr %30, align 8, !tbaa !11
  %347 = load ptr, ptr %9, align 8, !tbaa !5
  %348 = getelementptr inbounds %"struct.DynexCN::Block", ptr %347, i32 0, i32 2
  %349 = call noundef i64 @_ZN7DynexCN19getObjectBinarySizeINS_11TransactionEEEmRKT_(ptr noundef nonnull align 8 dereferenceable(112) %348)
  %350 = add i64 %346, %349
  store i64 %350, ptr %34, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #8
  store i64 0, ptr %35, align 8, !tbaa !11
  br label %351

351:                                              ; preds = %572, %345
  %352 = load i64, ptr %35, align 8, !tbaa !11
  %353 = icmp ne i64 %352, 10
  br i1 %353, label %355, label %354

354:                                              ; preds = %351
  store i32 5, ptr %20, align 4
  br label %575

355:                                              ; preds = %351
  %356 = getelementptr inbounds %"class.DynexCN::core", ptr %53, i32 0, i32 4
  %357 = load ptr, ptr %356, align 8, !tbaa !16
  %358 = load ptr, ptr %9, align 8, !tbaa !5
  %359 = getelementptr inbounds %"struct.DynexCN::BlockHeader", ptr %358, i32 0, i32 0
  %360 = load i8, ptr %359, align 8, !tbaa !13
  %361 = load ptr, ptr %12, align 8, !tbaa !5
  %362 = load i32, ptr %361, align 4, !tbaa !9
  %363 = load i64, ptr %14, align 8, !tbaa !11
  %364 = load i64, ptr %15, align 8, !tbaa !11
  %365 = load i64, ptr %34, align 8, !tbaa !11
  %366 = load i64, ptr %31, align 8, !tbaa !11
  %367 = load ptr, ptr %10, align 8, !tbaa !5
  %368 = load ptr, ptr %9, align 8, !tbaa !5
  %369 = getelementptr inbounds %"struct.DynexCN::Block", ptr %368, i32 0, i32 2
  %370 = load ptr, ptr %13, align 8, !tbaa !5
  %371 = call noundef zeroext i1 @_ZNK7DynexCN8Currency16constructMinerTxEhjmmmmRKNS_20AccountPublicAddressERNS_11TransactionERKSt6vectorIhSaIhEEm(ptr noundef nonnull align 8 dereferenceable(984) %357, i8 noundef zeroext %360, i32 noundef %362, i64 noundef %363, i64 noundef %364, i64 noundef %365, i64 noundef %366, ptr noundef nonnull align 1 dereferenceable(64) %367, ptr noundef nonnull align 8 dereferenceable(112) %369, ptr noundef nonnull align 8 dereferenceable(24) %370, i64 noundef 14)
  %372 = zext i1 %371 to i8
  store i8 %372, ptr %32, align 1, !tbaa !232
  %373 = load i8, ptr %32, align 1, !tbaa !232, !range !233, !noundef !234
  %374 = trunc i8 %373 to i1
  br i1 %374, label %383, label %375

375:                                              ; preds = %355
  call void @llvm.lifetime.start.p0(i64 432, ptr %36) #8
  %376 = getelementptr inbounds %"class.DynexCN::core", ptr %53, i32 0, i32 6
  call void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.Logging::LoggerMessage") align 8 %36, ptr noundef nonnull align 8 dereferenceable(40) %376, i32 noundef 1, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging10BRIGHT_REDB5cxx11E)
  %377 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA47_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %36, ptr noundef nonnull align 1 dereferenceable(47) @.str.56)
          to label %378 unwind label %379

378:                                              ; preds = %375
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %36) #8
  call void @llvm.lifetime.end.p0(i64 432, ptr %36) #8
  store i1 false, ptr %7, align 1
  store i32 1, ptr %20, align 4
  br label %575

379:                                              ; preds = %375
  %380 = landingpad { ptr, i32 }
          cleanup
  %381 = extractvalue { ptr, i32 } %380, 0
  store ptr %381, ptr %17, align 8
  %382 = extractvalue { ptr, i32 } %380, 1
  store i32 %382, ptr %18, align 4
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %36) #8
  call void @llvm.lifetime.end.p0(i64 432, ptr %36) #8
  br label %577

383:                                              ; preds = %355
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #8
  %384 = load ptr, ptr %9, align 8, !tbaa !5
  %385 = getelementptr inbounds %"struct.DynexCN::Block", ptr %384, i32 0, i32 2
  %386 = call noundef i64 @_ZN7DynexCN19getObjectBinarySizeINS_11TransactionEEEmRKT_(ptr noundef nonnull align 8 dereferenceable(112) %385)
  store i64 %386, ptr %37, align 8, !tbaa !11
  %387 = load i64, ptr %37, align 8, !tbaa !11
  %388 = load i64, ptr %34, align 8, !tbaa !11
  %389 = load i64, ptr %30, align 8, !tbaa !11
  %390 = sub i64 %388, %389
  %391 = icmp ugt i64 %387, %390
  br i1 %391, label %392, label %396

392:                                              ; preds = %383
  %393 = load i64, ptr %30, align 8, !tbaa !11
  %394 = load i64, ptr %37, align 8, !tbaa !11
  %395 = add i64 %393, %394
  store i64 %395, ptr %34, align 8, !tbaa !11
  store i32 7, ptr %20, align 4
  br label %569

396:                                              ; preds = %383
  %397 = load i64, ptr %37, align 8, !tbaa !11
  %398 = load i64, ptr %34, align 8, !tbaa !11
  %399 = load i64, ptr %30, align 8, !tbaa !11
  %400 = sub i64 %398, %399
  %401 = icmp ult i64 %397, %400
  br i1 %401, label %402, label %533

402:                                              ; preds = %396
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #8
  %403 = load i64, ptr %34, align 8, !tbaa !11
  %404 = load i64, ptr %30, align 8, !tbaa !11
  %405 = sub i64 %403, %404
  %406 = load i64, ptr %37, align 8, !tbaa !11
  %407 = sub i64 %405, %406
  store i64 %407, ptr %38, align 8, !tbaa !11
  %408 = load ptr, ptr %9, align 8, !tbaa !5
  %409 = getelementptr inbounds %"struct.DynexCN::Block", ptr %408, i32 0, i32 2
  %410 = getelementptr inbounds %"struct.DynexCN::TransactionPrefix", ptr %409, i32 0, i32 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #8
  %411 = load ptr, ptr %9, align 8, !tbaa !5
  %412 = getelementptr inbounds %"struct.DynexCN::Block", ptr %411, i32 0, i32 2
  %413 = getelementptr inbounds %"struct.DynexCN::TransactionPrefix", ptr %412, i32 0, i32 4
  %414 = call ptr @_ZNSt6vectorIhSaIhEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %413) #8
  %415 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.312", ptr %40, i32 0, i32 0
  store ptr %414, ptr %415, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKhSt6vectorIhSaIhEEEC2IPhvEERKNS0_IT_S5_EE(ptr noundef nonnull align 8 dereferenceable(8) %39, ptr noundef nonnull align 8 dereferenceable(8) %40) #8
  %416 = load i64, ptr %38, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %41) #8
  store i8 0, ptr %41, align 1, !tbaa !227
  %417 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.313", ptr %39, i32 0, i32 0
  %418 = load ptr, ptr %417, align 8
  %419 = call ptr @_ZNSt6vectorIhSaIhEE6insertEN9__gnu_cxx17__normal_iteratorIPKhS1_EEmRS4_(ptr noundef nonnull align 8 dereferenceable(24) %410, ptr %418, i64 noundef %416, ptr noundef nonnull align 1 dereferenceable(1) %41)
  %420 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.312", ptr %42, i32 0, i32 0
  store ptr %419, ptr %420, align 8
  call void @llvm.lifetime.end.p0(i64 1, ptr %41) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #8
  %421 = load i64, ptr %34, align 8, !tbaa !11
  %422 = load i64, ptr %30, align 8, !tbaa !11
  %423 = load ptr, ptr %9, align 8, !tbaa !5
  %424 = getelementptr inbounds %"struct.DynexCN::Block", ptr %423, i32 0, i32 2
  %425 = call noundef i64 @_ZN7DynexCN19getObjectBinarySizeINS_11TransactionEEEmRKT_(ptr noundef nonnull align 8 dereferenceable(112) %424)
  %426 = add i64 %422, %425
  %427 = icmp ne i64 %421, %426
  br i1 %427, label %428, label %528

428:                                              ; preds = %402
  %429 = load i64, ptr %34, align 8, !tbaa !11
  %430 = add i64 %429, 1
  %431 = load i64, ptr %30, align 8, !tbaa !11
  %432 = load ptr, ptr %9, align 8, !tbaa !5
  %433 = getelementptr inbounds %"struct.DynexCN::Block", ptr %432, i32 0, i32 2
  %434 = call noundef i64 @_ZN7DynexCN19getObjectBinarySizeINS_11TransactionEEEmRKT_(ptr noundef nonnull align 8 dereferenceable(112) %433)
  %435 = add i64 %431, %434
  %436 = icmp eq i64 %430, %435
  br i1 %436, label %464, label %437

437:                                              ; preds = %428
  call void @llvm.lifetime.start.p0(i64 432, ptr %43) #8
  %438 = getelementptr inbounds %"class.DynexCN::core", ptr %53, i32 0, i32 6
  call void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.Logging::LoggerMessage") align 8 %43, ptr noundef nonnull align 8 dereferenceable(40) %438, i32 noundef 1, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging10BRIGHT_REDB5cxx11E)
  %439 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA34_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %43, ptr noundef nonnull align 1 dereferenceable(34) @.str.57)
          to label %440 unwind label %455

440:                                              ; preds = %437
  %441 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEmEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %439, ptr noundef nonnull align 8 dereferenceable(8) %34)
          to label %442 unwind label %455

442:                                              ; preds = %440
  %443 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA39_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %441, ptr noundef nonnull align 1 dereferenceable(39) @.str.58)
          to label %444 unwind label %455

444:                                              ; preds = %442
  %445 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEmEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %443, ptr noundef nonnull align 8 dereferenceable(8) %30)
          to label %446 unwind label %455

446:                                              ; preds = %444
  %447 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA43_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %445, ptr noundef nonnull align 1 dereferenceable(43) @.str.59)
          to label %448 unwind label %455

448:                                              ; preds = %446
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #8
  %449 = load ptr, ptr %9, align 8, !tbaa !5
  %450 = getelementptr inbounds %"struct.DynexCN::Block", ptr %449, i32 0, i32 2
  %451 = invoke noundef i64 @_ZN7DynexCN19getObjectBinarySizeINS_11TransactionEEEmRKT_(ptr noundef nonnull align 8 dereferenceable(112) %450)
          to label %452 unwind label %459

452:                                              ; preds = %448
  store i64 %451, ptr %44, align 8, !tbaa !11
  %453 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEmEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %447, ptr noundef nonnull align 8 dereferenceable(8) %44)
          to label %454 unwind label %459

454:                                              ; preds = %452
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #8
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %43) #8
  call void @llvm.lifetime.end.p0(i64 432, ptr %43) #8
  store i1 false, ptr %7, align 1
  store i32 1, ptr %20, align 4
  br label %529

455:                                              ; preds = %446, %444, %442, %440, %437
  %456 = landingpad { ptr, i32 }
          cleanup
  %457 = extractvalue { ptr, i32 } %456, 0
  store ptr %457, ptr %17, align 8
  %458 = extractvalue { ptr, i32 } %456, 1
  store i32 %458, ptr %18, align 4
  br label %463

459:                                              ; preds = %452, %448
  %460 = landingpad { ptr, i32 }
          cleanup
  %461 = extractvalue { ptr, i32 } %460, 0
  store ptr %461, ptr %17, align 8
  %462 = extractvalue { ptr, i32 } %460, 1
  store i32 %462, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #8
  br label %463

463:                                              ; preds = %459, %455
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %43) #8
  call void @llvm.lifetime.end.p0(i64 432, ptr %43) #8
  br label %532

464:                                              ; preds = %428
  %465 = load ptr, ptr %9, align 8, !tbaa !5
  %466 = getelementptr inbounds %"struct.DynexCN::Block", ptr %465, i32 0, i32 2
  %467 = getelementptr inbounds %"struct.DynexCN::TransactionPrefix", ptr %466, i32 0, i32 4
  %468 = load ptr, ptr %9, align 8, !tbaa !5
  %469 = getelementptr inbounds %"struct.DynexCN::Block", ptr %468, i32 0, i32 2
  %470 = getelementptr inbounds %"struct.DynexCN::TransactionPrefix", ptr %469, i32 0, i32 4
  %471 = call noundef i64 @_ZNKSt6vectorIhSaIhEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %470) #8
  %472 = sub i64 %471, 1
  call void @_ZNSt6vectorIhSaIhEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %467, i64 noundef %472)
  %473 = load i64, ptr %34, align 8, !tbaa !11
  %474 = load i64, ptr %30, align 8, !tbaa !11
  %475 = load ptr, ptr %9, align 8, !tbaa !5
  %476 = getelementptr inbounds %"struct.DynexCN::Block", ptr %475, i32 0, i32 2
  %477 = call noundef i64 @_ZN7DynexCN19getObjectBinarySizeINS_11TransactionEEEmRKT_(ptr noundef nonnull align 8 dereferenceable(112) %476)
  %478 = add i64 %474, %477
  %479 = icmp ne i64 %473, %478
  br i1 %479, label %480, label %505

480:                                              ; preds = %464
  call void @llvm.lifetime.start.p0(i64 432, ptr %45) #8
  %481 = getelementptr inbounds %"class.DynexCN::core", ptr %53, i32 0, i32 6
  call void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.Logging::LoggerMessage") align 8 %45, ptr noundef nonnull align 8 dereferenceable(40) %481, i32 noundef 5, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging10BRIGHT_REDB5cxx11E)
  %482 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA59_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %45, ptr noundef nonnull align 1 dereferenceable(59) @.str.60)
          to label %483 unwind label %496

483:                                              ; preds = %480
  %484 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEmEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %482, ptr noundef nonnull align 8 dereferenceable(8) %38)
          to label %485 unwind label %496

485:                                              ; preds = %483
  %486 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA6_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %484, ptr noundef nonnull align 1 dereferenceable(6) @.str.61)
          to label %487 unwind label %496

487:                                              ; preds = %485
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #8
  %488 = load i64, ptr %38, align 8, !tbaa !11
  %489 = sub i64 %488, 1
  store i64 %489, ptr %46, align 8, !tbaa !11
  %490 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEmEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %486, ptr noundef nonnull align 8 dereferenceable(8) %46)
          to label %491 unwind label %500

491:                                              ; preds = %487
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #8
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %45) #8
  call void @llvm.lifetime.end.p0(i64 432, ptr %45) #8
  %492 = load i64, ptr %38, align 8, !tbaa !11
  %493 = sub i64 %492, 1
  %494 = load i64, ptr %34, align 8, !tbaa !11
  %495 = add i64 %494, %493
  store i64 %495, ptr %34, align 8, !tbaa !11
  store i32 7, ptr %20, align 4
  br label %529

496:                                              ; preds = %485, %483, %480
  %497 = landingpad { ptr, i32 }
          cleanup
  %498 = extractvalue { ptr, i32 } %497, 0
  store ptr %498, ptr %17, align 8
  %499 = extractvalue { ptr, i32 } %497, 1
  store i32 %499, ptr %18, align 4
  br label %504

500:                                              ; preds = %487
  %501 = landingpad { ptr, i32 }
          cleanup
  %502 = extractvalue { ptr, i32 } %501, 0
  store ptr %502, ptr %17, align 8
  %503 = extractvalue { ptr, i32 } %501, 1
  store i32 %503, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #8
  br label %504

504:                                              ; preds = %500, %496
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %45) #8
  call void @llvm.lifetime.end.p0(i64 432, ptr %45) #8
  br label %532

505:                                              ; preds = %464
  call void @llvm.lifetime.start.p0(i64 432, ptr %47) #8
  %506 = getelementptr inbounds %"class.DynexCN::core", ptr %53, i32 0, i32 6
  call void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.Logging::LoggerMessage") align 8 %47, ptr noundef nonnull align 8 dereferenceable(40) %506, i32 noundef 4, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging12BRIGHT_GREENB5cxx11E)
  %507 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA26_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %47, ptr noundef nonnull align 1 dereferenceable(26) @.str.62)
          to label %508 unwind label %519

508:                                              ; preds = %505
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #8
  %509 = load ptr, ptr %9, align 8, !tbaa !5
  %510 = getelementptr inbounds %"struct.DynexCN::Block", ptr %509, i32 0, i32 2
  %511 = getelementptr inbounds %"struct.DynexCN::TransactionPrefix", ptr %510, i32 0, i32 4
  %512 = call noundef i64 @_ZNKSt6vectorIhSaIhEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %511) #8
  store i64 %512, ptr %48, align 8, !tbaa !11
  %513 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEmEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %507, ptr noundef nonnull align 8 dereferenceable(8) %48)
          to label %514 unwind label %523

514:                                              ; preds = %508
  %515 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA13_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %513, ptr noundef nonnull align 1 dereferenceable(13) @.str.63)
          to label %516 unwind label %523

516:                                              ; preds = %514
  %517 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEmEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %515, ptr noundef nonnull align 8 dereferenceable(8) %35)
          to label %518 unwind label %523

518:                                              ; preds = %516
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #8
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %47) #8
  call void @llvm.lifetime.end.p0(i64 432, ptr %47) #8
  br label %528

519:                                              ; preds = %505
  %520 = landingpad { ptr, i32 }
          cleanup
  %521 = extractvalue { ptr, i32 } %520, 0
  store ptr %521, ptr %17, align 8
  %522 = extractvalue { ptr, i32 } %520, 1
  store i32 %522, ptr %18, align 4
  br label %527

523:                                              ; preds = %516, %514, %508
  %524 = landingpad { ptr, i32 }
          cleanup
  %525 = extractvalue { ptr, i32 } %524, 0
  store ptr %525, ptr %17, align 8
  %526 = extractvalue { ptr, i32 } %524, 1
  store i32 %526, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #8
  br label %527

527:                                              ; preds = %523, %519
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %47) #8
  call void @llvm.lifetime.end.p0(i64 432, ptr %47) #8
  br label %532

528:                                              ; preds = %518, %402
  store i32 0, ptr %20, align 4
  br label %529

529:                                              ; preds = %528, %491, %454
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #8
  %530 = load i32, ptr %20, align 4
  switch i32 %530, label %569 [
    i32 0, label %531
  ]

531:                                              ; preds = %529
  br label %533

532:                                              ; preds = %527, %504, %463
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #8
  br label %571

533:                                              ; preds = %531, %396
  %534 = load i64, ptr %34, align 8, !tbaa !11
  %535 = load i64, ptr %30, align 8, !tbaa !11
  %536 = load ptr, ptr %9, align 8, !tbaa !5
  %537 = getelementptr inbounds %"struct.DynexCN::Block", ptr %536, i32 0, i32 2
  %538 = call noundef i64 @_ZN7DynexCN19getObjectBinarySizeINS_11TransactionEEEmRKT_(ptr noundef nonnull align 8 dereferenceable(112) %537)
  %539 = add i64 %535, %538
  %540 = icmp eq i64 %534, %539
  br i1 %540, label %568, label %541

541:                                              ; preds = %533
  call void @llvm.lifetime.start.p0(i64 432, ptr %49) #8
  %542 = getelementptr inbounds %"class.DynexCN::core", ptr %53, i32 0, i32 6
  call void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.Logging::LoggerMessage") align 8 %49, ptr noundef nonnull align 8 dereferenceable(40) %542, i32 noundef 1, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging10BRIGHT_REDB5cxx11E)
  %543 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA34_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %49, ptr noundef nonnull align 1 dereferenceable(34) @.str.57)
          to label %544 unwind label %559

544:                                              ; preds = %541
  %545 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEmEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %543, ptr noundef nonnull align 8 dereferenceable(8) %34)
          to label %546 unwind label %559

546:                                              ; preds = %544
  %547 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA35_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %545, ptr noundef nonnull align 1 dereferenceable(35) @.str.64)
          to label %548 unwind label %559

548:                                              ; preds = %546
  %549 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEmEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %547, ptr noundef nonnull align 8 dereferenceable(8) %30)
          to label %550 unwind label %559

550:                                              ; preds = %548
  %551 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA43_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %549, ptr noundef nonnull align 1 dereferenceable(43) @.str.59)
          to label %552 unwind label %559

552:                                              ; preds = %550
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #8
  %553 = load ptr, ptr %9, align 8, !tbaa !5
  %554 = getelementptr inbounds %"struct.DynexCN::Block", ptr %553, i32 0, i32 2
  %555 = invoke noundef i64 @_ZN7DynexCN19getObjectBinarySizeINS_11TransactionEEEmRKT_(ptr noundef nonnull align 8 dereferenceable(112) %554)
          to label %556 unwind label %563

556:                                              ; preds = %552
  store i64 %555, ptr %50, align 8, !tbaa !11
  %557 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEmEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %551, ptr noundef nonnull align 8 dereferenceable(8) %50)
          to label %558 unwind label %563

558:                                              ; preds = %556
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #8
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %49) #8
  call void @llvm.lifetime.end.p0(i64 432, ptr %49) #8
  store i1 false, ptr %7, align 1
  store i32 1, ptr %20, align 4
  br label %569

559:                                              ; preds = %550, %548, %546, %544, %541
  %560 = landingpad { ptr, i32 }
          cleanup
  %561 = extractvalue { ptr, i32 } %560, 0
  store ptr %561, ptr %17, align 8
  %562 = extractvalue { ptr, i32 } %560, 1
  store i32 %562, ptr %18, align 4
  br label %567

563:                                              ; preds = %556, %552
  %564 = landingpad { ptr, i32 }
          cleanup
  %565 = extractvalue { ptr, i32 } %564, 0
  store ptr %565, ptr %17, align 8
  %566 = extractvalue { ptr, i32 } %564, 1
  store i32 %566, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #8
  br label %567

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

568:                                              ; preds = %533
  store i1 true, ptr %7, align 1
  store i32 1, ptr %20, align 4
  br label %569

569:                                              ; preds = %568, %558, %529, %392
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #8
  %570 = load i32, ptr %20, align 4
  switch i32 %570, label %575 [
    i32 7, label %572
  ]

571:                                              ; preds = %567, %532
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #8
  br label %577

572:                                              ; preds = %569
  %573 = load i64, ptr %35, align 8, !tbaa !11
  %574 = add i64 %573, 1
  store i64 %574, ptr %35, align 8, !tbaa !11
  br label %351, !llvm.loop !235

575:                                              ; preds = %569, %378, %354
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #8
  %576 = load i32, ptr %20, align 4
  switch i32 %576, label %595 [
    i32 5, label %578
  ]

577:                                              ; preds = %571, %379
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #8
  br label %596

578:                                              ; preds = %575
  call void @llvm.lifetime.start.p0(i64 432, ptr %51) #8
  %579 = getelementptr inbounds %"class.DynexCN::core", ptr %53, i32 0, i32 6
  call void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.Logging::LoggerMessage") align 8 %51, ptr noundef nonnull align 8 dereferenceable(40) %579, i32 noundef 1, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging10BRIGHT_REDB5cxx11E)
  %580 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA38_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %51, ptr noundef nonnull align 1 dereferenceable(38) @.str.65)
          to label %581 unwind label %586

581:                                              ; preds = %578
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #8
  store i32 10, ptr %52, align 4, !tbaa !9
  %582 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEiEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %580, ptr noundef nonnull align 4 dereferenceable(4) %52)
          to label %583 unwind label %590

583:                                              ; preds = %581
  %584 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA7_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %582, ptr noundef nonnull align 1 dereferenceable(7) @.str.66)
          to label %585 unwind label %590

585:                                              ; preds = %583
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #8
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %51) #8
  call void @llvm.lifetime.end.p0(i64 432, ptr %51) #8
  store i1 false, ptr %7, align 1
  store i32 1, ptr %20, align 4
  br label %595

586:                                              ; preds = %578
  %587 = landingpad { ptr, i32 }
          cleanup
  %588 = extractvalue { ptr, i32 } %587, 0
  store ptr %588, ptr %17, align 8
  %589 = extractvalue { ptr, i32 } %587, 1
  store i32 %589, ptr %18, align 4
  br label %594

590:                                              ; preds = %583, %581
  %591 = landingpad { ptr, i32 }
          cleanup
  %592 = extractvalue { ptr, i32 } %591, 0
  store ptr %592, ptr %17, align 8
  %593 = extractvalue { ptr, i32 } %591, 1
  store i32 %593, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #8
  br label %594

594:                                              ; preds = %590, %586
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %51) #8
  call void @llvm.lifetime.end.p0(i64 432, ptr %51) #8
  br label %596

595:                                              ; preds = %585, %575
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #8
  br label %597

596:                                              ; preds = %594, %577
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #8
  br label %598

597:                                              ; preds = %595, %340
  call void @llvm.lifetime.end.p0(i64 1, ptr %32) #8
  br label %599

598:                                              ; preds = %596, %341
  call void @llvm.lifetime.end.p0(i64 1, ptr %32) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #8
  br label %602

599:                                              ; preds = %597, %315
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #8
  br label %600

600:                                              ; preds = %599, %301
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #8
  %601 = load i1, ptr %7, align 1
  ret i1 %601

602:                                              ; preds = %598, %316
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #8
  br label %603

603:                                              ; preds = %602
  %604 = load ptr, ptr %17, align 8
  %605 = load i32, ptr %18, align 4
  %606 = insertvalue { ptr, i32 } poison, ptr %604, 0
  %607 = insertvalue { ptr, i32 } %606, i32 %605, 1
  resume { ptr, i32 } %607
}

declare noundef i64 @_ZN7DynexCN10Blockchain25getDifficultyForNextBlockEv(ptr noundef nonnull align 8 dereferenceable(2636)) #2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(384) ptr @_ZN5boost17value_initializedIN7DynexCN5BlockEEcvRS2_Ev(ptr noundef nonnull align 8 dereferenceable(384)) #6 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)) #3 align 2

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

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

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

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

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

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

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

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

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

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

declare noundef i64 @_ZN7DynexCN10Blockchain17getBlockTimestampEj(ptr noundef nonnull align 8 dereferenceable(2636), i32 noundef) #2

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

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

declare noundef i64 @_ZN7DynexCN10Blockchain34getCurrentCumulativeBlocksizeLimitEv(ptr noundef nonnull align 8 dereferenceable(2636)) #2

declare noundef i64 @_ZN7DynexCN10Blockchain21getCoinsInCirculationEv(ptr noundef nonnull align 8 dereferenceable(2636)) #2

declare noundef zeroext i1 @_ZN7DynexCN14tx_memory_pool19fill_block_templateERNS_5BlockEmmmRmS3_(ptr noundef nonnull align 8 dereferenceable(688), ptr noundef nonnull align 8 dereferenceable(384), i64 noundef, i64 noundef, i64 noundef, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) #2

declare noundef i64 @_ZNK7DynexCN8Currency22maxBlockCumulativeSizeEm(ptr noundef nonnull align 8 dereferenceable(984), i64 noundef) #2

declare noundef zeroext i1 @_ZNK7DynexCN8Currency16constructMinerTxEhjmmmmRKNS_20AccountPublicAddressERNS_11TransactionERKSt6vectorIhSaIhEEm(ptr noundef nonnull align 8 dereferenceable(984), i8 noundef zeroext, i32 noundef, i64 noundef, i64 noundef, i64 noundef, i64 noundef, ptr noundef nonnull align 1 dereferenceable(64), ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) #2

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

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

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

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

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

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

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

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

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

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

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

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

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


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

%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = 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.DynexCN::LockedBlockchainStorage" = type { ptr, %"class.std::lock_guard.307" }
%"class.std::lock_guard.307" = type { ptr }
%"class.boost::value_initialized.308" = type { %"class.boost::initialized.309" }
%"class.boost::initialized.309" = type { %"struct.DynexCN::Block" }
%"struct.DynexCN::Block" = type { %"struct.DynexCN::BlockHeader", %"struct.DynexCN::ParentBlock", %"struct.DynexCN::Transaction", %"class.std::vector.201" }
%"struct.DynexCN::BlockHeader" = type { i8, i8, i32, i64, %"struct.Crypto::Hash" }
%"struct.Crypto::Hash" = type { [32 x i8] }
%"struct.DynexCN::ParentBlock" = type { i8, i8, %"struct.Crypto::Hash", i16, %"class.std::vector.201", %"struct.DynexCN::Transaction", %"class.std::vector.201" }
%"struct.DynexCN::Transaction" = type { %"struct.DynexCN::TransactionPrefix", %"class.std::vector.221" }
%"struct.DynexCN::TransactionPrefix" = type { i8, i64, %"class.std::vector.206", %"class.std::vector.211", %"class.std::vector.216" }
%"class.std::vector.206" = type { %"struct.std::_Vector_base.207" }
%"struct.std::_Vector_base.207" = 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.211" = type { %"struct.std::_Vector_base.212" }
%"struct.std::_Vector_base.212" = 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.216" = type { %"struct.std::_Vector_base.217" }
%"struct.std::_Vector_base.217" = type { %"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl" }
%"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl" = type { %"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl_data" }
%"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.221" = type { %"struct.std::_Vector_base.222" }
%"struct.std::_Vector_base.222" = 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.201" = type { %"struct.std::_Vector_base.202" }
%"struct.std::_Vector_base.202" = 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 }
%"struct.DynexCN::TransactionExtraMergeTag" = type { i64, %"struct.Crypto::Hash" }
%"class.boost::value_initialized.310" = type { %"class.boost::initialized.311" }
%"class.boost::initialized.311" = type { %"struct.DynexCN::TransactionExtraMergeTag" }
%"class.std::vector.116" = type { %"struct.std::_Vector_base.117" }
%"struct.std::_Vector_base.117" = 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.__gnu_cxx::__normal_iterator.313" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.312" = type { ptr }

@_ZN7Logging10BRIGHT_REDB5cxx11E = external global %"class.std::__cxx11::basic_string", align 8
@.str.53 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [6 x i8], align 1
@_ZN7Logging12BRIGHT_GREENB5cxx11E = external global %"class.std::__cxx11::basic_string", align 8
@.str.62 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [7 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(...)

declare noundef i32 @_ZN7DynexCN10Blockchain26getCurrentBlockchainHeightEv(ptr noundef nonnull align 8 dereferenceable(2636)) local_unnamed_addr #2

declare noundef zeroext i8 @_ZNK7DynexCN10Blockchain29getBlockMajorVersionForHeightEj(ptr noundef nonnull align 8 dereferenceable(2636), i32 noundef) local_unnamed_addr #2

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7DynexCN23LockedBlockchainStorageC2ERNS_10BlockchainE(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(2636)) unnamed_addr #6 align 2

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

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

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_ZN7DynexCN4core18get_block_templateERNS_5BlockERKNS_20AccountPublicAddressERmRjRKSt6vectorIhSaIhEE(ptr noundef nonnull align 8 dereferenceable(3632) %0, ptr noundef nonnull align 8 dereferenceable(384) %1, ptr noundef nonnull align 1 dereferenceable(64) %2, ptr nocapture noundef nonnull writeonly align 8 dereferenceable(8) %3, ptr nocapture noundef nonnull align 4 dereferenceable(4) %4, ptr noundef nonnull align 8 dereferenceable(24) %5) unnamed_addr #6 align 2 personality ptr @__gxx_personality_v0 {
  %7 = alloca %"class.DynexCN::LockedBlockchainStorage", align 8
  %8 = alloca %"class.Logging::LoggerMessage", align 8
  %9 = alloca %"class.boost::value_initialized.308", align 8
  %10 = alloca %"struct.DynexCN::TransactionExtraMergeTag", align 8
  %11 = alloca %"class.boost::value_initialized.310", align 8
  %12 = alloca %"class.Logging::LoggerMessage", align 8
  %13 = alloca %"struct.Crypto::Hash", align 1
  %14 = alloca %"class.std::vector.116", align 8
  %15 = alloca i64, align 8
  %16 = alloca i64, align 8
  %17 = alloca i64, align 8
  %18 = alloca %"class.Logging::LoggerMessage", align 8
  %19 = alloca i64, align 8
  %20 = alloca i64, align 8
  %21 = alloca %"class.Logging::LoggerMessage", align 8
  %22 = alloca i64, align 8
  %23 = alloca %"class.__gnu_cxx::__normal_iterator.313", align 8
  %24 = alloca %"class.__gnu_cxx::__normal_iterator.312", align 8
  %25 = alloca i8, align 1
  %26 = alloca %"class.Logging::LoggerMessage", align 8
  %27 = alloca i64, align 8
  %28 = alloca %"class.Logging::LoggerMessage", align 8
  %29 = alloca i64, align 8
  %30 = alloca %"class.Logging::LoggerMessage", align 8
  %31 = alloca i64, align 8
  %32 = alloca %"class.Logging::LoggerMessage", align 8
  %33 = alloca i64, align 8
  %34 = alloca %"class.Logging::LoggerMessage", align 8
  %35 = alloca i32, align 4
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %7) #8
  %36 = getelementptr inbounds i8, ptr %0, i64 864
  call void @_ZN7DynexCN23LockedBlockchainStorageC2ERNS_10BlockchainE(ptr noundef nonnull align 8 dereferenceable(16) %7, ptr noundef nonnull align 8 dereferenceable(2636) %36)
  %37 = invoke noundef i32 @_ZN7DynexCN10Blockchain26getCurrentBlockchainHeightEv(ptr noundef nonnull align 8 dereferenceable(2636) %36)
          to label %38 unwind label %46

38:                                               ; preds = %6
  store i32 %37, ptr %4, align 4, !tbaa !5
  %39 = invoke noundef i64 @_ZN7DynexCN10Blockchain25getDifficultyForNextBlockEv(ptr noundef nonnull align 8 dereferenceable(2636) %36)
          to label %40 unwind label %46

40:                                               ; preds = %38
  store i64 %39, ptr %3, align 8, !tbaa !9
  %.not = icmp eq i64 %39, 0
  br i1 %.not, label %41, label %53

41:                                               ; preds = %40
  call void @llvm.lifetime.start.p0(i64 432, ptr nonnull %8) #8
  %42 = getelementptr inbounds i8, ptr %0, i64 128
  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) %42, i32 noundef 1, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging10BRIGHT_REDB5cxx11E)
          to label %43 unwind label %48

43:                                               ; preds = %41
  %44 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA21_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %8, ptr noundef nonnull align 1 dereferenceable(21) @.str.53)
          to label %45 unwind label %50

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

46:                                               ; preds = %162, %160, %118, %109, %75, %62, %58, %38, %6
  %47 = landingpad { ptr, i32 }
          cleanup
  br label %172

48:                                               ; preds = %41
  %49 = landingpad { ptr, i32 }
          cleanup
  br label %52

50:                                               ; preds = %43
  %51 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %8) #8
  br label %52

52:                                               ; preds = %50, %48
  %.pn = phi { ptr, i32 } [ %51, %50 ], [ %49, %48 ]
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %8) #8
  br label %172

53:                                               ; preds = %40
  call void @llvm.lifetime.start.p0(i64 384, ptr nonnull %9) #8
  invoke void @_ZN5boost17value_initializedIN7DynexCN5BlockEEC2Ev(ptr noundef nonnull align 8 dereferenceable(384) %9)
          to label %54 unwind label %70

54:                                               ; preds = %53
  %55 = invoke noundef nonnull align 8 dereferenceable(384) ptr @_ZN5boost17value_initializedIN7DynexCN5BlockEEcvRS2_Ev(ptr noundef nonnull align 8 dereferenceable(384) %9)
          to label %56 unwind label %72

56:                                               ; preds = %54
  %57 = invoke noundef nonnull align 8 dereferenceable(384) ptr @_ZN7DynexCN5BlockaSERKS0_(ptr noundef nonnull align 8 dereferenceable(384) %1, ptr noundef nonnull align 8 dereferenceable(384) %55)
          to label %58 unwind label %72

58:                                               ; preds = %56
  call void @_ZN5boost17value_initializedIN7DynexCN5BlockEED2Ev(ptr noundef nonnull align 8 dereferenceable(384) %9) #8
  call void @llvm.lifetime.end.p0(i64 384, ptr nonnull %9) #8
  %59 = load i32, ptr %4, align 4, !tbaa !5
  %60 = invoke noundef zeroext i8 @_ZNK7DynexCN10Blockchain29getBlockMajorVersionForHeightEj(ptr noundef nonnull align 8 dereferenceable(2636) %36, i32 noundef %59)
          to label %61 unwind label %46

61:                                               ; preds = %58
  store i8 %60, ptr %1, align 8, !tbaa !11
  switch i8 %60, label %107 [
    i8 1, label %62
    i8 2, label %75
    i8 3, label %75
  ]

62:                                               ; preds = %61
  %63 = getelementptr inbounds i8, ptr %0, i64 32
  %64 = load ptr, ptr %63, align 8, !tbaa !14
  %65 = invoke noundef i32 @_ZNK7DynexCN8Currency13upgradeHeightEh(ptr noundef nonnull align 8 dereferenceable(984) %64, i8 noundef zeroext 2)
          to label %66 unwind label %46

66:                                               ; preds = %62
  %67 = icmp eq i32 %65, -1
  %68 = zext i1 %67 to i8
  %69 = getelementptr inbounds i8, ptr %1, i64 1
  store i8 %68, ptr %69, align 1, !tbaa !197
  br label %117

70:                                               ; preds = %53
  %71 = landingpad { ptr, i32 }
          cleanup
  br label %74

72:                                               ; preds = %56, %54
  %73 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5boost17value_initializedIN7DynexCN5BlockEED2Ev(ptr noundef nonnull align 8 dereferenceable(384) %9) #8
  br label %74

74:                                               ; preds = %72, %70
  %.pn123 = phi { ptr, i32 } [ %73, %72 ], [ %71, %70 ]
  call void @llvm.lifetime.end.p0(i64 384, ptr nonnull %9) #8
  br label %172

75:                                               ; preds = %61, %61
  %76 = getelementptr inbounds i8, ptr %0, i64 32
  %77 = load ptr, ptr %76, align 8, !tbaa !14
  %78 = invoke noundef i32 @_ZNK7DynexCN8Currency13upgradeHeightEh(ptr noundef nonnull align 8 dereferenceable(984) %77, i8 noundef zeroext 3)
          to label %79 unwind label %46

79:                                               ; preds = %75
  %80 = icmp eq i32 %78, -1
  %81 = load i8, ptr %1, align 8
  %82 = icmp eq i8 %81, 2
  %narrow = select i1 %80, i1 %82, i1 false
  %.sink = zext i1 %narrow to i8
  %83 = getelementptr inbounds i8, ptr %1, i64 1
  store i8 %.sink, ptr %83, align 1
  %84 = getelementptr inbounds i8, ptr %1, i64 48
  store i8 0, ptr %84, align 8, !tbaa !198
  %85 = getelementptr inbounds i8, ptr %1, i64 82
  store i16 1, ptr %85, align 2, !tbaa !224
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %10) #8
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %11) #8
  invoke void @_ZN5boost17value_initializedIN7DynexCN24TransactionExtraMergeTagEEC2Ev(ptr noundef nonnull align 8 dereferenceable(40) %11)
          to label %86 unwind label %97

86:                                               ; preds = %79
  %87 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZN5boost17value_initializedIN7DynexCN24TransactionExtraMergeTagEEcvRS2_Ev(ptr noundef nonnull align 8 dereferenceable(40) %11)
          to label %88 unwind label %97

88:                                               ; preds = %86
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %10, ptr noundef nonnull align 8 dereferenceable(40) %87, i64 40, i1 false), !tbaa.struct !225
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %11) #8
  %89 = getelementptr inbounds i8, ptr %1, i64 176
  %90 = invoke noundef zeroext i1 @_ZN7DynexCN27appendMergeMiningTagToExtraERSt6vectorIhSaIhEERKNS_24TransactionExtraMergeTagE(ptr noundef nonnull align 8 dereferenceable(24) %89, ptr noundef nonnull align 8 dereferenceable(40) %10)
          to label %91 unwind label %99

91:                                               ; preds = %88
  br i1 %90, label %.critedge, label %92

92:                                               ; preds = %91
  call void @llvm.lifetime.start.p0(i64 432, ptr nonnull %12) #8
  %93 = getelementptr inbounds i8, ptr %0, i64 128
  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) %93, i32 noundef 1, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging10BRIGHT_REDB5cxx11E)
          to label %94 unwind label %101

94:                                               ; preds = %92
  %95 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA77_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %12, ptr noundef nonnull align 1 dereferenceable(77) @.str.54)
          to label %96 unwind label %103

96:                                               ; preds = %94
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %12) #8
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %12) #8
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %10) #8
  br label %.thread

97:                                               ; preds = %86, %79
  %98 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %11) #8
  br label %106

99:                                               ; preds = %88
  %100 = landingpad { ptr, i32 }
          cleanup
  br label %106

101:                                              ; preds = %92
  %102 = landingpad { ptr, i32 }
          cleanup
  br label %105

103:                                              ; preds = %94
  %104 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %12) #8
  br label %105

105:                                              ; preds = %103, %101
  %.pn125 = phi { ptr, i32 } [ %104, %103 ], [ %102, %101 ]
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %12) #8
  br label %106

106:                                              ; preds = %105, %99, %97
  %.pn125.pn = phi { ptr, i32 } [ %.pn125, %105 ], [ %100, %99 ], [ %98, %97 ]
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %10) #8
  br label %172

107:                                              ; preds = %61
  %108 = icmp ugt i8 %60, 3
  br i1 %108, label %109, label %117

109:                                              ; preds = %107
  %110 = getelementptr inbounds i8, ptr %0, i64 32
  %111 = load ptr, ptr %110, align 8, !tbaa !14
  %112 = invoke noundef i32 @_ZNK7DynexCN8Currency13upgradeHeightEh(ptr noundef nonnull align 8 dereferenceable(984) %111, i8 noundef zeroext 4)
          to label %113 unwind label %46

113:                                              ; preds = %109
  %114 = icmp eq i32 %112, -1
  %115 = zext i1 %114 to i8
  %116 = getelementptr inbounds i8, ptr %1, i64 1
  store i8 %115, ptr %116, align 1, !tbaa !197
  br label %117

.critedge:                                        ; preds = %91
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %10) #8
  br label %117

117:                                              ; preds = %.critedge, %113, %107, %66
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %13) #8
  invoke void @_ZN7DynexCN4core11get_tail_idEv(ptr dead_on_unwind nonnull writable sret(%"struct.Crypto::Hash") align 1 %13, ptr noundef nonnull align 8 dereferenceable(3632) %0)
          to label %118 unwind label %140

118:                                              ; preds = %117
  %119 = getelementptr inbounds i8, ptr %1, i64 16
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %119, ptr noundef nonnull align 1 dereferenceable(32) %13, i64 32, i1 false), !tbaa.struct !227
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #8
  %120 = call i64 @time(ptr noundef null) #8
  %121 = getelementptr inbounds i8, ptr %1, i64 8
  store i64 %120, ptr %121, align 8, !tbaa !228
  %122 = load i32, ptr %4, align 4, !tbaa !5
  %123 = getelementptr inbounds i8, ptr %0, i64 32
  %124 = load ptr, ptr %123, align 8, !tbaa !14
  %125 = load i8, ptr %1, align 8, !tbaa !11
  %126 = invoke noundef i64 @_ZNK7DynexCN8Currency20timestampCheckWindowEh(ptr noundef nonnull align 8 dereferenceable(984) %124, i8 noundef zeroext %125)
          to label %127 unwind label %46

127:                                              ; preds = %118
  %128 = zext i32 %122 to i64
  %.not128 = icmp ugt i64 %126, %128
  br i1 %.not128, label %160, label %129

129:                                              ; preds = %127
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %14) #8
  call void @_ZNSt6vectorImSaImEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %14) #8
  %130 = load i32, ptr %4, align 4, !tbaa !5
  %131 = load ptr, ptr %123, align 8, !tbaa !14
  %132 = load i8, ptr %1, align 8, !tbaa !11
  %133 = invoke noundef i64 @_ZNK7DynexCN8Currency20timestampCheckWindowEh(ptr noundef nonnull align 8 dereferenceable(984) %131, i8 noundef zeroext %132)
          to label %134 unwind label %142

134:                                              ; preds = %129
  %135 = trunc i64 %133 to i32
  %136 = sub i32 %130, %135
  %137 = load i32, ptr %4, align 4, !tbaa !5
  %138 = icmp ult i32 %136, %137
  br i1 %138, label %.lr.ph, label %._crit_edge

._crit_edge:                                      ; preds = %146, %134
  %139 = invoke noundef i64 @_ZN6Common11medianValueImEET_RSt6vectorIS1_SaIS1_EE(ptr noundef nonnull align 8 dereferenceable(24) %14)
          to label %152 unwind label %156

140:                                              ; preds = %117
  %141 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #8
  br label %172

142:                                              ; preds = %129
  %143 = landingpad { ptr, i32 }
          cleanup
  br label %159

.lr.ph:                                           ; preds = %134, %146
  %.084183 = phi i32 [ %147, %146 ], [ %136, %134 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #8
  %144 = invoke noundef i64 @_ZN7DynexCN10Blockchain17getBlockTimestampEj(ptr noundef nonnull align 8 dereferenceable(2636) %36, i32 noundef %.084183)
          to label %145 unwind label %150

145:                                              ; preds = %.lr.ph
  store i64 %144, ptr %15, align 8, !tbaa !9
  invoke void @_ZNSt6vectorImSaImEE9push_backEOm(ptr noundef nonnull align 8 dereferenceable(24) %14, ptr noundef nonnull align 8 dereferenceable(8) %15)
          to label %146 unwind label %150

146:                                              ; preds = %145
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #8
  %147 = add nuw i32 %.084183, 1
  %148 = load i32, ptr %4, align 4, !tbaa !5
  %149 = icmp ult i32 %147, %148
  br i1 %149, label %.lr.ph, label %._crit_edge, !llvm.loop !229

150:                                              ; preds = %145, %.lr.ph
  %151 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #8
  br label %159

152:                                              ; preds = %._crit_edge
  %153 = load i64, ptr %121, align 8, !tbaa !228
  %154 = icmp ult i64 %153, %139
  br i1 %154, label %155, label %158

155:                                              ; preds = %152
  store i64 %139, ptr %121, align 8, !tbaa !228
  br label %158

156:                                              ; preds = %._crit_edge
  %157 = landingpad { ptr, i32 }
          cleanup
  br label %159

158:                                              ; preds = %155, %152
  call void @_ZNSt6vectorImSaImEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %14) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %14) #8
  br label %160

159:                                              ; preds = %142, %150, %156
  %.pn147.pn = phi { ptr, i32 } [ %157, %156 ], [ %151, %150 ], [ %143, %142 ]
  call void @_ZNSt6vectorImSaImEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %14) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %14) #8
  br label %172

160:                                              ; preds = %158, %127
  %161 = invoke noundef i64 @_ZN7DynexCN10Blockchain34getCurrentCumulativeBlocksizeLimitEv(ptr noundef nonnull align 8 dereferenceable(2636) %36)
          to label %162 unwind label %46

162:                                              ; preds = %160
  %163 = invoke noundef i64 @_ZN7DynexCN10Blockchain21getCoinsInCirculationEv(ptr noundef nonnull align 8 dereferenceable(2636) %36)
          to label %164 unwind label %46

.thread:                                          ; preds = %96, %45
  call void @_ZN7DynexCN23LockedBlockchainStorageD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %7) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %7) #8
  br label %340

164:                                              ; preds = %162
  %165 = lshr i64 %161, 1
  call void @_ZN7DynexCN23LockedBlockchainStorageD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %7) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %7) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #8
  %166 = getelementptr inbounds i8, ptr %0, i64 176
  %167 = load ptr, ptr %123, align 8, !tbaa !14
  %168 = load i32, ptr %4, align 4, !tbaa !5
  %169 = zext i32 %168 to i64
  %170 = call noundef i64 @_ZNK7DynexCN8Currency22maxBlockCumulativeSizeEm(ptr noundef nonnull align 8 dereferenceable(984) %167, i64 noundef %169)
  %171 = call noundef zeroext i1 @_ZN7DynexCN14tx_memory_pool19fill_block_templateERNS_5BlockEmmmRmS3_(ptr noundef nonnull align 8 dereferenceable(688) %166, ptr noundef nonnull align 8 dereferenceable(384) %1, i64 noundef %165, i64 noundef %170, i64 noundef %163, ptr noundef nonnull align 8 dereferenceable(8) %16, ptr noundef nonnull align 8 dereferenceable(8) %17)
  br i1 %171, label %173, label %339

172:                                              ; preds = %159, %140, %106, %74, %52, %46
  %.pn147.pn.pn = phi { ptr, i32 } [ %.pn147.pn, %159 ], [ %47, %46 ], [ %141, %140 ], [ %.pn125.pn, %106 ], [ %.pn123, %74 ], [ %.pn, %52 ]
  call void @_ZN7DynexCN23LockedBlockchainStorageD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %7) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %7) #8
  br label %341

173:                                              ; preds = %164
  %174 = load ptr, ptr %123, align 8, !tbaa !14
  %175 = load i8, ptr %1, align 8, !tbaa !11
  %176 = load i32, ptr %4, align 4, !tbaa !5
  %177 = load i64, ptr %16, align 8, !tbaa !9
  %178 = load i64, ptr %17, align 8, !tbaa !9
  %179 = getelementptr inbounds i8, ptr %1, i64 248
  %180 = call noundef zeroext i1 @_ZNK7DynexCN8Currency16constructMinerTxEhjmmmmRKNS_20AccountPublicAddressERNS_11TransactionERKSt6vectorIhSaIhEEm(ptr noundef nonnull align 8 dereferenceable(984) %174, i8 noundef zeroext %175, i32 noundef %176, i64 noundef %165, i64 noundef %163, i64 noundef %177, i64 noundef %178, ptr noundef nonnull align 1 dereferenceable(64) %2, ptr noundef nonnull align 8 dereferenceable(112) %179, ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef 14)
  br i1 %180, label %187, label %181

181:                                              ; preds = %173
  call void @llvm.lifetime.start.p0(i64 432, ptr nonnull %18) #8
  %182 = getelementptr inbounds i8, ptr %0, i64 128
  call void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.Logging::LoggerMessage") align 8 %18, ptr noundef nonnull align 8 dereferenceable(40) %182, i32 noundef 1, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging10BRIGHT_REDB5cxx11E)
  %183 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA46_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %18, ptr noundef nonnull align 1 dereferenceable(46) @.str.55)
          to label %184 unwind label %185

184:                                              ; preds = %181
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %18) #8
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %18) #8
  br label %339

185:                                              ; preds = %181
  %186 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %18) #8
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %18) #8
  br label %338

187:                                              ; preds = %173
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #8
  %188 = load i64, ptr %16, align 8, !tbaa !9
  %189 = call noundef i64 @_ZN7DynexCN19getObjectBinarySizeINS_11TransactionEEEmRKT_(ptr noundef nonnull align 8 dereferenceable(112) %179)
  %190 = add i64 %189, %188
  store i64 %190, ptr %19, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #8
  store i64 0, ptr %20, align 8, !tbaa !9
  %191 = getelementptr inbounds i8, ptr %1, i64 312
  %192 = getelementptr inbounds i8, ptr %0, i64 128
  br label %193

193:                                              ; preds = %187, %320
  %194 = phi i64 [ 0, %187 ], [ %322, %320 ]
  %195 = phi i64 [ %190, %187 ], [ %321, %320 ]
  %196 = load ptr, ptr %123, align 8, !tbaa !14
  %197 = load i8, ptr %1, align 8, !tbaa !11
  %198 = load i32, ptr %4, align 4, !tbaa !5
  %199 = load i64, ptr %17, align 8, !tbaa !9
  %200 = call noundef zeroext i1 @_ZNK7DynexCN8Currency16constructMinerTxEhjmmmmRKNS_20AccountPublicAddressERNS_11TransactionERKSt6vectorIhSaIhEEm(ptr noundef nonnull align 8 dereferenceable(984) %196, i8 noundef zeroext %197, i32 noundef %198, i64 noundef %165, i64 noundef %163, i64 noundef %195, i64 noundef %199, ptr noundef nonnull align 1 dereferenceable(64) %2, ptr noundef nonnull align 8 dereferenceable(112) %179, ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef 14)
  br i1 %200, label %206, label %201

201:                                              ; preds = %193
  call void @llvm.lifetime.start.p0(i64 432, ptr nonnull %21) #8
  call void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.Logging::LoggerMessage") align 8 %21, ptr noundef nonnull align 8 dereferenceable(40) %192, i32 noundef 1, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging10BRIGHT_REDB5cxx11E)
  %202 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA47_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %21, ptr noundef nonnull align 1 dereferenceable(47) @.str.56)
          to label %203 unwind label %204

203:                                              ; preds = %201
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %21) #8
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %21) #8
  br label %.thread175

204:                                              ; preds = %201
  %205 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %21) #8
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %21) #8
  br label %323

206:                                              ; preds = %193
  %207 = call noundef i64 @_ZN7DynexCN19getObjectBinarySizeINS_11TransactionEEEmRKT_(ptr noundef nonnull align 8 dereferenceable(112) %179)
  %208 = load i64, ptr %19, align 8, !tbaa !9
  %209 = load i64, ptr %16, align 8, !tbaa !9
  %210 = sub i64 %208, %209
  %211 = icmp ugt i64 %207, %210
  br i1 %211, label %.thread165, label %213

.thread165:                                       ; preds = %206
  %212 = add i64 %209, %207
  store i64 %212, ptr %19, align 8, !tbaa !9
  br label %320

213:                                              ; preds = %206
  %214 = icmp ult i64 %207, %210
  br i1 %214, label %215, label %.loopexit

215:                                              ; preds = %213
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %22) #8
  %216 = add i64 %207, %209
  %217 = sub i64 %208, %216
  store i64 %217, ptr %22, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #8
  %218 = call ptr @_ZNSt6vectorIhSaIhEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %191) #8
  store ptr %218, ptr %24, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKhSt6vectorIhSaIhEEEC2IPhvEERKNS0_IT_S5_EE(ptr noundef nonnull align 8 dereferenceable(8) %23, ptr noundef nonnull align 8 dereferenceable(8) %24) #8
  %219 = load i64, ptr %22, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %25) #8
  store i8 0, ptr %25, align 1, !tbaa !226
  %220 = load ptr, ptr %23, align 8
  %221 = call ptr @_ZNSt6vectorIhSaIhEE6insertEN9__gnu_cxx17__normal_iteratorIPKhS1_EEmRS4_(ptr noundef nonnull align 8 dereferenceable(24) %191, ptr %220, i64 noundef %219, ptr noundef nonnull align 1 dereferenceable(1) %25)
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %25) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #8
  %222 = load i64, ptr %19, align 8, !tbaa !9
  %223 = load i64, ptr %16, align 8, !tbaa !9
  %224 = call noundef i64 @_ZN7DynexCN19getObjectBinarySizeINS_11TransactionEEEmRKT_(ptr noundef nonnull align 8 dereferenceable(112) %179)
  %225 = add i64 %224, %223
  %.not130 = icmp eq i64 %222, %225
  br i1 %.not130, label %.thread156, label %226

226:                                              ; preds = %215
  %227 = load i64, ptr %19, align 8, !tbaa !9
  %228 = add i64 %227, 1
  %229 = load i64, ptr %16, align 8, !tbaa !9
  %230 = call noundef i64 @_ZN7DynexCN19getObjectBinarySizeINS_11TransactionEEEmRKT_(ptr noundef nonnull align 8 dereferenceable(112) %179)
  %231 = add i64 %230, %229
  %232 = icmp eq i64 %228, %231
  br i1 %232, label %252, label %233

233:                                              ; preds = %226
  call void @llvm.lifetime.start.p0(i64 432, ptr nonnull %26) #8
  call void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.Logging::LoggerMessage") align 8 %26, ptr noundef nonnull align 8 dereferenceable(40) %192, i32 noundef 1, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging10BRIGHT_REDB5cxx11E)
  %234 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA34_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %26, ptr noundef nonnull align 1 dereferenceable(34) @.str.57)
          to label %235 unwind label %247

235:                                              ; preds = %233
  %236 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEmEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %234, ptr noundef nonnull align 8 dereferenceable(8) %19)
          to label %237 unwind label %247

237:                                              ; preds = %235
  %238 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA39_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %236, ptr noundef nonnull align 1 dereferenceable(39) @.str.58)
          to label %239 unwind label %247

239:                                              ; preds = %237
  %240 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEmEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %238, ptr noundef nonnull align 8 dereferenceable(8) %16)
          to label %241 unwind label %247

241:                                              ; preds = %239
  %242 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA43_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %240, ptr noundef nonnull align 1 dereferenceable(43) @.str.59)
          to label %243 unwind label %247

243:                                              ; preds = %241
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) #8
  %244 = invoke noundef i64 @_ZN7DynexCN19getObjectBinarySizeINS_11TransactionEEEmRKT_(ptr noundef nonnull align 8 dereferenceable(112) %179)
          to label %245 unwind label %249

245:                                              ; preds = %243
  store i64 %244, ptr %27, align 8, !tbaa !9
  %246 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEmEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %242, ptr noundef nonnull align 8 dereferenceable(8) %27)
          to label %319 unwind label %249

247:                                              ; preds = %241, %239, %237, %235, %233
  %248 = landingpad { ptr, i32 }
          cleanup
  br label %251

249:                                              ; preds = %245, %243
  %250 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #8
  br label %251

251:                                              ; preds = %249, %247
  %.pn131 = phi { ptr, i32 } [ %250, %249 ], [ %248, %247 ]
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %26) #8
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %26) #8
  br label %293

252:                                              ; preds = %226
  %253 = call noundef i64 @_ZNKSt6vectorIhSaIhEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %191) #8
  %254 = add i64 %253, -1
  call void @_ZNSt6vectorIhSaIhEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %191, i64 noundef %254)
  %255 = load i64, ptr %19, align 8, !tbaa !9
  %256 = load i64, ptr %16, align 8, !tbaa !9
  %257 = call noundef i64 @_ZN7DynexCN19getObjectBinarySizeINS_11TransactionEEEmRKT_(ptr noundef nonnull align 8 dereferenceable(112) %179)
  %258 = add i64 %257, %256
  %.not133 = icmp eq i64 %255, %258
  br i1 %.not133, label %278, label %259

259:                                              ; preds = %252
  call void @llvm.lifetime.start.p0(i64 432, ptr nonnull %28) #8
  call 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) %192, i32 noundef 5, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging10BRIGHT_REDB5cxx11E)
  %260 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA59_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %28, ptr noundef nonnull align 1 dereferenceable(59) @.str.60)
          to label %261 unwind label %273

261:                                              ; preds = %259
  %262 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEmEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %260, ptr noundef nonnull align 8 dereferenceable(8) %22)
          to label %263 unwind label %273

263:                                              ; preds = %261
  %264 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA6_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %262, ptr noundef nonnull align 1 dereferenceable(6) @.str.61)
          to label %265 unwind label %273

265:                                              ; preds = %263
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #8
  %266 = load i64, ptr %22, align 8, !tbaa !9
  %267 = add i64 %266, -1
  store i64 %267, ptr %29, align 8, !tbaa !9
  %268 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEmEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %264, ptr noundef nonnull align 8 dereferenceable(8) %29)
          to label %.thread170 unwind label %275

.thread170:                                       ; preds = %265
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #8
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %28) #8
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %28) #8
  %269 = load i64, ptr %22, align 8, !tbaa !9
  %270 = add i64 %269, -1
  %271 = load i64, ptr %19, align 8, !tbaa !9
  %272 = add i64 %270, %271
  store i64 %272, ptr %19, align 8, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #8
  br label %320

273:                                              ; preds = %263, %261, %259
  %274 = landingpad { ptr, i32 }
          cleanup
  br label %277

275:                                              ; preds = %265
  %276 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #8
  br label %277

277:                                              ; preds = %275, %273
  %.pn136 = phi { ptr, i32 } [ %276, %275 ], [ %274, %273 ]
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %28) #8
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %28) #8
  br label %293

278:                                              ; preds = %252
  call void @llvm.lifetime.start.p0(i64 432, ptr nonnull %30) #8
  call void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.Logging::LoggerMessage") align 8 %30, ptr noundef nonnull align 8 dereferenceable(40) %192, i32 noundef 4, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging12BRIGHT_GREENB5cxx11E)
  %279 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA26_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %30, ptr noundef nonnull align 1 dereferenceable(26) @.str.62)
          to label %280 unwind label %288

280:                                              ; preds = %278
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %31) #8
  %281 = call noundef i64 @_ZNKSt6vectorIhSaIhEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %191) #8
  store i64 %281, ptr %31, align 8, !tbaa !9
  %282 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEmEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %279, ptr noundef nonnull align 8 dereferenceable(8) %31)
          to label %283 unwind label %290

283:                                              ; preds = %280
  %284 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA13_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %282, ptr noundef nonnull align 1 dereferenceable(13) @.str.63)
          to label %285 unwind label %290

285:                                              ; preds = %283
  %286 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEmEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %284, ptr noundef nonnull align 8 dereferenceable(8) %20)
          to label %287 unwind label %290

287:                                              ; preds = %285
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #8
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %30) #8
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %30) #8
  br label %.thread156

288:                                              ; preds = %278
  %289 = landingpad { ptr, i32 }
          cleanup
  br label %292

290:                                              ; preds = %285, %283, %280
  %291 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #8
  br label %292

292:                                              ; preds = %290, %288
  %.pn134 = phi { ptr, i32 } [ %291, %290 ], [ %289, %288 ]
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %30) #8
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %30) #8
  br label %293

.thread156:                                       ; preds = %215, %287
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #8
  %.pre = load i64, ptr %19, align 8, !tbaa !9
  %.pre184 = load i64, ptr %16, align 8, !tbaa !9
  br label %.loopexit

293:                                              ; preds = %292, %277, %251
  %.pn136.pn = phi { ptr, i32 } [ %.pn136, %277 ], [ %.pn134, %292 ], [ %.pn131, %251 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #8
  br label %323

.loopexit:                                        ; preds = %213, %.thread156
  %294 = phi i64 [ %.pre184, %.thread156 ], [ %209, %213 ]
  %295 = phi i64 [ %.pre, %.thread156 ], [ %208, %213 ]
  %296 = call noundef i64 @_ZN7DynexCN19getObjectBinarySizeINS_11TransactionEEEmRKT_(ptr noundef nonnull align 8 dereferenceable(112) %179)
  %297 = add i64 %296, %294
  %298 = icmp eq i64 %295, %297
  br i1 %298, label %.thread175, label %299

299:                                              ; preds = %.loopexit
  call void @llvm.lifetime.start.p0(i64 432, ptr nonnull %32) #8
  call 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) %192, i32 noundef 1, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging10BRIGHT_REDB5cxx11E)
  %300 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA34_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %32, ptr noundef nonnull align 1 dereferenceable(34) @.str.57)
          to label %301 unwind label %314

301:                                              ; preds = %299
  %302 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEmEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %300, ptr noundef nonnull align 8 dereferenceable(8) %19)
          to label %303 unwind label %314

303:                                              ; preds = %301
  %304 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA35_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %302, ptr noundef nonnull align 1 dereferenceable(35) @.str.64)
          to label %305 unwind label %314

305:                                              ; preds = %303
  %306 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEmEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %304, ptr noundef nonnull align 8 dereferenceable(8) %16)
          to label %307 unwind label %314

307:                                              ; preds = %305
  %308 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA43_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %306, ptr noundef nonnull align 1 dereferenceable(43) @.str.59)
          to label %309 unwind label %314

309:                                              ; preds = %307
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %33) #8
  %310 = invoke noundef i64 @_ZN7DynexCN19getObjectBinarySizeINS_11TransactionEEEmRKT_(ptr noundef nonnull align 8 dereferenceable(112) %179)
          to label %311 unwind label %316

311:                                              ; preds = %309
  store i64 %310, ptr %33, align 8, !tbaa !9
  %312 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEmEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %308, ptr noundef nonnull align 8 dereferenceable(8) %33)
          to label %313 unwind label %316

313:                                              ; preds = %311
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #8
  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 %.thread175

314:                                              ; preds = %307, %305, %303, %301, %299
  %315 = landingpad { ptr, i32 }
          cleanup
  br label %318

316:                                              ; preds = %311, %309
  %317 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #8
  br label %318

318:                                              ; preds = %316, %314
  %.pn139 = phi { ptr, i32 } [ %317, %316 ], [ %315, %314 ]
  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 %323

319:                                              ; preds = %245
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #8
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %26) #8
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %26) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #8
  br label %.thread175

320:                                              ; preds = %.thread170, %.thread165
  %321 = phi i64 [ %272, %.thread170 ], [ %212, %.thread165 ]
  %322 = add i64 %194, 1
  store i64 %322, ptr %20, align 8, !tbaa !9
  %.not129 = icmp eq i64 %322, 10
  br i1 %.not129, label %324, label %193, !llvm.loop !231

.thread175:                                       ; preds = %319, %203, %313, %.loopexit
  %.6.ph = phi i1 [ false, %203 ], [ false, %319 ], [ true, %.loopexit ], [ false, %313 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #8
  br label %336

323:                                              ; preds = %293, %318, %204
  %.pn139.pn.pn = phi { ptr, i32 } [ %205, %204 ], [ %.pn139, %318 ], [ %.pn136.pn, %293 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #8
  br label %337

324:                                              ; preds = %320
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #8
  call void @llvm.lifetime.start.p0(i64 432, ptr nonnull %34) #8
  call void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.Logging::LoggerMessage") align 8 %34, ptr noundef nonnull align 8 dereferenceable(40) %192, i32 noundef 1, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging10BRIGHT_REDB5cxx11E)
  %325 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA38_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %34, ptr noundef nonnull align 1 dereferenceable(38) @.str.65)
          to label %326 unwind label %331

326:                                              ; preds = %324
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %35) #8
  store i32 10, ptr %35, align 4, !tbaa !5
  %327 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEiEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %325, ptr noundef nonnull align 4 dereferenceable(4) %35)
          to label %328 unwind label %333

328:                                              ; preds = %326
  %329 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA7_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %327, ptr noundef nonnull align 1 dereferenceable(7) @.str.66)
          to label %330 unwind label %333

330:                                              ; preds = %328
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %35) #8
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %34) #8
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %34) #8
  br label %336

331:                                              ; preds = %324
  %332 = landingpad { ptr, i32 }
          cleanup
  br label %335

333:                                              ; preds = %328, %326
  %334 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %35) #8
  br label %335

335:                                              ; preds = %333, %331
  %.pn143 = phi { ptr, i32 } [ %334, %333 ], [ %332, %331 ]
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %34) #8
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %34) #8
  br label %337

336:                                              ; preds = %.thread175, %330
  %.7 = phi i1 [ false, %330 ], [ %.6.ph, %.thread175 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #8
  br label %339

337:                                              ; preds = %335, %323
  %.pn143.pn = phi { ptr, i32 } [ %.pn143, %335 ], [ %.pn139.pn.pn, %323 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #8
  br label %338

338:                                              ; preds = %337, %185
  %.pn143.pn.pn = phi { ptr, i32 } [ %.pn143.pn, %337 ], [ %186, %185 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #8
  br label %341

339:                                              ; preds = %184, %336, %164
  %.9 = phi i1 [ false, %164 ], [ %.7, %336 ], [ false, %184 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #8
  br label %340

340:                                              ; preds = %.thread, %339
  %.10 = phi i1 [ %.9, %339 ], [ false, %.thread ]
  ret i1 %.10

341:                                              ; preds = %338, %172
  %.pn147.pn.pn.pn = phi { ptr, i32 } [ %.pn147.pn.pn, %172 ], [ %.pn143.pn.pn, %338 ]
  resume { ptr, i32 } %.pn147.pn.pn.pn
}

declare noundef i64 @_ZN7DynexCN10Blockchain25getDifficultyForNextBlockEv(ptr noundef nonnull align 8 dereferenceable(2636)) local_unnamed_addr #2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(384) ptr @_ZN5boost17value_initializedIN7DynexCN5BlockEEcvRS2_Ev(ptr noundef nonnull align 8 dereferenceable(384)) local_unnamed_addr #6 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 #3 align 2

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

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

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

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

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

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

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

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

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

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

declare noundef i64 @_ZN7DynexCN10Blockchain17getBlockTimestampEj(ptr noundef nonnull align 8 dereferenceable(2636), i32 noundef) local_unnamed_addr #2

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

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

declare noundef i64 @_ZN7DynexCN10Blockchain34getCurrentCumulativeBlocksizeLimitEv(ptr noundef nonnull align 8 dereferenceable(2636)) local_unnamed_addr #2

declare noundef i64 @_ZN7DynexCN10Blockchain21getCoinsInCirculationEv(ptr noundef nonnull align 8 dereferenceable(2636)) local_unnamed_addr #2

declare noundef zeroext i1 @_ZN7DynexCN14tx_memory_pool19fill_block_templateERNS_5BlockEmmmRmS3_(ptr noundef nonnull align 8 dereferenceable(688), ptr noundef nonnull align 8 dereferenceable(384), i64 noundef, i64 noundef, i64 noundef, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #2

declare noundef i64 @_ZNK7DynexCN8Currency22maxBlockCumulativeSizeEm(ptr noundef nonnull align 8 dereferenceable(984), i64 noundef) local_unnamed_addr #2

declare noundef zeroext i1 @_ZNK7DynexCN8Currency16constructMinerTxEhjmmmmRKNS_20AccountPublicAddressERNS_11TransactionERKSt6vectorIhSaIhEEm(ptr noundef nonnull align 8 dereferenceable(984), i8 noundef zeroext, i32 noundef, i64 noundef, i64 noundef, i64 noundef, i64 noundef, ptr noundef nonnull align 1 dereferenceable(64), ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) local_unnamed_addr #2

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

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

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

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

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

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

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

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

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

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

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

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

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


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