; LLVM IR from dynexcoin/Dynex :: src/PaymentGateService (PaymentGateService)

; 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.std::initializer_list" = type { ptr, i64 }
%"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::Currency" = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i32, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i32, i32, i32, i32, i32, i32, %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", i8, %"struct.DynexCN::Block", %"struct.Crypto::Hash", %"class.Logging::LoggerRef" }
%"struct.DynexCN::Block" = type { %"struct.DynexCN::BlockHeader", %"struct.DynexCN::ParentBlock", %"struct.DynexCN::Transaction", %"class.std::vector.13" }
%"struct.DynexCN::BlockHeader" = type { i8, i8, i32, i64, %"struct.Crypto::Hash" }
%"struct.DynexCN::ParentBlock" = type { i8, i8, %"struct.Crypto::Hash", i16, %"class.std::vector.13", %"struct.DynexCN::Transaction", %"class.std::vector.13" }
%"struct.DynexCN::Transaction" = type { %"struct.DynexCN::TransactionPrefix", %"class.std::vector.33" }
%"struct.DynexCN::TransactionPrefix" = type { i8, i64, %"class.std::vector.18", %"class.std::vector.23", %"class.std::vector.28" }
%"class.std::vector.18" = type { %"struct.std::_Vector_base.19" }
%"struct.std::_Vector_base.19" = 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.23" = type { %"struct.std::_Vector_base.24" }
%"struct.std::_Vector_base.24" = 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.28" = type { %"struct.std::_Vector_base.29" }
%"struct.std::_Vector_base.29" = 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.33" = type { %"struct.std::_Vector_base.34" }
%"struct.std::_Vector_base.34" = 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.13" = type { %"struct.std::_Vector_base.14" }
%"struct.std::_Vector_base.14" = 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.Crypto::Hash" = type { [32 x i8] }
%"class.Logging::LoggerRef" = type { ptr, %"class.std::__cxx11::basic_string" }
%"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.252", 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.56" }
%"class.std::_Rb_tree.56" = type { %"struct.std::_Rb_tree<unsigned int, std::pair<const unsigned int, Crypto::Hash>, std::_Select1st<std::pair<const unsigned int, Crypto::Hash>>, std::less<unsigned int>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<unsigned int, std::pair<const unsigned int, Crypto::Hash>, std::_Select1st<std::pair<const unsigned int, Crypto::Hash>>, std::less<unsigned int>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.std::_Rb_tree_header" = type { %"struct.std::_Rb_tree_node_base", i64 }
%"struct.std::_Rb_tree_node_base" = type { i32, ptr, ptr, ptr }
%"struct.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", %"class.std::set.71", %"class.std::__cxx11::basic_string", ptr, ptr, %"class.boost::multi_index::multi_index_container", ptr, %"class.std::unordered_map.77", %"class.Logging::LoggerRef", %"class.DynexCN::PaymentIdIndex", %"class.DynexCN::AddressIndex", %"class.DynexCN::TimestampTransactionsIndex" }
%"class.Tools::ObserverManager" = type { %"class.std::vector.61", %"class.std::mutex" }
%"class.std::vector.61" = type { %"struct.std::_Vector_base.62" }
%"struct.std::_Vector_base.62" = 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" = type { %"class.std::_Hashtable" }
%"class.std::_Hashtable" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"struct.std::__detail::_Hash_node_base" = type { ptr }
%"struct.std::__detail::_Prime_rehash_policy" = type { float, i64 }
%"class.std::set.71" = type { %"class.std::_Rb_tree.72" }
%"class.std::_Rb_tree.72" = 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.77" = type { %"class.std::_Hashtable.78" }
%"class.std::_Hashtable.78" = 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.96" }
%"class.std::_Hashtable.96" = type { %"struct.std::__detail::_Hashtable_base.97", ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"struct.std::__detail::_Hashtable_base.97" = type { %"struct.std::__detail::_Hash_code_base.98" }
%"struct.std::__detail::_Hash_code_base.98" = type { %"struct.std::__detail::_Hashtable_ebo_helper.99" }
%"struct.std::__detail::_Hashtable_ebo_helper.99" = type { %"class.std::function.100" }
%"class.std::function.100" = 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.112" }
%"class.std::_Rb_tree.112" = 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.116", i8, [7 x i8] }>
%"class.std::multimap.116" = type { %"class.std::_Rb_tree.117" }
%"class.std::_Rb_tree.117" = 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.122", ptr, ptr, %"class.std::recursive_mutex", %"class.Crypto::cn_context", %"class.Tools::ObserverManager.136", %"class.boost::multi_index::multi_index_container.142", i64, %"class.std::unordered_map.152", %"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.195", %"class.google::sparse_hash_map.209", %"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.122" = type { %"class.std::_Hashtable.123" }
%"class.std::_Hashtable.123" = 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.136" = type { %"class.std::vector.137", %"class.std::mutex" }
%"class.std::vector.137" = type { %"struct.std::_Vector_base.138" }
%"struct.std::_Vector_base.138" = 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.142" = type { [8 x i8], %"struct.boost::multi_index::detail::header_holder.144", %"class.boost::multi_index::detail::ordered_index.base", i64 }
%"struct.boost::multi_index::detail::header_holder.144" = 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.147", [2 x i8] }>
%"class.boost::multi_index::detail::hashed_index.147" = type { [8 x i8], %"class.boost::multi_index::detail::bucket_array.150", float, i64 }
%"class.boost::multi_index::detail::bucket_array.150" = type { i64, %"struct.boost::multi_index::detail::auto_space.151" }
%"struct.boost::multi_index::detail::auto_space.151" = type { [8 x i8], i64, ptr }
%"class.std::unordered_map.152" = type { %"class.std::_Hashtable.153" }
%"class.std::_Hashtable.153" = 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.169", %"class.google::sparsetable<std::pair<const unsigned long, std::vector<std::pair<DynexCN::Blockchain::TransactionIndex, unsigned short>>>>::Settings" }
%"class.std::vector.169" = type { %"struct.std::_Vector_base.170" }
%"struct.std::_Vector_base.170" = 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.173", i64, %"class.std::map.178", %"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.46 }
%union.anon.46 = type { i32 }
%"class.std::vector.173" = type { %"struct.std::_Vector_base.174" }
%"struct.std::_Vector_base.174" = type { %"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl" }
%"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl" = type { %"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl_data" }
%"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::map.178" = type { %"class.std::_Rb_tree.179" }
%"class.std::_Rb_tree.179" = 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.186", ptr }
%"class.boost::multi_index::multi_index_container.186" = type { [8 x i8], %"struct.boost::multi_index::detail::header_holder.188", %"class.boost::multi_index::detail::random_access_index", i64 }
%"struct.boost::multi_index::detail::header_holder.188" = type { ptr }
%"class.boost::multi_index::detail::random_access_index" = type { %"class.boost::multi_index::detail::hashed_index.189", %"class.boost::multi_index::detail::random_access_index_ptr_array" }
%"class.boost::multi_index::detail::hashed_index.189" = type { [8 x i8], %"class.boost::multi_index::detail::bucket_array.192", float, i64 }
%"class.boost::multi_index::detail::bucket_array.192" = type { i64, %"struct.boost::multi_index::detail::auto_space.193" }
%"struct.boost::multi_index::detail::auto_space.193" = 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.194" }
%"struct.boost::multi_index::detail::auto_space.194" = type { [8 x i8], i64, ptr }
%"class.std::unordered_map.195" = type { %"class.std::_Hashtable.196" }
%"class.std::_Hashtable.196" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.google::sparse_hash_map.209" = type { %"class.google::sparse_hashtable.210" }
%"class.google::sparse_hashtable.210" = 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.211" }
%"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.211" = type { %"class.std::vector.212", %"class.google::sparsetable<std::pair<const unsigned long, std::vector<DynexCN::Blockchain::MultisignatureOutputUsage>>>::Settings" }
%"class.std::vector.212" = type { %"struct.std::_Vector_base.213" }
%"struct.std::_Vector_base.213" = 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.116", i8, [7 x i8] }>
%"class.DynexCN::GeneratedTransactionsIndex" = type <{ %"class.std::unordered_map.218", i64, i8, [7 x i8] }>
%"class.std::unordered_map.218" = type { %"class.std::_Hashtable.219" }
%"class.std::_Hashtable.219" = 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.238", i8, [7 x i8] }>
%"class.std::unordered_multimap.238" = type { %"class.std::_Hashtable.239" }
%"class.std::_Hashtable.239" = 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.252" = type { %"class.std::vector.253", %"class.std::mutex" }
%"class.std::vector.253" = type { %"struct.std::_Vector_base.254" }
%"struct.std::_Vector_base.254" = 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 }
%"class.DynexCN::DynexCNProtocolHandler" = type { %"struct.DynexCN::i_cn_protocol", %"class.DynexCN::IDynexCNProtocolQuery", %"class.Logging::LoggerRef", ptr, ptr, ptr, %"struct.DynexCN::p2p_endpoint_stub", ptr, %"struct.std::atomic", %"struct.std::atomic", %"class.std::recursive_mutex", %"class.std::mutex", i32, %"class.std::mutex", i32, %"struct.std::atomic.258", %"class.Tools::ObserverManager.260" }
%"class.DynexCN::IDynexCNProtocolQuery" = type { ptr }
%"struct.DynexCN::p2p_endpoint_stub" = type { %"struct.DynexCN::IP2pEndpoint" }
%"struct.DynexCN::IP2pEndpoint" = type { ptr }
%"struct.std::atomic.258" = type { %"struct.std::__atomic_base.259" }
%"struct.std::__atomic_base.259" = type { i64 }
%"class.Tools::ObserverManager.260" = type { %"class.std::vector.261", %"class.std::mutex" }
%"class.std::vector.261" = type { %"struct.std::_Vector_base.262" }
%"struct.std::_Vector_base.262" = type { %"struct.std::_Vector_base<DynexCN::IDynexCNProtocolObserver *, std::allocator<DynexCN::IDynexCNProtocolObserver *>>::_Vector_impl" }
%"struct.std::_Vector_base<DynexCN::IDynexCNProtocolObserver *, std::allocator<DynexCN::IDynexCNProtocolObserver *>>::_Vector_impl" = type { %"struct.std::_Vector_base<DynexCN::IDynexCNProtocolObserver *, std::allocator<DynexCN::IDynexCNProtocolObserver *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<DynexCN::IDynexCNProtocolObserver *, std::allocator<DynexCN::IDynexCNProtocolObserver *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.DynexCN::NodeServer" = type { %"struct.DynexCN::IP2pEndpoint", %"class.std::unordered_map.266", %"struct.DynexCN::NodeServer::config", %"class.std::__cxx11::basic_string", i8, i8, i32, i32, i32, i8, i8, %"class.std::__cxx11::basic_string", ptr, %"class.System::ContextGroup", %"class.System::Event", %"class.System::Timer", %"class.System::Timer", %"class.System::TcpListener", %"class.Logging::LoggerRef", %"struct.std::atomic", ptr, %"class.DynexCN::PeerlistManager", %"class.DynexCN::OnceInInterval", %"class.DynexCN::OnceInInterval", %"class.System::Timer", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", i64, %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.8", %"class.std::__cxx11::list.294", i64, %"struct.Crypto::Uuid", %"class.std::map.299", %"class.std::map.304", %"class.std::mutex" }
%"class.std::unordered_map.266" = type { %"class.std::_Hashtable.267" }
%"class.std::_Hashtable.267" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"struct.DynexCN::NodeServer::config" = type { %"struct.DynexCN::network_config", i64 }
%"struct.DynexCN::network_config" = type { i32, i32, i32, i32, i32, i32, i32 }
%"class.System::ContextGroup" = type { ptr, %"struct.System::NativeContextGroup" }
%"struct.System::NativeContextGroup" = type { ptr, ptr, ptr, ptr }
%"class.System::Event" = type { ptr, i8, ptr, ptr }
%"class.System::TcpListener" = type { ptr, i32, ptr }
%"class.DynexCN::PeerlistManager" = type { %"class.std::__cxx11::basic_string", i8, %"class.boost::multi_index::multi_index_container.285", %"class.boost::multi_index::multi_index_container.285", %"class.DynexCN::PeerlistManager::Peerlist", %"class.DynexCN::PeerlistManager::Peerlist" }
%"class.boost::multi_index::multi_index_container.285" = type { [8 x i8], %"struct.boost::multi_index::detail::header_holder.287", [8 x i8], i64 }
%"struct.boost::multi_index::detail::header_holder.287" = type { ptr }
%"class.DynexCN::PeerlistManager::Peerlist" = type { ptr, i64 }
%"class.DynexCN::OnceInInterval" = type { i64, i64 }
%"class.System::Timer" = type { ptr, i32, ptr }
%"class.std::vector.8" = type { %"struct.std::_Vector_base.9" }
%"struct.std::_Vector_base.9" = type { %"struct.std::_Vector_base<DynexCN::NetworkAddress, std::allocator<DynexCN::NetworkAddress>>::_Vector_impl" }
%"struct.std::_Vector_base<DynexCN::NetworkAddress, std::allocator<DynexCN::NetworkAddress>>::_Vector_impl" = type { %"struct.std::_Vector_base<DynexCN::NetworkAddress, std::allocator<DynexCN::NetworkAddress>>::_Vector_impl_data" }
%"struct.std::_Vector_base<DynexCN::NetworkAddress, std::allocator<DynexCN::NetworkAddress>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::__cxx11::list.294" = type { %"class.std::__cxx11::_List_base.295" }
%"class.std::__cxx11::_List_base.295" = type { %"struct.std::__cxx11::_List_base<DynexCN::PeerlistEntry, std::allocator<DynexCN::PeerlistEntry>>::_List_impl" }
%"struct.std::__cxx11::_List_base<DynexCN::PeerlistEntry, std::allocator<DynexCN::PeerlistEntry>>::_List_impl" = type { %"struct.std::__detail::_List_node_header" }
%"struct.Crypto::Uuid" = type { [16 x i8] }
%"class.std::map.299" = type { %"class.std::_Rb_tree.300" }
%"class.std::_Rb_tree.300" = type { %"struct.std::_Rb_tree<unsigned int, std::pair<const unsigned int, long>, std::_Select1st<std::pair<const unsigned int, long>>, std::less<unsigned int>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<unsigned int, std::pair<const unsigned int, long>, std::_Select1st<std::pair<const unsigned int, long>>, std::less<unsigned int>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::map.304" = type { %"class.std::_Rb_tree.305" }
%"class.std::_Rb_tree.305" = type { %"struct.std::_Rb_tree<unsigned int, std::pair<const unsigned int, unsigned long>, std::_Select1st<std::pair<const unsigned int, unsigned long>>, std::less<unsigned int>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<unsigned int, std::pair<const unsigned int, unsigned long>, std::_Select1st<std::pair<const unsigned int, unsigned long>>, std::less<unsigned int>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.DynexCN::RpcServer" = type { %"class.DynexCN::HttpServer", %"class.Logging::LoggerRef", ptr, ptr, %"class.DynexCN::BlockchainExplorerDataBuilder", ptr, i8, %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"struct.Crypto::SecretKey", %"struct.DynexCN::AccountPublicAddress" }
%"class.DynexCN::HttpServer" = type { ptr, ptr, %"class.System::ContextGroup", %"class.Logging::LoggerRef", %"class.System::TcpListener", %"class.std::unordered_set", %"class.std::__cxx11::basic_string" }
%"class.std::unordered_set" = type { %"class.std::_Hashtable.309" }
%"class.std::_Hashtable.309" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.DynexCN::BlockchainExplorerDataBuilder" = type { ptr, ptr }
%"struct.Crypto::SecretKey" = type { [32 x i8] }
%"struct.DynexCN::AccountPublicAddress" = type { %"struct.Crypto::PublicKey", %"struct.Crypto::PublicKey" }
%"struct.Crypto::PublicKey" = type { [32 x i8] }
%"class.std::allocator" = type { i8 }
%"class.std::promise" = type { %"class.std::shared_ptr", %"class.std::unique_ptr" }
%"class.std::shared_ptr" = type { %"class.std::__shared_ptr" }
%"class.std::__shared_ptr" = type { ptr, %"class.std::__shared_count" }
%"class.std::__shared_count" = type { ptr }
%"class.std::unique_ptr" = type { %"struct.std::__uniq_ptr_data" }
%"struct.std::__uniq_ptr_data" = type { %"class.std::__uniq_ptr_impl" }
%"class.std::__uniq_ptr_impl" = type { %"class.std::tuple.328" }
%"class.std::tuple.328" = type { %"struct.std::_Tuple_impl.329" }
%"struct.std::_Tuple_impl.329" = type { %"struct.std::_Head_base.332" }
%"struct.std::_Head_base.332" = type { ptr }
%"class.std::future" = type { %"class.std::__basic_future" }
%"class.std::__basic_future" = type { %"class.std::shared_ptr" }
%"class.std::unique_ptr.333" = type { %"struct.std::__uniq_ptr_data.334" }
%"struct.std::__uniq_ptr_data.334" = type { %"class.std::__uniq_ptr_impl.335" }
%"class.std::__uniq_ptr_impl.335" = type { %"class.std::tuple.336" }
%"class.std::tuple.336" = type { %"struct.std::_Tuple_impl.337" }
%"struct.std::_Tuple_impl.337" = type { %"struct.std::_Head_base.340" }
%"struct.std::_Head_base.340" = type { ptr }
%"class.std::function.363" = type { %"class.std::_Function_base", ptr }
%class.anon.366 = type { ptr, ptr }
%"class.std::error_code" = type { i32, ptr }
%"class.System::Context" = type { ptr, %"class.std::function", %"class.System::Event", ptr, %"class.std::__exception_ptr::exception_ptr" }
%"class.std::function" = type { %"class.std::_Function_base", ptr }
%"class.std::__exception_ptr::exception_ptr" = type { ptr }
%class.anon.367 = type { ptr, ptr }
%class.PaymentGateService = type { ptr, ptr, %"class.PaymentService::ConfigurationManager", ptr, %"class.DynexCN::CurrencyBuilder", %"class.Logging::LoggerGroup", %"class.std::basic_ofstream", %"class.Logging::StreamLogger", %"class.Logging::ConsoleLogger" }
%"class.PaymentService::ConfigurationManager" = type { i8, %"struct.PaymentService::Configuration", %"class.DynexCN::NetNodeConfig", %"class.DynexCN::CoreConfig", %"class.PaymentService::RpcNodeConfiguration" }
%"struct.PaymentService::Configuration" = type { %"class.std::__cxx11::basic_string", i16, %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", i8, i8, i8, i8, i8, i8, i8, i64 }
%"class.DynexCN::NetNodeConfig" = type <{ %"class.std::__cxx11::basic_string", i16, i16, i8, [3 x i8], %"class.std::vector", %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.8", i8, [7 x i8], %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", i8, [7 x i8] }>
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<DynexCN::PeerlistEntry, std::allocator<DynexCN::PeerlistEntry>>::_Vector_impl" }
%"struct.std::_Vector_base<DynexCN::PeerlistEntry, std::allocator<DynexCN::PeerlistEntry>>::_Vector_impl" = type { %"struct.std::_Vector_base<DynexCN::PeerlistEntry, std::allocator<DynexCN::PeerlistEntry>>::_Vector_impl_data" }
%"struct.std::_Vector_base<DynexCN::PeerlistEntry, std::allocator<DynexCN::PeerlistEntry>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.DynexCN::CoreConfig" = type <{ %"class.std::__cxx11::basic_string", i8, [7 x i8] }>
%"class.PaymentService::RpcNodeConfiguration" = type <{ %"class.std::__cxx11::basic_string", i16, [6 x i8] }>
%"class.DynexCN::CurrencyBuilder" = type { %"class.DynexCN::Currency" }
%"class.Logging::LoggerGroup" = type { %"class.Logging::CommonLogger", %"class.std::vector.41" }
%"class.Logging::CommonLogger" = type { %"class.Logging::ILogger", %"class.std::set", i32, %"class.std::__cxx11::basic_string" }
%"class.Logging::ILogger" = type { ptr }
%"class.std::set" = type { %"class.std::_Rb_tree" }
%"class.std::_Rb_tree" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>, std::_Identity<std::__cxx11::basic_string<char>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>, std::_Identity<std::__cxx11::basic_string<char>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::vector.41" = type { %"struct.std::_Vector_base.42" }
%"struct.std::_Vector_base.42" = type { %"struct.std::_Vector_base<Logging::ILogger *, std::allocator<Logging::ILogger *>>::_Vector_impl" }
%"struct.std::_Vector_base<Logging::ILogger *, std::allocator<Logging::ILogger *>>::_Vector_impl" = type { %"struct.std::_Vector_base<Logging::ILogger *, std::allocator<Logging::ILogger *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<Logging::ILogger *, std::allocator<Logging::ILogger *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::basic_ofstream" = type { %"class.std::basic_ostream.base", %"class.std::basic_filebuf", %"class.std::basic_ios" }
%"class.Logging::StreamLogger" = type { %"class.Logging::CommonLogger", ptr, %"class.std::mutex" }
%"class.Logging::ConsoleLogger" = type { %"class.Logging::CommonLogger", %"class.std::mutex" }
%"struct.DynexCN::CheckpointData" = type { i32, ptr }

@_ZTISt13runtime_error = external constant ptr
@_ZN7Logging7DEFAULTB5cxx11E = external global %"class.std::__cxx11::basic_string", align 8
@.str.22 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [38 x i8], align 1
@_ZN7DynexCNL11CHECKPOINTSE = external hidden constant %"class.std::initializer_list", align 8
@.str.25 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [18 x i8], align 1
@_ZTISt12system_error = external constant ptr
@.str.28 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [28 x i8], align 1

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

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

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

declare i32 @__gxx_personality_v0(...)

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

declare ptr @__cxa_allocate_exception(i64)

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

declare void @_ZNSt13runtime_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #4

; Function Attrs: nounwind
declare void @_ZNSt13runtime_errorD1Ev(ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #5

declare void @__cxa_throw(ptr, ptr, ptr)

declare void @__cxa_free_exception(ptr)

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

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

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

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

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

declare void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef) unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7DynexCN15CurrencyBuilder8currencyEv(ptr dead_on_unwind noalias writable sret(%"class.DynexCN::Currency") align 8, ptr noundef nonnull align 8 dereferenceable(984)) #3 align 2

declare void @_ZN6System5EventC1ERNS_10DispatcherE(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 16 dereferenceable(440)) unnamed_addr #4

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN18PaymentGateService12runInProcessERN7Logging9LoggerRefE(ptr noundef nonnull align 8 dereferenceable(2568) %0, ptr noundef nonnull align 8 dereferenceable(40) %1) #3 align 2 personality ptr @__gxx_personality_v0 {
  %3 = alloca ptr, align 8
  %4 = alloca ptr, align 8
  %5 = alloca %"class.std::__cxx11::basic_string", align 8
  %6 = alloca ptr, align 8
  %7 = alloca i32, align 4
  %8 = alloca i1, align 1
  %9 = alloca %"class.std::__cxx11::basic_string", align 8
  %10 = alloca i1, align 1
  %11 = alloca %"class.Logging::LoggerMessage", align 8
  %12 = alloca %"class.DynexCN::Currency", align 8
  %13 = alloca %"class.DynexCN::core", align 8
  %14 = alloca %"class.DynexCN::DynexCNProtocolHandler", align 8
  %15 = alloca %"class.DynexCN::NodeServer", align 8
  %16 = alloca %"class.DynexCN::RpcServer", align 8
  %17 = alloca %"class.DynexCN::Checkpoints", align 8
  %18 = alloca ptr, align 8
  %19 = alloca ptr, align 8
  %20 = alloca ptr, align 8
  %21 = alloca ptr, align 8
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca %"class.std::allocator", align 1
  %24 = alloca %"class.Logging::LoggerMessage", align 8
  %25 = alloca %"class.Logging::LoggerMessage", align 8
  %26 = alloca %"class.std::promise", align 8
  %27 = alloca %"class.std::future", align 8
  %28 = alloca %"class.std::unique_ptr.333", align 8
  %29 = alloca %"class.std::function.363", align 8
  %30 = alloca %class.anon.366, align 8
  %31 = alloca %"class.std::error_code", align 8
  %32 = alloca %"class.std::error_code", align 8
  %33 = alloca %"class.Logging::LoggerMessage", align 8
  %34 = alloca %"class.std::__cxx11::basic_string", align 8
  %35 = alloca %"class.std::allocator", align 1
  %36 = alloca %"class.std::__cxx11::basic_string", align 8
  %37 = alloca %"class.std::allocator", align 1
  %38 = alloca %"class.Logging::LoggerMessage", align 8
  %39 = alloca %"class.Logging::LoggerMessage", align 8
  %40 = alloca %"class.System::Event", align 8
  %41 = alloca %"class.System::Context", align 8
  %42 = alloca %"class.std::function", align 8
  %43 = alloca %class.anon.367, align 8
  %44 = alloca %"class.Logging::LoggerMessage", align 8
  store ptr %0, ptr %3, align 8, !tbaa !5
  store ptr %1, ptr %4, align 8, !tbaa !5
  %45 = load ptr, ptr %3, align 8
  %46 = getelementptr inbounds %class.PaymentGateService, ptr %45, i32 0, i32 2
  %47 = getelementptr inbounds %"class.PaymentService::ConfigurationManager", ptr %46, i32 0, i32 3
  %48 = getelementptr inbounds %"class.DynexCN::CoreConfig", ptr %47, i32 0, i32 1
  %49 = load i8, ptr %48, align 8, !tbaa !9, !range !87, !noundef !88
  %50 = trunc i8 %49 to i1
  br i1 %50, label %76, label %51

51:                                               ; preds = %2
  %52 = getelementptr inbounds %class.PaymentGateService, ptr %45, i32 0, i32 2
  %53 = getelementptr inbounds %"class.PaymentService::ConfigurationManager", ptr %52, i32 0, i32 3
  %54 = getelementptr inbounds %"class.DynexCN::CoreConfig", ptr %53, i32 0, i32 0
  %55 = call noundef zeroext i1 @_ZN5Tools15directoryExistsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %54)
  br i1 %55, label %75, label %56

56:                                               ; preds = %51
  store i1 true, ptr %8, align 1
  %57 = call ptr @__cxa_allocate_exception(i64 16) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %5) #10
  %58 = getelementptr inbounds %class.PaymentGateService, ptr %45, i32 0, i32 2
  %59 = getelementptr inbounds %"class.PaymentService::ConfigurationManager", ptr %58, i32 0, i32 3
  %60 = getelementptr inbounds %"class.DynexCN::CoreConfig", ptr %59, i32 0, i32 0
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %5, ptr noundef @.str.22, ptr noundef nonnull align 8 dereferenceable(32) %60)
          to label %61 unwind label %63

61:                                               ; preds = %56
  invoke void @_ZNSt13runtime_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(16) %57, ptr noundef nonnull align 8 dereferenceable(32) %5)
          to label %62 unwind label %67

62:                                               ; preds = %61
  store i1 false, ptr %8, align 1
  invoke void @__cxa_throw(ptr %57, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #11
          to label %442 unwind label %67

63:                                               ; preds = %56
  %64 = landingpad { ptr, i32 }
          cleanup
  %65 = extractvalue { ptr, i32 } %64, 0
  store ptr %65, ptr %6, align 8
  %66 = extractvalue { ptr, i32 } %64, 1
  store i32 %66, ptr %7, align 4
  br label %71

67:                                               ; preds = %62, %61
  %68 = landingpad { ptr, i32 }
          cleanup
  %69 = extractvalue { ptr, i32 } %68, 0
  store ptr %69, ptr %6, align 8
  %70 = extractvalue { ptr, i32 } %68, 1
  store i32 %70, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #10
  br label %71

71:                                               ; preds = %67, %63
  call void @llvm.lifetime.end.p0(i64 32, ptr %5) #10
  %72 = load i1, ptr %8, align 1
  br i1 %72, label %73, label %74

73:                                               ; preds = %71
  call void @__cxa_free_exception(ptr %57) #10
  br label %74

74:                                               ; preds = %73, %71
  br label %437

75:                                               ; preds = %51
  br label %101

76:                                               ; preds = %2
  %77 = getelementptr inbounds %class.PaymentGateService, ptr %45, i32 0, i32 2
  %78 = getelementptr inbounds %"class.PaymentService::ConfigurationManager", ptr %77, i32 0, i32 3
  %79 = getelementptr inbounds %"class.DynexCN::CoreConfig", ptr %78, i32 0, i32 0
  %80 = call noundef zeroext i1 @_ZN5Tools31create_directories_if_necessaryERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %79)
  br i1 %80, label %100, label %81

81:                                               ; preds = %76
  store i1 true, ptr %10, align 1
  %82 = call ptr @__cxa_allocate_exception(i64 16) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %9) #10
  %83 = getelementptr inbounds %class.PaymentGateService, ptr %45, i32 0, i32 2
  %84 = getelementptr inbounds %"class.PaymentService::ConfigurationManager", ptr %83, i32 0, i32 3
  %85 = getelementptr inbounds %"class.DynexCN::CoreConfig", ptr %84, i32 0, i32 0
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %9, ptr noundef @.str.23, ptr noundef nonnull align 8 dereferenceable(32) %85)
          to label %86 unwind label %88

86:                                               ; preds = %81
  invoke void @_ZNSt13runtime_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(16) %82, ptr noundef nonnull align 8 dereferenceable(32) %9)
          to label %87 unwind label %92

87:                                               ; preds = %86
  store i1 false, ptr %10, align 1
  invoke void @__cxa_throw(ptr %82, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #11
          to label %442 unwind label %92

88:                                               ; preds = %81
  %89 = landingpad { ptr, i32 }
          cleanup
  %90 = extractvalue { ptr, i32 } %89, 0
  store ptr %90, ptr %6, align 8
  %91 = extractvalue { ptr, i32 } %89, 1
  store i32 %91, ptr %7, align 4
  br label %96

92:                                               ; preds = %87, %86
  %93 = landingpad { ptr, i32 }
          cleanup
  %94 = extractvalue { ptr, i32 } %93, 0
  store ptr %94, ptr %6, align 8
  %95 = extractvalue { ptr, i32 } %93, 1
  store i32 %95, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #10
  br label %96

96:                                               ; preds = %92, %88
  call void @llvm.lifetime.end.p0(i64 32, ptr %9) #10
  %97 = load i1, ptr %10, align 1
  br i1 %97, label %98, label %99

98:                                               ; preds = %96
  call void @__cxa_free_exception(ptr %82) #10
  br label %99

99:                                               ; preds = %98, %96
  br label %437

100:                                              ; preds = %76
  br label %101

101:                                              ; preds = %100, %75
  call void @llvm.lifetime.start.p0(i64 432, ptr %11) #10
  %102 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.Logging::LoggerMessage") align 8 %11, ptr noundef nonnull align 8 dereferenceable(40) %102, i32 noundef 3, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging7DEFAULTB5cxx11E)
  %103 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA38_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %11, ptr noundef nonnull align 1 dereferenceable(38) @.str.24)
          to label %104 unwind label %136

104:                                              ; preds = %101
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %11) #10
  call void @llvm.lifetime.end.p0(i64 432, ptr %11) #10
  call void @llvm.lifetime.start.p0(i64 984, ptr %12) #10
  %105 = getelementptr inbounds %class.PaymentGateService, ptr %45, i32 0, i32 4
  call void @_ZN7DynexCN15CurrencyBuilder8currencyEv(ptr dead_on_unwind writable sret(%"class.DynexCN::Currency") align 8 %12, ptr noundef nonnull align 8 dereferenceable(984) %105)
  call void @llvm.lifetime.start.p0(i64 3632, ptr %13) #10
  %106 = getelementptr inbounds %class.PaymentGateService, ptr %45, i32 0, i32 5
  invoke void @_ZN7DynexCN4coreC1ERKNS_8CurrencyEPNS_13i_cn_protocolERN7Logging7ILoggerEb(ptr noundef nonnull align 8 dereferenceable(3632) %13, ptr noundef nonnull align 8 dereferenceable(984) %12, ptr noundef null, ptr noundef nonnull align 8 dereferenceable(8) %106, i1 noundef zeroext true)
          to label %107 unwind label %140

107:                                              ; preds = %104
  call void @llvm.lifetime.start.p0(i64 312, ptr %14) #10
  %108 = getelementptr inbounds %class.PaymentGateService, ptr %45, i32 0, i32 0
  %109 = load ptr, ptr %108, align 8, !tbaa !89
  %110 = getelementptr inbounds %class.PaymentGateService, ptr %45, i32 0, i32 5
  invoke void @_ZN7DynexCN22DynexCNProtocolHandlerC1ERKNS_8CurrencyERN6System10DispatcherERNS_5ICoreEPNS_12IP2pEndpointERN7Logging7ILoggerE(ptr noundef nonnull align 8 dereferenceable(312) %14, ptr noundef nonnull align 8 dereferenceable(984) %12, ptr noundef nonnull align 16 dereferenceable(440) %109, ptr noundef nonnull align 8 dereferenceable(8) %13, ptr noundef null, ptr noundef nonnull align 8 dereferenceable(8) %110)
          to label %111 unwind label %144

111:                                              ; preds = %107
  call void @llvm.lifetime.start.p0(i64 920, ptr %15) #10
  %112 = getelementptr inbounds %class.PaymentGateService, ptr %45, i32 0, i32 0
  %113 = load ptr, ptr %112, align 8, !tbaa !89
  %114 = getelementptr inbounds %class.PaymentGateService, ptr %45, i32 0, i32 5
  invoke void @_ZN7DynexCN10NodeServerC1ERN6System10DispatcherERNS_22DynexCNProtocolHandlerERN7Logging7ILoggerE(ptr noundef nonnull align 8 dereferenceable(920) %15, ptr noundef nonnull align 16 dereferenceable(440) %113, ptr noundef nonnull align 8 dereferenceable(312) %14, ptr noundef nonnull align 8 dereferenceable(8) %114)
          to label %115 unwind label %148

115:                                              ; preds = %111
  call void @llvm.lifetime.start.p0(i64 488, ptr %16) #10
  %116 = getelementptr inbounds %class.PaymentGateService, ptr %45, i32 0, i32 0
  %117 = load ptr, ptr %116, align 8, !tbaa !89
  %118 = getelementptr inbounds %class.PaymentGateService, ptr %45, i32 0, i32 5
  %119 = getelementptr inbounds i8, ptr %14, i64 8
  invoke void @_ZN7DynexCN9RpcServerC1ERN6System10DispatcherERN7Logging7ILoggerERNS_4coreERNS_10NodeServerERNS_21IDynexCNProtocolQueryE(ptr noundef nonnull align 8 dereferenceable(488) %16, ptr noundef nonnull align 16 dereferenceable(440) %117, ptr noundef nonnull align 8 dereferenceable(8) %118, ptr noundef nonnull align 8 dereferenceable(3632) %13, ptr noundef nonnull align 8 dereferenceable(920) %15, ptr noundef nonnull align 8 dereferenceable(8) %119)
          to label %120 unwind label %152

120:                                              ; preds = %115
  call void @llvm.lifetime.start.p0(i64 88, ptr %17) #10
  %121 = getelementptr inbounds %class.PaymentGateService, ptr %45, i32 0, i32 5
  invoke void @_ZN7DynexCN11CheckpointsC1ERN7Logging7ILoggerE(ptr noundef nonnull align 8 dereferenceable(88) %17, ptr noundef nonnull align 8 dereferenceable(8) %121)
          to label %122 unwind label %156

122:                                              ; preds = %120
  %123 = getelementptr inbounds %class.PaymentGateService, ptr %45, i32 0, i32 2
  %124 = getelementptr inbounds %"class.PaymentService::ConfigurationManager", ptr %123, i32 0, i32 1
  %125 = getelementptr inbounds %"struct.PaymentService::Configuration", ptr %124, i32 0, i32 16
  %126 = load i8, ptr %125, align 1, !tbaa !90, !range !87, !noundef !88
  %127 = trunc i8 %126 to i1
  br i1 %127, label %184, label %128

128:                                              ; preds = %122
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #10
  store ptr @_ZN7DynexCNL11CHECKPOINTSE, ptr %18, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #10
  %129 = call noundef ptr @_ZNKSt16initializer_listIN7DynexCN14CheckpointDataEE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) @_ZN7DynexCNL11CHECKPOINTSE) #10
  store ptr %129, ptr %19, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #10
  %130 = call noundef ptr @_ZNKSt16initializer_listIN7DynexCN14CheckpointDataEE3endEv(ptr noundef nonnull align 8 dereferenceable(16) @_ZN7DynexCNL11CHECKPOINTSE) #10
  store ptr %130, ptr %20, align 8, !tbaa !5
  br label %131

131:                                              ; preds = %171, %128
  %132 = load ptr, ptr %19, align 8, !tbaa !5
  %133 = load ptr, ptr %20, align 8, !tbaa !5
  %134 = icmp ne ptr %132, %133
  br i1 %134, label %160, label %135

135:                                              ; preds = %131
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #10
  br label %183

136:                                              ; preds = %101
  %137 = landingpad { ptr, i32 }
          cleanup
  %138 = extractvalue { ptr, i32 } %137, 0
  store ptr %138, ptr %6, align 8
  %139 = extractvalue { ptr, i32 } %137, 1
  store i32 %139, ptr %7, align 4
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %11) #10
  call void @llvm.lifetime.end.p0(i64 432, ptr %11) #10
  br label %437

140:                                              ; preds = %104
  %141 = landingpad { ptr, i32 }
          cleanup
  %142 = extractvalue { ptr, i32 } %141, 0
  store ptr %142, ptr %6, align 8
  %143 = extractvalue { ptr, i32 } %141, 1
  store i32 %143, ptr %7, align 4
  br label %436

144:                                              ; preds = %107
  %145 = landingpad { ptr, i32 }
          cleanup
  %146 = extractvalue { ptr, i32 } %145, 0
  store ptr %146, ptr %6, align 8
  %147 = extractvalue { ptr, i32 } %145, 1
  store i32 %147, ptr %7, align 4
  br label %435

148:                                              ; preds = %111
  %149 = landingpad { ptr, i32 }
          cleanup
  %150 = extractvalue { ptr, i32 } %149, 0
  store ptr %150, ptr %6, align 8
  %151 = extractvalue { ptr, i32 } %149, 1
  store i32 %151, ptr %7, align 4
  br label %434

152:                                              ; preds = %115
  %153 = landingpad { ptr, i32 }
          cleanup
  %154 = extractvalue { ptr, i32 } %153, 0
  store ptr %154, ptr %6, align 8
  %155 = extractvalue { ptr, i32 } %153, 1
  store i32 %155, ptr %7, align 4
  br label %433

156:                                              ; preds = %120
  %157 = landingpad { ptr, i32 }
          cleanup
  %158 = extractvalue { ptr, i32 } %157, 0
  store ptr %158, ptr %6, align 8
  %159 = extractvalue { ptr, i32 } %157, 1
  store i32 %159, ptr %7, align 4
  br label %432

160:                                              ; preds = %131
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #10
  %161 = load ptr, ptr %19, align 8, !tbaa !5
  store ptr %161, ptr %21, align 8, !tbaa !5
  %162 = load ptr, ptr %21, align 8, !tbaa !5
  %163 = getelementptr inbounds %"struct.DynexCN::CheckpointData", ptr %162, i32 0, i32 0
  %164 = load i32, ptr %163, align 8, !tbaa !91
  call void @llvm.lifetime.start.p0(i64 32, ptr %22) #10
  %165 = load ptr, ptr %21, align 8, !tbaa !5
  %166 = getelementptr inbounds %"struct.DynexCN::CheckpointData", ptr %165, i32 0, i32 1
  %167 = load ptr, ptr %166, align 8, !tbaa !93
  call void @llvm.lifetime.start.p0(i64 1, ptr %23) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef %167, ptr noundef nonnull align 1 dereferenceable(1) %23)
          to label %168 unwind label %174

168:                                              ; preds = %160
  %169 = invoke noundef zeroext i1 @_ZN7DynexCN11Checkpoints14add_checkpointEjRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(88) %17, i32 noundef %164, ptr noundef nonnull align 8 dereferenceable(32) %22)
          to label %170 unwind label %178

170:                                              ; preds = %168
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %23) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %22) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #10
  br label %171

171:                                              ; preds = %170
  %172 = load ptr, ptr %19, align 8, !tbaa !5
  %173 = getelementptr inbounds %"struct.DynexCN::CheckpointData", ptr %172, i32 1
  store ptr %173, ptr %19, align 8, !tbaa !5
  br label %131

174:                                              ; preds = %160
  %175 = landingpad { ptr, i32 }
          cleanup
  %176 = extractvalue { ptr, i32 } %175, 0
  store ptr %176, ptr %6, align 8
  %177 = extractvalue { ptr, i32 } %175, 1
  store i32 %177, ptr %7, align 4
  br label %182

178:                                              ; preds = %168
  %179 = landingpad { ptr, i32 }
          cleanup
  %180 = extractvalue { ptr, i32 } %179, 0
  store ptr %180, ptr %6, align 8
  %181 = extractvalue { ptr, i32 } %179, 1
  store i32 %181, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #10
  br label %182

182:                                              ; preds = %178, %174
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %23) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %22) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #10
  br label %431

183:                                              ; preds = %135
  br label %184

184:                                              ; preds = %183, %122
  %185 = getelementptr inbounds %class.PaymentGateService, ptr %45, i32 0, i32 2
  %186 = getelementptr inbounds %"class.PaymentService::ConfigurationManager", ptr %185, i32 0, i32 1
  %187 = getelementptr inbounds %"struct.PaymentService::Configuration", ptr %186, i32 0, i32 16
  %188 = load i8, ptr %187, align 1, !tbaa !90, !range !87, !noundef !88
  %189 = trunc i8 %188 to i1
  %190 = invoke noundef zeroext i1 @_ZN7DynexCN11Checkpoints28load_checkpoints_from_remoteEb(ptr noundef nonnull align 8 dereferenceable(88) %17, i1 noundef zeroext %189)
          to label %191 unwind label %206

191:                                              ; preds = %184
  invoke void @_ZN7DynexCN4core15set_checkpointsEONS_11CheckpointsE(ptr noundef nonnull align 8 dereferenceable(3632) %13, ptr noundef nonnull align 8 dereferenceable(88) %17)
          to label %192 unwind label %206

192:                                              ; preds = %191
  invoke void @_ZN7DynexCN22DynexCNProtocolHandler16set_p2p_endpointEPNS_12IP2pEndpointE(ptr noundef nonnull align 8 dereferenceable(312) %14, ptr noundef %15)
          to label %193 unwind label %206

193:                                              ; preds = %192
  invoke void @_ZN7DynexCN4core23set_cryptonote_protocolEPNS_13i_cn_protocolE(ptr noundef nonnull align 8 dereferenceable(3632) %13, ptr noundef %14)
          to label %194 unwind label %206

194:                                              ; preds = %193
  call void @llvm.lifetime.start.p0(i64 432, ptr %24) #10
  %195 = load ptr, ptr %4, align 8, !tbaa !5
  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) %195, i32 noundef 3, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging7DEFAULTB5cxx11E)
          to label %196 unwind label %210

196:                                              ; preds = %194
  %197 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA21_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %24, ptr noundef nonnull align 1 dereferenceable(21) @.str.25)
          to label %198 unwind label %214

198:                                              ; preds = %196
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %24) #10
  call void @llvm.lifetime.end.p0(i64 432, ptr %24) #10
  %199 = getelementptr inbounds %class.PaymentGateService, ptr %45, i32 0, i32 2
  %200 = getelementptr inbounds %"class.PaymentService::ConfigurationManager", ptr %199, i32 0, i32 2
  %201 = invoke noundef zeroext i1 @_ZN7DynexCN10NodeServer4initERKNS_13NetNodeConfigE(ptr noundef nonnull align 8 dereferenceable(920) %15, ptr noundef nonnull align 8 dereferenceable(209) %200)
          to label %202 unwind label %206

202:                                              ; preds = %198
  br i1 %201, label %223, label %203

203:                                              ; preds = %202
  %204 = call ptr @__cxa_allocate_exception(i64 16) #10
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %204, ptr noundef @.str.26)
          to label %205 unwind label %219

205:                                              ; preds = %203
  invoke void @__cxa_throw(ptr %204, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #11
          to label %442 unwind label %206

206:                                              ; preds = %227, %205, %198, %193, %192, %191, %184
  %207 = landingpad { ptr, i32 }
          cleanup
  %208 = extractvalue { ptr, i32 } %207, 0
  store ptr %208, ptr %6, align 8
  %209 = extractvalue { ptr, i32 } %207, 1
  store i32 %209, ptr %7, align 4
  br label %431

210:                                              ; preds = %194
  %211 = landingpad { ptr, i32 }
          cleanup
  %212 = extractvalue { ptr, i32 } %211, 0
  store ptr %212, ptr %6, align 8
  %213 = extractvalue { ptr, i32 } %211, 1
  store i32 %213, ptr %7, align 4
  br label %218

214:                                              ; preds = %196
  %215 = landingpad { ptr, i32 }
          cleanup
  %216 = extractvalue { ptr, i32 } %215, 0
  store ptr %216, ptr %6, align 8
  %217 = extractvalue { ptr, i32 } %215, 1
  store i32 %217, ptr %7, align 4
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %24) #10
  br label %218

218:                                              ; preds = %214, %210
  call void @llvm.lifetime.end.p0(i64 432, ptr %24) #10
  br label %431

219:                                              ; preds = %203
  %220 = landingpad { ptr, i32 }
          cleanup
  %221 = extractvalue { ptr, i32 } %220, 0
  store ptr %221, ptr %6, align 8
  %222 = extractvalue { ptr, i32 } %220, 1
  store i32 %222, ptr %7, align 4
  call void @__cxa_free_exception(ptr %204) #10
  br label %431

223:                                              ; preds = %202
  call void @llvm.lifetime.start.p0(i64 432, ptr %25) #10
  %224 = load ptr, ptr %4, align 8, !tbaa !5
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.Logging::LoggerMessage") align 8 %25, ptr noundef nonnull align 8 dereferenceable(40) %224, i32 noundef 3, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging7DEFAULTB5cxx11E)
          to label %225 unwind label %260

225:                                              ; preds = %223
  %226 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA18_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %25, ptr noundef nonnull align 1 dereferenceable(18) @.str.27)
          to label %227 unwind label %264

227:                                              ; preds = %225
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %25) #10
  call void @llvm.lifetime.end.p0(i64 432, ptr %25) #10
  %228 = getelementptr inbounds %class.PaymentGateService, ptr %45, i32 0, i32 2
  %229 = getelementptr inbounds %"class.PaymentService::ConfigurationManager", ptr %228, i32 0, i32 3
  %230 = invoke noundef zeroext i1 @_ZN7DynexCN4core4initERKNS_10CoreConfigEb(ptr noundef nonnull align 8 dereferenceable(3632) %13, ptr noundef nonnull align 8 dereferenceable(33) %229, i1 noundef zeroext true)
          to label %231 unwind label %206

231:                                              ; preds = %227
  call void @llvm.lifetime.start.p0(i64 24, ptr %26) #10
  invoke void @_ZNSt7promiseISt10error_codeEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %26)
          to label %232 unwind label %269

232:                                              ; preds = %231
  call void @llvm.lifetime.start.p0(i64 16, ptr %27) #10
  invoke void @_ZNSt7promiseISt10error_codeE10get_futureEv(ptr dead_on_unwind writable sret(%"class.std::future") align 8 %27, ptr noundef nonnull align 8 dereferenceable(24) %26)
          to label %233 unwind label %273

233:                                              ; preds = %232
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #10
  %234 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 312) #12
          to label %235 unwind label %277

235:                                              ; preds = %233
  %236 = getelementptr inbounds i8, ptr %14, i64 8
  invoke void @_ZN7DynexCN13InProcessNodeC1ERNS_5ICoreERNS_21IDynexCNProtocolQueryE(ptr noundef nonnull align 8 dereferenceable(312) %234, ptr noundef nonnull align 8 dereferenceable(8) %13, ptr noundef nonnull align 8 dereferenceable(8) %236)
          to label %237 unwind label %281

237:                                              ; preds = %235
  call void @_ZNSt10unique_ptrIN7DynexCN5INodeESt14default_deleteIS1_EEC2IS3_vEEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %28, ptr noundef %234) #10
  %238 = call noundef ptr @_ZNKSt10unique_ptrIN7DynexCN5INodeESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %28) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %29) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %30) #10
  %239 = getelementptr inbounds %class.anon.366, ptr %30, i32 0, i32 0
  store ptr %26, ptr %239, align 8, !tbaa !5
  %240 = getelementptr inbounds %class.anon.366, ptr %30, i32 0, i32 1
  %241 = load ptr, ptr %4, align 8, !tbaa !5
  store ptr %241, ptr %240, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvSt10error_codeEEC2IZN18PaymentGateService12runInProcessERN7Logging9LoggerRefEE3$_0vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %29, ptr noundef nonnull align 8 dereferenceable(16) %30) #10
  %242 = load ptr, ptr %238, align 8, !tbaa !94
  %243 = getelementptr inbounds ptr, ptr %242, i64 4
  %244 = load ptr, ptr %243, align 8
  invoke void %244(ptr noundef nonnull align 8 dereferenceable(8) %238, ptr noundef nonnull align 8 dereferenceable(32) %29)
          to label %245 unwind label %285

245:                                              ; preds = %237
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %30) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %29) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %31) #10
  %246 = invoke { i32, ptr } @_ZNSt6futureISt10error_codeE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %27)
          to label %247 unwind label %289

247:                                              ; preds = %245
  %248 = getelementptr inbounds { i32, ptr }, ptr %31, i32 0, i32 0
  %249 = extractvalue { i32, ptr } %246, 0
  store i32 %249, ptr %248, align 8
  %250 = getelementptr inbounds { i32, ptr }, ptr %31, i32 0, i32 1
  %251 = extractvalue { i32, ptr } %246, 1
  store ptr %251, ptr %250, align 8
  %252 = call noundef zeroext i1 @_ZNKSt10error_codecvbEv(ptr noundef nonnull align 8 dereferenceable(16) %31) #10
  br i1 %252, label %253, label %297

253:                                              ; preds = %247
  %254 = call ptr @__cxa_allocate_exception(i64 32) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %32, ptr align 8 %31, i64 16, i1 false), !tbaa.struct !96
  %255 = getelementptr inbounds { i32, ptr }, ptr %32, i32 0, i32 0
  %256 = load i32, ptr %255, align 8
  %257 = getelementptr inbounds { i32, ptr }, ptr %32, i32 0, i32 1
  %258 = load ptr, ptr %257, align 8
  invoke void @_ZNSt12system_errorC2ESt10error_code(ptr noundef nonnull align 8 dereferenceable(32) %254, i32 %256, ptr %258)
          to label %259 unwind label %293

259:                                              ; preds = %253
  invoke void @__cxa_throw(ptr %254, ptr @_ZTISt12system_error, ptr @_ZNSt12system_errorD1Ev) #11
          to label %442 unwind label %289

260:                                              ; preds = %223
  %261 = landingpad { ptr, i32 }
          cleanup
  %262 = extractvalue { ptr, i32 } %261, 0
  store ptr %262, ptr %6, align 8
  %263 = extractvalue { ptr, i32 } %261, 1
  store i32 %263, ptr %7, align 4
  br label %268

264:                                              ; preds = %225
  %265 = landingpad { ptr, i32 }
          cleanup
  %266 = extractvalue { ptr, i32 } %265, 0
  store ptr %266, ptr %6, align 8
  %267 = extractvalue { ptr, i32 } %265, 1
  store i32 %267, ptr %7, align 4
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %25) #10
  br label %268

268:                                              ; preds = %264, %260
  call void @llvm.lifetime.end.p0(i64 432, ptr %25) #10
  br label %431

269:                                              ; preds = %231
  %270 = landingpad { ptr, i32 }
          cleanup
  %271 = extractvalue { ptr, i32 } %270, 0
  store ptr %271, ptr %6, align 8
  %272 = extractvalue { ptr, i32 } %270, 1
  store i32 %272, ptr %7, align 4
  br label %430

273:                                              ; preds = %232
  %274 = landingpad { ptr, i32 }
          cleanup
  %275 = extractvalue { ptr, i32 } %274, 0
  store ptr %275, ptr %6, align 8
  %276 = extractvalue { ptr, i32 } %274, 1
  store i32 %276, ptr %7, align 4
  br label %429

277:                                              ; preds = %233
  %278 = landingpad { ptr, i32 }
          cleanup
  %279 = extractvalue { ptr, i32 } %278, 0
  store ptr %279, ptr %6, align 8
  %280 = extractvalue { ptr, i32 } %278, 1
  store i32 %280, ptr %7, align 4
  br label %428

281:                                              ; preds = %235
  %282 = landingpad { ptr, i32 }
          cleanup
  %283 = extractvalue { ptr, i32 } %282, 0
  store ptr %283, ptr %6, align 8
  %284 = extractvalue { ptr, i32 } %282, 1
  store i32 %284, ptr %7, align 4
  call void @_ZdlPvm(ptr noundef %234, i64 noundef 312) #13
  br label %428

285:                                              ; preds = %237
  %286 = landingpad { ptr, i32 }
          cleanup
  %287 = extractvalue { ptr, i32 } %286, 0
  store ptr %287, ptr %6, align 8
  %288 = extractvalue { ptr, i32 } %286, 1
  store i32 %288, ptr %7, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %30) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %29) #10
  br label %427

289:                                              ; preds = %259, %245
  %290 = landingpad { ptr, i32 }
          cleanup
  %291 = extractvalue { ptr, i32 } %290, 0
  store ptr %291, ptr %6, align 8
  %292 = extractvalue { ptr, i32 } %290, 1
  store i32 %292, ptr %7, align 4
  br label %426

293:                                              ; preds = %253
  %294 = landingpad { ptr, i32 }
          cleanup
  %295 = extractvalue { ptr, i32 } %294, 0
  store ptr %295, ptr %6, align 8
  %296 = extractvalue { ptr, i32 } %294, 1
  store i32 %296, ptr %7, align 4
  call void @__cxa_free_exception(ptr %254) #10
  br label %426

297:                                              ; preds = %247
  call void @llvm.lifetime.start.p0(i64 432, ptr %33) #10
  %298 = load ptr, ptr %4, align 8, !tbaa !5
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.Logging::LoggerMessage") align 8 %33, ptr noundef nonnull align 8 dereferenceable(40) %298, i32 noundef 3, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging7DEFAULTB5cxx11E)
          to label %299 unwind label %361

299:                                              ; preds = %297
  %300 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA29_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %33, ptr noundef nonnull align 1 dereferenceable(29) @.str.28)
          to label %301 unwind label %365

301:                                              ; preds = %299
  %302 = getelementptr inbounds %class.PaymentGateService, ptr %45, i32 0, i32 2
  %303 = getelementptr inbounds %"class.PaymentService::ConfigurationManager", ptr %302, i32 0, i32 4
  %304 = getelementptr inbounds %"class.PaymentService::RpcNodeConfiguration", ptr %303, i32 0, i32 0
  %305 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEOT_S9_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %300, ptr noundef nonnull align 8 dereferenceable(32) %304)
          to label %306 unwind label %365

306:                                              ; preds = %301
  %307 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA2_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %305, ptr noundef nonnull align 1 dereferenceable(2) @.str.29)
          to label %308 unwind label %365

308:                                              ; preds = %306
  %309 = getelementptr inbounds %class.PaymentGateService, ptr %45, i32 0, i32 2
  %310 = getelementptr inbounds %"class.PaymentService::ConfigurationManager", ptr %309, i32 0, i32 4
  %311 = getelementptr inbounds %"class.PaymentService::RpcNodeConfiguration", ptr %310, i32 0, i32 1
  %312 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEtEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %307, ptr noundef nonnull align 2 dereferenceable(2) %311)
          to label %313 unwind label %365

313:                                              ; preds = %308
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %33) #10
  call void @llvm.lifetime.end.p0(i64 432, ptr %33) #10
  %314 = getelementptr inbounds %class.PaymentGateService, ptr %45, i32 0, i32 2
  %315 = getelementptr inbounds %"class.PaymentService::ConfigurationManager", ptr %314, i32 0, i32 4
  %316 = getelementptr inbounds %"class.PaymentService::RpcNodeConfiguration", ptr %315, i32 0, i32 0
  %317 = getelementptr inbounds %class.PaymentGateService, ptr %45, i32 0, i32 2
  %318 = getelementptr inbounds %"class.PaymentService::ConfigurationManager", ptr %317, i32 0, i32 4
  %319 = getelementptr inbounds %"class.PaymentService::RpcNodeConfiguration", ptr %318, i32 0, i32 1
  %320 = load i16, ptr %319, align 8, !tbaa !98
  call void @llvm.lifetime.start.p0(i64 32, ptr %34) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %35) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %34, ptr noundef @.str.30, ptr noundef nonnull align 1 dereferenceable(1) %35)
          to label %321 unwind label %370

321:                                              ; preds = %313
  call void @llvm.lifetime.start.p0(i64 32, ptr %36) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %37) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %37) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %36, ptr noundef @.str.30, ptr noundef nonnull align 1 dereferenceable(1) %37)
          to label %322 unwind label %374

322:                                              ; preds = %321
  invoke void @_ZN7DynexCN10HttpServer5startERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEtS8_S8_(ptr noundef nonnull align 8 dereferenceable(208) %16, ptr noundef nonnull align 8 dereferenceable(32) %316, i16 noundef zeroext %320, ptr noundef nonnull align 8 dereferenceable(32) %34, ptr noundef nonnull align 8 dereferenceable(32) %36)
          to label %323 unwind label %378

323:                                              ; preds = %322
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %37) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %37) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %36) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %35) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %34) #10
  call void @llvm.lifetime.start.p0(i64 432, ptr %38) #10
  %324 = load ptr, ptr %4, align 8, !tbaa !5
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.Logging::LoggerMessage") align 8 %38, ptr noundef nonnull align 8 dereferenceable(40) %324, i32 noundef 3, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging7DEFAULTB5cxx11E)
          to label %325 unwind label %384

325:                                              ; preds = %323
  %326 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA27_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %38, ptr noundef nonnull align 1 dereferenceable(27) @.str.31)
          to label %327 unwind label %388

327:                                              ; preds = %325
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %38) #10
  call void @llvm.lifetime.end.p0(i64 432, ptr %38) #10
  call void @llvm.lifetime.start.p0(i64 432, ptr %39) #10
  %328 = load ptr, ptr %4, align 8, !tbaa !5
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.Logging::LoggerMessage") align 8 %39, ptr noundef nonnull align 8 dereferenceable(40) %328, i32 noundef 3, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging7DEFAULTB5cxx11E)
          to label %329 unwind label %393

329:                                              ; preds = %327
  %330 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA20_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %39, ptr noundef nonnull align 1 dereferenceable(20) @.str.32)
          to label %331 unwind label %397

331:                                              ; preds = %329
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %39) #10
  call void @llvm.lifetime.end.p0(i64 432, ptr %39) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %40) #10
  %332 = getelementptr inbounds %class.PaymentGateService, ptr %45, i32 0, i32 0
  %333 = load ptr, ptr %332, align 8, !tbaa !89
  invoke void @_ZN6System5EventC1ERNS_10DispatcherE(ptr noundef nonnull align 8 dereferenceable(32) %40, ptr noundef nonnull align 16 dereferenceable(440) %333)
          to label %334 unwind label %402

334:                                              ; preds = %331
  call void @llvm.lifetime.start.p0(i64 88, ptr %41) #10
  %335 = getelementptr inbounds %class.PaymentGateService, ptr %45, i32 0, i32 0
  %336 = load ptr, ptr %335, align 8, !tbaa !89
  call void @llvm.lifetime.start.p0(i64 32, ptr %42) #10
  call void @llvm.lifetime.start.p0(i64 16, ptr %43) #10
  %337 = getelementptr inbounds %class.anon.367, ptr %43, i32 0, i32 0
  store ptr %40, ptr %337, align 8, !tbaa !5
  %338 = getelementptr inbounds %class.anon.367, ptr %43, i32 0, i32 1
  store ptr %15, ptr %338, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvvEEC2IZN18PaymentGateService12runInProcessERN7Logging9LoggerRefEE3$_1vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %42, ptr noundef nonnull align 8 dereferenceable(16) %43) #10
  invoke void @_ZN6System7ContextIvEC2ERNS_10DispatcherEOSt8functionIFvvEE(ptr noundef nonnull align 8 dereferenceable(88) %41, ptr noundef nonnull align 16 dereferenceable(440) %336, ptr noundef nonnull align 8 dereferenceable(32) %42)
          to label %339 unwind label %406

339:                                              ; preds = %334
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %43) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %42) #10
  invoke void @_ZN6System5Event4waitEv(ptr noundef nonnull align 8 dereferenceable(32) %40)
          to label %340 unwind label %410

340:                                              ; preds = %339
  %341 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt10unique_ptrIN7DynexCN5INodeESt14default_deleteIS1_EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %28) #10
  invoke void @_ZN18PaymentGateService16runWalletServiceERKN7DynexCN8CurrencyERNS0_5INodeE(ptr noundef nonnull align 8 dereferenceable(2568) %45, ptr noundef nonnull align 8 dereferenceable(984) %12, ptr noundef nonnull align 8 dereferenceable(8) %341)
          to label %342 unwind label %410

342:                                              ; preds = %340
  call void @llvm.lifetime.start.p0(i64 432, ptr %44) #10
  %343 = load ptr, ptr %4, align 8, !tbaa !5
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.Logging::LoggerMessage") align 8 %44, ptr noundef nonnull align 8 dereferenceable(40) %343, i32 noundef 3, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging7DEFAULTB5cxx11E)
          to label %344 unwind label %414

344:                                              ; preds = %342
  %345 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA28_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %44, ptr noundef nonnull align 1 dereferenceable(28) @.str.33)
          to label %346 unwind label %418

346:                                              ; preds = %344
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %44) #10
  call void @llvm.lifetime.end.p0(i64 432, ptr %44) #10
  invoke void @_ZN7DynexCN10HttpServer4stopEv(ptr noundef nonnull align 8 dereferenceable(208) %16)
          to label %347 unwind label %410

347:                                              ; preds = %346
  %348 = invoke noundef zeroext i1 @_ZN7DynexCN10NodeServer14sendStopSignalEv(ptr noundef nonnull align 8 dereferenceable(920) %15)
          to label %349 unwind label %410

349:                                              ; preds = %347
  invoke void @_ZN6System7ContextIvE3getEv(ptr noundef nonnull align 8 dereferenceable(88) %41)
          to label %350 unwind label %410

350:                                              ; preds = %349
  %351 = call noundef ptr @_ZNKSt10unique_ptrIN7DynexCN5INodeESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %28) #10
  %352 = load ptr, ptr %351, align 8, !tbaa !94
  %353 = getelementptr inbounds ptr, ptr %352, i64 5
  %354 = load ptr, ptr %353, align 8
  %355 = invoke noundef zeroext i1 %354(ptr noundef nonnull align 8 dereferenceable(8) %351)
          to label %356 unwind label %410

356:                                              ; preds = %350
  %357 = invoke noundef zeroext i1 @_ZN7DynexCN4core6deinitEv(ptr noundef nonnull align 8 dereferenceable(3632) %13)
          to label %358 unwind label %410

358:                                              ; preds = %356
  %359 = invoke noundef zeroext i1 @_ZN7DynexCN10NodeServer6deinitEv(ptr noundef nonnull align 8 dereferenceable(920) %15)
          to label %360 unwind label %410

360:                                              ; preds = %358
  call void @_ZN6System7ContextIvED2Ev(ptr noundef nonnull align 8 dereferenceable(88) %41) #10
  call void @llvm.lifetime.end.p0(i64 88, ptr %41) #10
  call void @_ZN6System5EventD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %40) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %31) #10
  call void @_ZNSt10unique_ptrIN7DynexCN5INodeESt14default_deleteIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %28) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #10
  call void @_ZNSt14__basic_futureISt10error_codeED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %27) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %27) #10
  call void @_ZNSt7promiseISt10error_codeED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %26) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %26) #10
  call void @_ZN7DynexCN11CheckpointsD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %17) #10
  call void @llvm.lifetime.end.p0(i64 88, ptr %17) #10
  call void @_ZN7DynexCN9RpcServerD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %16) #10
  call void @llvm.lifetime.end.p0(i64 488, ptr %16) #10
  call void @_ZN7DynexCN10NodeServerD2Ev(ptr noundef nonnull align 8 dereferenceable(920) %15) #10
  call void @llvm.lifetime.end.p0(i64 920, ptr %15) #10
  call void @_ZN7DynexCN22DynexCNProtocolHandlerD2Ev(ptr noundef nonnull align 8 dereferenceable(312) %14) #10
  call void @llvm.lifetime.end.p0(i64 312, ptr %14) #10
  call void @_ZN7DynexCN4coreD1Ev(ptr noundef nonnull align 8 dereferenceable(3632) %13) #10
  call void @llvm.lifetime.end.p0(i64 3632, ptr %13) #10
  call void @_ZN7DynexCN8CurrencyD2Ev(ptr noundef nonnull align 8 dereferenceable(984) %12) #10
  call void @llvm.lifetime.end.p0(i64 984, ptr %12) #10
  ret void

361:                                              ; preds = %297
  %362 = landingpad { ptr, i32 }
          cleanup
  %363 = extractvalue { ptr, i32 } %362, 0
  store ptr %363, ptr %6, align 8
  %364 = extractvalue { ptr, i32 } %362, 1
  store i32 %364, ptr %7, align 4
  br label %369

365:                                              ; preds = %308, %306, %301, %299
  %366 = landingpad { ptr, i32 }
          cleanup
  %367 = extractvalue { ptr, i32 } %366, 0
  store ptr %367, ptr %6, align 8
  %368 = extractvalue { ptr, i32 } %366, 1
  store i32 %368, ptr %7, align 4
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %33) #10
  br label %369

369:                                              ; preds = %365, %361
  call void @llvm.lifetime.end.p0(i64 432, ptr %33) #10
  br label %426

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

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

378:                                              ; preds = %322
  %379 = landingpad { ptr, i32 }
          cleanup
  %380 = extractvalue { ptr, i32 } %379, 0
  store ptr %380, ptr %6, align 8
  %381 = extractvalue { ptr, i32 } %379, 1
  store i32 %381, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #10
  br label %382

382:                                              ; preds = %378, %374
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %37) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %37) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %36) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #10
  br label %383

383:                                              ; preds = %382, %370
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %35) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %34) #10
  br label %426

384:                                              ; preds = %323
  %385 = landingpad { ptr, i32 }
          cleanup
  %386 = extractvalue { ptr, i32 } %385, 0
  store ptr %386, ptr %6, align 8
  %387 = extractvalue { ptr, i32 } %385, 1
  store i32 %387, ptr %7, align 4
  br label %392

388:                                              ; preds = %325
  %389 = landingpad { ptr, i32 }
          cleanup
  %390 = extractvalue { ptr, i32 } %389, 0
  store ptr %390, ptr %6, align 8
  %391 = extractvalue { ptr, i32 } %389, 1
  store i32 %391, ptr %7, align 4
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %38) #10
  br label %392

392:                                              ; preds = %388, %384
  call void @llvm.lifetime.end.p0(i64 432, ptr %38) #10
  br label %426

393:                                              ; preds = %327
  %394 = landingpad { ptr, i32 }
          cleanup
  %395 = extractvalue { ptr, i32 } %394, 0
  store ptr %395, ptr %6, align 8
  %396 = extractvalue { ptr, i32 } %394, 1
  store i32 %396, ptr %7, align 4
  br label %401

397:                                              ; preds = %329
  %398 = landingpad { ptr, i32 }
          cleanup
  %399 = extractvalue { ptr, i32 } %398, 0
  store ptr %399, ptr %6, align 8
  %400 = extractvalue { ptr, i32 } %398, 1
  store i32 %400, ptr %7, align 4
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %39) #10
  br label %401

401:                                              ; preds = %397, %393
  call void @llvm.lifetime.end.p0(i64 432, ptr %39) #10
  br label %426

402:                                              ; preds = %331
  %403 = landingpad { ptr, i32 }
          cleanup
  %404 = extractvalue { ptr, i32 } %403, 0
  store ptr %404, ptr %6, align 8
  %405 = extractvalue { ptr, i32 } %403, 1
  store i32 %405, ptr %7, align 4
  br label %425

406:                                              ; preds = %334
  %407 = landingpad { ptr, i32 }
          cleanup
  %408 = extractvalue { ptr, i32 } %407, 0
  store ptr %408, ptr %6, align 8
  %409 = extractvalue { ptr, i32 } %407, 1
  store i32 %409, ptr %7, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %43) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %42) #10
  br label %424

410:                                              ; preds = %358, %356, %350, %349, %347, %346, %340, %339
  %411 = landingpad { ptr, i32 }
          cleanup
  %412 = extractvalue { ptr, i32 } %411, 0
  store ptr %412, ptr %6, align 8
  %413 = extractvalue { ptr, i32 } %411, 1
  store i32 %413, ptr %7, align 4
  br label %423

414:                                              ; preds = %342
  %415 = landingpad { ptr, i32 }
          cleanup
  %416 = extractvalue { ptr, i32 } %415, 0
  store ptr %416, ptr %6, align 8
  %417 = extractvalue { ptr, i32 } %415, 1
  store i32 %417, ptr %7, align 4
  br label %422

418:                                              ; preds = %344
  %419 = landingpad { ptr, i32 }
          cleanup
  %420 = extractvalue { ptr, i32 } %419, 0
  store ptr %420, ptr %6, align 8
  %421 = extractvalue { ptr, i32 } %419, 1
  store i32 %421, ptr %7, align 4
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %44) #10
  br label %422

422:                                              ; preds = %418, %414
  call void @llvm.lifetime.end.p0(i64 432, ptr %44) #10
  br label %423

423:                                              ; preds = %422, %410
  call void @_ZN6System7ContextIvED2Ev(ptr noundef nonnull align 8 dereferenceable(88) %41) #10
  br label %424

424:                                              ; preds = %423, %406
  call void @llvm.lifetime.end.p0(i64 88, ptr %41) #10
  call void @_ZN6System5EventD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #10
  br label %425

425:                                              ; preds = %424, %402
  call void @llvm.lifetime.end.p0(i64 32, ptr %40) #10
  br label %426

426:                                              ; preds = %425, %401, %392, %383, %369, %293, %289
  call void @llvm.lifetime.end.p0(i64 16, ptr %31) #10
  br label %427

427:                                              ; preds = %426, %285
  call void @_ZNSt10unique_ptrIN7DynexCN5INodeESt14default_deleteIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %28) #10
  br label %428

428:                                              ; preds = %427, %281, %277
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #10
  call void @_ZNSt14__basic_futureISt10error_codeED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %27) #10
  br label %429

429:                                              ; preds = %428, %273
  call void @llvm.lifetime.end.p0(i64 16, ptr %27) #10
  call void @_ZNSt7promiseISt10error_codeED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %26) #10
  br label %430

430:                                              ; preds = %429, %269
  call void @llvm.lifetime.end.p0(i64 24, ptr %26) #10
  br label %431

431:                                              ; preds = %430, %268, %219, %218, %206, %182
  call void @_ZN7DynexCN11CheckpointsD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %17) #10
  br label %432

432:                                              ; preds = %431, %156
  call void @llvm.lifetime.end.p0(i64 88, ptr %17) #10
  call void @_ZN7DynexCN9RpcServerD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %16) #10
  br label %433

433:                                              ; preds = %432, %152
  call void @llvm.lifetime.end.p0(i64 488, ptr %16) #10
  call void @_ZN7DynexCN10NodeServerD2Ev(ptr noundef nonnull align 8 dereferenceable(920) %15) #10
  br label %434

434:                                              ; preds = %433, %148
  call void @llvm.lifetime.end.p0(i64 920, ptr %15) #10
  call void @_ZN7DynexCN22DynexCNProtocolHandlerD2Ev(ptr noundef nonnull align 8 dereferenceable(312) %14) #10
  br label %435

435:                                              ; preds = %434, %144
  call void @llvm.lifetime.end.p0(i64 312, ptr %14) #10
  call void @_ZN7DynexCN4coreD1Ev(ptr noundef nonnull align 8 dereferenceable(3632) %13) #10
  br label %436

436:                                              ; preds = %435, %140
  call void @llvm.lifetime.end.p0(i64 3632, ptr %13) #10
  call void @_ZN7DynexCN8CurrencyD2Ev(ptr noundef nonnull align 8 dereferenceable(984) %12) #10
  call void @llvm.lifetime.end.p0(i64 984, ptr %12) #10
  br label %437

437:                                              ; preds = %436, %136, %99, %74
  %438 = load ptr, ptr %6, align 8
  %439 = load i32, ptr %7, align 4
  %440 = insertvalue { ptr, i32 } poison, ptr %438, 0
  %441 = insertvalue { ptr, i32 } %440, i32 %439, 1
  resume { ptr, i32 } %441

442:                                              ; preds = %259, %205, %87, %62
  unreachable
}

; Function Attrs: nounwind
declare void @_ZN6System5EventD1Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #5

declare noundef zeroext i1 @_ZN5Tools15directoryExistsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32)) #4

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

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

declare void @_ZN7DynexCN4coreC1ERKNS_8CurrencyEPNS_13i_cn_protocolERN7Logging7ILoggerEb(ptr noundef nonnull align 8 dereferenceable(3632), ptr noundef nonnull align 8 dereferenceable(984), ptr noundef, ptr noundef nonnull align 8 dereferenceable(8), i1 noundef zeroext) unnamed_addr #4

declare void @_ZN7DynexCN22DynexCNProtocolHandlerC1ERKNS_8CurrencyERN6System10DispatcherERNS_5ICoreEPNS_12IP2pEndpointERN7Logging7ILoggerE(ptr noundef nonnull align 8 dereferenceable(312), ptr noundef nonnull align 8 dereferenceable(984), ptr noundef nonnull align 16 dereferenceable(440), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef, ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #4

declare void @_ZN7DynexCN10NodeServerC1ERN6System10DispatcherERNS_22DynexCNProtocolHandlerERN7Logging7ILoggerE(ptr noundef nonnull align 8 dereferenceable(920), ptr noundef nonnull align 16 dereferenceable(440), ptr noundef nonnull align 8 dereferenceable(312), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #4

declare void @_ZN7DynexCN9RpcServerC1ERN6System10DispatcherERN7Logging7ILoggerERNS_4coreERNS_10NodeServerERNS_21IDynexCNProtocolQueryE(ptr noundef nonnull align 8 dereferenceable(488), ptr noundef nonnull align 16 dereferenceable(440), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(3632), ptr noundef nonnull align 8 dereferenceable(920), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #4

declare void @_ZN7DynexCN11CheckpointsC1ERN7Logging7ILoggerE(ptr noundef nonnull align 8 dereferenceable(88), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #4

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

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

declare noundef zeroext i1 @_ZN7DynexCN11Checkpoints14add_checkpointEjRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(88), i32 noundef, ptr noundef nonnull align 8 dereferenceable(32)) #4

declare noundef zeroext i1 @_ZN7DynexCN11Checkpoints28load_checkpoints_from_remoteEb(ptr noundef nonnull align 8 dereferenceable(88), i1 noundef zeroext) #4

declare void @_ZN7DynexCN4core15set_checkpointsEONS_11CheckpointsE(ptr noundef nonnull align 8 dereferenceable(3632), ptr noundef nonnull align 8 dereferenceable(88)) #4

declare void @_ZN7DynexCN22DynexCNProtocolHandler16set_p2p_endpointEPNS_12IP2pEndpointE(ptr noundef nonnull align 8 dereferenceable(312), ptr noundef) #4

declare void @_ZN7DynexCN4core23set_cryptonote_protocolEPNS_13i_cn_protocolE(ptr noundef nonnull align 8 dereferenceable(3632), ptr noundef) #4

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

declare noundef zeroext i1 @_ZN7DynexCN10NodeServer4initERKNS_13NetNodeConfigE(ptr noundef nonnull align 8 dereferenceable(920), ptr noundef nonnull align 8 dereferenceable(209)) #4

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

declare noundef zeroext i1 @_ZN7DynexCN4core4initERKNS_10CoreConfigEb(ptr noundef nonnull align 8 dereferenceable(3632), ptr noundef nonnull align 8 dereferenceable(33), i1 noundef zeroext) #4

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt7promiseISt10error_codeE10get_futureEv(ptr dead_on_unwind noalias writable sret(%"class.std::future") align 8, ptr noundef nonnull align 8 dereferenceable(24)) #3 align 2

; Function Attrs: nobuiltin allocsize(0)
declare noundef nonnull ptr @_Znwm(i64 noundef) #7

declare void @_ZN7DynexCN13InProcessNodeC1ERNS_5ICoreERNS_21IDynexCNProtocolQueryE(ptr noundef nonnull align 8 dereferenceable(312), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #4

; Function Attrs: nobuiltin nounwind
declare void @_ZdlPvm(ptr noundef, i64 noundef) #8

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

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvSt10error_codeEEC2IZN18PaymentGateService12runInProcessERN7Logging9LoggerRefEE3$_0vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local { i32, ptr } @_ZNSt6futureISt10error_codeE3getEv(ptr noundef nonnull align 8 dereferenceable(16)) #3 align 2

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

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

; Function Attrs: nounwind
declare void @_ZNSt12system_errorD1Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #5

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

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

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

declare void @_ZN7DynexCN10HttpServer5startERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEtS8_S8_(ptr noundef nonnull align 8 dereferenceable(208), ptr noundef nonnull align 8 dereferenceable(32), i16 noundef zeroext, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) #4

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

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvvEEC2IZN18PaymentGateService12runInProcessERN7Logging9LoggerRefEE3$_1vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6System7ContextIvEC2ERNS_10DispatcherEOSt8functionIFvvEE(ptr noundef nonnull align 8 dereferenceable(88), ptr noundef nonnull align 16 dereferenceable(440), ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #3 align 2

declare void @_ZN6System5Event4waitEv(ptr noundef nonnull align 8 dereferenceable(32)) #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN18PaymentGateService16runWalletServiceERKN7DynexCN8CurrencyERNS0_5INodeE(ptr noundef nonnull align 8 dereferenceable(2568), ptr noundef nonnull align 8 dereferenceable(984), ptr noundef nonnull align 8 dereferenceable(8)) #3 align 2

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

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

declare void @_ZN7DynexCN10HttpServer4stopEv(ptr noundef nonnull align 8 dereferenceable(208)) #4

declare noundef zeroext i1 @_ZN7DynexCN10NodeServer14sendStopSignalEv(ptr noundef nonnull align 8 dereferenceable(920)) #4

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

declare noundef zeroext i1 @_ZN7DynexCN4core6deinitEv(ptr noundef nonnull align 8 dereferenceable(3632)) #4

declare noundef zeroext i1 @_ZN7DynexCN10NodeServer6deinitEv(ptr noundef nonnull align 8 dereferenceable(920)) #4

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

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

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

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

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

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

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

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

; Function Attrs: nounwind
declare void @_ZN7DynexCN4coreD1Ev(ptr noundef nonnull align 8 dereferenceable(3632)) unnamed_addr #5

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

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

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

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { "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 = { 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 #6 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { nobuiltin allocsize(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 = { nobuiltin nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #9 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #10 = { nounwind }
attributes #11 = { noreturn }
attributes #12 = { builtin allocsize(0) }
attributes #13 = { builtin 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, !12, i64 616}
!10 = !{!"_ZTS18PaymentGateService", !6, i64 0, !6, i64 8, !11, i64 16, !6, i64 664, !29, i64 672, !59, i64 1656, !75, i64 1776, !83, i64 2288, !86, i64 2432}
!11 = !{!"_ZTSN14PaymentService20ConfigurationManagerE", !12, i64 0, !13, i64 8, !18, i64 352, !27, i64 568, !28, i64 608}
!12 = !{!"bool", !7, i64 0}
!13 = !{!"_ZTSN14PaymentService13ConfigurationE", !14, i64 0, !17, i64 32, !14, i64 40, !14, i64 72, !14, i64 104, !14, i64 136, !14, i64 168, !14, i64 200, !14, i64 232, !14, i64 264, !14, i64 296, !12, i64 328, !12, i64 329, !12, i64 330, !12, i64 331, !12, i64 332, !12, i64 333, !12, i64 334, !16, i64 336}
!14 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !15, i64 0, !16, i64 8, !7, i64 16}
!15 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!16 = !{!"long", !7, i64 0}
!17 = !{!"short", !7, i64 0}
!18 = !{!"_ZTSN7DynexCN13NetNodeConfigE", !14, i64 0, !17, i64 32, !17, i64 34, !12, i64 36, !19, i64 40, !23, i64 64, !23, i64 88, !23, i64 112, !12, i64 136, !14, i64 144, !14, i64 176, !12, i64 208}
!19 = !{!"_ZTSSt6vectorIN7DynexCN13PeerlistEntryESaIS1_EE", !20, i64 0}
!20 = !{!"_ZTSSt12_Vector_baseIN7DynexCN13PeerlistEntryESaIS1_EE", !21, i64 0}
!21 = !{!"_ZTSNSt12_Vector_baseIN7DynexCN13PeerlistEntryESaIS1_EE12_Vector_implE", !22, i64 0}
!22 = !{!"_ZTSNSt12_Vector_baseIN7DynexCN13PeerlistEntryESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!23 = !{!"_ZTSSt6vectorIN7DynexCN14NetworkAddressESaIS1_EE", !24, i64 0}
!24 = !{!"_ZTSSt12_Vector_baseIN7DynexCN14NetworkAddressESaIS1_EE", !25, i64 0}
!25 = !{!"_ZTSNSt12_Vector_baseIN7DynexCN14NetworkAddressESaIS1_EE12_Vector_implE", !26, i64 0}
!26 = !{!"_ZTSNSt12_Vector_baseIN7DynexCN14NetworkAddressESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!27 = !{!"_ZTSN7DynexCN10CoreConfigE", !14, i64 0, !12, i64 32}
!28 = !{!"_ZTSN14PaymentService20RpcNodeConfigurationE", !14, i64 0, !17, i64 32}
!29 = !{!"_ZTSN7DynexCN15CurrencyBuilderE", !30, i64 0}
!30 = !{!"_ZTSN7DynexCN8CurrencyE", !16, i64 0, !16, i64 8, !16, i64 16, !16, i64 24, !16, i64 32, !16, i64 40, !16, i64 48, !16, i64 56, !16, i64 64, !16, i64 72, !16, i64 80, !16, i64 88, !16, i64 96, !31, i64 104, !16, i64 112, !16, i64 120, !16, i64 128, !16, i64 136, !16, i64 144, !16, i64 152, !16, i64 160, !16, i64 168, !16, i64 176, !16, i64 184, !16, i64 192, !16, i64 200, !16, i64 208, !16, i64 216, !16, i64 224, !16, i64 232, !16, i64 240, !16, i64 248, !16, i64 256, !16, i64 264, !16, i64 272, !16, i64 280, !16, i64 288, !16, i64 296, !16, i64 304, !16, i64 312, !16, i64 320, !16, i64 328, !31, i64 336, !31, i64 340, !31, i64 344, !31, i64 348, !31, i64 352, !31, i64 356, !14, i64 360, !14, i64 392, !14, i64 424, !14, i64 456, !14, i64 488, !12, i64 520, !32, i64 528, !34, i64 912, !58, i64 944}
!31 = !{!"int", !7, i64 0}
!32 = !{!"_ZTSN7DynexCN5BlockE", !33, i64 0, !35, i64 48, !40, i64 248, !36, i64 360}
!33 = !{!"_ZTSN7DynexCN11BlockHeaderE", !7, i64 0, !7, i64 1, !31, i64 4, !16, i64 8, !34, i64 16}
!34 = !{!"_ZTSN6Crypto4HashE", !7, i64 0}
!35 = !{!"_ZTSN7DynexCN11ParentBlockE", !7, i64 0, !7, i64 1, !34, i64 2, !17, i64 34, !36, i64 40, !40, i64 64, !36, i64 176}
!36 = !{!"_ZTSSt6vectorIN6Crypto4HashESaIS1_EE", !37, i64 0}
!37 = !{!"_ZTSSt12_Vector_baseIN6Crypto4HashESaIS1_EE", !38, i64 0}
!38 = !{!"_ZTSNSt12_Vector_baseIN6Crypto4HashESaIS1_EE12_Vector_implE", !39, i64 0}
!39 = !{!"_ZTSNSt12_Vector_baseIN6Crypto4HashESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!40 = !{!"_ZTSN7DynexCN11TransactionE", !41, i64 0, !54, i64 88}
!41 = !{!"_ZTSN7DynexCN17TransactionPrefixE", !7, i64 0, !16, i64 8, !42, i64 16, !46, i64 40, !50, i64 64}
!42 = !{!"_ZTSSt6vectorIN5boost7variantIN7DynexCN9BaseInputEJNS2_8KeyInputENS2_19MultisignatureInputEEEESaIS6_EE", !43, i64 0}
!43 = !{!"_ZTSSt12_Vector_baseIN5boost7variantIN7DynexCN9BaseInputEJNS2_8KeyInputENS2_19MultisignatureInputEEEESaIS6_EE", !44, i64 0}
!44 = !{!"_ZTSNSt12_Vector_baseIN5boost7variantIN7DynexCN9BaseInputEJNS2_8KeyInputENS2_19MultisignatureInputEEEESaIS6_EE12_Vector_implE", !45, i64 0}
!45 = !{!"_ZTSNSt12_Vector_baseIN5boost7variantIN7DynexCN9BaseInputEJNS2_8KeyInputENS2_19MultisignatureInputEEEESaIS6_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!46 = !{!"_ZTSSt6vectorIN7DynexCN17TransactionOutputESaIS1_EE", !47, i64 0}
!47 = !{!"_ZTSSt12_Vector_baseIN7DynexCN17TransactionOutputESaIS1_EE", !48, i64 0}
!48 = !{!"_ZTSNSt12_Vector_baseIN7DynexCN17TransactionOutputESaIS1_EE12_Vector_implE", !49, i64 0}
!49 = !{!"_ZTSNSt12_Vector_baseIN7DynexCN17TransactionOutputESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!50 = !{!"_ZTSSt6vectorIhSaIhEE", !51, i64 0}
!51 = !{!"_ZTSSt12_Vector_baseIhSaIhEE", !52, i64 0}
!52 = !{!"_ZTSNSt12_Vector_baseIhSaIhEE12_Vector_implE", !53, i64 0}
!53 = !{!"_ZTSNSt12_Vector_baseIhSaIhEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!54 = !{!"_ZTSSt6vectorIS_IN6Crypto9SignatureESaIS1_EESaIS3_EE", !55, i64 0}
!55 = !{!"_ZTSSt12_Vector_baseISt6vectorIN6Crypto9SignatureESaIS2_EESaIS4_EE", !56, i64 0}
!56 = !{!"_ZTSNSt12_Vector_baseISt6vectorIN6Crypto9SignatureESaIS2_EESaIS4_EE12_Vector_implE", !57, i64 0}
!57 = !{!"_ZTSNSt12_Vector_baseISt6vectorIN6Crypto9SignatureESaIS2_EESaIS4_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!58 = !{!"_ZTSN7Logging9LoggerRefE", !6, i64 0, !14, i64 8}
!59 = !{!"_ZTSN7Logging11LoggerGroupE", !60, i64 0, !71, i64 96}
!60 = !{!"_ZTSN7Logging12CommonLoggerE", !61, i64 0, !62, i64 8, !70, i64 56, !14, i64 64}
!61 = !{!"_ZTSN7Logging7ILoggerE"}
!62 = !{!"_ZTSSt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS5_ESaIS5_EE", !63, i64 0}
!63 = !{!"_ZTSSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St9_IdentityIS5_ESt4lessIS5_ESaIS5_EE", !64, i64 0}
!64 = !{!"_ZTSNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St9_IdentityIS5_ESt4lessIS5_ESaIS5_EE13_Rb_tree_implIS9_Lb1EEE", !65, i64 0, !67, i64 8}
!65 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE", !66, i64 0}
!66 = !{!"_ZTSSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE"}
!67 = !{!"_ZTSSt15_Rb_tree_header", !68, i64 0, !16, i64 32}
!68 = !{!"_ZTSSt18_Rb_tree_node_base", !69, i64 0, !6, i64 8, !6, i64 16, !6, i64 24}
!69 = !{!"_ZTSSt14_Rb_tree_color", !7, i64 0}
!70 = !{!"_ZTSN7Logging5LevelE", !7, i64 0}
!71 = !{!"_ZTSSt6vectorIPN7Logging7ILoggerESaIS2_EE", !72, i64 0}
!72 = !{!"_ZTSSt12_Vector_baseIPN7Logging7ILoggerESaIS2_EE", !73, i64 0}
!73 = !{!"_ZTSNSt12_Vector_baseIPN7Logging7ILoggerESaIS2_EE12_Vector_implE", !74, i64 0}
!74 = !{!"_ZTSNSt12_Vector_baseIPN7Logging7ILoggerESaIS2_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!75 = !{!"_ZTSSt14basic_ofstreamIcSt11char_traitsIcEE", !76, i64 0, !77, i64 8}
!76 = !{!"_ZTSSo"}
!77 = !{!"_ZTSSt13basic_filebufIcSt11char_traitsIcEE", !78, i64 0, !7, i64 64, !80, i64 104, !81, i64 120, !82, i64 124, !82, i64 132, !82, i64 140, !6, i64 152, !16, i64 160, !12, i64 168, !12, i64 169, !12, i64 170, !7, i64 171, !6, i64 176, !6, i64 184, !12, i64 192, !6, i64 200, !6, i64 208, !16, i64 216, !6, i64 224, !6, i64 232}
!78 = !{!"_ZTSSt15basic_streambufIcSt11char_traitsIcEE", !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !79, i64 56}
!79 = !{!"_ZTSSt6locale", !6, i64 0}
!80 = !{!"_ZTSSt12__basic_fileIcE", !6, i64 0, !12, i64 8}
!81 = !{!"_ZTSSt13_Ios_Openmode", !7, i64 0}
!82 = !{!"_ZTS11__mbstate_t", !31, i64 0, !7, i64 4}
!83 = !{!"_ZTSN7Logging12StreamLoggerE", !60, i64 0, !6, i64 96, !84, i64 104}
!84 = !{!"_ZTSSt5mutex", !85, i64 0}
!85 = !{!"_ZTSSt12__mutex_base", !7, i64 0}
!86 = !{!"_ZTSN7Logging13ConsoleLoggerE", !60, i64 0, !84, i64 96}
!87 = !{i8 0, i8 2}
!88 = !{}
!89 = !{!10, !6, i64 0}
!90 = !{!10, !12, i64 357}
!91 = !{!92, !31, i64 0}
!92 = !{!"_ZTSN7DynexCN14CheckpointDataE", !31, i64 0, !6, i64 8}
!93 = !{!92, !6, i64 8}
!94 = !{!95, !95, i64 0}
!95 = !{!"vtable pointer", !8, i64 0}
!96 = !{i64 0, i64 4, !97, i64 8, i64 8, !5}
!97 = !{!31, !31, i64 0}
!98 = !{!10, !17, i64 656}


; 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.std::initializer_list" = type { ptr, i64 }
%"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::Currency" = type { i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i32, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i32, i32, i32, i32, i32, i32, %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", i8, %"struct.DynexCN::Block", %"struct.Crypto::Hash", %"class.Logging::LoggerRef" }
%"struct.DynexCN::Block" = type { %"struct.DynexCN::BlockHeader", %"struct.DynexCN::ParentBlock", %"struct.DynexCN::Transaction", %"class.std::vector.13" }
%"struct.DynexCN::BlockHeader" = type { i8, i8, i32, i64, %"struct.Crypto::Hash" }
%"struct.DynexCN::ParentBlock" = type { i8, i8, %"struct.Crypto::Hash", i16, %"class.std::vector.13", %"struct.DynexCN::Transaction", %"class.std::vector.13" }
%"struct.DynexCN::Transaction" = type { %"struct.DynexCN::TransactionPrefix", %"class.std::vector.33" }
%"struct.DynexCN::TransactionPrefix" = type { i8, i64, %"class.std::vector.18", %"class.std::vector.23", %"class.std::vector.28" }
%"class.std::vector.18" = type { %"struct.std::_Vector_base.19" }
%"struct.std::_Vector_base.19" = 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.23" = type { %"struct.std::_Vector_base.24" }
%"struct.std::_Vector_base.24" = 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.28" = type { %"struct.std::_Vector_base.29" }
%"struct.std::_Vector_base.29" = 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.33" = type { %"struct.std::_Vector_base.34" }
%"struct.std::_Vector_base.34" = 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.13" = type { %"struct.std::_Vector_base.14" }
%"struct.std::_Vector_base.14" = 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.Crypto::Hash" = type { [32 x i8] }
%"class.Logging::LoggerRef" = type { ptr, %"class.std::__cxx11::basic_string" }
%"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.252", 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.56" }
%"class.std::_Rb_tree.56" = type { %"struct.std::_Rb_tree<unsigned int, std::pair<const unsigned int, Crypto::Hash>, std::_Select1st<std::pair<const unsigned int, Crypto::Hash>>, std::less<unsigned int>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<unsigned int, std::pair<const unsigned int, Crypto::Hash>, std::_Select1st<std::pair<const unsigned int, Crypto::Hash>>, std::less<unsigned int>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.std::_Rb_tree_header" = type { %"struct.std::_Rb_tree_node_base", i64 }
%"struct.std::_Rb_tree_node_base" = type { i32, ptr, ptr, ptr }
%"struct.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", %"class.std::set.71", %"class.std::__cxx11::basic_string", ptr, ptr, %"class.boost::multi_index::multi_index_container", ptr, %"class.std::unordered_map.77", %"class.Logging::LoggerRef", %"class.DynexCN::PaymentIdIndex", %"class.DynexCN::AddressIndex", %"class.DynexCN::TimestampTransactionsIndex" }
%"class.Tools::ObserverManager" = type { %"class.std::vector.61", %"class.std::mutex" }
%"class.std::vector.61" = type { %"struct.std::_Vector_base.62" }
%"struct.std::_Vector_base.62" = 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" = type { %"class.std::_Hashtable" }
%"class.std::_Hashtable" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"struct.std::__detail::_Hash_node_base" = type { ptr }
%"struct.std::__detail::_Prime_rehash_policy" = type { float, i64 }
%"class.std::set.71" = type { %"class.std::_Rb_tree.72" }
%"class.std::_Rb_tree.72" = 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.77" = type { %"class.std::_Hashtable.78" }
%"class.std::_Hashtable.78" = 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.96" }
%"class.std::_Hashtable.96" = type { %"struct.std::__detail::_Hashtable_base.97", ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"struct.std::__detail::_Hashtable_base.97" = type { %"struct.std::__detail::_Hash_code_base.98" }
%"struct.std::__detail::_Hash_code_base.98" = type { %"struct.std::__detail::_Hashtable_ebo_helper.99" }
%"struct.std::__detail::_Hashtable_ebo_helper.99" = type { %"class.std::function.100" }
%"class.std::function.100" = 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.112" }
%"class.std::_Rb_tree.112" = 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.116", i8, [7 x i8] }>
%"class.std::multimap.116" = type { %"class.std::_Rb_tree.117" }
%"class.std::_Rb_tree.117" = 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.122", ptr, ptr, %"class.std::recursive_mutex", %"class.Crypto::cn_context", %"class.Tools::ObserverManager.136", %"class.boost::multi_index::multi_index_container.142", i64, %"class.std::unordered_map.152", %"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.195", %"class.google::sparse_hash_map.209", %"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.122" = type { %"class.std::_Hashtable.123" }
%"class.std::_Hashtable.123" = 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.136" = type { %"class.std::vector.137", %"class.std::mutex" }
%"class.std::vector.137" = type { %"struct.std::_Vector_base.138" }
%"struct.std::_Vector_base.138" = 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.142" = type { [8 x i8], %"struct.boost::multi_index::detail::header_holder.144", %"class.boost::multi_index::detail::ordered_index.base", i64 }
%"struct.boost::multi_index::detail::header_holder.144" = 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.147", [2 x i8] }>
%"class.boost::multi_index::detail::hashed_index.147" = type { [8 x i8], %"class.boost::multi_index::detail::bucket_array.150", float, i64 }
%"class.boost::multi_index::detail::bucket_array.150" = type { i64, %"struct.boost::multi_index::detail::auto_space.151" }
%"struct.boost::multi_index::detail::auto_space.151" = type { [8 x i8], i64, ptr }
%"class.std::unordered_map.152" = type { %"class.std::_Hashtable.153" }
%"class.std::_Hashtable.153" = 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.169", %"class.google::sparsetable<std::pair<const unsigned long, std::vector<std::pair<DynexCN::Blockchain::TransactionIndex, unsigned short>>>>::Settings" }
%"class.std::vector.169" = type { %"struct.std::_Vector_base.170" }
%"struct.std::_Vector_base.170" = 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.173", i64, %"class.std::map.178", %"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.46 }
%union.anon.46 = type { i32 }
%"class.std::vector.173" = type { %"struct.std::_Vector_base.174" }
%"struct.std::_Vector_base.174" = type { %"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl" }
%"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl" = type { %"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl_data" }
%"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::map.178" = type { %"class.std::_Rb_tree.179" }
%"class.std::_Rb_tree.179" = 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.186", ptr }
%"class.boost::multi_index::multi_index_container.186" = type { [8 x i8], %"struct.boost::multi_index::detail::header_holder.188", %"class.boost::multi_index::detail::random_access_index", i64 }
%"struct.boost::multi_index::detail::header_holder.188" = type { ptr }
%"class.boost::multi_index::detail::random_access_index" = type { %"class.boost::multi_index::detail::hashed_index.189", %"class.boost::multi_index::detail::random_access_index_ptr_array" }
%"class.boost::multi_index::detail::hashed_index.189" = type { [8 x i8], %"class.boost::multi_index::detail::bucket_array.192", float, i64 }
%"class.boost::multi_index::detail::bucket_array.192" = type { i64, %"struct.boost::multi_index::detail::auto_space.193" }
%"struct.boost::multi_index::detail::auto_space.193" = 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.194" }
%"struct.boost::multi_index::detail::auto_space.194" = type { [8 x i8], i64, ptr }
%"class.std::unordered_map.195" = type { %"class.std::_Hashtable.196" }
%"class.std::_Hashtable.196" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.google::sparse_hash_map.209" = type { %"class.google::sparse_hashtable.210" }
%"class.google::sparse_hashtable.210" = 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.211" }
%"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.211" = type { %"class.std::vector.212", %"class.google::sparsetable<std::pair<const unsigned long, std::vector<DynexCN::Blockchain::MultisignatureOutputUsage>>>::Settings" }
%"class.std::vector.212" = type { %"struct.std::_Vector_base.213" }
%"struct.std::_Vector_base.213" = 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.116", i8, [7 x i8] }>
%"class.DynexCN::GeneratedTransactionsIndex" = type <{ %"class.std::unordered_map.218", i64, i8, [7 x i8] }>
%"class.std::unordered_map.218" = type { %"class.std::_Hashtable.219" }
%"class.std::_Hashtable.219" = 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.238", i8, [7 x i8] }>
%"class.std::unordered_multimap.238" = type { %"class.std::_Hashtable.239" }
%"class.std::_Hashtable.239" = 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.252" = type { %"class.std::vector.253", %"class.std::mutex" }
%"class.std::vector.253" = type { %"struct.std::_Vector_base.254" }
%"struct.std::_Vector_base.254" = 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 }
%"class.DynexCN::DynexCNProtocolHandler" = type { %"struct.DynexCN::i_cn_protocol", %"class.DynexCN::IDynexCNProtocolQuery", %"class.Logging::LoggerRef", ptr, ptr, ptr, %"struct.DynexCN::p2p_endpoint_stub", ptr, %"struct.std::atomic", %"struct.std::atomic", %"class.std::recursive_mutex", %"class.std::mutex", i32, %"class.std::mutex", i32, %"struct.std::atomic.258", %"class.Tools::ObserverManager.260" }
%"class.DynexCN::IDynexCNProtocolQuery" = type { ptr }
%"struct.DynexCN::p2p_endpoint_stub" = type { %"struct.DynexCN::IP2pEndpoint" }
%"struct.DynexCN::IP2pEndpoint" = type { ptr }
%"struct.std::atomic.258" = type { %"struct.std::__atomic_base.259" }
%"struct.std::__atomic_base.259" = type { i64 }
%"class.Tools::ObserverManager.260" = type { %"class.std::vector.261", %"class.std::mutex" }
%"class.std::vector.261" = type { %"struct.std::_Vector_base.262" }
%"struct.std::_Vector_base.262" = type { %"struct.std::_Vector_base<DynexCN::IDynexCNProtocolObserver *, std::allocator<DynexCN::IDynexCNProtocolObserver *>>::_Vector_impl" }
%"struct.std::_Vector_base<DynexCN::IDynexCNProtocolObserver *, std::allocator<DynexCN::IDynexCNProtocolObserver *>>::_Vector_impl" = type { %"struct.std::_Vector_base<DynexCN::IDynexCNProtocolObserver *, std::allocator<DynexCN::IDynexCNProtocolObserver *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<DynexCN::IDynexCNProtocolObserver *, std::allocator<DynexCN::IDynexCNProtocolObserver *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.DynexCN::NodeServer" = type { %"struct.DynexCN::IP2pEndpoint", %"class.std::unordered_map.266", %"struct.DynexCN::NodeServer::config", %"class.std::__cxx11::basic_string", i8, i8, i32, i32, i32, i8, i8, %"class.std::__cxx11::basic_string", ptr, %"class.System::ContextGroup", %"class.System::Event", %"class.System::Timer", %"class.System::Timer", %"class.System::TcpListener", %"class.Logging::LoggerRef", %"struct.std::atomic", ptr, %"class.DynexCN::PeerlistManager", %"class.DynexCN::OnceInInterval", %"class.DynexCN::OnceInInterval", %"class.System::Timer", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", i64, %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.8", %"class.std::__cxx11::list.294", i64, %"struct.Crypto::Uuid", %"class.std::map.299", %"class.std::map.304", %"class.std::mutex" }
%"class.std::unordered_map.266" = type { %"class.std::_Hashtable.267" }
%"class.std::_Hashtable.267" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"struct.DynexCN::NodeServer::config" = type { %"struct.DynexCN::network_config", i64 }
%"struct.DynexCN::network_config" = type { i32, i32, i32, i32, i32, i32, i32 }
%"class.System::ContextGroup" = type { ptr, %"struct.System::NativeContextGroup" }
%"struct.System::NativeContextGroup" = type { ptr, ptr, ptr, ptr }
%"class.System::Event" = type { ptr, i8, ptr, ptr }
%"class.System::TcpListener" = type { ptr, i32, ptr }
%"class.DynexCN::PeerlistManager" = type { %"class.std::__cxx11::basic_string", i8, %"class.boost::multi_index::multi_index_container.285", %"class.boost::multi_index::multi_index_container.285", %"class.DynexCN::PeerlistManager::Peerlist", %"class.DynexCN::PeerlistManager::Peerlist" }
%"class.boost::multi_index::multi_index_container.285" = type { [8 x i8], %"struct.boost::multi_index::detail::header_holder.287", [8 x i8], i64 }
%"struct.boost::multi_index::detail::header_holder.287" = type { ptr }
%"class.DynexCN::PeerlistManager::Peerlist" = type { ptr, i64 }
%"class.DynexCN::OnceInInterval" = type { i64, i64 }
%"class.System::Timer" = type { ptr, i32, ptr }
%"class.std::vector.8" = type { %"struct.std::_Vector_base.9" }
%"struct.std::_Vector_base.9" = type { %"struct.std::_Vector_base<DynexCN::NetworkAddress, std::allocator<DynexCN::NetworkAddress>>::_Vector_impl" }
%"struct.std::_Vector_base<DynexCN::NetworkAddress, std::allocator<DynexCN::NetworkAddress>>::_Vector_impl" = type { %"struct.std::_Vector_base<DynexCN::NetworkAddress, std::allocator<DynexCN::NetworkAddress>>::_Vector_impl_data" }
%"struct.std::_Vector_base<DynexCN::NetworkAddress, std::allocator<DynexCN::NetworkAddress>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::__cxx11::list.294" = type { %"class.std::__cxx11::_List_base.295" }
%"class.std::__cxx11::_List_base.295" = type { %"struct.std::__cxx11::_List_base<DynexCN::PeerlistEntry, std::allocator<DynexCN::PeerlistEntry>>::_List_impl" }
%"struct.std::__cxx11::_List_base<DynexCN::PeerlistEntry, std::allocator<DynexCN::PeerlistEntry>>::_List_impl" = type { %"struct.std::__detail::_List_node_header" }
%"struct.Crypto::Uuid" = type { [16 x i8] }
%"class.std::map.299" = type { %"class.std::_Rb_tree.300" }
%"class.std::_Rb_tree.300" = type { %"struct.std::_Rb_tree<unsigned int, std::pair<const unsigned int, long>, std::_Select1st<std::pair<const unsigned int, long>>, std::less<unsigned int>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<unsigned int, std::pair<const unsigned int, long>, std::_Select1st<std::pair<const unsigned int, long>>, std::less<unsigned int>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::map.304" = type { %"class.std::_Rb_tree.305" }
%"class.std::_Rb_tree.305" = type { %"struct.std::_Rb_tree<unsigned int, std::pair<const unsigned int, unsigned long>, std::_Select1st<std::pair<const unsigned int, unsigned long>>, std::less<unsigned int>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<unsigned int, std::pair<const unsigned int, unsigned long>, std::_Select1st<std::pair<const unsigned int, unsigned long>>, std::less<unsigned int>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.DynexCN::RpcServer" = type { %"class.DynexCN::HttpServer", %"class.Logging::LoggerRef", ptr, ptr, %"class.DynexCN::BlockchainExplorerDataBuilder", ptr, i8, %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"struct.Crypto::SecretKey", %"struct.DynexCN::AccountPublicAddress" }
%"class.DynexCN::HttpServer" = type { ptr, ptr, %"class.System::ContextGroup", %"class.Logging::LoggerRef", %"class.System::TcpListener", %"class.std::unordered_set", %"class.std::__cxx11::basic_string" }
%"class.std::unordered_set" = type { %"class.std::_Hashtable.309" }
%"class.std::_Hashtable.309" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.DynexCN::BlockchainExplorerDataBuilder" = type { ptr, ptr }
%"struct.Crypto::SecretKey" = type { [32 x i8] }
%"struct.DynexCN::AccountPublicAddress" = type { %"struct.Crypto::PublicKey", %"struct.Crypto::PublicKey" }
%"struct.Crypto::PublicKey" = type { [32 x i8] }
%"class.std::allocator" = type { i8 }
%"class.std::promise" = type { %"class.std::shared_ptr", %"class.std::unique_ptr" }
%"class.std::shared_ptr" = type { %"class.std::__shared_ptr" }
%"class.std::__shared_ptr" = type { ptr, %"class.std::__shared_count" }
%"class.std::__shared_count" = type { ptr }
%"class.std::unique_ptr" = type { %"struct.std::__uniq_ptr_data" }
%"struct.std::__uniq_ptr_data" = type { %"class.std::__uniq_ptr_impl" }
%"class.std::__uniq_ptr_impl" = type { %"class.std::tuple.328" }
%"class.std::tuple.328" = type { %"struct.std::_Tuple_impl.329" }
%"struct.std::_Tuple_impl.329" = type { %"struct.std::_Head_base.332" }
%"struct.std::_Head_base.332" = type { ptr }
%"class.std::future" = type { %"class.std::__basic_future" }
%"class.std::__basic_future" = type { %"class.std::shared_ptr" }
%"class.std::unique_ptr.333" = type { %"struct.std::__uniq_ptr_data.334" }
%"struct.std::__uniq_ptr_data.334" = type { %"class.std::__uniq_ptr_impl.335" }
%"class.std::__uniq_ptr_impl.335" = type { %"class.std::tuple.336" }
%"class.std::tuple.336" = type { %"struct.std::_Tuple_impl.337" }
%"struct.std::_Tuple_impl.337" = type { %"struct.std::_Head_base.340" }
%"struct.std::_Head_base.340" = type { ptr }
%"class.std::function.363" = type { %"class.std::_Function_base", ptr }
%class.anon.366 = type { ptr, ptr }
%"class.std::error_code" = type { i32, ptr }
%"class.System::Context" = type { ptr, %"class.std::function", %"class.System::Event", ptr, %"class.std::__exception_ptr::exception_ptr" }
%"class.std::function" = type { %"class.std::_Function_base", ptr }
%"class.std::__exception_ptr::exception_ptr" = type { ptr }
%class.anon.367 = type { ptr, ptr }

@_ZTISt13runtime_error = external constant ptr
@_ZN7Logging7DEFAULTB5cxx11E = external global %"class.std::__cxx11::basic_string", align 8
@.str.22 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [38 x i8], align 1
@_ZN7DynexCNL11CHECKPOINTSE = external hidden constant %"class.std::initializer_list", align 8
@.str.25 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [18 x i8], align 1
@_ZTISt12system_error = external constant ptr
@.str.28 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [28 x i8], align 1

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

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

declare i32 @__gxx_personality_v0(...)

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

declare ptr @__cxa_allocate_exception(i64) local_unnamed_addr

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

declare void @_ZNSt13runtime_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #3

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

declare void @__cxa_throw(ptr, ptr, ptr) local_unnamed_addr

declare void @__cxa_free_exception(ptr) local_unnamed_addr

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

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

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

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

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

declare void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef) unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7DynexCN15CurrencyBuilder8currencyEv(ptr dead_on_unwind noalias writable sret(%"class.DynexCN::Currency") align 8, ptr noundef nonnull align 8 dereferenceable(984)) local_unnamed_addr #2 align 2

declare void @_ZN6System5EventC1ERNS_10DispatcherE(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 16 dereferenceable(440)) unnamed_addr #3

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN18PaymentGateService12runInProcessERN7Logging9LoggerRefE(ptr noundef nonnull align 8 dereferenceable(2568) %0, ptr noundef nonnull align 8 dereferenceable(40) %1) local_unnamed_addr #2 align 2 personality ptr @__gxx_personality_v0 {
  %3 = alloca %"class.std::__cxx11::basic_string", align 8
  %4 = alloca %"class.std::__cxx11::basic_string", align 8
  %5 = alloca %"class.Logging::LoggerMessage", align 8
  %6 = alloca %"class.DynexCN::Currency", align 8
  %7 = alloca %"class.DynexCN::core", align 8
  %8 = alloca %"class.DynexCN::DynexCNProtocolHandler", align 8
  %9 = alloca %"class.DynexCN::NodeServer", align 8
  %10 = alloca %"class.DynexCN::RpcServer", align 8
  %11 = alloca %"class.DynexCN::Checkpoints", align 8
  %12 = alloca %"class.std::__cxx11::basic_string", align 8
  %13 = alloca %"class.std::allocator", align 1
  %14 = alloca %"class.Logging::LoggerMessage", align 8
  %15 = alloca %"class.Logging::LoggerMessage", align 8
  %16 = alloca %"class.std::promise", align 8
  %17 = alloca %"class.std::future", align 8
  %18 = alloca %"class.std::unique_ptr.333", align 8
  %19 = alloca %"class.std::function.363", align 8
  %20 = alloca %class.anon.366, align 8
  %21 = alloca %"class.std::error_code", align 8
  %22 = alloca %"class.Logging::LoggerMessage", align 8
  %23 = alloca %"class.std::__cxx11::basic_string", align 8
  %24 = alloca %"class.std::allocator", align 1
  %25 = alloca %"class.std::__cxx11::basic_string", align 8
  %26 = alloca %"class.std::allocator", align 1
  %27 = alloca %"class.Logging::LoggerMessage", align 8
  %28 = alloca %"class.Logging::LoggerMessage", align 8
  %29 = alloca %"class.System::Event", align 8
  %30 = alloca %"class.System::Context", align 8
  %31 = alloca %"class.std::function", align 8
  %32 = alloca %class.anon.367, align 8
  %33 = alloca %"class.Logging::LoggerMessage", align 8
  %34 = getelementptr inbounds i8, ptr %0, i64 584
  %35 = getelementptr inbounds i8, ptr %0, i64 616
  %36 = load i8, ptr %35, align 8, !tbaa !5, !range !86, !noundef !87
  %37 = trunc nuw i8 %36 to i1
  br i1 %37, label %49, label %38

38:                                               ; preds = %2
  %39 = tail call noundef zeroext i1 @_ZN5Tools15directoryExistsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %34)
  br i1 %39, label %60, label %40

40:                                               ; preds = %38
  %41 = tail call ptr @__cxa_allocate_exception(i64 16) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %3) #9
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %3, ptr noundef nonnull @.str.22, ptr noundef nonnull align 8 dereferenceable(32) %34)
          to label %42 unwind label %.thread

42:                                               ; preds = %40
  invoke void @_ZNSt13runtime_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(16) %41, ptr noundef nonnull align 8 dereferenceable(32) %3)
          to label %44 unwind label %.thread90

.thread90:                                        ; preds = %42
  %43 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) #9
  br label %48

44:                                               ; preds = %42
  invoke void @__cxa_throw(ptr nonnull %41, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #10
          to label %270 unwind label %46

.thread:                                          ; preds = %40
  %45 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) #9
  br label %48

46:                                               ; preds = %44
  %47 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) #9
  br label %269

48:                                               ; preds = %.thread90, %.thread
  %.pn89 = phi { ptr, i32 } [ %45, %.thread ], [ %43, %.thread90 ]
  call void @__cxa_free_exception(ptr %41) #9
  br label %269

49:                                               ; preds = %2
  %50 = tail call noundef zeroext i1 @_ZN5Tools31create_directories_if_necessaryERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32) %34)
  br i1 %50, label %60, label %51

51:                                               ; preds = %49
  %52 = tail call ptr @__cxa_allocate_exception(i64 16) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %4) #9
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %4, ptr noundef nonnull @.str.23, ptr noundef nonnull align 8 dereferenceable(32) %34)
          to label %53 unwind label %.thread92

53:                                               ; preds = %51
  invoke void @_ZNSt13runtime_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(16) %52, ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %55 unwind label %.thread96

.thread96:                                        ; preds = %53
  %54 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) #9
  br label %59

55:                                               ; preds = %53
  invoke void @__cxa_throw(ptr nonnull %52, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #10
          to label %270 unwind label %57

.thread92:                                        ; preds = %51
  %56 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) #9
  br label %59

57:                                               ; preds = %55
  %58 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) #9
  br label %269

59:                                               ; preds = %.thread96, %.thread92
  %.pn5195 = phi { ptr, i32 } [ %56, %.thread92 ], [ %54, %.thread96 ]
  call void @__cxa_free_exception(ptr %52) #9
  br label %269

60:                                               ; preds = %49, %38
  call void @llvm.lifetime.start.p0(i64 432, ptr nonnull %5) #9
  call void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.Logging::LoggerMessage") align 8 %5, ptr noundef nonnull align 8 dereferenceable(40) %1, i32 noundef 3, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging7DEFAULTB5cxx11E)
  %61 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA38_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %5, ptr noundef nonnull align 1 dereferenceable(38) @.str.24)
          to label %62 unwind label %80

62:                                               ; preds = %60
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %5) #9
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %5) #9
  call void @llvm.lifetime.start.p0(i64 984, ptr nonnull %6) #9
  %63 = getelementptr inbounds i8, ptr %0, i64 672
  call void @_ZN7DynexCN15CurrencyBuilder8currencyEv(ptr dead_on_unwind nonnull writable sret(%"class.DynexCN::Currency") align 8 %6, ptr noundef nonnull align 8 dereferenceable(984) %63)
  call void @llvm.lifetime.start.p0(i64 3632, ptr nonnull %7) #9
  %64 = getelementptr inbounds i8, ptr %0, i64 1656
  invoke void @_ZN7DynexCN4coreC1ERKNS_8CurrencyEPNS_13i_cn_protocolERN7Logging7ILoggerEb(ptr noundef nonnull align 8 dereferenceable(3632) %7, ptr noundef nonnull align 8 dereferenceable(984) %6, ptr noundef null, ptr noundef nonnull align 8 dereferenceable(8) %64, i1 noundef zeroext true)
          to label %65 unwind label %82

65:                                               ; preds = %62
  call void @llvm.lifetime.start.p0(i64 312, ptr nonnull %8) #9
  %66 = load ptr, ptr %0, align 8, !tbaa !88
  invoke void @_ZN7DynexCN22DynexCNProtocolHandlerC1ERKNS_8CurrencyERN6System10DispatcherERNS_5ICoreEPNS_12IP2pEndpointERN7Logging7ILoggerE(ptr noundef nonnull align 8 dereferenceable(312) %8, ptr noundef nonnull align 8 dereferenceable(984) %6, ptr noundef nonnull align 16 dereferenceable(440) %66, ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef null, ptr noundef nonnull align 8 dereferenceable(8) %64)
          to label %67 unwind label %84

67:                                               ; preds = %65
  call void @llvm.lifetime.start.p0(i64 920, ptr nonnull %9) #9
  %68 = load ptr, ptr %0, align 8, !tbaa !88
  invoke void @_ZN7DynexCN10NodeServerC1ERN6System10DispatcherERNS_22DynexCNProtocolHandlerERN7Logging7ILoggerE(ptr noundef nonnull align 8 dereferenceable(920) %9, ptr noundef nonnull align 16 dereferenceable(440) %68, ptr noundef nonnull align 8 dereferenceable(312) %8, ptr noundef nonnull align 8 dereferenceable(8) %64)
          to label %69 unwind label %86

69:                                               ; preds = %67
  call void @llvm.lifetime.start.p0(i64 488, ptr nonnull %10) #9
  %70 = load ptr, ptr %0, align 8, !tbaa !88
  %71 = getelementptr inbounds i8, ptr %8, i64 8
  invoke void @_ZN7DynexCN9RpcServerC1ERN6System10DispatcherERN7Logging7ILoggerERNS_4coreERNS_10NodeServerERNS_21IDynexCNProtocolQueryE(ptr noundef nonnull align 8 dereferenceable(488) %10, ptr noundef nonnull align 16 dereferenceable(440) %70, ptr noundef nonnull align 8 dereferenceable(8) %64, ptr noundef nonnull align 8 dereferenceable(3632) %7, ptr noundef nonnull align 8 dereferenceable(920) %9, ptr noundef nonnull align 8 dereferenceable(8) %71)
          to label %72 unwind label %88

72:                                               ; preds = %69
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %11) #9
  invoke void @_ZN7DynexCN11CheckpointsC1ERN7Logging7ILoggerE(ptr noundef nonnull align 8 dereferenceable(88) %11, ptr noundef nonnull align 8 dereferenceable(8) %64)
          to label %73 unwind label %90

73:                                               ; preds = %72
  %74 = getelementptr inbounds i8, ptr %0, i64 357
  %75 = load i8, ptr %74, align 1, !tbaa !89, !range !86, !noundef !87
  %76 = trunc nuw i8 %75 to i1
  br i1 %76, label %.loopexit, label %77

77:                                               ; preds = %73
  %78 = call noundef ptr @_ZNKSt16initializer_listIN7DynexCN14CheckpointDataEE5beginEv(ptr noundef nonnull align 8 dereferenceable(16) @_ZN7DynexCNL11CHECKPOINTSE) #9
  %79 = call noundef ptr @_ZNKSt16initializer_listIN7DynexCN14CheckpointDataEE3endEv(ptr noundef nonnull align 8 dereferenceable(16) @_ZN7DynexCNL11CHECKPOINTSE) #9
  %.not98 = icmp eq ptr %78, %79
  br i1 %.not98, label %.loopexit, label %.lr.ph

80:                                               ; preds = %60
  %81 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %5) #9
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %5) #9
  br label %269

82:                                               ; preds = %62
  %83 = landingpad { ptr, i32 }
          cleanup
  br label %268

84:                                               ; preds = %65
  %85 = landingpad { ptr, i32 }
          cleanup
  br label %267

86:                                               ; preds = %67
  %87 = landingpad { ptr, i32 }
          cleanup
  br label %266

88:                                               ; preds = %69
  %89 = landingpad { ptr, i32 }
          cleanup
  br label %265

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

.lr.ph:                                           ; preds = %77, %97
  %.04999 = phi ptr [ %98, %97 ], [ %78, %77 ]
  %92 = load i32, ptr %.04999, align 8, !tbaa !90
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %12) #9
  %93 = getelementptr inbounds i8, ptr %.04999, i64 8
  %94 = load ptr, ptr %93, align 8, !tbaa !92
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %13) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef %94, ptr noundef nonnull align 1 dereferenceable(1) %13)
          to label %95 unwind label %99

95:                                               ; preds = %.lr.ph
  %96 = invoke noundef zeroext i1 @_ZN7DynexCN11Checkpoints14add_checkpointEjRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(88) %11, i32 noundef %92, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %97 unwind label %101

97:                                               ; preds = %95
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %13) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #9
  %98 = getelementptr inbounds i8, ptr %.04999, i64 16
  %.not = icmp eq ptr %98, %79
  br i1 %.not, label %.loopexit, label %.lr.ph

99:                                               ; preds = %.lr.ph
  %100 = landingpad { ptr, i32 }
          cleanup
  br label %103

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

103:                                              ; preds = %101, %99
  %.pn53 = phi { ptr, i32 } [ %102, %101 ], [ %100, %99 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %13) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #9
  br label %263

.loopexit:                                        ; preds = %97, %77, %73
  %104 = load i8, ptr %74, align 1, !tbaa !89, !range !86, !noundef !87
  %105 = trunc nuw i8 %104 to i1
  %106 = invoke noundef zeroext i1 @_ZN7DynexCN11Checkpoints28load_checkpoints_from_remoteEb(ptr noundef nonnull align 8 dereferenceable(88) %11, i1 noundef zeroext %105)
          to label %107 unwind label %120

107:                                              ; preds = %.loopexit
  invoke void @_ZN7DynexCN4core15set_checkpointsEONS_11CheckpointsE(ptr noundef nonnull align 8 dereferenceable(3632) %7, ptr noundef nonnull align 8 dereferenceable(88) %11)
          to label %108 unwind label %120

108:                                              ; preds = %107
  invoke void @_ZN7DynexCN22DynexCNProtocolHandler16set_p2p_endpointEPNS_12IP2pEndpointE(ptr noundef nonnull align 8 dereferenceable(312) %8, ptr noundef nonnull %9)
          to label %109 unwind label %120

109:                                              ; preds = %108
  invoke void @_ZN7DynexCN4core23set_cryptonote_protocolEPNS_13i_cn_protocolE(ptr noundef nonnull align 8 dereferenceable(3632) %7, ptr noundef nonnull %8)
          to label %110 unwind label %120

110:                                              ; preds = %109
  call void @llvm.lifetime.start.p0(i64 432, ptr nonnull %14) #9
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.Logging::LoggerMessage") align 8 %14, ptr noundef nonnull align 8 dereferenceable(40) %1, i32 noundef 3, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging7DEFAULTB5cxx11E)
          to label %111 unwind label %122

111:                                              ; preds = %110
  %112 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA21_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %14, ptr noundef nonnull align 1 dereferenceable(21) @.str.25)
          to label %113 unwind label %124

113:                                              ; preds = %111
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %14) #9
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %14) #9
  %114 = getelementptr inbounds i8, ptr %0, i64 368
  %115 = invoke noundef zeroext i1 @_ZN7DynexCN10NodeServer4initERKNS_13NetNodeConfigE(ptr noundef nonnull align 8 dereferenceable(920) %9, ptr noundef nonnull align 8 dereferenceable(209) %114)
          to label %116 unwind label %120

116:                                              ; preds = %113
  br i1 %115, label %129, label %117

117:                                              ; preds = %116
  %118 = call ptr @__cxa_allocate_exception(i64 16) #9
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %118, ptr noundef nonnull @.str.26)
          to label %119 unwind label %127

119:                                              ; preds = %117
  invoke void @__cxa_throw(ptr nonnull %118, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #10
          to label %270 unwind label %120

120:                                              ; preds = %132, %119, %113, %109, %108, %107, %.loopexit
  %121 = landingpad { ptr, i32 }
          cleanup
  br label %263

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

124:                                              ; preds = %111
  %125 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %14) #9
  br label %126

126:                                              ; preds = %124, %122
  %.pn55 = phi { ptr, i32 } [ %125, %124 ], [ %123, %122 ]
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %14) #9
  br label %263

127:                                              ; preds = %117
  %128 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %118) #9
  br label %263

129:                                              ; preds = %116
  call void @llvm.lifetime.start.p0(i64 432, ptr nonnull %15) #9
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.Logging::LoggerMessage") align 8 %15, ptr noundef nonnull align 8 dereferenceable(40) %1, i32 noundef 3, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging7DEFAULTB5cxx11E)
          to label %130 unwind label %155

130:                                              ; preds = %129
  %131 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA18_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %15, ptr noundef nonnull align 1 dereferenceable(18) @.str.27)
          to label %132 unwind label %157

132:                                              ; preds = %130
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %15) #9
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %15) #9
  %133 = invoke noundef zeroext i1 @_ZN7DynexCN4core4initERKNS_10CoreConfigEb(ptr noundef nonnull align 8 dereferenceable(3632) %7, ptr noundef nonnull align 8 dereferenceable(33) %34, i1 noundef zeroext true)
          to label %134 unwind label %120

134:                                              ; preds = %132
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %16) #9
  invoke void @_ZNSt7promiseISt10error_codeEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %16)
          to label %135 unwind label %160

135:                                              ; preds = %134
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %17) #9
  invoke void @_ZNSt7promiseISt10error_codeE10get_futureEv(ptr dead_on_unwind nonnull writable sret(%"class.std::future") align 8 %17, ptr noundef nonnull align 8 dereferenceable(24) %16)
          to label %136 unwind label %162

136:                                              ; preds = %135
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #9
  %137 = invoke noalias noundef nonnull dereferenceable(312) ptr @_Znwm(i64 noundef 312) #11
          to label %138 unwind label %164

138:                                              ; preds = %136
  invoke void @_ZN7DynexCN13InProcessNodeC1ERNS_5ICoreERNS_21IDynexCNProtocolQueryE(ptr noundef nonnull align 8 dereferenceable(312) %137, ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef nonnull align 8 dereferenceable(8) %71)
          to label %139 unwind label %166

139:                                              ; preds = %138
  call void @_ZNSt10unique_ptrIN7DynexCN5INodeESt14default_deleteIS1_EEC2IS3_vEEPS1_(ptr noundef nonnull align 8 dereferenceable(8) %18, ptr noundef nonnull %137) #9
  %140 = call noundef ptr @_ZNKSt10unique_ptrIN7DynexCN5INodeESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %18) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %19) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %20) #9
  store ptr %16, ptr %20, align 8, !tbaa !93
  %141 = getelementptr inbounds i8, ptr %20, i64 8
  store ptr %1, ptr %141, align 8, !tbaa !93
  call void @"_ZNSt8functionIFvSt10error_codeEEC2IZN18PaymentGateService12runInProcessERN7Logging9LoggerRefEE3$_0vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef nonnull align 8 dereferenceable(16) %20) #9
  %142 = load ptr, ptr %140, align 8, !tbaa !94
  %143 = getelementptr inbounds i8, ptr %142, i64 32
  %144 = load ptr, ptr %143, align 8
  invoke void %144(ptr noundef nonnull align 8 dereferenceable(8) %140, ptr noundef nonnull align 8 dereferenceable(32) %19)
          to label %145 unwind label %168

145:                                              ; preds = %139
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %20) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %21) #9
  %146 = invoke { i32, ptr } @_ZNSt6futureISt10error_codeE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %17)
          to label %147 unwind label %170

147:                                              ; preds = %145
  %148 = extractvalue { i32, ptr } %146, 0
  store i32 %148, ptr %21, align 8
  %149 = getelementptr inbounds i8, ptr %21, i64 8
  %150 = extractvalue { i32, ptr } %146, 1
  store ptr %150, ptr %149, align 8
  %151 = call noundef zeroext i1 @_ZNKSt10error_codecvbEv(ptr noundef nonnull align 8 dereferenceable(16) %21) #9
  br i1 %151, label %152, label %174

152:                                              ; preds = %147
  %153 = call ptr @__cxa_allocate_exception(i64 32) #9
  %.sroa.0.0.copyload = load i32, ptr %21, align 8, !tbaa !96
  %.sroa.21.0.copyload = load ptr, ptr %149, align 8, !tbaa !93
  invoke void @_ZNSt12system_errorC2ESt10error_code(ptr noundef nonnull align 8 dereferenceable(32) %153, i32 %.sroa.0.0.copyload, ptr %.sroa.21.0.copyload)
          to label %154 unwind label %172

154:                                              ; preds = %152
  invoke void @__cxa_throw(ptr nonnull %153, ptr nonnull @_ZTISt12system_error, ptr nonnull @_ZNSt12system_errorD1Ev) #10
          to label %270 unwind label %170

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

157:                                              ; preds = %130
  %158 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %15) #9
  br label %159

159:                                              ; preds = %157, %155
  %.pn57 = phi { ptr, i32 } [ %158, %157 ], [ %156, %155 ]
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %15) #9
  br label %263

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

162:                                              ; preds = %135
  %163 = landingpad { ptr, i32 }
          cleanup
  br label %261

164:                                              ; preds = %136
  %165 = landingpad { ptr, i32 }
          cleanup
  br label %260

166:                                              ; preds = %138
  %167 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %137, i64 noundef 312) #12
  br label %260

168:                                              ; preds = %139
  %169 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %20) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #9
  br label %259

170:                                              ; preds = %154, %145
  %171 = landingpad { ptr, i32 }
          cleanup
  br label %258

172:                                              ; preds = %152
  %173 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %153) #9
  br label %258

174:                                              ; preds = %147
  call void @llvm.lifetime.start.p0(i64 432, ptr nonnull %22) #9
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.Logging::LoggerMessage") align 8 %22, ptr noundef nonnull align 8 dereferenceable(40) %1, i32 noundef 3, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging7DEFAULTB5cxx11E)
          to label %175 unwind label %221

175:                                              ; preds = %174
  %176 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA29_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %22, ptr noundef nonnull align 1 dereferenceable(29) @.str.28)
          to label %177 unwind label %223

177:                                              ; preds = %175
  %178 = getelementptr inbounds i8, ptr %0, i64 624
  %179 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEOT_S9_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %176, ptr noundef nonnull align 8 dereferenceable(32) %178)
          to label %180 unwind label %223

180:                                              ; preds = %177
  %181 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA2_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %179, ptr noundef nonnull align 1 dereferenceable(2) @.str.29)
          to label %182 unwind label %223

182:                                              ; preds = %180
  %183 = getelementptr inbounds i8, ptr %0, i64 656
  %184 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEtEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %181, ptr noundef nonnull align 2 dereferenceable(2) %183)
          to label %185 unwind label %223

185:                                              ; preds = %182
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %22) #9
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %22) #9
  %186 = load i16, ptr %183, align 8, !tbaa !97
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %23) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %24) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef nonnull @.str.30, ptr noundef nonnull align 1 dereferenceable(1) %24)
          to label %187 unwind label %226

187:                                              ; preds = %185
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %25) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %26) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef nonnull @.str.30, ptr noundef nonnull align 1 dereferenceable(1) %26)
          to label %188 unwind label %228

188:                                              ; preds = %187
  invoke void @_ZN7DynexCN10HttpServer5startERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEtS8_S8_(ptr noundef nonnull align 8 dereferenceable(208) %10, ptr noundef nonnull align 8 dereferenceable(32) %178, i16 noundef zeroext %186, ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef nonnull align 8 dereferenceable(32) %25)
          to label %189 unwind label %230

189:                                              ; preds = %188
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %26) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %24) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #9
  call void @llvm.lifetime.start.p0(i64 432, ptr nonnull %27) #9
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.Logging::LoggerMessage") align 8 %27, ptr noundef nonnull align 8 dereferenceable(40) %1, i32 noundef 3, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging7DEFAULTB5cxx11E)
          to label %190 unwind label %234

190:                                              ; preds = %189
  %191 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA27_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %27, ptr noundef nonnull align 1 dereferenceable(27) @.str.31)
          to label %192 unwind label %236

192:                                              ; preds = %190
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %27) #9
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %27) #9
  call void @llvm.lifetime.start.p0(i64 432, ptr nonnull %28) #9
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.Logging::LoggerMessage") align 8 %28, ptr noundef nonnull align 8 dereferenceable(40) %1, i32 noundef 3, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging7DEFAULTB5cxx11E)
          to label %193 unwind label %239

193:                                              ; preds = %192
  %194 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA20_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %28, ptr noundef nonnull align 1 dereferenceable(20) @.str.32)
          to label %195 unwind label %241

195:                                              ; preds = %193
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %28) #9
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %28) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %29) #9
  %196 = load ptr, ptr %0, align 8, !tbaa !88
  invoke void @_ZN6System5EventC1ERNS_10DispatcherE(ptr noundef nonnull align 8 dereferenceable(32) %29, ptr noundef nonnull align 16 dereferenceable(440) %196)
          to label %197 unwind label %244

197:                                              ; preds = %195
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %30) #9
  %198 = load ptr, ptr %0, align 8, !tbaa !88
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %31) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %32) #9
  store ptr %29, ptr %32, align 8, !tbaa !93
  %199 = getelementptr inbounds i8, ptr %32, i64 8
  store ptr %9, ptr %199, align 8, !tbaa !93
  call void @"_ZNSt8functionIFvvEEC2IZN18PaymentGateService12runInProcessERN7Logging9LoggerRefEE3$_1vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %31, ptr noundef nonnull align 8 dereferenceable(16) %32) #9
  invoke void @_ZN6System7ContextIvEC2ERNS_10DispatcherEOSt8functionIFvvEE(ptr noundef nonnull align 8 dereferenceable(88) %30, ptr noundef nonnull align 16 dereferenceable(440) %198, ptr noundef nonnull align 8 dereferenceable(32) %31)
          to label %200 unwind label %246

200:                                              ; preds = %197
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %32) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #9
  invoke void @_ZN6System5Event4waitEv(ptr noundef nonnull align 8 dereferenceable(32) %29)
          to label %201 unwind label %248

201:                                              ; preds = %200
  %202 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt10unique_ptrIN7DynexCN5INodeESt14default_deleteIS1_EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %18) #9
  invoke void @_ZN18PaymentGateService16runWalletServiceERKN7DynexCN8CurrencyERNS0_5INodeE(ptr noundef nonnull align 8 dereferenceable(2568) %0, ptr noundef nonnull align 8 dereferenceable(984) %6, ptr noundef nonnull align 8 dereferenceable(8) %202)
          to label %203 unwind label %248

203:                                              ; preds = %201
  call void @llvm.lifetime.start.p0(i64 432, ptr nonnull %33) #9
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.Logging::LoggerMessage") align 8 %33, ptr noundef nonnull align 8 dereferenceable(40) %1, i32 noundef 3, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging7DEFAULTB5cxx11E)
          to label %204 unwind label %250

204:                                              ; preds = %203
  %205 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA28_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %33, ptr noundef nonnull align 1 dereferenceable(28) @.str.33)
          to label %206 unwind label %252

206:                                              ; preds = %204
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %33) #9
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %33) #9
  invoke void @_ZN7DynexCN10HttpServer4stopEv(ptr noundef nonnull align 8 dereferenceable(208) %10)
          to label %207 unwind label %248

207:                                              ; preds = %206
  %208 = invoke noundef zeroext i1 @_ZN7DynexCN10NodeServer14sendStopSignalEv(ptr noundef nonnull align 8 dereferenceable(920) %9)
          to label %209 unwind label %248

209:                                              ; preds = %207
  invoke void @_ZN6System7ContextIvE3getEv(ptr noundef nonnull align 8 dereferenceable(88) %30)
          to label %210 unwind label %248

210:                                              ; preds = %209
  %211 = call noundef ptr @_ZNKSt10unique_ptrIN7DynexCN5INodeESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %18) #9
  %212 = load ptr, ptr %211, align 8, !tbaa !94
  %213 = getelementptr inbounds i8, ptr %212, i64 40
  %214 = load ptr, ptr %213, align 8
  %215 = invoke noundef zeroext i1 %214(ptr noundef nonnull align 8 dereferenceable(8) %211)
          to label %216 unwind label %248

216:                                              ; preds = %210
  %217 = invoke noundef zeroext i1 @_ZN7DynexCN4core6deinitEv(ptr noundef nonnull align 8 dereferenceable(3632) %7)
          to label %218 unwind label %248

218:                                              ; preds = %216
  %219 = invoke noundef zeroext i1 @_ZN7DynexCN10NodeServer6deinitEv(ptr noundef nonnull align 8 dereferenceable(920) %9)
          to label %220 unwind label %248

220:                                              ; preds = %218
  call void @_ZN6System7ContextIvED2Ev(ptr noundef nonnull align 8 dereferenceable(88) %30) #9
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %30) #9
  call void @_ZN6System5EventD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %21) #9
  call void @_ZNSt10unique_ptrIN7DynexCN5INodeESt14default_deleteIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %18) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #9
  call void @_ZNSt14__basic_futureISt10error_codeED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %17) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %17) #9
  call void @_ZNSt7promiseISt10error_codeED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %16) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %16) #9
  call void @_ZN7DynexCN11CheckpointsD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %11) #9
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %11) #9
  call void @_ZN7DynexCN9RpcServerD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %10) #9
  call void @llvm.lifetime.end.p0(i64 488, ptr nonnull %10) #9
  call void @_ZN7DynexCN10NodeServerD2Ev(ptr noundef nonnull align 8 dereferenceable(920) %9) #9
  call void @llvm.lifetime.end.p0(i64 920, ptr nonnull %9) #9
  call void @_ZN7DynexCN22DynexCNProtocolHandlerD2Ev(ptr noundef nonnull align 8 dereferenceable(312) %8) #9
  call void @llvm.lifetime.end.p0(i64 312, ptr nonnull %8) #9
  call void @_ZN7DynexCN4coreD1Ev(ptr noundef nonnull align 8 dereferenceable(3632) %7) #9
  call void @llvm.lifetime.end.p0(i64 3632, ptr nonnull %7) #9
  call void @_ZN7DynexCN8CurrencyD2Ev(ptr noundef nonnull align 8 dereferenceable(984) %6) #9
  call void @llvm.lifetime.end.p0(i64 984, ptr nonnull %6) #9
  ret void

221:                                              ; preds = %174
  %222 = landingpad { ptr, i32 }
          cleanup
  br label %225

223:                                              ; preds = %182, %180, %177, %175
  %224 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %22) #9
  br label %225

225:                                              ; preds = %223, %221
  %.pn59 = phi { ptr, i32 } [ %224, %223 ], [ %222, %221 ]
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %22) #9
  br label %258

226:                                              ; preds = %185
  %227 = landingpad { ptr, i32 }
          cleanup
  br label %233

228:                                              ; preds = %187
  %229 = landingpad { ptr, i32 }
          cleanup
  br label %232

230:                                              ; preds = %188
  %231 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #9
  br label %232

232:                                              ; preds = %230, %228
  %.pn61 = phi { ptr, i32 } [ %231, %230 ], [ %229, %228 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %26) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #9
  br label %233

233:                                              ; preds = %232, %226
  %.pn61.pn = phi { ptr, i32 } [ %.pn61, %232 ], [ %227, %226 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %24) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #9
  br label %258

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

236:                                              ; preds = %190
  %237 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %27) #9
  br label %238

238:                                              ; preds = %236, %234
  %.pn64 = phi { ptr, i32 } [ %237, %236 ], [ %235, %234 ]
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %27) #9
  br label %258

239:                                              ; preds = %192
  %240 = landingpad { ptr, i32 }
          cleanup
  br label %243

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

243:                                              ; preds = %241, %239
  %.pn66 = phi { ptr, i32 } [ %242, %241 ], [ %240, %239 ]
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %28) #9
  br label %258

244:                                              ; preds = %195
  %245 = landingpad { ptr, i32 }
          cleanup
  br label %257

246:                                              ; preds = %197
  %247 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %32) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #9
  br label %256

248:                                              ; preds = %218, %216, %210, %209, %207, %206, %201, %200
  %249 = landingpad { ptr, i32 }
          cleanup
  br label %255

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

252:                                              ; preds = %204
  %253 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %33) #9
  br label %254

254:                                              ; preds = %252, %250
  %.pn68 = phi { ptr, i32 } [ %253, %252 ], [ %251, %250 ]
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %33) #9
  br label %255

255:                                              ; preds = %254, %248
  %.pn70 = phi { ptr, i32 } [ %249, %248 ], [ %.pn68, %254 ]
  call void @_ZN6System7ContextIvED2Ev(ptr noundef nonnull align 8 dereferenceable(88) %30) #9
  br label %256

256:                                              ; preds = %255, %246
  %.pn70.pn = phi { ptr, i32 } [ %.pn70, %255 ], [ %247, %246 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %30) #9
  call void @_ZN6System5EventD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #9
  br label %257

257:                                              ; preds = %256, %244
  %.pn70.pn.pn = phi { ptr, i32 } [ %.pn70.pn, %256 ], [ %245, %244 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #9
  br label %258

258:                                              ; preds = %257, %243, %238, %233, %225, %172, %170
  %.pn74 = phi { ptr, i32 } [ %171, %170 ], [ %173, %172 ], [ %.pn70.pn.pn, %257 ], [ %.pn66, %243 ], [ %.pn64, %238 ], [ %.pn61.pn, %233 ], [ %.pn59, %225 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %21) #9
  br label %259

259:                                              ; preds = %258, %168
  %.pn74.pn = phi { ptr, i32 } [ %.pn74, %258 ], [ %169, %168 ]
  call void @_ZNSt10unique_ptrIN7DynexCN5INodeESt14default_deleteIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %18) #9
  br label %260

260:                                              ; preds = %259, %166, %164
  %.pn74.pn.pn = phi { ptr, i32 } [ %.pn74.pn, %259 ], [ %167, %166 ], [ %165, %164 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #9
  call void @_ZNSt14__basic_futureISt10error_codeED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %17) #9
  br label %261

261:                                              ; preds = %260, %162
  %.pn74.pn.pn.pn = phi { ptr, i32 } [ %.pn74.pn.pn, %260 ], [ %163, %162 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %17) #9
  call void @_ZNSt7promiseISt10error_codeED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %16) #9
  br label %262

262:                                              ; preds = %261, %160
  %.pn74.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn74.pn.pn.pn, %261 ], [ %161, %160 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %16) #9
  br label %263

263:                                              ; preds = %262, %159, %127, %126, %120, %103
  %.pn74.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn74.pn.pn.pn.pn, %262 ], [ %121, %120 ], [ %.pn57, %159 ], [ %128, %127 ], [ %.pn55, %126 ], [ %.pn53, %103 ]
  call void @_ZN7DynexCN11CheckpointsD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %11) #9
  br label %264

264:                                              ; preds = %263, %90
  %.pn74.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn74.pn.pn.pn.pn.pn, %263 ], [ %91, %90 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %11) #9
  call void @_ZN7DynexCN9RpcServerD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %10) #9
  br label %265

265:                                              ; preds = %264, %88
  %.pn74.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn74.pn.pn.pn.pn.pn.pn, %264 ], [ %89, %88 ]
  call void @llvm.lifetime.end.p0(i64 488, ptr nonnull %10) #9
  call void @_ZN7DynexCN10NodeServerD2Ev(ptr noundef nonnull align 8 dereferenceable(920) %9) #9
  br label %266

266:                                              ; preds = %265, %86
  %.pn74.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn74.pn.pn.pn.pn.pn.pn.pn, %265 ], [ %87, %86 ]
  call void @llvm.lifetime.end.p0(i64 920, ptr nonnull %9) #9
  call void @_ZN7DynexCN22DynexCNProtocolHandlerD2Ev(ptr noundef nonnull align 8 dereferenceable(312) %8) #9
  br label %267

267:                                              ; preds = %266, %84
  %.pn74.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn74.pn.pn.pn.pn.pn.pn.pn.pn, %266 ], [ %85, %84 ]
  call void @llvm.lifetime.end.p0(i64 312, ptr nonnull %8) #9
  call void @_ZN7DynexCN4coreD1Ev(ptr noundef nonnull align 8 dereferenceable(3632) %7) #9
  br label %268

268:                                              ; preds = %267, %82
  %.pn74.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn74.pn.pn.pn.pn.pn.pn.pn.pn.pn, %267 ], [ %83, %82 ]
  call void @llvm.lifetime.end.p0(i64 3632, ptr nonnull %7) #9
  call void @_ZN7DynexCN8CurrencyD2Ev(ptr noundef nonnull align 8 dereferenceable(984) %6) #9
  call void @llvm.lifetime.end.p0(i64 984, ptr nonnull %6) #9
  br label %269

269:                                              ; preds = %57, %46, %59, %48, %268, %80
  %.pn74.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn74.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %268 ], [ %81, %80 ], [ %.pn5195, %59 ], [ %58, %57 ], [ %.pn89, %48 ], [ %47, %46 ]
  resume { ptr, i32 } %.pn74.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn

270:                                              ; preds = %154, %119, %55, %44
  unreachable
}

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

declare noundef zeroext i1 @_ZN5Tools15directoryExistsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #3

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

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

declare void @_ZN7DynexCN4coreC1ERKNS_8CurrencyEPNS_13i_cn_protocolERN7Logging7ILoggerEb(ptr noundef nonnull align 8 dereferenceable(3632), ptr noundef nonnull align 8 dereferenceable(984), ptr noundef, ptr noundef nonnull align 8 dereferenceable(8), i1 noundef zeroext) unnamed_addr #3

declare void @_ZN7DynexCN22DynexCNProtocolHandlerC1ERKNS_8CurrencyERN6System10DispatcherERNS_5ICoreEPNS_12IP2pEndpointERN7Logging7ILoggerE(ptr noundef nonnull align 8 dereferenceable(312), ptr noundef nonnull align 8 dereferenceable(984), ptr noundef nonnull align 16 dereferenceable(440), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef, ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #3

declare void @_ZN7DynexCN10NodeServerC1ERN6System10DispatcherERNS_22DynexCNProtocolHandlerERN7Logging7ILoggerE(ptr noundef nonnull align 8 dereferenceable(920), ptr noundef nonnull align 16 dereferenceable(440), ptr noundef nonnull align 8 dereferenceable(312), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #3

declare void @_ZN7DynexCN9RpcServerC1ERN6System10DispatcherERN7Logging7ILoggerERNS_4coreERNS_10NodeServerERNS_21IDynexCNProtocolQueryE(ptr noundef nonnull align 8 dereferenceable(488), ptr noundef nonnull align 16 dereferenceable(440), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(3632), ptr noundef nonnull align 8 dereferenceable(920), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #3

declare void @_ZN7DynexCN11CheckpointsC1ERN7Logging7ILoggerE(ptr noundef nonnull align 8 dereferenceable(88), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #3

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

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

declare noundef zeroext i1 @_ZN7DynexCN11Checkpoints14add_checkpointEjRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(88), i32 noundef, ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #3

declare noundef zeroext i1 @_ZN7DynexCN11Checkpoints28load_checkpoints_from_remoteEb(ptr noundef nonnull align 8 dereferenceable(88), i1 noundef zeroext) local_unnamed_addr #3

declare void @_ZN7DynexCN4core15set_checkpointsEONS_11CheckpointsE(ptr noundef nonnull align 8 dereferenceable(3632), ptr noundef nonnull align 8 dereferenceable(88)) local_unnamed_addr #3

declare void @_ZN7DynexCN22DynexCNProtocolHandler16set_p2p_endpointEPNS_12IP2pEndpointE(ptr noundef nonnull align 8 dereferenceable(312), ptr noundef) local_unnamed_addr #3

declare void @_ZN7DynexCN4core23set_cryptonote_protocolEPNS_13i_cn_protocolE(ptr noundef nonnull align 8 dereferenceable(3632), ptr noundef) local_unnamed_addr #3

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

declare noundef zeroext i1 @_ZN7DynexCN10NodeServer4initERKNS_13NetNodeConfigE(ptr noundef nonnull align 8 dereferenceable(920), ptr noundef nonnull align 8 dereferenceable(209)) local_unnamed_addr #3

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

declare noundef zeroext i1 @_ZN7DynexCN4core4initERKNS_10CoreConfigEb(ptr noundef nonnull align 8 dereferenceable(3632), ptr noundef nonnull align 8 dereferenceable(33), i1 noundef zeroext) local_unnamed_addr #3

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt7promiseISt10error_codeE10get_futureEv(ptr dead_on_unwind noalias writable sret(%"class.std::future") align 8, ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #2 align 2

; Function Attrs: nobuiltin allocsize(0)
declare noundef nonnull ptr @_Znwm(i64 noundef) local_unnamed_addr #6

declare void @_ZN7DynexCN13InProcessNodeC1ERNS_5ICoreERNS_21IDynexCNProtocolQueryE(ptr noundef nonnull align 8 dereferenceable(312), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #3

; Function Attrs: nobuiltin nounwind
declare void @_ZdlPvm(ptr noundef, i64 noundef) local_unnamed_addr #7

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

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvSt10error_codeEEC2IZN18PaymentGateService12runInProcessERN7Logging9LoggerRefEE3$_0vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #1 align 2

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

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

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

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

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

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

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

declare void @_ZN7DynexCN10HttpServer5startERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEtS8_S8_(ptr noundef nonnull align 8 dereferenceable(208), ptr noundef nonnull align 8 dereferenceable(32), i16 noundef zeroext, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #3

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

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvvEEC2IZN18PaymentGateService12runInProcessERN7Logging9LoggerRefEE3$_1vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6System7ContextIvEC2ERNS_10DispatcherEOSt8functionIFvvEE(ptr noundef nonnull align 8 dereferenceable(88), ptr noundef nonnull align 16 dereferenceable(440), ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #2 align 2

declare void @_ZN6System5Event4waitEv(ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN18PaymentGateService16runWalletServiceERKN7DynexCN8CurrencyERNS0_5INodeE(ptr noundef nonnull align 8 dereferenceable(2568), ptr noundef nonnull align 8 dereferenceable(984), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #2 align 2

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

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

declare void @_ZN7DynexCN10HttpServer4stopEv(ptr noundef nonnull align 8 dereferenceable(208)) local_unnamed_addr #3

declare noundef zeroext i1 @_ZN7DynexCN10NodeServer14sendStopSignalEv(ptr noundef nonnull align 8 dereferenceable(920)) local_unnamed_addr #3

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

declare noundef zeroext i1 @_ZN7DynexCN4core6deinitEv(ptr noundef nonnull align 8 dereferenceable(3632)) local_unnamed_addr #3

declare noundef zeroext i1 @_ZN7DynexCN10NodeServer6deinitEv(ptr noundef nonnull align 8 dereferenceable(920)) local_unnamed_addr #3

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

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

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

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

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

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

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

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

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

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

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

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

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { "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 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { nobuiltin allocsize(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 = { nobuiltin nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { 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 #9 = { nounwind }
attributes #10 = { noreturn }
attributes #11 = { builtin allocsize(0) }
attributes #12 = { builtin 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, !11, i64 616}
!6 = !{!"_ZTS18PaymentGateService", !7, i64 0, !7, i64 8, !10, i64 16, !7, i64 664, !28, i64 672, !58, i64 1656, !74, i64 1776, !82, i64 2288, !85, i64 2432}
!7 = !{!"any pointer", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!"_ZTSN14PaymentService20ConfigurationManagerE", !11, i64 0, !12, i64 8, !17, i64 352, !26, i64 568, !27, i64 608}
!11 = !{!"bool", !8, i64 0}
!12 = !{!"_ZTSN14PaymentService13ConfigurationE", !13, i64 0, !16, i64 32, !13, i64 40, !13, i64 72, !13, i64 104, !13, i64 136, !13, i64 168, !13, i64 200, !13, i64 232, !13, i64 264, !13, i64 296, !11, i64 328, !11, i64 329, !11, i64 330, !11, i64 331, !11, i64 332, !11, i64 333, !11, i64 334, !15, i64 336}
!13 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !14, i64 0, !15, i64 8, !8, i64 16}
!14 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !7, i64 0}
!15 = !{!"long", !8, i64 0}
!16 = !{!"short", !8, i64 0}
!17 = !{!"_ZTSN7DynexCN13NetNodeConfigE", !13, i64 0, !16, i64 32, !16, i64 34, !11, i64 36, !18, i64 40, !22, i64 64, !22, i64 88, !22, i64 112, !11, i64 136, !13, i64 144, !13, i64 176, !11, i64 208}
!18 = !{!"_ZTSSt6vectorIN7DynexCN13PeerlistEntryESaIS1_EE", !19, i64 0}
!19 = !{!"_ZTSSt12_Vector_baseIN7DynexCN13PeerlistEntryESaIS1_EE", !20, i64 0}
!20 = !{!"_ZTSNSt12_Vector_baseIN7DynexCN13PeerlistEntryESaIS1_EE12_Vector_implE", !21, i64 0}
!21 = !{!"_ZTSNSt12_Vector_baseIN7DynexCN13PeerlistEntryESaIS1_EE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!22 = !{!"_ZTSSt6vectorIN7DynexCN14NetworkAddressESaIS1_EE", !23, i64 0}
!23 = !{!"_ZTSSt12_Vector_baseIN7DynexCN14NetworkAddressESaIS1_EE", !24, i64 0}
!24 = !{!"_ZTSNSt12_Vector_baseIN7DynexCN14NetworkAddressESaIS1_EE12_Vector_implE", !25, i64 0}
!25 = !{!"_ZTSNSt12_Vector_baseIN7DynexCN14NetworkAddressESaIS1_EE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!26 = !{!"_ZTSN7DynexCN10CoreConfigE", !13, i64 0, !11, i64 32}
!27 = !{!"_ZTSN14PaymentService20RpcNodeConfigurationE", !13, i64 0, !16, i64 32}
!28 = !{!"_ZTSN7DynexCN15CurrencyBuilderE", !29, i64 0}
!29 = !{!"_ZTSN7DynexCN8CurrencyE", !15, i64 0, !15, i64 8, !15, i64 16, !15, i64 24, !15, i64 32, !15, i64 40, !15, i64 48, !15, i64 56, !15, i64 64, !15, i64 72, !15, i64 80, !15, i64 88, !15, i64 96, !30, i64 104, !15, i64 112, !15, i64 120, !15, i64 128, !15, i64 136, !15, i64 144, !15, i64 152, !15, i64 160, !15, i64 168, !15, i64 176, !15, i64 184, !15, i64 192, !15, i64 200, !15, i64 208, !15, i64 216, !15, i64 224, !15, i64 232, !15, i64 240, !15, i64 248, !15, i64 256, !15, i64 264, !15, i64 272, !15, i64 280, !15, i64 288, !15, i64 296, !15, i64 304, !15, i64 312, !15, i64 320, !15, i64 328, !30, i64 336, !30, i64 340, !30, i64 344, !30, i64 348, !30, i64 352, !30, i64 356, !13, i64 360, !13, i64 392, !13, i64 424, !13, i64 456, !13, i64 488, !11, i64 520, !31, i64 528, !33, i64 912, !57, i64 944}
!30 = !{!"int", !8, i64 0}
!31 = !{!"_ZTSN7DynexCN5BlockE", !32, i64 0, !34, i64 48, !39, i64 248, !35, i64 360}
!32 = !{!"_ZTSN7DynexCN11BlockHeaderE", !8, i64 0, !8, i64 1, !30, i64 4, !15, i64 8, !33, i64 16}
!33 = !{!"_ZTSN6Crypto4HashE", !8, i64 0}
!34 = !{!"_ZTSN7DynexCN11ParentBlockE", !8, i64 0, !8, i64 1, !33, i64 2, !16, i64 34, !35, i64 40, !39, i64 64, !35, i64 176}
!35 = !{!"_ZTSSt6vectorIN6Crypto4HashESaIS1_EE", !36, i64 0}
!36 = !{!"_ZTSSt12_Vector_baseIN6Crypto4HashESaIS1_EE", !37, i64 0}
!37 = !{!"_ZTSNSt12_Vector_baseIN6Crypto4HashESaIS1_EE12_Vector_implE", !38, i64 0}
!38 = !{!"_ZTSNSt12_Vector_baseIN6Crypto4HashESaIS1_EE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!39 = !{!"_ZTSN7DynexCN11TransactionE", !40, i64 0, !53, i64 88}
!40 = !{!"_ZTSN7DynexCN17TransactionPrefixE", !8, i64 0, !15, i64 8, !41, i64 16, !45, i64 40, !49, i64 64}
!41 = !{!"_ZTSSt6vectorIN5boost7variantIN7DynexCN9BaseInputEJNS2_8KeyInputENS2_19MultisignatureInputEEEESaIS6_EE", !42, i64 0}
!42 = !{!"_ZTSSt12_Vector_baseIN5boost7variantIN7DynexCN9BaseInputEJNS2_8KeyInputENS2_19MultisignatureInputEEEESaIS6_EE", !43, i64 0}
!43 = !{!"_ZTSNSt12_Vector_baseIN5boost7variantIN7DynexCN9BaseInputEJNS2_8KeyInputENS2_19MultisignatureInputEEEESaIS6_EE12_Vector_implE", !44, i64 0}
!44 = !{!"_ZTSNSt12_Vector_baseIN5boost7variantIN7DynexCN9BaseInputEJNS2_8KeyInputENS2_19MultisignatureInputEEEESaIS6_EE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!45 = !{!"_ZTSSt6vectorIN7DynexCN17TransactionOutputESaIS1_EE", !46, i64 0}
!46 = !{!"_ZTSSt12_Vector_baseIN7DynexCN17TransactionOutputESaIS1_EE", !47, i64 0}
!47 = !{!"_ZTSNSt12_Vector_baseIN7DynexCN17TransactionOutputESaIS1_EE12_Vector_implE", !48, i64 0}
!48 = !{!"_ZTSNSt12_Vector_baseIN7DynexCN17TransactionOutputESaIS1_EE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!49 = !{!"_ZTSSt6vectorIhSaIhEE", !50, i64 0}
!50 = !{!"_ZTSSt12_Vector_baseIhSaIhEE", !51, i64 0}
!51 = !{!"_ZTSNSt12_Vector_baseIhSaIhEE12_Vector_implE", !52, i64 0}
!52 = !{!"_ZTSNSt12_Vector_baseIhSaIhEE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!53 = !{!"_ZTSSt6vectorIS_IN6Crypto9SignatureESaIS1_EESaIS3_EE", !54, i64 0}
!54 = !{!"_ZTSSt12_Vector_baseISt6vectorIN6Crypto9SignatureESaIS2_EESaIS4_EE", !55, i64 0}
!55 = !{!"_ZTSNSt12_Vector_baseISt6vectorIN6Crypto9SignatureESaIS2_EESaIS4_EE12_Vector_implE", !56, i64 0}
!56 = !{!"_ZTSNSt12_Vector_baseISt6vectorIN6Crypto9SignatureESaIS2_EESaIS4_EE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!57 = !{!"_ZTSN7Logging9LoggerRefE", !7, i64 0, !13, i64 8}
!58 = !{!"_ZTSN7Logging11LoggerGroupE", !59, i64 0, !70, i64 96}
!59 = !{!"_ZTSN7Logging12CommonLoggerE", !60, i64 0, !61, i64 8, !69, i64 56, !13, i64 64}
!60 = !{!"_ZTSN7Logging7ILoggerE"}
!61 = !{!"_ZTSSt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS5_ESaIS5_EE", !62, i64 0}
!62 = !{!"_ZTSSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St9_IdentityIS5_ESt4lessIS5_ESaIS5_EE", !63, i64 0}
!63 = !{!"_ZTSNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St9_IdentityIS5_ESt4lessIS5_ESaIS5_EE13_Rb_tree_implIS9_Lb1EEE", !64, i64 0, !66, i64 8}
!64 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE", !65, i64 0}
!65 = !{!"_ZTSSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE"}
!66 = !{!"_ZTSSt15_Rb_tree_header", !67, i64 0, !15, i64 32}
!67 = !{!"_ZTSSt18_Rb_tree_node_base", !68, i64 0, !7, i64 8, !7, i64 16, !7, i64 24}
!68 = !{!"_ZTSSt14_Rb_tree_color", !8, i64 0}
!69 = !{!"_ZTSN7Logging5LevelE", !8, i64 0}
!70 = !{!"_ZTSSt6vectorIPN7Logging7ILoggerESaIS2_EE", !71, i64 0}
!71 = !{!"_ZTSSt12_Vector_baseIPN7Logging7ILoggerESaIS2_EE", !72, i64 0}
!72 = !{!"_ZTSNSt12_Vector_baseIPN7Logging7ILoggerESaIS2_EE12_Vector_implE", !73, i64 0}
!73 = !{!"_ZTSNSt12_Vector_baseIPN7Logging7ILoggerESaIS2_EE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!74 = !{!"_ZTSSt14basic_ofstreamIcSt11char_traitsIcEE", !75, i64 0, !76, i64 8}
!75 = !{!"_ZTSSo"}
!76 = !{!"_ZTSSt13basic_filebufIcSt11char_traitsIcEE", !77, i64 0, !8, i64 64, !79, i64 104, !80, i64 120, !81, i64 124, !81, i64 132, !81, i64 140, !7, i64 152, !15, i64 160, !11, i64 168, !11, i64 169, !11, i64 170, !8, i64 171, !7, i64 176, !7, i64 184, !11, i64 192, !7, i64 200, !7, i64 208, !15, i64 216, !7, i64 224, !7, i64 232}
!77 = !{!"_ZTSSt15basic_streambufIcSt11char_traitsIcEE", !7, i64 8, !7, i64 16, !7, i64 24, !7, i64 32, !7, i64 40, !7, i64 48, !78, i64 56}
!78 = !{!"_ZTSSt6locale", !7, i64 0}
!79 = !{!"_ZTSSt12__basic_fileIcE", !7, i64 0, !11, i64 8}
!80 = !{!"_ZTSSt13_Ios_Openmode", !8, i64 0}
!81 = !{!"_ZTS11__mbstate_t", !30, i64 0, !8, i64 4}
!82 = !{!"_ZTSN7Logging12StreamLoggerE", !59, i64 0, !7, i64 96, !83, i64 104}
!83 = !{!"_ZTSSt5mutex", !84, i64 0}
!84 = !{!"_ZTSSt12__mutex_base", !8, i64 0}
!85 = !{!"_ZTSN7Logging13ConsoleLoggerE", !59, i64 0, !83, i64 96}
!86 = !{i8 0, i8 2}
!87 = !{}
!88 = !{!6, !7, i64 0}
!89 = !{!6, !11, i64 357}
!90 = !{!91, !30, i64 0}
!91 = !{!"_ZTSN7DynexCN14CheckpointDataE", !30, i64 0, !7, i64 8}
!92 = !{!91, !7, i64 8}
!93 = !{!7, !7, i64 0}
!94 = !{!95, !95, i64 0}
!95 = !{!"vtable pointer", !9, i64 0}
!96 = !{!30, !30, i64 0}
!97 = !{!6, !16, i64 656}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,SROAPass,SimplifyCFGPass,TailCallElimPass