; LLVM IR from dynexcoin/Dynex :: src/Wallet (WalletGreen)

; 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::vector.312" = type { %"struct.std::_Vector_base.313" }
%"struct.std::_Vector_base.313" = type { %"struct.std::_Vector_base<DynexCN::WalletGreen::WalletOuts, std::allocator<DynexCN::WalletGreen::WalletOuts>>::_Vector_impl" }
%"struct.std::_Vector_base<DynexCN::WalletGreen::WalletOuts, std::allocator<DynexCN::WalletGreen::WalletOuts>>::_Vector_impl" = type { %"struct.std::_Vector_base<DynexCN::WalletGreen::WalletOuts, std::allocator<DynexCN::WalletGreen::WalletOuts>>::_Vector_impl_data" }
%"struct.std::_Vector_base<DynexCN::WalletGreen::WalletOuts, std::allocator<DynexCN::WalletGreen::WalletOuts>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.DynexCN::WalletGreen::WalletOuts" = type { ptr, %"class.std::vector.201" }
%"class.std::vector.201" = type { %"struct.std::_Vector_base.202" }
%"struct.std::_Vector_base.202" = type { %"struct.std::_Vector_base<DynexCN::TransactionOutputInformation, std::allocator<DynexCN::TransactionOutputInformation>>::_Vector_impl" }
%"struct.std::_Vector_base<DynexCN::TransactionOutputInformation, std::allocator<DynexCN::TransactionOutputInformation>>::_Vector_impl" = type { %"struct.std::_Vector_base<DynexCN::TransactionOutputInformation, std::allocator<DynexCN::TransactionOutputInformation>>::_Vector_impl_data" }
%"struct.std::_Vector_base<DynexCN::TransactionOutputInformation, std::allocator<DynexCN::TransactionOutputInformation>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.Crypto::KeyImage" = type { [32 x i8] }
%"class.std::vector.317" = type { %"struct.std::_Vector_base.318" }
%"struct.std::_Vector_base.318" = type { %"struct.std::_Vector_base<DynexCN::WalletGreen::OutputToTransfer, std::allocator<DynexCN::WalletGreen::OutputToTransfer>>::_Vector_impl" }
%"struct.std::_Vector_base<DynexCN::WalletGreen::OutputToTransfer, std::allocator<DynexCN::WalletGreen::OutputToTransfer>>::_Vector_impl" = type { %"struct.std::_Vector_base<DynexCN::WalletGreen::OutputToTransfer, std::allocator<DynexCN::WalletGreen::OutputToTransfer>>::_Vector_impl_data" }
%"struct.std::_Vector_base<DynexCN::WalletGreen::OutputToTransfer, std::allocator<DynexCN::WalletGreen::OutputToTransfer>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.__gnu_cxx::__normal_iterator.466" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.536" = type { ptr }
%"struct.DynexCN::AccountKeys" = type { %"struct.DynexCN::AccountPublicAddress", %"struct.Crypto::SecretKey", %"struct.Crypto::SecretKey" }
%"struct.DynexCN::AccountPublicAddress" = type { %"struct.Crypto::PublicKey", %"struct.Crypto::PublicKey" }
%"struct.Crypto::PublicKey" = type { [32 x i8] }
%"struct.Crypto::SecretKey" = type { [32 x i8] }
%"class.std::vector.537" = type { %"struct.std::_Vector_base.538" }
%"struct.std::_Vector_base.538" = type { %"struct.std::_Vector_base<Crypto::KeyImage, std::allocator<Crypto::KeyImage>>::_Vector_impl" }
%"struct.std::_Vector_base<Crypto::KeyImage, std::allocator<Crypto::KeyImage>>::_Vector_impl" = type { %"struct.std::_Vector_base<Crypto::KeyImage, std::allocator<Crypto::KeyImage>>::_Vector_impl_data" }
%"struct.std::_Vector_base<Crypto::KeyImage, std::allocator<Crypto::KeyImage>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.DynexCN::KeyPair" = type { %"struct.Crypto::PublicKey", %"struct.Crypto::SecretKey" }
%"struct.Crypto::Hash" = type { [32 x i8] }
%"class.std::vector.542" = type { %"struct.std::_Vector_base.543" }
%"struct.std::_Vector_base.543" = type { %"struct.std::_Vector_base<DynexCN::reserve_proof_entry, std::allocator<DynexCN::reserve_proof_entry>>::_Vector_impl" }
%"struct.std::_Vector_base<DynexCN::reserve_proof_entry, std::allocator<DynexCN::reserve_proof_entry>>::_Vector_impl" = type { %"struct.std::_Vector_base<DynexCN::reserve_proof_entry, std::allocator<DynexCN::reserve_proof_entry>>::_Vector_impl_data" }
%"struct.std::_Vector_base<DynexCN::reserve_proof_entry, std::allocator<DynexCN::reserve_proof_entry>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::allocator.544" = type { i8 }
%"struct.Crypto::KeyDerivation" = type { [32 x i8] }
%"class.std::vector.547" = type { %"struct.std::_Vector_base.548" }
%"struct.std::_Vector_base.548" = type { %"struct.std::_Vector_base<const Crypto::PublicKey *, std::allocator<const Crypto::PublicKey *>>::_Vector_impl" }
%"struct.std::_Vector_base<const Crypto::PublicKey *, std::allocator<const Crypto::PublicKey *>>::_Vector_impl" = type { %"struct.std::_Vector_base<const Crypto::PublicKey *, std::allocator<const Crypto::PublicKey *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<const Crypto::PublicKey *, std::allocator<const Crypto::PublicKey *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::initializer_list.552" = type { ptr, i64 }
%"class.std::allocator.549" = type { i8 }
%"struct.Crypto::Signature" = type { [64 x i8] }
%"struct.DynexCN::reserve_proof" = type { %"class.std::vector.542", %"struct.Crypto::Signature" }
%"class.__gnu_cxx::__normal_iterator.553" = type { ptr }
%"class.std::vector.135" = type { %"struct.std::_Vector_base.136" }
%"struct.std::_Vector_base.136" = 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 }
%"struct.DynexCN::WalletRecord" = type { %"struct.Crypto::PublicKey", %"struct.Crypto::SecretKey", ptr, i64, i64, i64 }
%"class.DynexCN::WalletGreen" = type { %"class.DynexCN::IWallet", %"class.DynexCN::ITransfersObserver", %"class.DynexCN::IBlockchainSynchronizerObserver", %"class.DynexCN::ITransfersSynchronizerObserver", %"class.DynexCN::IFusionManager", ptr, ptr, ptr, %"class.Logging::LoggerRef", i8, %"class.boost::multi_index::multi_index_container", %"class.Common::FileMappedVector", %"class.boost::multi_index::multi_index_container.7", %"class.boost::multi_index::multi_index_container.15", %"class.std::vector", %"class.std::unordered_map", %"class.std::map", i8, %"class.DynexCN::BlockchainSynchronizer", %"class.DynexCN::TransfersSyncronizer", %"class.System::Event", %"class.std::queue", %"class.System::Event", i32, %"class.std::__cxx11::basic_string", %"struct.Crypto::chacha8_key", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"struct.Crypto::PublicKey", %"struct.Crypto::SecretKey", i64, i64, i64, i32, %"class.boost::multi_index::multi_index_container.96" }
%"class.DynexCN::IWallet" = type { ptr }
%"class.DynexCN::ITransfersObserver" = type { ptr }
%"class.DynexCN::IBlockchainSynchronizerObserver" = type { ptr }
%"class.DynexCN::ITransfersSynchronizerObserver" = type { ptr }
%"class.DynexCN::IFusionManager" = type { ptr }
%"class.Logging::LoggerRef" = type { ptr, %"class.std::__cxx11::basic_string" }
%"class.boost::multi_index::multi_index_container" = type { [8 x i8], %"struct.boost::multi_index::detail::header_holder", %"class.boost::multi_index::detail::random_access_index", i64 }
%"struct.boost::multi_index::detail::header_holder" = type { ptr }
%"class.boost::multi_index::detail::random_access_index" = type { %"class.boost::multi_index::detail::hashed_index", %"class.boost::multi_index::detail::random_access_index_ptr_array" }
%"class.boost::multi_index::detail::hashed_index" = type { %"class.boost::multi_index::detail::hashed_index.5", [8 x i8], %"class.boost::multi_index::detail::bucket_array", float, i64 }
%"class.boost::multi_index::detail::hashed_index.5" = 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.boost::multi_index::detail::random_access_index_ptr_array" = type { i64, i64, %"struct.boost::multi_index::detail::auto_space.6" }
%"struct.boost::multi_index::detail::auto_space.6" = type { [8 x i8], i64, ptr }
%"class.Common::FileMappedVector" = type <{ %"class.std::__cxx11::basic_string", %"class.System::MemoryMappedFile", i64, i64, i8, [7 x i8] }>
%"class.System::MemoryMappedFile" = type { i32, %"class.std::__cxx11::basic_string", i64, ptr }
%"class.boost::multi_index::multi_index_container.7" = type { [8 x i8], %"struct.boost::multi_index::detail::header_holder.9", %"class.boost::multi_index::detail::ordered_index.base", i64 }
%"struct.boost::multi_index::detail::header_holder.9" = 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.10", [2 x i8] }>
%"class.boost::multi_index::detail::hashed_index.10" = type { [8 x i8], %"class.boost::multi_index::detail::bucket_array.13", float, i64 }
%"class.boost::multi_index::detail::bucket_array.13" = type { i64, %"struct.boost::multi_index::detail::auto_space.14" }
%"struct.boost::multi_index::detail::auto_space.14" = type { [8 x i8], i64, ptr }
%"class.boost::multi_index::multi_index_container.15" = type { [8 x i8], %"struct.boost::multi_index::detail::header_holder.17", %"class.boost::multi_index::detail::random_access_index.18", i64 }
%"struct.boost::multi_index::detail::header_holder.17" = type { ptr }
%"class.boost::multi_index::detail::random_access_index.18" = type { %"class.boost::multi_index::detail::hashed_index.19", %"class.boost::multi_index::detail::random_access_index_ptr_array.26" }
%"class.boost::multi_index::detail::hashed_index.19" = type { [8 x i8], %"class.boost::multi_index::detail::bucket_array.24", float, i64 }
%"class.boost::multi_index::detail::bucket_array.24" = type { i64, %"struct.boost::multi_index::detail::auto_space.25" }
%"struct.boost::multi_index::detail::auto_space.25" = type { [8 x i8], i64, ptr }
%"class.boost::multi_index::detail::random_access_index_ptr_array.26" = type { i64, i64, %"struct.boost::multi_index::detail::auto_space.27" }
%"struct.boost::multi_index::detail::auto_space.27" = type { [8 x i8], i64, ptr }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<std::pair<unsigned long, DynexCN::WalletTransfer>, std::allocator<std::pair<unsigned long, DynexCN::WalletTransfer>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::pair<unsigned long, DynexCN::WalletTransfer>, std::allocator<std::pair<unsigned long, DynexCN::WalletTransfer>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::pair<unsigned long, DynexCN::WalletTransfer>, std::allocator<std::pair<unsigned long, DynexCN::WalletTransfer>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::pair<unsigned long, DynexCN::WalletTransfer>, std::allocator<std::pair<unsigned long, DynexCN::WalletTransfer>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::unordered_map" = type { %"class.std::_Hashtable" }
%"class.std::_Hashtable" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"struct.std::__detail::_Hash_node_base" = type { ptr }
%"struct.std::__detail::_Prime_rehash_policy" = type { float, i64 }
%"class.std::map" = type { %"class.std::_Rb_tree" }
%"class.std::_Rb_tree" = type { %"struct.std::_Rb_tree<unsigned long, std::pair<const unsigned long, DynexCN::Transaction>, std::_Select1st<std::pair<const unsigned long, DynexCN::Transaction>>, std::less<unsigned long>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<unsigned long, std::pair<const unsigned long, DynexCN::Transaction>, std::_Select1st<std::pair<const unsigned long, DynexCN::Transaction>>, std::less<unsigned long>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.std::_Rb_tree_header" = type { %"struct.std::_Rb_tree_node_base", i64 }
%"struct.std::_Rb_tree_node_base" = type { i32, ptr, ptr, ptr }
%"class.DynexCN::BlockchainSynchronizer" = type { %"class.DynexCN::IObservableImpl", %"class.DynexCN::INodeObserver", %"class.Logging::LoggerRef", %"class.std::map.44", ptr, %"struct.Crypto::Hash", %"struct.Crypto::Hash", i32, i32, %"class.std::unique_ptr", %"class.std::__cxx11::list", %"class.std::__cxx11::list.55", %"class.std::mutex", %"class.std::mutex", %"class.std::condition_variable" }
%"class.DynexCN::IObservableImpl" = type { %"class.DynexCN::IBlockchainSynchronizer", %"class.Tools::ObserverManager" }
%"class.DynexCN::IBlockchainSynchronizer" = type { %"class.DynexCN::IObservable", %"class.DynexCN::IStreamSerializable" }
%"class.DynexCN::IObservable" = type { ptr }
%"class.DynexCN::IStreamSerializable" = type { ptr }
%"class.Tools::ObserverManager" = type { %"class.std::vector.39", %"class.std::mutex" }
%"class.std::vector.39" = type { %"struct.std::_Vector_base.40" }
%"struct.std::_Vector_base.40" = type { %"struct.std::_Vector_base<DynexCN::IBlockchainSynchronizerObserver *, std::allocator<DynexCN::IBlockchainSynchronizerObserver *>>::_Vector_impl" }
%"struct.std::_Vector_base<DynexCN::IBlockchainSynchronizerObserver *, std::allocator<DynexCN::IBlockchainSynchronizerObserver *>>::_Vector_impl" = type { %"struct.std::_Vector_base<DynexCN::IBlockchainSynchronizerObserver *, std::allocator<DynexCN::IBlockchainSynchronizerObserver *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<DynexCN::IBlockchainSynchronizerObserver *, std::allocator<DynexCN::IBlockchainSynchronizerObserver *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.DynexCN::INodeObserver" = type { ptr }
%"class.std::map.44" = type { %"class.std::_Rb_tree.45" }
%"class.std::_Rb_tree.45" = type { %"struct.std::_Rb_tree<DynexCN::IBlockchainConsumer *, std::pair<DynexCN::IBlockchainConsumer *const, std::shared_ptr<DynexCN::SynchronizationState>>, std::_Select1st<std::pair<DynexCN::IBlockchainConsumer *const, std::shared_ptr<DynexCN::SynchronizationState>>>, std::less<DynexCN::IBlockchainConsumer *>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<DynexCN::IBlockchainConsumer *, std::pair<DynexCN::IBlockchainConsumer *const, std::shared_ptr<DynexCN::SynchronizationState>>, std::_Select1st<std::pair<DynexCN::IBlockchainConsumer *const, std::shared_ptr<DynexCN::SynchronizationState>>>, std::less<DynexCN::IBlockchainConsumer *>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"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" }
%"class.std::tuple" = type { %"struct.std::_Tuple_impl" }
%"struct.std::_Tuple_impl" = type { %"struct.std::_Head_base.51" }
%"struct.std::_Head_base.51" = type { ptr }
%"class.std::__cxx11::list" = type { %"class.std::__cxx11::_List_base" }
%"class.std::__cxx11::_List_base" = type { %"struct.std::__cxx11::_List_base<std::pair<const DynexCN::ITransactionReader *, std::promise<std::error_code>>, std::allocator<std::pair<const DynexCN::ITransactionReader *, std::promise<std::error_code>>>>::_List_impl" }
%"struct.std::__cxx11::_List_base<std::pair<const DynexCN::ITransactionReader *, std::promise<std::error_code>>, std::allocator<std::pair<const DynexCN::ITransactionReader *, std::promise<std::error_code>>>>::_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.std::__cxx11::list.55" = type { %"class.std::__cxx11::_List_base.56" }
%"class.std::__cxx11::_List_base.56" = type { %"struct.std::__cxx11::_List_base<std::pair<const Crypto::Hash *, std::promise<void>>, std::allocator<std::pair<const Crypto::Hash *, std::promise<void>>>>::_List_impl" }
%"struct.std::__cxx11::_List_base<std::pair<const Crypto::Hash *, std::promise<void>>, std::allocator<std::pair<const Crypto::Hash *, std::promise<void>>>>::_List_impl" = type { %"struct.std::__detail::_List_node_header" }
%"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.std::condition_variable" = type { %"class.std::__condvar" }
%"class.std::__condvar" = type { %union.pthread_cond_t }
%union.pthread_cond_t = type { %struct.__pthread_cond_s }
%struct.__pthread_cond_s = type { %union.__atomic_wide_counter, %union.__atomic_wide_counter, [2 x i32], [2 x i32], i32, i32, [2 x i32] }
%union.__atomic_wide_counter = type { i64 }
%"class.DynexCN::TransfersSyncronizer" = type { %"class.DynexCN::ITransfersSynchronizer", %"class.DynexCN::IBlockchainConsumerObserver", %"class.Logging::LoggerRef", %"class.std::unordered_map.60", %"class.std::unordered_map.79", ptr, ptr, ptr }
%"class.DynexCN::ITransfersSynchronizer" = type { %"class.DynexCN::IStreamSerializable" }
%"class.DynexCN::IBlockchainConsumerObserver" = type { ptr }
%"class.std::unordered_map.60" = type { %"class.std::_Hashtable.61" }
%"class.std::_Hashtable.61" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::unordered_map.79" = type { %"class.std::_Hashtable.80" }
%"class.std::_Hashtable.80" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::queue" = type { %"class.std::deque" }
%"class.std::deque" = type { %"class.std::_Deque_base" }
%"class.std::_Deque_base" = type { %"struct.std::_Deque_base<DynexCN::WalletEvent, std::allocator<DynexCN::WalletEvent>>::_Deque_impl" }
%"struct.std::_Deque_base<DynexCN::WalletEvent, std::allocator<DynexCN::WalletEvent>>::_Deque_impl" = type { %"struct.std::_Deque_base<DynexCN::WalletEvent, std::allocator<DynexCN::WalletEvent>>::_Deque_impl_data" }
%"struct.std::_Deque_base<DynexCN::WalletEvent, std::allocator<DynexCN::WalletEvent>>::_Deque_impl_data" = type { ptr, i64, %"struct.std::_Deque_iterator", %"struct.std::_Deque_iterator" }
%"struct.std::_Deque_iterator" = type { ptr, ptr, ptr, ptr }
%"class.System::Event" = type { ptr, i8, ptr, ptr }
%"struct.Crypto::chacha8_key" = type { [32 x i8] }
%"class.boost::multi_index::multi_index_container.96" = type { [8 x i8], %"struct.boost::multi_index::detail::header_holder.98", %"class.boost::multi_index::detail::random_access_index.99", i64 }
%"struct.boost::multi_index::detail::header_holder.98" = type { ptr }
%"class.boost::multi_index::detail::random_access_index.99" = type { %"class.boost::multi_index::detail::hashed_index.100", %"class.boost::multi_index::detail::random_access_index_ptr_array.105" }
%"class.boost::multi_index::detail::hashed_index.100" = type { [8 x i8], %"class.boost::multi_index::detail::bucket_array.103", float, i64 }
%"class.boost::multi_index::detail::bucket_array.103" = type { i64, %"struct.boost::multi_index::detail::auto_space.104" }
%"struct.boost::multi_index::detail::auto_space.104" = type { [8 x i8], i64, ptr }
%"class.boost::multi_index::detail::random_access_index_ptr_array.105" = type { i64, i64, %"struct.boost::multi_index::detail::auto_space.106" }
%"struct.boost::multi_index::detail::auto_space.106" = type { [8 x i8], i64, ptr }
%"struct.DynexCN::WalletGreen::OutputToTransfer" = type { %"struct.DynexCN::TransactionOutputInformation", ptr }
%"struct.DynexCN::TransactionOutputInformation" = type { i8, i64, i32, i32, %"struct.Crypto::Hash", %"struct.Crypto::PublicKey", %union.anon.208 }
%union.anon.208 = type { i32, [28 x i8] }
%"struct.DynexCN::reserve_proof_entry" = type { %"struct.Crypto::Hash", i64, %"struct.Crypto::PublicKey", %"struct.Crypto::KeyImage", %"struct.Crypto::Signature", %"struct.Crypto::Signature" }

@_ZTISt13runtime_error = external constant ptr
@.str.204 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.205 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.206 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.207 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.208 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.209 = external hidden unnamed_addr constant [15 x i8], align 1

declare i32 @__gxx_personality_v0(...)

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

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

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

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

declare ptr @__cxa_allocate_exception(i64)

declare void @__cxa_free_exception(ptr)

declare void @__cxa_throw(ptr, ptr, ptr)

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef i64 @_ZN7DynexCN11WalletGreen15selectTransfersEmbmOSt6vectorINS0_10WalletOutsESaIS2_EERS1_INS0_16OutputToTransferESaIS6_EE(ptr noundef nonnull align 8 dereferenceable(1872), i64 noundef, i1 noundef zeroext, i64 noundef, ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24)) #3 align 2

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK7DynexCN11WalletGreen10pickWalletERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind noalias writable sret(%"struct.DynexCN::WalletGreen::WalletOuts") align 8, ptr noundef nonnull align 8 dereferenceable(1872), ptr noundef nonnull align 8 dereferenceable(32)) #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6Crypto13scalarmultKeyERKNS_8KeyImageES2_(ptr dead_on_unwind noalias writable sret(%"struct.Crypto::KeyImage") align 1, ptr noundef nonnull align 1 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(32)) #4

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6Crypto17generate_tx_proofERKNS_4HashERKNS_9PublicKeyES5_S5_RKNS_9SecretKeyERNS_9SignatureE(ptr noundef nonnull align 1 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(64)) #4

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN7DynexCN11WalletGreen15getReserveProofERKmRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESA_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8 %0, ptr noundef nonnull align 8 dereferenceable(1872) %1, ptr noundef nonnull align 8 dereferenceable(8) %2, ptr noundef nonnull align 8 dereferenceable(32) %3, ptr noundef nonnull align 8 dereferenceable(32) %4) unnamed_addr #3 align 2 personality ptr @__gxx_personality_v0 {
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca ptr, align 8
  %9 = alloca ptr, align 8
  %10 = alloca ptr, align 8
  %11 = alloca ptr, align 8
  %12 = alloca i32, align 4
  %13 = alloca %"class.std::vector.317", align 8
  %14 = alloca %"class.std::vector.312", align 8
  %15 = alloca %"struct.DynexCN::WalletGreen::WalletOuts", align 8
  %16 = alloca %"class.std::vector.312", align 8
  %17 = alloca ptr, align 8
  %18 = alloca %"class.__gnu_cxx::__normal_iterator.466", align 8
  %19 = alloca %"class.__gnu_cxx::__normal_iterator.466", align 8
  %20 = alloca i32, align 4
  %21 = alloca ptr, align 8
  %22 = alloca i64, align 8
  %23 = alloca %"class.std::vector.201", align 8
  %24 = alloca ptr, align 8
  %25 = alloca %"class.__gnu_cxx::__normal_iterator.536", align 8
  %26 = alloca %"class.__gnu_cxx::__normal_iterator.536", align 8
  %27 = alloca ptr, align 8
  %28 = alloca %"struct.DynexCN::AccountKeys", align 1
  %29 = alloca %"struct.DynexCN::AccountPublicAddress", align 1
  %30 = alloca %"class.std::__cxx11::basic_string", align 8
  %31 = alloca %"class.std::vector.537", align 8
  %32 = alloca %"struct.DynexCN::KeyPair", align 1
  %33 = alloca i64, align 8
  %34 = alloca ptr, align 8
  %35 = alloca %"struct.Crypto::KeyImage", align 1
  %36 = alloca i8, align 1
  %37 = alloca %"struct.Crypto::Hash", align 1
  %38 = alloca %"class.std::vector.542", align 8
  %39 = alloca %"class.std::allocator.544", align 1
  %40 = alloca i64, align 8
  %41 = alloca ptr, align 8
  %42 = alloca ptr, align 8
  %43 = alloca %"struct.Crypto::PublicKey", align 1
  %44 = alloca i32, align 4
  %45 = alloca %"struct.Crypto::KeyImage", align 1
  %46 = alloca %"struct.Crypto::KeyDerivation", align 1
  %47 = alloca %"struct.Crypto::KeyImage", align 1
  %48 = alloca %"struct.DynexCN::KeyPair", align 1
  %49 = alloca i8, align 1
  %50 = alloca ptr, align 8
  %51 = alloca %"class.std::vector.547", align 8
  %52 = alloca %"class.std::initializer_list.552", align 8
  %53 = alloca [1 x ptr], align 8
  %54 = alloca %"class.std::allocator.549", align 1
  %55 = alloca %"struct.Crypto::Signature", align 1
  %56 = alloca %"struct.DynexCN::reserve_proof", align 8
  %57 = alloca %"class.__gnu_cxx::__normal_iterator.553", align 8
  %58 = alloca %"class.__gnu_cxx::__normal_iterator.553", align 8
  %59 = alloca %"class.std::vector.135", align 8
  %60 = alloca i1, align 1
  %61 = alloca %"class.std::__cxx11::basic_string", align 8
  %62 = alloca %"class.std::__cxx11::basic_string", align 8
  store ptr %0, ptr %6, align 8
  store ptr %1, ptr %7, align 8, !tbaa !5
  store ptr %2, ptr %8, align 8, !tbaa !5
  store ptr %3, ptr %9, align 8, !tbaa !5
  store ptr %4, ptr %10, align 8, !tbaa !5
  %63 = load ptr, ptr %7, align 8
  call void @_ZNK7DynexCN11WalletGreen21throwIfNotInitializedEv(ptr noundef nonnull align 8 dereferenceable(1872) %63)
  call void @_ZNK7DynexCN11WalletGreen19throwIfTrackingModeEv(ptr noundef nonnull align 8 dereferenceable(1872) %63)
  call void @_ZNK7DynexCN11WalletGreen14throwIfStoppedEv(ptr noundef nonnull align 8 dereferenceable(1872) %63)
  %64 = load ptr, ptr %63, align 8, !tbaa !9
  %65 = getelementptr inbounds ptr, ptr %64, i64 30
  %66 = load ptr, ptr %65, align 8
  %67 = call noundef i64 %66(ptr noundef nonnull align 8 dereferenceable(1872) %63)
  %68 = icmp eq i64 %67, 0
  br i1 %68, label %69, label %76

69:                                               ; preds = %5
  %70 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %70, ptr noundef @.str.204)
          to label %71 unwind label %72

71:                                               ; preds = %69
  call void @__cxa_throw(ptr %70, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #9
  unreachable

72:                                               ; preds = %69
  %73 = landingpad { ptr, i32 }
          cleanup
  %74 = extractvalue { ptr, i32 } %73, 0
  store ptr %74, ptr %11, align 8
  %75 = extractvalue { ptr, i32 } %73, 1
  store i32 %75, ptr %12, align 4
  call void @__cxa_free_exception(ptr %70) #8
  br label %461

76:                                               ; preds = %5
  call void @llvm.lifetime.start.p0(i64 24, ptr %13) #8
  call void @_ZNSt6vectorIN7DynexCN11WalletGreen16OutputToTransferESaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %13) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr %14) #8
  call void @_ZNSt6vectorIN7DynexCN11WalletGreen10WalletOutsESaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %14) #8
  %77 = load ptr, ptr %9, align 8, !tbaa !5
  %78 = call noundef zeroext i1 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(32) %77) #8
  br i1 %78, label %92, label %79

79:                                               ; preds = %76
  call void @llvm.lifetime.start.p0(i64 32, ptr %15) #8
  %80 = load ptr, ptr %9, align 8, !tbaa !5
  invoke void @_ZNK7DynexCN11WalletGreen10pickWalletERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"struct.DynexCN::WalletGreen::WalletOuts") align 8 %15, ptr noundef nonnull align 8 dereferenceable(1872) %63, ptr noundef nonnull align 8 dereferenceable(32) %80)
          to label %81 unwind label %83

81:                                               ; preds = %79
  invoke void @_ZNSt6vectorIN7DynexCN11WalletGreen10WalletOutsESaIS2_EE9push_backERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %14, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %82 unwind label %87

82:                                               ; preds = %81
  call void @_ZN7DynexCN11WalletGreen10WalletOutsD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %15) #8
  br label %133

83:                                               ; preds = %79
  %84 = landingpad { ptr, i32 }
          cleanup
  %85 = extractvalue { ptr, i32 } %84, 0
  store ptr %85, ptr %11, align 8
  %86 = extractvalue { ptr, i32 } %84, 1
  store i32 %86, ptr %12, align 4
  br label %91

87:                                               ; preds = %81
  %88 = landingpad { ptr, i32 }
          cleanup
  %89 = extractvalue { ptr, i32 } %88, 0
  store ptr %89, ptr %11, align 8
  %90 = extractvalue { ptr, i32 } %88, 1
  store i32 %90, ptr %12, align 4
  call void @_ZN7DynexCN11WalletGreen10WalletOutsD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #8
  br label %91

91:                                               ; preds = %87, %83
  call void @llvm.lifetime.end.p0(i64 32, ptr %15) #8
  br label %460

92:                                               ; preds = %76
  call void @llvm.lifetime.start.p0(i64 24, ptr %16) #8
  invoke void @_ZNK7DynexCN11WalletGreen20pickWalletsWithMoneyEv(ptr dead_on_unwind writable sret(%"class.std::vector.312") align 8 %16, ptr noundef nonnull align 8 dereferenceable(1872) %63)
          to label %93 unwind label %103

93:                                               ; preds = %92
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #8
  store ptr %16, ptr %17, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #8
  %94 = load ptr, ptr %17, align 8, !tbaa !5
  %95 = call ptr @_ZNSt6vectorIN7DynexCN11WalletGreen10WalletOutsESaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %94) #8
  %96 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.466", ptr %18, i32 0, i32 0
  store ptr %95, ptr %96, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #8
  %97 = load ptr, ptr %17, align 8, !tbaa !5
  %98 = call ptr @_ZNSt6vectorIN7DynexCN11WalletGreen10WalletOutsESaIS2_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %97) #8
  %99 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.466", ptr %19, i32 0, i32 0
  store ptr %98, ptr %99, align 8
  br label %100

100:                                              ; preds = %128, %93
  %101 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN7DynexCN11WalletGreen10WalletOutsESt6vectorIS3_SaIS3_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %18, ptr noundef nonnull align 8 dereferenceable(8) %19) #8
  br i1 %101, label %107, label %102

102:                                              ; preds = %100
  store i32 2, ptr %20, align 4
  br label %130

103:                                              ; preds = %92
  %104 = landingpad { ptr, i32 }
          cleanup
  %105 = extractvalue { ptr, i32 } %104, 0
  store ptr %105, ptr %11, align 8
  %106 = extractvalue { ptr, i32 } %104, 1
  store i32 %106, ptr %12, align 4
  br label %132

107:                                              ; preds = %100
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #8
  %108 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPN7DynexCN11WalletGreen10WalletOutsESt6vectorIS3_SaIS3_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %18) #8
  store ptr %108, ptr %21, align 8, !tbaa !5
  %109 = load ptr, ptr %21, align 8, !tbaa !5
  %110 = getelementptr inbounds %"struct.DynexCN::WalletGreen::WalletOuts", ptr %109, i32 0, i32 0
  %111 = load ptr, ptr %110, align 8, !tbaa !11
  %112 = getelementptr inbounds %"struct.DynexCN::WalletRecord", ptr %111, i32 0, i32 4
  %113 = load i64, ptr %112, align 8, !tbaa !17
  %114 = load ptr, ptr %8, align 8, !tbaa !5
  %115 = load i64, ptr %114, align 8, !tbaa !22
  %116 = icmp uge i64 %113, %115
  br i1 %116, label %117, label %124

117:                                              ; preds = %107
  %118 = load ptr, ptr %21, align 8, !tbaa !5
  invoke void @_ZNSt6vectorIN7DynexCN11WalletGreen10WalletOutsESaIS2_EE9push_backERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %14, ptr noundef nonnull align 8 dereferenceable(32) %118)
          to label %119 unwind label %120

119:                                              ; preds = %117
  store i32 2, ptr %20, align 4
  br label %125

120:                                              ; preds = %117
  %121 = landingpad { ptr, i32 }
          cleanup
  %122 = extractvalue { ptr, i32 } %121, 0
  store ptr %122, ptr %11, align 8
  %123 = extractvalue { ptr, i32 } %121, 1
  store i32 %123, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #8
  call void @_ZNSt6vectorIN7DynexCN11WalletGreen10WalletOutsESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %16) #8
  br label %132

124:                                              ; preds = %107
  store i32 0, ptr %20, align 4
  br label %125

125:                                              ; preds = %124, %119
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #8
  %126 = load i32, ptr %20, align 4
  switch i32 %126, label %130 [
    i32 0, label %127
  ]

127:                                              ; preds = %125
  br label %128

128:                                              ; preds = %127
  %129 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPN7DynexCN11WalletGreen10WalletOutsESt6vectorIS3_SaIS3_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %18) #8
  br label %100

130:                                              ; preds = %125, %102
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #8
  br label %131

131:                                              ; preds = %130
  call void @_ZNSt6vectorIN7DynexCN11WalletGreen10WalletOutsESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %16) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %16) #8
  br label %133

132:                                              ; preds = %120, %103
  call void @llvm.lifetime.end.p0(i64 24, ptr %16) #8
  br label %460

133:                                              ; preds = %131, %82
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #8
  %134 = load ptr, ptr %8, align 8, !tbaa !5
  %135 = load i64, ptr %134, align 8, !tbaa !22
  %136 = getelementptr inbounds %"class.DynexCN::WalletGreen", ptr %63, i32 0, i32 6
  %137 = load ptr, ptr %136, align 8, !tbaa !23
  %138 = invoke noundef i64 @_ZNK7DynexCN8Currency20defaultDustThresholdEv(ptr noundef nonnull align 8 dereferenceable(984) %137)
          to label %139 unwind label %149

139:                                              ; preds = %133
  %140 = invoke noundef i64 @_ZN7DynexCN11WalletGreen15selectTransfersEmbmOSt6vectorINS0_10WalletOutsESaIS2_EERS1_INS0_16OutputToTransferESaIS6_EE(ptr noundef nonnull align 8 dereferenceable(1872) %63, i64 noundef %135, i1 noundef zeroext true, i64 noundef %138, ptr noundef nonnull align 8 dereferenceable(24) %14, ptr noundef nonnull align 8 dereferenceable(24) %13)
          to label %141 unwind label %149

141:                                              ; preds = %139
  store i64 %140, ptr %22, align 8, !tbaa !22
  %142 = load i64, ptr %22, align 8, !tbaa !22
  %143 = load ptr, ptr %8, align 8, !tbaa !5
  %144 = load i64, ptr %143, align 8, !tbaa !22
  %145 = icmp ult i64 %142, %144
  br i1 %145, label %146, label %157

146:                                              ; preds = %141
  %147 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %147, ptr noundef @.str.205)
          to label %148 unwind label %153

148:                                              ; preds = %146
  invoke void @__cxa_throw(ptr %147, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #9
          to label %466 unwind label %149

149:                                              ; preds = %148, %139, %133
  %150 = landingpad { ptr, i32 }
          cleanup
  %151 = extractvalue { ptr, i32 } %150, 0
  store ptr %151, ptr %11, align 8
  %152 = extractvalue { ptr, i32 } %150, 1
  store i32 %152, ptr %12, align 4
  br label %459

153:                                              ; preds = %146
  %154 = landingpad { ptr, i32 }
          cleanup
  %155 = extractvalue { ptr, i32 } %154, 0
  store ptr %155, ptr %11, align 8
  %156 = extractvalue { ptr, i32 } %154, 1
  store i32 %156, ptr %12, align 4
  call void @__cxa_free_exception(ptr %147) #8
  br label %459

157:                                              ; preds = %141
  call void @llvm.lifetime.start.p0(i64 24, ptr %23) #8
  call void @_ZNSt6vectorIN7DynexCN28TransactionOutputInformationESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %23) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #8
  store ptr %13, ptr %24, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #8
  %158 = load ptr, ptr %24, align 8, !tbaa !5
  %159 = call ptr @_ZNSt6vectorIN7DynexCN11WalletGreen16OutputToTransferESaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %158) #8
  %160 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.536", ptr %25, i32 0, i32 0
  store ptr %159, ptr %160, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #8
  %161 = load ptr, ptr %24, align 8, !tbaa !5
  %162 = call ptr @_ZNSt6vectorIN7DynexCN11WalletGreen16OutputToTransferESaIS2_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %161) #8
  %163 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.536", ptr %26, i32 0, i32 0
  store ptr %162, ptr %163, align 8
  br label %164

164:                                              ; preds = %172, %157
  %165 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN7DynexCN11WalletGreen16OutputToTransferESt6vectorIS3_SaIS3_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %25, ptr noundef nonnull align 8 dereferenceable(8) %26) #8
  br i1 %165, label %167, label %166

166:                                              ; preds = %164
  store i32 4, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #8
  br label %178

167:                                              ; preds = %164
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #8
  %168 = call noundef nonnull align 8 dereferenceable(128) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPN7DynexCN11WalletGreen16OutputToTransferESt6vectorIS3_SaIS3_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %25) #8
  store ptr %168, ptr %27, align 8, !tbaa !5
  %169 = load ptr, ptr %27, align 8, !tbaa !5
  %170 = getelementptr inbounds %"struct.DynexCN::WalletGreen::OutputToTransfer", ptr %169, i32 0, i32 0
  invoke void @_ZNSt6vectorIN7DynexCN28TransactionOutputInformationESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %23, ptr noundef nonnull align 8 dereferenceable(120) %170)
          to label %171 unwind label %174

171:                                              ; preds = %167
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #8
  br label %172

172:                                              ; preds = %171
  %173 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPN7DynexCN11WalletGreen16OutputToTransferESt6vectorIS3_SaIS3_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %25) #8
  br label %164

174:                                              ; preds = %167
  %175 = landingpad { ptr, i32 }
          cleanup
  %176 = extractvalue { ptr, i32 } %175, 0
  store ptr %176, ptr %11, align 8
  %177 = extractvalue { ptr, i32 } %175, 1
  store i32 %177, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #8
  br label %458

178:                                              ; preds = %166
  call void @llvm.lifetime.start.p0(i64 128, ptr %28) #8
  %179 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorIN7DynexCN11WalletGreen10WalletOutsESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %14, i64 noundef 0) #8
  %180 = getelementptr inbounds %"struct.DynexCN::WalletGreen::WalletOuts", ptr %179, i32 0, i32 0
  %181 = load ptr, ptr %180, align 8, !tbaa !11
  %182 = getelementptr inbounds %"struct.DynexCN::WalletRecord", ptr %181, i32 0, i32 1
  %183 = getelementptr inbounds %"struct.DynexCN::AccountKeys", ptr %28, i32 0, i32 1
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %183, ptr align 8 %182, i64 32, i1 false), !tbaa.struct !164
  %184 = getelementptr inbounds %"class.DynexCN::WalletGreen", ptr %63, i32 0, i32 29
  %185 = getelementptr inbounds %"struct.DynexCN::AccountKeys", ptr %28, i32 0, i32 2
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %185, ptr align 8 %184, i64 32, i1 false), !tbaa.struct !164
  call void @llvm.lifetime.start.p0(i64 64, ptr %29) #8
  %186 = getelementptr inbounds %"struct.DynexCN::AccountPublicAddress", ptr %29, i32 0, i32 0
  %187 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorIN7DynexCN11WalletGreen10WalletOutsESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %14, i64 noundef 0) #8
  %188 = getelementptr inbounds %"struct.DynexCN::WalletGreen::WalletOuts", ptr %187, i32 0, i32 0
  %189 = load ptr, ptr %188, align 8, !tbaa !11
  %190 = getelementptr inbounds %"struct.DynexCN::WalletRecord", ptr %189, i32 0, i32 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %186, ptr align 8 %190, i64 32, i1 false), !tbaa.struct !164
  %191 = getelementptr inbounds %"struct.DynexCN::AccountPublicAddress", ptr %29, i32 0, i32 1
  %192 = getelementptr inbounds %"class.DynexCN::WalletGreen", ptr %63, i32 0, i32 28
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %191, ptr align 8 %192, i64 32, i1 false), !tbaa.struct !164
  %193 = getelementptr inbounds %"struct.DynexCN::AccountKeys", ptr %28, i32 0, i32 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %193, ptr align 1 %29, i64 64, i1 false), !tbaa.struct !166
  call void @llvm.lifetime.end.p0(i64 64, ptr %29) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %30) #8
  %194 = load ptr, ptr %10, align 8, !tbaa !5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef nonnull align 8 dereferenceable(32) %194)
          to label %195 unwind label %204

195:                                              ; preds = %178
  %196 = getelementptr inbounds %"struct.DynexCN::AccountKeys", ptr %28, i32 0, i32 0
  %197 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKcm(ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef %196, i64 noundef 64)
          to label %198 unwind label %208

198:                                              ; preds = %195
  call void @llvm.lifetime.start.p0(i64 24, ptr %31) #8
  call void @_ZNSt6vectorIN6Crypto8KeyImageESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %31) #8
  call void @llvm.lifetime.start.p0(i64 64, ptr %32) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #8
  store i64 0, ptr %33, align 8, !tbaa !22
  br label %199

199:                                              ; preds = %241, %198
  %200 = load i64, ptr %33, align 8, !tbaa !22
  %201 = call noundef i64 @_ZNKSt6vectorIN7DynexCN28TransactionOutputInformationESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %23) #8
  %202 = icmp ult i64 %200, %201
  br i1 %202, label %212, label %203

203:                                              ; preds = %199
  store i32 6, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #8
  br label %245

204:                                              ; preds = %178
  %205 = landingpad { ptr, i32 }
          cleanup
  %206 = extractvalue { ptr, i32 } %205, 0
  store ptr %206, ptr %11, align 8
  %207 = extractvalue { ptr, i32 } %205, 1
  store i32 %207, ptr %12, align 4
  br label %457

208:                                              ; preds = %195
  %209 = landingpad { ptr, i32 }
          cleanup
  %210 = extractvalue { ptr, i32 } %209, 0
  store ptr %210, ptr %11, align 8
  %211 = extractvalue { ptr, i32 } %209, 1
  store i32 %211, ptr %12, align 4
  br label %456

212:                                              ; preds = %199
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #8
  %213 = load i64, ptr %33, align 8, !tbaa !22
  %214 = call noundef nonnull align 8 dereferenceable(120) ptr @_ZNSt6vectorIN7DynexCN28TransactionOutputInformationESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %23, i64 noundef %213) #8
  store ptr %214, ptr %34, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %35) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %36) #8
  %215 = load ptr, ptr %34, align 8, !tbaa !5
  %216 = getelementptr inbounds %"struct.DynexCN::TransactionOutputInformation", ptr %215, i32 0, i32 5
  %217 = load ptr, ptr %34, align 8, !tbaa !5
  %218 = getelementptr inbounds %"struct.DynexCN::TransactionOutputInformation", ptr %217, i32 0, i32 3
  %219 = load i32, ptr %218, align 4, !tbaa !167
  %220 = zext i32 %219 to i64
  %221 = invoke noundef zeroext i1 @_ZN7DynexCN25generate_key_image_helperERKNS_11AccountKeysERKN6Crypto9PublicKeyEmRNS_7KeyPairERNS3_8KeyImageE(ptr noundef nonnull align 1 dereferenceable(128) %28, ptr noundef nonnull align 1 dereferenceable(32) %216, i64 noundef %220, ptr noundef nonnull align 1 dereferenceable(64) %32, ptr noundef nonnull align 1 dereferenceable(32) %35)
          to label %222 unwind label %229

222:                                              ; preds = %212
  %223 = zext i1 %221 to i8
  store i8 %223, ptr %36, align 1, !tbaa !170
  %224 = load i8, ptr %36, align 1, !tbaa !170, !range !171, !noundef !172
  %225 = trunc i8 %224 to i1
  br i1 %225, label %237, label %226

226:                                              ; preds = %222
  %227 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %227, ptr noundef @.str.206)
          to label %228 unwind label %233

228:                                              ; preds = %226
  invoke void @__cxa_throw(ptr %227, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #9
          to label %466 unwind label %229

229:                                              ; preds = %239, %237, %228, %212
  %230 = landingpad { ptr, i32 }
          cleanup
  %231 = extractvalue { ptr, i32 } %230, 0
  store ptr %231, ptr %11, align 8
  %232 = extractvalue { ptr, i32 } %230, 1
  store i32 %232, ptr %12, align 4
  br label %244

233:                                              ; preds = %226
  %234 = landingpad { ptr, i32 }
          cleanup
  %235 = extractvalue { ptr, i32 } %234, 0
  store ptr %235, ptr %11, align 8
  %236 = extractvalue { ptr, i32 } %234, 1
  store i32 %236, ptr %12, align 4
  call void @__cxa_free_exception(ptr %227) #8
  br label %244

237:                                              ; preds = %222
  %238 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKcm(ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef %35, i64 noundef 32)
          to label %239 unwind label %229

239:                                              ; preds = %237
  invoke void @_ZNSt6vectorIN6Crypto8KeyImageESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %31, ptr noundef nonnull align 1 dereferenceable(32) %35)
          to label %240 unwind label %229

240:                                              ; preds = %239
  call void @llvm.lifetime.end.p0(i64 1, ptr %36) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %35) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #8
  br label %241

241:                                              ; preds = %240
  %242 = load i64, ptr %33, align 8, !tbaa !22
  %243 = add i64 %242, 1
  store i64 %243, ptr %33, align 8, !tbaa !22
  br label %199, !llvm.loop !173

244:                                              ; preds = %233, %229
  call void @llvm.lifetime.end.p0(i64 1, ptr %36) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %35) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #8
  br label %455

245:                                              ; preds = %203
  call void @llvm.lifetime.start.p0(i64 32, ptr %37) #8
  %246 = call noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4dataEv(ptr noundef nonnull align 8 dereferenceable(32) %30) #8
  %247 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %30) #8
  invoke void @_ZN6Crypto12cn_fast_hashEPKvmRNS_4HashE(ptr noundef %246, i64 noundef %247, ptr noundef nonnull align 1 dereferenceable(32) %37)
          to label %248 unwind label %256

248:                                              ; preds = %245
  call void @llvm.lifetime.start.p0(i64 24, ptr %38) #8
  %249 = call noundef i64 @_ZNKSt6vectorIN7DynexCN28TransactionOutputInformationESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %23) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %39) #8
  call void @_ZNSaIN7DynexCN19reserve_proof_entryEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #8
  invoke void @_ZNSt6vectorIN7DynexCN19reserve_proof_entryESaIS1_EEC2EmRKS2_(ptr noundef nonnull align 8 dereferenceable(24) %38, i64 noundef %249, ptr noundef nonnull align 1 dereferenceable(1) %39)
          to label %250 unwind label %260

250:                                              ; preds = %248
  call void @_ZNSt15__new_allocatorIN7DynexCN19reserve_proof_entryEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %39) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #8
  store i64 0, ptr %40, align 8, !tbaa !22
  br label %251

251:                                              ; preds = %385, %250
  %252 = load i64, ptr %40, align 8, !tbaa !22
  %253 = call noundef i64 @_ZNKSt6vectorIN7DynexCN28TransactionOutputInformationESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %23) #8
  %254 = icmp ult i64 %252, %253
  br i1 %254, label %264, label %255

255:                                              ; preds = %251
  store i32 9, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #8
  br label %399

256:                                              ; preds = %245
  %257 = landingpad { ptr, i32 }
          cleanup
  %258 = extractvalue { ptr, i32 } %257, 0
  store ptr %258, ptr %11, align 8
  %259 = extractvalue { ptr, i32 } %257, 1
  store i32 %259, ptr %12, align 4
  br label %454

260:                                              ; preds = %248
  %261 = landingpad { ptr, i32 }
          cleanup
  %262 = extractvalue { ptr, i32 } %261, 0
  store ptr %262, ptr %11, align 8
  %263 = extractvalue { ptr, i32 } %261, 1
  store i32 %263, ptr %12, align 4
  call void @_ZNSt15__new_allocatorIN7DynexCN19reserve_proof_entryEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %39) #8
  br label %453

264:                                              ; preds = %251
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #8
  %265 = load i64, ptr %40, align 8, !tbaa !22
  %266 = call noundef nonnull align 8 dereferenceable(120) ptr @_ZNSt6vectorIN7DynexCN28TransactionOutputInformationESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %23, i64 noundef %265) #8
  store ptr %266, ptr %41, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #8
  %267 = load i64, ptr %40, align 8, !tbaa !22
  %268 = call noundef nonnull align 8 dereferenceable(232) ptr @_ZNSt6vectorIN7DynexCN19reserve_proof_entryESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %38, i64 noundef %267) #8
  store ptr %268, ptr %42, align 8, !tbaa !5
  %269 = load i64, ptr %40, align 8, !tbaa !22
  %270 = call noundef nonnull align 1 dereferenceable(32) ptr @_ZNSt6vectorIN6Crypto8KeyImageESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %31, i64 noundef %269) #8
  %271 = load ptr, ptr %42, align 8, !tbaa !5
  %272 = getelementptr inbounds %"struct.DynexCN::reserve_proof_entry", ptr %271, i32 0, i32 3
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %272, ptr align 1 %270, i64 32, i1 false), !tbaa.struct !164
  %273 = load ptr, ptr %41, align 8, !tbaa !5
  %274 = getelementptr inbounds %"struct.DynexCN::TransactionOutputInformation", ptr %273, i32 0, i32 4
  %275 = load ptr, ptr %42, align 8, !tbaa !5
  %276 = getelementptr inbounds %"struct.DynexCN::reserve_proof_entry", ptr %275, i32 0, i32 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %276, ptr align 8 %274, i64 32, i1 false), !tbaa.struct !164
  %277 = load ptr, ptr %41, align 8, !tbaa !5
  %278 = getelementptr inbounds %"struct.DynexCN::TransactionOutputInformation", ptr %277, i32 0, i32 3
  %279 = load i32, ptr %278, align 4, !tbaa !167
  %280 = zext i32 %279 to i64
  %281 = load ptr, ptr %42, align 8, !tbaa !5
  %282 = getelementptr inbounds %"struct.DynexCN::reserve_proof_entry", ptr %281, i32 0, i32 1
  store i64 %280, ptr %282, align 8, !tbaa !175
  call void @llvm.lifetime.start.p0(i64 32, ptr %43) #8
  %283 = load ptr, ptr %41, align 8, !tbaa !5
  %284 = getelementptr inbounds %"struct.DynexCN::TransactionOutputInformation", ptr %283, i32 0, i32 5
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %43, ptr align 8 %284, i64 32, i1 false), !tbaa.struct !164
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #8
  store i32 0, ptr %44, align 4, !tbaa !179
  br label %285

285:                                              ; preds = %315, %264
  %286 = load i32, ptr %44, align 4, !tbaa !179
  %287 = icmp slt i32 %286, 2
  br i1 %287, label %289, label %288

288:                                              ; preds = %285
  store i32 12, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #8
  br label %320

289:                                              ; preds = %285
  call void @llvm.lifetime.start.p0(i64 32, ptr %45) #8
  %290 = getelementptr inbounds %"class.DynexCN::WalletGreen", ptr %63, i32 0, i32 29
  invoke void @_ZN6Crypto13scalarmultKeyERKNS_8KeyImageES2_(ptr dead_on_unwind writable sret(%"struct.Crypto::KeyImage") align 1 %45, ptr noundef nonnull align 1 dereferenceable(32) %43, ptr noundef nonnull align 1 dereferenceable(32) %290)
          to label %291 unwind label %302

291:                                              ; preds = %289
  %292 = load ptr, ptr %42, align 8, !tbaa !5
  %293 = getelementptr inbounds %"struct.DynexCN::reserve_proof_entry", ptr %292, i32 0, i32 2
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %293, ptr align 1 %45, i64 32, i1 false), !tbaa.struct !164
  call void @llvm.lifetime.start.p0(i64 32, ptr %46) #8
  %294 = load ptr, ptr %42, align 8, !tbaa !5
  %295 = getelementptr inbounds %"struct.DynexCN::reserve_proof_entry", ptr %294, i32 0, i32 2
  %296 = getelementptr inbounds %"class.DynexCN::WalletGreen", ptr %63, i32 0, i32 29
  %297 = invoke noundef zeroext i1 @_ZN6Crypto23generate_key_derivationERKNS_9PublicKeyERKNS_9SecretKeyERNS_13KeyDerivationE(ptr noundef nonnull align 1 dereferenceable(32) %295, ptr noundef nonnull align 1 dereferenceable(32) %296, ptr noundef nonnull align 1 dereferenceable(32) %46)
          to label %298 unwind label %306

298:                                              ; preds = %291
  br i1 %297, label %314, label %299

299:                                              ; preds = %298
  %300 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %300, ptr noundef @.str.207)
          to label %301 unwind label %310

301:                                              ; preds = %299
  invoke void @__cxa_throw(ptr %300, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #9
          to label %466 unwind label %306

302:                                              ; preds = %289
  %303 = landingpad { ptr, i32 }
          cleanup
  %304 = extractvalue { ptr, i32 } %303, 0
  store ptr %304, ptr %11, align 8
  %305 = extractvalue { ptr, i32 } %303, 1
  store i32 %305, ptr %12, align 4
  br label %319

306:                                              ; preds = %301, %291
  %307 = landingpad { ptr, i32 }
          cleanup
  %308 = extractvalue { ptr, i32 } %307, 0
  store ptr %308, ptr %11, align 8
  %309 = extractvalue { ptr, i32 } %307, 1
  store i32 %309, ptr %12, align 4
  br label %318

310:                                              ; preds = %299
  %311 = landingpad { ptr, i32 }
          cleanup
  %312 = extractvalue { ptr, i32 } %311, 0
  store ptr %312, ptr %11, align 8
  %313 = extractvalue { ptr, i32 } %311, 1
  store i32 %313, ptr %12, align 4
  call void @__cxa_free_exception(ptr %300) #8
  br label %318

314:                                              ; preds = %298
  call void @llvm.lifetime.end.p0(i64 32, ptr %46) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %45) #8
  br label %315

315:                                              ; preds = %314
  %316 = load i32, ptr %44, align 4, !tbaa !179
  %317 = add nsw i32 %316, 1
  store i32 %317, ptr %44, align 4, !tbaa !179
  br label %285, !llvm.loop !180

318:                                              ; preds = %310, %306
  call void @llvm.lifetime.end.p0(i64 32, ptr %46) #8
  br label %319

319:                                              ; preds = %318, %302
  call void @llvm.lifetime.end.p0(i64 32, ptr %45) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #8
  br label %398

320:                                              ; preds = %288
  %321 = getelementptr inbounds %"struct.DynexCN::AccountKeys", ptr %28, i32 0, i32 0
  %322 = getelementptr inbounds %"struct.DynexCN::AccountPublicAddress", ptr %321, i32 0, i32 1
  %323 = load ptr, ptr %42, align 8, !tbaa !5
  %324 = getelementptr inbounds %"struct.DynexCN::reserve_proof_entry", ptr %323, i32 0, i32 2
  %325 = getelementptr inbounds %"class.DynexCN::WalletGreen", ptr %63, i32 0, i32 29
  %326 = load ptr, ptr %42, align 8, !tbaa !5
  %327 = getelementptr inbounds %"struct.DynexCN::reserve_proof_entry", ptr %326, i32 0, i32 4
  invoke void @_ZN6Crypto17generate_tx_proofERKNS_4HashERKNS_9PublicKeyES5_S5_RKNS_9SecretKeyERNS_9SignatureE(ptr noundef nonnull align 1 dereferenceable(32) %37, ptr noundef nonnull align 1 dereferenceable(32) %322, ptr noundef nonnull align 1 dereferenceable(32) %43, ptr noundef nonnull align 1 dereferenceable(32) %324, ptr noundef nonnull align 1 dereferenceable(32) %325, ptr noundef nonnull align 1 dereferenceable(64) %327)
          to label %328 unwind label %343

328:                                              ; preds = %320
  call void @llvm.lifetime.start.p0(i64 32, ptr %47) #8
  call void @llvm.lifetime.start.p0(i64 64, ptr %48) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %49) #8
  %329 = load ptr, ptr %41, align 8, !tbaa !5
  %330 = getelementptr inbounds %"struct.DynexCN::TransactionOutputInformation", ptr %329, i32 0, i32 5
  %331 = load ptr, ptr %41, align 8, !tbaa !5
  %332 = getelementptr inbounds %"struct.DynexCN::TransactionOutputInformation", ptr %331, i32 0, i32 3
  %333 = load i32, ptr %332, align 4, !tbaa !167
  %334 = zext i32 %333 to i64
  %335 = invoke noundef zeroext i1 @_ZN7DynexCN25generate_key_image_helperERKNS_11AccountKeysERKN6Crypto9PublicKeyEmRNS_7KeyPairERNS3_8KeyImageE(ptr noundef nonnull align 1 dereferenceable(128) %28, ptr noundef nonnull align 1 dereferenceable(32) %330, i64 noundef %334, ptr noundef nonnull align 1 dereferenceable(64) %48, ptr noundef nonnull align 1 dereferenceable(32) %47)
          to label %336 unwind label %347

336:                                              ; preds = %328
  %337 = zext i1 %335 to i8
  store i8 %337, ptr %49, align 1, !tbaa !170
  %338 = load i8, ptr %49, align 1, !tbaa !170, !range !171, !noundef !172
  %339 = trunc i8 %338 to i1
  br i1 %339, label %355, label %340

340:                                              ; preds = %336
  %341 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %341, ptr noundef @.str.206)
          to label %342 unwind label %351

342:                                              ; preds = %340
  invoke void @__cxa_throw(ptr %341, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #9
          to label %466 unwind label %347

343:                                              ; preds = %320
  %344 = landingpad { ptr, i32 }
          cleanup
  %345 = extractvalue { ptr, i32 } %344, 0
  store ptr %345, ptr %11, align 8
  %346 = extractvalue { ptr, i32 } %344, 1
  store i32 %346, ptr %12, align 4
  br label %398

347:                                              ; preds = %363, %355, %342, %328
  %348 = landingpad { ptr, i32 }
          cleanup
  %349 = extractvalue { ptr, i32 } %348, 0
  store ptr %349, ptr %11, align 8
  %350 = extractvalue { ptr, i32 } %348, 1
  store i32 %350, ptr %12, align 4
  br label %397

351:                                              ; preds = %340
  %352 = landingpad { ptr, i32 }
          cleanup
  %353 = extractvalue { ptr, i32 } %352, 0
  store ptr %353, ptr %11, align 8
  %354 = extractvalue { ptr, i32 } %352, 1
  store i32 %354, ptr %12, align 4
  call void @__cxa_free_exception(ptr %341) #8
  br label %397

355:                                              ; preds = %336
  %356 = getelementptr inbounds %"struct.DynexCN::KeyPair", ptr %48, i32 0, i32 0
  %357 = load ptr, ptr %41, align 8, !tbaa !5
  %358 = getelementptr inbounds %"struct.DynexCN::TransactionOutputInformation", ptr %357, i32 0, i32 6
  %359 = invoke noundef zeroext i1 @_ZN6CryptoneERKNS_9PublicKeyES2_(ptr noundef nonnull align 1 dereferenceable(32) %356, ptr noundef nonnull align 1 dereferenceable(32) %358)
          to label %360 unwind label %347

360:                                              ; preds = %355
  br i1 %359, label %361, label %368

361:                                              ; preds = %360
  %362 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %362, ptr noundef @.str.208)
          to label %363 unwind label %364

363:                                              ; preds = %361
  invoke void @__cxa_throw(ptr %362, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #9
          to label %466 unwind label %347

364:                                              ; preds = %361
  %365 = landingpad { ptr, i32 }
          cleanup
  %366 = extractvalue { ptr, i32 } %365, 0
  store ptr %366, ptr %11, align 8
  %367 = extractvalue { ptr, i32 } %365, 1
  store i32 %367, ptr %12, align 4
  call void @__cxa_free_exception(ptr %362) #8
  br label %397

368:                                              ; preds = %360
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr %51) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #8
  %369 = getelementptr inbounds %"struct.DynexCN::KeyPair", ptr %48, i32 0, i32 0
  store ptr %369, ptr %53, align 8, !tbaa !5
  %370 = getelementptr inbounds %"class.std::initializer_list.552", ptr %52, i32 0, i32 0
  store ptr %53, ptr %370, align 8, !tbaa !181
  %371 = getelementptr inbounds %"class.std::initializer_list.552", ptr %52, i32 0, i32 1
  store i64 1, ptr %371, align 8, !tbaa !183
  call void @llvm.lifetime.start.p0(i64 1, ptr %54) #8
  call void @_ZNSaIPKN6Crypto9PublicKeyEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %54) #8
  %372 = getelementptr inbounds { ptr, i64 }, ptr %52, i32 0, i32 0
  %373 = load ptr, ptr %372, align 8
  %374 = getelementptr inbounds { ptr, i64 }, ptr %52, i32 0, i32 1
  %375 = load i64, ptr %374, align 8
  invoke void @_ZNSt6vectorIPKN6Crypto9PublicKeyESaIS3_EEC2ESt16initializer_listIS3_ERKS4_(ptr noundef nonnull align 8 dereferenceable(24) %51, ptr %373, i64 %375, ptr noundef nonnull align 1 dereferenceable(1) %54)
          to label %376 unwind label %388

376:                                              ; preds = %368
  call void @_ZNSt15__new_allocatorIPKN6Crypto9PublicKeyEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %54) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %54) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #8
  store ptr %51, ptr %50, align 8, !tbaa !5
  %377 = load ptr, ptr %42, align 8, !tbaa !5
  %378 = getelementptr inbounds %"struct.DynexCN::reserve_proof_entry", ptr %377, i32 0, i32 3
  %379 = load ptr, ptr %50, align 8, !tbaa !5
  %380 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPKN6Crypto9PublicKeyESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %379, i64 noundef 0) #8
  %381 = getelementptr inbounds %"struct.DynexCN::KeyPair", ptr %48, i32 0, i32 1
  %382 = load ptr, ptr %42, align 8, !tbaa !5
  %383 = getelementptr inbounds %"struct.DynexCN::reserve_proof_entry", ptr %382, i32 0, i32 5
  invoke void @_ZN6Crypto23generate_ring_signatureERKNS_4HashERKNS_8KeyImageEPKPKNS_9PublicKeyEmRKNS_9SecretKeyEmPNS_9SignatureE(ptr noundef nonnull align 1 dereferenceable(32) %37, ptr noundef nonnull align 1 dereferenceable(32) %378, ptr noundef %380, i64 noundef 1, ptr noundef nonnull align 1 dereferenceable(32) %381, i64 noundef 0, ptr noundef %383)
          to label %384 unwind label %392

384:                                              ; preds = %376
  call void @_ZNSt6vectorIPKN6Crypto9PublicKeyESaIS3_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %51) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %51) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %49) #8
  call void @llvm.lifetime.end.p0(i64 64, ptr %48) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %47) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %43) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #8
  br label %385

385:                                              ; preds = %384
  %386 = load i64, ptr %40, align 8, !tbaa !22
  %387 = add i64 %386, 1
  store i64 %387, ptr %40, align 8, !tbaa !22
  br label %251, !llvm.loop !184

388:                                              ; preds = %368
  %389 = landingpad { ptr, i32 }
          cleanup
  %390 = extractvalue { ptr, i32 } %389, 0
  store ptr %390, ptr %11, align 8
  %391 = extractvalue { ptr, i32 } %389, 1
  store i32 %391, ptr %12, align 4
  call void @_ZNSt15__new_allocatorIPKN6Crypto9PublicKeyEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %54) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %54) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #8
  br label %396

392:                                              ; preds = %376
  %393 = landingpad { ptr, i32 }
          cleanup
  %394 = extractvalue { ptr, i32 } %393, 0
  store ptr %394, ptr %11, align 8
  %395 = extractvalue { ptr, i32 } %393, 1
  store i32 %395, ptr %12, align 4
  call void @_ZNSt6vectorIPKN6Crypto9PublicKeyESaIS3_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %51) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %51) #8
  br label %396

396:                                              ; preds = %392, %388
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #8
  br label %397

397:                                              ; preds = %396, %364, %351, %347
  call void @llvm.lifetime.end.p0(i64 1, ptr %49) #8
  call void @llvm.lifetime.end.p0(i64 64, ptr %48) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %47) #8
  br label %398

398:                                              ; preds = %397, %343, %319
  call void @llvm.lifetime.end.p0(i64 32, ptr %43) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #8
  br label %452

399:                                              ; preds = %255
  call void @llvm.lifetime.start.p0(i64 64, ptr %55) #8
  %400 = getelementptr inbounds %"struct.DynexCN::AccountKeys", ptr %28, i32 0, i32 0
  %401 = getelementptr inbounds %"struct.DynexCN::AccountPublicAddress", ptr %400, i32 0, i32 0
  %402 = getelementptr inbounds %"struct.DynexCN::AccountKeys", ptr %28, i32 0, i32 1
  invoke void @_ZN6Crypto18generate_signatureERKNS_4HashERKNS_9PublicKeyERKNS_9SecretKeyERNS_9SignatureE(ptr noundef nonnull align 1 dereferenceable(32) %37, ptr noundef nonnull align 1 dereferenceable(32) %401, ptr noundef nonnull align 1 dereferenceable(32) %402, ptr noundef nonnull align 1 dereferenceable(64) %55)
          to label %403 unwind label %421

403:                                              ; preds = %399
  call void @llvm.lifetime.start.p0(i64 88, ptr %56) #8
  call void @_ZN7DynexCN13reserve_proofC2Ev(ptr noundef nonnull align 8 dereferenceable(88) %56) #8
  %404 = getelementptr inbounds %"struct.DynexCN::reserve_proof", ptr %56, i32 0, i32 0
  %405 = call ptr @_ZNSt6vectorIN7DynexCN19reserve_proof_entryESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %38) #8
  %406 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.553", ptr %57, i32 0, i32 0
  store ptr %405, ptr %406, align 8
  %407 = call ptr @_ZNSt6vectorIN7DynexCN19reserve_proof_entryESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %38) #8
  %408 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.553", ptr %58, i32 0, i32 0
  store ptr %407, ptr %408, align 8
  %409 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.553", ptr %57, i32 0, i32 0
  %410 = load ptr, ptr %409, align 8
  %411 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.553", ptr %58, i32 0, i32 0
  %412 = load ptr, ptr %411, align 8
  invoke void @_ZNSt6vectorIN7DynexCN19reserve_proof_entryESaIS1_EE6assignIN9__gnu_cxx17__normal_iteratorIPS1_S3_EEvEEvT_S9_(ptr noundef nonnull align 8 dereferenceable(24) %404, ptr %410, ptr %412)
          to label %413 unwind label %425

413:                                              ; preds = %403
  %414 = getelementptr inbounds %"struct.DynexCN::reserve_proof", ptr %56, i32 0, i32 1
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %414, ptr align 1 %55, i64 64, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr %59) #8
  invoke void @_ZN7DynexCN13toBinaryArrayINS_13reserve_proofEEESt6vectorIhSaIhEERKT_(ptr dead_on_unwind writable sret(%"class.std::vector.135") align 8 %59, ptr noundef nonnull align 8 dereferenceable(88) %56)
          to label %415 unwind label %429

415:                                              ; preds = %413
  store i1 false, ptr %60, align 1
  invoke void @_ZN6Common5toHexB5cxx11ERKSt6vectorIhSaIhEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %0, ptr noundef nonnull align 8 dereferenceable(24) %59)
          to label %416 unwind label %433

416:                                              ; preds = %415
  call void @llvm.lifetime.start.p0(i64 32, ptr %61) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %62) #8
  invoke void @_ZN5Tools6Base586encodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %62, ptr noundef nonnull align 8 dereferenceable(32) %0)
          to label %417 unwind label %437

417:                                              ; preds = %416
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %61, ptr noundef @.str.209, ptr noundef nonnull align 8 dereferenceable(32) %62)
          to label %418 unwind label %441

418:                                              ; preds = %417
  %419 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef nonnull align 8 dereferenceable(32) %61) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %62) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %61) #8
  store i1 true, ptr %60, align 1
  store i32 1, ptr %20, align 4
  %420 = load i1, ptr %60, align 1
  br i1 %420, label %447, label %446

421:                                              ; preds = %399
  %422 = landingpad { ptr, i32 }
          cleanup
  %423 = extractvalue { ptr, i32 } %422, 0
  store ptr %423, ptr %11, align 8
  %424 = extractvalue { ptr, i32 } %422, 1
  store i32 %424, ptr %12, align 4
  br label %451

425:                                              ; preds = %403
  %426 = landingpad { ptr, i32 }
          cleanup
  %427 = extractvalue { ptr, i32 } %426, 0
  store ptr %427, ptr %11, align 8
  %428 = extractvalue { ptr, i32 } %426, 1
  store i32 %428, ptr %12, align 4
  br label %450

429:                                              ; preds = %413
  %430 = landingpad { ptr, i32 }
          cleanup
  %431 = extractvalue { ptr, i32 } %430, 0
  store ptr %431, ptr %11, align 8
  %432 = extractvalue { ptr, i32 } %430, 1
  store i32 %432, ptr %12, align 4
  br label %449

433:                                              ; preds = %415
  %434 = landingpad { ptr, i32 }
          cleanup
  %435 = extractvalue { ptr, i32 } %434, 0
  store ptr %435, ptr %11, align 8
  %436 = extractvalue { ptr, i32 } %434, 1
  store i32 %436, ptr %12, align 4
  br label %448

437:                                              ; preds = %416
  %438 = landingpad { ptr, i32 }
          cleanup
  %439 = extractvalue { ptr, i32 } %438, 0
  store ptr %439, ptr %11, align 8
  %440 = extractvalue { ptr, i32 } %438, 1
  store i32 %440, ptr %12, align 4
  br label %445

441:                                              ; preds = %417
  %442 = landingpad { ptr, i32 }
          cleanup
  %443 = extractvalue { ptr, i32 } %442, 0
  store ptr %443, ptr %11, align 8
  %444 = extractvalue { ptr, i32 } %442, 1
  store i32 %444, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #8
  br label %445

445:                                              ; preds = %441, %437
  call void @llvm.lifetime.end.p0(i64 32, ptr %62) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %61) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %0) #8
  br label %448

446:                                              ; preds = %418
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %0) #8
  br label %447

447:                                              ; preds = %446, %418
  call void @_ZNSt6vectorIhSaIhEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %59) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %59) #8
  call void @_ZN7DynexCN13reserve_proofD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %56) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %56) #8
  call void @llvm.lifetime.end.p0(i64 64, ptr %55) #8
  call void @_ZNSt6vectorIN7DynexCN19reserve_proof_entryESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %38) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %38) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %37) #8
  call void @llvm.lifetime.end.p0(i64 64, ptr %32) #8
  call void @_ZNSt6vectorIN6Crypto8KeyImageESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %31) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %31) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %30) #8
  call void @llvm.lifetime.end.p0(i64 128, ptr %28) #8
  call void @_ZNSt6vectorIN7DynexCN28TransactionOutputInformationESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %23) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %23) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #8
  call void @_ZNSt6vectorIN7DynexCN11WalletGreen10WalletOutsESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %14) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %14) #8
  call void @_ZNSt6vectorIN7DynexCN11WalletGreen16OutputToTransferESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %13) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %13) #8
  ret void

448:                                              ; preds = %445, %433
  call void @_ZNSt6vectorIhSaIhEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %59) #8
  br label %449

449:                                              ; preds = %448, %429
  call void @llvm.lifetime.end.p0(i64 24, ptr %59) #8
  br label %450

450:                                              ; preds = %449, %425
  call void @_ZN7DynexCN13reserve_proofD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %56) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %56) #8
  br label %451

451:                                              ; preds = %450, %421
  call void @llvm.lifetime.end.p0(i64 64, ptr %55) #8
  br label %452

452:                                              ; preds = %451, %398
  call void @_ZNSt6vectorIN7DynexCN19reserve_proof_entryESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %38) #8
  br label %453

453:                                              ; preds = %452, %260
  call void @llvm.lifetime.end.p0(i64 24, ptr %38) #8
  br label %454

454:                                              ; preds = %453, %256
  call void @llvm.lifetime.end.p0(i64 32, ptr %37) #8
  br label %455

455:                                              ; preds = %454, %244
  call void @llvm.lifetime.end.p0(i64 64, ptr %32) #8
  call void @_ZNSt6vectorIN6Crypto8KeyImageESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %31) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %31) #8
  br label %456

456:                                              ; preds = %455, %208
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #8
  br label %457

457:                                              ; preds = %456, %204
  call void @llvm.lifetime.end.p0(i64 32, ptr %30) #8
  call void @llvm.lifetime.end.p0(i64 128, ptr %28) #8
  br label %458

458:                                              ; preds = %457, %174
  call void @_ZNSt6vectorIN7DynexCN28TransactionOutputInformationESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %23) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %23) #8
  br label %459

459:                                              ; preds = %458, %153, %149
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #8
  br label %460

460:                                              ; preds = %459, %132, %91
  call void @_ZNSt6vectorIN7DynexCN11WalletGreen10WalletOutsESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %14) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %14) #8
  call void @_ZNSt6vectorIN7DynexCN11WalletGreen16OutputToTransferESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %13) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %13) #8
  br label %461

461:                                              ; preds = %460, %72
  %462 = load ptr, ptr %11, align 8
  %463 = load i32, ptr %12, align 4
  %464 = insertvalue { ptr, i32 } poison, ptr %462, 0
  %465 = insertvalue { ptr, i32 } %464, i32 %463, 1
  resume { ptr, i32 } %465

466:                                              ; preds = %363, %342, %301, %228, %148
  unreachable
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

declare noundef zeroext i1 @_ZN7DynexCN25generate_key_image_helperERKNS_11AccountKeysERKN6Crypto9PublicKeyEmRNS_7KeyPairERNS3_8KeyImageE(ptr noundef nonnull align 1 dereferenceable(128), ptr noundef nonnull align 1 dereferenceable(32), i64 noundef, ptr noundef nonnull align 1 dereferenceable(64), ptr noundef nonnull align 1 dereferenceable(32)) #6

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6Crypto12cn_fast_hashEPKvmRNS_4HashE(ptr noundef, i64 noundef, ptr noundef nonnull align 1 dereferenceable(32)) #4

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

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

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6Crypto23generate_ring_signatureERKNS_4HashERKNS_8KeyImageEPKPKNS_9PublicKeyEmRKNS_9SecretKeyEmPNS_9SignatureE(ptr noundef nonnull align 1 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(32), ptr noundef, i64 noundef, ptr noundef nonnull align 1 dereferenceable(32), i64 noundef, ptr noundef) #4

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6Crypto18generate_signatureERKNS_4HashERKNS_9PublicKeyERKNS_9SecretKeyERNS_9SignatureE(ptr noundef nonnull align 1 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(64)) #4

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

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

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

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

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

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

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

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

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"vtable pointer", !8, i64 0}
!11 = !{!12, !6, i64 0}
!12 = !{!"_ZTSN7DynexCN11WalletGreen10WalletOutsE", !6, i64 0, !13, i64 8}
!13 = !{!"_ZTSSt6vectorIN7DynexCN28TransactionOutputInformationESaIS1_EE", !14, i64 0}
!14 = !{!"_ZTSSt12_Vector_baseIN7DynexCN28TransactionOutputInformationESaIS1_EE", !15, i64 0}
!15 = !{!"_ZTSNSt12_Vector_baseIN7DynexCN28TransactionOutputInformationESaIS1_EE12_Vector_implE", !16, i64 0}
!16 = !{!"_ZTSNSt12_Vector_baseIN7DynexCN28TransactionOutputInformationESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!17 = !{!18, !21, i64 80}
!18 = !{!"_ZTSN7DynexCN12WalletRecordE", !19, i64 0, !20, i64 32, !6, i64 64, !21, i64 72, !21, i64 80, !21, i64 88}
!19 = !{!"_ZTSN6Crypto9PublicKeyE", !7, i64 0}
!20 = !{!"_ZTSN6Crypto9SecretKeyE", !7, i64 0}
!21 = !{!"long", !7, i64 0}
!22 = !{!21, !21, i64 0}
!23 = !{!24, !6, i64 48}
!24 = !{!"_ZTSN7DynexCN11WalletGreenE", !25, i64 0, !26, i64 8, !27, i64 16, !28, i64 24, !29, i64 32, !6, i64 40, !6, i64 48, !6, i64 56, !30, i64 64, !33, i64 104, !34, i64 112, !54, i64 288, !57, i64 400, !71, i64 488, !85, i64 608, !89, i64 632, !93, i64 688, !33, i64 736, !101, i64 744, !137, i64 1184, !144, i64 1376, !145, i64 1408, !144, i64 1488, !151, i64 1520, !31, i64 1528, !152, i64 1560, !31, i64 1592, !31, i64 1624, !19, i64 1656, !20, i64 1688, !21, i64 1720, !21, i64 1728, !21, i64 1736, !56, i64 1744, !153, i64 1752}
!25 = !{!"_ZTSN7DynexCN7IWalletE"}
!26 = !{!"_ZTSN7DynexCN18ITransfersObserverE"}
!27 = !{!"_ZTSN7DynexCN31IBlockchainSynchronizerObserverE"}
!28 = !{!"_ZTSN7DynexCN30ITransfersSynchronizerObserverE"}
!29 = !{!"_ZTSN7DynexCN14IFusionManagerE"}
!30 = !{!"_ZTSN7Logging9LoggerRefE", !6, i64 0, !31, i64 8}
!31 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !32, i64 0, !21, i64 8, !7, i64 16}
!32 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!33 = !{!"bool", !7, i64 0}
!34 = !{!"_ZTSN5boost11multi_index21multi_index_containerIN7DynexCN12WalletRecordENS0_10indexed_byINS0_13random_accessINS0_3tagINS2_17RandomAccessIndexEN4mpl_2naES9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_EEEENS0_13hashed_uniqueINS6_INS2_9KeysIndexES9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_EENS0_6memberIS3_N6Crypto9PublicKeyEXadL_ZNS3_14spendPublicKeyEEEEES9_S9_EENSC_INS6_INS2_23TransfersContainerIndexES9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_EENSF_IS3_PNS2_19ITransfersContainerEXadL_ZNS3_9containerEEEEES9_S9_EES9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_EESaIS3_EEE", !35, i64 0, !37, i64 8, !38, i64 16, !21, i64 168}
!35 = !{!"_ZTSN5boost16base_from_memberISaINS_11multi_index6detail24random_access_index_nodeINS2_17hashed_index_nodeINS4_INS2_15index_node_baseIN7DynexCN12WalletRecordESaIS7_EEEEEEEEEELi0EEE", !36, i64 0}
!36 = !{!"_ZTSSaIN5boost11multi_index6detail24random_access_index_nodeINS1_17hashed_index_nodeINS3_INS1_15index_node_baseIN7DynexCN12WalletRecordESaIS6_EEEEEEEEEE"}
!37 = !{!"_ZTSN5boost11multi_index6detail13header_holderIPNS1_24random_access_index_nodeINS1_17hashed_index_nodeINS4_INS1_15index_node_baseIN7DynexCN12WalletRecordESaIS7_EEEEEEEEENS0_21multi_index_containerIS7_NS0_10indexed_byINS0_13random_accessINS0_3tagINS6_17RandomAccessIndexEN4mpl_2naESK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_EEEENS0_13hashed_uniqueINSH_INS6_9KeysIndexESK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_EENS0_6memberIS7_N6Crypto9PublicKeyEXadL_ZNS7_14spendPublicKeyEEEEESK_SK_EENSN_INSH_INS6_23TransfersContainerIndexESK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_EENSQ_IS7_PNS6_19ITransfersContainerEXadL_ZNS7_9containerEEEEESK_SK_EESK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_EES8_EEEE", !6, i64 0}
!38 = !{!"_ZTSN5boost11multi_index6detail19random_access_indexINS1_9nth_layerILi1EN7DynexCN12WalletRecordENS0_10indexed_byINS0_13random_accessINS0_3tagINS4_17RandomAccessIndexEN4mpl_2naESB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_EEEENS0_13hashed_uniqueINS8_INS4_9KeysIndexESB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_EENS0_6memberIS5_N6Crypto9PublicKeyEXadL_ZNS5_14spendPublicKeyEEEEESB_SB_EENSE_INS8_INS4_23TransfersContainerIndexESB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_EENSH_IS5_PNS4_19ITransfersContainerEXadL_ZNS5_9containerEEEEESB_SB_EESB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_EESaIS5_EEENS_3mpl6v_itemIS9_NSV_7vector0ISB_EELi0EEEEE", !39, i64 0, !51, i64 112}
!39 = !{!"_ZTSN5boost11multi_index6detail12hashed_indexINS0_6memberIN7DynexCN12WalletRecordEN6Crypto9PublicKeyEXadL_ZNS5_14spendPublicKeyEEEEENS_4hashIS7_EESt8equal_toIS7_ENS1_9nth_layerILi2ES5_NS0_10indexed_byINS0_13random_accessINS0_3tagINS4_17RandomAccessIndexEN4mpl_2naESJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_EEEENS0_13hashed_uniqueINSG_INS4_9KeysIndexESJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_EES8_SJ_SJ_EENSM_INSG_INS4_23TransfersContainerIndexESJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_EENS3_IS5_PNS4_19ITransfersContainerEXadL_ZNS5_9containerEEEEESJ_SJ_EESJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_EESaIS5_EEENS_3mpl6v_itemISN_NSZ_7vector0ISJ_EELi0EEENS1_17hashed_unique_tagEEE", !40, i64 0, !48, i64 56, !49, i64 57, !50, i64 58, !44, i64 64, !47, i64 96, !21, i64 104}
!40 = !{!"_ZTSN5boost11multi_index6detail12hashed_indexINS0_6memberIN7DynexCN12WalletRecordEPNS4_19ITransfersContainerEXadL_ZNS5_9containerEEEEENS_4hashIS7_EESt8equal_toIS7_ENS1_9nth_layerILi3ES5_NS0_10indexed_byINS0_13random_accessINS0_3tagINS4_17RandomAccessIndexEN4mpl_2naESJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_EEEENS0_13hashed_uniqueINSG_INS4_9KeysIndexESJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_EENS3_IS5_N6Crypto9PublicKeyEXadL_ZNS5_14spendPublicKeyEEEEESJ_SJ_EENSM_INSG_INS4_23TransfersContainerIndexESJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_EES8_SJ_SJ_EESJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_EESaIS5_EEENS_3mpl6v_itemIST_NSZ_7vector0ISJ_EELi0EEENS1_17hashed_unique_tagEEE", !41, i64 0, !42, i64 1, !43, i64 2, !44, i64 8, !47, i64 40, !21, i64 48}
!41 = !{!"_ZTSN5boost11multi_index6memberIN7DynexCN12WalletRecordEPNS2_19ITransfersContainerEXadL_ZNS3_9containerEEEEE"}
!42 = !{!"_ZTSN5boost4hashIPN7DynexCN19ITransfersContainerEEE"}
!43 = !{!"_ZTSSt8equal_toIPN7DynexCN19ITransfersContainerEE"}
!44 = !{!"_ZTSN5boost11multi_index6detail12bucket_arrayISaIN7DynexCN12WalletRecordEEEE", !21, i64 0, !45, i64 8}
!45 = !{!"_ZTSN5boost11multi_index6detail10auto_spaceINS1_27hashed_index_base_node_implISaIcEEESaIN7DynexCN12WalletRecordEEEE", !46, i64 0, !21, i64 8, !6, i64 16}
!46 = !{!"_ZTSSaIN5boost11multi_index6detail27hashed_index_base_node_implISaIcEEEE"}
!47 = !{!"float", !7, i64 0}
!48 = !{!"_ZTSN5boost11multi_index6memberIN7DynexCN12WalletRecordEN6Crypto9PublicKeyEXadL_ZNS3_14spendPublicKeyEEEEE"}
!49 = !{!"_ZTSN5boost4hashIN6Crypto9PublicKeyEEE"}
!50 = !{!"_ZTSSt8equal_toIN6Crypto9PublicKeyEE"}
!51 = !{!"_ZTSN5boost11multi_index6detail29random_access_index_ptr_arrayISaIN7DynexCN12WalletRecordEEEE", !21, i64 0, !21, i64 8, !52, i64 16}
!52 = !{!"_ZTSN5boost11multi_index6detail10auto_spaceIPNS1_29random_access_index_node_implISaIcEEESaIN7DynexCN12WalletRecordEEEE", !53, i64 0, !21, i64 8, !6, i64 16}
!53 = !{!"_ZTSSaIPN5boost11multi_index6detail29random_access_index_node_implISaIcEEEE"}
!54 = !{!"_ZTSN6Common16FileMappedVectorIN7DynexCN21EncryptedWalletRecordEEE", !31, i64 0, !55, i64 32, !21, i64 88, !21, i64 96, !33, i64 104}
!55 = !{!"_ZTSN6System16MemoryMappedFileE", !56, i64 0, !31, i64 8, !21, i64 40, !6, i64 48}
!56 = !{!"int", !7, i64 0}
!57 = !{!"_ZTSN5boost11multi_index21multi_index_containerIN7DynexCN20UnlockTransactionJobENS0_10indexed_byINS0_18ordered_non_uniqueINS0_3tagINS2_16BlockHeightIndexEN4mpl_2naES9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_EENS0_6memberIS3_jXadL_ZNS3_11blockHeightEEEEES9_EENS0_17hashed_non_uniqueINS6_INS2_20TransactionHashIndexES9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_EENSB_IS3_N6Crypto4HashEXadL_ZNS3_15transactionHashEEEEES9_S9_EES9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_EESaIS3_EEE", !58, i64 0, !60, i64 8, !61, i64 16, !21, i64 80}
!58 = !{!"_ZTSN5boost16base_from_memberISaINS_11multi_index6detail18ordered_index_nodeINS2_19null_augment_policyENS2_17hashed_index_nodeINS2_15index_node_baseIN7DynexCN20UnlockTransactionJobESaIS8_EEEEEEEELi0EEE", !59, i64 0}
!59 = !{!"_ZTSSaIN5boost11multi_index6detail18ordered_index_nodeINS1_19null_augment_policyENS1_17hashed_index_nodeINS1_15index_node_baseIN7DynexCN20UnlockTransactionJobESaIS7_EEEEEEEE"}
!60 = !{!"_ZTSN5boost11multi_index6detail13header_holderIPNS1_18ordered_index_nodeINS1_19null_augment_policyENS1_17hashed_index_nodeINS1_15index_node_baseIN7DynexCN20UnlockTransactionJobESaIS8_EEEEEEENS0_21multi_index_containerIS8_NS0_10indexed_byINS0_18ordered_non_uniqueINS0_3tagINS7_16BlockHeightIndexEN4mpl_2naESK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_EENS0_6memberIS8_jXadL_ZNS8_11blockHeightEEEEESK_EENS0_17hashed_non_uniqueINSH_INS7_20TransactionHashIndexESK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_EENSM_IS8_N6Crypto4HashEXadL_ZNS8_15transactionHashEEEEESK_SK_EESK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_EES9_EEEE", !6, i64 0}
!61 = !{!"_ZTSN5boost11multi_index6detail13ordered_indexINS0_6memberIN7DynexCN20UnlockTransactionJobEjXadL_ZNS5_11blockHeightEEEEESt4lessIjENS1_9nth_layerILi1ES5_NS0_10indexed_byINS0_18ordered_non_uniqueINS0_3tagINS4_16BlockHeightIndexEN4mpl_2naESF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_EES6_SF_EENS0_17hashed_non_uniqueINSC_INS4_20TransactionHashIndexESF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_EENS3_IS5_N6Crypto4HashEXadL_ZNS5_15transactionHashEEEEESF_SF_EESF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_EESaIS5_EEENS_3mpl6v_itemISD_NSS_7vector0ISF_EELi0EEENS1_22ordered_non_unique_tagENS1_19null_augment_policyEEE", !62, i64 0}
!62 = !{!"_ZTSN5boost11multi_index6detail18ordered_index_implINS0_6memberIN7DynexCN20UnlockTransactionJobEjXadL_ZNS5_11blockHeightEEEEESt4lessIjENS1_9nth_layerILi1ES5_NS0_10indexed_byINS0_18ordered_non_uniqueINS0_3tagINS4_16BlockHeightIndexEN4mpl_2naESF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_EES6_SF_EENS0_17hashed_non_uniqueINSC_INS4_20TransactionHashIndexESF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_EENS3_IS5_N6Crypto4HashEXadL_ZNS5_15transactionHashEEEEESF_SF_EESF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_EESaIS5_EEENS_3mpl6v_itemISD_NSS_7vector0ISF_EELi0EEENS1_22ordered_non_unique_tagENS1_19null_augment_policyEEE", !63, i64 0, !69, i64 56, !70, i64 57}
!63 = !{!"_ZTSN5boost11multi_index6detail12hashed_indexINS0_6memberIN7DynexCN20UnlockTransactionJobEN6Crypto4HashEXadL_ZNS5_15transactionHashEEEEENS_4hashIS7_EESt8equal_toIS7_ENS1_9nth_layerILi2ES5_NS0_10indexed_byINS0_18ordered_non_uniqueINS0_3tagINS4_16BlockHeightIndexEN4mpl_2naESJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_EENS3_IS5_jXadL_ZNS5_11blockHeightEEEEESJ_EENS0_17hashed_non_uniqueINSG_INS4_20TransactionHashIndexESJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_EES8_SJ_SJ_EESJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_EESaIS5_EEENS_3mpl6v_itemISO_NSU_7vector0ISJ_EELi0EEENS1_21hashed_non_unique_tagEEE", !64, i64 0, !65, i64 1, !66, i64 2, !67, i64 8, !47, i64 40, !21, i64 48}
!64 = !{!"_ZTSN5boost11multi_index6memberIN7DynexCN20UnlockTransactionJobEN6Crypto4HashEXadL_ZNS3_15transactionHashEEEEE"}
!65 = !{!"_ZTSN5boost4hashIN6Crypto4HashEEE"}
!66 = !{!"_ZTSSt8equal_toIN6Crypto4HashEE"}
!67 = !{!"_ZTSN5boost11multi_index6detail12bucket_arrayISaIN7DynexCN20UnlockTransactionJobEEEE", !21, i64 0, !68, i64 8}
!68 = !{!"_ZTSN5boost11multi_index6detail10auto_spaceINS1_27hashed_index_base_node_implISaIcEEESaIN7DynexCN20UnlockTransactionJobEEEE", !46, i64 0, !21, i64 8, !6, i64 16}
!69 = !{!"_ZTSN5boost11multi_index6memberIN7DynexCN20UnlockTransactionJobEjXadL_ZNS3_11blockHeightEEEEE"}
!70 = !{!"_ZTSSt4lessIjE"}
!71 = !{!"_ZTSN5boost11multi_index21multi_index_containerIN7DynexCN17WalletTransactionENS0_10indexed_byINS0_13random_accessINS0_3tagINS2_17RandomAccessIndexEN4mpl_2naES9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_EEEENS0_13hashed_uniqueINS6_INS2_16TransactionIndexES9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_EENS0_6memberIS3_N6Crypto4HashEXadL_ZNS3_4hashEEEEES9_S9_EENS0_18ordered_non_uniqueINS6_INS2_16BlockHeightIndexES9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_EENSF_IS3_jXadL_ZNS3_11blockHeightEEEEES9_EES9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_EESaIS3_EEE", !72, i64 0, !74, i64 8, !75, i64 16, !21, i64 112}
!72 = !{!"_ZTSN5boost16base_from_memberISaINS_11multi_index6detail24random_access_index_nodeINS2_17hashed_index_nodeINS2_18ordered_index_nodeINS2_19null_augment_policyENS2_15index_node_baseIN7DynexCN17WalletTransactionESaIS9_EEEEEEEEEELi0EEE", !73, i64 0}
!73 = !{!"_ZTSSaIN5boost11multi_index6detail24random_access_index_nodeINS1_17hashed_index_nodeINS1_18ordered_index_nodeINS1_19null_augment_policyENS1_15index_node_baseIN7DynexCN17WalletTransactionESaIS8_EEEEEEEEEE"}
!74 = !{!"_ZTSN5boost11multi_index6detail13header_holderIPNS1_24random_access_index_nodeINS1_17hashed_index_nodeINS1_18ordered_index_nodeINS1_19null_augment_policyENS1_15index_node_baseIN7DynexCN17WalletTransactionESaIS9_EEEEEEEEENS0_21multi_index_containerIS9_NS0_10indexed_byINS0_13random_accessINS0_3tagINS8_17RandomAccessIndexEN4mpl_2naESM_SM_SM_SM_SM_SM_SM_SM_SM_SM_SM_SM_SM_SM_SM_SM_SM_SM_EEEENS0_13hashed_uniqueINSJ_INS8_16TransactionIndexESM_SM_SM_SM_SM_SM_SM_SM_SM_SM_SM_SM_SM_SM_SM_SM_SM_SM_SM_EENS0_6memberIS9_N6Crypto4HashEXadL_ZNS9_4hashEEEEESM_SM_EENS0_18ordered_non_uniqueINSJ_INS8_16BlockHeightIndexESM_SM_SM_SM_SM_SM_SM_SM_SM_SM_SM_SM_SM_SM_SM_SM_SM_SM_SM_EENSS_IS9_jXadL_ZNS9_11blockHeightEEEEESM_EESM_SM_SM_SM_SM_SM_SM_SM_SM_SM_SM_SM_SM_SM_SM_SM_SM_EESA_EEEE", !6, i64 0}
!75 = !{!"_ZTSN5boost11multi_index6detail19random_access_indexINS1_9nth_layerILi1EN7DynexCN17WalletTransactionENS0_10indexed_byINS0_13random_accessINS0_3tagINS4_17RandomAccessIndexEN4mpl_2naESB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_EEEENS0_13hashed_uniqueINS8_INS4_16TransactionIndexESB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_EENS0_6memberIS5_N6Crypto4HashEXadL_ZNS5_4hashEEEEESB_SB_EENS0_18ordered_non_uniqueINS8_INS4_16BlockHeightIndexESB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_EENSH_IS5_jXadL_ZNS5_11blockHeightEEEEESB_EESB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_EESaIS5_EEENS_3mpl6v_itemIS9_NSU_7vector0ISB_EELi0EEEEE", !76, i64 0, !83, i64 56}
!76 = !{!"_ZTSN5boost11multi_index6detail12hashed_indexINS0_6memberIN7DynexCN17WalletTransactionEN6Crypto4HashEXadL_ZNS5_4hashEEEEENS_4hashIS7_EESt8equal_toIS7_ENS1_9nth_layerILi2ES5_NS0_10indexed_byINS0_13random_accessINS0_3tagINS4_17RandomAccessIndexEN4mpl_2naESJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_EEEENS0_13hashed_uniqueINSG_INS4_16TransactionIndexESJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_EES8_SJ_SJ_EENS0_18ordered_non_uniqueINSG_INS4_16BlockHeightIndexESJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_EENS3_IS5_jXadL_ZNS5_11blockHeightEEEEESJ_EESJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_EESaIS5_EEENS_3mpl6v_itemISN_NSY_7vector0ISJ_EELi0EEENS1_17hashed_unique_tagEEE", !77, i64 0, !80, i64 2, !65, i64 3, !66, i64 4, !81, i64 8, !47, i64 40, !21, i64 48}
!77 = !{!"_ZTSN5boost11multi_index6detail13ordered_indexINS0_6memberIN7DynexCN17WalletTransactionEjXadL_ZNS5_11blockHeightEEEEESt4lessIjENS1_9nth_layerILi3ES5_NS0_10indexed_byINS0_13random_accessINS0_3tagINS4_17RandomAccessIndexEN4mpl_2naESF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_EEEENS0_13hashed_uniqueINSC_INS4_16TransactionIndexESF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_EENS3_IS5_N6Crypto4HashEXadL_ZNS5_4hashEEEEESF_SF_EENS0_18ordered_non_uniqueINSC_INS4_16BlockHeightIndexESF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_EES6_SF_EESF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_EESaIS5_EEENS_3mpl6v_itemISQ_NSW_7vector0ISF_EELi0EEENS1_22ordered_non_unique_tagENS1_19null_augment_policyEEE", !78, i64 0}
!78 = !{!"_ZTSN5boost11multi_index6detail18ordered_index_implINS0_6memberIN7DynexCN17WalletTransactionEjXadL_ZNS5_11blockHeightEEEEESt4lessIjENS1_9nth_layerILi3ES5_NS0_10indexed_byINS0_13random_accessINS0_3tagINS4_17RandomAccessIndexEN4mpl_2naESF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_EEEENS0_13hashed_uniqueINSC_INS4_16TransactionIndexESF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_EENS3_IS5_N6Crypto4HashEXadL_ZNS5_4hashEEEEESF_SF_EENS0_18ordered_non_uniqueINSC_INS4_16BlockHeightIndexESF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_EES6_SF_EESF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_EESaIS5_EEENS_3mpl6v_itemISQ_NSW_7vector0ISF_EELi0EEENS1_22ordered_non_unique_tagENS1_19null_augment_policyEEE", !79, i64 0, !70, i64 1}
!79 = !{!"_ZTSN5boost11multi_index6memberIN7DynexCN17WalletTransactionEjXadL_ZNS3_11blockHeightEEEEE"}
!80 = !{!"_ZTSN5boost11multi_index6memberIN7DynexCN17WalletTransactionEN6Crypto4HashEXadL_ZNS3_4hashEEEEE"}
!81 = !{!"_ZTSN5boost11multi_index6detail12bucket_arrayISaIN7DynexCN17WalletTransactionEEEE", !21, i64 0, !82, i64 8}
!82 = !{!"_ZTSN5boost11multi_index6detail10auto_spaceINS1_27hashed_index_base_node_implISaIcEEESaIN7DynexCN17WalletTransactionEEEE", !46, i64 0, !21, i64 8, !6, i64 16}
!83 = !{!"_ZTSN5boost11multi_index6detail29random_access_index_ptr_arrayISaIN7DynexCN17WalletTransactionEEEE", !21, i64 0, !21, i64 8, !84, i64 16}
!84 = !{!"_ZTSN5boost11multi_index6detail10auto_spaceIPNS1_29random_access_index_node_implISaIcEEESaIN7DynexCN17WalletTransactionEEEE", !53, i64 0, !21, i64 8, !6, i64 16}
!85 = !{!"_ZTSSt6vectorISt4pairImN7DynexCN14WalletTransferEESaIS3_EE", !86, i64 0}
!86 = !{!"_ZTSSt12_Vector_baseISt4pairImN7DynexCN14WalletTransferEESaIS3_EE", !87, i64 0}
!87 = !{!"_ZTSNSt12_Vector_baseISt4pairImN7DynexCN14WalletTransferEESaIS3_EE12_Vector_implE", !88, i64 0}
!88 = !{!"_ZTSNSt12_Vector_baseISt4pairImN7DynexCN14WalletTransferEESaIS3_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!89 = !{!"_ZTSSt13unordered_mapImbSt4hashImESt8equal_toImESaISt4pairIKmbEEE", !90, i64 0}
!90 = !{!"_ZTSSt10_HashtableImSt4pairIKmbESaIS2_ENSt8__detail10_Select1stESt8equal_toImESt4hashImENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb0ELb1EEEE", !6, i64 0, !21, i64 8, !91, i64 16, !21, i64 24, !92, i64 32, !6, i64 48}
!91 = !{!"_ZTSNSt8__detail15_Hash_node_baseE", !6, i64 0}
!92 = !{!"_ZTSNSt8__detail20_Prime_rehash_policyE", !47, i64 0, !21, i64 8}
!93 = !{!"_ZTSSt3mapImN7DynexCN11TransactionESt4lessImESaISt4pairIKmS1_EEE", !94, i64 0}
!94 = !{!"_ZTSSt8_Rb_treeImSt4pairIKmN7DynexCN11TransactionEESt10_Select1stIS4_ESt4lessImESaIS4_EE", !95, i64 0}
!95 = !{!"_ZTSNSt8_Rb_treeImSt4pairIKmN7DynexCN11TransactionEESt10_Select1stIS4_ESt4lessImESaIS4_EE13_Rb_tree_implIS8_Lb1EEE", !96, i64 0, !98, i64 8}
!96 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessImEE", !97, i64 0}
!97 = !{!"_ZTSSt4lessImE"}
!98 = !{!"_ZTSSt15_Rb_tree_header", !99, i64 0, !21, i64 32}
!99 = !{!"_ZTSSt18_Rb_tree_node_base", !100, i64 0, !6, i64 8, !6, i64 16, !6, i64 24}
!100 = !{!"_ZTSSt14_Rb_tree_color", !7, i64 0}
!101 = !{!"_ZTSN7DynexCN22BlockchainSynchronizerE", !102, i64 0, !113, i64 80, !30, i64 88, !114, i64 128, !6, i64 176, !119, i64 184, !119, i64 216, !120, i64 248, !120, i64 252, !121, i64 256, !127, i64 264, !132, i64 288, !111, i64 312, !111, i64 352, !135, i64 392}
!102 = !{!"_ZTSN7DynexCN15IObservableImplINS_31IBlockchainSynchronizerObserverENS_23IBlockchainSynchronizerEEE", !103, i64 0, !106, i64 16}
!103 = !{!"_ZTSN7DynexCN23IBlockchainSynchronizerE", !104, i64 0, !105, i64 8}
!104 = !{!"_ZTSN7DynexCN11IObservableINS_31IBlockchainSynchronizerObserverEEE"}
!105 = !{!"_ZTSN7DynexCN19IStreamSerializableE"}
!106 = !{!"_ZTSN5Tools15ObserverManagerIN7DynexCN31IBlockchainSynchronizerObserverEEE", !107, i64 0, !111, i64 24}
!107 = !{!"_ZTSSt6vectorIPN7DynexCN31IBlockchainSynchronizerObserverESaIS2_EE", !108, i64 0}
!108 = !{!"_ZTSSt12_Vector_baseIPN7DynexCN31IBlockchainSynchronizerObserverESaIS2_EE", !109, i64 0}
!109 = !{!"_ZTSNSt12_Vector_baseIPN7DynexCN31IBlockchainSynchronizerObserverESaIS2_EE12_Vector_implE", !110, i64 0}
!110 = !{!"_ZTSNSt12_Vector_baseIPN7DynexCN31IBlockchainSynchronizerObserverESaIS2_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!111 = !{!"_ZTSSt5mutex", !112, i64 0}
!112 = !{!"_ZTSSt12__mutex_base", !7, i64 0}
!113 = !{!"_ZTSN7DynexCN13INodeObserverE"}
!114 = !{!"_ZTSSt3mapIPN7DynexCN19IBlockchainConsumerESt10shared_ptrINS0_20SynchronizationStateEESt4lessIS2_ESaISt4pairIKS2_S5_EEE", !115, i64 0}
!115 = !{!"_ZTSSt8_Rb_treeIPN7DynexCN19IBlockchainConsumerESt4pairIKS2_St10shared_ptrINS0_20SynchronizationStateEEESt10_Select1stIS8_ESt4lessIS2_ESaIS8_EE", !116, i64 0}
!116 = !{!"_ZTSNSt8_Rb_treeIPN7DynexCN19IBlockchainConsumerESt4pairIKS2_St10shared_ptrINS0_20SynchronizationStateEEESt10_Select1stIS8_ESt4lessIS2_ESaIS8_EE13_Rb_tree_implISC_Lb1EEE", !117, i64 0, !98, i64 8}
!117 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessIPN7DynexCN19IBlockchainConsumerEEE", !118, i64 0}
!118 = !{!"_ZTSSt4lessIPN7DynexCN19IBlockchainConsumerEE"}
!119 = !{!"_ZTSN6Crypto4HashE", !7, i64 0}
!120 = !{!"_ZTSN7DynexCN22BlockchainSynchronizer5StateE", !7, i64 0}
!121 = !{!"_ZTSSt10unique_ptrISt6threadSt14default_deleteIS0_EE", !122, i64 0}
!122 = !{!"_ZTSSt15__uniq_ptr_dataISt6threadSt14default_deleteIS0_ELb1ELb1EE", !123, i64 0}
!123 = !{!"_ZTSSt15__uniq_ptr_implISt6threadSt14default_deleteIS0_EE", !124, i64 0}
!124 = !{!"_ZTSSt5tupleIJPSt6threadSt14default_deleteIS0_EEE", !125, i64 0}
!125 = !{!"_ZTSSt11_Tuple_implILm0EJPSt6threadSt14default_deleteIS0_EEE", !126, i64 0}
!126 = !{!"_ZTSSt10_Head_baseILm0EPSt6threadLb0EE", !6, i64 0}
!127 = !{!"_ZTSNSt7__cxx114listISt4pairIPKN7DynexCN18ITransactionReaderESt7promiseISt10error_codeEESaIS9_EEE", !128, i64 0}
!128 = !{!"_ZTSNSt7__cxx1110_List_baseISt4pairIPKN7DynexCN18ITransactionReaderESt7promiseISt10error_codeEESaIS9_EEE", !129, i64 0}
!129 = !{!"_ZTSNSt7__cxx1110_List_baseISt4pairIPKN7DynexCN18ITransactionReaderESt7promiseISt10error_codeEESaIS9_EE10_List_implE", !130, i64 0}
!130 = !{!"_ZTSNSt8__detail17_List_node_headerE", !131, i64 0, !21, i64 16}
!131 = !{!"_ZTSNSt8__detail15_List_node_baseE", !6, i64 0, !6, i64 8}
!132 = !{!"_ZTSNSt7__cxx114listISt4pairIPKN6Crypto4HashESt7promiseIvEESaIS8_EEE", !133, i64 0}
!133 = !{!"_ZTSNSt7__cxx1110_List_baseISt4pairIPKN6Crypto4HashESt7promiseIvEESaIS8_EEE", !134, i64 0}
!134 = !{!"_ZTSNSt7__cxx1110_List_baseISt4pairIPKN6Crypto4HashESt7promiseIvEESaIS8_EE10_List_implE", !130, i64 0}
!135 = !{!"_ZTSSt18condition_variable", !136, i64 0}
!136 = !{!"_ZTSSt9__condvar", !7, i64 0}
!137 = !{!"_ZTSN7DynexCN20TransfersSyncronizerE", !138, i64 0, !139, i64 8, !30, i64 16, !140, i64 56, !142, i64 112, !6, i64 168, !6, i64 176, !6, i64 184}
!138 = !{!"_ZTSN7DynexCN22ITransfersSynchronizerE", !105, i64 0}
!139 = !{!"_ZTSN7DynexCN27IBlockchainConsumerObserverE"}
!140 = !{!"_ZTSSt13unordered_mapIN6Crypto9PublicKeyESt10unique_ptrIN7DynexCN17TransfersConsumerESt14default_deleteIS4_EESt4hashIS1_ESt8equal_toIS1_ESaISt4pairIKS1_S7_EEE", !141, i64 0}
!141 = !{!"_ZTSSt10_HashtableIN6Crypto9PublicKeyESt4pairIKS1_St10unique_ptrIN7DynexCN17TransfersConsumerESt14default_deleteIS6_EEESaISA_ENSt8__detail10_Select1stESt8equal_toIS1_ESt4hashIS1_ENSC_18_Mod_range_hashingENSC_20_Default_ranged_hashENSC_20_Prime_rehash_policyENSC_17_Hashtable_traitsILb1ELb0ELb1EEEE", !6, i64 0, !21, i64 8, !91, i64 16, !21, i64 24, !92, i64 32, !6, i64 48}
!142 = !{!"_ZTSSt13unordered_mapIN6Crypto9PublicKeyESt10unique_ptrIN5Tools15ObserverManagerIN7DynexCN30ITransfersSynchronizerObserverEEESt14default_deleteIS7_EESt4hashIS1_ESt8equal_toIS1_ESaISt4pairIKS1_SA_EEE", !143, i64 0}
!143 = !{!"_ZTSSt10_HashtableIN6Crypto9PublicKeyESt4pairIKS1_St10unique_ptrIN5Tools15ObserverManagerIN7DynexCN30ITransfersSynchronizerObserverEEESt14default_deleteIS9_EEESaISD_ENSt8__detail10_Select1stESt8equal_toIS1_ESt4hashIS1_ENSF_18_Mod_range_hashingENSF_20_Default_ranged_hashENSF_20_Prime_rehash_policyENSF_17_Hashtable_traitsILb1ELb0ELb1EEEE", !6, i64 0, !21, i64 8, !91, i64 16, !21, i64 24, !92, i64 32, !6, i64 48}
!144 = !{!"_ZTSN6System5EventE", !6, i64 0, !33, i64 8, !6, i64 16, !6, i64 24}
!145 = !{!"_ZTSSt5queueIN7DynexCN11WalletEventESt5dequeIS1_SaIS1_EEE", !146, i64 0}
!146 = !{!"_ZTSSt5dequeIN7DynexCN11WalletEventESaIS1_EE", !147, i64 0}
!147 = !{!"_ZTSSt11_Deque_baseIN7DynexCN11WalletEventESaIS1_EE", !148, i64 0}
!148 = !{!"_ZTSNSt11_Deque_baseIN7DynexCN11WalletEventESaIS1_EE11_Deque_implE", !149, i64 0}
!149 = !{!"_ZTSNSt11_Deque_baseIN7DynexCN11WalletEventESaIS1_EE16_Deque_impl_dataE", !6, i64 0, !21, i64 8, !150, i64 16, !150, i64 48}
!150 = !{!"_ZTSSt15_Deque_iteratorIN7DynexCN11WalletEventERS1_PS1_E", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24}
!151 = !{!"_ZTSN7DynexCN11WalletGreen11WalletStateE", !7, i64 0}
!152 = !{!"_ZTSN6Crypto11chacha8_keyE", !7, i64 0}
!153 = !{!"_ZTSN5boost11multi_index21multi_index_containerIN6Crypto4HashENS0_10indexed_byINS0_13random_accessINS0_3tagIN7DynexCN16BlockHeightIndexEN4mpl_2naESA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_EEEENS0_13hashed_uniqueINS6_INS7_14BlockHashIndexESA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_EENS0_8identityIS3_EESA_SA_EESA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_EESaIS3_EEE", !154, i64 0, !156, i64 8, !157, i64 16, !21, i64 112}
!154 = !{!"_ZTSN5boost16base_from_memberISaINS_11multi_index6detail24random_access_index_nodeINS2_17hashed_index_nodeINS2_15index_node_baseIN6Crypto4HashESaIS7_EEEEEEEELi0EEE", !155, i64 0}
!155 = !{!"_ZTSSaIN5boost11multi_index6detail24random_access_index_nodeINS1_17hashed_index_nodeINS1_15index_node_baseIN6Crypto4HashESaIS6_EEEEEEEE"}
!156 = !{!"_ZTSN5boost11multi_index6detail13header_holderIPNS1_24random_access_index_nodeINS1_17hashed_index_nodeINS1_15index_node_baseIN6Crypto4HashESaIS7_EEEEEEENS0_21multi_index_containerIS7_NS0_10indexed_byINS0_13random_accessINS0_3tagIN7DynexCN16BlockHeightIndexEN4mpl_2naESK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_EEEENS0_13hashed_uniqueINSG_INSH_14BlockHashIndexESK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_EENS0_8identityIS7_EESK_SK_EESK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_EES8_EEEE", !6, i64 0}
!157 = !{!"_ZTSN5boost11multi_index6detail19random_access_indexINS1_9nth_layerILi1EN6Crypto4HashENS0_10indexed_byINS0_13random_accessINS0_3tagIN7DynexCN16BlockHeightIndexEN4mpl_2naESC_SC_SC_SC_SC_SC_SC_SC_SC_SC_SC_SC_SC_SC_SC_SC_SC_SC_EEEENS0_13hashed_uniqueINS8_INS9_14BlockHashIndexESC_SC_SC_SC_SC_SC_SC_SC_SC_SC_SC_SC_SC_SC_SC_SC_SC_SC_SC_EENS0_8identityIS5_EESC_SC_EESC_SC_SC_SC_SC_SC_SC_SC_SC_SC_SC_SC_SC_SC_SC_SC_SC_SC_EESaIS5_EEENS_3mpl6v_itemISA_NSO_7vector0ISC_EELi0EEEEE", !158, i64 0, !162, i64 56}
!158 = !{!"_ZTSN5boost11multi_index6detail12hashed_indexINS0_8identityIN6Crypto4HashEEENS_4hashIS5_EESt8equal_toIS5_ENS1_9nth_layerILi2ES5_NS0_10indexed_byINS0_13random_accessINS0_3tagIN7DynexCN16BlockHeightIndexEN4mpl_2naESI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_EEEENS0_13hashed_uniqueINSE_INSF_14BlockHashIndexESI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_EES6_SI_SI_EESI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_EESaIS5_EEENS_3mpl6v_itemISM_NSS_7vector0ISI_EELi0EEENS1_17hashed_unique_tagEEE", !159, i64 0, !65, i64 1, !66, i64 2, !160, i64 8, !47, i64 40, !21, i64 48}
!159 = !{!"_ZTSN5boost11multi_index8identityIN6Crypto4HashEEE"}
!160 = !{!"_ZTSN5boost11multi_index6detail12bucket_arrayISaIN6Crypto4HashEEEE", !21, i64 0, !161, i64 8}
!161 = !{!"_ZTSN5boost11multi_index6detail10auto_spaceINS1_27hashed_index_base_node_implISaIcEEESaIN6Crypto4HashEEEE", !46, i64 0, !21, i64 8, !6, i64 16}
!162 = !{!"_ZTSN5boost11multi_index6detail29random_access_index_ptr_arrayISaIN6Crypto4HashEEEE", !21, i64 0, !21, i64 8, !163, i64 16}
!163 = !{!"_ZTSN5boost11multi_index6detail10auto_spaceIPNS1_29random_access_index_node_implISaIcEEESaIN6Crypto4HashEEEE", !53, i64 0, !21, i64 8, !6, i64 16}
!164 = !{i64 0, i64 32, !165}
!165 = !{!7, !7, i64 0}
!166 = !{i64 0, i64 32, !165, i64 32, i64 32, !165}
!167 = !{!168, !56, i64 20}
!168 = !{!"_ZTSN7DynexCN28TransactionOutputInformationE", !169, i64 0, !21, i64 8, !56, i64 16, !56, i64 20, !119, i64 24, !19, i64 56, !7, i64 88}
!169 = !{!"_ZTSN7DynexCN16TransactionTypes10OutputTypeE", !7, i64 0}
!170 = !{!33, !33, i64 0}
!171 = !{i8 0, i8 2}
!172 = !{}
!173 = distinct !{!173, !174}
!174 = !{!"llvm.loop.mustprogress"}
!175 = !{!176, !21, i64 32}
!176 = !{!"_ZTSN7DynexCN19reserve_proof_entryE", !119, i64 0, !21, i64 32, !19, i64 40, !177, i64 72, !178, i64 104, !178, i64 168}
!177 = !{!"_ZTSN6Crypto8KeyImageE", !7, i64 0}
!178 = !{!"_ZTSN6Crypto9SignatureE", !7, i64 0}
!179 = !{!56, !56, i64 0}
!180 = distinct !{!180, !174}
!181 = !{!182, !6, i64 0}
!182 = !{!"_ZTSSt16initializer_listIPKN6Crypto9PublicKeyEE", !6, i64 0, !21, i64 8}
!183 = !{!182, !21, i64 8}
!184 = distinct !{!184, !174}


; 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::vector.312" = type { %"struct.std::_Vector_base.313" }
%"struct.std::_Vector_base.313" = type { %"struct.std::_Vector_base<DynexCN::WalletGreen::WalletOuts, std::allocator<DynexCN::WalletGreen::WalletOuts>>::_Vector_impl" }
%"struct.std::_Vector_base<DynexCN::WalletGreen::WalletOuts, std::allocator<DynexCN::WalletGreen::WalletOuts>>::_Vector_impl" = type { %"struct.std::_Vector_base<DynexCN::WalletGreen::WalletOuts, std::allocator<DynexCN::WalletGreen::WalletOuts>>::_Vector_impl_data" }
%"struct.std::_Vector_base<DynexCN::WalletGreen::WalletOuts, std::allocator<DynexCN::WalletGreen::WalletOuts>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.DynexCN::WalletGreen::WalletOuts" = type { ptr, %"class.std::vector.201" }
%"class.std::vector.201" = type { %"struct.std::_Vector_base.202" }
%"struct.std::_Vector_base.202" = type { %"struct.std::_Vector_base<DynexCN::TransactionOutputInformation, std::allocator<DynexCN::TransactionOutputInformation>>::_Vector_impl" }
%"struct.std::_Vector_base<DynexCN::TransactionOutputInformation, std::allocator<DynexCN::TransactionOutputInformation>>::_Vector_impl" = type { %"struct.std::_Vector_base<DynexCN::TransactionOutputInformation, std::allocator<DynexCN::TransactionOutputInformation>>::_Vector_impl_data" }
%"struct.std::_Vector_base<DynexCN::TransactionOutputInformation, std::allocator<DynexCN::TransactionOutputInformation>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.Crypto::KeyImage" = type { [32 x i8] }
%"class.std::vector.317" = type { %"struct.std::_Vector_base.318" }
%"struct.std::_Vector_base.318" = type { %"struct.std::_Vector_base<DynexCN::WalletGreen::OutputToTransfer, std::allocator<DynexCN::WalletGreen::OutputToTransfer>>::_Vector_impl" }
%"struct.std::_Vector_base<DynexCN::WalletGreen::OutputToTransfer, std::allocator<DynexCN::WalletGreen::OutputToTransfer>>::_Vector_impl" = type { %"struct.std::_Vector_base<DynexCN::WalletGreen::OutputToTransfer, std::allocator<DynexCN::WalletGreen::OutputToTransfer>>::_Vector_impl_data" }
%"struct.std::_Vector_base<DynexCN::WalletGreen::OutputToTransfer, std::allocator<DynexCN::WalletGreen::OutputToTransfer>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.__gnu_cxx::__normal_iterator.466" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.536" = type { ptr }
%"struct.DynexCN::AccountKeys" = type { %"struct.DynexCN::AccountPublicAddress", %"struct.Crypto::SecretKey", %"struct.Crypto::SecretKey" }
%"struct.DynexCN::AccountPublicAddress" = type { %"struct.Crypto::PublicKey", %"struct.Crypto::PublicKey" }
%"struct.Crypto::PublicKey" = type { [32 x i8] }
%"struct.Crypto::SecretKey" = type { [32 x i8] }
%"class.std::vector.537" = type { %"struct.std::_Vector_base.538" }
%"struct.std::_Vector_base.538" = type { %"struct.std::_Vector_base<Crypto::KeyImage, std::allocator<Crypto::KeyImage>>::_Vector_impl" }
%"struct.std::_Vector_base<Crypto::KeyImage, std::allocator<Crypto::KeyImage>>::_Vector_impl" = type { %"struct.std::_Vector_base<Crypto::KeyImage, std::allocator<Crypto::KeyImage>>::_Vector_impl_data" }
%"struct.std::_Vector_base<Crypto::KeyImage, std::allocator<Crypto::KeyImage>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.DynexCN::KeyPair" = type { %"struct.Crypto::PublicKey", %"struct.Crypto::SecretKey" }
%"struct.Crypto::Hash" = type { [32 x i8] }
%"class.std::vector.542" = type { %"struct.std::_Vector_base.543" }
%"struct.std::_Vector_base.543" = type { %"struct.std::_Vector_base<DynexCN::reserve_proof_entry, std::allocator<DynexCN::reserve_proof_entry>>::_Vector_impl" }
%"struct.std::_Vector_base<DynexCN::reserve_proof_entry, std::allocator<DynexCN::reserve_proof_entry>>::_Vector_impl" = type { %"struct.std::_Vector_base<DynexCN::reserve_proof_entry, std::allocator<DynexCN::reserve_proof_entry>>::_Vector_impl_data" }
%"struct.std::_Vector_base<DynexCN::reserve_proof_entry, std::allocator<DynexCN::reserve_proof_entry>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::allocator.544" = type { i8 }
%"struct.Crypto::KeyDerivation" = type { [32 x i8] }
%"class.std::vector.547" = type { %"struct.std::_Vector_base.548" }
%"struct.std::_Vector_base.548" = type { %"struct.std::_Vector_base<const Crypto::PublicKey *, std::allocator<const Crypto::PublicKey *>>::_Vector_impl" }
%"struct.std::_Vector_base<const Crypto::PublicKey *, std::allocator<const Crypto::PublicKey *>>::_Vector_impl" = type { %"struct.std::_Vector_base<const Crypto::PublicKey *, std::allocator<const Crypto::PublicKey *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<const Crypto::PublicKey *, std::allocator<const Crypto::PublicKey *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::allocator.549" = type { i8 }
%"struct.Crypto::Signature" = type { [64 x i8] }
%"struct.DynexCN::reserve_proof" = type { %"class.std::vector.542", %"struct.Crypto::Signature" }
%"class.std::vector.135" = type { %"struct.std::_Vector_base.136" }
%"struct.std::_Vector_base.136" = 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 }

@_ZTISt13runtime_error = external constant ptr
@.str.204 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.205 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.206 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.207 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.208 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.209 = external hidden unnamed_addr constant [15 x i8], align 1

declare i32 @__gxx_personality_v0(...)

; 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

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

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

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

declare ptr @__cxa_allocate_exception(i64) local_unnamed_addr

declare void @__cxa_free_exception(ptr) local_unnamed_addr

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(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 #4

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK7DynexCN11WalletGreen10pickWalletERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind noalias writable sret(%"struct.DynexCN::WalletGreen::WalletOuts") align 8, ptr noundef nonnull align 8 dereferenceable(1872), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN6Crypto13scalarmultKeyERKNS_8KeyImageES2_(ptr dead_on_unwind noalias writable sret(%"struct.Crypto::KeyImage") align 1, ptr noundef nonnull align 1 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(32)) local_unnamed_addr #4

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN7DynexCN11WalletGreen15getReserveProofERKmRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESA_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8 %0, ptr noundef nonnull align 8 dereferenceable(1872) %1, ptr nocapture noundef nonnull readonly align 8 dereferenceable(8) %2, ptr noundef nonnull align 8 dereferenceable(32) %3, ptr noundef nonnull align 8 dereferenceable(32) %4) unnamed_addr #3 align 2 personality ptr @__gxx_personality_v0 {
  %6 = alloca %"class.std::vector.317", align 8
  %7 = alloca %"class.std::vector.312", align 8
  %8 = alloca %"struct.DynexCN::WalletGreen::WalletOuts", align 8
  %9 = alloca %"class.std::vector.312", align 8
  %10 = alloca %"class.__gnu_cxx::__normal_iterator.466", align 8
  %11 = alloca %"class.__gnu_cxx::__normal_iterator.466", align 8
  %12 = alloca %"class.std::vector.201", align 8
  %13 = alloca %"class.__gnu_cxx::__normal_iterator.536", align 8
  %14 = alloca %"class.__gnu_cxx::__normal_iterator.536", align 8
  %15 = alloca %"struct.DynexCN::AccountKeys", align 1
  %16 = alloca %"struct.DynexCN::AccountPublicAddress", align 1
  %17 = alloca %"class.std::__cxx11::basic_string", align 8
  %18 = alloca %"class.std::vector.537", align 8
  %19 = alloca %"struct.DynexCN::KeyPair", align 1
  %20 = alloca %"struct.Crypto::KeyImage", align 1
  %21 = alloca %"struct.Crypto::Hash", align 1
  %22 = alloca %"class.std::vector.542", align 8
  %23 = alloca %"class.std::allocator.544", align 1
  %24 = alloca %"struct.Crypto::PublicKey", align 1
  %25 = alloca %"struct.Crypto::KeyImage", align 1
  %26 = alloca %"struct.Crypto::KeyDerivation", align 1
  %27 = alloca %"struct.Crypto::KeyImage", align 1
  %28 = alloca %"struct.DynexCN::KeyPair", align 1
  %29 = alloca %"class.std::vector.547", align 8
  %30 = alloca [1 x ptr], align 8
  %31 = alloca %"class.std::allocator.549", align 1
  %32 = alloca %"struct.Crypto::Signature", align 1
  %33 = alloca %"struct.DynexCN::reserve_proof", align 8
  %34 = alloca %"class.std::vector.135", align 8
  %35 = alloca %"class.std::__cxx11::basic_string", align 8
  %36 = alloca %"class.std::__cxx11::basic_string", align 8
  tail call void @_ZNK7DynexCN11WalletGreen21throwIfNotInitializedEv(ptr noundef nonnull align 8 dereferenceable(1872) %1)
  tail call void @_ZNK7DynexCN11WalletGreen19throwIfTrackingModeEv(ptr noundef nonnull align 8 dereferenceable(1872) %1)
  tail call void @_ZNK7DynexCN11WalletGreen14throwIfStoppedEv(ptr noundef nonnull align 8 dereferenceable(1872) %1)
  %37 = load ptr, ptr %1, align 8, !tbaa !5
  %38 = getelementptr inbounds i8, ptr %37, i64 240
  %39 = load ptr, ptr %38, align 8
  %40 = tail call noundef i64 %39(ptr noundef nonnull align 8 dereferenceable(1872) %1)
  %41 = icmp eq i64 %40, 0
  br i1 %41, label %42, label %47

42:                                               ; preds = %5
  %43 = tail call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %43, ptr noundef nonnull @.str.204)
          to label %44 unwind label %45

44:                                               ; preds = %42
  tail call void @__cxa_throw(ptr nonnull %43, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #9
  unreachable

45:                                               ; preds = %42
  %46 = landingpad { ptr, i32 }
          cleanup
  tail call void @__cxa_free_exception(ptr %43) #8
  br label %249

47:                                               ; preds = %5
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %6) #8
  call void @_ZNSt6vectorIN7DynexCN11WalletGreen16OutputToTransferESaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %6) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %7) #8
  call void @_ZNSt6vectorIN7DynexCN11WalletGreen10WalletOutsESaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %7) #8
  %48 = call noundef zeroext i1 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(32) %3) #8
  br i1 %48, label %57, label %49

49:                                               ; preds = %47
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %8) #8
  invoke void @_ZNK7DynexCN11WalletGreen10pickWalletERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"struct.DynexCN::WalletGreen::WalletOuts") align 8 %8, ptr noundef nonnull align 8 dereferenceable(1872) %1, ptr noundef nonnull align 8 dereferenceable(32) %3)
          to label %50 unwind label %52

50:                                               ; preds = %49
  invoke void @_ZNSt6vectorIN7DynexCN11WalletGreen10WalletOutsESaIS2_EE9push_backERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %7, ptr noundef nonnull align 8 dereferenceable(32) %8)
          to label %51 unwind label %54

51:                                               ; preds = %50
  call void @_ZN7DynexCN11WalletGreen10WalletOutsD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #8
  br label %75

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

54:                                               ; preds = %50
  %55 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7DynexCN11WalletGreen10WalletOutsD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #8
  br label %56

56:                                               ; preds = %54, %52
  %.pn = phi { ptr, i32 } [ %55, %54 ], [ %53, %52 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #8
  br label %248

57:                                               ; preds = %47
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %9) #8
  invoke void @_ZNK7DynexCN11WalletGreen20pickWalletsWithMoneyEv(ptr dead_on_unwind nonnull writable sret(%"class.std::vector.312") align 8 %9, ptr noundef nonnull align 8 dereferenceable(1872) %1)
          to label %58 unwind label %62

58:                                               ; preds = %57
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #8
  %59 = call ptr @_ZNSt6vectorIN7DynexCN11WalletGreen10WalletOutsESaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %9) #8
  store ptr %59, ptr %10, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #8
  %60 = call ptr @_ZNSt6vectorIN7DynexCN11WalletGreen10WalletOutsESaIS2_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %9) #8
  store ptr %60, ptr %11, align 8
  %61 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN7DynexCN11WalletGreen10WalletOutsESt6vectorIS3_SaIS3_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %10, ptr noundef nonnull align 8 dereferenceable(8) %11) #8
  br i1 %61, label %.lr.ph, label %.loopexit119

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

.lr.ph:                                           ; preds = %58, %.critedge
  %64 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPN7DynexCN11WalletGreen10WalletOutsESt6vectorIS3_SaIS3_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %10) #8
  %65 = load ptr, ptr %64, align 8, !tbaa !8
  %66 = getelementptr inbounds i8, ptr %65, i64 80
  %67 = load i64, ptr %66, align 8, !tbaa !16
  %68 = load i64, ptr %2, align 8, !tbaa !21
  %.not = icmp ult i64 %67, %68
  br i1 %.not, label %.critedge, label %69

69:                                               ; preds = %.lr.ph
  invoke void @_ZNSt6vectorIN7DynexCN11WalletGreen10WalletOutsESaIS2_EE9push_backERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %7, ptr noundef nonnull align 8 dereferenceable(32) %64)
          to label %.loopexit119 unwind label %70

70:                                               ; preds = %69
  %71 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #8
  call void @_ZNSt6vectorIN7DynexCN11WalletGreen10WalletOutsESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %9) #8
  br label %74

.critedge:                                        ; preds = %.lr.ph
  %72 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPN7DynexCN11WalletGreen10WalletOutsESt6vectorIS3_SaIS3_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %10) #8
  %73 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN7DynexCN11WalletGreen10WalletOutsESt6vectorIS3_SaIS3_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %10, ptr noundef nonnull align 8 dereferenceable(8) %11) #8
  br i1 %73, label %.lr.ph, label %.loopexit119

.loopexit119:                                     ; preds = %.critedge, %58, %69
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #8
  call void @_ZNSt6vectorIN7DynexCN11WalletGreen10WalletOutsESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %9) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %9) #8
  br label %75

74:                                               ; preds = %70, %62
  %.pn78 = phi { ptr, i32 } [ %71, %70 ], [ %63, %62 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %9) #8
  br label %248

75:                                               ; preds = %.loopexit119, %51
  %76 = load i64, ptr %2, align 8, !tbaa !21
  %77 = getelementptr inbounds i8, ptr %1, i64 48
  %78 = load ptr, ptr %77, align 8, !tbaa !22
  %79 = call noundef i64 @_ZNK7DynexCN8Currency20defaultDustThresholdEv(ptr noundef nonnull align 8 dereferenceable(984) %78)
  %80 = invoke noundef i64 @_ZN7DynexCN11WalletGreen15selectTransfersEmbmOSt6vectorINS0_10WalletOutsESaIS2_EERS1_INS0_16OutputToTransferESaIS6_EE(ptr noundef nonnull align 8 dereferenceable(1872) %1, i64 noundef %76, i1 noundef zeroext true, i64 noundef %79, ptr noundef nonnull align 8 dereferenceable(24) %7, ptr noundef nonnull align 8 dereferenceable(24) %6)
          to label %81 unwind label %87

81:                                               ; preds = %75
  %82 = load i64, ptr %2, align 8, !tbaa !21
  %83 = icmp ult i64 %80, %82
  br i1 %83, label %84, label %91

84:                                               ; preds = %81
  %85 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %85, ptr noundef nonnull @.str.205)
          to label %86 unwind label %89

86:                                               ; preds = %84
  invoke void @__cxa_throw(ptr nonnull %85, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #9
          to label %250 unwind label %87

87:                                               ; preds = %86, %75
  %88 = landingpad { ptr, i32 }
          cleanup
  br label %248

89:                                               ; preds = %84
  %90 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %85) #8
  br label %248

91:                                               ; preds = %81
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %12) #8
  call void @_ZNSt6vectorIN7DynexCN28TransactionOutputInformationESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %12) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #8
  %92 = call ptr @_ZNSt6vectorIN7DynexCN11WalletGreen16OutputToTransferESaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %6) #8
  store ptr %92, ptr %13, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #8
  %93 = call ptr @_ZNSt6vectorIN7DynexCN11WalletGreen16OutputToTransferESaIS2_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %6) #8
  store ptr %93, ptr %14, align 8
  %94 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN7DynexCN11WalletGreen16OutputToTransferESt6vectorIS3_SaIS3_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %13, ptr noundef nonnull align 8 dereferenceable(8) %14) #8
  br i1 %94, label %.lr.ph120, label %._crit_edge

._crit_edge:                                      ; preds = %106, %91
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #8
  call void @llvm.lifetime.start.p0(i64 128, ptr nonnull %15) #8
  %95 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorIN7DynexCN11WalletGreen10WalletOutsESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %7, i64 noundef 0) #8
  %96 = load ptr, ptr %95, align 8, !tbaa !8
  %97 = getelementptr inbounds i8, ptr %96, i64 32
  %98 = getelementptr inbounds i8, ptr %15, i64 64
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(32) %98, ptr noundef nonnull align 8 dereferenceable(32) %97, i64 32, i1 false), !tbaa.struct !163
  %99 = getelementptr inbounds i8, ptr %1, i64 1688
  %100 = getelementptr inbounds i8, ptr %15, i64 96
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(32) %100, ptr noundef nonnull align 8 dereferenceable(32) %99, i64 32, i1 false), !tbaa.struct !163
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %16)
  %101 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorIN7DynexCN11WalletGreen10WalletOutsESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %7, i64 noundef 0) #8
  %102 = load ptr, ptr %101, align 8, !tbaa !8
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(32) %16, ptr noundef nonnull align 8 dereferenceable(32) %102, i64 32, i1 false), !tbaa.struct !163
  %103 = getelementptr inbounds i8, ptr %16, i64 32
  %104 = getelementptr inbounds i8, ptr %1, i64 1656
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(32) %103, ptr noundef nonnull align 8 dereferenceable(32) %104, i64 32, i1 false), !tbaa.struct !163
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(64) %15, ptr noundef nonnull align 1 dereferenceable(64) %16, i64 64, i1 false), !tbaa.struct !165
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %16)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %17) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %111 unwind label %117

.lr.ph120:                                        ; preds = %91, %106
  %105 = call noundef nonnull align 8 dereferenceable(128) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPN7DynexCN11WalletGreen16OutputToTransferESt6vectorIS3_SaIS3_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %13) #8
  invoke void @_ZNSt6vectorIN7DynexCN28TransactionOutputInformationESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %12, ptr noundef nonnull align 8 dereferenceable(120) %105)
          to label %106 unwind label %109

106:                                              ; preds = %.lr.ph120
  %107 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPN7DynexCN11WalletGreen16OutputToTransferESt6vectorIS3_SaIS3_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %13) #8
  %108 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN7DynexCN11WalletGreen16OutputToTransferESt6vectorIS3_SaIS3_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %13, ptr noundef nonnull align 8 dereferenceable(8) %14) #8
  br i1 %108, label %.lr.ph120, label %._crit_edge

109:                                              ; preds = %.lr.ph120
  %110 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #8
  br label %247

111:                                              ; preds = %._crit_edge
  %112 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKcm(ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef nonnull %15, i64 noundef 64)
          to label %113 unwind label %119

113:                                              ; preds = %111
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %18) #8
  call void @_ZNSt6vectorIN6Crypto8KeyImageESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %18) #8
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %19) #8
  %114 = call noundef i64 @_ZNKSt6vectorIN7DynexCN28TransactionOutputInformationESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %12) #8
  %.not130 = icmp eq i64 %114, 0
  br i1 %.not130, label %._crit_edge124, label %.lr.ph123

._crit_edge124:                                   ; preds = %136, %113
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %21) #8
  %115 = call noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4dataEv(ptr noundef nonnull align 8 dereferenceable(32) %17) #8
  %116 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %17) #8
  invoke void @_ZN6Crypto12cn_fast_hashEPKvmRNS_4HashE(ptr noundef %115, i64 noundef %116, ptr noundef nonnull align 1 dereferenceable(32) %21)
          to label %141 unwind label %147

117:                                              ; preds = %._crit_edge
  %118 = landingpad { ptr, i32 }
          cleanup
  br label %246

119:                                              ; preds = %111
  %120 = landingpad { ptr, i32 }
          cleanup
  br label %245

.lr.ph123:                                        ; preds = %113, %136
  %.074121 = phi i64 [ %137, %136 ], [ 0, %113 ]
  %121 = call noundef nonnull align 8 dereferenceable(120) ptr @_ZNSt6vectorIN7DynexCN28TransactionOutputInformationESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %12, i64 noundef %.074121) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %20) #8
  %122 = getelementptr inbounds i8, ptr %121, i64 56
  %123 = getelementptr inbounds i8, ptr %121, i64 20
  %124 = load i32, ptr %123, align 4, !tbaa !166
  %125 = zext i32 %124 to i64
  %126 = invoke noundef zeroext i1 @_ZN7DynexCN25generate_key_image_helperERKNS_11AccountKeysERKN6Crypto9PublicKeyEmRNS_7KeyPairERNS3_8KeyImageE(ptr noundef nonnull align 1 dereferenceable(128) %15, ptr noundef nonnull align 1 dereferenceable(32) %122, i64 noundef %125, ptr noundef nonnull align 1 dereferenceable(64) %19, ptr noundef nonnull align 1 dereferenceable(32) %20)
          to label %127 unwind label %.loopexit114

127:                                              ; preds = %.lr.ph123
  br i1 %126, label %133, label %128

128:                                              ; preds = %127
  %129 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %129, ptr noundef nonnull @.str.206)
          to label %130 unwind label %131

130:                                              ; preds = %128
  invoke void @__cxa_throw(ptr nonnull %129, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #9
          to label %250 unwind label %.loopexit.split-lp115

.loopexit114:                                     ; preds = %.lr.ph123, %133, %135
  %lpad.loopexit116 = landingpad { ptr, i32 }
          cleanup
  br label %140

.loopexit.split-lp115:                            ; preds = %130
  %lpad.loopexit.split-lp117 = landingpad { ptr, i32 }
          cleanup
  br label %140

131:                                              ; preds = %128
  %132 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %129) #8
  br label %140

133:                                              ; preds = %127
  %134 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKcm(ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef nonnull %20, i64 noundef 32)
          to label %135 unwind label %.loopexit114

135:                                              ; preds = %133
  invoke void @_ZNSt6vectorIN6Crypto8KeyImageESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %18, ptr noundef nonnull align 1 dereferenceable(32) %20)
          to label %136 unwind label %.loopexit114

136:                                              ; preds = %135
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #8
  %137 = add nuw i64 %.074121, 1
  %138 = call noundef i64 @_ZNKSt6vectorIN7DynexCN28TransactionOutputInformationESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %12) #8
  %139 = icmp ult i64 %137, %138
  br i1 %139, label %.lr.ph123, label %._crit_edge124, !llvm.loop !169

140:                                              ; preds = %.loopexit114, %.loopexit.split-lp115, %131
  %.pn97 = phi { ptr, i32 } [ %132, %131 ], [ %lpad.loopexit116, %.loopexit114 ], [ %lpad.loopexit.split-lp117, %.loopexit.split-lp115 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #8
  br label %244

141:                                              ; preds = %._crit_edge124
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %22) #8
  %142 = call noundef i64 @_ZNKSt6vectorIN7DynexCN28TransactionOutputInformationESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %12) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %23) #8
  call void @_ZNSaIN7DynexCN19reserve_proof_entryEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #8
  invoke void @_ZNSt6vectorIN7DynexCN19reserve_proof_entryESaIS1_EEC2EmRKS2_(ptr noundef nonnull align 8 dereferenceable(24) %22, i64 noundef %142, ptr noundef nonnull align 1 dereferenceable(1) %23)
          to label %143 unwind label %149

143:                                              ; preds = %141
  call void @_ZNSt15__new_allocatorIN7DynexCN19reserve_proof_entryEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %23) #8
  %144 = call noundef i64 @_ZNKSt6vectorIN7DynexCN28TransactionOutputInformationESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %12) #8
  %.not131 = icmp eq i64 %144, 0
  br i1 %.not131, label %._crit_edge129, label %.lr.ph128

.lr.ph128:                                        ; preds = %143
  %145 = getelementptr inbounds i8, ptr %15, i64 32
  %146 = getelementptr inbounds i8, ptr %28, i64 32
  br label %151

._crit_edge129:                                   ; preds = %204, %143
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %32) #8
  invoke void @_ZN6Crypto18generate_signatureERKNS_4HashERKNS_9PublicKeyERKNS_9SecretKeyERNS_9SignatureE(ptr noundef nonnull align 1 dereferenceable(32) %21, ptr noundef nonnull align 1 dereferenceable(32) %15, ptr noundef nonnull align 1 dereferenceable(32) %98, ptr noundef nonnull align 1 dereferenceable(64) %32)
          to label %214 unwind label %224

147:                                              ; preds = %._crit_edge124
  %148 = landingpad { ptr, i32 }
          cleanup
  br label %243

149:                                              ; preds = %141
  %150 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIN7DynexCN19reserve_proof_entryEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %23) #8
  br label %242

151:                                              ; preds = %.lr.ph128, %204
  %.075126 = phi i64 [ 0, %.lr.ph128 ], [ %205, %204 ]
  %152 = call noundef nonnull align 8 dereferenceable(120) ptr @_ZNSt6vectorIN7DynexCN28TransactionOutputInformationESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %12, i64 noundef %.075126) #8
  %153 = call noundef nonnull align 8 dereferenceable(232) ptr @_ZNSt6vectorIN7DynexCN19reserve_proof_entryESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %22, i64 noundef %.075126) #8
  %154 = call noundef nonnull align 1 dereferenceable(32) ptr @_ZNSt6vectorIN6Crypto8KeyImageESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %18, i64 noundef %.075126) #8
  %155 = getelementptr inbounds i8, ptr %153, i64 72
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %155, ptr noundef nonnull align 1 dereferenceable(32) %154, i64 32, i1 false), !tbaa.struct !163
  %156 = getelementptr inbounds i8, ptr %152, i64 24
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %153, ptr noundef nonnull align 8 dereferenceable(32) %156, i64 32, i1 false), !tbaa.struct !163
  %157 = getelementptr inbounds i8, ptr %152, i64 20
  %158 = load i32, ptr %157, align 4, !tbaa !166
  %159 = zext i32 %158 to i64
  %160 = getelementptr inbounds i8, ptr %153, i64 32
  store i64 %159, ptr %160, align 8, !tbaa !171
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %24) #8
  %161 = getelementptr inbounds i8, ptr %152, i64 56
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(32) %24, ptr noundef nonnull align 8 dereferenceable(32) %161, i64 32, i1 false), !tbaa.struct !163
  %162 = getelementptr inbounds i8, ptr %153, i64 40
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %25) #8
  invoke void @_ZN6Crypto13scalarmultKeyERKNS_8KeyImageES2_(ptr dead_on_unwind nonnull writable sret(%"struct.Crypto::KeyImage") align 1 %25, ptr noundef nonnull align 1 dereferenceable(32) %24, ptr noundef nonnull align 1 dereferenceable(32) %99)
          to label %163 unwind label %169

163:                                              ; preds = %151
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %162, ptr noundef nonnull align 1 dereferenceable(32) %25, i64 32, i1 false), !tbaa.struct !163
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %26) #8
  %164 = invoke noundef zeroext i1 @_ZN6Crypto23generate_key_derivationERKNS_9PublicKeyERKNS_9SecretKeyERNS_13KeyDerivationE(ptr noundef nonnull align 1 dereferenceable(32) %162, ptr noundef nonnull align 1 dereferenceable(32) %99, ptr noundef nonnull align 1 dereferenceable(32) %26)
          to label %165 unwind label %.loopexit

165:                                              ; preds = %163
  br i1 %164, label %173, label %166

166:                                              ; preds = %176, %165
  %167 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %167, ptr noundef nonnull @.str.207)
          to label %168 unwind label %171

168:                                              ; preds = %166
  invoke void @__cxa_throw(ptr nonnull %167, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #9
          to label %250 unwind label %.loopexit.split-lp

169:                                              ; preds = %173, %151
  %170 = landingpad { ptr, i32 }
          cleanup
  br label %180

.loopexit:                                        ; preds = %174, %163
  %lpad.loopexit = landingpad { ptr, i32 }
          cleanup
  br label %179

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

171:                                              ; preds = %166
  %172 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %167) #8
  br label %179

173:                                              ; preds = %165
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %25) #8
  invoke void @_ZN6Crypto13scalarmultKeyERKNS_8KeyImageES2_(ptr dead_on_unwind nonnull writable sret(%"struct.Crypto::KeyImage") align 1 %25, ptr noundef nonnull align 1 dereferenceable(32) %24, ptr noundef nonnull align 1 dereferenceable(32) %99)
          to label %174 unwind label %169

174:                                              ; preds = %173
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %162, ptr noundef nonnull align 1 dereferenceable(32) %25, i64 32, i1 false), !tbaa.struct !163
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %26) #8
  %175 = invoke noundef zeroext i1 @_ZN6Crypto23generate_key_derivationERKNS_9PublicKeyERKNS_9SecretKeyERNS_13KeyDerivationE(ptr noundef nonnull align 1 dereferenceable(32) %162, ptr noundef nonnull align 1 dereferenceable(32) %99, ptr noundef nonnull align 1 dereferenceable(32) %26)
          to label %176 unwind label %.loopexit

176:                                              ; preds = %174
  br i1 %175, label %177, label %166

177:                                              ; preds = %176
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #8
  %178 = getelementptr inbounds i8, ptr %153, i64 104
  invoke void @_ZN6Crypto17generate_tx_proofERKNS_4HashERKNS_9PublicKeyES5_S5_RKNS_9SecretKeyERNS_9SignatureE(ptr noundef nonnull align 1 dereferenceable(32) %21, ptr noundef nonnull align 1 dereferenceable(32) %145, ptr noundef nonnull align 1 dereferenceable(32) %24, ptr noundef nonnull align 1 dereferenceable(32) %162, ptr noundef nonnull align 1 dereferenceable(32) %99, ptr noundef nonnull align 1 dereferenceable(64) %178)
          to label %181 unwind label %189

179:                                              ; preds = %.loopexit, %.loopexit.split-lp, %171
  %.pn90 = phi { ptr, i32 } [ %172, %171 ], [ %lpad.loopexit, %.loopexit ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #8
  br label %180

180:                                              ; preds = %179, %169
  %.pn90.pn = phi { ptr, i32 } [ %.pn90, %179 ], [ %170, %169 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #8
  br label %213

181:                                              ; preds = %177
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %27) #8
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %28) #8
  %182 = load i32, ptr %157, align 4, !tbaa !166
  %183 = zext i32 %182 to i64
  %184 = invoke noundef zeroext i1 @_ZN7DynexCN25generate_key_image_helperERKNS_11AccountKeysERKN6Crypto9PublicKeyEmRNS_7KeyPairERNS3_8KeyImageE(ptr noundef nonnull align 1 dereferenceable(128) %15, ptr noundef nonnull align 1 dereferenceable(32) %161, i64 noundef %183, ptr noundef nonnull align 1 dereferenceable(64) %28, ptr noundef nonnull align 1 dereferenceable(32) %27)
          to label %185 unwind label %.loopexit109

185:                                              ; preds = %181
  br i1 %184, label %193, label %186

186:                                              ; preds = %185
  %187 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %187, ptr noundef nonnull @.str.206)
          to label %.invoke unwind label %191

.invoke:                                          ; preds = %186, %196
  %188 = phi ptr [ %197, %196 ], [ %187, %186 ]
  invoke void @__cxa_throw(ptr nonnull %188, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #9
          to label %.cont unwind label %.loopexit.split-lp110

.cont:                                            ; preds = %.invoke
  unreachable

189:                                              ; preds = %177
  %190 = landingpad { ptr, i32 }
          cleanup
  br label %213

.loopexit109:                                     ; preds = %181
  %lpad.loopexit111 = landingpad { ptr, i32 }
          cleanup
  br label %212

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

191:                                              ; preds = %186
  %192 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %187) #8
  br label %212

193:                                              ; preds = %185
  %194 = getelementptr inbounds i8, ptr %152, i64 88
  %195 = call noundef zeroext i1 @_ZN6CryptoneERKNS_9PublicKeyES2_(ptr noundef nonnull align 1 dereferenceable(32) %28, ptr noundef nonnull align 1 dereferenceable(32) %194)
  br i1 %195, label %196, label %200

196:                                              ; preds = %193
  %197 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %197, ptr noundef nonnull @.str.208)
          to label %.invoke unwind label %198

198:                                              ; preds = %196
  %199 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %197) #8
  br label %212

200:                                              ; preds = %193
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %29) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %30) #8
  store ptr %28, ptr %30, align 8, !tbaa !175
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %31) #8
  call void @_ZNSaIPKN6Crypto9PublicKeyEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #8
  invoke void @_ZNSt6vectorIPKN6Crypto9PublicKeyESaIS3_EEC2ESt16initializer_listIS3_ERKS4_(ptr noundef nonnull align 8 dereferenceable(24) %29, ptr nonnull %30, i64 1, ptr noundef nonnull align 1 dereferenceable(1) %31)
          to label %201 unwind label %208

201:                                              ; preds = %200
  call void @_ZNSt15__new_allocatorIPKN6Crypto9PublicKeyEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %31) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #8
  %202 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorIPKN6Crypto9PublicKeyESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %29, i64 noundef 0) #8
  %203 = getelementptr inbounds i8, ptr %153, i64 168
  invoke void @_ZN6Crypto23generate_ring_signatureERKNS_4HashERKNS_8KeyImageEPKPKNS_9PublicKeyEmRKNS_9SecretKeyEmPNS_9SignatureE(ptr noundef nonnull align 1 dereferenceable(32) %21, ptr noundef nonnull align 1 dereferenceable(32) %155, ptr noundef nonnull %202, i64 noundef 1, ptr noundef nonnull align 1 dereferenceable(32) %146, i64 noundef 0, ptr noundef nonnull %203)
          to label %204 unwind label %210

204:                                              ; preds = %201
  call void @_ZNSt6vectorIPKN6Crypto9PublicKeyESaIS3_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %29) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %29) #8
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %28) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %24) #8
  %205 = add nuw i64 %.075126, 1
  %206 = call noundef i64 @_ZNKSt6vectorIN7DynexCN28TransactionOutputInformationESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %12) #8
  %207 = icmp ult i64 %205, %206
  br i1 %207, label %151, label %._crit_edge129, !llvm.loop !176

208:                                              ; preds = %200
  %209 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIPKN6Crypto9PublicKeyEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %31) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #8
  br label %212

210:                                              ; preds = %201
  %211 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorIPKN6Crypto9PublicKeyESaIS3_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %29) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %29) #8
  br label %212

212:                                              ; preds = %.loopexit109, %.loopexit.split-lp110, %208, %210, %198, %191
  %.pn88 = phi { ptr, i32 } [ %199, %198 ], [ %192, %191 ], [ %211, %210 ], [ %209, %208 ], [ %lpad.loopexit111, %.loopexit109 ], [ %lpad.loopexit.split-lp112, %.loopexit.split-lp110 ]
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %28) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #8
  br label %213

213:                                              ; preds = %212, %189, %180
  %.pn90.pn.pn = phi { ptr, i32 } [ %.pn90.pn, %180 ], [ %.pn88, %212 ], [ %190, %189 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %24) #8
  br label %241

214:                                              ; preds = %._crit_edge129
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %33) #8
  call void @_ZN7DynexCN13reserve_proofC2Ev(ptr noundef nonnull align 8 dereferenceable(88) %33) #8
  %215 = call ptr @_ZNSt6vectorIN7DynexCN19reserve_proof_entryESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %22) #8
  %216 = call ptr @_ZNSt6vectorIN7DynexCN19reserve_proof_entryESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %22) #8
  invoke void @_ZNSt6vectorIN7DynexCN19reserve_proof_entryESaIS1_EE6assignIN9__gnu_cxx17__normal_iteratorIPS1_S3_EEvEEvT_S9_(ptr noundef nonnull align 8 dereferenceable(24) %33, ptr %215, ptr %216)
          to label %217 unwind label %226

217:                                              ; preds = %214
  %218 = getelementptr inbounds i8, ptr %33, i64 24
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %218, ptr noundef nonnull align 1 dereferenceable(64) %32, i64 64, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %34) #8
  invoke void @_ZN7DynexCN13toBinaryArrayINS_13reserve_proofEEESt6vectorIhSaIhEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::vector.135") align 8 %34, ptr noundef nonnull align 8 dereferenceable(88) %33)
          to label %219 unwind label %228

219:                                              ; preds = %217
  invoke void @_ZN6Common5toHexB5cxx11ERKSt6vectorIhSaIhEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %0, ptr noundef nonnull align 8 dereferenceable(24) %34)
          to label %220 unwind label %230

220:                                              ; preds = %219
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %35) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %36) #8
  invoke void @_ZN5Tools6Base586encodeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %36, ptr noundef nonnull align 8 dereferenceable(32) %0)
          to label %221 unwind label %232

221:                                              ; preds = %220
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %35, ptr noundef nonnull @.str.209, ptr noundef nonnull align 8 dereferenceable(32) %36)
          to label %222 unwind label %234

222:                                              ; preds = %221
  %223 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef nonnull align 8 dereferenceable(32) %35) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %36) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #8
  call void @_ZNSt6vectorIhSaIhEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %34) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %34) #8
  call void @_ZN7DynexCN13reserve_proofD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %33) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %33) #8
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %32) #8
  call void @_ZNSt6vectorIN7DynexCN19reserve_proof_entryESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %22) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %22) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #8
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %19) #8
  call void @_ZNSt6vectorIN6Crypto8KeyImageESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %18) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %18) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #8
  call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %15) #8
  call void @_ZNSt6vectorIN7DynexCN28TransactionOutputInformationESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %12) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %12) #8
  call void @_ZNSt6vectorIN7DynexCN11WalletGreen10WalletOutsESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %7) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %7) #8
  call void @_ZNSt6vectorIN7DynexCN11WalletGreen16OutputToTransferESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %6) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %6) #8
  ret void

224:                                              ; preds = %._crit_edge129
  %225 = landingpad { ptr, i32 }
          cleanup
  br label %240

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

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

230:                                              ; preds = %219
  %231 = landingpad { ptr, i32 }
          cleanup
  br label %237

232:                                              ; preds = %220
  %233 = landingpad { ptr, i32 }
          cleanup
  br label %236

234:                                              ; preds = %221
  %235 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #8
  br label %236

236:                                              ; preds = %234, %232
  %.pn80 = phi { ptr, i32 } [ %235, %234 ], [ %233, %232 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %36) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %0) #8
  br label %237

237:                                              ; preds = %236, %230
  %.pn80.pn = phi { ptr, i32 } [ %.pn80, %236 ], [ %231, %230 ]
  call void @_ZNSt6vectorIhSaIhEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %34) #8
  br label %238

238:                                              ; preds = %237, %228
  %.pn80.pn.pn = phi { ptr, i32 } [ %.pn80.pn, %237 ], [ %229, %228 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %34) #8
  br label %239

239:                                              ; preds = %238, %226
  %.pn80.pn.pn.pn = phi { ptr, i32 } [ %.pn80.pn.pn, %238 ], [ %227, %226 ]
  call void @_ZN7DynexCN13reserve_proofD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %33) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %33) #8
  br label %240

240:                                              ; preds = %239, %224
  %.pn80.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn80.pn.pn.pn, %239 ], [ %225, %224 ]
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %32) #8
  br label %241

241:                                              ; preds = %240, %213
  %.pn90.pn.pn.pn = phi { ptr, i32 } [ %.pn90.pn.pn, %213 ], [ %.pn80.pn.pn.pn.pn, %240 ]
  call void @_ZNSt6vectorIN7DynexCN19reserve_proof_entryESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %22) #8
  br label %242

242:                                              ; preds = %241, %149
  %.pn90.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn90.pn.pn.pn, %241 ], [ %150, %149 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %22) #8
  br label %243

243:                                              ; preds = %242, %147
  %.pn90.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn90.pn.pn.pn.pn, %242 ], [ %148, %147 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #8
  br label %244

244:                                              ; preds = %243, %140
  %.pn97.pn = phi { ptr, i32 } [ %.pn97, %140 ], [ %.pn90.pn.pn.pn.pn.pn, %243 ]
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %19) #8
  call void @_ZNSt6vectorIN6Crypto8KeyImageESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %18) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %18) #8
  br label %245

245:                                              ; preds = %244, %119
  %.pn97.pn.pn = phi { ptr, i32 } [ %.pn97.pn, %244 ], [ %120, %119 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #8
  br label %246

246:                                              ; preds = %245, %117
  %.pn97.pn.pn.pn = phi { ptr, i32 } [ %.pn97.pn.pn, %245 ], [ %118, %117 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #8
  call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %15) #8
  br label %247

247:                                              ; preds = %246, %109
  %.pn102 = phi { ptr, i32 } [ %110, %109 ], [ %.pn97.pn.pn.pn, %246 ]
  call void @_ZNSt6vectorIN7DynexCN28TransactionOutputInformationESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %12) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %12) #8
  br label %248

248:                                              ; preds = %87, %89, %247, %74, %56
  %.pn104.pn = phi { ptr, i32 } [ %.pn78, %74 ], [ %.pn, %56 ], [ %88, %87 ], [ %90, %89 ], [ %.pn102, %247 ]
  call void @_ZNSt6vectorIN7DynexCN11WalletGreen10WalletOutsESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %7) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %7) #8
  call void @_ZNSt6vectorIN7DynexCN11WalletGreen16OutputToTransferESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %6) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %6) #8
  br label %249

249:                                              ; preds = %248, %45
  %.pn107 = phi { ptr, i32 } [ %46, %45 ], [ %.pn104.pn, %248 ]
  resume { ptr, i32 } %.pn107

250:                                              ; preds = %168, %130, %86
  unreachable
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

declare noundef zeroext i1 @_ZN7DynexCN25generate_key_image_helperERKNS_11AccountKeysERKN6Crypto9PublicKeyEmRNS_7KeyPairERNS3_8KeyImageE(ptr noundef nonnull align 1 dereferenceable(128), ptr noundef nonnull align 1 dereferenceable(32), i64 noundef, ptr noundef nonnull align 1 dereferenceable(64), ptr noundef nonnull align 1 dereferenceable(32)) local_unnamed_addr #6

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt15__new_allocatorIPKN6Crypto9PublicKeyEED2Ev(ptr noundef nonnull align 1 dereferenceable(1)) 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 nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #3 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { nounwind }
attributes #9 = { noreturn }

!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 = !{!"vtable pointer", !7, i64 0}
!7 = !{!"Simple C++ TBAA"}
!8 = !{!9, !10, i64 0}
!9 = !{!"_ZTSN7DynexCN11WalletGreen10WalletOutsE", !10, i64 0, !12, i64 8}
!10 = !{!"any pointer", !11, i64 0}
!11 = !{!"omnipotent char", !7, i64 0}
!12 = !{!"_ZTSSt6vectorIN7DynexCN28TransactionOutputInformationESaIS1_EE", !13, i64 0}
!13 = !{!"_ZTSSt12_Vector_baseIN7DynexCN28TransactionOutputInformationESaIS1_EE", !14, i64 0}
!14 = !{!"_ZTSNSt12_Vector_baseIN7DynexCN28TransactionOutputInformationESaIS1_EE12_Vector_implE", !15, i64 0}
!15 = !{!"_ZTSNSt12_Vector_baseIN7DynexCN28TransactionOutputInformationESaIS1_EE17_Vector_impl_dataE", !10, i64 0, !10, i64 8, !10, i64 16}
!16 = !{!17, !20, i64 80}
!17 = !{!"_ZTSN7DynexCN12WalletRecordE", !18, i64 0, !19, i64 32, !10, i64 64, !20, i64 72, !20, i64 80, !20, i64 88}
!18 = !{!"_ZTSN6Crypto9PublicKeyE", !11, i64 0}
!19 = !{!"_ZTSN6Crypto9SecretKeyE", !11, i64 0}
!20 = !{!"long", !11, i64 0}
!21 = !{!20, !20, i64 0}
!22 = !{!23, !10, i64 48}
!23 = !{!"_ZTSN7DynexCN11WalletGreenE", !24, i64 0, !25, i64 8, !26, i64 16, !27, i64 24, !28, i64 32, !10, i64 40, !10, i64 48, !10, i64 56, !29, i64 64, !32, i64 104, !33, i64 112, !53, i64 288, !56, i64 400, !70, i64 488, !84, i64 608, !88, i64 632, !92, i64 688, !32, i64 736, !100, i64 744, !136, i64 1184, !143, i64 1376, !144, i64 1408, !143, i64 1488, !150, i64 1520, !30, i64 1528, !151, i64 1560, !30, i64 1592, !30, i64 1624, !18, i64 1656, !19, i64 1688, !20, i64 1720, !20, i64 1728, !20, i64 1736, !55, i64 1744, !152, i64 1752}
!24 = !{!"_ZTSN7DynexCN7IWalletE"}
!25 = !{!"_ZTSN7DynexCN18ITransfersObserverE"}
!26 = !{!"_ZTSN7DynexCN31IBlockchainSynchronizerObserverE"}
!27 = !{!"_ZTSN7DynexCN30ITransfersSynchronizerObserverE"}
!28 = !{!"_ZTSN7DynexCN14IFusionManagerE"}
!29 = !{!"_ZTSN7Logging9LoggerRefE", !10, i64 0, !30, i64 8}
!30 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !31, i64 0, !20, i64 8, !11, i64 16}
!31 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !10, i64 0}
!32 = !{!"bool", !11, i64 0}
!33 = !{!"_ZTSN5boost11multi_index21multi_index_containerIN7DynexCN12WalletRecordENS0_10indexed_byINS0_13random_accessINS0_3tagINS2_17RandomAccessIndexEN4mpl_2naES9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_EEEENS0_13hashed_uniqueINS6_INS2_9KeysIndexES9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_EENS0_6memberIS3_N6Crypto9PublicKeyEXadL_ZNS3_14spendPublicKeyEEEEES9_S9_EENSC_INS6_INS2_23TransfersContainerIndexES9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_EENSF_IS3_PNS2_19ITransfersContainerEXadL_ZNS3_9containerEEEEES9_S9_EES9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_EESaIS3_EEE", !34, i64 0, !36, i64 8, !37, i64 16, !20, i64 168}
!34 = !{!"_ZTSN5boost16base_from_memberISaINS_11multi_index6detail24random_access_index_nodeINS2_17hashed_index_nodeINS4_INS2_15index_node_baseIN7DynexCN12WalletRecordESaIS7_EEEEEEEEEELi0EEE", !35, i64 0}
!35 = !{!"_ZTSSaIN5boost11multi_index6detail24random_access_index_nodeINS1_17hashed_index_nodeINS3_INS1_15index_node_baseIN7DynexCN12WalletRecordESaIS6_EEEEEEEEEE"}
!36 = !{!"_ZTSN5boost11multi_index6detail13header_holderIPNS1_24random_access_index_nodeINS1_17hashed_index_nodeINS4_INS1_15index_node_baseIN7DynexCN12WalletRecordESaIS7_EEEEEEEEENS0_21multi_index_containerIS7_NS0_10indexed_byINS0_13random_accessINS0_3tagINS6_17RandomAccessIndexEN4mpl_2naESK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_EEEENS0_13hashed_uniqueINSH_INS6_9KeysIndexESK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_EENS0_6memberIS7_N6Crypto9PublicKeyEXadL_ZNS7_14spendPublicKeyEEEEESK_SK_EENSN_INSH_INS6_23TransfersContainerIndexESK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_EENSQ_IS7_PNS6_19ITransfersContainerEXadL_ZNS7_9containerEEEEESK_SK_EESK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_EES8_EEEE", !10, i64 0}
!37 = !{!"_ZTSN5boost11multi_index6detail19random_access_indexINS1_9nth_layerILi1EN7DynexCN12WalletRecordENS0_10indexed_byINS0_13random_accessINS0_3tagINS4_17RandomAccessIndexEN4mpl_2naESB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_EEEENS0_13hashed_uniqueINS8_INS4_9KeysIndexESB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_EENS0_6memberIS5_N6Crypto9PublicKeyEXadL_ZNS5_14spendPublicKeyEEEEESB_SB_EENSE_INS8_INS4_23TransfersContainerIndexESB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_EENSH_IS5_PNS4_19ITransfersContainerEXadL_ZNS5_9containerEEEEESB_SB_EESB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_EESaIS5_EEENS_3mpl6v_itemIS9_NSV_7vector0ISB_EELi0EEEEE", !38, i64 0, !50, i64 112}
!38 = !{!"_ZTSN5boost11multi_index6detail12hashed_indexINS0_6memberIN7DynexCN12WalletRecordEN6Crypto9PublicKeyEXadL_ZNS5_14spendPublicKeyEEEEENS_4hashIS7_EESt8equal_toIS7_ENS1_9nth_layerILi2ES5_NS0_10indexed_byINS0_13random_accessINS0_3tagINS4_17RandomAccessIndexEN4mpl_2naESJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_EEEENS0_13hashed_uniqueINSG_INS4_9KeysIndexESJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_EES8_SJ_SJ_EENSM_INSG_INS4_23TransfersContainerIndexESJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_EENS3_IS5_PNS4_19ITransfersContainerEXadL_ZNS5_9containerEEEEESJ_SJ_EESJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_EESaIS5_EEENS_3mpl6v_itemISN_NSZ_7vector0ISJ_EELi0EEENS1_17hashed_unique_tagEEE", !39, i64 0, !47, i64 56, !48, i64 57, !49, i64 58, !43, i64 64, !46, i64 96, !20, i64 104}
!39 = !{!"_ZTSN5boost11multi_index6detail12hashed_indexINS0_6memberIN7DynexCN12WalletRecordEPNS4_19ITransfersContainerEXadL_ZNS5_9containerEEEEENS_4hashIS7_EESt8equal_toIS7_ENS1_9nth_layerILi3ES5_NS0_10indexed_byINS0_13random_accessINS0_3tagINS4_17RandomAccessIndexEN4mpl_2naESJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_EEEENS0_13hashed_uniqueINSG_INS4_9KeysIndexESJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_EENS3_IS5_N6Crypto9PublicKeyEXadL_ZNS5_14spendPublicKeyEEEEESJ_SJ_EENSM_INSG_INS4_23TransfersContainerIndexESJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_EES8_SJ_SJ_EESJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_EESaIS5_EEENS_3mpl6v_itemIST_NSZ_7vector0ISJ_EELi0EEENS1_17hashed_unique_tagEEE", !40, i64 0, !41, i64 1, !42, i64 2, !43, i64 8, !46, i64 40, !20, i64 48}
!40 = !{!"_ZTSN5boost11multi_index6memberIN7DynexCN12WalletRecordEPNS2_19ITransfersContainerEXadL_ZNS3_9containerEEEEE"}
!41 = !{!"_ZTSN5boost4hashIPN7DynexCN19ITransfersContainerEEE"}
!42 = !{!"_ZTSSt8equal_toIPN7DynexCN19ITransfersContainerEE"}
!43 = !{!"_ZTSN5boost11multi_index6detail12bucket_arrayISaIN7DynexCN12WalletRecordEEEE", !20, i64 0, !44, i64 8}
!44 = !{!"_ZTSN5boost11multi_index6detail10auto_spaceINS1_27hashed_index_base_node_implISaIcEEESaIN7DynexCN12WalletRecordEEEE", !45, i64 0, !20, i64 8, !10, i64 16}
!45 = !{!"_ZTSSaIN5boost11multi_index6detail27hashed_index_base_node_implISaIcEEEE"}
!46 = !{!"float", !11, i64 0}
!47 = !{!"_ZTSN5boost11multi_index6memberIN7DynexCN12WalletRecordEN6Crypto9PublicKeyEXadL_ZNS3_14spendPublicKeyEEEEE"}
!48 = !{!"_ZTSN5boost4hashIN6Crypto9PublicKeyEEE"}
!49 = !{!"_ZTSSt8equal_toIN6Crypto9PublicKeyEE"}
!50 = !{!"_ZTSN5boost11multi_index6detail29random_access_index_ptr_arrayISaIN7DynexCN12WalletRecordEEEE", !20, i64 0, !20, i64 8, !51, i64 16}
!51 = !{!"_ZTSN5boost11multi_index6detail10auto_spaceIPNS1_29random_access_index_node_implISaIcEEESaIN7DynexCN12WalletRecordEEEE", !52, i64 0, !20, i64 8, !10, i64 16}
!52 = !{!"_ZTSSaIPN5boost11multi_index6detail29random_access_index_node_implISaIcEEEE"}
!53 = !{!"_ZTSN6Common16FileMappedVectorIN7DynexCN21EncryptedWalletRecordEEE", !30, i64 0, !54, i64 32, !20, i64 88, !20, i64 96, !32, i64 104}
!54 = !{!"_ZTSN6System16MemoryMappedFileE", !55, i64 0, !30, i64 8, !20, i64 40, !10, i64 48}
!55 = !{!"int", !11, i64 0}
!56 = !{!"_ZTSN5boost11multi_index21multi_index_containerIN7DynexCN20UnlockTransactionJobENS0_10indexed_byINS0_18ordered_non_uniqueINS0_3tagINS2_16BlockHeightIndexEN4mpl_2naES9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_EENS0_6memberIS3_jXadL_ZNS3_11blockHeightEEEEES9_EENS0_17hashed_non_uniqueINS6_INS2_20TransactionHashIndexES9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_EENSB_IS3_N6Crypto4HashEXadL_ZNS3_15transactionHashEEEEES9_S9_EES9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_EESaIS3_EEE", !57, i64 0, !59, i64 8, !60, i64 16, !20, i64 80}
!57 = !{!"_ZTSN5boost16base_from_memberISaINS_11multi_index6detail18ordered_index_nodeINS2_19null_augment_policyENS2_17hashed_index_nodeINS2_15index_node_baseIN7DynexCN20UnlockTransactionJobESaIS8_EEEEEEEELi0EEE", !58, i64 0}
!58 = !{!"_ZTSSaIN5boost11multi_index6detail18ordered_index_nodeINS1_19null_augment_policyENS1_17hashed_index_nodeINS1_15index_node_baseIN7DynexCN20UnlockTransactionJobESaIS7_EEEEEEEE"}
!59 = !{!"_ZTSN5boost11multi_index6detail13header_holderIPNS1_18ordered_index_nodeINS1_19null_augment_policyENS1_17hashed_index_nodeINS1_15index_node_baseIN7DynexCN20UnlockTransactionJobESaIS8_EEEEEEENS0_21multi_index_containerIS8_NS0_10indexed_byINS0_18ordered_non_uniqueINS0_3tagINS7_16BlockHeightIndexEN4mpl_2naESK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_EENS0_6memberIS8_jXadL_ZNS8_11blockHeightEEEEESK_EENS0_17hashed_non_uniqueINSH_INS7_20TransactionHashIndexESK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_EENSM_IS8_N6Crypto4HashEXadL_ZNS8_15transactionHashEEEEESK_SK_EESK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_EES9_EEEE", !10, i64 0}
!60 = !{!"_ZTSN5boost11multi_index6detail13ordered_indexINS0_6memberIN7DynexCN20UnlockTransactionJobEjXadL_ZNS5_11blockHeightEEEEESt4lessIjENS1_9nth_layerILi1ES5_NS0_10indexed_byINS0_18ordered_non_uniqueINS0_3tagINS4_16BlockHeightIndexEN4mpl_2naESF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_EES6_SF_EENS0_17hashed_non_uniqueINSC_INS4_20TransactionHashIndexESF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_EENS3_IS5_N6Crypto4HashEXadL_ZNS5_15transactionHashEEEEESF_SF_EESF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_EESaIS5_EEENS_3mpl6v_itemISD_NSS_7vector0ISF_EELi0EEENS1_22ordered_non_unique_tagENS1_19null_augment_policyEEE", !61, i64 0}
!61 = !{!"_ZTSN5boost11multi_index6detail18ordered_index_implINS0_6memberIN7DynexCN20UnlockTransactionJobEjXadL_ZNS5_11blockHeightEEEEESt4lessIjENS1_9nth_layerILi1ES5_NS0_10indexed_byINS0_18ordered_non_uniqueINS0_3tagINS4_16BlockHeightIndexEN4mpl_2naESF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_EES6_SF_EENS0_17hashed_non_uniqueINSC_INS4_20TransactionHashIndexESF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_EENS3_IS5_N6Crypto4HashEXadL_ZNS5_15transactionHashEEEEESF_SF_EESF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_EESaIS5_EEENS_3mpl6v_itemISD_NSS_7vector0ISF_EELi0EEENS1_22ordered_non_unique_tagENS1_19null_augment_policyEEE", !62, i64 0, !68, i64 56, !69, i64 57}
!62 = !{!"_ZTSN5boost11multi_index6detail12hashed_indexINS0_6memberIN7DynexCN20UnlockTransactionJobEN6Crypto4HashEXadL_ZNS5_15transactionHashEEEEENS_4hashIS7_EESt8equal_toIS7_ENS1_9nth_layerILi2ES5_NS0_10indexed_byINS0_18ordered_non_uniqueINS0_3tagINS4_16BlockHeightIndexEN4mpl_2naESJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_EENS3_IS5_jXadL_ZNS5_11blockHeightEEEEESJ_EENS0_17hashed_non_uniqueINSG_INS4_20TransactionHashIndexESJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_EES8_SJ_SJ_EESJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_EESaIS5_EEENS_3mpl6v_itemISO_NSU_7vector0ISJ_EELi0EEENS1_21hashed_non_unique_tagEEE", !63, i64 0, !64, i64 1, !65, i64 2, !66, i64 8, !46, i64 40, !20, i64 48}
!63 = !{!"_ZTSN5boost11multi_index6memberIN7DynexCN20UnlockTransactionJobEN6Crypto4HashEXadL_ZNS3_15transactionHashEEEEE"}
!64 = !{!"_ZTSN5boost4hashIN6Crypto4HashEEE"}
!65 = !{!"_ZTSSt8equal_toIN6Crypto4HashEE"}
!66 = !{!"_ZTSN5boost11multi_index6detail12bucket_arrayISaIN7DynexCN20UnlockTransactionJobEEEE", !20, i64 0, !67, i64 8}
!67 = !{!"_ZTSN5boost11multi_index6detail10auto_spaceINS1_27hashed_index_base_node_implISaIcEEESaIN7DynexCN20UnlockTransactionJobEEEE", !45, i64 0, !20, i64 8, !10, i64 16}
!68 = !{!"_ZTSN5boost11multi_index6memberIN7DynexCN20UnlockTransactionJobEjXadL_ZNS3_11blockHeightEEEEE"}
!69 = !{!"_ZTSSt4lessIjE"}
!70 = !{!"_ZTSN5boost11multi_index21multi_index_containerIN7DynexCN17WalletTransactionENS0_10indexed_byINS0_13random_accessINS0_3tagINS2_17RandomAccessIndexEN4mpl_2naES9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_EEEENS0_13hashed_uniqueINS6_INS2_16TransactionIndexES9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_EENS0_6memberIS3_N6Crypto4HashEXadL_ZNS3_4hashEEEEES9_S9_EENS0_18ordered_non_uniqueINS6_INS2_16BlockHeightIndexES9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_EENSF_IS3_jXadL_ZNS3_11blockHeightEEEEES9_EES9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_S9_EESaIS3_EEE", !71, i64 0, !73, i64 8, !74, i64 16, !20, i64 112}
!71 = !{!"_ZTSN5boost16base_from_memberISaINS_11multi_index6detail24random_access_index_nodeINS2_17hashed_index_nodeINS2_18ordered_index_nodeINS2_19null_augment_policyENS2_15index_node_baseIN7DynexCN17WalletTransactionESaIS9_EEEEEEEEEELi0EEE", !72, i64 0}
!72 = !{!"_ZTSSaIN5boost11multi_index6detail24random_access_index_nodeINS1_17hashed_index_nodeINS1_18ordered_index_nodeINS1_19null_augment_policyENS1_15index_node_baseIN7DynexCN17WalletTransactionESaIS8_EEEEEEEEEE"}
!73 = !{!"_ZTSN5boost11multi_index6detail13header_holderIPNS1_24random_access_index_nodeINS1_17hashed_index_nodeINS1_18ordered_index_nodeINS1_19null_augment_policyENS1_15index_node_baseIN7DynexCN17WalletTransactionESaIS9_EEEEEEEEENS0_21multi_index_containerIS9_NS0_10indexed_byINS0_13random_accessINS0_3tagINS8_17RandomAccessIndexEN4mpl_2naESM_SM_SM_SM_SM_SM_SM_SM_SM_SM_SM_SM_SM_SM_SM_SM_SM_SM_EEEENS0_13hashed_uniqueINSJ_INS8_16TransactionIndexESM_SM_SM_SM_SM_SM_SM_SM_SM_SM_SM_SM_SM_SM_SM_SM_SM_SM_SM_EENS0_6memberIS9_N6Crypto4HashEXadL_ZNS9_4hashEEEEESM_SM_EENS0_18ordered_non_uniqueINSJ_INS8_16BlockHeightIndexESM_SM_SM_SM_SM_SM_SM_SM_SM_SM_SM_SM_SM_SM_SM_SM_SM_SM_SM_EENSS_IS9_jXadL_ZNS9_11blockHeightEEEEESM_EESM_SM_SM_SM_SM_SM_SM_SM_SM_SM_SM_SM_SM_SM_SM_SM_SM_EESA_EEEE", !10, i64 0}
!74 = !{!"_ZTSN5boost11multi_index6detail19random_access_indexINS1_9nth_layerILi1EN7DynexCN17WalletTransactionENS0_10indexed_byINS0_13random_accessINS0_3tagINS4_17RandomAccessIndexEN4mpl_2naESB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_EEEENS0_13hashed_uniqueINS8_INS4_16TransactionIndexESB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_EENS0_6memberIS5_N6Crypto4HashEXadL_ZNS5_4hashEEEEESB_SB_EENS0_18ordered_non_uniqueINS8_INS4_16BlockHeightIndexESB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_EENSH_IS5_jXadL_ZNS5_11blockHeightEEEEESB_EESB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_SB_EESaIS5_EEENS_3mpl6v_itemIS9_NSU_7vector0ISB_EELi0EEEEE", !75, i64 0, !82, i64 56}
!75 = !{!"_ZTSN5boost11multi_index6detail12hashed_indexINS0_6memberIN7DynexCN17WalletTransactionEN6Crypto4HashEXadL_ZNS5_4hashEEEEENS_4hashIS7_EESt8equal_toIS7_ENS1_9nth_layerILi2ES5_NS0_10indexed_byINS0_13random_accessINS0_3tagINS4_17RandomAccessIndexEN4mpl_2naESJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_EEEENS0_13hashed_uniqueINSG_INS4_16TransactionIndexESJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_EES8_SJ_SJ_EENS0_18ordered_non_uniqueINSG_INS4_16BlockHeightIndexESJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_EENS3_IS5_jXadL_ZNS5_11blockHeightEEEEESJ_EESJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_SJ_EESaIS5_EEENS_3mpl6v_itemISN_NSY_7vector0ISJ_EELi0EEENS1_17hashed_unique_tagEEE", !76, i64 0, !79, i64 2, !64, i64 3, !65, i64 4, !80, i64 8, !46, i64 40, !20, i64 48}
!76 = !{!"_ZTSN5boost11multi_index6detail13ordered_indexINS0_6memberIN7DynexCN17WalletTransactionEjXadL_ZNS5_11blockHeightEEEEESt4lessIjENS1_9nth_layerILi3ES5_NS0_10indexed_byINS0_13random_accessINS0_3tagINS4_17RandomAccessIndexEN4mpl_2naESF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_EEEENS0_13hashed_uniqueINSC_INS4_16TransactionIndexESF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_EENS3_IS5_N6Crypto4HashEXadL_ZNS5_4hashEEEEESF_SF_EENS0_18ordered_non_uniqueINSC_INS4_16BlockHeightIndexESF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_EES6_SF_EESF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_EESaIS5_EEENS_3mpl6v_itemISQ_NSW_7vector0ISF_EELi0EEENS1_22ordered_non_unique_tagENS1_19null_augment_policyEEE", !77, i64 0}
!77 = !{!"_ZTSN5boost11multi_index6detail18ordered_index_implINS0_6memberIN7DynexCN17WalletTransactionEjXadL_ZNS5_11blockHeightEEEEESt4lessIjENS1_9nth_layerILi3ES5_NS0_10indexed_byINS0_13random_accessINS0_3tagINS4_17RandomAccessIndexEN4mpl_2naESF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_EEEENS0_13hashed_uniqueINSC_INS4_16TransactionIndexESF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_EENS3_IS5_N6Crypto4HashEXadL_ZNS5_4hashEEEEESF_SF_EENS0_18ordered_non_uniqueINSC_INS4_16BlockHeightIndexESF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_EES6_SF_EESF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_SF_EESaIS5_EEENS_3mpl6v_itemISQ_NSW_7vector0ISF_EELi0EEENS1_22ordered_non_unique_tagENS1_19null_augment_policyEEE", !78, i64 0, !69, i64 1}
!78 = !{!"_ZTSN5boost11multi_index6memberIN7DynexCN17WalletTransactionEjXadL_ZNS3_11blockHeightEEEEE"}
!79 = !{!"_ZTSN5boost11multi_index6memberIN7DynexCN17WalletTransactionEN6Crypto4HashEXadL_ZNS3_4hashEEEEE"}
!80 = !{!"_ZTSN5boost11multi_index6detail12bucket_arrayISaIN7DynexCN17WalletTransactionEEEE", !20, i64 0, !81, i64 8}
!81 = !{!"_ZTSN5boost11multi_index6detail10auto_spaceINS1_27hashed_index_base_node_implISaIcEEESaIN7DynexCN17WalletTransactionEEEE", !45, i64 0, !20, i64 8, !10, i64 16}
!82 = !{!"_ZTSN5boost11multi_index6detail29random_access_index_ptr_arrayISaIN7DynexCN17WalletTransactionEEEE", !20, i64 0, !20, i64 8, !83, i64 16}
!83 = !{!"_ZTSN5boost11multi_index6detail10auto_spaceIPNS1_29random_access_index_node_implISaIcEEESaIN7DynexCN17WalletTransactionEEEE", !52, i64 0, !20, i64 8, !10, i64 16}
!84 = !{!"_ZTSSt6vectorISt4pairImN7DynexCN14WalletTransferEESaIS3_EE", !85, i64 0}
!85 = !{!"_ZTSSt12_Vector_baseISt4pairImN7DynexCN14WalletTransferEESaIS3_EE", !86, i64 0}
!86 = !{!"_ZTSNSt12_Vector_baseISt4pairImN7DynexCN14WalletTransferEESaIS3_EE12_Vector_implE", !87, i64 0}
!87 = !{!"_ZTSNSt12_Vector_baseISt4pairImN7DynexCN14WalletTransferEESaIS3_EE17_Vector_impl_dataE", !10, i64 0, !10, i64 8, !10, i64 16}
!88 = !{!"_ZTSSt13unordered_mapImbSt4hashImESt8equal_toImESaISt4pairIKmbEEE", !89, i64 0}
!89 = !{!"_ZTSSt10_HashtableImSt4pairIKmbESaIS2_ENSt8__detail10_Select1stESt8equal_toImESt4hashImENS4_18_Mod_range_hashingENS4_20_Default_ranged_hashENS4_20_Prime_rehash_policyENS4_17_Hashtable_traitsILb0ELb0ELb1EEEE", !10, i64 0, !20, i64 8, !90, i64 16, !20, i64 24, !91, i64 32, !10, i64 48}
!90 = !{!"_ZTSNSt8__detail15_Hash_node_baseE", !10, i64 0}
!91 = !{!"_ZTSNSt8__detail20_Prime_rehash_policyE", !46, i64 0, !20, i64 8}
!92 = !{!"_ZTSSt3mapImN7DynexCN11TransactionESt4lessImESaISt4pairIKmS1_EEE", !93, i64 0}
!93 = !{!"_ZTSSt8_Rb_treeImSt4pairIKmN7DynexCN11TransactionEESt10_Select1stIS4_ESt4lessImESaIS4_EE", !94, i64 0}
!94 = !{!"_ZTSNSt8_Rb_treeImSt4pairIKmN7DynexCN11TransactionEESt10_Select1stIS4_ESt4lessImESaIS4_EE13_Rb_tree_implIS8_Lb1EEE", !95, i64 0, !97, i64 8}
!95 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessImEE", !96, i64 0}
!96 = !{!"_ZTSSt4lessImE"}
!97 = !{!"_ZTSSt15_Rb_tree_header", !98, i64 0, !20, i64 32}
!98 = !{!"_ZTSSt18_Rb_tree_node_base", !99, i64 0, !10, i64 8, !10, i64 16, !10, i64 24}
!99 = !{!"_ZTSSt14_Rb_tree_color", !11, i64 0}
!100 = !{!"_ZTSN7DynexCN22BlockchainSynchronizerE", !101, i64 0, !112, i64 80, !29, i64 88, !113, i64 128, !10, i64 176, !118, i64 184, !118, i64 216, !119, i64 248, !119, i64 252, !120, i64 256, !126, i64 264, !131, i64 288, !110, i64 312, !110, i64 352, !134, i64 392}
!101 = !{!"_ZTSN7DynexCN15IObservableImplINS_31IBlockchainSynchronizerObserverENS_23IBlockchainSynchronizerEEE", !102, i64 0, !105, i64 16}
!102 = !{!"_ZTSN7DynexCN23IBlockchainSynchronizerE", !103, i64 0, !104, i64 8}
!103 = !{!"_ZTSN7DynexCN11IObservableINS_31IBlockchainSynchronizerObserverEEE"}
!104 = !{!"_ZTSN7DynexCN19IStreamSerializableE"}
!105 = !{!"_ZTSN5Tools15ObserverManagerIN7DynexCN31IBlockchainSynchronizerObserverEEE", !106, i64 0, !110, i64 24}
!106 = !{!"_ZTSSt6vectorIPN7DynexCN31IBlockchainSynchronizerObserverESaIS2_EE", !107, i64 0}
!107 = !{!"_ZTSSt12_Vector_baseIPN7DynexCN31IBlockchainSynchronizerObserverESaIS2_EE", !108, i64 0}
!108 = !{!"_ZTSNSt12_Vector_baseIPN7DynexCN31IBlockchainSynchronizerObserverESaIS2_EE12_Vector_implE", !109, i64 0}
!109 = !{!"_ZTSNSt12_Vector_baseIPN7DynexCN31IBlockchainSynchronizerObserverESaIS2_EE17_Vector_impl_dataE", !10, i64 0, !10, i64 8, !10, i64 16}
!110 = !{!"_ZTSSt5mutex", !111, i64 0}
!111 = !{!"_ZTSSt12__mutex_base", !11, i64 0}
!112 = !{!"_ZTSN7DynexCN13INodeObserverE"}
!113 = !{!"_ZTSSt3mapIPN7DynexCN19IBlockchainConsumerESt10shared_ptrINS0_20SynchronizationStateEESt4lessIS2_ESaISt4pairIKS2_S5_EEE", !114, i64 0}
!114 = !{!"_ZTSSt8_Rb_treeIPN7DynexCN19IBlockchainConsumerESt4pairIKS2_St10shared_ptrINS0_20SynchronizationStateEEESt10_Select1stIS8_ESt4lessIS2_ESaIS8_EE", !115, i64 0}
!115 = !{!"_ZTSNSt8_Rb_treeIPN7DynexCN19IBlockchainConsumerESt4pairIKS2_St10shared_ptrINS0_20SynchronizationStateEEESt10_Select1stIS8_ESt4lessIS2_ESaIS8_EE13_Rb_tree_implISC_Lb1EEE", !116, i64 0, !97, i64 8}
!116 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessIPN7DynexCN19IBlockchainConsumerEEE", !117, i64 0}
!117 = !{!"_ZTSSt4lessIPN7DynexCN19IBlockchainConsumerEE"}
!118 = !{!"_ZTSN6Crypto4HashE", !11, i64 0}
!119 = !{!"_ZTSN7DynexCN22BlockchainSynchronizer5StateE", !11, i64 0}
!120 = !{!"_ZTSSt10unique_ptrISt6threadSt14default_deleteIS0_EE", !121, i64 0}
!121 = !{!"_ZTSSt15__uniq_ptr_dataISt6threadSt14default_deleteIS0_ELb1ELb1EE", !122, i64 0}
!122 = !{!"_ZTSSt15__uniq_ptr_implISt6threadSt14default_deleteIS0_EE", !123, i64 0}
!123 = !{!"_ZTSSt5tupleIJPSt6threadSt14default_deleteIS0_EEE", !124, i64 0}
!124 = !{!"_ZTSSt11_Tuple_implILm0EJPSt6threadSt14default_deleteIS0_EEE", !125, i64 0}
!125 = !{!"_ZTSSt10_Head_baseILm0EPSt6threadLb0EE", !10, i64 0}
!126 = !{!"_ZTSNSt7__cxx114listISt4pairIPKN7DynexCN18ITransactionReaderESt7promiseISt10error_codeEESaIS9_EEE", !127, i64 0}
!127 = !{!"_ZTSNSt7__cxx1110_List_baseISt4pairIPKN7DynexCN18ITransactionReaderESt7promiseISt10error_codeEESaIS9_EEE", !128, i64 0}
!128 = !{!"_ZTSNSt7__cxx1110_List_baseISt4pairIPKN7DynexCN18ITransactionReaderESt7promiseISt10error_codeEESaIS9_EE10_List_implE", !129, i64 0}
!129 = !{!"_ZTSNSt8__detail17_List_node_headerE", !130, i64 0, !20, i64 16}
!130 = !{!"_ZTSNSt8__detail15_List_node_baseE", !10, i64 0, !10, i64 8}
!131 = !{!"_ZTSNSt7__cxx114listISt4pairIPKN6Crypto4HashESt7promiseIvEESaIS8_EEE", !132, i64 0}
!132 = !{!"_ZTSNSt7__cxx1110_List_baseISt4pairIPKN6Crypto4HashESt7promiseIvEESaIS8_EEE", !133, i64 0}
!133 = !{!"_ZTSNSt7__cxx1110_List_baseISt4pairIPKN6Crypto4HashESt7promiseIvEESaIS8_EE10_List_implE", !129, i64 0}
!134 = !{!"_ZTSSt18condition_variable", !135, i64 0}
!135 = !{!"_ZTSSt9__condvar", !11, i64 0}
!136 = !{!"_ZTSN7DynexCN20TransfersSyncronizerE", !137, i64 0, !138, i64 8, !29, i64 16, !139, i64 56, !141, i64 112, !10, i64 168, !10, i64 176, !10, i64 184}
!137 = !{!"_ZTSN7DynexCN22ITransfersSynchronizerE", !104, i64 0}
!138 = !{!"_ZTSN7DynexCN27IBlockchainConsumerObserverE"}
!139 = !{!"_ZTSSt13unordered_mapIN6Crypto9PublicKeyESt10unique_ptrIN7DynexCN17TransfersConsumerESt14default_deleteIS4_EESt4hashIS1_ESt8equal_toIS1_ESaISt4pairIKS1_S7_EEE", !140, i64 0}
!140 = !{!"_ZTSSt10_HashtableIN6Crypto9PublicKeyESt4pairIKS1_St10unique_ptrIN7DynexCN17TransfersConsumerESt14default_deleteIS6_EEESaISA_ENSt8__detail10_Select1stESt8equal_toIS1_ESt4hashIS1_ENSC_18_Mod_range_hashingENSC_20_Default_ranged_hashENSC_20_Prime_rehash_policyENSC_17_Hashtable_traitsILb1ELb0ELb1EEEE", !10, i64 0, !20, i64 8, !90, i64 16, !20, i64 24, !91, i64 32, !10, i64 48}
!141 = !{!"_ZTSSt13unordered_mapIN6Crypto9PublicKeyESt10unique_ptrIN5Tools15ObserverManagerIN7DynexCN30ITransfersSynchronizerObserverEEESt14default_deleteIS7_EESt4hashIS1_ESt8equal_toIS1_ESaISt4pairIKS1_SA_EEE", !142, i64 0}
!142 = !{!"_ZTSSt10_HashtableIN6Crypto9PublicKeyESt4pairIKS1_St10unique_ptrIN5Tools15ObserverManagerIN7DynexCN30ITransfersSynchronizerObserverEEESt14default_deleteIS9_EEESaISD_ENSt8__detail10_Select1stESt8equal_toIS1_ESt4hashIS1_ENSF_18_Mod_range_hashingENSF_20_Default_ranged_hashENSF_20_Prime_rehash_policyENSF_17_Hashtable_traitsILb1ELb0ELb1EEEE", !10, i64 0, !20, i64 8, !90, i64 16, !20, i64 24, !91, i64 32, !10, i64 48}
!143 = !{!"_ZTSN6System5EventE", !10, i64 0, !32, i64 8, !10, i64 16, !10, i64 24}
!144 = !{!"_ZTSSt5queueIN7DynexCN11WalletEventESt5dequeIS1_SaIS1_EEE", !145, i64 0}
!145 = !{!"_ZTSSt5dequeIN7DynexCN11WalletEventESaIS1_EE", !146, i64 0}
!146 = !{!"_ZTSSt11_Deque_baseIN7DynexCN11WalletEventESaIS1_EE", !147, i64 0}
!147 = !{!"_ZTSNSt11_Deque_baseIN7DynexCN11WalletEventESaIS1_EE11_Deque_implE", !148, i64 0}
!148 = !{!"_ZTSNSt11_Deque_baseIN7DynexCN11WalletEventESaIS1_EE16_Deque_impl_dataE", !10, i64 0, !20, i64 8, !149, i64 16, !149, i64 48}
!149 = !{!"_ZTSSt15_Deque_iteratorIN7DynexCN11WalletEventERS1_PS1_E", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24}
!150 = !{!"_ZTSN7DynexCN11WalletGreen11WalletStateE", !11, i64 0}
!151 = !{!"_ZTSN6Crypto11chacha8_keyE", !11, i64 0}
!152 = !{!"_ZTSN5boost11multi_index21multi_index_containerIN6Crypto4HashENS0_10indexed_byINS0_13random_accessINS0_3tagIN7DynexCN16BlockHeightIndexEN4mpl_2naESA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_EEEENS0_13hashed_uniqueINS6_INS7_14BlockHashIndexESA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_EENS0_8identityIS3_EESA_SA_EESA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_SA_EESaIS3_EEE", !153, i64 0, !155, i64 8, !156, i64 16, !20, i64 112}
!153 = !{!"_ZTSN5boost16base_from_memberISaINS_11multi_index6detail24random_access_index_nodeINS2_17hashed_index_nodeINS2_15index_node_baseIN6Crypto4HashESaIS7_EEEEEEEELi0EEE", !154, i64 0}
!154 = !{!"_ZTSSaIN5boost11multi_index6detail24random_access_index_nodeINS1_17hashed_index_nodeINS1_15index_node_baseIN6Crypto4HashESaIS6_EEEEEEEE"}
!155 = !{!"_ZTSN5boost11multi_index6detail13header_holderIPNS1_24random_access_index_nodeINS1_17hashed_index_nodeINS1_15index_node_baseIN6Crypto4HashESaIS7_EEEEEEENS0_21multi_index_containerIS7_NS0_10indexed_byINS0_13random_accessINS0_3tagIN7DynexCN16BlockHeightIndexEN4mpl_2naESK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_EEEENS0_13hashed_uniqueINSG_INSH_14BlockHashIndexESK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_EENS0_8identityIS7_EESK_SK_EESK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_SK_EES8_EEEE", !10, i64 0}
!156 = !{!"_ZTSN5boost11multi_index6detail19random_access_indexINS1_9nth_layerILi1EN6Crypto4HashENS0_10indexed_byINS0_13random_accessINS0_3tagIN7DynexCN16BlockHeightIndexEN4mpl_2naESC_SC_SC_SC_SC_SC_SC_SC_SC_SC_SC_SC_SC_SC_SC_SC_SC_SC_EEEENS0_13hashed_uniqueINS8_INS9_14BlockHashIndexESC_SC_SC_SC_SC_SC_SC_SC_SC_SC_SC_SC_SC_SC_SC_SC_SC_SC_SC_EENS0_8identityIS5_EESC_SC_EESC_SC_SC_SC_SC_SC_SC_SC_SC_SC_SC_SC_SC_SC_SC_SC_SC_SC_EESaIS5_EEENS_3mpl6v_itemISA_NSO_7vector0ISC_EELi0EEEEE", !157, i64 0, !161, i64 56}
!157 = !{!"_ZTSN5boost11multi_index6detail12hashed_indexINS0_8identityIN6Crypto4HashEEENS_4hashIS5_EESt8equal_toIS5_ENS1_9nth_layerILi2ES5_NS0_10indexed_byINS0_13random_accessINS0_3tagIN7DynexCN16BlockHeightIndexEN4mpl_2naESI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_EEEENS0_13hashed_uniqueINSE_INSF_14BlockHashIndexESI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_EES6_SI_SI_EESI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_EESaIS5_EEENS_3mpl6v_itemISM_NSS_7vector0ISI_EELi0EEENS1_17hashed_unique_tagEEE", !158, i64 0, !64, i64 1, !65, i64 2, !159, i64 8, !46, i64 40, !20, i64 48}
!158 = !{!"_ZTSN5boost11multi_index8identityIN6Crypto4HashEEE"}
!159 = !{!"_ZTSN5boost11multi_index6detail12bucket_arrayISaIN6Crypto4HashEEEE", !20, i64 0, !160, i64 8}
!160 = !{!"_ZTSN5boost11multi_index6detail10auto_spaceINS1_27hashed_index_base_node_implISaIcEEESaIN6Crypto4HashEEEE", !45, i64 0, !20, i64 8, !10, i64 16}
!161 = !{!"_ZTSN5boost11multi_index6detail29random_access_index_ptr_arrayISaIN6Crypto4HashEEEE", !20, i64 0, !20, i64 8, !162, i64 16}
!162 = !{!"_ZTSN5boost11multi_index6detail10auto_spaceIPNS1_29random_access_index_node_implISaIcEEESaIN6Crypto4HashEEEE", !52, i64 0, !20, i64 8, !10, i64 16}
!163 = !{i64 0, i64 32, !164}
!164 = !{!11, !11, i64 0}
!165 = !{i64 0, i64 32, !164, i64 32, i64 32, !164}
!166 = !{!167, !55, i64 20}
!167 = !{!"_ZTSN7DynexCN28TransactionOutputInformationE", !168, i64 0, !20, i64 8, !55, i64 16, !55, i64 20, !118, i64 24, !18, i64 56, !11, i64 88}
!168 = !{!"_ZTSN7DynexCN16TransactionTypes10OutputTypeE", !11, i64 0}
!169 = distinct !{!169, !170}
!170 = !{!"llvm.loop.mustprogress"}
!171 = !{!172, !20, i64 32}
!172 = !{!"_ZTSN7DynexCN19reserve_proof_entryE", !118, i64 0, !20, i64 32, !18, i64 40, !173, i64 72, !174, i64 104, !174, i64 168}
!173 = !{!"_ZTSN6Crypto8KeyImageE", !11, i64 0}
!174 = !{!"_ZTSN6Crypto9SignatureE", !11, i64 0}
!175 = !{!10, !10, i64 0}
!176 = distinct !{!176, !170}


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