; 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.Logging::LoggerMessage" = type <{ %"class.std::basic_ostream.base", %"class.std::basic_streambuf", ptr, %"class.std::__cxx11::basic_string", i32, [4 x i8], %"class.std::__cxx11::basic_string", %"class.boost::posix_time::ptime", i8, [7 x i8], %"class.std::basic_ios" }>
%"class.std::basic_ostream.base" = type { ptr }
%"class.std::basic_streambuf" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::locale" }
%"class.std::locale" = type { ptr }
%"class.boost::posix_time::ptime" = type { %"class.boost::date_time::base_time" }
%"class.boost::date_time::base_time" = type { %"struct.boost::date_time::counted_time_rep" }
%"struct.boost::date_time::counted_time_rep" = type { %"class.boost::date_time::int_adapter" }
%"class.boost::date_time::int_adapter" = type { i64 }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::unique_ptr.327" = type { %"struct.std::__uniq_ptr_data.328" }
%"struct.std::__uniq_ptr_data.328" = type { %"class.std::__uniq_ptr_impl.329" }
%"class.std::__uniq_ptr_impl.329" = type { %"class.std::tuple.330" }
%"class.std::tuple.330" = type { %"struct.std::_Tuple_impl.331" }
%"struct.std::_Tuple_impl.331" = type { %"struct.std::_Head_base.334" }
%"struct.std::_Head_base.334" = type { ptr }
%"struct.DynexCN::AccountPublicAddress" = type { %"struct.Crypto::PublicKey", %"struct.Crypto::PublicKey" }
%"struct.Crypto::PublicKey" = type { [32 x i8] }
%"class.Tools::ScopeExit" = type <{ %"class.std::function", i8, [7 x i8] }>
%"class.std::function" = type { %"class.std::_Function_base", ptr }
%"class.std::_Function_base" = type { %"union.std::_Any_data", ptr }
%"union.std::_Any_data" = type { %"union.std::_Nocopy_types" }
%"union.std::_Nocopy_types" = type { { i64, i64 } }
%class.anon.601 = type { ptr, ptr }
%"class.System::EventLock" = type { ptr }
%"class.Common::ContainerFormatter" = type { ptr }
%"class.std::error_code" = type { i32, ptr }
%"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.std::vector.335" = type { %"struct.std::_Vector_base.336" }
%"struct.std::_Vector_base.336" = type { %"struct.std::_Vector_base<DynexCN::COMMAND_RPC_GET_RANDOM_OUTPUTS_FOR_AMOUNTS_outs_for_amount, std::allocator<DynexCN::COMMAND_RPC_GET_RANDOM_OUTPUTS_FOR_AMOUNTS_outs_for_amount>>::_Vector_impl" }
%"struct.std::_Vector_base<DynexCN::COMMAND_RPC_GET_RANDOM_OUTPUTS_FOR_AMOUNTS_outs_for_amount, std::allocator<DynexCN::COMMAND_RPC_GET_RANDOM_OUTPUTS_FOR_AMOUNTS_outs_for_amount>>::_Vector_impl" = type { %"struct.std::_Vector_base<DynexCN::COMMAND_RPC_GET_RANDOM_OUTPUTS_FOR_AMOUNTS_outs_for_amount, std::allocator<DynexCN::COMMAND_RPC_GET_RANDOM_OUTPUTS_FOR_AMOUNTS_outs_for_amount>>::_Vector_impl_data" }
%"struct.std::_Vector_base<DynexCN::COMMAND_RPC_GET_RANDOM_OUTPUTS_FOR_AMOUNTS_outs_for_amount, std::allocator<DynexCN::COMMAND_RPC_GET_RANDOM_OUTPUTS_FOR_AMOUNTS_outs_for_amount>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.340" = type { %"struct.std::_Vector_base.341" }
%"struct.std::_Vector_base.341" = type { %"struct.std::_Vector_base<DynexCN::WalletGreen::InputInfo, std::allocator<DynexCN::WalletGreen::InputInfo>>::_Vector_impl" }
%"struct.std::_Vector_base<DynexCN::WalletGreen::InputInfo, std::allocator<DynexCN::WalletGreen::InputInfo>>::_Vector_impl" = type { %"struct.std::_Vector_base<DynexCN::WalletGreen::InputInfo, std::allocator<DynexCN::WalletGreen::InputInfo>>::_Vector_impl_data" }
%"struct.std::_Vector_base<DynexCN::WalletGreen::InputInfo, std::allocator<DynexCN::WalletGreen::InputInfo>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.__gnu_cxx::__normal_iterator.536" = type { ptr }
%class.anon.602 = type { i8 }
%"struct.DynexCN::WalletGreen::ReceiverAmounts" = type { %"struct.DynexCN::AccountPublicAddress", %"class.std::vector.241" }
%"class.std::vector.241" = type { %"struct.std::_Vector_base.242" }
%"struct.std::_Vector_base.242" = type { %"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl" }
%"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl" = type { %"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl_data" }
%"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.Crypto::SecretKey" = type { [32 x i8] }
%"class.std::vector.346" = type { %"struct.std::_Vector_base.347" }
%"struct.std::_Vector_base.347" = type { %"struct.std::_Vector_base<DynexCN::WalletGreen::ReceiverAmounts, std::allocator<DynexCN::WalletGreen::ReceiverAmounts>>::_Vector_impl" }
%"struct.std::_Vector_base<DynexCN::WalletGreen::ReceiverAmounts, std::allocator<DynexCN::WalletGreen::ReceiverAmounts>>::_Vector_impl" = type { %"struct.std::_Vector_base<DynexCN::WalletGreen::ReceiverAmounts, std::allocator<DynexCN::WalletGreen::ReceiverAmounts>>::_Vector_impl_data" }
%"struct.std::_Vector_base<DynexCN::WalletGreen::ReceiverAmounts, std::allocator<DynexCN::WalletGreen::ReceiverAmounts>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::initializer_list.604" = type { ptr, i64 }
%"class.std::allocator.348" = type { i8 }
%"class.std::allocator" = type { i8 }
%"class.std::vector.322" = type { %"struct.std::_Vector_base.323" }
%"struct.std::_Vector_base.323" = type { %"struct.std::_Vector_base<DynexCN::WalletTransfer, std::allocator<DynexCN::WalletTransfer>>::_Vector_impl" }
%"struct.std::_Vector_base<DynexCN::WalletTransfer, std::allocator<DynexCN::WalletTransfer>>::_Vector_impl" = type { %"struct.std::_Vector_base<DynexCN::WalletTransfer, std::allocator<DynexCN::WalletTransfer>>::_Vector_impl_data" }
%"struct.std::_Vector_base<DynexCN::WalletTransfer, std::allocator<DynexCN::WalletTransfer>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"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" }
%"struct.Crypto::Hash" = type { [32 x i8] }
%"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 }

@_ZN7Logging12BRIGHT_WHITEB5cxx11E = external global %"class.std::__cxx11::basic_string", align 8
@_ZN7Logging10BRIGHT_REDB5cxx11E = external global %"class.std::__cxx11::basic_string", align 8
@_ZTISt12system_error = external constant ptr
@.str.17 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [1 x i8], align 1
@_ZN7Logging7DEFAULTB5cxx11E = external global %"class.std::__cxx11::basic_string", align 8
@_ZN7Logging13BRIGHT_YELLOWB5cxx11E = external global %"class.std::__cxx11::basic_string", align 8
@.str.108 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.112 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.146 = external hidden unnamed_addr constant [13 x i8], align 1
@_ZTISt13runtime_error = external constant ptr
@.str.248 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.249 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.250 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.251 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.252 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.253 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.254 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.255 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.256 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.257 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.258 = external hidden unnamed_addr constant [60 x i8], align 1
@__PRETTY_FUNCTION__._ZN7DynexCN11WalletGreen23createFusionTransactionEmmRKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS7_EERKS7_ = external hidden unnamed_addr constant [136 x i8], align 1
@.str.259 = external hidden unnamed_addr constant [36 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 void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #1 align 2

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

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

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

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

declare ptr @__cxa_allocate_exception(i64)

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local { i32, ptr } @_Z15make_error_codeN7DynexCN5error16WalletErrorCodesE(i32 noundef) #5

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

declare void @__cxa_free_exception(ptr)

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

declare void @__cxa_throw(ptr, ptr, ptr)

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNK5boost11multi_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_EELi0EEEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(152)) #1 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK7DynexCN11WalletGreen14throwIfStoppedEv(ptr noundef nonnull align 8 dereferenceable(1872)) #2 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)) #7

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(152) ptr @_ZN5boost11multi_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_EE3getIS7_EERNSS_5indexIT_E4typeEv(ptr noundef nonnull align 8 dereferenceable(176)) #1 align 2

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

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

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

declare void @_ZNK7DynexCN8Currency22accountAddressAsStringB5cxx11ERKNS_20AccountPublicAddressE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(984), ptr noundef nonnull align 1 dereferenceable(64)) #3

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

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

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

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #8

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

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

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

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

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

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

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

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

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

; 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 @_ZNSt6vectorIN7DynexCN14WalletTransferESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #1 align 2

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7DynexCN11WalletGreen15makeTransactionERKSt6vectorINS0_15ReceiverAmountsESaIS2_EERS1_INS0_9InputInfoESaIS7_EERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEmRN6Crypto9SecretKeyE(ptr dead_on_unwind noalias writable sret(%"class.std::unique_ptr.327") align 8, ptr noundef nonnull align 8 dereferenceable(1872), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(32), i64 noundef, ptr noundef nonnull align 1 dereferenceable(32)) #2 align 2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; 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 uwtable
declare dso_local noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA54_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161), ptr noundef nonnull align 1 dereferenceable(54)) #7

; Function Attrs: mustprogress uwtable
define dso_local noundef i64 @_ZN7DynexCN11WalletGreen23createFusionTransactionEmmRKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS7_EERKS7_(ptr noundef nonnull align 8 dereferenceable(1872) %0, i64 noundef %1, i64 noundef %2, ptr noundef nonnull align 8 dereferenceable(24) %3, ptr noundef nonnull align 8 dereferenceable(32) %4) unnamed_addr #2 align 2 personality ptr @__gxx_personality_v0 {
  %6 = alloca i64, align 8
  %7 = alloca ptr, align 8
  %8 = alloca i64, align 8
  %9 = alloca i64, align 8
  %10 = alloca ptr, align 8
  %11 = alloca ptr, align 8
  %12 = alloca i64, align 8
  %13 = alloca %"class.Tools::ScopeExit", align 8
  %14 = alloca %"class.std::function", align 8
  %15 = alloca %class.anon.601, align 8
  %16 = alloca ptr, align 8
  %17 = alloca i32, align 4
  %18 = alloca %"class.System::EventLock", align 8
  %19 = alloca %"class.Logging::LoggerMessage", align 8
  %20 = alloca %"class.Common::ContainerFormatter", align 8
  %21 = alloca i8, align 1
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca i64, align 8
  %24 = alloca i64, align 8
  %25 = alloca %"class.Logging::LoggerMessage", align 8
  %26 = alloca %"class.std::__cxx11::basic_string", align 8
  %27 = alloca %"class.std::__cxx11::basic_string", align 8
  %28 = alloca %"class.std::__cxx11::basic_string", align 8
  %29 = alloca %"class.std::__cxx11::basic_string", align 8
  %30 = alloca i1, align 1
  %31 = alloca %"class.Logging::LoggerMessage", align 8
  %32 = alloca i64, align 8
  %33 = alloca %"class.Logging::LoggerMessage", align 8
  %34 = alloca %"class.std::error_code", align 8
  %35 = alloca %"class.std::vector.317", align 8
  %36 = alloca %"class.Logging::LoggerMessage", align 8
  %37 = alloca %"class.std::__cxx11::basic_string", align 8
  %38 = alloca i32, align 4
  %39 = alloca %"class.std::vector.335", align 8
  %40 = alloca %"class.std::vector.340", align 8
  %41 = alloca %"struct.DynexCN::AccountPublicAddress", align 1
  %42 = alloca %"class.Logging::LoggerMessage", align 8
  %43 = alloca %"class.std::__cxx11::basic_string", align 8
  %44 = alloca %"class.std::unique_ptr.327", align 8
  %45 = alloca i64, align 8
  %46 = alloca i32, align 4
  %47 = alloca i64, align 8
  %48 = alloca %"class.__gnu_cxx::__normal_iterator.536", align 8
  %49 = alloca %"class.__gnu_cxx::__normal_iterator.536", align 8
  %50 = alloca %class.anon.602, align 1
  %51 = alloca %"struct.DynexCN::WalletGreen::ReceiverAmounts", align 8
  %52 = alloca %"struct.Crypto::SecretKey", align 1
  %53 = alloca %"class.std::unique_ptr.327", align 8
  %54 = alloca %"class.std::vector.346", align 8
  %55 = alloca %"class.std::initializer_list.604", align 8
  %56 = alloca [1 x %"struct.DynexCN::WalletGreen::ReceiverAmounts"], align 8
  %57 = alloca ptr, align 8
  %58 = alloca %"class.std::allocator.348", align 1
  %59 = alloca %"class.std::__cxx11::basic_string", align 8
  %60 = alloca %"class.std::allocator", align 1
  %61 = alloca %"class.Logging::LoggerMessage", align 8
  %62 = alloca %"class.std::vector.322", align 8
  store ptr %0, ptr %7, align 8, !tbaa !5
  store i64 %1, ptr %8, align 8, !tbaa !9
  store i64 %2, ptr %9, align 8, !tbaa !9
  store ptr %3, ptr %10, align 8, !tbaa !5
  store ptr %4, ptr %11, align 8, !tbaa !5
  %63 = load ptr, ptr %7, align 8
  store i64 0, ptr %9, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #9
  store i64 -1, ptr %12, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 40, ptr %13) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %14) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %15) #9
  %64 = getelementptr inbounds %class.anon.601, ptr %15, i32 0, i32 0
  store ptr %63, ptr %64, align 8, !tbaa !11
  %65 = getelementptr inbounds %class.anon.601, ptr %15, i32 0, i32 1
  store ptr %12, ptr %65, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvvEEC2IZN7DynexCN11WalletGreen23createFusionTransactionEmmRKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaISB_EERKSB_E3$_0vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull align 8 dereferenceable(16) %15) #9
  invoke void @_ZN5Tools9ScopeExitC1EOSt8functionIFvvEE(ptr noundef nonnull align 8 dereferenceable(33) %13, ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %66 unwind label %142

66:                                               ; preds = %5
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %15) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %14) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #9
  %67 = getelementptr inbounds %"class.DynexCN::WalletGreen", ptr %63, i32 0, i32 22
  invoke void @_ZN6System9EventLockC1ERNS_5EventE(ptr noundef nonnull align 8 dereferenceable(8) %18, ptr noundef nonnull align 8 dereferenceable(32) %67)
          to label %68 unwind label %146

68:                                               ; preds = %66
  call void @llvm.lifetime.start.p0(i64 432, ptr %19) #9
  %69 = getelementptr inbounds %"class.DynexCN::WalletGreen", ptr %63, i32 0, i32 8
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.Logging::LoggerMessage") align 8 %19, ptr noundef nonnull align 8 dereferenceable(40) %69, i32 noundef 3, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging12BRIGHT_WHITEB5cxx11E)
          to label %70 unwind label %150

70:                                               ; preds = %68
  %71 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA24_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %19, ptr noundef nonnull align 1 dereferenceable(24) @.str.248)
          to label %72 unwind label %154

72:                                               ; preds = %70
  %73 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA8_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %71, ptr noundef nonnull align 1 dereferenceable(8) @.str.108)
          to label %74 unwind label %154

74:                                               ; preds = %72
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #9
  %75 = load ptr, ptr %10, align 8, !tbaa !5
  %76 = invoke ptr @_ZN6Common22makeContainerFormatterISt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS7_EEEENS_18ContainerFormatterIT_EERKSB_(ptr noundef nonnull align 8 dereferenceable(24) %75)
          to label %77 unwind label %158

77:                                               ; preds = %74
  %78 = getelementptr inbounds %"class.Common::ContainerFormatter", ptr %20, i32 0, i32 0
  store ptr %76, ptr %78, align 8
  %79 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEN6Common18ContainerFormatterISt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaISA_EEEEEOT_SF_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %73, ptr noundef nonnull align 8 dereferenceable(8) %20)
          to label %80 unwind label %158

80:                                               ; preds = %77
  %81 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA7_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %79, ptr noundef nonnull align 1 dereferenceable(7) @.str.249)
          to label %82 unwind label %158

82:                                               ; preds = %80
  %83 = load ptr, ptr %11, align 8, !tbaa !5
  %84 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEOT_S9_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %81, ptr noundef nonnull align 8 dereferenceable(32) %83)
          to label %85 unwind label %158

85:                                               ; preds = %82
  call void @llvm.lifetime.start.p0(i64 1, ptr %21) #9
  store i8 39, ptr %21, align 1, !tbaa !13
  %86 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEcEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %84, ptr noundef nonnull align 1 dereferenceable(1) %21)
          to label %87 unwind label %162

87:                                               ; preds = %85
  %88 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA13_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %86, ptr noundef nonnull align 1 dereferenceable(13) @.str.146)
          to label %89 unwind label %162

89:                                               ; preds = %87
  call void @llvm.lifetime.start.p0(i64 32, ptr %22) #9
  %90 = getelementptr inbounds %"class.DynexCN::WalletGreen", ptr %63, i32 0, i32 6
  %91 = load ptr, ptr %90, align 8, !tbaa !14
  %92 = load i64, ptr %8, align 8, !tbaa !9
  invoke void @_ZNK7DynexCN8Currency12formatAmountB5cxx11Em(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %22, ptr noundef nonnull align 8 dereferenceable(984) %91, i64 noundef %92)
          to label %93 unwind label %166

93:                                               ; preds = %89
  %94 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEOT_S9_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %88, ptr noundef nonnull align 8 dereferenceable(32) %22)
          to label %95 unwind label %170

95:                                               ; preds = %93
  %96 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA9_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %94, ptr noundef nonnull align 1 dereferenceable(9) @.str.112)
          to label %97 unwind label %170

97:                                               ; preds = %95
  %98 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEmEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %96, ptr noundef nonnull align 8 dereferenceable(8) %9)
          to label %99 unwind label %170

99:                                               ; preds = %97
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %22) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %21) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #9
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %19) #9
  call void @llvm.lifetime.end.p0(i64 432, ptr %19) #9
  invoke void @_ZNK7DynexCN11WalletGreen21throwIfNotInitializedEv(ptr noundef nonnull align 8 dereferenceable(1872) %63)
          to label %100 unwind label %179

100:                                              ; preds = %99
  invoke void @_ZNK7DynexCN11WalletGreen19throwIfTrackingModeEv(ptr noundef nonnull align 8 dereferenceable(1872) %63)
          to label %101 unwind label %179

101:                                              ; preds = %100
  invoke void @_ZNK7DynexCN11WalletGreen14throwIfStoppedEv(ptr noundef nonnull align 8 dereferenceable(1872) %63)
          to label %102 unwind label %179

102:                                              ; preds = %101
  %103 = load ptr, ptr %10, align 8, !tbaa !5
  invoke void @_ZNK7DynexCN11WalletGreen23validateSourceAddressesERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS7_EE(ptr noundef nonnull align 8 dereferenceable(1872) %63, ptr noundef nonnull align 8 dereferenceable(24) %103)
          to label %104 unwind label %179

104:                                              ; preds = %102
  %105 = load ptr, ptr %10, align 8, !tbaa !5
  %106 = load ptr, ptr %11, align 8, !tbaa !5
  invoke void @_ZNK7DynexCN11WalletGreen25validateChangeDestinationERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS7_EERKS7_b(ptr noundef nonnull align 8 dereferenceable(1872) %63, ptr noundef nonnull align 8 dereferenceable(24) %105, ptr noundef nonnull align 8 dereferenceable(32) %106, i1 noundef zeroext true)
          to label %107 unwind label %179

107:                                              ; preds = %104
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #9
  store i64 4, ptr %23, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #9
  %108 = getelementptr inbounds %"class.DynexCN::WalletGreen", ptr %63, i32 0, i32 6
  %109 = load ptr, ptr %108, align 8, !tbaa !14
  %110 = invoke noundef i64 @_ZNK7DynexCN8Currency20defaultDustThresholdEv(ptr noundef nonnull align 8 dereferenceable(984) %109)
          to label %111 unwind label %183

111:                                              ; preds = %107
  store i64 %110, ptr %24, align 8, !tbaa !9
  %112 = load i64, ptr %8, align 8, !tbaa !9
  %113 = load i64, ptr %24, align 8, !tbaa !9
  %114 = icmp ule i64 %112, %113
  br i1 %114, label %115, label %233

115:                                              ; preds = %111
  call void @llvm.lifetime.start.p0(i64 432, ptr %25) #9
  %116 = getelementptr inbounds %"class.DynexCN::WalletGreen", ptr %63, i32 0, i32 8
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.Logging::LoggerMessage") align 8 %25, ptr noundef nonnull align 8 dereferenceable(40) %116, i32 noundef 1, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging10BRIGHT_REDB5cxx11E)
          to label %117 unwind label %187

117:                                              ; preds = %115
  %118 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA54_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %25, ptr noundef nonnull align 1 dereferenceable(54) @.str.250)
          to label %119 unwind label %191

119:                                              ; preds = %117
  call void @llvm.lifetime.start.p0(i64 32, ptr %26) #9
  %120 = getelementptr inbounds %"class.DynexCN::WalletGreen", ptr %63, i32 0, i32 6
  %121 = load ptr, ptr %120, align 8, !tbaa !14
  %122 = load i64, ptr %8, align 8, !tbaa !9
  invoke void @_ZNK7DynexCN8Currency12formatAmountB5cxx11Em(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %26, ptr noundef nonnull align 8 dereferenceable(984) %121, i64 noundef %122)
          to label %123 unwind label %195

123:                                              ; preds = %119
  %124 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEOT_S9_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %118, ptr noundef nonnull align 8 dereferenceable(32) %26)
          to label %125 unwind label %199

125:                                              ; preds = %123
  %126 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA21_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %124, ptr noundef nonnull align 1 dereferenceable(21) @.str.251)
          to label %127 unwind label %199

127:                                              ; preds = %125
  call void @llvm.lifetime.start.p0(i64 32, ptr %27) #9
  %128 = getelementptr inbounds %"class.DynexCN::WalletGreen", ptr %63, i32 0, i32 6
  %129 = load ptr, ptr %128, align 8, !tbaa !14
  %130 = load i64, ptr %24, align 8, !tbaa !9
  %131 = add i64 %130, 1
  invoke void @_ZNK7DynexCN8Currency12formatAmountB5cxx11Em(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %27, ptr noundef nonnull align 8 dereferenceable(984) %129, i64 noundef %131)
          to label %132 unwind label %203

132:                                              ; preds = %127
  %133 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEOT_S9_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %126, ptr noundef nonnull align 8 dereferenceable(32) %27)
          to label %134 unwind label %207

134:                                              ; preds = %132
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %27) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %26) #9
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %25) #9
  call void @llvm.lifetime.end.p0(i64 432, ptr %25) #9
  store i1 true, ptr %30, align 1
  %135 = call ptr @__cxa_allocate_exception(i64 16) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %28) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %29) #9
  %136 = getelementptr inbounds %"class.DynexCN::WalletGreen", ptr %63, i32 0, i32 6
  %137 = load ptr, ptr %136, align 8, !tbaa !14
  %138 = load i64, ptr %24, align 8, !tbaa !9
  invoke void @_ZNK7DynexCN8Currency12formatAmountB5cxx11Em(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %29, ptr noundef nonnull align 8 dereferenceable(984) %137, i64 noundef %138)
          to label %139 unwind label %216

139:                                              ; preds = %134
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %28, ptr noundef @.str.252, ptr noundef nonnull align 8 dereferenceable(32) %29)
          to label %140 unwind label %220

140:                                              ; preds = %139
  invoke void @_ZNSt13runtime_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(16) %135, ptr noundef nonnull align 8 dereferenceable(32) %28)
          to label %141 unwind label %224

141:                                              ; preds = %140
  store i1 false, ptr %30, align 1
  invoke void @__cxa_throw(ptr %135, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #10
          to label %584 unwind label %224

142:                                              ; preds = %5
  %143 = landingpad { ptr, i32 }
          cleanup
  %144 = extractvalue { ptr, i32 } %143, 0
  store ptr %144, ptr %16, align 8
  %145 = extractvalue { ptr, i32 } %143, 1
  store i32 %145, ptr %17, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %15) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %14) #9
  br label %578

146:                                              ; preds = %66
  %147 = landingpad { ptr, i32 }
          cleanup
  %148 = extractvalue { ptr, i32 } %147, 0
  store ptr %148, ptr %16, align 8
  %149 = extractvalue { ptr, i32 } %147, 1
  store i32 %149, ptr %17, align 4
  br label %577

150:                                              ; preds = %68
  %151 = landingpad { ptr, i32 }
          cleanup
  %152 = extractvalue { ptr, i32 } %151, 0
  store ptr %152, ptr %16, align 8
  %153 = extractvalue { ptr, i32 } %151, 1
  store i32 %153, ptr %17, align 4
  br label %178

154:                                              ; preds = %72, %70
  %155 = landingpad { ptr, i32 }
          cleanup
  %156 = extractvalue { ptr, i32 } %155, 0
  store ptr %156, ptr %16, align 8
  %157 = extractvalue { ptr, i32 } %155, 1
  store i32 %157, ptr %17, align 4
  br label %177

158:                                              ; preds = %82, %80, %77, %74
  %159 = landingpad { ptr, i32 }
          cleanup
  %160 = extractvalue { ptr, i32 } %159, 0
  store ptr %160, ptr %16, align 8
  %161 = extractvalue { ptr, i32 } %159, 1
  store i32 %161, ptr %17, align 4
  br label %176

162:                                              ; preds = %87, %85
  %163 = landingpad { ptr, i32 }
          cleanup
  %164 = extractvalue { ptr, i32 } %163, 0
  store ptr %164, ptr %16, align 8
  %165 = extractvalue { ptr, i32 } %163, 1
  store i32 %165, ptr %17, align 4
  br label %175

166:                                              ; preds = %89
  %167 = landingpad { ptr, i32 }
          cleanup
  %168 = extractvalue { ptr, i32 } %167, 0
  store ptr %168, ptr %16, align 8
  %169 = extractvalue { ptr, i32 } %167, 1
  store i32 %169, ptr %17, align 4
  br label %174

170:                                              ; preds = %97, %95, %93
  %171 = landingpad { ptr, i32 }
          cleanup
  %172 = extractvalue { ptr, i32 } %171, 0
  store ptr %172, ptr %16, align 8
  %173 = extractvalue { ptr, i32 } %171, 1
  store i32 %173, ptr %17, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #9
  br label %174

174:                                              ; preds = %170, %166
  call void @llvm.lifetime.end.p0(i64 32, ptr %22) #9
  br label %175

175:                                              ; preds = %174, %162
  call void @llvm.lifetime.end.p0(i64 1, ptr %21) #9
  br label %176

176:                                              ; preds = %175, %158
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #9
  br label %177

177:                                              ; preds = %176, %154
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %19) #9
  br label %178

178:                                              ; preds = %177, %150
  call void @llvm.lifetime.end.p0(i64 432, ptr %19) #9
  br label %576

179:                                              ; preds = %104, %102, %101, %100, %99
  %180 = landingpad { ptr, i32 }
          cleanup
  %181 = extractvalue { ptr, i32 } %180, 0
  store ptr %181, ptr %16, align 8
  %182 = extractvalue { ptr, i32 } %180, 1
  store i32 %182, ptr %17, align 4
  br label %576

183:                                              ; preds = %244, %107
  %184 = landingpad { ptr, i32 }
          cleanup
  %185 = extractvalue { ptr, i32 } %184, 0
  store ptr %185, ptr %16, align 8
  %186 = extractvalue { ptr, i32 } %184, 1
  store i32 %186, ptr %17, align 4
  br label %575

187:                                              ; preds = %115
  %188 = landingpad { ptr, i32 }
          cleanup
  %189 = extractvalue { ptr, i32 } %188, 0
  store ptr %189, ptr %16, align 8
  %190 = extractvalue { ptr, i32 } %188, 1
  store i32 %190, ptr %17, align 4
  br label %215

191:                                              ; preds = %117
  %192 = landingpad { ptr, i32 }
          cleanup
  %193 = extractvalue { ptr, i32 } %192, 0
  store ptr %193, ptr %16, align 8
  %194 = extractvalue { ptr, i32 } %192, 1
  store i32 %194, ptr %17, align 4
  br label %214

195:                                              ; preds = %119
  %196 = landingpad { ptr, i32 }
          cleanup
  %197 = extractvalue { ptr, i32 } %196, 0
  store ptr %197, ptr %16, align 8
  %198 = extractvalue { ptr, i32 } %196, 1
  store i32 %198, ptr %17, align 4
  br label %213

199:                                              ; preds = %125, %123
  %200 = landingpad { ptr, i32 }
          cleanup
  %201 = extractvalue { ptr, i32 } %200, 0
  store ptr %201, ptr %16, align 8
  %202 = extractvalue { ptr, i32 } %200, 1
  store i32 %202, ptr %17, align 4
  br label %212

203:                                              ; preds = %127
  %204 = landingpad { ptr, i32 }
          cleanup
  %205 = extractvalue { ptr, i32 } %204, 0
  store ptr %205, ptr %16, align 8
  %206 = extractvalue { ptr, i32 } %204, 1
  store i32 %206, ptr %17, align 4
  br label %211

207:                                              ; preds = %132
  %208 = landingpad { ptr, i32 }
          cleanup
  %209 = extractvalue { ptr, i32 } %208, 0
  store ptr %209, ptr %16, align 8
  %210 = extractvalue { ptr, i32 } %208, 1
  store i32 %210, ptr %17, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #9
  br label %211

211:                                              ; preds = %207, %203
  call void @llvm.lifetime.end.p0(i64 32, ptr %27) #9
  br label %212

212:                                              ; preds = %211, %199
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #9
  br label %213

213:                                              ; preds = %212, %195
  call void @llvm.lifetime.end.p0(i64 32, ptr %26) #9
  br label %214

214:                                              ; preds = %213, %191
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %25) #9
  br label %215

215:                                              ; preds = %214, %187
  call void @llvm.lifetime.end.p0(i64 432, ptr %25) #9
  br label %575

216:                                              ; preds = %134
  %217 = landingpad { ptr, i32 }
          cleanup
  %218 = extractvalue { ptr, i32 } %217, 0
  store ptr %218, ptr %16, align 8
  %219 = extractvalue { ptr, i32 } %217, 1
  store i32 %219, ptr %17, align 4
  br label %229

220:                                              ; preds = %139
  %221 = landingpad { ptr, i32 }
          cleanup
  %222 = extractvalue { ptr, i32 } %221, 0
  store ptr %222, ptr %16, align 8
  %223 = extractvalue { ptr, i32 } %221, 1
  store i32 %223, ptr %17, align 4
  br label %228

224:                                              ; preds = %141, %140
  %225 = landingpad { ptr, i32 }
          cleanup
  %226 = extractvalue { ptr, i32 } %225, 0
  store ptr %226, ptr %16, align 8
  %227 = extractvalue { ptr, i32 } %225, 1
  store i32 %227, ptr %17, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #9
  br label %228

228:                                              ; preds = %224, %220
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #9
  br label %229

229:                                              ; preds = %228, %216
  call void @llvm.lifetime.end.p0(i64 32, ptr %29) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %28) #9
  %230 = load i1, ptr %30, align 1
  br i1 %230, label %231, label %232

231:                                              ; preds = %229
  call void @__cxa_free_exception(ptr %135) #9
  br label %232

232:                                              ; preds = %231, %229
  br label %575

233:                                              ; preds = %111
  %234 = getelementptr inbounds %"class.DynexCN::WalletGreen", ptr %63, i32 0, i32 10
  %235 = call noundef nonnull align 8 dereferenceable(152) ptr @_ZN5boost11multi_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_EE3getIS7_EERNSS_5indexIT_E4typeEv(ptr noundef nonnull align 8 dereferenceable(176) %234) #9
  %236 = call noundef i64 @_ZNK5boost11multi_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_EELi0EEEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(152) %235) #9
  %237 = icmp eq i64 %236, 0
  br i1 %237, label %238, label %258

238:                                              ; preds = %233
  call void @llvm.lifetime.start.p0(i64 432, ptr %31) #9
  %239 = getelementptr inbounds %"class.DynexCN::WalletGreen", ptr %63, i32 0, i32 8
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.Logging::LoggerMessage") align 8 %31, ptr noundef nonnull align 8 dereferenceable(40) %239, i32 noundef 1, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging10BRIGHT_REDB5cxx11E)
          to label %240 unwind label %245

240:                                              ; preds = %238
  %241 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA39_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %31, ptr noundef nonnull align 1 dereferenceable(39) @.str.253)
          to label %242 unwind label %249

242:                                              ; preds = %240
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %31) #9
  call void @llvm.lifetime.end.p0(i64 432, ptr %31) #9
  %243 = call ptr @__cxa_allocate_exception(i64 16) #9
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %243, ptr noundef @.str.254)
          to label %244 unwind label %254

244:                                              ; preds = %242
  invoke void @__cxa_throw(ptr %243, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #10
          to label %584 unwind label %183

245:                                              ; preds = %238
  %246 = landingpad { ptr, i32 }
          cleanup
  %247 = extractvalue { ptr, i32 } %246, 0
  store ptr %247, ptr %16, align 8
  %248 = extractvalue { ptr, i32 } %246, 1
  store i32 %248, ptr %17, align 4
  br label %253

249:                                              ; preds = %240
  %250 = landingpad { ptr, i32 }
          cleanup
  %251 = extractvalue { ptr, i32 } %250, 0
  store ptr %251, ptr %16, align 8
  %252 = extractvalue { ptr, i32 } %250, 1
  store i32 %252, ptr %17, align 4
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %31) #9
  br label %253

253:                                              ; preds = %249, %245
  call void @llvm.lifetime.end.p0(i64 432, ptr %31) #9
  br label %575

254:                                              ; preds = %242
  %255 = landingpad { ptr, i32 }
          cleanup
  %256 = extractvalue { ptr, i32 } %255, 0
  store ptr %256, ptr %16, align 8
  %257 = extractvalue { ptr, i32 } %255, 1
  store i32 %257, ptr %17, align 4
  call void @__cxa_free_exception(ptr %243) #9
  br label %575

258:                                              ; preds = %233
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #9
  %259 = getelementptr inbounds %"class.DynexCN::WalletGreen", ptr %63, i32 0, i32 6
  %260 = load ptr, ptr %259, align 8, !tbaa !14
  %261 = getelementptr inbounds %"class.DynexCN::WalletGreen", ptr %63, i32 0, i32 6
  %262 = load ptr, ptr %261, align 8, !tbaa !14
  %263 = invoke noundef i64 @_ZNK7DynexCN8Currency15fusionTxMaxSizeEv(ptr noundef nonnull align 8 dereferenceable(984) %262)
          to label %264 unwind label %293

264:                                              ; preds = %258
  %265 = load i64, ptr %9, align 8, !tbaa !9
  %266 = invoke noundef i64 @_ZNK7DynexCN8Currency31getApproximateMaximumInputCountEmmm(ptr noundef nonnull align 8 dereferenceable(984) %260, i64 noundef %263, i64 noundef 4, i64 noundef %265)
          to label %267 unwind label %293

267:                                              ; preds = %264
  store i64 %266, ptr %32, align 8, !tbaa !9
  %268 = load i64, ptr %32, align 8, !tbaa !9
  %269 = getelementptr inbounds %"class.DynexCN::WalletGreen", ptr %63, i32 0, i32 6
  %270 = load ptr, ptr %269, align 8, !tbaa !14
  %271 = invoke noundef i64 @_ZNK7DynexCN8Currency21fusionTxMinInputCountEv(ptr noundef nonnull align 8 dereferenceable(984) %270)
          to label %272 unwind label %293

272:                                              ; preds = %267
  %273 = icmp ult i64 %268, %271
  br i1 %273, label %274, label %310

274:                                              ; preds = %272
  call void @llvm.lifetime.start.p0(i64 432, ptr %33) #9
  %275 = getelementptr inbounds %"class.DynexCN::WalletGreen", ptr %63, i32 0, i32 8
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.Logging::LoggerMessage") align 8 %33, ptr noundef nonnull align 8 dereferenceable(40) %275, i32 noundef 1, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging10BRIGHT_REDB5cxx11E)
          to label %276 unwind label %297

276:                                              ; preds = %274
  %277 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA37_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %33, ptr noundef nonnull align 1 dereferenceable(37) @.str.255)
          to label %278 unwind label %301

278:                                              ; preds = %276
  %279 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEmEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %277, ptr noundef nonnull align 8 dereferenceable(8) %9)
          to label %280 unwind label %301

280:                                              ; preds = %278
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %33) #9
  call void @llvm.lifetime.end.p0(i64 432, ptr %33) #9
  %281 = call ptr @__cxa_allocate_exception(i64 32) #9
  %282 = invoke { i32, ptr } @_Z15make_error_codeN7DynexCN5error16WalletErrorCodesE(i32 noundef 6)
          to label %283 unwind label %306

283:                                              ; preds = %280
  %284 = getelementptr inbounds { i32, ptr }, ptr %34, i32 0, i32 0
  %285 = extractvalue { i32, ptr } %282, 0
  store i32 %285, ptr %284, align 8
  %286 = getelementptr inbounds { i32, ptr }, ptr %34, i32 0, i32 1
  %287 = extractvalue { i32, ptr } %282, 1
  store ptr %287, ptr %286, align 8
  %288 = getelementptr inbounds { i32, ptr }, ptr %34, i32 0, i32 0
  %289 = load i32, ptr %288, align 8
  %290 = getelementptr inbounds { i32, ptr }, ptr %34, i32 0, i32 1
  %291 = load ptr, ptr %290, align 8
  invoke void @_ZNSt12system_errorC2ESt10error_code(ptr noundef nonnull align 8 dereferenceable(32) %281, i32 %289, ptr %291)
          to label %292 unwind label %306

292:                                              ; preds = %283
  invoke void @__cxa_throw(ptr %281, ptr @_ZTISt12system_error, ptr @_ZNSt12system_errorD1Ev) #10
          to label %584 unwind label %293

293:                                              ; preds = %292, %267, %264, %258
  %294 = landingpad { ptr, i32 }
          cleanup
  %295 = extractvalue { ptr, i32 } %294, 0
  store ptr %295, ptr %16, align 8
  %296 = extractvalue { ptr, i32 } %294, 1
  store i32 %296, ptr %17, align 4
  br label %574

297:                                              ; preds = %274
  %298 = landingpad { ptr, i32 }
          cleanup
  %299 = extractvalue { ptr, i32 } %298, 0
  store ptr %299, ptr %16, align 8
  %300 = extractvalue { ptr, i32 } %298, 1
  store i32 %300, ptr %17, align 4
  br label %305

301:                                              ; preds = %278, %276
  %302 = landingpad { ptr, i32 }
          cleanup
  %303 = extractvalue { ptr, i32 } %302, 0
  store ptr %303, ptr %16, align 8
  %304 = extractvalue { ptr, i32 } %302, 1
  store i32 %304, ptr %17, align 4
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %33) #9
  br label %305

305:                                              ; preds = %301, %297
  call void @llvm.lifetime.end.p0(i64 432, ptr %33) #9
  br label %574

306:                                              ; preds = %283, %280
  %307 = landingpad { ptr, i32 }
          cleanup
  %308 = extractvalue { ptr, i32 } %307, 0
  store ptr %308, ptr %16, align 8
  %309 = extractvalue { ptr, i32 } %307, 1
  store i32 %309, ptr %17, align 4
  call void @__cxa_free_exception(ptr %281) #9
  br label %574

310:                                              ; preds = %272
  call void @llvm.lifetime.start.p0(i64 24, ptr %35) #9
  %311 = load ptr, ptr %10, align 8, !tbaa !5
  %312 = load i64, ptr %8, align 8, !tbaa !9
  %313 = getelementptr inbounds %"class.DynexCN::WalletGreen", ptr %63, i32 0, i32 6
  %314 = load ptr, ptr %313, align 8, !tbaa !14
  %315 = invoke noundef i64 @_ZNK7DynexCN8Currency21fusionTxMinInputCountEv(ptr noundef nonnull align 8 dereferenceable(984) %314)
          to label %316 unwind label %336

316:                                              ; preds = %310
  %317 = load i64, ptr %32, align 8, !tbaa !9
  invoke void @_ZN7DynexCN11WalletGreen22pickRandomFusionInputsERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS7_EEmmm(ptr dead_on_unwind writable sret(%"class.std::vector.317") align 8 %35, ptr noundef nonnull align 8 dereferenceable(1872) %63, ptr noundef nonnull align 8 dereferenceable(24) %311, i64 noundef %312, i64 noundef %315, i64 noundef %317)
          to label %318 unwind label %336

318:                                              ; preds = %316
  %319 = call noundef i64 @_ZNKSt6vectorIN7DynexCN11WalletGreen16OutputToTransferESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %35) #9
  %320 = getelementptr inbounds %"class.DynexCN::WalletGreen", ptr %63, i32 0, i32 6
  %321 = load ptr, ptr %320, align 8, !tbaa !14
  %322 = invoke noundef i64 @_ZNK7DynexCN8Currency21fusionTxMinInputCountEv(ptr noundef nonnull align 8 dereferenceable(984) %321)
          to label %323 unwind label %340

323:                                              ; preds = %318
  %324 = icmp ult i64 %319, %322
  br i1 %324, label %325, label %363

325:                                              ; preds = %323
  call void @llvm.lifetime.start.p0(i64 432, ptr %36) #9
  %326 = getelementptr inbounds %"class.DynexCN::WalletGreen", ptr %63, i32 0, i32 8
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.Logging::LoggerMessage") align 8 %36, ptr noundef nonnull align 8 dereferenceable(40) %326, i32 noundef 2, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging13BRIGHT_YELLOWB5cxx11E)
          to label %327 unwind label %344

327:                                              ; preds = %325
  %328 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA64_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %36, ptr noundef nonnull align 1 dereferenceable(64) @.str.256)
          to label %329 unwind label %348

329:                                              ; preds = %327
  call void @llvm.lifetime.start.p0(i64 32, ptr %37) #9
  %330 = getelementptr inbounds %"class.DynexCN::WalletGreen", ptr %63, i32 0, i32 6
  %331 = load ptr, ptr %330, align 8, !tbaa !14
  %332 = load i64, ptr %8, align 8, !tbaa !9
  invoke void @_ZNK7DynexCN8Currency12formatAmountB5cxx11Em(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %37, ptr noundef nonnull align 8 dereferenceable(984) %331, i64 noundef %332)
          to label %333 unwind label %352

333:                                              ; preds = %329
  %334 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEOT_S9_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %328, ptr noundef nonnull align 8 dereferenceable(32) %37)
          to label %335 unwind label %356

335:                                              ; preds = %333
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %37) #9
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %36) #9
  call void @llvm.lifetime.end.p0(i64 432, ptr %36) #9
  store i64 -1, ptr %6, align 8
  store i32 1, ptr %38, align 4
  br label %570

336:                                              ; preds = %316, %310
  %337 = landingpad { ptr, i32 }
          cleanup
  %338 = extractvalue { ptr, i32 } %337, 0
  store ptr %338, ptr %16, align 8
  %339 = extractvalue { ptr, i32 } %337, 1
  store i32 %339, ptr %17, align 4
  br label %573

340:                                              ; preds = %318
  %341 = landingpad { ptr, i32 }
          cleanup
  %342 = extractvalue { ptr, i32 } %341, 0
  store ptr %342, ptr %16, align 8
  %343 = extractvalue { ptr, i32 } %341, 1
  store i32 %343, ptr %17, align 4
  br label %572

344:                                              ; preds = %325
  %345 = landingpad { ptr, i32 }
          cleanup
  %346 = extractvalue { ptr, i32 } %345, 0
  store ptr %346, ptr %16, align 8
  %347 = extractvalue { ptr, i32 } %345, 1
  store i32 %347, ptr %17, align 4
  br label %362

348:                                              ; preds = %327
  %349 = landingpad { ptr, i32 }
          cleanup
  %350 = extractvalue { ptr, i32 } %349, 0
  store ptr %350, ptr %16, align 8
  %351 = extractvalue { ptr, i32 } %349, 1
  store i32 %351, ptr %17, align 4
  br label %361

352:                                              ; preds = %329
  %353 = landingpad { ptr, i32 }
          cleanup
  %354 = extractvalue { ptr, i32 } %353, 0
  store ptr %354, ptr %16, align 8
  %355 = extractvalue { ptr, i32 } %353, 1
  store i32 %355, ptr %17, align 4
  br label %360

356:                                              ; preds = %333
  %357 = landingpad { ptr, i32 }
          cleanup
  %358 = extractvalue { ptr, i32 } %357, 0
  store ptr %358, ptr %16, align 8
  %359 = extractvalue { ptr, i32 } %357, 1
  store i32 %359, ptr %17, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #9
  br label %360

360:                                              ; preds = %356, %352
  call void @llvm.lifetime.end.p0(i64 32, ptr %37) #9
  br label %361

361:                                              ; preds = %360, %348
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %36) #9
  br label %362

362:                                              ; preds = %361, %344
  call void @llvm.lifetime.end.p0(i64 432, ptr %36) #9
  br label %572

363:                                              ; preds = %323
  call void @llvm.lifetime.start.p0(i64 24, ptr %39) #9
  call void @_ZNSt6vectorIN7DynexCN58COMMAND_RPC_GET_RANDOM_OUTPUTS_FOR_AMOUNTS_outs_for_amountESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %39) #9
  %364 = load i64, ptr %9, align 8, !tbaa !9
  %365 = icmp ne i64 %364, 0
  br i1 %365, label %366, label %373

366:                                              ; preds = %363
  %367 = load i64, ptr %9, align 8, !tbaa !9
  invoke void @_ZN7DynexCN11WalletGreen16requestMixinOutsERKSt6vectorINS0_16OutputToTransferESaIS2_EEmRS1_INS_58COMMAND_RPC_GET_RANDOM_OUTPUTS_FOR_AMOUNTS_outs_for_amountESaIS7_EE(ptr noundef nonnull align 8 dereferenceable(1872) %63, ptr noundef nonnull align 8 dereferenceable(24) %35, i64 noundef %367, ptr noundef nonnull align 8 dereferenceable(24) %39)
          to label %368 unwind label %369

368:                                              ; preds = %366
  br label %373

369:                                              ; preds = %366
  %370 = landingpad { ptr, i32 }
          cleanup
  %371 = extractvalue { ptr, i32 } %370, 0
  store ptr %371, ptr %16, align 8
  %372 = extractvalue { ptr, i32 } %370, 1
  store i32 %372, ptr %17, align 4
  br label %569

373:                                              ; preds = %368, %363
  call void @llvm.lifetime.start.p0(i64 24, ptr %40) #9
  call void @_ZNSt6vectorIN7DynexCN11WalletGreen9InputInfoESaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %40) #9
  %374 = load i64, ptr %9, align 8, !tbaa !9
  invoke void @_ZN7DynexCN11WalletGreen13prepareInputsERKSt6vectorINS0_16OutputToTransferESaIS2_EERS1_INS_58COMMAND_RPC_GET_RANDOM_OUTPUTS_FOR_AMOUNTS_outs_for_amountESaIS7_EEmRS1_INS0_9InputInfoESaISB_EE(ptr noundef nonnull align 8 dereferenceable(1872) %63, ptr noundef nonnull align 8 dereferenceable(24) %35, ptr noundef nonnull align 8 dereferenceable(24) %39, i64 noundef %374, ptr noundef nonnull align 8 dereferenceable(24) %40)
          to label %375 unwind label %392

375:                                              ; preds = %373
  call void @llvm.lifetime.start.p0(i64 64, ptr %41) #9
  %376 = load ptr, ptr %11, align 8, !tbaa !5
  %377 = load ptr, ptr %10, align 8, !tbaa !5
  invoke void @_ZNK7DynexCN11WalletGreen20getChangeDestinationERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt6vectorIS6_SaIS6_EE(ptr dead_on_unwind writable sret(%"struct.DynexCN::AccountPublicAddress") align 1 %41, ptr noundef nonnull align 8 dereferenceable(1872) %63, ptr noundef nonnull align 8 dereferenceable(32) %376, ptr noundef nonnull align 8 dereferenceable(24) %377)
          to label %378 unwind label %396

378:                                              ; preds = %375
  call void @llvm.lifetime.start.p0(i64 432, ptr %42) #9
  %379 = getelementptr inbounds %"class.DynexCN::WalletGreen", ptr %63, i32 0, i32 8
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.Logging::LoggerMessage") align 8 %42, ptr noundef nonnull align 8 dereferenceable(40) %379, i32 noundef 4, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging7DEFAULTB5cxx11E)
          to label %380 unwind label %400

380:                                              ; preds = %378
  %381 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA21_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %42, ptr noundef nonnull align 1 dereferenceable(21) @.str.257)
          to label %382 unwind label %404

382:                                              ; preds = %380
  call void @llvm.lifetime.start.p0(i64 32, ptr %43) #9
  %383 = getelementptr inbounds %"class.DynexCN::WalletGreen", ptr %63, i32 0, i32 6
  %384 = load ptr, ptr %383, align 8, !tbaa !14
  invoke void @_ZNK7DynexCN8Currency22accountAddressAsStringB5cxx11ERKNS_20AccountPublicAddressE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %43, ptr noundef nonnull align 8 dereferenceable(984) %384, ptr noundef nonnull align 1 dereferenceable(64) %41)
          to label %385 unwind label %408

385:                                              ; preds = %382
  %386 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEOT_S9_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %381, ptr noundef nonnull align 8 dereferenceable(32) %43)
          to label %387 unwind label %412

387:                                              ; preds = %385
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %43) #9
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %42) #9
  call void @llvm.lifetime.end.p0(i64 432, ptr %42) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #9
  call void @_ZNSt10unique_ptrIN7DynexCN12ITransactionESt14default_deleteIS1_EEC2IS3_vEEv(ptr noundef nonnull align 8 dereferenceable(8) %44) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #9
  store i32 0, ptr %46, align 4, !tbaa !157
  br label %388

388:                                              ; preds = %484, %387
  %389 = load i32, ptr %46, align 4, !tbaa !157
  %390 = icmp ne i32 %389, 0
  br i1 %390, label %391, label %419

391:                                              ; preds = %388
  call void @_ZNSt6vectorIN7DynexCN11WalletGreen16OutputToTransferESaIS2_EE8pop_backEv(ptr noundef nonnull align 8 dereferenceable(24) %35) #9
  call void @_ZNSt6vectorIN7DynexCN11WalletGreen9InputInfoESaIS2_EE8pop_backEv(ptr noundef nonnull align 8 dereferenceable(24) %40) #9
  br label %419

392:                                              ; preds = %373
  %393 = landingpad { ptr, i32 }
          cleanup
  %394 = extractvalue { ptr, i32 } %393, 0
  store ptr %394, ptr %16, align 8
  %395 = extractvalue { ptr, i32 } %393, 1
  store i32 %395, ptr %17, align 4
  br label %568

396:                                              ; preds = %375
  %397 = landingpad { ptr, i32 }
          cleanup
  %398 = extractvalue { ptr, i32 } %397, 0
  store ptr %398, ptr %16, align 8
  %399 = extractvalue { ptr, i32 } %397, 1
  store i32 %399, ptr %17, align 4
  br label %567

400:                                              ; preds = %378
  %401 = landingpad { ptr, i32 }
          cleanup
  %402 = extractvalue { ptr, i32 } %401, 0
  store ptr %402, ptr %16, align 8
  %403 = extractvalue { ptr, i32 } %401, 1
  store i32 %403, ptr %17, align 4
  br label %418

404:                                              ; preds = %380
  %405 = landingpad { ptr, i32 }
          cleanup
  %406 = extractvalue { ptr, i32 } %405, 0
  store ptr %406, ptr %16, align 8
  %407 = extractvalue { ptr, i32 } %405, 1
  store i32 %407, ptr %17, align 4
  br label %417

408:                                              ; preds = %382
  %409 = landingpad { ptr, i32 }
          cleanup
  %410 = extractvalue { ptr, i32 } %409, 0
  store ptr %410, ptr %16, align 8
  %411 = extractvalue { ptr, i32 } %409, 1
  store i32 %411, ptr %17, align 4
  br label %416

412:                                              ; preds = %385
  %413 = landingpad { ptr, i32 }
          cleanup
  %414 = extractvalue { ptr, i32 } %413, 0
  store ptr %414, ptr %16, align 8
  %415 = extractvalue { ptr, i32 } %413, 1
  store i32 %415, ptr %17, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #9
  br label %416

416:                                              ; preds = %412, %408
  call void @llvm.lifetime.end.p0(i64 32, ptr %43) #9
  br label %417

417:                                              ; preds = %416, %404
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %42) #9
  br label %418

418:                                              ; preds = %417, %400
  call void @llvm.lifetime.end.p0(i64 432, ptr %42) #9
  br label %567

419:                                              ; preds = %391, %388
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #9
  %420 = call ptr @_ZNSt6vectorIN7DynexCN11WalletGreen16OutputToTransferESaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %35) #9
  %421 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.536", ptr %48, i32 0, i32 0
  store ptr %420, ptr %421, align 8
  %422 = call ptr @_ZNSt6vectorIN7DynexCN11WalletGreen16OutputToTransferESaIS2_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %35) #9
  %423 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.536", ptr %49, i32 0, i32 0
  store ptr %422, ptr %423, align 8
  %424 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.536", ptr %48, i32 0, i32 0
  %425 = load ptr, ptr %424, align 8
  %426 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.536", ptr %49, i32 0, i32 0
  %427 = load ptr, ptr %426, align 8
  %428 = invoke noundef i64 @"_ZSt10accumulateIN9__gnu_cxx17__normal_iteratorIPN7DynexCN11WalletGreen16OutputToTransferESt6vectorIS4_SaIS4_EEEEmZNS3_23createFusionTransactionEmmRKS6_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaISF_EERKSF_E3$_1ET0_T_SO_SN_T1_"(ptr %425, ptr %427, i64 noundef 0)
          to label %429 unwind label %437

429:                                              ; preds = %419
  store i64 %428, ptr %47, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 88, ptr %51) #9
  %430 = load i64, ptr %47, align 8, !tbaa !9
  invoke void @_ZN7DynexCN11WalletGreen22decomposeFusionOutputsERKNS_20AccountPublicAddressEm(ptr dead_on_unwind writable sret(%"struct.DynexCN::WalletGreen::ReceiverAmounts") align 8 %51, ptr noundef nonnull align 1 dereferenceable(64) %41, i64 noundef %430)
          to label %431 unwind label %441

431:                                              ; preds = %429
  %432 = getelementptr inbounds %"struct.DynexCN::WalletGreen::ReceiverAmounts", ptr %51, i32 0, i32 1
  %433 = call noundef i64 @_ZNKSt6vectorImSaImEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %432) #9
  %434 = icmp ule i64 %433, 4
  br i1 %434, label %435, label %436

435:                                              ; preds = %431
  br label %446

436:                                              ; preds = %431
  call void @__assert_fail(ptr noundef @.str.258, ptr noundef @.str.17, i32 noundef 3542, ptr noundef @__PRETTY_FUNCTION__._ZN7DynexCN11WalletGreen23createFusionTransactionEmmRKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS7_EERKS7_) #11
  unreachable

437:                                              ; preds = %419
  %438 = landingpad { ptr, i32 }
          cleanup
  %439 = extractvalue { ptr, i32 } %438, 0
  store ptr %439, ptr %16, align 8
  %440 = extractvalue { ptr, i32 } %438, 1
  store i32 %440, ptr %17, align 4
  br label %539

441:                                              ; preds = %429
  %442 = landingpad { ptr, i32 }
          cleanup
  %443 = extractvalue { ptr, i32 } %442, 0
  store ptr %443, ptr %16, align 8
  %444 = extractvalue { ptr, i32 } %442, 1
  store i32 %444, ptr %17, align 4
  br label %538

445:                                              ; No predecessors!
  br label %446

446:                                              ; preds = %445, %435
  call void @llvm.lifetime.start.p0(i64 32, ptr %52) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #9
  call void @llvm.lifetime.start.p0(i64 24, ptr %54) #9
  call void @llvm.lifetime.start.p0(i64 88, ptr %56) #9
  store ptr %56, ptr %57, align 8
  invoke void @_ZN7DynexCN11WalletGreen15ReceiverAmountsC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(88) %56, ptr noundef nonnull align 8 dereferenceable(88) %51)
          to label %447 unwind label %500

447:                                              ; preds = %446
  %448 = getelementptr inbounds %"class.std::initializer_list.604", ptr %55, i32 0, i32 0
  store ptr %56, ptr %448, align 8, !tbaa !158
  %449 = getelementptr inbounds %"class.std::initializer_list.604", ptr %55, i32 0, i32 1
  store i64 1, ptr %449, align 8, !tbaa !160
  call void @llvm.lifetime.start.p0(i64 1, ptr %58) #9
  call void @_ZNSaIN7DynexCN11WalletGreen15ReceiverAmountsEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %58) #9
  %450 = getelementptr inbounds { ptr, i64 }, ptr %55, i32 0, i32 0
  %451 = load ptr, ptr %450, align 8
  %452 = getelementptr inbounds { ptr, i64 }, ptr %55, i32 0, i32 1
  %453 = load i64, ptr %452, align 8
  invoke void @_ZNSt6vectorIN7DynexCN11WalletGreen15ReceiverAmountsESaIS2_EEC2ESt16initializer_listIS2_ERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %54, ptr %451, i64 %453, ptr noundef nonnull align 1 dereferenceable(1) %58)
          to label %454 unwind label %511

454:                                              ; preds = %447
  call void @llvm.lifetime.start.p0(i64 32, ptr %59) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %60) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %60) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %59, ptr noundef @.str.25, ptr noundef nonnull align 1 dereferenceable(1) %60)
          to label %455 unwind label %515

455:                                              ; preds = %454
  invoke void @_ZN7DynexCN11WalletGreen15makeTransactionERKSt6vectorINS0_15ReceiverAmountsESaIS2_EERS1_INS0_9InputInfoESaIS7_EERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEmRN6Crypto9SecretKeyE(ptr dead_on_unwind writable sret(%"class.std::unique_ptr.327") align 8 %53, ptr noundef nonnull align 8 dereferenceable(1872) %63, ptr noundef nonnull align 8 dereferenceable(24) %54, ptr noundef nonnull align 8 dereferenceable(24) %40, ptr noundef nonnull align 8 dereferenceable(32) %59, i64 noundef 0, ptr noundef nonnull align 1 dereferenceable(32) %52)
          to label %456 unwind label %519

456:                                              ; preds = %455
  %457 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt10unique_ptrIN7DynexCN12ITransactionESt14default_deleteIS1_EEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(8) %44, ptr noundef nonnull align 8 dereferenceable(8) %53) #9
  call void @_ZNSt10unique_ptrIN7DynexCN12ITransactionESt14default_deleteIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %53) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %60) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %60) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %59) #9
  call void @_ZNSt6vectorIN7DynexCN11WalletGreen15ReceiverAmountsESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %54) #9
  call void @_ZNSt15__new_allocatorIN7DynexCN11WalletGreen15ReceiverAmountsEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %58) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %58) #9
  %458 = getelementptr inbounds [1 x %"struct.DynexCN::WalletGreen::ReceiverAmounts"], ptr %56, i32 0, i32 0
  %459 = getelementptr inbounds %"struct.DynexCN::WalletGreen::ReceiverAmounts", ptr %458, i64 1
  br label %460

460:                                              ; preds = %460, %456
  %461 = phi ptr [ %459, %456 ], [ %462, %460 ]
  %462 = getelementptr inbounds %"struct.DynexCN::WalletGreen::ReceiverAmounts", ptr %461, i64 -1
  call void @_ZN7DynexCN11WalletGreen15ReceiverAmountsD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %462) #9
  %463 = icmp eq ptr %462, %458
  br i1 %463, label %464, label %460

464:                                              ; preds = %460
  call void @llvm.lifetime.end.p0(i64 88, ptr %56) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %54) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #9
  %465 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNKSt10unique_ptrIN7DynexCN12ITransactionESt14default_deleteIS1_EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %44) #9
  %466 = invoke noundef i64 @_ZN12_GLOBAL__N_118getTransactionSizeERKN7DynexCN18ITransactionReaderE(ptr noundef nonnull align 8 dereferenceable(8) %465)
          to label %467 unwind label %533

467:                                              ; preds = %464
  store i64 %466, ptr %45, align 8, !tbaa !9
  %468 = load i32, ptr %46, align 4, !tbaa !157
  %469 = add nsw i32 %468, 1
  store i32 %469, ptr %46, align 4, !tbaa !157
  call void @llvm.lifetime.end.p0(i64 32, ptr %52) #9
  call void @_ZN7DynexCN11WalletGreen15ReceiverAmountsD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %51) #9
  call void @llvm.lifetime.end.p0(i64 88, ptr %51) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #9
  br label %470

470:                                              ; preds = %467
  %471 = load i64, ptr %45, align 8, !tbaa !9
  %472 = getelementptr inbounds %"class.DynexCN::WalletGreen", ptr %63, i32 0, i32 6
  %473 = load ptr, ptr %472, align 8, !tbaa !14
  %474 = invoke noundef i64 @_ZNK7DynexCN8Currency15fusionTxMaxSizeEv(ptr noundef nonnull align 8 dereferenceable(984) %473)
          to label %475 unwind label %540

475:                                              ; preds = %470
  %476 = icmp ugt i64 %471, %474
  br i1 %476, label %477, label %484

477:                                              ; preds = %475
  %478 = call noundef i64 @_ZNKSt6vectorIN7DynexCN11WalletGreen16OutputToTransferESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %35) #9
  %479 = getelementptr inbounds %"class.DynexCN::WalletGreen", ptr %63, i32 0, i32 6
  %480 = load ptr, ptr %479, align 8, !tbaa !14
  %481 = invoke noundef i64 @_ZNK7DynexCN8Currency21fusionTxMinInputCountEv(ptr noundef nonnull align 8 dereferenceable(984) %480)
          to label %482 unwind label %540

482:                                              ; preds = %477
  %483 = icmp uge i64 %478, %481
  br label %484

484:                                              ; preds = %482, %475
  %485 = phi i1 [ false, %475 ], [ %483, %482 ]
  br i1 %485, label %388, label %486, !llvm.loop !161

486:                                              ; preds = %484
  %487 = call noundef i64 @_ZNKSt6vectorIN7DynexCN11WalletGreen16OutputToTransferESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %35) #9
  %488 = getelementptr inbounds %"class.DynexCN::WalletGreen", ptr %63, i32 0, i32 6
  %489 = load ptr, ptr %488, align 8, !tbaa !14
  %490 = invoke noundef i64 @_ZNK7DynexCN8Currency21fusionTxMinInputCountEv(ptr noundef nonnull align 8 dereferenceable(984) %489)
          to label %491 unwind label %540

491:                                              ; preds = %486
  %492 = icmp ult i64 %487, %490
  br i1 %492, label %493, label %557

493:                                              ; preds = %491
  call void @llvm.lifetime.start.p0(i64 432, ptr %61) #9
  %494 = getelementptr inbounds %"class.DynexCN::WalletGreen", ptr %63, i32 0, i32 8
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.Logging::LoggerMessage") align 8 %61, ptr noundef nonnull align 8 dereferenceable(40) %494, i32 noundef 1, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging10BRIGHT_REDB5cxx11E)
          to label %495 unwind label %544

495:                                              ; preds = %493
  %496 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA36_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %61, ptr noundef nonnull align 1 dereferenceable(36) @.str.259)
          to label %497 unwind label %548

497:                                              ; preds = %495
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %61) #9
  call void @llvm.lifetime.end.p0(i64 432, ptr %61) #9
  %498 = call ptr @__cxa_allocate_exception(i64 16) #9
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %498, ptr noundef @.str.259)
          to label %499 unwind label %553

499:                                              ; preds = %497
  invoke void @__cxa_throw(ptr %498, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #10
          to label %584 unwind label %540

500:                                              ; preds = %446
  %501 = landingpad { ptr, i32 }
          cleanup
  %502 = extractvalue { ptr, i32 } %501, 0
  store ptr %502, ptr %16, align 8
  %503 = extractvalue { ptr, i32 } %501, 1
  store i32 %503, ptr %17, align 4
  %504 = load ptr, ptr %57, align 8
  %505 = icmp eq ptr %56, %504
  br i1 %505, label %510, label %506

506:                                              ; preds = %506, %500
  %507 = phi ptr [ %504, %500 ], [ %508, %506 ]
  %508 = getelementptr inbounds %"struct.DynexCN::WalletGreen::ReceiverAmounts", ptr %507, i64 -1
  call void @_ZN7DynexCN11WalletGreen15ReceiverAmountsD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %508) #9
  %509 = icmp eq ptr %508, %56
  br i1 %509, label %510, label %506

510:                                              ; preds = %506, %500
  br label %532

511:                                              ; preds = %447
  %512 = landingpad { ptr, i32 }
          cleanup
  %513 = extractvalue { ptr, i32 } %512, 0
  store ptr %513, ptr %16, align 8
  %514 = extractvalue { ptr, i32 } %512, 1
  store i32 %514, ptr %17, align 4
  br label %524

515:                                              ; preds = %454
  %516 = landingpad { ptr, i32 }
          cleanup
  %517 = extractvalue { ptr, i32 } %516, 0
  store ptr %517, ptr %16, align 8
  %518 = extractvalue { ptr, i32 } %516, 1
  store i32 %518, ptr %17, align 4
  br label %523

519:                                              ; preds = %455
  %520 = landingpad { ptr, i32 }
          cleanup
  %521 = extractvalue { ptr, i32 } %520, 0
  store ptr %521, ptr %16, align 8
  %522 = extractvalue { ptr, i32 } %520, 1
  store i32 %522, ptr %17, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #9
  br label %523

523:                                              ; preds = %519, %515
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %60) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %60) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %59) #9
  call void @_ZNSt6vectorIN7DynexCN11WalletGreen15ReceiverAmountsESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %54) #9
  br label %524

524:                                              ; preds = %523, %511
  call void @_ZNSt15__new_allocatorIN7DynexCN11WalletGreen15ReceiverAmountsEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %58) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %58) #9
  %525 = getelementptr inbounds [1 x %"struct.DynexCN::WalletGreen::ReceiverAmounts"], ptr %56, i32 0, i32 0
  %526 = getelementptr inbounds %"struct.DynexCN::WalletGreen::ReceiverAmounts", ptr %525, i64 1
  br label %527

527:                                              ; preds = %527, %524
  %528 = phi ptr [ %526, %524 ], [ %529, %527 ]
  %529 = getelementptr inbounds %"struct.DynexCN::WalletGreen::ReceiverAmounts", ptr %528, i64 -1
  call void @_ZN7DynexCN11WalletGreen15ReceiverAmountsD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %529) #9
  %530 = icmp eq ptr %529, %525
  br i1 %530, label %531, label %527

531:                                              ; preds = %527
  br label %532

532:                                              ; preds = %531, %510
  call void @llvm.lifetime.end.p0(i64 88, ptr %56) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %54) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #9
  br label %537

533:                                              ; preds = %464
  %534 = landingpad { ptr, i32 }
          cleanup
  %535 = extractvalue { ptr, i32 } %534, 0
  store ptr %535, ptr %16, align 8
  %536 = extractvalue { ptr, i32 } %534, 1
  store i32 %536, ptr %17, align 4
  br label %537

537:                                              ; preds = %533, %532
  call void @llvm.lifetime.end.p0(i64 32, ptr %52) #9
  call void @_ZN7DynexCN11WalletGreen15ReceiverAmountsD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %51) #9
  br label %538

538:                                              ; preds = %537, %441
  call void @llvm.lifetime.end.p0(i64 88, ptr %51) #9
  br label %539

539:                                              ; preds = %538, %437
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #9
  br label %566

540:                                              ; preds = %499, %486, %477, %470
  %541 = landingpad { ptr, i32 }
          cleanup
  %542 = extractvalue { ptr, i32 } %541, 0
  store ptr %542, ptr %16, align 8
  %543 = extractvalue { ptr, i32 } %541, 1
  store i32 %543, ptr %17, align 4
  br label %566

544:                                              ; preds = %493
  %545 = landingpad { ptr, i32 }
          cleanup
  %546 = extractvalue { ptr, i32 } %545, 0
  store ptr %546, ptr %16, align 8
  %547 = extractvalue { ptr, i32 } %545, 1
  store i32 %547, ptr %17, align 4
  br label %552

548:                                              ; preds = %495
  %549 = landingpad { ptr, i32 }
          cleanup
  %550 = extractvalue { ptr, i32 } %549, 0
  store ptr %550, ptr %16, align 8
  %551 = extractvalue { ptr, i32 } %549, 1
  store i32 %551, ptr %17, align 4
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %61) #9
  br label %552

552:                                              ; preds = %548, %544
  call void @llvm.lifetime.end.p0(i64 432, ptr %61) #9
  br label %566

553:                                              ; preds = %497
  %554 = landingpad { ptr, i32 }
          cleanup
  %555 = extractvalue { ptr, i32 } %554, 0
  store ptr %555, ptr %16, align 8
  %556 = extractvalue { ptr, i32 } %554, 1
  store i32 %556, ptr %17, align 4
  call void @__cxa_free_exception(ptr %498) #9
  br label %566

557:                                              ; preds = %491
  %558 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNKSt10unique_ptrIN7DynexCN12ITransactionESt14default_deleteIS1_EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %44) #9
  call void @llvm.lifetime.start.p0(i64 24, ptr %62) #9
  call void @llvm.memset.p0.i64(ptr align 8 %62, i8 0, i64 24, i1 false)
  call void @_ZNSt6vectorIN7DynexCN14WalletTransferESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %62) #9
  %559 = invoke noundef i64 @_ZN7DynexCN11WalletGreen30validateSaveAndSendTransactionERKNS_18ITransactionReaderERKSt6vectorINS_14WalletTransferESaIS5_EEbb(ptr noundef nonnull align 8 dereferenceable(1872) %63, ptr noundef nonnull align 8 dereferenceable(8) %558, ptr noundef nonnull align 8 dereferenceable(24) %62, i1 noundef zeroext true, i1 noundef zeroext true)
          to label %560 unwind label %562

560:                                              ; preds = %557
  store i64 %559, ptr %12, align 8, !tbaa !9
  call void @_ZNSt6vectorIN7DynexCN14WalletTransferESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %62) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %62) #9
  %561 = load i64, ptr %12, align 8, !tbaa !9
  store i64 %561, ptr %6, align 8
  store i32 1, ptr %38, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #9
  call void @_ZNSt10unique_ptrIN7DynexCN12ITransactionESt14default_deleteIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %44) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr %41) #9
  call void @_ZNSt6vectorIN7DynexCN11WalletGreen9InputInfoESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %40) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %40) #9
  call void @_ZNSt6vectorIN7DynexCN58COMMAND_RPC_GET_RANDOM_OUTPUTS_FOR_AMOUNTS_outs_for_amountESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %39) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %39) #9
  br label %570

562:                                              ; preds = %557
  %563 = landingpad { ptr, i32 }
          cleanup
  %564 = extractvalue { ptr, i32 } %563, 0
  store ptr %564, ptr %16, align 8
  %565 = extractvalue { ptr, i32 } %563, 1
  store i32 %565, ptr %17, align 4
  call void @_ZNSt6vectorIN7DynexCN14WalletTransferESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %62) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %62) #9
  br label %566

566:                                              ; preds = %562, %553, %552, %540, %539
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #9
  call void @_ZNSt10unique_ptrIN7DynexCN12ITransactionESt14default_deleteIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %44) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #9
  br label %567

567:                                              ; preds = %566, %418, %396
  call void @llvm.lifetime.end.p0(i64 64, ptr %41) #9
  br label %568

568:                                              ; preds = %567, %392
  call void @_ZNSt6vectorIN7DynexCN11WalletGreen9InputInfoESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %40) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %40) #9
  br label %569

569:                                              ; preds = %568, %369
  call void @_ZNSt6vectorIN7DynexCN58COMMAND_RPC_GET_RANDOM_OUTPUTS_FOR_AMOUNTS_outs_for_amountESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %39) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %39) #9
  br label %572

570:                                              ; preds = %560, %335
  call void @_ZNSt6vectorIN7DynexCN11WalletGreen16OutputToTransferESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %35) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %35) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #9
  call void @_ZN6System9EventLockD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %18) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #9
  call void @_ZN5Tools9ScopeExitD1Ev(ptr noundef nonnull align 8 dereferenceable(33) %13) #9
  call void @llvm.lifetime.end.p0(i64 40, ptr %13) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #9
  %571 = load i64, ptr %6, align 8
  ret i64 %571

572:                                              ; preds = %569, %362, %340
  call void @_ZNSt6vectorIN7DynexCN11WalletGreen16OutputToTransferESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %35) #9
  br label %573

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

574:                                              ; preds = %573, %306, %305, %293
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #9
  br label %575

575:                                              ; preds = %574, %254, %253, %232, %215, %183
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #9
  br label %576

576:                                              ; preds = %575, %179, %178
  call void @_ZN6System9EventLockD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %18) #9
  br label %577

577:                                              ; preds = %576, %146
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #9
  call void @_ZN5Tools9ScopeExitD1Ev(ptr noundef nonnull align 8 dereferenceable(33) %13) #9
  br label %578

578:                                              ; preds = %577, %142
  call void @llvm.lifetime.end.p0(i64 40, ptr %13) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #9
  br label %579

579:                                              ; preds = %578
  %580 = load ptr, ptr %16, align 8
  %581 = load i32, ptr %17, align 4
  %582 = insertvalue { ptr, i32 } poison, ptr %580, 0
  %583 = insertvalue { ptr, i32 } %582, i32 %581, 1
  resume { ptr, i32 } %583

584:                                              ; preds = %499, %292, %244, %141
  unreachable
}

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

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

declare noundef i64 @_ZNK7DynexCN8Currency31getApproximateMaximumInputCountEmmm(ptr noundef nonnull align 8 dereferenceable(984), i64 noundef, i64 noundef, i64 noundef) #3

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

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden noundef i64 @"_ZSt10accumulateIN9__gnu_cxx17__normal_iteratorIPN7DynexCN11WalletGreen16OutputToTransferESt6vectorIS4_SaIS4_EEEEmZNS3_23createFusionTransactionEmmRKS6_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaISF_EERKSF_E3$_1ET0_T_SO_SN_T1_"(ptr, ptr, i64 noundef) #7

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7DynexCN11WalletGreen22decomposeFusionOutputsERKNS_20AccountPublicAddressEm(ptr dead_on_unwind noalias writable sret(%"struct.DynexCN::WalletGreen::ReceiverAmounts") align 8, ptr noundef nonnull align 1 dereferenceable(64), i64 noundef) #2 align 2

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

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

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

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

; Function Attrs: mustprogress uwtable
declare hidden noundef i64 @_ZN12_GLOBAL__N_118getTransactionSizeERKN7DynexCN18ITransactionReaderE(ptr noundef nonnull align 8 dereferenceable(8)) #2

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

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

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

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

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


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

%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.Logging::LoggerMessage" = type <{ %"class.std::basic_ostream.base", %"class.std::basic_streambuf", ptr, %"class.std::__cxx11::basic_string", i32, [4 x i8], %"class.std::__cxx11::basic_string", %"class.boost::posix_time::ptime", i8, [7 x i8], %"class.std::basic_ios" }>
%"class.std::basic_ostream.base" = type { ptr }
%"class.std::basic_streambuf" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::locale" }
%"class.std::locale" = type { ptr }
%"class.boost::posix_time::ptime" = type { %"class.boost::date_time::base_time" }
%"class.boost::date_time::base_time" = type { %"struct.boost::date_time::counted_time_rep" }
%"struct.boost::date_time::counted_time_rep" = type { %"class.boost::date_time::int_adapter" }
%"class.boost::date_time::int_adapter" = type { i64 }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::unique_ptr.327" = type { %"struct.std::__uniq_ptr_data.328" }
%"struct.std::__uniq_ptr_data.328" = type { %"class.std::__uniq_ptr_impl.329" }
%"class.std::__uniq_ptr_impl.329" = type { %"class.std::tuple.330" }
%"class.std::tuple.330" = type { %"struct.std::_Tuple_impl.331" }
%"struct.std::_Tuple_impl.331" = type { %"struct.std::_Head_base.334" }
%"struct.std::_Head_base.334" = type { ptr }
%"struct.DynexCN::AccountPublicAddress" = type { %"struct.Crypto::PublicKey", %"struct.Crypto::PublicKey" }
%"struct.Crypto::PublicKey" = type { [32 x i8] }
%"class.Tools::ScopeExit" = type <{ %"class.std::function", i8, [7 x i8] }>
%"class.std::function" = type { %"class.std::_Function_base", ptr }
%"class.std::_Function_base" = type { %"union.std::_Any_data", ptr }
%"union.std::_Any_data" = type { %"union.std::_Nocopy_types" }
%"union.std::_Nocopy_types" = type { { i64, i64 } }
%class.anon.601 = type { ptr, ptr }
%"class.System::EventLock" = type { ptr }
%"class.Common::ContainerFormatter" = type { ptr }
%"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.std::vector.335" = type { %"struct.std::_Vector_base.336" }
%"struct.std::_Vector_base.336" = type { %"struct.std::_Vector_base<DynexCN::COMMAND_RPC_GET_RANDOM_OUTPUTS_FOR_AMOUNTS_outs_for_amount, std::allocator<DynexCN::COMMAND_RPC_GET_RANDOM_OUTPUTS_FOR_AMOUNTS_outs_for_amount>>::_Vector_impl" }
%"struct.std::_Vector_base<DynexCN::COMMAND_RPC_GET_RANDOM_OUTPUTS_FOR_AMOUNTS_outs_for_amount, std::allocator<DynexCN::COMMAND_RPC_GET_RANDOM_OUTPUTS_FOR_AMOUNTS_outs_for_amount>>::_Vector_impl" = type { %"struct.std::_Vector_base<DynexCN::COMMAND_RPC_GET_RANDOM_OUTPUTS_FOR_AMOUNTS_outs_for_amount, std::allocator<DynexCN::COMMAND_RPC_GET_RANDOM_OUTPUTS_FOR_AMOUNTS_outs_for_amount>>::_Vector_impl_data" }
%"struct.std::_Vector_base<DynexCN::COMMAND_RPC_GET_RANDOM_OUTPUTS_FOR_AMOUNTS_outs_for_amount, std::allocator<DynexCN::COMMAND_RPC_GET_RANDOM_OUTPUTS_FOR_AMOUNTS_outs_for_amount>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.340" = type { %"struct.std::_Vector_base.341" }
%"struct.std::_Vector_base.341" = type { %"struct.std::_Vector_base<DynexCN::WalletGreen::InputInfo, std::allocator<DynexCN::WalletGreen::InputInfo>>::_Vector_impl" }
%"struct.std::_Vector_base<DynexCN::WalletGreen::InputInfo, std::allocator<DynexCN::WalletGreen::InputInfo>>::_Vector_impl" = type { %"struct.std::_Vector_base<DynexCN::WalletGreen::InputInfo, std::allocator<DynexCN::WalletGreen::InputInfo>>::_Vector_impl_data" }
%"struct.std::_Vector_base<DynexCN::WalletGreen::InputInfo, std::allocator<DynexCN::WalletGreen::InputInfo>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.DynexCN::WalletGreen::ReceiverAmounts" = type { %"struct.DynexCN::AccountPublicAddress", %"class.std::vector.241" }
%"class.std::vector.241" = type { %"struct.std::_Vector_base.242" }
%"struct.std::_Vector_base.242" = type { %"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl" }
%"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl" = type { %"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl_data" }
%"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.Crypto::SecretKey" = type { [32 x i8] }
%"class.std::vector.346" = type { %"struct.std::_Vector_base.347" }
%"struct.std::_Vector_base.347" = type { %"struct.std::_Vector_base<DynexCN::WalletGreen::ReceiverAmounts, std::allocator<DynexCN::WalletGreen::ReceiverAmounts>>::_Vector_impl" }
%"struct.std::_Vector_base<DynexCN::WalletGreen::ReceiverAmounts, std::allocator<DynexCN::WalletGreen::ReceiverAmounts>>::_Vector_impl" = type { %"struct.std::_Vector_base<DynexCN::WalletGreen::ReceiverAmounts, std::allocator<DynexCN::WalletGreen::ReceiverAmounts>>::_Vector_impl_data" }
%"struct.std::_Vector_base<DynexCN::WalletGreen::ReceiverAmounts, std::allocator<DynexCN::WalletGreen::ReceiverAmounts>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::allocator.348" = type { i8 }
%"class.std::allocator" = type { i8 }
%"class.std::vector.322" = type { %"struct.std::_Vector_base.323" }
%"struct.std::_Vector_base.323" = type { %"struct.std::_Vector_base<DynexCN::WalletTransfer, std::allocator<DynexCN::WalletTransfer>>::_Vector_impl" }
%"struct.std::_Vector_base<DynexCN::WalletTransfer, std::allocator<DynexCN::WalletTransfer>>::_Vector_impl" = type { %"struct.std::_Vector_base<DynexCN::WalletTransfer, std::allocator<DynexCN::WalletTransfer>>::_Vector_impl_data" }
%"struct.std::_Vector_base<DynexCN::WalletTransfer, std::allocator<DynexCN::WalletTransfer>>::_Vector_impl_data" = type { ptr, ptr, ptr }

@_ZN7Logging12BRIGHT_WHITEB5cxx11E = external global %"class.std::__cxx11::basic_string", align 8
@_ZN7Logging10BRIGHT_REDB5cxx11E = external global %"class.std::__cxx11::basic_string", align 8
@_ZTISt12system_error = external constant ptr
@.str.17 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [1 x i8], align 1
@_ZN7Logging7DEFAULTB5cxx11E = external global %"class.std::__cxx11::basic_string", align 8
@_ZN7Logging13BRIGHT_YELLOWB5cxx11E = external global %"class.std::__cxx11::basic_string", align 8
@.str.108 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.112 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.146 = external hidden unnamed_addr constant [13 x i8], align 1
@_ZTISt13runtime_error = external constant ptr
@.str.248 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.249 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.250 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.251 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.252 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.253 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.254 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.255 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.256 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.257 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.258 = external hidden unnamed_addr constant [60 x i8], align 1
@__PRETTY_FUNCTION__._ZN7DynexCN11WalletGreen23createFusionTransactionEmmRKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS7_EERKS7_ = external hidden unnamed_addr constant [136 x i8], align 1
@.str.259 = external hidden unnamed_addr constant [36 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 void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #1 align 2

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

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

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

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

declare ptr @__cxa_allocate_exception(i64) local_unnamed_addr

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local { i32, ptr } @_Z15make_error_codeN7DynexCN5error16WalletErrorCodesE(i32 noundef) local_unnamed_addr #5

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

declare void @__cxa_free_exception(ptr) local_unnamed_addr

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNK5boost11multi_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_EELi0EEEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(152)) local_unnamed_addr #1 align 2

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(152) ptr @_ZN5boost11multi_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_EE3getIS7_EERNSS_5indexIT_E4typeEv(ptr noundef nonnull align 8 dereferenceable(176)) local_unnamed_addr #1 align 2

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

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

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

declare void @_ZNK7DynexCN8Currency22accountAddressAsStringB5cxx11ERKNS_20AccountPublicAddressE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(984), ptr noundef nonnull align 1 dereferenceable(64)) local_unnamed_addr #3

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

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

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

; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #8

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

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

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

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

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

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

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

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

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

; 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 @_ZNSt6vectorIN7DynexCN14WalletTransferESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #1 align 2

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7DynexCN11WalletGreen15makeTransactionERKSt6vectorINS0_15ReceiverAmountsESaIS2_EERS1_INS0_9InputInfoESaIS7_EERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEmRN6Crypto9SecretKeyE(ptr dead_on_unwind noalias writable sret(%"class.std::unique_ptr.327") align 8, ptr noundef nonnull align 8 dereferenceable(1872), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(32), i64 noundef, ptr noundef nonnull align 1 dereferenceable(32)) local_unnamed_addr #2 align 2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; 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 uwtable
declare dso_local noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA54_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161), ptr noundef nonnull align 1 dereferenceable(54)) local_unnamed_addr #7

; Function Attrs: mustprogress uwtable
define dso_local noundef i64 @_ZN7DynexCN11WalletGreen23createFusionTransactionEmmRKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS7_EERKS7_(ptr noundef nonnull align 8 dereferenceable(1872) %0, i64 noundef %1, i64 noundef %2, ptr noundef nonnull align 8 dereferenceable(24) %3, ptr noundef nonnull align 8 dereferenceable(32) %4) unnamed_addr #2 align 2 personality ptr @__gxx_personality_v0 {
  %6 = alloca i64, align 8
  %7 = alloca i64, align 8
  %8 = alloca %"class.Tools::ScopeExit", align 8
  %9 = alloca %"class.std::function", align 8
  %10 = alloca %class.anon.601, align 8
  %11 = alloca %"class.System::EventLock", align 8
  %12 = alloca %"class.Logging::LoggerMessage", align 8
  %13 = alloca %"class.Common::ContainerFormatter", align 8
  %14 = alloca i8, align 1
  %15 = alloca %"class.std::__cxx11::basic_string", align 8
  %16 = alloca %"class.Logging::LoggerMessage", align 8
  %17 = alloca %"class.std::__cxx11::basic_string", align 8
  %18 = alloca %"class.std::__cxx11::basic_string", align 8
  %19 = alloca %"class.std::__cxx11::basic_string", align 8
  %20 = alloca %"class.std::__cxx11::basic_string", align 8
  %21 = alloca %"class.Logging::LoggerMessage", align 8
  %22 = alloca %"class.Logging::LoggerMessage", align 8
  %23 = alloca %"class.std::vector.317", align 8
  %24 = alloca %"class.Logging::LoggerMessage", align 8
  %25 = alloca %"class.std::__cxx11::basic_string", align 8
  %26 = alloca %"class.std::vector.335", align 8
  %27 = alloca %"class.std::vector.340", align 8
  %28 = alloca %"struct.DynexCN::AccountPublicAddress", align 1
  %29 = alloca %"class.Logging::LoggerMessage", align 8
  %30 = alloca %"class.std::__cxx11::basic_string", align 8
  %31 = alloca %"class.std::unique_ptr.327", align 8
  %32 = alloca %"struct.DynexCN::WalletGreen::ReceiverAmounts", align 8
  %33 = alloca %"struct.Crypto::SecretKey", align 1
  %34 = alloca %"class.std::unique_ptr.327", align 8
  %35 = alloca %"class.std::vector.346", align 8
  %36 = alloca [1 x %"struct.DynexCN::WalletGreen::ReceiverAmounts"], align 8
  %37 = alloca %"class.std::allocator.348", align 1
  %38 = alloca %"class.std::__cxx11::basic_string", align 8
  %39 = alloca %"class.std::allocator", align 1
  %40 = alloca %"class.Logging::LoggerMessage", align 8
  %41 = alloca %"class.std::vector.322", align 8
  store i64 0, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #9
  store i64 -1, ptr %7, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %8) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %9) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %10) #9
  store ptr %0, ptr %10, align 8, !tbaa !9
  %42 = getelementptr inbounds i8, ptr %10, i64 8
  store ptr %7, ptr %42, align 8, !tbaa !12
  call void @"_ZNSt8functionIFvvEEC2IZN7DynexCN11WalletGreen23createFusionTransactionEmmRKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaISB_EERKSB_E3$_0vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull align 8 dereferenceable(16) %10) #9
  invoke void @_ZN5Tools9ScopeExitC1EOSt8functionIFvvEE(ptr noundef nonnull align 8 dereferenceable(33) %8, ptr noundef nonnull align 8 dereferenceable(32) %9)
          to label %43 unwind label %100

43:                                               ; preds = %5
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %10) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #9
  %44 = getelementptr inbounds i8, ptr %0, i64 1488
  invoke void @_ZN6System9EventLockC1ERNS_5EventE(ptr noundef nonnull align 8 dereferenceable(8) %11, ptr noundef nonnull align 8 dereferenceable(32) %44)
          to label %45 unwind label %102

45:                                               ; preds = %43
  call void @llvm.lifetime.start.p0(i64 432, ptr nonnull %12) #9
  %46 = getelementptr inbounds i8, ptr %0, i64 64
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.Logging::LoggerMessage") align 8 %12, ptr noundef nonnull align 8 dereferenceable(40) %46, i32 noundef 3, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging12BRIGHT_WHITEB5cxx11E)
          to label %47 unwind label %104

47:                                               ; preds = %45
  %48 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA24_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %12, ptr noundef nonnull align 1 dereferenceable(24) @.str.248)
          to label %49 unwind label %106

49:                                               ; preds = %47
  %50 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA8_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %48, ptr noundef nonnull align 1 dereferenceable(8) @.str.108)
          to label %51 unwind label %106

51:                                               ; preds = %49
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #9
  %52 = invoke ptr @_ZN6Common22makeContainerFormatterISt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS7_EEEENS_18ContainerFormatterIT_EERKSB_(ptr noundef nonnull align 8 dereferenceable(24) %3)
          to label %53 unwind label %108

53:                                               ; preds = %51
  store ptr %52, ptr %13, align 8
  %54 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEN6Common18ContainerFormatterISt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaISA_EEEEEOT_SF_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %50, ptr noundef nonnull align 8 dereferenceable(8) %13)
          to label %55 unwind label %108

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

57:                                               ; preds = %55
  %58 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEOT_S9_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %56, ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %59 unwind label %108

59:                                               ; preds = %57
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %14) #9
  store i8 39, ptr %14, align 1, !tbaa !13
  %60 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEcEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %58, ptr noundef nonnull align 1 dereferenceable(1) %14)
          to label %61 unwind label %110

61:                                               ; preds = %59
  %62 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA13_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %60, ptr noundef nonnull align 1 dereferenceable(13) @.str.146)
          to label %63 unwind label %110

63:                                               ; preds = %61
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %15) #9
  %64 = getelementptr inbounds i8, ptr %0, i64 48
  %65 = load ptr, ptr %64, align 8, !tbaa !14
  invoke void @_ZNK7DynexCN8Currency12formatAmountB5cxx11Em(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %15, ptr noundef nonnull align 8 dereferenceable(984) %65, i64 noundef %1)
          to label %66 unwind label %112

66:                                               ; preds = %63
  %67 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEOT_S9_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %62, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %68 unwind label %114

68:                                               ; preds = %66
  %69 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA9_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %67, ptr noundef nonnull align 1 dereferenceable(9) @.str.112)
          to label %70 unwind label %114

70:                                               ; preds = %68
  %71 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEmEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %69, ptr noundef nonnull align 8 dereferenceable(8) %6)
          to label %72 unwind label %114

72:                                               ; preds = %70
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %14) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #9
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %12) #9
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %12) #9
  invoke void @_ZNK7DynexCN11WalletGreen21throwIfNotInitializedEv(ptr noundef nonnull align 8 dereferenceable(1872) %0)
          to label %73 unwind label %121

73:                                               ; preds = %72
  invoke void @_ZNK7DynexCN11WalletGreen19throwIfTrackingModeEv(ptr noundef nonnull align 8 dereferenceable(1872) %0)
          to label %74 unwind label %121

74:                                               ; preds = %73
  invoke void @_ZNK7DynexCN11WalletGreen14throwIfStoppedEv(ptr noundef nonnull align 8 dereferenceable(1872) %0)
          to label %75 unwind label %121

75:                                               ; preds = %74
  invoke void @_ZNK7DynexCN11WalletGreen23validateSourceAddressesERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS7_EE(ptr noundef nonnull align 8 dereferenceable(1872) %0, ptr noundef nonnull align 8 dereferenceable(24) %3)
          to label %76 unwind label %121

76:                                               ; preds = %75
  invoke void @_ZNK7DynexCN11WalletGreen25validateChangeDestinationERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS7_EERKS7_b(ptr noundef nonnull align 8 dereferenceable(1872) %0, ptr noundef nonnull align 8 dereferenceable(24) %3, ptr noundef nonnull align 8 dereferenceable(32) %4, i1 noundef zeroext true)
          to label %77 unwind label %121

77:                                               ; preds = %76
  %78 = load ptr, ptr %64, align 8, !tbaa !14
  %79 = call noundef i64 @_ZNK7DynexCN8Currency20defaultDustThresholdEv(ptr noundef nonnull align 8 dereferenceable(984) %78)
  %.not = icmp ult i64 %79, %1
  br i1 %.not, label %147, label %80

80:                                               ; preds = %77
  call void @llvm.lifetime.start.p0(i64 432, ptr nonnull %16) #9
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.Logging::LoggerMessage") align 8 %16, ptr noundef nonnull align 8 dereferenceable(40) %46, i32 noundef 1, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging10BRIGHT_REDB5cxx11E)
          to label %81 unwind label %125

81:                                               ; preds = %80
  %82 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA54_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %16, ptr noundef nonnull align 1 dereferenceable(54) @.str.250)
          to label %83 unwind label %127

83:                                               ; preds = %81
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %17) #9
  %84 = load ptr, ptr %64, align 8, !tbaa !14
  invoke void @_ZNK7DynexCN8Currency12formatAmountB5cxx11Em(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %17, ptr noundef nonnull align 8 dereferenceable(984) %84, i64 noundef %1)
          to label %85 unwind label %129

85:                                               ; preds = %83
  %86 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEOT_S9_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %82, ptr noundef nonnull align 8 dereferenceable(32) %17)
          to label %87 unwind label %131

87:                                               ; preds = %85
  %88 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA21_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %86, ptr noundef nonnull align 1 dereferenceable(21) @.str.251)
          to label %89 unwind label %131

89:                                               ; preds = %87
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %18) #9
  %90 = load ptr, ptr %64, align 8, !tbaa !14
  %91 = add i64 %79, 1
  invoke void @_ZNK7DynexCN8Currency12formatAmountB5cxx11Em(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %18, ptr noundef nonnull align 8 dereferenceable(984) %90, i64 noundef %91)
          to label %92 unwind label %133

92:                                               ; preds = %89
  %93 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEOT_S9_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %88, ptr noundef nonnull align 8 dereferenceable(32) %18)
          to label %94 unwind label %135

94:                                               ; preds = %92
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #9
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %16) #9
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %16) #9
  %95 = call ptr @__cxa_allocate_exception(i64 16) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %19) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %20) #9
  %96 = load ptr, ptr %64, align 8, !tbaa !14
  invoke void @_ZNK7DynexCN8Currency12formatAmountB5cxx11Em(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %20, ptr noundef nonnull align 8 dereferenceable(984) %96, i64 noundef %79)
          to label %97 unwind label %.thread

97:                                               ; preds = %94
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %19, ptr noundef nonnull @.str.252, ptr noundef nonnull align 8 dereferenceable(32) %20)
          to label %98 unwind label %.thread135

98:                                               ; preds = %97
  invoke void @_ZNSt13runtime_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(16) %95, ptr noundef nonnull align 8 dereferenceable(32) %19)
          to label %99 unwind label %144

99:                                               ; preds = %98
  invoke void @__cxa_throw(ptr nonnull %95, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #10
          to label %341 unwind label %144

100:                                              ; preds = %5
  %101 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %10) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #9
  br label %340

102:                                              ; preds = %43
  %103 = landingpad { ptr, i32 }
          cleanup
  br label %339

104:                                              ; preds = %45
  %105 = landingpad { ptr, i32 }
          cleanup
  br label %120

106:                                              ; preds = %49, %47
  %107 = landingpad { ptr, i32 }
          cleanup
  br label %119

108:                                              ; preds = %57, %55, %53, %51
  %109 = landingpad { ptr, i32 }
          cleanup
  br label %118

110:                                              ; preds = %61, %59
  %111 = landingpad { ptr, i32 }
          cleanup
  br label %117

112:                                              ; preds = %63
  %113 = landingpad { ptr, i32 }
          cleanup
  br label %116

114:                                              ; preds = %70, %68, %66
  %115 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #9
  br label %116

116:                                              ; preds = %114, %112
  %.pn = phi { ptr, i32 } [ %115, %114 ], [ %113, %112 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #9
  br label %117

117:                                              ; preds = %116, %110
  %.pn.pn = phi { ptr, i32 } [ %.pn, %116 ], [ %111, %110 ]
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %14) #9
  br label %118

118:                                              ; preds = %117, %108
  %.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn, %117 ], [ %109, %108 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #9
  br label %119

119:                                              ; preds = %118, %106
  %.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn, %118 ], [ %107, %106 ]
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %12) #9
  br label %120

120:                                              ; preds = %119, %104
  %.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn, %119 ], [ %105, %104 ]
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %12) #9
  br label %338

121:                                              ; preds = %76, %75, %74, %73, %72
  %122 = landingpad { ptr, i32 }
          cleanup
  br label %338

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

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

127:                                              ; preds = %81
  %128 = landingpad { ptr, i32 }
          cleanup
  br label %140

129:                                              ; preds = %83
  %130 = landingpad { ptr, i32 }
          cleanup
  br label %139

131:                                              ; preds = %87, %85
  %132 = landingpad { ptr, i32 }
          cleanup
  br label %138

133:                                              ; preds = %89
  %134 = landingpad { ptr, i32 }
          cleanup
  br label %137

135:                                              ; preds = %92
  %136 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #9
  br label %137

137:                                              ; preds = %135, %133
  %.pn119 = phi { ptr, i32 } [ %136, %135 ], [ %134, %133 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #9
  br label %138

138:                                              ; preds = %137, %131
  %.pn119.pn = phi { ptr, i32 } [ %.pn119, %137 ], [ %132, %131 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #9
  br label %139

139:                                              ; preds = %138, %129
  %.pn119.pn.pn = phi { ptr, i32 } [ %.pn119.pn, %138 ], [ %130, %129 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #9
  br label %140

140:                                              ; preds = %139, %127
  %.pn119.pn.pn.pn = phi { ptr, i32 } [ %.pn119.pn.pn, %139 ], [ %128, %127 ]
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %16) #9
  br label %141

141:                                              ; preds = %140, %125
  %.pn119.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn119.pn.pn.pn, %140 ], [ %126, %125 ]
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %16) #9
  br label %338

.thread:                                          ; preds = %94
  %142 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #9
  br label %146

.thread135:                                       ; preds = %97
  %143 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #9
  br label %146

144:                                              ; preds = %98, %99
  %.070 = phi i1 [ false, %99 ], [ true, %98 ]
  %145 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #9
  br i1 %.070, label %146, label %338

146:                                              ; preds = %.thread135, %.thread, %144
  %.pn125.pn134 = phi { ptr, i32 } [ %142, %.thread ], [ %145, %144 ], [ %143, %.thread135 ]
  call void @__cxa_free_exception(ptr %95) #9
  br label %338

147:                                              ; preds = %77
  %148 = getelementptr inbounds i8, ptr %0, i64 112
  %149 = call noundef nonnull align 8 dereferenceable(152) ptr @_ZN5boost11multi_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_EE3getIS7_EERNSS_5indexIT_E4typeEv(ptr noundef nonnull align 8 dereferenceable(176) %148) #9
  %150 = call noundef i64 @_ZNK5boost11multi_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_EELi0EEEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(152) %149) #9
  %151 = icmp eq i64 %150, 0
  br i1 %151, label %152, label %165

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

153:                                              ; preds = %152
  %154 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA39_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %21, ptr noundef nonnull align 1 dereferenceable(39) @.str.253)
          to label %155 unwind label %160

155:                                              ; preds = %153
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %21) #9
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %21) #9
  %156 = call ptr @__cxa_allocate_exception(i64 16) #9
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %156, ptr noundef nonnull @.str.254)
          to label %157 unwind label %163

157:                                              ; preds = %155
  invoke void @__cxa_throw(ptr nonnull %156, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #10
          to label %341 unwind label %123

158:                                              ; preds = %152
  %159 = landingpad { ptr, i32 }
          cleanup
  br label %162

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

162:                                              ; preds = %160, %158
  %.pn117 = phi { ptr, i32 } [ %161, %160 ], [ %159, %158 ]
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %21) #9
  br label %338

163:                                              ; preds = %155
  %164 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %156) #9
  br label %338

165:                                              ; preds = %147
  %166 = load ptr, ptr %64, align 8, !tbaa !14
  %167 = call noundef i64 @_ZNK7DynexCN8Currency15fusionTxMaxSizeEv(ptr noundef nonnull align 8 dereferenceable(984) %166)
  %168 = load i64, ptr %6, align 8, !tbaa !5
  %169 = invoke noundef i64 @_ZNK7DynexCN8Currency31getApproximateMaximumInputCountEmmm(ptr noundef nonnull align 8 dereferenceable(984) %166, i64 noundef %167, i64 noundef 4, i64 noundef %168)
          to label %170 unwind label %185

170:                                              ; preds = %165
  %171 = load ptr, ptr %64, align 8, !tbaa !14
  %172 = call noundef i64 @_ZNK7DynexCN8Currency21fusionTxMinInputCountEv(ptr noundef nonnull align 8 dereferenceable(984) %171)
  %173 = icmp ult i64 %169, %172
  br i1 %173, label %174, label %194

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

175:                                              ; preds = %174
  %176 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA37_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %22, ptr noundef nonnull align 1 dereferenceable(37) @.str.255)
          to label %177 unwind label %189

177:                                              ; preds = %175
  %178 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEmEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %176, ptr noundef nonnull align 8 dereferenceable(8) %6)
          to label %179 unwind label %189

179:                                              ; preds = %177
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %22) #9
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %22) #9
  %180 = call ptr @__cxa_allocate_exception(i64 32) #9
  %181 = call { i32, ptr } @_Z15make_error_codeN7DynexCN5error16WalletErrorCodesE(i32 noundef 6)
  %182 = extractvalue { i32, ptr } %181, 0
  %183 = extractvalue { i32, ptr } %181, 1
  invoke void @_ZNSt12system_errorC2ESt10error_code(ptr noundef nonnull align 8 dereferenceable(32) %180, i32 %182, ptr %183)
          to label %184 unwind label %192

184:                                              ; preds = %179
  invoke void @__cxa_throw(ptr nonnull %180, ptr nonnull @_ZTISt12system_error, ptr nonnull @_ZNSt12system_errorD1Ev) #10
          to label %341 unwind label %185

185:                                              ; preds = %184, %165
  %186 = landingpad { ptr, i32 }
          cleanup
  br label %338

187:                                              ; preds = %174
  %188 = landingpad { ptr, i32 }
          cleanup
  br label %191

189:                                              ; preds = %177, %175
  %190 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %22) #9
  br label %191

191:                                              ; preds = %189, %187
  %.pn113 = phi { ptr, i32 } [ %190, %189 ], [ %188, %187 ]
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %22) #9
  br label %338

192:                                              ; preds = %179
  %193 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %180) #9
  br label %338

194:                                              ; preds = %170
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %23) #9
  %195 = load ptr, ptr %64, align 8, !tbaa !14
  %196 = call noundef i64 @_ZNK7DynexCN8Currency21fusionTxMinInputCountEv(ptr noundef nonnull align 8 dereferenceable(984) %195)
  invoke void @_ZN7DynexCN11WalletGreen22pickRandomFusionInputsERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS7_EEmmm(ptr dead_on_unwind nonnull writable sret(%"class.std::vector.317") align 8 %23, ptr noundef nonnull align 8 dereferenceable(1872) %0, ptr noundef nonnull align 8 dereferenceable(24) %3, i64 noundef %1, i64 noundef %196, i64 noundef %169)
          to label %197 unwind label %210

197:                                              ; preds = %194
  %198 = call noundef i64 @_ZNKSt6vectorIN7DynexCN11WalletGreen16OutputToTransferESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %23) #9
  %199 = load ptr, ptr %64, align 8, !tbaa !14
  %200 = call noundef i64 @_ZNK7DynexCN8Currency21fusionTxMinInputCountEv(ptr noundef nonnull align 8 dereferenceable(984) %199)
  %201 = icmp ult i64 %198, %200
  br i1 %201, label %202, label %223

202:                                              ; preds = %197
  call void @llvm.lifetime.start.p0(i64 432, ptr nonnull %24) #9
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.Logging::LoggerMessage") align 8 %24, ptr noundef nonnull align 8 dereferenceable(40) %46, i32 noundef 2, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging13BRIGHT_YELLOWB5cxx11E)
          to label %203 unwind label %212

203:                                              ; preds = %202
  %204 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA64_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %24, ptr noundef nonnull align 1 dereferenceable(64) @.str.256)
          to label %205 unwind label %214

205:                                              ; preds = %203
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %25) #9
  %206 = load ptr, ptr %64, align 8, !tbaa !14
  invoke void @_ZNK7DynexCN8Currency12formatAmountB5cxx11Em(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %25, ptr noundef nonnull align 8 dereferenceable(984) %206, i64 noundef %1)
          to label %207 unwind label %216

207:                                              ; preds = %205
  %208 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEOT_S9_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %204, ptr noundef nonnull align 8 dereferenceable(32) %25)
          to label %209 unwind label %218

209:                                              ; preds = %207
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #9
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %24) #9
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %24) #9
  br label %335

210:                                              ; preds = %194
  %211 = landingpad { ptr, i32 }
          cleanup
  br label %337

212:                                              ; preds = %202
  %213 = landingpad { ptr, i32 }
          cleanup
  br label %222

214:                                              ; preds = %203
  %215 = landingpad { ptr, i32 }
          cleanup
  br label %221

216:                                              ; preds = %205
  %217 = landingpad { ptr, i32 }
          cleanup
  br label %220

218:                                              ; preds = %207
  %219 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #9
  br label %220

220:                                              ; preds = %218, %216
  %.pn107 = phi { ptr, i32 } [ %219, %218 ], [ %217, %216 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #9
  br label %221

221:                                              ; preds = %220, %214
  %.pn107.pn = phi { ptr, i32 } [ %.pn107, %220 ], [ %215, %214 ]
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %24) #9
  br label %222

222:                                              ; preds = %221, %212
  %.pn107.pn.pn = phi { ptr, i32 } [ %.pn107.pn, %221 ], [ %213, %212 ]
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %24) #9
  br label %336

223:                                              ; preds = %197
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %26) #9
  call void @_ZNSt6vectorIN7DynexCN58COMMAND_RPC_GET_RANDOM_OUTPUTS_FOR_AMOUNTS_outs_for_amountESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %26) #9
  %224 = load i64, ptr %6, align 8, !tbaa !5
  %.not85 = icmp eq i64 %224, 0
  br i1 %.not85, label %228, label %225

225:                                              ; preds = %223
  invoke void @_ZN7DynexCN11WalletGreen16requestMixinOutsERKSt6vectorINS0_16OutputToTransferESaIS2_EEmRS1_INS_58COMMAND_RPC_GET_RANDOM_OUTPUTS_FOR_AMOUNTS_outs_for_amountESaIS7_EE(ptr noundef nonnull align 8 dereferenceable(1872) %0, ptr noundef nonnull align 8 dereferenceable(24) %23, i64 noundef %224, ptr noundef nonnull align 8 dereferenceable(24) %26)
          to label %228 unwind label %226

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

228:                                              ; preds = %225, %223
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %27) #9
  call void @_ZNSt6vectorIN7DynexCN11WalletGreen9InputInfoESaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %27) #9
  %229 = load i64, ptr %6, align 8, !tbaa !5
  invoke void @_ZN7DynexCN11WalletGreen13prepareInputsERKSt6vectorINS0_16OutputToTransferESaIS2_EERS1_INS_58COMMAND_RPC_GET_RANDOM_OUTPUTS_FOR_AMOUNTS_outs_for_amountESaIS7_EEmRS1_INS0_9InputInfoESaISB_EE(ptr noundef nonnull align 8 dereferenceable(1872) %0, ptr noundef nonnull align 8 dereferenceable(24) %23, ptr noundef nonnull align 8 dereferenceable(24) %26, i64 noundef %229, ptr noundef nonnull align 8 dereferenceable(24) %27)
          to label %230 unwind label %263

230:                                              ; preds = %228
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %28) #9
  invoke void @_ZNK7DynexCN11WalletGreen20getChangeDestinationERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt6vectorIS6_SaIS6_EE(ptr dead_on_unwind nonnull writable sret(%"struct.DynexCN::AccountPublicAddress") align 1 %28, ptr noundef nonnull align 8 dereferenceable(1872) %0, ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef nonnull align 8 dereferenceable(24) %3)
          to label %231 unwind label %265

231:                                              ; preds = %230
  call void @llvm.lifetime.start.p0(i64 432, ptr nonnull %29) #9
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.Logging::LoggerMessage") align 8 %29, ptr noundef nonnull align 8 dereferenceable(40) %46, i32 noundef 4, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging7DEFAULTB5cxx11E)
          to label %232 unwind label %267

232:                                              ; preds = %231
  %233 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA21_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %29, ptr noundef nonnull align 1 dereferenceable(21) @.str.257)
          to label %234 unwind label %269

234:                                              ; preds = %232
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %30) #9
  %235 = load ptr, ptr %64, align 8, !tbaa !14
  invoke void @_ZNK7DynexCN8Currency22accountAddressAsStringB5cxx11ERKNS_20AccountPublicAddressE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %30, ptr noundef nonnull align 8 dereferenceable(984) %235, ptr noundef nonnull align 1 dereferenceable(64) %28)
          to label %236 unwind label %271

236:                                              ; preds = %234
  %237 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEOT_S9_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %233, ptr noundef nonnull align 8 dereferenceable(32) %30)
          to label %238 unwind label %273

238:                                              ; preds = %236
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #9
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %29) #9
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %29) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %31) #9
  call void @_ZNSt10unique_ptrIN7DynexCN12ITransactionESt14default_deleteIS1_EEC2IS3_vEEv(ptr noundef nonnull align 8 dereferenceable(8) %31) #9
  %239 = getelementptr inbounds i8, ptr %32, i64 64
  %240 = call ptr @_ZNSt6vectorIN7DynexCN11WalletGreen16OutputToTransferESaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %23) #9
  %241 = call ptr @_ZNSt6vectorIN7DynexCN11WalletGreen16OutputToTransferESaIS2_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %23) #9
  %242 = invoke noundef i64 @"_ZSt10accumulateIN9__gnu_cxx17__normal_iteratorIPN7DynexCN11WalletGreen16OutputToTransferESt6vectorIS4_SaIS4_EEEEmZNS3_23createFusionTransactionEmmRKS6_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaISF_EERKSF_E3$_1ET0_T_SO_SN_T1_"(ptr %240, ptr %241, i64 noundef 0)
          to label %243 unwind label %.loopexit.split-lp

243:                                              ; preds = %238
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %32) #9
  invoke void @_ZN7DynexCN11WalletGreen22decomposeFusionOutputsERKNS_20AccountPublicAddressEm(ptr dead_on_unwind nonnull writable sret(%"struct.DynexCN::WalletGreen::ReceiverAmounts") align 8 %32, ptr noundef nonnull align 1 dereferenceable(64) %28, i64 noundef %242)
          to label %244 unwind label %.loopexit.split-lp141

244:                                              ; preds = %243
  %245 = call noundef i64 @_ZNKSt6vectorImSaImEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %239) #9
  %246 = icmp ult i64 %245, 5
  br i1 %246, label %247, label %.loopexit145

247:                                              ; preds = %244
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %33) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %34) #9
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %35) #9
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %36) #9
  invoke void @_ZN7DynexCN11WalletGreen15ReceiverAmountsC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(88) %36, ptr noundef nonnull align 8 dereferenceable(88) %32)
          to label %248 unwind label %.loopexit.split-lp147

248:                                              ; preds = %247
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %37) #9
  call void @_ZNSaIN7DynexCN11WalletGreen15ReceiverAmountsEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %37) #9
  invoke void @_ZNSt6vectorIN7DynexCN11WalletGreen15ReceiverAmountsESaIS2_EEC2ESt16initializer_listIS2_ERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %35, ptr nonnull %36, i64 1, ptr noundef nonnull align 1 dereferenceable(1) %37)
          to label %249 unwind label %.loopexit.split-lp152

249:                                              ; preds = %248
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %38) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %39) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %38, ptr noundef nonnull @.str.25, ptr noundef nonnull align 1 dereferenceable(1) %39)
          to label %250 unwind label %.loopexit.split-lp157

250:                                              ; preds = %249
  invoke void @_ZN7DynexCN11WalletGreen15makeTransactionERKSt6vectorINS0_15ReceiverAmountsESaIS2_EERS1_INS0_9InputInfoESaIS7_EERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEmRN6Crypto9SecretKeyE(ptr dead_on_unwind nonnull writable sret(%"class.std::unique_ptr.327") align 8 %34, ptr noundef nonnull align 8 dereferenceable(1872) %0, ptr noundef nonnull align 8 dereferenceable(24) %35, ptr noundef nonnull align 8 dereferenceable(24) %27, ptr noundef nonnull align 8 dereferenceable(32) %38, i64 noundef 0, ptr noundef nonnull align 1 dereferenceable(32) %33)
          to label %251 unwind label %.loopexit.split-lp162

251:                                              ; preds = %250
  %252 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt10unique_ptrIN7DynexCN12ITransactionESt14default_deleteIS1_EEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(8) %31, ptr noundef nonnull align 8 dereferenceable(8) %34) #9
  call void @_ZNSt10unique_ptrIN7DynexCN12ITransactionESt14default_deleteIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %34) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %39) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %38) #9
  call void @_ZNSt6vectorIN7DynexCN11WalletGreen15ReceiverAmountsESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %35) #9
  call void @_ZNSt15__new_allocatorIN7DynexCN11WalletGreen15ReceiverAmountsEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %37) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %37) #9
  call void @_ZN7DynexCN11WalletGreen15ReceiverAmountsD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %36) #9
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %36) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %35) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #9
  %253 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNKSt10unique_ptrIN7DynexCN12ITransactionESt14default_deleteIS1_EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %31) #9
  %254 = invoke noundef i64 @_ZN12_GLOBAL__N_118getTransactionSizeERKN7DynexCN18ITransactionReaderE(ptr noundef nonnull align 8 dereferenceable(8) %253)
          to label %255 unwind label %.loopexit.split-lp167

255:                                              ; preds = %251
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %33) #9
  call void @_ZN7DynexCN11WalletGreen15ReceiverAmountsD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %32) #9
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %32) #9
  %256 = load ptr, ptr %64, align 8, !tbaa !14
  %257 = call noundef i64 @_ZNK7DynexCN8Currency15fusionTxMaxSizeEv(ptr noundef nonnull align 8 dereferenceable(984) %256)
  %258 = icmp ugt i64 %254, %257
  br i1 %258, label %259, label %.critedge

259:                                              ; preds = %255
  %260 = call noundef i64 @_ZNKSt6vectorIN7DynexCN11WalletGreen16OutputToTransferESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %23) #9
  %261 = load ptr, ptr %64, align 8, !tbaa !14
  %262 = call noundef i64 @_ZNK7DynexCN8Currency21fusionTxMinInputCountEv(ptr noundef nonnull align 8 dereferenceable(984) %261)
  %.not99.peel = icmp ult i64 %260, %262
  br i1 %.not99.peel, label %.critedge, label %.peel.next

263:                                              ; preds = %228
  %264 = landingpad { ptr, i32 }
          cleanup
  br label %333

265:                                              ; preds = %230
  %266 = landingpad { ptr, i32 }
          cleanup
  br label %332

267:                                              ; preds = %231
  %268 = landingpad { ptr, i32 }
          cleanup
  br label %277

269:                                              ; preds = %232
  %270 = landingpad { ptr, i32 }
          cleanup
  br label %276

271:                                              ; preds = %234
  %272 = landingpad { ptr, i32 }
          cleanup
  br label %275

273:                                              ; preds = %236
  %274 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #9
  br label %275

275:                                              ; preds = %273, %271
  %.pn86 = phi { ptr, i32 } [ %274, %273 ], [ %272, %271 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #9
  br label %276

276:                                              ; preds = %275, %269
  %.pn86.pn = phi { ptr, i32 } [ %.pn86, %275 ], [ %270, %269 ]
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %29) #9
  br label %277

277:                                              ; preds = %276, %267
  %.pn86.pn.pn = phi { ptr, i32 } [ %.pn86.pn, %276 ], [ %268, %267 ]
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %29) #9
  br label %332

.peel.next:                                       ; preds = %259, %297
  call void @_ZNSt6vectorIN7DynexCN11WalletGreen16OutputToTransferESaIS2_EE8pop_backEv(ptr noundef nonnull align 8 dereferenceable(24) %23) #9
  call void @_ZNSt6vectorIN7DynexCN11WalletGreen9InputInfoESaIS2_EE8pop_backEv(ptr noundef nonnull align 8 dereferenceable(24) %27) #9
  %278 = call ptr @_ZNSt6vectorIN7DynexCN11WalletGreen16OutputToTransferESaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %23) #9
  %279 = call ptr @_ZNSt6vectorIN7DynexCN11WalletGreen16OutputToTransferESaIS2_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %23) #9
  %280 = invoke noundef i64 @"_ZSt10accumulateIN9__gnu_cxx17__normal_iteratorIPN7DynexCN11WalletGreen16OutputToTransferESt6vectorIS4_SaIS4_EEEEmZNS3_23createFusionTransactionEmmRKS6_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaISF_EERKSF_E3$_1ET0_T_SO_SN_T1_"(ptr %278, ptr %279, i64 noundef 0)
          to label %281 unwind label %.loopexit139

281:                                              ; preds = %.peel.next
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %32) #9
  invoke void @_ZN7DynexCN11WalletGreen22decomposeFusionOutputsERKNS_20AccountPublicAddressEm(ptr dead_on_unwind nonnull writable sret(%"struct.DynexCN::WalletGreen::ReceiverAmounts") align 8 %32, ptr noundef nonnull align 1 dereferenceable(64) %28, i64 noundef %280)
          to label %282 unwind label %.loopexit140

282:                                              ; preds = %281
  %283 = call noundef i64 @_ZNKSt6vectorImSaImEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %239) #9
  %284 = icmp ult i64 %283, 5
  br i1 %284, label %285, label %.loopexit145

.loopexit145:                                     ; preds = %282, %244
  call void @__assert_fail(ptr noundef nonnull @.str.258, ptr noundef nonnull @.str.17, i32 noundef 3542, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN7DynexCN11WalletGreen23createFusionTransactionEmmRKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS7_EERKS7_) #11
  unreachable

.loopexit139:                                     ; preds = %.peel.next
  %lpad.loopexit = landingpad { ptr, i32 }
          cleanup
  br label %331

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

.loopexit140:                                     ; preds = %281
  %lpad.loopexit142 = landingpad { ptr, i32 }
          cleanup
  br label %314

.loopexit.split-lp141:                            ; preds = %243
  %lpad.loopexit.split-lp143 = landingpad { ptr, i32 }
          cleanup
  br label %314

285:                                              ; preds = %282
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %33) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %34) #9
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %35) #9
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %36) #9
  invoke void @_ZN7DynexCN11WalletGreen15ReceiverAmountsC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(88) %36, ptr noundef nonnull align 8 dereferenceable(88) %32)
          to label %286 unwind label %.loopexit146

286:                                              ; preds = %285
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %37) #9
  call void @_ZNSaIN7DynexCN11WalletGreen15ReceiverAmountsEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %37) #9
  invoke void @_ZNSt6vectorIN7DynexCN11WalletGreen15ReceiverAmountsESaIS2_EEC2ESt16initializer_listIS2_ERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %35, ptr nonnull %36, i64 1, ptr noundef nonnull align 1 dereferenceable(1) %37)
          to label %287 unwind label %.loopexit151

287:                                              ; preds = %286
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %38) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %39) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %38, ptr noundef nonnull @.str.25, ptr noundef nonnull align 1 dereferenceable(1) %39)
          to label %288 unwind label %.loopexit156

288:                                              ; preds = %287
  invoke void @_ZN7DynexCN11WalletGreen15makeTransactionERKSt6vectorINS0_15ReceiverAmountsESaIS2_EERS1_INS0_9InputInfoESaIS7_EERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEmRN6Crypto9SecretKeyE(ptr dead_on_unwind nonnull writable sret(%"class.std::unique_ptr.327") align 8 %34, ptr noundef nonnull align 8 dereferenceable(1872) %0, ptr noundef nonnull align 8 dereferenceable(24) %35, ptr noundef nonnull align 8 dereferenceable(24) %27, ptr noundef nonnull align 8 dereferenceable(32) %38, i64 noundef 0, ptr noundef nonnull align 1 dereferenceable(32) %33)
          to label %289 unwind label %.loopexit161

289:                                              ; preds = %288
  %290 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt10unique_ptrIN7DynexCN12ITransactionESt14default_deleteIS1_EEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(8) %31, ptr noundef nonnull align 8 dereferenceable(8) %34) #9
  call void @_ZNSt10unique_ptrIN7DynexCN12ITransactionESt14default_deleteIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %34) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %39) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %38) #9
  call void @_ZNSt6vectorIN7DynexCN11WalletGreen15ReceiverAmountsESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %35) #9
  call void @_ZNSt15__new_allocatorIN7DynexCN11WalletGreen15ReceiverAmountsEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %37) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %37) #9
  call void @_ZN7DynexCN11WalletGreen15ReceiverAmountsD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %36) #9
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %36) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %35) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #9
  %291 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNKSt10unique_ptrIN7DynexCN12ITransactionESt14default_deleteIS1_EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %31) #9
  %292 = invoke noundef i64 @_ZN12_GLOBAL__N_118getTransactionSizeERKN7DynexCN18ITransactionReaderE(ptr noundef nonnull align 8 dereferenceable(8) %291)
          to label %293 unwind label %.loopexit166

293:                                              ; preds = %289
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %33) #9
  call void @_ZN7DynexCN11WalletGreen15ReceiverAmountsD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %32) #9
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %32) #9
  %294 = load ptr, ptr %64, align 8, !tbaa !14
  %295 = call noundef i64 @_ZNK7DynexCN8Currency15fusionTxMaxSizeEv(ptr noundef nonnull align 8 dereferenceable(984) %294)
  %296 = icmp ugt i64 %292, %295
  br i1 %296, label %297, label %.critedge

297:                                              ; preds = %293
  %298 = call noundef i64 @_ZNKSt6vectorIN7DynexCN11WalletGreen16OutputToTransferESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %23) #9
  %299 = load ptr, ptr %64, align 8, !tbaa !14
  %300 = call noundef i64 @_ZNK7DynexCN8Currency21fusionTxMinInputCountEv(ptr noundef nonnull align 8 dereferenceable(984) %299)
  %.not99 = icmp ult i64 %298, %300
  br i1 %.not99, label %.critedge, label %.peel.next, !llvm.loop !157

.critedge:                                        ; preds = %293, %297, %259, %255
  %301 = call noundef i64 @_ZNKSt6vectorIN7DynexCN11WalletGreen16OutputToTransferESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %23) #9
  %302 = load ptr, ptr %64, align 8, !tbaa !14
  %303 = call noundef i64 @_ZNK7DynexCN8Currency21fusionTxMinInputCountEv(ptr noundef nonnull align 8 dereferenceable(984) %302)
  %304 = icmp ult i64 %301, %303
  br i1 %304, label %305, label %324

305:                                              ; preds = %.critedge
  call void @llvm.lifetime.start.p0(i64 432, ptr nonnull %40) #9
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.Logging::LoggerMessage") align 8 %40, ptr noundef nonnull align 8 dereferenceable(40) %46, i32 noundef 1, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging10BRIGHT_REDB5cxx11E)
          to label %306 unwind label %317

306:                                              ; preds = %305
  %307 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA36_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %40, ptr noundef nonnull align 1 dereferenceable(36) @.str.259)
          to label %308 unwind label %319

308:                                              ; preds = %306
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %40) #9
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %40) #9
  %309 = call ptr @__cxa_allocate_exception(i64 16) #9
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %309, ptr noundef nonnull @.str.259)
          to label %310 unwind label %322

310:                                              ; preds = %308
  invoke void @__cxa_throw(ptr nonnull %309, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #10
          to label %341 unwind label %315

.loopexit146:                                     ; preds = %285
  %lpad.loopexit148 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit

.loopexit.split-lp147:                            ; preds = %247
  %lpad.loopexit.split-lp149 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit

.loopexit151:                                     ; preds = %286
  %lpad.loopexit153 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.loopexit

.loopexit.split-lp152:                            ; preds = %248
  %lpad.loopexit.split-lp154 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.loopexit

.loopexit156:                                     ; preds = %287
  %lpad.loopexit158 = landingpad { ptr, i32 }
          cleanup
  br label %312

.loopexit.split-lp157:                            ; preds = %249
  %lpad.loopexit.split-lp159 = landingpad { ptr, i32 }
          cleanup
  br label %312

.loopexit161:                                     ; preds = %288
  %lpad.loopexit163 = landingpad { ptr, i32 }
          cleanup
  br label %311

.loopexit.split-lp162:                            ; preds = %250
  %lpad.loopexit.split-lp164 = landingpad { ptr, i32 }
          cleanup
  br label %311

311:                                              ; preds = %.loopexit.split-lp162, %.loopexit161
  %lpad.phi165 = phi { ptr, i32 } [ %lpad.loopexit163, %.loopexit161 ], [ %lpad.loopexit.split-lp164, %.loopexit.split-lp162 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #9
  br label %312

312:                                              ; preds = %.loopexit156, %.loopexit.split-lp157, %311
  %.pn91 = phi { ptr, i32 } [ %lpad.phi165, %311 ], [ %lpad.loopexit158, %.loopexit156 ], [ %lpad.loopexit.split-lp159, %.loopexit.split-lp157 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %39) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %38) #9
  call void @_ZNSt6vectorIN7DynexCN11WalletGreen15ReceiverAmountsESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %35) #9
  br label %.loopexit.loopexit

.loopexit.loopexit:                               ; preds = %.loopexit151, %.loopexit.split-lp152, %312
  %.pn91.pn = phi { ptr, i32 } [ %.pn91, %312 ], [ %lpad.loopexit153, %.loopexit151 ], [ %lpad.loopexit.split-lp154, %.loopexit.split-lp152 ]
  call void @_ZNSt15__new_allocatorIN7DynexCN11WalletGreen15ReceiverAmountsEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %37) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %37) #9
  call void @_ZN7DynexCN11WalletGreen15ReceiverAmountsD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %36) #9
  br label %.loopexit

.loopexit:                                        ; preds = %.loopexit146, %.loopexit.split-lp147, %.loopexit.loopexit
  %.pn91.pn.pn = phi { ptr, i32 } [ %.pn91.pn, %.loopexit.loopexit ], [ %lpad.loopexit148, %.loopexit146 ], [ %lpad.loopexit.split-lp149, %.loopexit.split-lp147 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %36) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %35) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #9
  br label %313

.loopexit166:                                     ; preds = %289
  %lpad.loopexit168 = landingpad { ptr, i32 }
          cleanup
  br label %313

.loopexit.split-lp167:                            ; preds = %251
  %lpad.loopexit.split-lp169 = landingpad { ptr, i32 }
          cleanup
  br label %313

313:                                              ; preds = %.loopexit166, %.loopexit.split-lp167, %.loopexit
  %.pn95 = phi { ptr, i32 } [ %.pn91.pn.pn, %.loopexit ], [ %lpad.loopexit168, %.loopexit166 ], [ %lpad.loopexit.split-lp169, %.loopexit.split-lp167 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %33) #9
  call void @_ZN7DynexCN11WalletGreen15ReceiverAmountsD2Ev(ptr noundef nonnull align 8 dereferenceable(88) %32) #9
  br label %314

314:                                              ; preds = %.loopexit140, %.loopexit.split-lp141, %313
  %.pn95.pn = phi { ptr, i32 } [ %.pn95, %313 ], [ %lpad.loopexit142, %.loopexit140 ], [ %lpad.loopexit.split-lp143, %.loopexit.split-lp141 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %32) #9
  br label %331

315:                                              ; preds = %310
  %316 = landingpad { ptr, i32 }
          cleanup
  br label %331

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

319:                                              ; preds = %306
  %320 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %40) #9
  br label %321

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

322:                                              ; preds = %308
  %323 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %309) #9
  br label %331

324:                                              ; preds = %.critedge
  %325 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNKSt10unique_ptrIN7DynexCN12ITransactionESt14default_deleteIS1_EEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %31) #9
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %41) #9
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %41, i8 0, i64 24, i1 false)
  call void @_ZNSt6vectorIN7DynexCN14WalletTransferESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %41) #9
  %326 = invoke noundef i64 @_ZN7DynexCN11WalletGreen30validateSaveAndSendTransactionERKNS_18ITransactionReaderERKSt6vectorINS_14WalletTransferESaIS5_EEbb(ptr noundef nonnull align 8 dereferenceable(1872) %0, ptr noundef nonnull align 8 dereferenceable(8) %325, ptr noundef nonnull align 8 dereferenceable(24) %41, i1 noundef zeroext true, i1 noundef zeroext true)
          to label %327 unwind label %329

327:                                              ; preds = %324
  store i64 %326, ptr %7, align 8, !tbaa !5
  call void @_ZNSt6vectorIN7DynexCN14WalletTransferESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %41) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %41) #9
  %328 = load i64, ptr %7, align 8, !tbaa !5
  call void @_ZNSt10unique_ptrIN7DynexCN12ITransactionESt14default_deleteIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %31) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #9
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %28) #9
  call void @_ZNSt6vectorIN7DynexCN11WalletGreen9InputInfoESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %27) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %27) #9
  call void @_ZNSt6vectorIN7DynexCN58COMMAND_RPC_GET_RANDOM_OUTPUTS_FOR_AMOUNTS_outs_for_amountESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %26) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %26) #9
  br label %335

329:                                              ; preds = %324
  %330 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorIN7DynexCN14WalletTransferESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %41) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %41) #9
  br label %331

331:                                              ; preds = %.loopexit139, %.loopexit.split-lp, %314, %329, %322, %321, %315
  %.pn102 = phi { ptr, i32 } [ %316, %315 ], [ %323, %322 ], [ %.pn100, %321 ], [ %330, %329 ], [ %.pn95.pn, %314 ], [ %lpad.loopexit, %.loopexit139 ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ]
  call void @_ZNSt10unique_ptrIN7DynexCN12ITransactionESt14default_deleteIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %31) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #9
  br label %332

332:                                              ; preds = %331, %277, %265
  %.pn102.pn = phi { ptr, i32 } [ %.pn102, %331 ], [ %.pn86.pn.pn, %277 ], [ %266, %265 ]
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %28) #9
  br label %333

333:                                              ; preds = %332, %263
  %.pn102.pn.pn = phi { ptr, i32 } [ %.pn102.pn, %332 ], [ %264, %263 ]
  call void @_ZNSt6vectorIN7DynexCN11WalletGreen9InputInfoESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %27) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %27) #9
  br label %334

334:                                              ; preds = %333, %226
  %.pn102.pn.pn.pn = phi { ptr, i32 } [ %.pn102.pn.pn, %333 ], [ %227, %226 ]
  call void @_ZNSt6vectorIN7DynexCN58COMMAND_RPC_GET_RANDOM_OUTPUTS_FOR_AMOUNTS_outs_for_amountESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %26) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %26) #9
  br label %336

335:                                              ; preds = %327, %209
  %.0 = phi i64 [ -1, %209 ], [ %328, %327 ]
  call void @_ZNSt6vectorIN7DynexCN11WalletGreen16OutputToTransferESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %23) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %23) #9
  call void @_ZN6System9EventLockD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %11) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #9
  call void @_ZN5Tools9ScopeExitD1Ev(ptr noundef nonnull align 8 dereferenceable(33) %8) #9
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %8) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #9
  ret i64 %.0

336:                                              ; preds = %334, %222
  %.pn107.pn.pn.pn = phi { ptr, i32 } [ %.pn107.pn.pn, %222 ], [ %.pn102.pn.pn.pn, %334 ]
  call void @_ZNSt6vectorIN7DynexCN11WalletGreen16OutputToTransferESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %23) #9
  br label %337

337:                                              ; preds = %336, %210
  %.pn107.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn107.pn.pn.pn, %336 ], [ %211, %210 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %23) #9
  br label %338

338:                                              ; preds = %123, %141, %162, %163, %146, %144, %337, %192, %191, %185, %121, %120
  %.pn125.pn.pn.pn = phi { ptr, i32 } [ %122, %121 ], [ %.pn.pn.pn.pn.pn, %120 ], [ %.pn125.pn134, %146 ], [ %145, %144 ], [ %.pn119.pn.pn.pn.pn, %141 ], [ %124, %123 ], [ %164, %163 ], [ %.pn117, %162 ], [ %186, %185 ], [ %193, %192 ], [ %.pn113, %191 ], [ %.pn107.pn.pn.pn.pn, %337 ]
  call void @_ZN6System9EventLockD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %11) #9
  br label %339

339:                                              ; preds = %338, %102
  %.pn125.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn125.pn.pn.pn, %338 ], [ %103, %102 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #9
  call void @_ZN5Tools9ScopeExitD1Ev(ptr noundef nonnull align 8 dereferenceable(33) %8) #9
  br label %340

340:                                              ; preds = %339, %100
  %.pn125.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn125.pn.pn.pn.pn, %339 ], [ %101, %100 ]
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %8) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #9
  resume { ptr, i32 } %.pn125.pn.pn.pn.pn.pn

341:                                              ; preds = %310, %184, %157, %99
  unreachable
}

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

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

declare noundef i64 @_ZNK7DynexCN8Currency31getApproximateMaximumInputCountEmmm(ptr noundef nonnull align 8 dereferenceable(984), i64 noundef, i64 noundef, i64 noundef) local_unnamed_addr #3

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

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden noundef i64 @"_ZSt10accumulateIN9__gnu_cxx17__normal_iteratorIPN7DynexCN11WalletGreen16OutputToTransferESt6vectorIS4_SaIS4_EEEEmZNS3_23createFusionTransactionEmmRKS6_INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaISF_EERKSF_E3$_1ET0_T_SO_SN_T1_"(ptr, ptr, i64 noundef) local_unnamed_addr #7

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7DynexCN11WalletGreen22decomposeFusionOutputsERKNS_20AccountPublicAddressEm(ptr dead_on_unwind noalias writable sret(%"struct.DynexCN::WalletGreen::ReceiverAmounts") align 8, ptr noundef nonnull align 1 dereferenceable(64), i64 noundef) local_unnamed_addr #2 align 2

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

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

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

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

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

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

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

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

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

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


; Effective O3 passes: BDCEPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,LICMPass,LoopFullUnrollPass,LoopSimplifyPass,LoopUnrollPass,SCCPPass,SROAPass,SimplifyCFGPass