; LLVM IR from dynexcoin/Dynex :: src/WalletLegacy/WalletLegacy.ll (ZN7DynexCN12WalletLegacy6doLoadERSi)

; 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.(anonymous namespace)::ContextCounterHolder" = type { ptr }
%"class.std::unique_lock" = type <{ ptr, i8, [7 x i8] }>
%"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.DynexCN::WalletLegacySerializer" = type <{ ptr, ptr, i32, [4 x i8] }>
%"class.std::__cxx11::basic_stringstream" = type { %"class.std::basic_iostream.base", %"class.std::__cxx11::basic_stringbuf", %"class.std::basic_ios" }
%"class.std::basic_iostream.base" = type { %"class.std::basic_istream.base", %"class.std::basic_ostream.base" }
%"class.std::basic_istream.base" = type { ptr, i64 }
%"class.std::basic_ostream.base" = type { ptr }
%"class.std::__cxx11::basic_stringbuf" = type { %"class.std::basic_streambuf", i32, %"class.std::__cxx11::basic_string" }
%"class.std::basic_streambuf" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::locale" }
%"class.std::locale" = type { ptr }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::vector.162" = type { %"struct.std::_Vector_base.163" }
%"struct.std::_Vector_base.163" = type { %"struct.std::_Vector_base<DynexCN::TransactionOutputInformation, std::allocator<DynexCN::TransactionOutputInformation>>::_Vector_impl" }
%"struct.std::_Vector_base<DynexCN::TransactionOutputInformation, std::allocator<DynexCN::TransactionOutputInformation>>::_Vector_impl" = type { %"struct.std::_Vector_base<DynexCN::TransactionOutputInformation, std::allocator<DynexCN::TransactionOutputInformation>>::_Vector_impl_data" }
%"struct.std::_Vector_base<DynexCN::TransactionOutputInformation, std::allocator<DynexCN::TransactionOutputInformation>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::allocator" = type { i8 }
%"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.__gnu_cxx::__normal_iterator" = type { ptr }
%class.anon.168 = type { ptr }
%"class.std::error_code" = type { i32, ptr }
%class.anon.169 = type { ptr }
%"class.DynexCN::WalletLegacy" = type { %"class.DynexCN::IWalletLegacy", %"class.DynexCN::IBlockchainSynchronizerObserver", %"class.DynexCN::ITransfersObserver", i32, %"class.std::mutex", %"class.DynexCN::AccountBase", %"class.std::__cxx11::basic_string", ptr, ptr, ptr, i8, %"struct.std::atomic", %"struct.std::atomic", %"struct.std::atomic", %"class.DynexCN::BlockchainSynchronizer", %"class.DynexCN::TransfersSyncronizer", ptr, %"class.DynexCN::WalletUserTransactionsCache", %"class.std::unique_ptr.99", %"class.DynexCN::WalletAsyncContextCounter", %"class.Tools::ObserverManager.107", %"class.std::unique_ptr.113" }
%"class.DynexCN::IWalletLegacy" = type { ptr }
%"class.DynexCN::IBlockchainSynchronizerObserver" = type { ptr }
%"class.DynexCN::ITransfersObserver" = type { ptr }
%"class.std::mutex" = type { %"class.std::__mutex_base" }
%"class.std::__mutex_base" = type { %union.pthread_mutex_t }
%union.pthread_mutex_t = type { %struct.__pthread_mutex_s }
%struct.__pthread_mutex_s = type { i32, i32, i32, i32, i32, i16, i16, %struct.__pthread_internal_list }
%struct.__pthread_internal_list = type { ptr, ptr }
%"class.DynexCN::AccountBase" = type { %"struct.DynexCN::AccountKeys", i64 }
%"struct.DynexCN::AccountKeys" = type { %"struct.DynexCN::AccountPublicAddress", %"struct.Crypto::SecretKey", %"struct.Crypto::SecretKey" }
%"struct.DynexCN::AccountPublicAddress" = type { %"struct.Crypto::PublicKey", %"struct.Crypto::PublicKey" }
%"struct.Crypto::PublicKey" = type { [32 x i8] }
%"struct.Crypto::SecretKey" = type { [32 x i8] }
%"struct.std::atomic" = type { %"struct.std::__atomic_base" }
%"struct.std::__atomic_base" = type { i64 }
%"class.DynexCN::BlockchainSynchronizer" = type { %"class.DynexCN::IObservableImpl", %"class.DynexCN::INodeObserver", %"class.Logging::LoggerRef", %"class.std::map", ptr, %"struct.Crypto::Hash", %"struct.Crypto::Hash", i32, i32, %"class.std::unique_ptr", %"class.std::__cxx11::list", %"class.std::__cxx11::list.15", %"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", %"class.std::mutex" }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = 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.Logging::LoggerRef" = type { ptr, %"class.std::__cxx11::basic_string" }
%"class.std::map" = type { %"class.std::_Rb_tree" }
%"class.std::_Rb_tree" = 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.std::_Rb_tree_header" = type { %"struct.std::_Rb_tree_node_base", i64 }
%"struct.std::_Rb_tree_node_base" = type { i32, ptr, ptr, ptr }
%"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.11" }
%"struct.std::_Head_base.11" = 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.15" = type { %"class.std::__cxx11::_List_base.16" }
%"class.std::__cxx11::_List_base.16" = 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::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", %"class.std::unordered_map.25", ptr, ptr, ptr }
%"class.DynexCN::ITransfersSynchronizer" = type { %"class.DynexCN::IStreamSerializable" }
%"class.DynexCN::IBlockchainConsumerObserver" = type { ptr }
%"class.std::unordered_map" = type { %"class.std::_Hashtable" }
%"class.std::_Hashtable" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"struct.std::__detail::_Hash_node_base" = type { ptr }
%"struct.std::__detail::_Prime_rehash_policy" = type { float, i64 }
%"class.std::unordered_map.25" = type { %"class.std::_Hashtable.26" }
%"class.std::_Hashtable.26" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.DynexCN::WalletUserTransactionsCache" = type { %"class.std::vector.39", %"class.std::vector.44", %"class.DynexCN::WalletUnconfirmedTransactions", %"class.std::unordered_map.85" }
%"class.std::vector.39" = type { %"struct.std::_Vector_base.40" }
%"struct.std::_Vector_base.40" = type { %"struct.std::_Vector_base<DynexCN::WalletLegacyTransaction, std::allocator<DynexCN::WalletLegacyTransaction>>::_Vector_impl" }
%"struct.std::_Vector_base<DynexCN::WalletLegacyTransaction, std::allocator<DynexCN::WalletLegacyTransaction>>::_Vector_impl" = type { %"struct.std::_Vector_base<DynexCN::WalletLegacyTransaction, std::allocator<DynexCN::WalletLegacyTransaction>>::_Vector_impl_data" }
%"struct.std::_Vector_base<DynexCN::WalletLegacyTransaction, std::allocator<DynexCN::WalletLegacyTransaction>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.44" = type { %"struct.std::_Vector_base.45" }
%"struct.std::_Vector_base.45" = type { %"struct.std::_Vector_base<DynexCN::WalletLegacyTransfer, std::allocator<DynexCN::WalletLegacyTransfer>>::_Vector_impl" }
%"struct.std::_Vector_base<DynexCN::WalletLegacyTransfer, std::allocator<DynexCN::WalletLegacyTransfer>>::_Vector_impl" = type { %"struct.std::_Vector_base<DynexCN::WalletLegacyTransfer, std::allocator<DynexCN::WalletLegacyTransfer>>::_Vector_impl_data" }
%"struct.std::_Vector_base<DynexCN::WalletLegacyTransfer, std::allocator<DynexCN::WalletLegacyTransfer>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.DynexCN::WalletUnconfirmedTransactions" = type { %"class.std::unordered_map.49", %"class.std::unordered_set", i64 }
%"class.std::unordered_map.49" = type { %"class.std::_Hashtable.50" }
%"class.std::_Hashtable.50" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::unordered_set" = type { %"class.std::_Hashtable.67" }
%"class.std::_Hashtable.67" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::unordered_map.85" = type { %"class.std::_Hashtable.86" }
%"class.std::_Hashtable.86" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::unique_ptr.99" = type { %"struct.std::__uniq_ptr_data.100" }
%"struct.std::__uniq_ptr_data.100" = type { %"class.std::__uniq_ptr_impl.101" }
%"class.std::__uniq_ptr_impl.101" = type { %"class.std::tuple.102" }
%"class.std::tuple.102" = type { %"struct.std::_Tuple_impl.103" }
%"struct.std::_Tuple_impl.103" = type { %"struct.std::_Head_base.106" }
%"struct.std::_Head_base.106" = type { ptr }
%"class.DynexCN::WalletAsyncContextCounter" = type { i32, %"class.std::condition_variable", %"class.std::mutex" }
%"class.Tools::ObserverManager.107" = type { %"class.std::vector.108", %"class.std::mutex" }
%"class.std::vector.108" = type { %"struct.std::_Vector_base.109" }
%"struct.std::_Vector_base.109" = type { %"struct.std::_Vector_base<DynexCN::IWalletLegacyObserver *, std::allocator<DynexCN::IWalletLegacyObserver *>>::_Vector_impl" }
%"struct.std::_Vector_base<DynexCN::IWalletLegacyObserver *, std::allocator<DynexCN::IWalletLegacyObserver *>>::_Vector_impl" = type { %"struct.std::_Vector_base<DynexCN::IWalletLegacyObserver *, std::allocator<DynexCN::IWalletLegacyObserver *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<DynexCN::IWalletLegacyObserver *, std::allocator<DynexCN::IWalletLegacyObserver *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::unique_ptr.113" = type { %"struct.std::__uniq_ptr_data.114" }
%"struct.std::__uniq_ptr_data.114" = type { %"class.std::__uniq_ptr_impl.115" }
%"class.std::__uniq_ptr_impl.115" = type { %"class.std::tuple.116" }
%"class.std::tuple.116" = type { %"struct.std::_Tuple_impl.117" }
%"struct.std::_Tuple_impl.117" = type { %"struct.std::_Head_base.120" }
%"struct.std::_Head_base.120" = type { ptr }
%"struct.DynexCN::TransactionOutputInformation" = type { i8, i64, i32, i32, %"struct.Crypto::Hash", %"struct.Crypto::PublicKey", %union.anon.167 }
%union.anon.167 = type { i32, [28 x i8] }

@_ZTISt12system_error = external constant ptr
@_ZTISt9exception = external constant ptr
@.str.8 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [13 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 nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #1

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

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

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

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

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

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

; Function Attrs: noinline noreturn nounwind uwtable
declare hidden void @__clang_call_terminate(ptr noundef) #4

declare ptr @__cxa_begin_catch(ptr)

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt11unique_lockISt5mutexEC2ERS0_(ptr noundef nonnull align 8 dereferenceable(9), ptr noundef nonnull align 8 dereferenceable(40)) unnamed_addr #3 align 2

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

; 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 @_ZN7DynexCN12WalletLegacy8initSyncEv(ptr noundef nonnull align 8 dereferenceable(1336)) #3 align 2

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN7DynexCN12WalletLegacy6doLoadERSi(ptr noundef nonnull align 8 dereferenceable(1336) %0, ptr noundef nonnull align 8 dereferenceable(16) %1) #3 align 2 personality ptr @__gxx_personality_v0 {
  %3 = alloca ptr, align 8
  %4 = alloca ptr, align 8
  %5 = alloca %"class.(anonymous namespace)::ContextCounterHolder", align 8
  %6 = alloca %"class.std::unique_lock", align 8
  %7 = alloca ptr, align 8
  %8 = alloca i32, align 4
  %9 = alloca %"class.std::__cxx11::basic_string", align 8
  %10 = alloca %"class.DynexCN::WalletLegacySerializer", align 8
  %11 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %12 = alloca ptr, align 8
  %13 = alloca %"class.std::vector.162", align 8
  %14 = alloca %"class.std::__cxx11::basic_string", align 8
  %15 = alloca %"class.std::__cxx11::basic_string", align 8
  %16 = alloca %"class.std::__cxx11::basic_string", align 8
  %17 = alloca %"class.std::__cxx11::basic_string", align 8
  %18 = alloca %"class.std::allocator", align 1
  %19 = alloca %"class.boost::posix_time::ptime", align 8
  %20 = alloca ptr, align 8
  %21 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %22 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %23 = alloca ptr, align 8
  %24 = alloca ptr, align 8
  %25 = alloca %class.anon.168, align 8
  %26 = alloca %"class.std::error_code", align 8
  %27 = alloca { i64, i64 }, align 8
  %28 = alloca i32, align 4
  %29 = alloca ptr, align 8
  %30 = alloca %class.anon.169, align 8
  %31 = alloca %"class.std::error_code", align 8
  %32 = alloca { i64, i64 }, align 8
  %33 = alloca %"class.std::error_code", align 8
  %34 = alloca { i64, i64 }, align 8
  store ptr %0, ptr %3, align 8, !tbaa !5
  store ptr %1, ptr %4, align 8, !tbaa !5
  %35 = load ptr, ptr %3, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %5) #9
  %36 = getelementptr inbounds %"class.DynexCN::WalletLegacy", ptr %35, i32 0, i32 19
  call void @_ZN12_GLOBAL__N_120ContextCounterHolderC2ERN7DynexCN25WalletAsyncContextCounterE(ptr noundef nonnull align 8 dereferenceable(8) %5, ptr noundef nonnull align 8 dereferenceable(96) %36)
  call void @llvm.lifetime.start.p0(i64 16, ptr %6) #9
  %37 = getelementptr inbounds %"class.DynexCN::WalletLegacy", ptr %35, i32 0, i32 4
  invoke void @_ZNSt11unique_lockISt5mutexEC2ERS0_(ptr noundef nonnull align 8 dereferenceable(9) %6, ptr noundef nonnull align 8 dereferenceable(40) %37)
          to label %38 unwind label %53

38:                                               ; preds = %2
  call void @llvm.lifetime.start.p0(i64 32, ptr %9) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #9
  call void @llvm.lifetime.start.p0(i64 24, ptr %10) #9
  %39 = getelementptr inbounds %"class.DynexCN::WalletLegacy", ptr %35, i32 0, i32 5
  %40 = getelementptr inbounds %"class.DynexCN::WalletLegacy", ptr %35, i32 0, i32 17
  invoke void @_ZN7DynexCN22WalletLegacySerializerC1ERNS_11AccountBaseERNS_27WalletUserTransactionsCacheE(ptr noundef nonnull align 8 dereferenceable(20) %10, ptr noundef nonnull align 8 dereferenceable(136) %39, ptr noundef nonnull align 8 dereferenceable(224) %40)
          to label %41 unwind label %57

41:                                               ; preds = %38
  %42 = load ptr, ptr %4, align 8, !tbaa !5
  %43 = getelementptr inbounds %"class.DynexCN::WalletLegacy", ptr %35, i32 0, i32 6
  invoke void @_ZN7DynexCN22WalletLegacySerializer11deserializeERSiRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERS7_(ptr noundef nonnull align 8 dereferenceable(20) %10, ptr noundef nonnull align 8 dereferenceable(16) %42, ptr noundef nonnull align 8 dereferenceable(32) %43, ptr noundef nonnull align 8 dereferenceable(32) %9)
          to label %44 unwind label %57

44:                                               ; preds = %41
  invoke void @_ZN7DynexCN12WalletLegacy8initSyncEv(ptr noundef nonnull align 8 dereferenceable(1336) %35)
          to label %45 unwind label %57

45:                                               ; preds = %44
  %46 = call noundef zeroext i1 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(32) %9) #9
  br i1 %46, label %116, label %47

47:                                               ; preds = %45
  call void @llvm.lifetime.start.p0(i64 392, ptr %11) #9
  %48 = invoke noundef i32 @_ZStorSt13_Ios_OpenmodeS_(i32 noundef 16, i32 noundef 8)
          to label %49 unwind label %61

49:                                               ; preds = %47
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1ERKNS_12basic_stringIcS2_S3_EESt13_Ios_Openmode(ptr noundef nonnull align 8 dereferenceable(128) %11, ptr noundef nonnull align 8 dereferenceable(32) %9, i32 noundef %48)
          to label %50 unwind label %61

50:                                               ; preds = %49
  %51 = getelementptr inbounds %"class.DynexCN::WalletLegacy", ptr %35, i32 0, i32 15
  invoke void @_ZN7DynexCN20TransfersSyncronizer4loadERSi(ptr noundef nonnull align 8 dereferenceable(192) %51, ptr noundef nonnull align 8 dereferenceable(16) %11)
          to label %52 unwind label %65

52:                                               ; preds = %50
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %11) #9
  call void @llvm.lifetime.end.p0(i64 392, ptr %11) #9
  br label %116

53:                                               ; preds = %2
  %54 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt12system_error
          catch ptr @_ZTISt9exception
  %55 = extractvalue { ptr, i32 } %54, 0
  store ptr %55, ptr %7, align 8
  %56 = extractvalue { ptr, i32 } %54, 1
  store i32 %56, ptr %8, align 4
  br label %177

57:                                               ; preds = %44, %41, %38
  %58 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt12system_error
          catch ptr @_ZTISt9exception
  %59 = extractvalue { ptr, i32 } %58, 0
  store ptr %59, ptr %7, align 8
  %60 = extractvalue { ptr, i32 } %58, 1
  store i32 %60, ptr %8, align 4
  br label %176

61:                                               ; preds = %49, %47
  %62 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
          catch ptr @_ZTISt12system_error
  %63 = extractvalue { ptr, i32 } %62, 0
  store ptr %63, ptr %7, align 8
  %64 = extractvalue { ptr, i32 } %62, 1
  store i32 %64, ptr %8, align 4
  br label %69

65:                                               ; preds = %50
  %66 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
          catch ptr @_ZTISt12system_error
  %67 = extractvalue { ptr, i32 } %66, 0
  store ptr %67, ptr %7, align 8
  %68 = extractvalue { ptr, i32 } %66, 1
  store i32 %68, ptr %8, align 4
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %11) #9
  br label %69

69:                                               ; preds = %65, %61
  call void @llvm.lifetime.end.p0(i64 392, ptr %11) #9
  br label %70

70:                                               ; preds = %69
  %71 = load i32, ptr %8, align 4
  %72 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTISt9exception) #9
  %73 = icmp eq i32 %71, %72
  br i1 %73, label %74, label %176

74:                                               ; preds = %70
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #9
  %75 = load ptr, ptr %7, align 8
  %76 = call ptr @__cxa_begin_catch(ptr %75) #9
  store ptr %76, ptr %12, align 8
  invoke void @__cxa_end_catch()
          to label %77 unwind label %117

77:                                               ; preds = %74
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #9
  br label %78

78:                                               ; preds = %116, %77
  call void @llvm.lifetime.start.p0(i64 24, ptr %13) #9
  call void @_ZNSt6vectorIN7DynexCN28TransactionOutputInformationESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %13) #9
  %79 = getelementptr inbounds %"class.DynexCN::WalletLegacy", ptr %35, i32 0, i32 16
  %80 = load ptr, ptr %79, align 8, !tbaa !9
  %81 = load ptr, ptr %80, align 8, !tbaa !111
  %82 = getelementptr inbounds ptr, ptr %81, i64 5
  %83 = load ptr, ptr %82, align 8
  invoke void %83(ptr noundef nonnull align 8 dereferenceable(8) %80, ptr noundef nonnull align 8 dereferenceable(24) %13, i32 noundef 65535)
          to label %84 unwind label %121

84:                                               ; preds = %78
  call void @llvm.lifetime.start.p0(i64 32, ptr %14) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %15) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %16) #9
  %85 = call noundef i64 @_ZNKSt6vectorIN7DynexCN28TransactionOutputInformationESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %13) #9
  invoke void @_ZNSt7__cxx119to_stringEm(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %16, i64 noundef %85)
          to label %86 unwind label %125

86:                                               ; preds = %84
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %15, ptr noundef @.str.8, ptr noundef nonnull align 8 dereferenceable(32) %16)
          to label %87 unwind label %129

87:                                               ; preds = %86
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %14, ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef @.str.9)
          to label %88 unwind label %133

88:                                               ; preds = %87
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %16) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %15) #9
  %89 = getelementptr inbounds %"class.DynexCN::WalletLegacy", ptr %35, i32 0, i32 9
  %90 = load ptr, ptr %89, align 8, !tbaa !113
  call void @llvm.lifetime.start.p0(i64 32, ptr %17) #9
  call void @llvm.lifetime.start.p0(i64 1, ptr %18) #9
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #9
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %18)
          to label %91 unwind label %139

91:                                               ; preds = %88
  %92 = invoke i64 @_ZN5boost9date_time12second_clockINS_10posix_time5ptimeEE10local_timeEv()
          to label %93 unwind label %143

93:                                               ; preds = %91
  %94 = getelementptr inbounds %"class.boost::posix_time::ptime", ptr %19, i32 0, i32 0
  %95 = getelementptr inbounds %"class.boost::date_time::base_time", ptr %94, i32 0, i32 0
  %96 = getelementptr inbounds %"struct.boost::date_time::counted_time_rep", ptr %95, i32 0, i32 0
  %97 = getelementptr inbounds %"class.boost::date_time::int_adapter", ptr %96, i32 0, i32 0
  store i64 %92, ptr %97, align 8
  %98 = getelementptr inbounds %"class.boost::posix_time::ptime", ptr %19, i32 0, i32 0
  %99 = getelementptr inbounds %"class.boost::date_time::base_time", ptr %98, i32 0, i32 0
  %100 = getelementptr inbounds %"struct.boost::date_time::counted_time_rep", ptr %99, i32 0, i32 0
  %101 = getelementptr inbounds %"class.boost::date_time::int_adapter", ptr %100, i32 0, i32 0
  %102 = load i64, ptr %101, align 8
  %103 = load ptr, ptr %90, align 8, !tbaa !111
  %104 = getelementptr inbounds ptr, ptr %103, i64 0
  %105 = load ptr, ptr %104, align 8
  invoke void %105(ptr noundef nonnull align 8 dereferenceable(8) %90, ptr noundef nonnull align 8 dereferenceable(32) %17, i32 noundef 3, i64 %102, ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %106 unwind label %143

106:                                              ; preds = %93
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #9
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %18) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %17) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #9
  store ptr %13, ptr %20, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #9
  %107 = load ptr, ptr %20, align 8, !tbaa !5
  %108 = call ptr @_ZNSt6vectorIN7DynexCN28TransactionOutputInformationESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %107) #9
  %109 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %21, i32 0, i32 0
  store ptr %108, ptr %109, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #9
  %110 = load ptr, ptr %20, align 8, !tbaa !5
  %111 = call ptr @_ZNSt6vectorIN7DynexCN28TransactionOutputInformationESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %110) #9
  %112 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %22, i32 0, i32 0
  store ptr %111, ptr %112, align 8
  br label %113

113:                                              ; preds = %170, %106
  %114 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN7DynexCN28TransactionOutputInformationESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %21, ptr noundef nonnull align 8 dereferenceable(8) %22) #9
  br i1 %114, label %148, label %115

115:                                              ; preds = %113
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #9
  br label %172

116:                                              ; preds = %52, %45
  br label %78

117:                                              ; preds = %74
  %118 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt12system_error
          catch ptr @_ZTISt9exception
  %119 = extractvalue { ptr, i32 } %118, 0
  store ptr %119, ptr %7, align 8
  %120 = extractvalue { ptr, i32 } %118, 1
  store i32 %120, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #9
  br label %176

121:                                              ; preds = %78
  %122 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt12system_error
          catch ptr @_ZTISt9exception
  %123 = extractvalue { ptr, i32 } %122, 0
  store ptr %123, ptr %7, align 8
  %124 = extractvalue { ptr, i32 } %122, 1
  store i32 %124, ptr %8, align 4
  br label %175

125:                                              ; preds = %84
  %126 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt12system_error
          catch ptr @_ZTISt9exception
  %127 = extractvalue { ptr, i32 } %126, 0
  store ptr %127, ptr %7, align 8
  %128 = extractvalue { ptr, i32 } %126, 1
  store i32 %128, ptr %8, align 4
  br label %138

129:                                              ; preds = %86
  %130 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt12system_error
          catch ptr @_ZTISt9exception
  %131 = extractvalue { ptr, i32 } %130, 0
  store ptr %131, ptr %7, align 8
  %132 = extractvalue { ptr, i32 } %130, 1
  store i32 %132, ptr %8, align 4
  br label %137

133:                                              ; preds = %87
  %134 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt12system_error
          catch ptr @_ZTISt9exception
  %135 = extractvalue { ptr, i32 } %134, 0
  store ptr %135, ptr %7, align 8
  %136 = extractvalue { ptr, i32 } %134, 1
  store i32 %136, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #9
  br label %137

137:                                              ; preds = %133, %129
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #9
  br label %138

138:                                              ; preds = %137, %125
  call void @llvm.lifetime.end.p0(i64 32, ptr %16) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %15) #9
  br label %174

139:                                              ; preds = %88
  %140 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt12system_error
          catch ptr @_ZTISt9exception
  %141 = extractvalue { ptr, i32 } %140, 0
  store ptr %141, ptr %7, align 8
  %142 = extractvalue { ptr, i32 } %140, 1
  store i32 %142, ptr %8, align 4
  br label %147

143:                                              ; preds = %93, %91
  %144 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt12system_error
          catch ptr @_ZTISt9exception
  %145 = extractvalue { ptr, i32 } %144, 0
  store ptr %145, ptr %7, align 8
  %146 = extractvalue { ptr, i32 } %144, 1
  store i32 %146, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #9
  br label %147

147:                                              ; preds = %143, %139
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %18) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %17) #9
  br label %173

148:                                              ; preds = %113
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #9
  %149 = call noundef nonnull align 8 dereferenceable(120) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPN7DynexCN28TransactionOutputInformationESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %21) #9
  store ptr %149, ptr %23, align 8, !tbaa !5
  %150 = load ptr, ptr %23, align 8, !tbaa !5
  %151 = getelementptr inbounds %"struct.DynexCN::TransactionOutputInformation", ptr %150, i32 0, i32 0
  %152 = load i8, ptr %151, align 8, !tbaa !114
  %153 = icmp ne i8 %152, 0
  br i1 %153, label %154, label %169

154:                                              ; preds = %148
  %155 = getelementptr inbounds %"class.DynexCN::WalletLegacy", ptr %35, i32 0, i32 15
  %156 = getelementptr inbounds %"class.DynexCN::WalletLegacy", ptr %35, i32 0, i32 5
  %157 = invoke noundef nonnull align 1 dereferenceable(128) ptr @_ZNK7DynexCN11AccountBase14getAccountKeysEv(ptr noundef nonnull align 8 dereferenceable(136) %156)
          to label %158 unwind label %165

158:                                              ; preds = %154
  %159 = getelementptr inbounds %"struct.DynexCN::AccountKeys", ptr %157, i32 0, i32 0
  %160 = load ptr, ptr %23, align 8, !tbaa !5
  %161 = getelementptr inbounds %"struct.DynexCN::TransactionOutputInformation", ptr %160, i32 0, i32 4
  %162 = load ptr, ptr %23, align 8, !tbaa !5
  %163 = getelementptr inbounds %"struct.DynexCN::TransactionOutputInformation", ptr %162, i32 0, i32 6
  invoke void @_ZN7DynexCN20TransfersSyncronizer17addPublicKeysSeenERKNS_20AccountPublicAddressERKN6Crypto4HashERKNS4_9PublicKeyE(ptr noundef nonnull align 8 dereferenceable(192) %155, ptr noundef nonnull align 1 dereferenceable(64) %159, ptr noundef nonnull align 1 dereferenceable(32) %161, ptr noundef nonnull align 1 dereferenceable(32) %163)
          to label %164 unwind label %165

164:                                              ; preds = %158
  br label %169

165:                                              ; preds = %158, %154
  %166 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt12system_error
          catch ptr @_ZTISt9exception
  %167 = extractvalue { ptr, i32 } %166, 0
  store ptr %167, ptr %7, align 8
  %168 = extractvalue { ptr, i32 } %166, 1
  store i32 %168, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #9
  br label %173

169:                                              ; preds = %164, %148
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #9
  br label %170

170:                                              ; preds = %169
  %171 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPN7DynexCN28TransactionOutputInformationESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %21) #9
  br label %113

172:                                              ; preds = %115
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %14) #9
  call void @_ZNSt6vectorIN7DynexCN28TransactionOutputInformationESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %13) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %13) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %10) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %9) #9
  call void @_ZNSt11unique_lockISt5mutexED2Ev(ptr noundef nonnull align 8 dereferenceable(9) %6) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %6) #9
  br label %251

173:                                              ; preds = %165, %147
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #9
  br label %174

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

175:                                              ; preds = %174, %121
  call void @_ZNSt6vectorIN7DynexCN28TransactionOutputInformationESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %13) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %13) #9
  br label %176

176:                                              ; preds = %175, %117, %70, %57
  call void @llvm.lifetime.end.p0(i64 24, ptr %10) #9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %9) #9
  call void @_ZNSt11unique_lockISt5mutexED2Ev(ptr noundef nonnull align 8 dereferenceable(9) %6) #9
  br label %177

177:                                              ; preds = %176, %53
  call void @llvm.lifetime.end.p0(i64 16, ptr %6) #9
  br label %178

178:                                              ; preds = %177
  %179 = load i32, ptr %8, align 4
  %180 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTISt12system_error) #9
  %181 = icmp eq i32 %179, %180
  br i1 %181, label %182, label %202

182:                                              ; preds = %178
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #9
  %183 = load ptr, ptr %7, align 8
  %184 = call ptr @__cxa_begin_catch(ptr %183) #9
  store ptr %184, ptr %29, align 8
  %185 = getelementptr inbounds %"class.DynexCN::WalletLegacy", ptr %35, i32 0, i32 4
  %186 = getelementptr inbounds %class.anon.169, ptr %30, i32 0, i32 0
  store ptr %35, ptr %186, align 8, !tbaa !117
  %187 = getelementptr inbounds %class.anon.169, ptr %30, i32 0, i32 0
  %188 = load ptr, ptr %187, align 8
  invoke void @"_ZN12_GLOBAL__N_19runAtomicIZN7DynexCN12WalletLegacy6doLoadERSiE3$_1EEvRSt5mutexT_"(ptr noundef nonnull align 8 dereferenceable(40) %185, ptr %188)
          to label %189 unwind label %240

189:                                              ; preds = %182
  %190 = getelementptr inbounds %"class.DynexCN::WalletLegacy", ptr %35, i32 0, i32 20
  %191 = load ptr, ptr %29, align 8, !tbaa !5
  %192 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNKSt12system_error4codeEv(ptr noundef nonnull align 8 dereferenceable(32) %191) #9
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %31, ptr align 8 %192, i64 16, i1 false), !tbaa.struct !119
  store { i64, i64 } { i64 17, i64 0 }, ptr %32, align 8, !tbaa !121
  %193 = getelementptr inbounds { i64, i64 }, ptr %32, i32 0, i32 0
  %194 = load i64, ptr %193, align 8
  %195 = getelementptr inbounds { i64, i64 }, ptr %32, i32 0, i32 1
  %196 = load i64, ptr %195, align 8
  %197 = getelementptr inbounds { i32, ptr }, ptr %31, i32 0, i32 0
  %198 = load i32, ptr %197, align 8
  %199 = getelementptr inbounds { i32, ptr }, ptr %31, i32 0, i32 1
  %200 = load ptr, ptr %199, align 8
  invoke void @_ZN5Tools15ObserverManagerIN7DynexCN21IWalletLegacyObserverEE6notifyIMS2_FvSt10error_codeEJS5_EEEvT_DpT0_(ptr noundef nonnull align 8 dereferenceable(64) %190, i64 %194, i64 %196, i32 %198, ptr %200)
          to label %201 unwind label %240

201:                                              ; preds = %189
  store i32 1, ptr %28, align 4
  invoke void @__cxa_end_catch()
          to label %244 unwind label %245

202:                                              ; preds = %178
  %203 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTISt9exception) #9
  %204 = icmp eq i32 %179, %203
  br i1 %204, label %205, label %269

205:                                              ; preds = %202
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #9
  %206 = load ptr, ptr %7, align 8
  %207 = call ptr @__cxa_begin_catch(ptr %206) #9
  store ptr %207, ptr %24, align 8
  %208 = getelementptr inbounds %"class.DynexCN::WalletLegacy", ptr %35, i32 0, i32 4
  %209 = getelementptr inbounds %class.anon.168, ptr %25, i32 0, i32 0
  store ptr %35, ptr %209, align 8, !tbaa !122
  %210 = getelementptr inbounds %class.anon.168, ptr %25, i32 0, i32 0
  %211 = load ptr, ptr %210, align 8
  invoke void @"_ZN12_GLOBAL__N_19runAtomicIZN7DynexCN12WalletLegacy6doLoadERSiE3$_0EEvRSt5mutexT_"(ptr noundef nonnull align 8 dereferenceable(40) %208, ptr %211)
          to label %212 unwind label %229

212:                                              ; preds = %205
  %213 = getelementptr inbounds %"class.DynexCN::WalletLegacy", ptr %35, i32 0, i32 20
  %214 = invoke { i32, ptr } @_Z15make_error_codeN7DynexCN5error16WalletErrorCodesE(i32 noundef 5)
          to label %215 unwind label %229

215:                                              ; preds = %212
  %216 = getelementptr inbounds { i32, ptr }, ptr %26, i32 0, i32 0
  %217 = extractvalue { i32, ptr } %214, 0
  store i32 %217, ptr %216, align 8
  %218 = getelementptr inbounds { i32, ptr }, ptr %26, i32 0, i32 1
  %219 = extractvalue { i32, ptr } %214, 1
  store ptr %219, ptr %218, align 8
  store { i64, i64 } { i64 17, i64 0 }, ptr %27, align 8, !tbaa !121
  %220 = getelementptr inbounds { i64, i64 }, ptr %27, i32 0, i32 0
  %221 = load i64, ptr %220, align 8
  %222 = getelementptr inbounds { i64, i64 }, ptr %27, i32 0, i32 1
  %223 = load i64, ptr %222, align 8
  %224 = getelementptr inbounds { i32, ptr }, ptr %26, i32 0, i32 0
  %225 = load i32, ptr %224, align 8
  %226 = getelementptr inbounds { i32, ptr }, ptr %26, i32 0, i32 1
  %227 = load ptr, ptr %226, align 8
  invoke void @_ZN5Tools15ObserverManagerIN7DynexCN21IWalletLegacyObserverEE6notifyIMS2_FvSt10error_codeEJS5_EEEvT_DpT0_(ptr noundef nonnull align 8 dereferenceable(64) %213, i64 %221, i64 %223, i32 %225, ptr %227)
          to label %228 unwind label %229

228:                                              ; preds = %215
  store i32 1, ptr %28, align 4
  invoke void @__cxa_end_catch()
          to label %233 unwind label %234

229:                                              ; preds = %215, %212, %205
  %230 = landingpad { ptr, i32 }
          cleanup
  %231 = extractvalue { ptr, i32 } %230, 0
  store ptr %231, ptr %7, align 8
  %232 = extractvalue { ptr, i32 } %230, 1
  store i32 %232, ptr %8, align 4
  invoke void @__cxa_end_catch()
          to label %238 unwind label %275

233:                                              ; preds = %228
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #9
  br label %262

234:                                              ; preds = %228
  %235 = landingpad { ptr, i32 }
          cleanup
  %236 = extractvalue { ptr, i32 } %235, 0
  store ptr %236, ptr %7, align 8
  %237 = extractvalue { ptr, i32 } %235, 1
  store i32 %237, ptr %8, align 4
  br label %239

238:                                              ; preds = %229
  br label %239

239:                                              ; preds = %238, %234
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #9
  br label %269

240:                                              ; preds = %189, %182
  %241 = landingpad { ptr, i32 }
          cleanup
  %242 = extractvalue { ptr, i32 } %241, 0
  store ptr %242, ptr %7, align 8
  %243 = extractvalue { ptr, i32 } %241, 1
  store i32 %243, ptr %8, align 4
  invoke void @__cxa_end_catch()
          to label %249 unwind label %275

244:                                              ; preds = %201
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #9
  br label %262

245:                                              ; preds = %201
  %246 = landingpad { ptr, i32 }
          cleanup
  %247 = extractvalue { ptr, i32 } %246, 0
  store ptr %247, ptr %7, align 8
  %248 = extractvalue { ptr, i32 } %246, 1
  store i32 %248, ptr %8, align 4
  br label %250

249:                                              ; preds = %240
  br label %250

250:                                              ; preds = %249, %245
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #9
  br label %269

251:                                              ; preds = %172
  %252 = getelementptr inbounds %"class.DynexCN::WalletLegacy", ptr %35, i32 0, i32 20
  call void @_ZNSt10error_codeC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %33) #9
  store { i64, i64 } { i64 17, i64 0 }, ptr %34, align 8, !tbaa !121
  %253 = getelementptr inbounds { i64, i64 }, ptr %34, i32 0, i32 0
  %254 = load i64, ptr %253, align 8
  %255 = getelementptr inbounds { i64, i64 }, ptr %34, i32 0, i32 1
  %256 = load i64, ptr %255, align 8
  %257 = getelementptr inbounds { i32, ptr }, ptr %33, i32 0, i32 0
  %258 = load i32, ptr %257, align 8
  %259 = getelementptr inbounds { i32, ptr }, ptr %33, i32 0, i32 1
  %260 = load ptr, ptr %259, align 8
  invoke void @_ZN5Tools15ObserverManagerIN7DynexCN21IWalletLegacyObserverEE6notifyIMS2_FvSt10error_codeEJS5_EEEvT_DpT0_(ptr noundef nonnull align 8 dereferenceable(64) %252, i64 %254, i64 %256, i32 %258, ptr %260)
          to label %261 unwind label %265

261:                                              ; preds = %251
  store i32 0, ptr %28, align 4
  br label %262

262:                                              ; preds = %261, %244, %233
  call void @_ZN12_GLOBAL__N_120ContextCounterHolderD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %5) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %5) #9
  %263 = load i32, ptr %28, align 4
  switch i32 %263, label %278 [
    i32 0, label %264
    i32 1, label %264
  ]

264:                                              ; preds = %262, %262
  ret void

265:                                              ; preds = %251
  %266 = landingpad { ptr, i32 }
          cleanup
  %267 = extractvalue { ptr, i32 } %266, 0
  store ptr %267, ptr %7, align 8
  %268 = extractvalue { ptr, i32 } %266, 1
  store i32 %268, ptr %8, align 4
  br label %269

269:                                              ; preds = %265, %250, %239, %202
  call void @_ZN12_GLOBAL__N_120ContextCounterHolderD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %5) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %5) #9
  br label %270

270:                                              ; preds = %269
  %271 = load ptr, ptr %7, align 8
  %272 = load i32, ptr %8, align 4
  %273 = insertvalue { ptr, i32 } poison, ptr %271, 0
  %274 = insertvalue { ptr, i32 } %273, i32 %272, 1
  resume { ptr, i32 } %274

275:                                              ; preds = %240, %229
  %276 = landingpad { ptr, i32 }
          catch ptr null
  %277 = extractvalue { ptr, i32 } %276, 0
  call void @__clang_call_terminate(ptr %277) #10
  unreachable

278:                                              ; preds = %262
  unreachable
}

declare noundef nonnull align 1 dereferenceable(128) ptr @_ZNK7DynexCN11AccountBase14getAccountKeysEv(ptr noundef nonnull align 8 dereferenceable(136)) #6

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

declare void @_ZN7DynexCN22WalletLegacySerializerC1ERNS_11AccountBaseERNS_27WalletUserTransactionsCacheE(ptr noundef nonnull align 8 dereferenceable(20), ptr noundef nonnull align 8 dereferenceable(136), ptr noundef nonnull align 8 dereferenceable(224)) unnamed_addr #6

declare void @_ZN7DynexCN22WalletLegacySerializer11deserializeERSiRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERS7_(ptr noundef nonnull align 8 dereferenceable(20), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) #6

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZStorSt13_Ios_OpenmodeS_(i32 noundef, i32 noundef) #5

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

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

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

; Function Attrs: nounwind memory(none)
declare i32 @llvm.eh.typeid.for.p0(ptr) #7

declare void @__cxa_end_catch()

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local i64 @_ZN5boost9date_time12second_clockINS_10posix_time5ptimeEE10local_timeEv() #3 align 2

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

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

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

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

declare void @_ZN7DynexCN20TransfersSyncronizer17addPublicKeysSeenERKNS_20AccountPublicAddressERKN6Crypto4HashERKNS4_9PublicKeyE(ptr noundef nonnull align 8 dereferenceable(192), ptr noundef nonnull align 1 dereferenceable(64), ptr noundef nonnull align 1 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(32)) #6

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

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

; Function Attrs: mustprogress uwtable
declare hidden void @"_ZN12_GLOBAL__N_19runAtomicIZN7DynexCN12WalletLegacy6doLoadERSiE3$_0EEvRSt5mutexT_"(ptr noundef nonnull align 8 dereferenceable(40), ptr) #3

; Function Attrs: mustprogress uwtable
declare hidden void @"_ZN12_GLOBAL__N_19runAtomicIZN7DynexCN12WalletLegacy6doLoadERSiE3$_1EEvRSt5mutexT_"(ptr noundef nonnull align 8 dereferenceable(40), ptr) #3

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

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

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { noinline noreturn nounwind uwtable "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { nounwind memory(none) }
attributes #8 = { 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 #9 = { nounwind }
attributes #10 = { 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, !6, i64 928}
!10 = !{!"_ZTSN7DynexCN12WalletLegacyE", !11, i64 0, !12, i64 8, !13, i64 16, !14, i64 24, !15, i64 32, !17, i64 72, !23, i64 208, !6, i64 240, !6, i64 248, !6, i64 256, !25, i64 264, !26, i64 272, !26, i64 280, !26, i64 288, !28, i64 296, !66, i64 736, !6, i64 928, !76, i64 936, !92, i64 1160, !98, i64 1168, !100, i64 1264, !105, i64 1328}
!11 = !{!"_ZTSN7DynexCN13IWalletLegacyE"}
!12 = !{!"_ZTSN7DynexCN31IBlockchainSynchronizerObserverE"}
!13 = !{!"_ZTSN7DynexCN18ITransfersObserverE"}
!14 = !{!"_ZTSN7DynexCN12WalletLegacy11WalletStateE", !7, i64 0}
!15 = !{!"_ZTSSt5mutex", !16, i64 0}
!16 = !{!"_ZTSSt12__mutex_base", !7, i64 0}
!17 = !{!"_ZTSN7DynexCN11AccountBaseE", !18, i64 0, !22, i64 128}
!18 = !{!"_ZTSN7DynexCN11AccountKeysE", !19, i64 0, !21, i64 64, !21, i64 96}
!19 = !{!"_ZTSN7DynexCN20AccountPublicAddressE", !20, i64 0, !20, i64 32}
!20 = !{!"_ZTSN6Crypto9PublicKeyE", !7, i64 0}
!21 = !{!"_ZTSN6Crypto9SecretKeyE", !7, i64 0}
!22 = !{!"long", !7, i64 0}
!23 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !24, i64 0, !22, i64 8, !7, i64 16}
!24 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!25 = !{!"bool", !7, i64 0}
!26 = !{!"_ZTSSt6atomicImE", !27, i64 0}
!27 = !{!"_ZTSSt13__atomic_baseImE", !22, i64 0}
!28 = !{!"_ZTSN7DynexCN22BlockchainSynchronizerE", !29, i64 0, !38, i64 80, !39, i64 88, !40, i64 128, !6, i64 176, !48, i64 184, !48, i64 216, !49, i64 248, !49, i64 252, !50, i64 256, !56, i64 264, !61, i64 288, !15, i64 312, !15, i64 352, !64, i64 392}
!29 = !{!"_ZTSN7DynexCN15IObservableImplINS_31IBlockchainSynchronizerObserverENS_23IBlockchainSynchronizerEEE", !30, i64 0, !33, i64 16}
!30 = !{!"_ZTSN7DynexCN23IBlockchainSynchronizerE", !31, i64 0, !32, i64 8}
!31 = !{!"_ZTSN7DynexCN11IObservableINS_31IBlockchainSynchronizerObserverEEE"}
!32 = !{!"_ZTSN7DynexCN19IStreamSerializableE"}
!33 = !{!"_ZTSN5Tools15ObserverManagerIN7DynexCN31IBlockchainSynchronizerObserverEEE", !34, i64 0, !15, i64 24}
!34 = !{!"_ZTSSt6vectorIPN7DynexCN31IBlockchainSynchronizerObserverESaIS2_EE", !35, i64 0}
!35 = !{!"_ZTSSt12_Vector_baseIPN7DynexCN31IBlockchainSynchronizerObserverESaIS2_EE", !36, i64 0}
!36 = !{!"_ZTSNSt12_Vector_baseIPN7DynexCN31IBlockchainSynchronizerObserverESaIS2_EE12_Vector_implE", !37, i64 0}
!37 = !{!"_ZTSNSt12_Vector_baseIPN7DynexCN31IBlockchainSynchronizerObserverESaIS2_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!38 = !{!"_ZTSN7DynexCN13INodeObserverE"}
!39 = !{!"_ZTSN7Logging9LoggerRefE", !6, i64 0, !23, i64 8}
!40 = !{!"_ZTSSt3mapIPN7DynexCN19IBlockchainConsumerESt10shared_ptrINS0_20SynchronizationStateEESt4lessIS2_ESaISt4pairIKS2_S5_EEE", !41, i64 0}
!41 = !{!"_ZTSSt8_Rb_treeIPN7DynexCN19IBlockchainConsumerESt4pairIKS2_St10shared_ptrINS0_20SynchronizationStateEEESt10_Select1stIS8_ESt4lessIS2_ESaIS8_EE", !42, i64 0}
!42 = !{!"_ZTSNSt8_Rb_treeIPN7DynexCN19IBlockchainConsumerESt4pairIKS2_St10shared_ptrINS0_20SynchronizationStateEEESt10_Select1stIS8_ESt4lessIS2_ESaIS8_EE13_Rb_tree_implISC_Lb1EEE", !43, i64 0, !45, i64 8}
!43 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessIPN7DynexCN19IBlockchainConsumerEEE", !44, i64 0}
!44 = !{!"_ZTSSt4lessIPN7DynexCN19IBlockchainConsumerEE"}
!45 = !{!"_ZTSSt15_Rb_tree_header", !46, i64 0, !22, i64 32}
!46 = !{!"_ZTSSt18_Rb_tree_node_base", !47, i64 0, !6, i64 8, !6, i64 16, !6, i64 24}
!47 = !{!"_ZTSSt14_Rb_tree_color", !7, i64 0}
!48 = !{!"_ZTSN6Crypto4HashE", !7, i64 0}
!49 = !{!"_ZTSN7DynexCN22BlockchainSynchronizer5StateE", !7, i64 0}
!50 = !{!"_ZTSSt10unique_ptrISt6threadSt14default_deleteIS0_EE", !51, i64 0}
!51 = !{!"_ZTSSt15__uniq_ptr_dataISt6threadSt14default_deleteIS0_ELb1ELb1EE", !52, i64 0}
!52 = !{!"_ZTSSt15__uniq_ptr_implISt6threadSt14default_deleteIS0_EE", !53, i64 0}
!53 = !{!"_ZTSSt5tupleIJPSt6threadSt14default_deleteIS0_EEE", !54, i64 0}
!54 = !{!"_ZTSSt11_Tuple_implILm0EJPSt6threadSt14default_deleteIS0_EEE", !55, i64 0}
!55 = !{!"_ZTSSt10_Head_baseILm0EPSt6threadLb0EE", !6, i64 0}
!56 = !{!"_ZTSNSt7__cxx114listISt4pairIPKN7DynexCN18ITransactionReaderESt7promiseISt10error_codeEESaIS9_EEE", !57, i64 0}
!57 = !{!"_ZTSNSt7__cxx1110_List_baseISt4pairIPKN7DynexCN18ITransactionReaderESt7promiseISt10error_codeEESaIS9_EEE", !58, i64 0}
!58 = !{!"_ZTSNSt7__cxx1110_List_baseISt4pairIPKN7DynexCN18ITransactionReaderESt7promiseISt10error_codeEESaIS9_EE10_List_implE", !59, i64 0}
!59 = !{!"_ZTSNSt8__detail17_List_node_headerE", !60, i64 0, !22, i64 16}
!60 = !{!"_ZTSNSt8__detail15_List_node_baseE", !6, i64 0, !6, i64 8}
!61 = !{!"_ZTSNSt7__cxx114listISt4pairIPKN6Crypto4HashESt7promiseIvEESaIS8_EEE", !62, i64 0}
!62 = !{!"_ZTSNSt7__cxx1110_List_baseISt4pairIPKN6Crypto4HashESt7promiseIvEESaIS8_EEE", !63, i64 0}
!63 = !{!"_ZTSNSt7__cxx1110_List_baseISt4pairIPKN6Crypto4HashESt7promiseIvEESaIS8_EE10_List_implE", !59, i64 0}
!64 = !{!"_ZTSSt18condition_variable", !65, i64 0}
!65 = !{!"_ZTSSt9__condvar", !7, i64 0}
!66 = !{!"_ZTSN7DynexCN20TransfersSyncronizerE", !67, i64 0, !68, i64 8, !39, i64 16, !69, i64 56, !74, i64 112, !6, i64 168, !6, i64 176, !6, i64 184}
!67 = !{!"_ZTSN7DynexCN22ITransfersSynchronizerE", !32, i64 0}
!68 = !{!"_ZTSN7DynexCN27IBlockchainConsumerObserverE"}
!69 = !{!"_ZTSSt13unordered_mapIN6Crypto9PublicKeyESt10unique_ptrIN7DynexCN17TransfersConsumerESt14default_deleteIS4_EESt4hashIS1_ESt8equal_toIS1_ESaISt4pairIKS1_S7_EEE", !70, i64 0}
!70 = !{!"_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, !22, i64 8, !71, i64 16, !22, i64 24, !72, i64 32, !6, i64 48}
!71 = !{!"_ZTSNSt8__detail15_Hash_node_baseE", !6, i64 0}
!72 = !{!"_ZTSNSt8__detail20_Prime_rehash_policyE", !73, i64 0, !22, i64 8}
!73 = !{!"float", !7, i64 0}
!74 = !{!"_ZTSSt13unordered_mapIN6Crypto9PublicKeyESt10unique_ptrIN5Tools15ObserverManagerIN7DynexCN30ITransfersSynchronizerObserverEEESt14default_deleteIS7_EESt4hashIS1_ESt8equal_toIS1_ESaISt4pairIKS1_SA_EEE", !75, i64 0}
!75 = !{!"_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, !22, i64 8, !71, i64 16, !22, i64 24, !72, i64 32, !6, i64 48}
!76 = !{!"_ZTSN7DynexCN27WalletUserTransactionsCacheE", !77, i64 0, !81, i64 24, !85, i64 48, !90, i64 168}
!77 = !{!"_ZTSSt6vectorIN7DynexCN23WalletLegacyTransactionESaIS1_EE", !78, i64 0}
!78 = !{!"_ZTSSt12_Vector_baseIN7DynexCN23WalletLegacyTransactionESaIS1_EE", !79, i64 0}
!79 = !{!"_ZTSNSt12_Vector_baseIN7DynexCN23WalletLegacyTransactionESaIS1_EE12_Vector_implE", !80, i64 0}
!80 = !{!"_ZTSNSt12_Vector_baseIN7DynexCN23WalletLegacyTransactionESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!81 = !{!"_ZTSSt6vectorIN7DynexCN20WalletLegacyTransferESaIS1_EE", !82, i64 0}
!82 = !{!"_ZTSSt12_Vector_baseIN7DynexCN20WalletLegacyTransferESaIS1_EE", !83, i64 0}
!83 = !{!"_ZTSNSt12_Vector_baseIN7DynexCN20WalletLegacyTransferESaIS1_EE12_Vector_implE", !84, i64 0}
!84 = !{!"_ZTSNSt12_Vector_baseIN7DynexCN20WalletLegacyTransferESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!85 = !{!"_ZTSN7DynexCN29WalletUnconfirmedTransactionsE", !86, i64 0, !88, i64 56, !22, i64 112}
!86 = !{!"_ZTSSt13unordered_mapIN6Crypto4HashEN7DynexCN26UnconfirmedTransferDetailsEN5boost4hashIS1_EESt8equal_toIS1_ESaISt4pairIKS1_S3_EEE", !87, i64 0}
!87 = !{!"_ZTSSt10_HashtableIN6Crypto4HashESt4pairIKS1_N7DynexCN26UnconfirmedTransferDetailsEESaIS6_ENSt8__detail10_Select1stESt8equal_toIS1_EN5boost4hashIS1_EENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb1ELb0ELb1EEEE", !6, i64 0, !22, i64 8, !71, i64 16, !22, i64 24, !72, i64 32, !6, i64 48}
!88 = !{!"_ZTSSt13unordered_setISt4pairIN6Crypto9PublicKeyEmESt4hashIS3_ESt8equal_toIS3_ESaIS3_EE", !89, i64 0}
!89 = !{!"_ZTSSt10_HashtableISt4pairIN6Crypto9PublicKeyEmES3_SaIS3_ENSt8__detail9_IdentityESt8equal_toIS3_ESt4hashIS3_ENS5_18_Mod_range_hashingENS5_20_Default_ranged_hashENS5_20_Prime_rehash_policyENS5_17_Hashtable_traitsILb1ELb1ELb1EEEE", !6, i64 0, !22, i64 8, !71, i64 16, !22, i64 24, !72, i64 32, !6, i64 48}
!90 = !{!"_ZTSSt13unordered_mapIN6Crypto4HashESt6vectorImSaImEEN5boost4hashIS1_EESt8equal_toIS1_ESaISt4pairIKS1_S4_EEE", !91, i64 0}
!91 = !{!"_ZTSSt10_HashtableIN6Crypto4HashESt4pairIKS1_St6vectorImSaImEEESaIS7_ENSt8__detail10_Select1stESt8equal_toIS1_EN5boost4hashIS1_EENS9_18_Mod_range_hashingENS9_20_Default_ranged_hashENS9_20_Prime_rehash_policyENS9_17_Hashtable_traitsILb1ELb0ELb1EEEE", !6, i64 0, !22, i64 8, !71, i64 16, !22, i64 24, !72, i64 32, !6, i64 48}
!92 = !{!"_ZTSSt10unique_ptrIN7DynexCN23WalletTransactionSenderESt14default_deleteIS1_EE", !93, i64 0}
!93 = !{!"_ZTSSt15__uniq_ptr_dataIN7DynexCN23WalletTransactionSenderESt14default_deleteIS1_ELb1ELb1EE", !94, i64 0}
!94 = !{!"_ZTSSt15__uniq_ptr_implIN7DynexCN23WalletTransactionSenderESt14default_deleteIS1_EE", !95, i64 0}
!95 = !{!"_ZTSSt5tupleIJPN7DynexCN23WalletTransactionSenderESt14default_deleteIS1_EEE", !96, i64 0}
!96 = !{!"_ZTSSt11_Tuple_implILm0EJPN7DynexCN23WalletTransactionSenderESt14default_deleteIS1_EEE", !97, i64 0}
!97 = !{!"_ZTSSt10_Head_baseILm0EPN7DynexCN23WalletTransactionSenderELb0EE", !6, i64 0}
!98 = !{!"_ZTSN7DynexCN25WalletAsyncContextCounterE", !99, i64 0, !64, i64 8, !15, i64 56}
!99 = !{!"int", !7, i64 0}
!100 = !{!"_ZTSN5Tools15ObserverManagerIN7DynexCN21IWalletLegacyObserverEEE", !101, i64 0, !15, i64 24}
!101 = !{!"_ZTSSt6vectorIPN7DynexCN21IWalletLegacyObserverESaIS2_EE", !102, i64 0}
!102 = !{!"_ZTSSt12_Vector_baseIPN7DynexCN21IWalletLegacyObserverESaIS2_EE", !103, i64 0}
!103 = !{!"_ZTSNSt12_Vector_baseIPN7DynexCN21IWalletLegacyObserverESaIS2_EE12_Vector_implE", !104, i64 0}
!104 = !{!"_ZTSNSt12_Vector_baseIPN7DynexCN21IWalletLegacyObserverESaIS2_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!105 = !{!"_ZTSSt10unique_ptrIN7DynexCN11SyncStarterESt14default_deleteIS1_EE", !106, i64 0}
!106 = !{!"_ZTSSt15__uniq_ptr_dataIN7DynexCN11SyncStarterESt14default_deleteIS1_ELb1ELb1EE", !107, i64 0}
!107 = !{!"_ZTSSt15__uniq_ptr_implIN7DynexCN11SyncStarterESt14default_deleteIS1_EE", !108, i64 0}
!108 = !{!"_ZTSSt5tupleIJPN7DynexCN11SyncStarterESt14default_deleteIS1_EEE", !109, i64 0}
!109 = !{!"_ZTSSt11_Tuple_implILm0EJPN7DynexCN11SyncStarterESt14default_deleteIS1_EEE", !110, i64 0}
!110 = !{!"_ZTSSt10_Head_baseILm0EPN7DynexCN11SyncStarterELb0EE", !6, i64 0}
!111 = !{!112, !112, i64 0}
!112 = !{!"vtable pointer", !8, i64 0}
!113 = !{!10, !6, i64 256}
!114 = !{!115, !116, i64 0}
!115 = !{!"_ZTSN7DynexCN28TransactionOutputInformationE", !116, i64 0, !22, i64 8, !99, i64 16, !99, i64 20, !48, i64 24, !20, i64 56, !7, i64 88}
!116 = !{!"_ZTSN7DynexCN16TransactionTypes10OutputTypeE", !7, i64 0}
!117 = !{!118, !6, i64 0}
!118 = !{!"_ZTSZN7DynexCN12WalletLegacy6doLoadERSiE3$_1", !6, i64 0}
!119 = !{i64 0, i64 4, !120, i64 8, i64 8, !5}
!120 = !{!99, !99, i64 0}
!121 = !{!7, !7, i64 0}
!122 = !{!123, !6, i64 0}
!123 = !{!"_ZTSZN7DynexCN12WalletLegacy6doLoadERSiE3$_0", !6, i64 0}


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

%"class.(anonymous namespace)::ContextCounterHolder" = type { ptr }
%"class.std::unique_lock" = type <{ ptr, i8, [7 x i8] }>
%"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.DynexCN::WalletLegacySerializer" = type <{ ptr, ptr, i32, [4 x i8] }>
%"class.std::__cxx11::basic_stringstream" = type { %"class.std::basic_iostream.base", %"class.std::__cxx11::basic_stringbuf", %"class.std::basic_ios" }
%"class.std::basic_iostream.base" = type { %"class.std::basic_istream.base", %"class.std::basic_ostream.base" }
%"class.std::basic_istream.base" = type { ptr, i64 }
%"class.std::basic_ostream.base" = type { ptr }
%"class.std::__cxx11::basic_stringbuf" = type { %"class.std::basic_streambuf", i32, %"class.std::__cxx11::basic_string" }
%"class.std::basic_streambuf" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::locale" }
%"class.std::locale" = type { ptr }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::vector.162" = type { %"struct.std::_Vector_base.163" }
%"struct.std::_Vector_base.163" = type { %"struct.std::_Vector_base<DynexCN::TransactionOutputInformation, std::allocator<DynexCN::TransactionOutputInformation>>::_Vector_impl" }
%"struct.std::_Vector_base<DynexCN::TransactionOutputInformation, std::allocator<DynexCN::TransactionOutputInformation>>::_Vector_impl" = type { %"struct.std::_Vector_base<DynexCN::TransactionOutputInformation, std::allocator<DynexCN::TransactionOutputInformation>>::_Vector_impl_data" }
%"struct.std::_Vector_base<DynexCN::TransactionOutputInformation, std::allocator<DynexCN::TransactionOutputInformation>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::allocator" = type { i8 }
%"class.__gnu_cxx::__normal_iterator" = type { ptr }
%"class.std::error_code" = type { i32, ptr }

@_ZTISt12system_error = external constant ptr
@_ZTISt9exception = external constant ptr
@.str.8 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [13 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 @_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

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

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

; Function Attrs: noinline noreturn nounwind uwtable
declare hidden void @__clang_call_terminate(ptr noundef) local_unnamed_addr #3

declare ptr @__cxa_begin_catch(ptr) local_unnamed_addr

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5Tools15ObserverManagerIN7DynexCN21IWalletLegacyObserverEE6notifyIMS2_FvSt10error_codeEJS5_EEEvT_DpT0_(ptr noundef nonnull align 8 dereferenceable(64), i64, i64, i32, ptr) local_unnamed_addr #2 align 2

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN7DynexCN12WalletLegacy6doLoadERSi(ptr noundef nonnull align 8 dereferenceable(1336) %0, ptr noundef nonnull align 8 dereferenceable(16) %1) local_unnamed_addr #2 align 2 personality ptr @__gxx_personality_v0 {
  %3 = alloca %"class.(anonymous namespace)::ContextCounterHolder", align 8
  %4 = alloca %"class.std::unique_lock", align 8
  %5 = alloca %"class.std::__cxx11::basic_string", align 8
  %6 = alloca %"class.DynexCN::WalletLegacySerializer", align 8
  %7 = alloca %"class.std::__cxx11::basic_stringstream", align 8
  %8 = alloca %"class.std::vector.162", align 8
  %9 = alloca %"class.std::__cxx11::basic_string", align 8
  %10 = alloca %"class.std::__cxx11::basic_string", align 8
  %11 = alloca %"class.std::__cxx11::basic_string", align 8
  %12 = alloca %"class.std::__cxx11::basic_string", align 8
  %13 = alloca %"class.std::allocator", align 1
  %14 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %15 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %16 = alloca %"class.std::error_code", align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3) #8
  %17 = getelementptr inbounds i8, ptr %0, i64 1168
  call void @_ZN12_GLOBAL__N_120ContextCounterHolderC2ERN7DynexCN25WalletAsyncContextCounterE(ptr noundef nonnull align 8 dereferenceable(8) %3, ptr noundef nonnull align 8 dereferenceable(96) %17)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %4) #8
  %18 = getelementptr inbounds i8, ptr %0, i64 32
  invoke void @_ZNSt11unique_lockISt5mutexEC2ERS0_(ptr noundef nonnull align 8 dereferenceable(9) %4, ptr noundef nonnull align 8 dereferenceable(40) %18)
          to label %19 unwind label %32

19:                                               ; preds = %2
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %5) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %6) #8
  %20 = getelementptr inbounds i8, ptr %0, i64 72
  %21 = getelementptr inbounds i8, ptr %0, i64 936
  invoke void @_ZN7DynexCN22WalletLegacySerializerC1ERNS_11AccountBaseERNS_27WalletUserTransactionsCacheE(ptr noundef nonnull align 8 dereferenceable(20) %6, ptr noundef nonnull align 8 dereferenceable(136) %20, ptr noundef nonnull align 8 dereferenceable(224) %21)
          to label %22 unwind label %36

22:                                               ; preds = %19
  %23 = getelementptr inbounds i8, ptr %0, i64 208
  invoke void @_ZN7DynexCN22WalletLegacySerializer11deserializeERSiRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERS7_(ptr noundef nonnull align 8 dereferenceable(20) %6, ptr noundef nonnull align 8 dereferenceable(16) %1, ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef nonnull align 8 dereferenceable(32) %5)
          to label %24 unwind label %36

24:                                               ; preds = %22
  invoke void @_ZN7DynexCN12WalletLegacy8initSyncEv(ptr noundef nonnull align 8 dereferenceable(1336) %0)
          to label %25 unwind label %36

25:                                               ; preds = %24
  %26 = call noundef zeroext i1 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(32) %5) #8
  br i1 %26, label %49, label %27

27:                                               ; preds = %25
  call void @llvm.lifetime.start.p0(i64 392, ptr nonnull %7) #8
  %28 = call noundef i32 @_ZStorSt13_Ios_OpenmodeS_(i32 noundef 16, i32 noundef 8)
  invoke void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1ERKNS_12basic_stringIcS2_S3_EESt13_Ios_Openmode(ptr noundef nonnull align 8 dereferenceable(128) %7, ptr noundef nonnull align 8 dereferenceable(32) %5, i32 noundef %28)
          to label %29 unwind label %40

29:                                               ; preds = %27
  %30 = getelementptr inbounds i8, ptr %0, i64 736
  invoke void @_ZN7DynexCN20TransfersSyncronizer4loadERSi(ptr noundef nonnull align 8 dereferenceable(192) %30, ptr noundef nonnull align 8 dereferenceable(16) %7)
          to label %31 unwind label %42

31:                                               ; preds = %29
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %7) #8
  call void @llvm.lifetime.end.p0(i64 392, ptr nonnull %7) #8
  br label %49

32:                                               ; preds = %2
  %33 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt12system_error
          catch ptr @_ZTISt9exception
  %34 = extractvalue { ptr, i32 } %33, 0
  %35 = extractvalue { ptr, i32 } %33, 1
  br label %112

36:                                               ; preds = %24, %22, %19
  %37 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt12system_error
          catch ptr @_ZTISt9exception
  %38 = extractvalue { ptr, i32 } %37, 0
  %39 = extractvalue { ptr, i32 } %37, 1
  br label %111

40:                                               ; preds = %27
  %41 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
          catch ptr @_ZTISt12system_error
  br label %44

42:                                               ; preds = %29
  %43 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
          catch ptr @_ZTISt12system_error
  call void @_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %7) #8
  br label %44

44:                                               ; preds = %42, %40
  %.pn = phi { ptr, i32 } [ %43, %42 ], [ %41, %40 ]
  %.0 = extractvalue { ptr, i32 } %.pn, 0
  %.026 = extractvalue { ptr, i32 } %.pn, 1
  call void @llvm.lifetime.end.p0(i64 392, ptr nonnull %7) #8
  %45 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTISt9exception) #8
  %46 = icmp eq i32 %.026, %45
  br i1 %46, label %47, label %111

47:                                               ; preds = %44
  %48 = call ptr @__cxa_begin_catch(ptr %.0) #8
  invoke void @__cxa_end_catch()
          to label %49 unwind label %76

49:                                               ; preds = %47, %25, %31
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %8) #8
  call void @_ZNSt6vectorIN7DynexCN28TransactionOutputInformationESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %8) #8
  %50 = getelementptr inbounds i8, ptr %0, i64 928
  %51 = load ptr, ptr %50, align 8, !tbaa !5
  %52 = load ptr, ptr %51, align 8, !tbaa !110
  %53 = getelementptr inbounds i8, ptr %52, i64 40
  %54 = load ptr, ptr %53, align 8
  invoke void %54(ptr noundef nonnull align 8 dereferenceable(8) %51, ptr noundef nonnull align 8 dereferenceable(24) %8, i32 noundef 65535)
          to label %55 unwind label %80

55:                                               ; preds = %49
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %9) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %10) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %11) #8
  %56 = call noundef i64 @_ZNKSt6vectorIN7DynexCN28TransactionOutputInformationESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %8) #8
  invoke void @_ZNSt7__cxx119to_stringEm(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %11, i64 noundef %56)
          to label %57 unwind label %82

57:                                               ; preds = %55
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %10, ptr noundef nonnull @.str.8, ptr noundef nonnull align 8 dereferenceable(32) %11)
          to label %58 unwind label %84

58:                                               ; preds = %57
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %9, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull @.str.9)
          to label %59 unwind label %86

59:                                               ; preds = %58
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #8
  %60 = getelementptr inbounds i8, ptr %0, i64 256
  %61 = load ptr, ptr %60, align 8, !tbaa !112
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %12) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %13) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %13)
          to label %62 unwind label %90

62:                                               ; preds = %59
  %63 = invoke i64 @_ZN5boost9date_time12second_clockINS_10posix_time5ptimeEE10local_timeEv()
          to label %64 unwind label %92

64:                                               ; preds = %62
  %65 = load ptr, ptr %61, align 8, !tbaa !110
  %66 = load ptr, ptr %65, align 8
  invoke void %66(ptr noundef nonnull align 8 dereferenceable(8) %61, ptr noundef nonnull align 8 dereferenceable(32) %12, i32 noundef 3, i64 %63, ptr noundef nonnull align 8 dereferenceable(32) %9)
          to label %67 unwind label %92

67:                                               ; preds = %64
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %13) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #8
  %68 = call ptr @_ZNSt6vectorIN7DynexCN28TransactionOutputInformationESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %8) #8
  store ptr %68, ptr %14, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #8
  %69 = call ptr @_ZNSt6vectorIN7DynexCN28TransactionOutputInformationESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %8) #8
  store ptr %69, ptr %15, align 8
  %70 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN7DynexCN28TransactionOutputInformationESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %14, ptr noundef nonnull align 8 dereferenceable(8) %15) #8
  br i1 %70, label %.lr.ph, label %._crit_edge

.lr.ph:                                           ; preds = %67
  %71 = getelementptr inbounds i8, ptr %0, i64 736
  br label %95

._crit_edge:                                      ; preds = %105, %67
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #8
  call void @_ZNSt6vectorIN7DynexCN28TransactionOutputInformationESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %8) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %8) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %6) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #8
  call void @_ZNSt11unique_lockISt5mutexED2Ev(ptr noundef nonnull align 8 dereferenceable(9) %4) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %4) #8
  %72 = getelementptr inbounds i8, ptr %0, i64 1264
  call void @_ZNSt10error_codeC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %16) #8
  %73 = load i32, ptr %16, align 8
  %74 = getelementptr inbounds i8, ptr %16, i64 8
  %75 = load ptr, ptr %74, align 8
  invoke void @_ZN5Tools15ObserverManagerIN7DynexCN21IWalletLegacyObserverEE6notifyIMS2_FvSt10error_codeEJS5_EEEvT_DpT0_(ptr noundef nonnull align 8 dereferenceable(64) %72, i64 17, i64 0, i32 %73, ptr %75)
          to label %142 unwind label %143

76:                                               ; preds = %47
  %77 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt12system_error
          catch ptr @_ZTISt9exception
  %78 = extractvalue { ptr, i32 } %77, 0
  %79 = extractvalue { ptr, i32 } %77, 1
  br label %111

80:                                               ; preds = %49
  %81 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt12system_error
          catch ptr @_ZTISt9exception
  br label %110

82:                                               ; preds = %55
  %83 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt12system_error
          catch ptr @_ZTISt9exception
  br label %89

84:                                               ; preds = %57
  %85 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt12system_error
          catch ptr @_ZTISt9exception
  br label %88

86:                                               ; preds = %58
  %87 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt12system_error
          catch ptr @_ZTISt9exception
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #8
  br label %88

88:                                               ; preds = %86, %84
  %.pn39 = phi { ptr, i32 } [ %87, %86 ], [ %85, %84 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #8
  br label %89

89:                                               ; preds = %88, %82
  %.pn39.pn = phi { ptr, i32 } [ %.pn39, %88 ], [ %83, %82 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #8
  br label %109

90:                                               ; preds = %59
  %91 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt12system_error
          catch ptr @_ZTISt9exception
  br label %94

92:                                               ; preds = %64, %62
  %93 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt12system_error
          catch ptr @_ZTISt9exception
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #8
  br label %94

94:                                               ; preds = %92, %90
  %.pn42 = phi { ptr, i32 } [ %93, %92 ], [ %91, %90 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %13) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #8
  br label %108

95:                                               ; preds = %.lr.ph, %105
  %96 = call noundef nonnull align 8 dereferenceable(120) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPN7DynexCN28TransactionOutputInformationESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %14) #8
  %97 = load i8, ptr %96, align 8, !tbaa !113
  %.not = icmp eq i8 %97, 0
  br i1 %.not, label %105, label %98

98:                                               ; preds = %95
  %99 = invoke noundef nonnull align 1 dereferenceable(128) ptr @_ZNK7DynexCN11AccountBase14getAccountKeysEv(ptr noundef nonnull align 8 dereferenceable(136) %20)
          to label %100 unwind label %103

100:                                              ; preds = %98
  %101 = getelementptr inbounds i8, ptr %96, i64 24
  %102 = getelementptr inbounds i8, ptr %96, i64 88
  invoke void @_ZN7DynexCN20TransfersSyncronizer17addPublicKeysSeenERKNS_20AccountPublicAddressERKN6Crypto4HashERKNS4_9PublicKeyE(ptr noundef nonnull align 8 dereferenceable(192) %71, ptr noundef nonnull align 1 dereferenceable(64) %99, ptr noundef nonnull align 1 dereferenceable(32) %101, ptr noundef nonnull align 1 dereferenceable(32) %102)
          to label %105 unwind label %103

103:                                              ; preds = %100, %98
  %104 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt12system_error
          catch ptr @_ZTISt9exception
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #8
  br label %108

105:                                              ; preds = %100, %95
  %106 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPN7DynexCN28TransactionOutputInformationESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %14) #8
  %107 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN7DynexCN28TransactionOutputInformationESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %14, ptr noundef nonnull align 8 dereferenceable(8) %15) #8
  br i1 %107, label %95, label %._crit_edge

108:                                              ; preds = %103, %94
  %.pn44 = phi { ptr, i32 } [ %104, %103 ], [ %.pn42, %94 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #8
  br label %109

109:                                              ; preds = %108, %89
  %.pn44.pn = phi { ptr, i32 } [ %.pn44, %108 ], [ %.pn39.pn, %89 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #8
  br label %110

110:                                              ; preds = %109, %80
  %.pn44.pn.pn = phi { ptr, i32 } [ %.pn44.pn, %109 ], [ %81, %80 ]
  %.6 = extractvalue { ptr, i32 } %.pn44.pn.pn, 0
  %.632 = extractvalue { ptr, i32 } %.pn44.pn.pn, 1
  call void @_ZNSt6vectorIN7DynexCN28TransactionOutputInformationESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %8) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %8) #8
  br label %111

111:                                              ; preds = %110, %76, %44, %36
  %.733 = phi i32 [ %.632, %110 ], [ %79, %76 ], [ %.026, %44 ], [ %39, %36 ]
  %.7 = phi ptr [ %.6, %110 ], [ %78, %76 ], [ %.0, %44 ], [ %38, %36 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %6) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #8
  call void @_ZNSt11unique_lockISt5mutexED2Ev(ptr noundef nonnull align 8 dereferenceable(9) %4) #8
  br label %112

112:                                              ; preds = %111, %32
  %.834 = phi i32 [ %.733, %111 ], [ %35, %32 ]
  %.8 = phi ptr [ %.7, %111 ], [ %34, %32 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %4) #8
  %113 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTISt12system_error) #8
  %114 = icmp eq i32 %.834, %113
  br i1 %114, label %115, label %121

115:                                              ; preds = %112
  %116 = call ptr @__cxa_begin_catch(ptr %.8) #8
  invoke void @"_ZN12_GLOBAL__N_19runAtomicIZN7DynexCN12WalletLegacy6doLoadERSiE3$_1EEvRSt5mutexT_"(ptr noundef nonnull align 8 dereferenceable(40) %18, ptr nonnull %0)
          to label %117 unwind label %137

117:                                              ; preds = %115
  %118 = getelementptr inbounds i8, ptr %0, i64 1264
  %119 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNKSt12system_error4codeEv(ptr noundef nonnull align 8 dereferenceable(32) %116) #8
  %.sroa.03.0.copyload = load i32, ptr %119, align 8, !tbaa !116
  %.sroa.25.0..sroa_idx = getelementptr inbounds i8, ptr %119, i64 8
  %.sroa.25.0.copyload = load ptr, ptr %.sroa.25.0..sroa_idx, align 8, !tbaa !117
  invoke void @_ZN5Tools15ObserverManagerIN7DynexCN21IWalletLegacyObserverEE6notifyIMS2_FvSt10error_codeEJS5_EEEvT_DpT0_(ptr noundef nonnull align 8 dereferenceable(64) %118, i64 17, i64 0, i32 %.sroa.03.0.copyload, ptr %.sroa.25.0.copyload)
          to label %120 unwind label %137

120:                                              ; preds = %117
  invoke void @__cxa_end_catch()
          to label %142 unwind label %139

121:                                              ; preds = %112
  %122 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTISt9exception) #8
  %123 = icmp eq i32 %.834, %122
  br i1 %123, label %124, label %147

124:                                              ; preds = %121
  %125 = call ptr @__cxa_begin_catch(ptr %.8) #8
  invoke void @"_ZN12_GLOBAL__N_19runAtomicIZN7DynexCN12WalletLegacy6doLoadERSiE3$_0EEvRSt5mutexT_"(ptr noundef nonnull align 8 dereferenceable(40) %18, ptr nonnull %0)
          to label %126 unwind label %132

126:                                              ; preds = %124
  %127 = getelementptr inbounds i8, ptr %0, i64 1264
  %128 = call { i32, ptr } @_Z15make_error_codeN7DynexCN5error16WalletErrorCodesE(i32 noundef 5)
  %129 = extractvalue { i32, ptr } %128, 0
  %130 = extractvalue { i32, ptr } %128, 1
  invoke void @_ZN5Tools15ObserverManagerIN7DynexCN21IWalletLegacyObserverEE6notifyIMS2_FvSt10error_codeEJS5_EEEvT_DpT0_(ptr noundef nonnull align 8 dereferenceable(64) %127, i64 17, i64 0, i32 %129, ptr %130)
          to label %131 unwind label %132

131:                                              ; preds = %126
  invoke void @__cxa_end_catch()
          to label %142 unwind label %134

132:                                              ; preds = %126, %124
  %133 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %136 unwind label %150

134:                                              ; preds = %131
  %135 = landingpad { ptr, i32 }
          cleanup
  br label %136

136:                                              ; preds = %132, %134
  %.pn48 = phi { ptr, i32 } [ %135, %134 ], [ %133, %132 ]
  %.9 = extractvalue { ptr, i32 } %.pn48, 0
  %.935 = extractvalue { ptr, i32 } %.pn48, 1
  br label %147

137:                                              ; preds = %117, %115
  %138 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %141 unwind label %150

139:                                              ; preds = %120
  %140 = landingpad { ptr, i32 }
          cleanup
  br label %141

141:                                              ; preds = %137, %139
  %.pn50 = phi { ptr, i32 } [ %140, %139 ], [ %138, %137 ]
  %.10 = extractvalue { ptr, i32 } %.pn50, 0
  %.1036 = extractvalue { ptr, i32 } %.pn50, 1
  br label %147

142:                                              ; preds = %._crit_edge, %120, %131
  call void @_ZN12_GLOBAL__N_120ContextCounterHolderD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %3) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #8
  ret void

143:                                              ; preds = %._crit_edge
  %144 = landingpad { ptr, i32 }
          cleanup
  %145 = extractvalue { ptr, i32 } %144, 0
  %146 = extractvalue { ptr, i32 } %144, 1
  br label %147

147:                                              ; preds = %143, %141, %136, %121
  %.1137 = phi i32 [ %.1036, %141 ], [ %.935, %136 ], [ %.834, %121 ], [ %146, %143 ]
  %.11 = phi ptr [ %.10, %141 ], [ %.9, %136 ], [ %.8, %121 ], [ %145, %143 ]
  call void @_ZN12_GLOBAL__N_120ContextCounterHolderD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %3) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #8
  %148 = insertvalue { ptr, i32 } poison, ptr %.11, 0
  %149 = insertvalue { ptr, i32 } %148, i32 %.1137, 1
  resume { ptr, i32 } %149

150:                                              ; preds = %137, %132
  %151 = landingpad { ptr, i32 }
          catch ptr null
  %152 = extractvalue { ptr, i32 } %151, 0
  call void @__clang_call_terminate(ptr %152) #9
  unreachable
}

declare noundef nonnull align 1 dereferenceable(128) ptr @_ZNK7DynexCN11AccountBase14getAccountKeysEv(ptr noundef nonnull align 8 dereferenceable(136)) local_unnamed_addr #5

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

declare void @_ZN7DynexCN22WalletLegacySerializerC1ERNS_11AccountBaseERNS_27WalletUserTransactionsCacheE(ptr noundef nonnull align 8 dereferenceable(20), ptr noundef nonnull align 8 dereferenceable(136), ptr noundef nonnull align 8 dereferenceable(224)) unnamed_addr #5

declare void @_ZN7DynexCN22WalletLegacySerializer11deserializeERSiRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERS7_(ptr noundef nonnull align 8 dereferenceable(20), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #5

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

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

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

declare void @_ZN7DynexCN20TransfersSyncronizer4loadERSi(ptr noundef nonnull align 8 dereferenceable(192), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #5

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

; Function Attrs: nofree nosync nounwind memory(none)
declare i32 @llvm.eh.typeid.for.p0(ptr) #6

declare void @__cxa_end_catch() local_unnamed_addr

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

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

; 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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZNSt7__cxx119to_stringEm(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, i64 noundef) local_unnamed_addr #7

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

; Function Attrs: mustprogress uwtable
declare dso_local i64 @_ZN5boost9date_time12second_clockINS_10posix_time5ptimeEE10local_timeEv() local_unnamed_addr #2 align 2

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

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

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

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

declare void @_ZN7DynexCN20TransfersSyncronizer17addPublicKeysSeenERKNS_20AccountPublicAddressERKN6Crypto4HashERKNS4_9PublicKeyE(ptr noundef nonnull align 8 dereferenceable(192), ptr noundef nonnull align 1 dereferenceable(64), ptr noundef nonnull align 1 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(32)) local_unnamed_addr #5

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

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

; Function Attrs: mustprogress uwtable
declare hidden void @"_ZN12_GLOBAL__N_19runAtomicIZN7DynexCN12WalletLegacy6doLoadERSiE3$_0EEvRSt5mutexT_"(ptr noundef nonnull align 8 dereferenceable(40), ptr) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
declare hidden void @"_ZN12_GLOBAL__N_19runAtomicIZN7DynexCN12WalletLegacy6doLoadERSiE3$_1EEvRSt5mutexT_"(ptr noundef nonnull align 8 dereferenceable(40), ptr) local_unnamed_addr #2

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @_ZN12_GLOBAL__N_120ContextCounterHolderD2Ev(ptr noundef nonnull align 8 dereferenceable(8)) 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 = { noinline noreturn nounwind uwtable "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { "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 = { nofree nosync nounwind memory(none) }
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 = { nounwind }
attributes #9 = { 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, !23, i64 928}
!6 = !{!"_ZTSN7DynexCN12WalletLegacyE", !7, i64 0, !8, i64 8, !9, i64 16, !10, i64 24, !13, i64 32, !15, i64 72, !21, i64 208, !23, i64 240, !23, i64 248, !23, i64 256, !24, i64 264, !25, i64 272, !25, i64 280, !25, i64 288, !27, i64 296, !65, i64 736, !23, i64 928, !75, i64 936, !91, i64 1160, !97, i64 1168, !99, i64 1264, !104, i64 1328}
!7 = !{!"_ZTSN7DynexCN13IWalletLegacyE"}
!8 = !{!"_ZTSN7DynexCN31IBlockchainSynchronizerObserverE"}
!9 = !{!"_ZTSN7DynexCN18ITransfersObserverE"}
!10 = !{!"_ZTSN7DynexCN12WalletLegacy11WalletStateE", !11, i64 0}
!11 = !{!"omnipotent char", !12, i64 0}
!12 = !{!"Simple C++ TBAA"}
!13 = !{!"_ZTSSt5mutex", !14, i64 0}
!14 = !{!"_ZTSSt12__mutex_base", !11, i64 0}
!15 = !{!"_ZTSN7DynexCN11AccountBaseE", !16, i64 0, !20, i64 128}
!16 = !{!"_ZTSN7DynexCN11AccountKeysE", !17, i64 0, !19, i64 64, !19, i64 96}
!17 = !{!"_ZTSN7DynexCN20AccountPublicAddressE", !18, i64 0, !18, i64 32}
!18 = !{!"_ZTSN6Crypto9PublicKeyE", !11, i64 0}
!19 = !{!"_ZTSN6Crypto9SecretKeyE", !11, i64 0}
!20 = !{!"long", !11, i64 0}
!21 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !22, i64 0, !20, i64 8, !11, i64 16}
!22 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !23, i64 0}
!23 = !{!"any pointer", !11, i64 0}
!24 = !{!"bool", !11, i64 0}
!25 = !{!"_ZTSSt6atomicImE", !26, i64 0}
!26 = !{!"_ZTSSt13__atomic_baseImE", !20, i64 0}
!27 = !{!"_ZTSN7DynexCN22BlockchainSynchronizerE", !28, i64 0, !37, i64 80, !38, i64 88, !39, i64 128, !23, i64 176, !47, i64 184, !47, i64 216, !48, i64 248, !48, i64 252, !49, i64 256, !55, i64 264, !60, i64 288, !13, i64 312, !13, i64 352, !63, i64 392}
!28 = !{!"_ZTSN7DynexCN15IObservableImplINS_31IBlockchainSynchronizerObserverENS_23IBlockchainSynchronizerEEE", !29, i64 0, !32, i64 16}
!29 = !{!"_ZTSN7DynexCN23IBlockchainSynchronizerE", !30, i64 0, !31, i64 8}
!30 = !{!"_ZTSN7DynexCN11IObservableINS_31IBlockchainSynchronizerObserverEEE"}
!31 = !{!"_ZTSN7DynexCN19IStreamSerializableE"}
!32 = !{!"_ZTSN5Tools15ObserverManagerIN7DynexCN31IBlockchainSynchronizerObserverEEE", !33, i64 0, !13, i64 24}
!33 = !{!"_ZTSSt6vectorIPN7DynexCN31IBlockchainSynchronizerObserverESaIS2_EE", !34, i64 0}
!34 = !{!"_ZTSSt12_Vector_baseIPN7DynexCN31IBlockchainSynchronizerObserverESaIS2_EE", !35, i64 0}
!35 = !{!"_ZTSNSt12_Vector_baseIPN7DynexCN31IBlockchainSynchronizerObserverESaIS2_EE12_Vector_implE", !36, i64 0}
!36 = !{!"_ZTSNSt12_Vector_baseIPN7DynexCN31IBlockchainSynchronizerObserverESaIS2_EE17_Vector_impl_dataE", !23, i64 0, !23, i64 8, !23, i64 16}
!37 = !{!"_ZTSN7DynexCN13INodeObserverE"}
!38 = !{!"_ZTSN7Logging9LoggerRefE", !23, i64 0, !21, i64 8}
!39 = !{!"_ZTSSt3mapIPN7DynexCN19IBlockchainConsumerESt10shared_ptrINS0_20SynchronizationStateEESt4lessIS2_ESaISt4pairIKS2_S5_EEE", !40, i64 0}
!40 = !{!"_ZTSSt8_Rb_treeIPN7DynexCN19IBlockchainConsumerESt4pairIKS2_St10shared_ptrINS0_20SynchronizationStateEEESt10_Select1stIS8_ESt4lessIS2_ESaIS8_EE", !41, i64 0}
!41 = !{!"_ZTSNSt8_Rb_treeIPN7DynexCN19IBlockchainConsumerESt4pairIKS2_St10shared_ptrINS0_20SynchronizationStateEEESt10_Select1stIS8_ESt4lessIS2_ESaIS8_EE13_Rb_tree_implISC_Lb1EEE", !42, i64 0, !44, i64 8}
!42 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessIPN7DynexCN19IBlockchainConsumerEEE", !43, i64 0}
!43 = !{!"_ZTSSt4lessIPN7DynexCN19IBlockchainConsumerEE"}
!44 = !{!"_ZTSSt15_Rb_tree_header", !45, i64 0, !20, i64 32}
!45 = !{!"_ZTSSt18_Rb_tree_node_base", !46, i64 0, !23, i64 8, !23, i64 16, !23, i64 24}
!46 = !{!"_ZTSSt14_Rb_tree_color", !11, i64 0}
!47 = !{!"_ZTSN6Crypto4HashE", !11, i64 0}
!48 = !{!"_ZTSN7DynexCN22BlockchainSynchronizer5StateE", !11, i64 0}
!49 = !{!"_ZTSSt10unique_ptrISt6threadSt14default_deleteIS0_EE", !50, i64 0}
!50 = !{!"_ZTSSt15__uniq_ptr_dataISt6threadSt14default_deleteIS0_ELb1ELb1EE", !51, i64 0}
!51 = !{!"_ZTSSt15__uniq_ptr_implISt6threadSt14default_deleteIS0_EE", !52, i64 0}
!52 = !{!"_ZTSSt5tupleIJPSt6threadSt14default_deleteIS0_EEE", !53, i64 0}
!53 = !{!"_ZTSSt11_Tuple_implILm0EJPSt6threadSt14default_deleteIS0_EEE", !54, i64 0}
!54 = !{!"_ZTSSt10_Head_baseILm0EPSt6threadLb0EE", !23, i64 0}
!55 = !{!"_ZTSNSt7__cxx114listISt4pairIPKN7DynexCN18ITransactionReaderESt7promiseISt10error_codeEESaIS9_EEE", !56, i64 0}
!56 = !{!"_ZTSNSt7__cxx1110_List_baseISt4pairIPKN7DynexCN18ITransactionReaderESt7promiseISt10error_codeEESaIS9_EEE", !57, i64 0}
!57 = !{!"_ZTSNSt7__cxx1110_List_baseISt4pairIPKN7DynexCN18ITransactionReaderESt7promiseISt10error_codeEESaIS9_EE10_List_implE", !58, i64 0}
!58 = !{!"_ZTSNSt8__detail17_List_node_headerE", !59, i64 0, !20, i64 16}
!59 = !{!"_ZTSNSt8__detail15_List_node_baseE", !23, i64 0, !23, i64 8}
!60 = !{!"_ZTSNSt7__cxx114listISt4pairIPKN6Crypto4HashESt7promiseIvEESaIS8_EEE", !61, i64 0}
!61 = !{!"_ZTSNSt7__cxx1110_List_baseISt4pairIPKN6Crypto4HashESt7promiseIvEESaIS8_EEE", !62, i64 0}
!62 = !{!"_ZTSNSt7__cxx1110_List_baseISt4pairIPKN6Crypto4HashESt7promiseIvEESaIS8_EE10_List_implE", !58, i64 0}
!63 = !{!"_ZTSSt18condition_variable", !64, i64 0}
!64 = !{!"_ZTSSt9__condvar", !11, i64 0}
!65 = !{!"_ZTSN7DynexCN20TransfersSyncronizerE", !66, i64 0, !67, i64 8, !38, i64 16, !68, i64 56, !73, i64 112, !23, i64 168, !23, i64 176, !23, i64 184}
!66 = !{!"_ZTSN7DynexCN22ITransfersSynchronizerE", !31, i64 0}
!67 = !{!"_ZTSN7DynexCN27IBlockchainConsumerObserverE"}
!68 = !{!"_ZTSSt13unordered_mapIN6Crypto9PublicKeyESt10unique_ptrIN7DynexCN17TransfersConsumerESt14default_deleteIS4_EESt4hashIS1_ESt8equal_toIS1_ESaISt4pairIKS1_S7_EEE", !69, i64 0}
!69 = !{!"_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", !23, i64 0, !20, i64 8, !70, i64 16, !20, i64 24, !71, i64 32, !23, i64 48}
!70 = !{!"_ZTSNSt8__detail15_Hash_node_baseE", !23, i64 0}
!71 = !{!"_ZTSNSt8__detail20_Prime_rehash_policyE", !72, i64 0, !20, i64 8}
!72 = !{!"float", !11, i64 0}
!73 = !{!"_ZTSSt13unordered_mapIN6Crypto9PublicKeyESt10unique_ptrIN5Tools15ObserverManagerIN7DynexCN30ITransfersSynchronizerObserverEEESt14default_deleteIS7_EESt4hashIS1_ESt8equal_toIS1_ESaISt4pairIKS1_SA_EEE", !74, i64 0}
!74 = !{!"_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", !23, i64 0, !20, i64 8, !70, i64 16, !20, i64 24, !71, i64 32, !23, i64 48}
!75 = !{!"_ZTSN7DynexCN27WalletUserTransactionsCacheE", !76, i64 0, !80, i64 24, !84, i64 48, !89, i64 168}
!76 = !{!"_ZTSSt6vectorIN7DynexCN23WalletLegacyTransactionESaIS1_EE", !77, i64 0}
!77 = !{!"_ZTSSt12_Vector_baseIN7DynexCN23WalletLegacyTransactionESaIS1_EE", !78, i64 0}
!78 = !{!"_ZTSNSt12_Vector_baseIN7DynexCN23WalletLegacyTransactionESaIS1_EE12_Vector_implE", !79, i64 0}
!79 = !{!"_ZTSNSt12_Vector_baseIN7DynexCN23WalletLegacyTransactionESaIS1_EE17_Vector_impl_dataE", !23, i64 0, !23, i64 8, !23, i64 16}
!80 = !{!"_ZTSSt6vectorIN7DynexCN20WalletLegacyTransferESaIS1_EE", !81, i64 0}
!81 = !{!"_ZTSSt12_Vector_baseIN7DynexCN20WalletLegacyTransferESaIS1_EE", !82, i64 0}
!82 = !{!"_ZTSNSt12_Vector_baseIN7DynexCN20WalletLegacyTransferESaIS1_EE12_Vector_implE", !83, i64 0}
!83 = !{!"_ZTSNSt12_Vector_baseIN7DynexCN20WalletLegacyTransferESaIS1_EE17_Vector_impl_dataE", !23, i64 0, !23, i64 8, !23, i64 16}
!84 = !{!"_ZTSN7DynexCN29WalletUnconfirmedTransactionsE", !85, i64 0, !87, i64 56, !20, i64 112}
!85 = !{!"_ZTSSt13unordered_mapIN6Crypto4HashEN7DynexCN26UnconfirmedTransferDetailsEN5boost4hashIS1_EESt8equal_toIS1_ESaISt4pairIKS1_S3_EEE", !86, i64 0}
!86 = !{!"_ZTSSt10_HashtableIN6Crypto4HashESt4pairIKS1_N7DynexCN26UnconfirmedTransferDetailsEESaIS6_ENSt8__detail10_Select1stESt8equal_toIS1_EN5boost4hashIS1_EENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb1ELb0ELb1EEEE", !23, i64 0, !20, i64 8, !70, i64 16, !20, i64 24, !71, i64 32, !23, i64 48}
!87 = !{!"_ZTSSt13unordered_setISt4pairIN6Crypto9PublicKeyEmESt4hashIS3_ESt8equal_toIS3_ESaIS3_EE", !88, i64 0}
!88 = !{!"_ZTSSt10_HashtableISt4pairIN6Crypto9PublicKeyEmES3_SaIS3_ENSt8__detail9_IdentityESt8equal_toIS3_ESt4hashIS3_ENS5_18_Mod_range_hashingENS5_20_Default_ranged_hashENS5_20_Prime_rehash_policyENS5_17_Hashtable_traitsILb1ELb1ELb1EEEE", !23, i64 0, !20, i64 8, !70, i64 16, !20, i64 24, !71, i64 32, !23, i64 48}
!89 = !{!"_ZTSSt13unordered_mapIN6Crypto4HashESt6vectorImSaImEEN5boost4hashIS1_EESt8equal_toIS1_ESaISt4pairIKS1_S4_EEE", !90, i64 0}
!90 = !{!"_ZTSSt10_HashtableIN6Crypto4HashESt4pairIKS1_St6vectorImSaImEEESaIS7_ENSt8__detail10_Select1stESt8equal_toIS1_EN5boost4hashIS1_EENS9_18_Mod_range_hashingENS9_20_Default_ranged_hashENS9_20_Prime_rehash_policyENS9_17_Hashtable_traitsILb1ELb0ELb1EEEE", !23, i64 0, !20, i64 8, !70, i64 16, !20, i64 24, !71, i64 32, !23, i64 48}
!91 = !{!"_ZTSSt10unique_ptrIN7DynexCN23WalletTransactionSenderESt14default_deleteIS1_EE", !92, i64 0}
!92 = !{!"_ZTSSt15__uniq_ptr_dataIN7DynexCN23WalletTransactionSenderESt14default_deleteIS1_ELb1ELb1EE", !93, i64 0}
!93 = !{!"_ZTSSt15__uniq_ptr_implIN7DynexCN23WalletTransactionSenderESt14default_deleteIS1_EE", !94, i64 0}
!94 = !{!"_ZTSSt5tupleIJPN7DynexCN23WalletTransactionSenderESt14default_deleteIS1_EEE", !95, i64 0}
!95 = !{!"_ZTSSt11_Tuple_implILm0EJPN7DynexCN23WalletTransactionSenderESt14default_deleteIS1_EEE", !96, i64 0}
!96 = !{!"_ZTSSt10_Head_baseILm0EPN7DynexCN23WalletTransactionSenderELb0EE", !23, i64 0}
!97 = !{!"_ZTSN7DynexCN25WalletAsyncContextCounterE", !98, i64 0, !63, i64 8, !13, i64 56}
!98 = !{!"int", !11, i64 0}
!99 = !{!"_ZTSN5Tools15ObserverManagerIN7DynexCN21IWalletLegacyObserverEEE", !100, i64 0, !13, i64 24}
!100 = !{!"_ZTSSt6vectorIPN7DynexCN21IWalletLegacyObserverESaIS2_EE", !101, i64 0}
!101 = !{!"_ZTSSt12_Vector_baseIPN7DynexCN21IWalletLegacyObserverESaIS2_EE", !102, i64 0}
!102 = !{!"_ZTSNSt12_Vector_baseIPN7DynexCN21IWalletLegacyObserverESaIS2_EE12_Vector_implE", !103, i64 0}
!103 = !{!"_ZTSNSt12_Vector_baseIPN7DynexCN21IWalletLegacyObserverESaIS2_EE17_Vector_impl_dataE", !23, i64 0, !23, i64 8, !23, i64 16}
!104 = !{!"_ZTSSt10unique_ptrIN7DynexCN11SyncStarterESt14default_deleteIS1_EE", !105, i64 0}
!105 = !{!"_ZTSSt15__uniq_ptr_dataIN7DynexCN11SyncStarterESt14default_deleteIS1_ELb1ELb1EE", !106, i64 0}
!106 = !{!"_ZTSSt15__uniq_ptr_implIN7DynexCN11SyncStarterESt14default_deleteIS1_EE", !107, i64 0}
!107 = !{!"_ZTSSt5tupleIJPN7DynexCN11SyncStarterESt14default_deleteIS1_EEE", !108, i64 0}
!108 = !{!"_ZTSSt11_Tuple_implILm0EJPN7DynexCN11SyncStarterESt14default_deleteIS1_EEE", !109, i64 0}
!109 = !{!"_ZTSSt10_Head_baseILm0EPN7DynexCN11SyncStarterELb0EE", !23, i64 0}
!110 = !{!111, !111, i64 0}
!111 = !{!"vtable pointer", !12, i64 0}
!112 = !{!6, !23, i64 256}
!113 = !{!114, !115, i64 0}
!114 = !{!"_ZTSN7DynexCN28TransactionOutputInformationE", !115, i64 0, !20, i64 8, !98, i64 16, !98, i64 20, !47, i64 24, !18, i64 56, !11, i64 88}
!115 = !{!"_ZTSN7DynexCN16TransactionTypes10OutputTypeE", !11, i64 0}
!116 = !{!98, !98, i64 0}
!117 = !{!23, !23, i64 0}


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