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

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

%"class.std::unordered_set" = 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::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.Logging::LoggerMessage" = type <{ %"class.std::basic_ostream.base", %"class.std::basic_streambuf", ptr, %"class.std::__cxx11::basic_string", i32, [4 x i8], %"class.std::__cxx11::basic_string", %"class.boost::posix_time::ptime", i8, [7 x i8], %"class.std::basic_ios" }>
%"class.std::basic_ostream.base" = type { ptr }
%"class.std::basic_streambuf" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::locale" }
%"class.std::locale" = type { ptr }
%"class.boost::posix_time::ptime" = type { %"class.boost::date_time::base_time" }
%"class.boost::date_time::base_time" = type { %"struct.boost::date_time::counted_time_rep" }
%"struct.boost::date_time::counted_time_rep" = type { %"class.boost::date_time::int_adapter" }
%"class.boost::date_time::int_adapter" = type { i64 }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::lock_guard" = type { ptr }
%"class.DynexCN::BlockTemplate" = type { %"class.std::unordered_set.118", %"class.std::set", %"class.std::vector.73" }
%"class.std::unordered_set.118" = type { %"class.std::_Hashtable.119" }
%"class.std::_Hashtable.119" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::set" = type { %"class.std::_Rb_tree" }
%"class.std::_Rb_tree" = type { %"struct.std::_Rb_tree<std::pair<unsigned long, unsigned long>, std::pair<unsigned long, unsigned long>, std::_Identity<std::pair<unsigned long, unsigned long>>, std::less<std::pair<unsigned long, unsigned long>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::pair<unsigned long, unsigned long>, std::pair<unsigned long, unsigned long>, std::_Identity<std::pair<unsigned long, unsigned long>>, std::less<std::pair<unsigned long, unsigned long>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.std::_Rb_tree_header" = type { %"struct.std::_Rb_tree_node_base", i64 }
%"struct.std::_Rb_tree_node_base" = type { i32, ptr, ptr, ptr }
%"class.std::vector.73" = type { %"struct.std::_Vector_base.74" }
%"struct.std::_Vector_base.74" = type { %"struct.std::_Vector_base<Crypto::Hash, std::allocator<Crypto::Hash>>::_Vector_impl" }
%"struct.std::_Vector_base<Crypto::Hash, std::allocator<Crypto::Hash>>::_Vector_impl" = type { %"struct.std::_Vector_base<Crypto::Hash, std::allocator<Crypto::Hash>>::_Vector_impl_data" }
%"struct.std::_Vector_base<Crypto::Hash, std::allocator<Crypto::Hash>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.boost::multi_index::detail::bidir_node_iterator" = type { ptr }
%"struct.DynexCN::tx_verification_context" = type { i8, i8, i8, i8, i8 }
%"class.boost::value_initialized.132" = type { %"class.boost::initialized.133" }
%"class.boost::initialized.133" = type { %"struct.DynexCN::tx_verification_context" }
%"struct.DynexCN::tx_memory_pool::TransactionCheckInfo" = type { %"struct.DynexCN::BlockInfo", %"struct.DynexCN::BlockInfo" }
%"struct.DynexCN::BlockInfo" = type { i32, %"struct.Crypto::Hash" }
%"struct.Crypto::Hash" = type { [32 x i8] }
%"struct.std::__detail::_Node_iterator.113" = type { %"struct.std::__detail::_Node_iterator_base.114" }
%"struct.std::__detail::_Node_iterator_base.114" = type { ptr }
%"struct.std::pair.115" = type <{ %"struct.std::__detail::_Node_iterator.113", i8, [7 x i8] }>
%class.anon = type { ptr }
%"class.DynexCN::tx_memory_pool" = type { %"class.Tools::ObserverManager", ptr, ptr, %"class.DynexCN::OnceInTimeInterval", %"class.std::recursive_mutex", %"class.std::unordered_map", %"class.std::set", %"class.std::__cxx11::basic_string", ptr, ptr, %"class.boost::multi_index::multi_index_container", ptr, %"class.std::unordered_map.34", %"class.Logging::LoggerRef", %"class.DynexCN::PaymentIdIndex", %"class.DynexCN::AddressIndex", %"class.DynexCN::TimestampTransactionsIndex" }
%"class.Tools::ObserverManager" = type { %"class.std::vector", %"class.std::mutex" }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<DynexCN::ITxPoolObserver *, std::allocator<DynexCN::ITxPoolObserver *>>::_Vector_impl" }
%"struct.std::_Vector_base<DynexCN::ITxPoolObserver *, std::allocator<DynexCN::ITxPoolObserver *>>::_Vector_impl" = type { %"struct.std::_Vector_base<DynexCN::ITxPoolObserver *, std::allocator<DynexCN::ITxPoolObserver *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<DynexCN::ITxPoolObserver *, std::allocator<DynexCN::ITxPoolObserver *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::mutex" = type { %"class.std::__mutex_base" }
%"class.std::__mutex_base" = type { %union.pthread_mutex_t }
%union.pthread_mutex_t = type { %struct.__pthread_mutex_s }
%struct.__pthread_mutex_s = type { i32, i32, i32, i32, i32, i16, i16, %struct.__pthread_internal_list }
%struct.__pthread_internal_list = type { ptr, ptr }
%"class.DynexCN::OnceInTimeInterval" = type { i64, i32, ptr }
%"class.std::recursive_mutex" = type { %"class.std::__recursive_mutex_base" }
%"class.std::__recursive_mutex_base" = type { %union.pthread_mutex_t }
%"class.std::unordered_map" = type { %"class.std::_Hashtable.13" }
%"class.std::_Hashtable.13" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.boost::multi_index::multi_index_container" = type { [8 x i8], %"struct.boost::multi_index::detail::header_holder", %"class.boost::multi_index::detail::hashed_index", i64 }
%"struct.boost::multi_index::detail::header_holder" = type { ptr }
%"class.boost::multi_index::detail::hashed_index" = type { [8 x i8], %"class.boost::multi_index::detail::bucket_array", float, i64 }
%"class.boost::multi_index::detail::bucket_array" = type { i64, %"struct.boost::multi_index::detail::auto_space" }
%"struct.boost::multi_index::detail::auto_space" = type { [8 x i8], i64, ptr }
%"class.std::unordered_map.34" = type { %"class.std::_Hashtable.35" }
%"class.std::_Hashtable.35" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.Logging::LoggerRef" = type { ptr, %"class.std::__cxx11::basic_string" }
%"class.DynexCN::PaymentIdIndex" = type <{ %"class.std::unordered_multimap", i8, [7 x i8] }>
%"class.std::unordered_multimap" = type { %"class.std::_Hashtable.48" }
%"class.std::_Hashtable.48" = type { %"struct.std::__detail::_Hashtable_base.49", ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"struct.std::__detail::_Hashtable_base.49" = type { %"struct.std::__detail::_Hash_code_base.50" }
%"struct.std::__detail::_Hash_code_base.50" = type { %"struct.std::__detail::_Hashtable_ebo_helper.51" }
%"struct.std::__detail::_Hashtable_ebo_helper.51" = type { %"class.std::function" }
%"class.std::function" = type { %"class.std::_Function_base", ptr }
%"class.std::_Function_base" = type { %"union.std::_Any_data", ptr }
%"union.std::_Any_data" = type { %"union.std::_Nocopy_types" }
%"union.std::_Nocopy_types" = type { { i64, i64 } }
%"class.DynexCN::AddressIndex" = type <{ %"class.std::multimap", i8, [7 x i8] }>
%"class.std::multimap" = type { %"class.std::_Rb_tree.62" }
%"class.std::_Rb_tree.62" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, Crypto::Hash>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, Crypto::Hash>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, Crypto::Hash>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, Crypto::Hash>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.DynexCN::TimestampTransactionsIndex" = type <{ %"class.std::multimap.67", i8, [7 x i8] }>
%"class.std::multimap.67" = type { %"class.std::_Rb_tree.68" }
%"class.std::_Rb_tree.68" = type { %"struct.std::_Rb_tree<unsigned long, std::pair<const unsigned long, Crypto::Hash>, std::_Select1st<std::pair<const unsigned long, Crypto::Hash>>, std::less<unsigned long>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<unsigned long, std::pair<const unsigned long, Crypto::Hash>, std::_Select1st<std::pair<const unsigned long, Crypto::Hash>>, std::less<unsigned long>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.DynexCN::tx_memory_pool::TransactionDetails" = type { %"struct.DynexCN::tx_memory_pool::TransactionCheckInfo", %"struct.Crypto::Hash", %"struct.DynexCN::Transaction", i64, i64, i8, i64 }
%"struct.DynexCN::Transaction" = type { %"struct.DynexCN::TransactionPrefix", %"class.std::vector.93" }
%"struct.DynexCN::TransactionPrefix" = type { i8, i64, %"class.std::vector.78", %"class.std::vector.83", %"class.std::vector.88" }
%"class.std::vector.78" = type { %"struct.std::_Vector_base.79" }
%"struct.std::_Vector_base.79" = type { %"struct.std::_Vector_base<boost::variant<DynexCN::BaseInput, DynexCN::KeyInput, DynexCN::MultisignatureInput>, std::allocator<boost::variant<DynexCN::BaseInput, DynexCN::KeyInput, DynexCN::MultisignatureInput>>>::_Vector_impl" }
%"struct.std::_Vector_base<boost::variant<DynexCN::BaseInput, DynexCN::KeyInput, DynexCN::MultisignatureInput>, std::allocator<boost::variant<DynexCN::BaseInput, DynexCN::KeyInput, DynexCN::MultisignatureInput>>>::_Vector_impl" = type { %"struct.std::_Vector_base<boost::variant<DynexCN::BaseInput, DynexCN::KeyInput, DynexCN::MultisignatureInput>, std::allocator<boost::variant<DynexCN::BaseInput, DynexCN::KeyInput, DynexCN::MultisignatureInput>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<boost::variant<DynexCN::BaseInput, DynexCN::KeyInput, DynexCN::MultisignatureInput>, std::allocator<boost::variant<DynexCN::BaseInput, DynexCN::KeyInput, DynexCN::MultisignatureInput>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.83" = type { %"struct.std::_Vector_base.84" }
%"struct.std::_Vector_base.84" = type { %"struct.std::_Vector_base<DynexCN::TransactionOutput, std::allocator<DynexCN::TransactionOutput>>::_Vector_impl" }
%"struct.std::_Vector_base<DynexCN::TransactionOutput, std::allocator<DynexCN::TransactionOutput>>::_Vector_impl" = type { %"struct.std::_Vector_base<DynexCN::TransactionOutput, std::allocator<DynexCN::TransactionOutput>>::_Vector_impl_data" }
%"struct.std::_Vector_base<DynexCN::TransactionOutput, std::allocator<DynexCN::TransactionOutput>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.88" = type { %"struct.std::_Vector_base.89" }
%"struct.std::_Vector_base.89" = type { %"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl" }
%"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl" = type { %"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl_data" }
%"struct.std::_Vector_base<unsigned char, std::allocator<unsigned char>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.93" = type { %"struct.std::_Vector_base.94" }
%"struct.std::_Vector_base.94" = type { %"struct.std::_Vector_base<std::vector<Crypto::Signature>, std::allocator<std::vector<Crypto::Signature>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::vector<Crypto::Signature>, std::allocator<std::vector<Crypto::Signature>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::vector<Crypto::Signature>, std::allocator<std::vector<Crypto::Signature>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::vector<Crypto::Signature>, std::allocator<std::vector<Crypto::Signature>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.DynexCN::Block" = type { %"struct.DynexCN::BlockHeader", %"struct.DynexCN::ParentBlock", %"struct.DynexCN::Transaction", %"class.std::vector.73" }
%"struct.DynexCN::BlockHeader" = type { i8, i8, i32, i64, %"struct.Crypto::Hash" }
%"struct.DynexCN::ParentBlock" = type { i8, i8, %"struct.Crypto::Hash", i16, %"class.std::vector.73", %"struct.DynexCN::Transaction", %"class.std::vector.73" }

@_ZN7DynexCN24m_validated_transactionsE = external dso_local global %"class.std::unordered_set", align 8
@_ZN7Logging7DEFAULTB5cxx11E = external global %"class.std::__cxx11::basic_string", align 8
@.str.36 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [40 x i8], align 1

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

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

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local ptr @_ZNSt13unordered_setIN6Crypto4HashESt4hashIS1_ESt8equal_toIS1_ESaIS1_EE4findERKS1_(ptr noundef nonnull align 8 dereferenceable(56), ptr noundef nonnull align 1 dereferenceable(32)) #4 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local { ptr, i8 } @_ZNSt13unordered_setIN6Crypto4HashESt4hashIS1_ESt8equal_toIS1_ESaIS1_EE6insertERKS1_(ptr noundef nonnull align 8 dereferenceable(56), ptr noundef nonnull align 1 dereferenceable(32)) #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZNK7DynexCN14tx_memory_pool26is_transaction_ready_to_goERKNS_11TransactionERNS0_20TransactionCheckInfoE(ptr noundef nonnull align 8 dereferenceable(688), ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 4 dereferenceable(72)) #4 align 2

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

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_ZN7DynexCN14tx_memory_pool19fill_block_templateERNS_5BlockEmmmRmS3_(ptr noundef nonnull align 8 dereferenceable(688) %0, ptr noundef nonnull align 8 dereferenceable(384) %1, i64 noundef %2, i64 noundef %3, i64 noundef %4, ptr noundef nonnull align 8 dereferenceable(8) %5, ptr noundef nonnull align 8 dereferenceable(8) %6) #4 align 2 personality ptr @__gxx_personality_v0 {
  %8 = alloca ptr, align 8
  %9 = alloca ptr, align 8
  %10 = alloca i64, align 8
  %11 = alloca i64, align 8
  %12 = alloca i64, align 8
  %13 = alloca ptr, align 8
  %14 = alloca ptr, align 8
  %15 = alloca %"class.std::lock_guard", align 8
  %16 = alloca i64, align 8
  %17 = alloca ptr, align 8
  %18 = alloca i32, align 4
  %19 = alloca %"class.DynexCN::BlockTemplate", align 8
  %20 = alloca %"class.boost::multi_index::detail::bidir_node_iterator", align 8
  %21 = alloca %"class.boost::multi_index::detail::bidir_node_iterator", align 8
  %22 = alloca i32, align 4
  %23 = alloca ptr, align 8
  %24 = alloca i64, align 8
  %25 = alloca %"struct.DynexCN::tx_verification_context", align 1
  %26 = alloca %"class.boost::value_initialized.132", align 1
  %27 = alloca %"class.Logging::LoggerMessage", align 8
  %28 = alloca %"struct.DynexCN::tx_memory_pool::TransactionCheckInfo", align 4
  %29 = alloca i8, align 1
  %30 = alloca %"struct.std::__detail::_Node_iterator.113", align 8
  %31 = alloca %"struct.std::__detail::_Node_iterator.113", align 8
  %32 = alloca %"class.Logging::LoggerMessage", align 8
  %33 = alloca %"struct.std::pair.115", align 8
  %34 = alloca %"class.Logging::LoggerMessage", align 8
  %35 = alloca %"class.boost::multi_index::detail::bidir_node_iterator", align 8
  %36 = alloca %class.anon, align 8
  %37 = alloca %"class.Logging::LoggerMessage", align 8
  %38 = alloca %"class.Logging::LoggerMessage", align 8
  store ptr %0, ptr %8, align 8, !tbaa !5
  store ptr %1, ptr %9, align 8, !tbaa !5
  store i64 %2, ptr %10, align 8, !tbaa !9
  store i64 %3, ptr %11, align 8, !tbaa !9
  store i64 %4, ptr %12, align 8, !tbaa !9
  store ptr %5, ptr %13, align 8, !tbaa !5
  store ptr %6, ptr %14, align 8, !tbaa !5
  %39 = load ptr, ptr %8, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #8
  %40 = getelementptr inbounds %"class.DynexCN::tx_memory_pool", ptr %39, i32 0, i32 4
  call void @_ZNSt10lock_guardISt15recursive_mutexEC2ERS0_(ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef nonnull align 8 dereferenceable(40) %40)
  %41 = load ptr, ptr %13, align 8, !tbaa !5
  store i64 0, ptr %41, align 8, !tbaa !9
  %42 = load ptr, ptr %14, align 8, !tbaa !5
  store i64 0, ptr %42, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #8
  %43 = load i64, ptr %10, align 8, !tbaa !9
  %44 = mul i64 125, %43
  %45 = udiv i64 %44, 100
  store i64 %45, ptr %16, align 8, !tbaa !9
  %46 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minImERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %16, ptr noundef nonnull align 8 dereferenceable(8) %11)
          to label %47 unwind label %66

47:                                               ; preds = %7
  %48 = load i64, ptr %46, align 8, !tbaa !9
  %49 = getelementptr inbounds %"class.DynexCN::tx_memory_pool", ptr %39, i32 0, i32 1
  %50 = load ptr, ptr %49, align 8, !tbaa !11
  %51 = invoke noundef i64 @_ZNK7DynexCN8Currency23minerTxBlobReservedSizeEv(ptr noundef nonnull align 8 dereferenceable(984) %50)
          to label %52 unwind label %66

52:                                               ; preds = %47
  %53 = sub i64 %48, %51
  store i64 %53, ptr %16, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 128, ptr %19) #8
  call void @_ZN7DynexCN13BlockTemplateC2Ev(ptr noundef nonnull align 8 dereferenceable(128) %19) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #8
  %54 = getelementptr inbounds %"class.DynexCN::tx_memory_pool", ptr %39, i32 0, i32 11
  %55 = load ptr, ptr %54, align 8, !tbaa !78
  %56 = call ptr @_ZN5boost11multi_index6detail18ordered_index_implINS0_8identityIN7DynexCN14tx_memory_pool18TransactionDetailsEEENS5_29TransactionPriorityComparatorENS1_9nth_layerILi2ES6_NS0_10indexed_byINS0_13hashed_uniqueINS0_6memberIS6_N6Crypto4HashEXadL_ZNS6_2idEEEEEN4mpl_2naESH_SH_EENS0_18ordered_non_uniqueIS7_S8_SH_EESH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_EESaIS6_EEENS_3mpl7vector0ISH_EENS1_22ordered_non_unique_tagENS1_19null_augment_policyEE5beginEv(ptr noundef nonnull align 1 dereferenceable(2) %55) #8
  %57 = getelementptr inbounds %"class.boost::multi_index::detail::bidir_node_iterator", ptr %20, i32 0, i32 0
  store ptr %56, ptr %57, align 8
  br label %58

58:                                               ; preds = %299, %52
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #8
  %59 = getelementptr inbounds %"class.DynexCN::tx_memory_pool", ptr %39, i32 0, i32 11
  %60 = load ptr, ptr %59, align 8, !tbaa !78
  %61 = call ptr @_ZN5boost11multi_index6detail18ordered_index_implINS0_8identityIN7DynexCN14tx_memory_pool18TransactionDetailsEEENS5_29TransactionPriorityComparatorENS1_9nth_layerILi2ES6_NS0_10indexed_byINS0_13hashed_uniqueINS0_6memberIS6_N6Crypto4HashEXadL_ZNS6_2idEEEEEN4mpl_2naESH_SH_EENS0_18ordered_non_uniqueIS7_S8_SH_EESH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_EESaIS6_EEENS_3mpl7vector0ISH_EENS1_22ordered_non_unique_tagENS1_19null_augment_policyEE3endEv(ptr noundef nonnull align 1 dereferenceable(2) %60) #8
  %62 = getelementptr inbounds %"class.boost::multi_index::detail::bidir_node_iterator", ptr %21, i32 0, i32 0
  store ptr %61, ptr %62, align 8
  %63 = invoke noundef zeroext i1 @_ZN5boost14operators_implneERKNS_11multi_index6detail19bidir_node_iteratorINS2_18ordered_index_nodeINS2_19null_augment_policyENS2_15index_node_baseIN7DynexCN14tx_memory_pool18TransactionDetailsESaIS9_EEEEEEESF_(ptr noundef nonnull align 8 dereferenceable(8) %20, ptr noundef nonnull align 8 dereferenceable(8) %21)
          to label %64 unwind label %70

64:                                               ; preds = %58
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #8
  br i1 %63, label %74, label %65

65:                                               ; preds = %64
  store i32 2, ptr %22, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #8
  br label %308

66:                                               ; preds = %47, %7
  %67 = landingpad { ptr, i32 }
          cleanup
  %68 = extractvalue { ptr, i32 } %67, 0
  store ptr %68, ptr %17, align 8
  %69 = extractvalue { ptr, i32 } %67, 1
  store i32 %69, ptr %18, align 4
  br label %320

70:                                               ; preds = %58
  %71 = landingpad { ptr, i32 }
          cleanup
  %72 = extractvalue { ptr, i32 } %71, 0
  store ptr %72, ptr %17, align 8
  %73 = extractvalue { ptr, i32 } %71, 1
  store i32 %73, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #8
  br label %307

74:                                               ; preds = %64
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #8
  %75 = invoke noundef nonnull align 8 dereferenceable(248) ptr @_ZNK5boost11multi_index6detail19bidir_node_iteratorINS1_18ordered_index_nodeINS1_19null_augment_policyENS1_15index_node_baseIN7DynexCN14tx_memory_pool18TransactionDetailsESaIS8_EEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %20)
          to label %76 unwind label %96

76:                                               ; preds = %74
  store ptr %75, ptr %23, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #8
  %77 = load ptr, ptr %23, align 8, !tbaa !5
  %78 = getelementptr inbounds %"struct.DynexCN::tx_memory_pool::TransactionDetails", ptr %77, i32 0, i32 4
  %79 = load i64, ptr %78, align 8, !tbaa !79
  %80 = icmp eq i64 %79, 0
  br i1 %80, label %81, label %83

81:                                               ; preds = %76
  %82 = load i64, ptr %10, align 8, !tbaa !9
  br label %85

83:                                               ; preds = %76
  %84 = load i64, ptr %16, align 8, !tbaa !9
  br label %85

85:                                               ; preds = %83, %81
  %86 = phi i64 [ %82, %81 ], [ %84, %83 ]
  store i64 %86, ptr %24, align 8, !tbaa !9
  %87 = load i64, ptr %24, align 8, !tbaa !9
  %88 = load ptr, ptr %13, align 8, !tbaa !5
  %89 = load i64, ptr %88, align 8, !tbaa !9
  %90 = load ptr, ptr %23, align 8, !tbaa !5
  %91 = getelementptr inbounds %"struct.DynexCN::tx_memory_pool::TransactionDetails", ptr %90, i32 0, i32 3
  %92 = load i64, ptr %91, align 8, !tbaa !102
  %93 = add i64 %89, %92
  %94 = icmp ult i64 %87, %93
  br i1 %94, label %95, label %100

95:                                               ; preds = %85
  store i32 4, ptr %22, align 4
  br label %294

96:                                               ; preds = %74
  %97 = landingpad { ptr, i32 }
          cleanup
  %98 = extractvalue { ptr, i32 } %97, 0
  store ptr %98, ptr %17, align 8
  %99 = extractvalue { ptr, i32 } %97, 1
  store i32 %99, ptr %18, align 4
  br label %302

100:                                              ; preds = %85
  call void @llvm.lifetime.start.p0(i64 5, ptr %25) #8
  call void @llvm.lifetime.start.p0(i64 5, ptr %26) #8
  invoke void @_ZN5boost17value_initializedIN7DynexCN23tx_verification_contextEEC2Ev(ptr noundef nonnull align 1 dereferenceable(5) %26)
          to label %101 unwind label %134

101:                                              ; preds = %100
  %102 = invoke noundef nonnull align 1 dereferenceable(5) ptr @_ZN5boost17value_initializedIN7DynexCN23tx_verification_contextEEcvRS2_Ev(ptr noundef nonnull align 1 dereferenceable(5) %26)
          to label %103 unwind label %134

103:                                              ; preds = %101
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %25, ptr align 1 %102, i64 5, i1 false), !tbaa.struct !103
  call void @llvm.lifetime.end.p0(i64 5, ptr %26) #8
  %104 = getelementptr inbounds %"class.DynexCN::tx_memory_pool", ptr %39, i32 0, i32 2
  %105 = load ptr, ptr %104, align 8, !tbaa !105
  %106 = load ptr, ptr %23, align 8, !tbaa !5
  %107 = getelementptr inbounds %"struct.DynexCN::tx_memory_pool::TransactionDetails", ptr %106, i32 0, i32 2
  %108 = load ptr, ptr %23, align 8, !tbaa !5
  %109 = getelementptr inbounds %"struct.DynexCN::tx_memory_pool::TransactionDetails", ptr %108, i32 0, i32 3
  %110 = load i64, ptr %109, align 8, !tbaa !102
  %111 = getelementptr inbounds %"class.DynexCN::tx_memory_pool", ptr %39, i32 0, i32 2
  %112 = load ptr, ptr %111, align 8, !tbaa !105
  %113 = load ptr, ptr %112, align 8, !tbaa !106
  %114 = getelementptr inbounds ptr, ptr %113, i64 49
  %115 = load ptr, ptr %114, align 8
  %116 = invoke noundef i32 %115(ptr noundef nonnull align 8 dereferenceable(8) %112)
          to label %117 unwind label %138

117:                                              ; preds = %103
  %118 = load ptr, ptr %105, align 8, !tbaa !106
  %119 = getelementptr inbounds ptr, ptr %118, i64 48
  %120 = load ptr, ptr %119, align 8
  %121 = invoke noundef zeroext i1 %120(ptr noundef nonnull align 8 dereferenceable(8) %105, ptr noundef nonnull align 8 dereferenceable(112) %107, i64 noundef %110, ptr noundef nonnull align 1 dereferenceable(5) %25, i32 noundef %116)
          to label %122 unwind label %138

122:                                              ; preds = %117
  br i1 %121, label %151, label %123

123:                                              ; preds = %122
  call void @llvm.lifetime.start.p0(i64 432, ptr %27) #8
  %124 = getelementptr inbounds %"class.DynexCN::tx_memory_pool", ptr %39, i32 0, i32 13
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.Logging::LoggerMessage") align 8 %27, ptr noundef nonnull align 8 dereferenceable(40) %124, i32 noundef 4, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging7DEFAULTB5cxx11E)
          to label %125 unwind label %142

125:                                              ; preds = %123
  %126 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA13_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %27, ptr noundef nonnull align 1 dereferenceable(13) @.str.36)
          to label %127 unwind label %146

127:                                              ; preds = %125
  %128 = load ptr, ptr %23, align 8, !tbaa !5
  %129 = getelementptr inbounds %"struct.DynexCN::tx_memory_pool::TransactionDetails", ptr %128, i32 0, i32 1
  %130 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEN6Crypto4HashEEOT_S5_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %126, ptr noundef nonnull align 1 dereferenceable(32) %129)
          to label %131 unwind label %146

131:                                              ; preds = %127
  %132 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA57_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %130, ptr noundef nonnull align 1 dereferenceable(57) @.str.37)
          to label %133 unwind label %146

133:                                              ; preds = %131
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %27) #8
  call void @llvm.lifetime.end.p0(i64 432, ptr %27) #8
  store i32 4, ptr %22, align 4
  br label %293

134:                                              ; preds = %101, %100
  %135 = landingpad { ptr, i32 }
          cleanup
  %136 = extractvalue { ptr, i32 } %135, 0
  store ptr %136, ptr %17, align 8
  %137 = extractvalue { ptr, i32 } %135, 1
  store i32 %137, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 5, ptr %26) #8
  br label %301

138:                                              ; preds = %117, %103
  %139 = landingpad { ptr, i32 }
          cleanup
  %140 = extractvalue { ptr, i32 } %139, 0
  store ptr %140, ptr %17, align 8
  %141 = extractvalue { ptr, i32 } %139, 1
  store i32 %141, ptr %18, align 4
  br label %301

142:                                              ; preds = %123
  %143 = landingpad { ptr, i32 }
          cleanup
  %144 = extractvalue { ptr, i32 } %143, 0
  store ptr %144, ptr %17, align 8
  %145 = extractvalue { ptr, i32 } %143, 1
  store i32 %145, ptr %18, align 4
  br label %150

146:                                              ; preds = %131, %127, %125
  %147 = landingpad { ptr, i32 }
          cleanup
  %148 = extractvalue { ptr, i32 } %147, 0
  store ptr %148, ptr %17, align 8
  %149 = extractvalue { ptr, i32 } %147, 1
  store i32 %149, ptr %18, align 4
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %27) #8
  br label %150

150:                                              ; preds = %146, %142
  call void @llvm.lifetime.end.p0(i64 432, ptr %27) #8
  br label %301

151:                                              ; preds = %122
  call void @llvm.lifetime.start.p0(i64 72, ptr %28) #8
  %152 = load ptr, ptr %23, align 8, !tbaa !5
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %28, ptr align 8 %152, i64 72, i1 false), !tbaa.struct !108
  call void @llvm.lifetime.start.p0(i64 1, ptr %29) #8
  store i8 0, ptr %29, align 1, !tbaa !104
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #8
  %153 = load ptr, ptr %23, align 8, !tbaa !5
  %154 = getelementptr inbounds %"struct.DynexCN::tx_memory_pool::TransactionDetails", ptr %153, i32 0, i32 1
  %155 = invoke ptr @_ZNSt13unordered_setIN6Crypto4HashESt4hashIS1_ESt8equal_toIS1_ESaIS1_EE4findERKS1_(ptr noundef nonnull align 8 dereferenceable(56) @_ZN7DynexCN24m_validated_transactionsE, ptr noundef nonnull align 1 dereferenceable(32) %154)
          to label %156 unwind label %172

156:                                              ; preds = %151
  %157 = getelementptr inbounds %"struct.std::__detail::_Node_iterator.113", ptr %30, i32 0, i32 0
  %158 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base.114", ptr %157, i32 0, i32 0
  store ptr %155, ptr %158, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #8
  %159 = call ptr @_ZNSt13unordered_setIN6Crypto4HashESt4hashIS1_ESt8equal_toIS1_ESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(56) @_ZN7DynexCN24m_validated_transactionsE) #8
  %160 = getelementptr inbounds %"struct.std::__detail::_Node_iterator.113", ptr %31, i32 0, i32 0
  %161 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base.114", ptr %160, i32 0, i32 0
  store ptr %159, ptr %161, align 8
  %162 = call noundef zeroext i1 @_ZNSt8__detailneERKNS_19_Node_iterator_baseIN6Crypto4HashELb1EEES5_(ptr noundef nonnull align 8 dereferenceable(8) %30, ptr noundef nonnull align 8 dereferenceable(8) %31) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #8
  br i1 %162, label %163, label %185

163:                                              ; preds = %156
  store i8 1, ptr %29, align 1, !tbaa !104
  call void @llvm.lifetime.start.p0(i64 432, ptr %32) #8
  %164 = getelementptr inbounds %"class.DynexCN::tx_memory_pool", ptr %39, i32 0, i32 13
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.Logging::LoggerMessage") align 8 %32, ptr noundef nonnull align 8 dereferenceable(40) %164, i32 noundef 4, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging7DEFAULTB5cxx11E)
          to label %165 unwind label %176

165:                                              ; preds = %163
  %166 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA44_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %32, ptr noundef nonnull align 1 dereferenceable(44) @.str.38)
          to label %167 unwind label %180

167:                                              ; preds = %165
  %168 = load ptr, ptr %23, align 8, !tbaa !5
  %169 = getelementptr inbounds %"struct.DynexCN::tx_memory_pool::TransactionDetails", ptr %168, i32 0, i32 1
  %170 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEN6Crypto4HashEEOT_S5_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %166, ptr noundef nonnull align 1 dereferenceable(32) %169)
          to label %171 unwind label %180

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

172:                                              ; preds = %151
  %173 = landingpad { ptr, i32 }
          cleanup
  %174 = extractvalue { ptr, i32 } %173, 0
  store ptr %174, ptr %17, align 8
  %175 = extractvalue { ptr, i32 } %173, 1
  store i32 %175, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #8
  br label %300

176:                                              ; preds = %163
  %177 = landingpad { ptr, i32 }
          cleanup
  %178 = extractvalue { ptr, i32 } %177, 0
  store ptr %178, ptr %17, align 8
  %179 = extractvalue { ptr, i32 } %177, 1
  store i32 %179, ptr %18, align 4
  br label %184

180:                                              ; preds = %167, %165
  %181 = landingpad { ptr, i32 }
          cleanup
  %182 = extractvalue { ptr, i32 } %181, 0
  store ptr %182, ptr %17, align 8
  %183 = extractvalue { ptr, i32 } %181, 1
  store i32 %183, ptr %18, align 4
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %32) #8
  br label %184

184:                                              ; preds = %180, %176
  call void @llvm.lifetime.end.p0(i64 432, ptr %32) #8
  br label %300

185:                                              ; preds = %156
  %186 = load ptr, ptr %23, align 8, !tbaa !5
  %187 = getelementptr inbounds %"struct.DynexCN::tx_memory_pool::TransactionDetails", ptr %186, i32 0, i32 2
  %188 = invoke noundef zeroext i1 @_ZNK7DynexCN14tx_memory_pool26is_transaction_ready_to_goERKNS_11TransactionERNS0_20TransactionCheckInfoE(ptr noundef nonnull align 8 dereferenceable(688) %39, ptr noundef nonnull align 8 dereferenceable(112) %187, ptr noundef nonnull align 4 dereferenceable(72) %28)
          to label %189 unwind label %207

189:                                              ; preds = %185
  br i1 %188, label %190, label %220

190:                                              ; preds = %189
  store i8 1, ptr %29, align 1, !tbaa !104
  %191 = load ptr, ptr %23, align 8, !tbaa !5
  %192 = getelementptr inbounds %"struct.DynexCN::tx_memory_pool::TransactionDetails", ptr %191, i32 0, i32 1
  %193 = invoke { ptr, i8 } @_ZNSt13unordered_setIN6Crypto4HashESt4hashIS1_ESt8equal_toIS1_ESaIS1_EE6insertERKS1_(ptr noundef nonnull align 8 dereferenceable(56) @_ZN7DynexCN24m_validated_transactionsE, ptr noundef nonnull align 1 dereferenceable(32) %192)
          to label %194 unwind label %207

194:                                              ; preds = %190
  %195 = getelementptr inbounds { ptr, i8 }, ptr %33, i32 0, i32 0
  %196 = extractvalue { ptr, i8 } %193, 0
  store ptr %196, ptr %195, align 8
  %197 = getelementptr inbounds { ptr, i8 }, ptr %33, i32 0, i32 1
  %198 = extractvalue { ptr, i8 } %193, 1
  store i8 %198, ptr %197, align 8
  call void @llvm.lifetime.start.p0(i64 432, ptr %34) #8
  %199 = getelementptr inbounds %"class.DynexCN::tx_memory_pool", ptr %39, i32 0, i32 13
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.Logging::LoggerMessage") align 8 %34, ptr noundef nonnull align 8 dereferenceable(40) %199, i32 noundef 4, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging7DEFAULTB5cxx11E)
          to label %200 unwind label %211

200:                                              ; preds = %194
  %201 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA42_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %34, ptr noundef nonnull align 1 dereferenceable(42) @.str.39)
          to label %202 unwind label %215

202:                                              ; preds = %200
  %203 = load ptr, ptr %23, align 8, !tbaa !5
  %204 = getelementptr inbounds %"struct.DynexCN::tx_memory_pool::TransactionDetails", ptr %203, i32 0, i32 1
  %205 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEN6Crypto4HashEEOT_S5_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %201, ptr noundef nonnull align 1 dereferenceable(32) %204)
          to label %206 unwind label %215

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

207:                                              ; preds = %233, %221, %190, %185
  %208 = landingpad { ptr, i32 }
          cleanup
  %209 = extractvalue { ptr, i32 } %208, 0
  store ptr %209, ptr %17, align 8
  %210 = extractvalue { ptr, i32 } %208, 1
  store i32 %210, ptr %18, align 4
  br label %300

211:                                              ; preds = %194
  %212 = landingpad { ptr, i32 }
          cleanup
  %213 = extractvalue { ptr, i32 } %212, 0
  store ptr %213, ptr %17, align 8
  %214 = extractvalue { ptr, i32 } %212, 1
  store i32 %214, ptr %18, align 4
  br label %219

215:                                              ; preds = %202, %200
  %216 = landingpad { ptr, i32 }
          cleanup
  %217 = extractvalue { ptr, i32 } %216, 0
  store ptr %217, ptr %17, align 8
  %218 = extractvalue { ptr, i32 } %216, 1
  store i32 %218, ptr %18, align 4
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %34) #8
  br label %219

219:                                              ; preds = %215, %211
  call void @llvm.lifetime.end.p0(i64 432, ptr %34) #8
  br label %300

220:                                              ; preds = %206, %189
  br label %221

221:                                              ; preds = %220, %171
  %222 = getelementptr inbounds %"class.DynexCN::tx_memory_pool", ptr %39, i32 0, i32 11
  %223 = load ptr, ptr %222, align 8, !tbaa !78
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %35, ptr align 8 %20, i64 8, i1 false)
  %224 = getelementptr inbounds %class.anon, ptr %36, i32 0, i32 0
  store ptr %28, ptr %224, align 8, !tbaa !5
  %225 = getelementptr inbounds %"class.boost::multi_index::detail::bidir_node_iterator", ptr %35, i32 0, i32 0
  %226 = load ptr, ptr %225, align 8
  %227 = getelementptr inbounds %class.anon, ptr %36, i32 0, i32 0
  %228 = load ptr, ptr %227, align 8
  %229 = invoke noundef zeroext i1 @"_ZN5boost11multi_index6detail18ordered_index_implINS0_8identityIN7DynexCN14tx_memory_pool18TransactionDetailsEEENS5_29TransactionPriorityComparatorENS1_9nth_layerILi2ES6_NS0_10indexed_byINS0_13hashed_uniqueINS0_6memberIS6_N6Crypto4HashEXadL_ZNS6_2idEEEEEN4mpl_2naESH_SH_EENS0_18ordered_non_uniqueIS7_S8_SH_EESH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_EESaIS6_EEENS_3mpl7vector0ISH_EENS1_22ordered_non_unique_tagENS1_19null_augment_policyEE6modifyIZNS5_19fill_block_templateERNS4_5BlockEmmmRmSX_E3$_0EEbNS1_19bidir_node_iteratorINS1_18ordered_index_nodeISS_NS1_15index_node_baseIS6_SM_EEEEEET_"(ptr noundef nonnull align 1 dereferenceable(2) %223, ptr %226, ptr %228)
          to label %230 unwind label %207

230:                                              ; preds = %221
  %231 = load i8, ptr %29, align 1, !tbaa !104, !range !111, !noundef !112
  %232 = trunc i8 %231 to i1
  br i1 %232, label %233, label %272

233:                                              ; preds = %230
  %234 = load ptr, ptr %23, align 8, !tbaa !5
  %235 = getelementptr inbounds %"struct.DynexCN::tx_memory_pool::TransactionDetails", ptr %234, i32 0, i32 1
  %236 = load ptr, ptr %23, align 8, !tbaa !5
  %237 = getelementptr inbounds %"struct.DynexCN::tx_memory_pool::TransactionDetails", ptr %236, i32 0, i32 2
  %238 = invoke noundef zeroext i1 @_ZN7DynexCN13BlockTemplate14addTransactionERKN6Crypto4HashERKNS_11TransactionE(ptr noundef nonnull align 8 dereferenceable(128) %19, ptr noundef nonnull align 1 dereferenceable(32) %235, ptr noundef nonnull align 8 dereferenceable(112) %237)
          to label %239 unwind label %207

239:                                              ; preds = %233
  br i1 %238, label %240, label %272

240:                                              ; preds = %239
  %241 = load ptr, ptr %23, align 8, !tbaa !5
  %242 = getelementptr inbounds %"struct.DynexCN::tx_memory_pool::TransactionDetails", ptr %241, i32 0, i32 3
  %243 = load i64, ptr %242, align 8, !tbaa !102
  %244 = load ptr, ptr %13, align 8, !tbaa !5
  %245 = load i64, ptr %244, align 8, !tbaa !9
  %246 = add i64 %245, %243
  store i64 %246, ptr %244, align 8, !tbaa !9
  %247 = load ptr, ptr %23, align 8, !tbaa !5
  %248 = getelementptr inbounds %"struct.DynexCN::tx_memory_pool::TransactionDetails", ptr %247, i32 0, i32 4
  %249 = load i64, ptr %248, align 8, !tbaa !79
  %250 = load ptr, ptr %14, align 8, !tbaa !5
  %251 = load i64, ptr %250, align 8, !tbaa !9
  %252 = add i64 %251, %249
  store i64 %252, ptr %250, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 432, ptr %37) #8
  %253 = getelementptr inbounds %"class.DynexCN::tx_memory_pool", ptr %39, i32 0, i32 13
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.Logging::LoggerMessage") align 8 %37, ptr noundef nonnull align 8 dereferenceable(40) %253, i32 noundef 4, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging7DEFAULTB5cxx11E)
          to label %254 unwind label %263

254:                                              ; preds = %240
  %255 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA13_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %37, ptr noundef nonnull align 1 dereferenceable(13) @.str.36)
          to label %256 unwind label %267

256:                                              ; preds = %254
  %257 = load ptr, ptr %23, align 8, !tbaa !5
  %258 = getelementptr inbounds %"struct.DynexCN::tx_memory_pool::TransactionDetails", ptr %257, i32 0, i32 1
  %259 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEN6Crypto4HashEEOT_S5_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %255, ptr noundef nonnull align 1 dereferenceable(32) %258)
          to label %260 unwind label %267

260:                                              ; preds = %256
  %261 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA28_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %259, ptr noundef nonnull align 1 dereferenceable(28) @.str.40)
          to label %262 unwind label %267

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

263:                                              ; preds = %240
  %264 = landingpad { ptr, i32 }
          cleanup
  %265 = extractvalue { ptr, i32 } %264, 0
  store ptr %265, ptr %17, align 8
  %266 = extractvalue { ptr, i32 } %264, 1
  store i32 %266, ptr %18, align 4
  br label %271

267:                                              ; preds = %260, %256, %254
  %268 = landingpad { ptr, i32 }
          cleanup
  %269 = extractvalue { ptr, i32 } %268, 0
  store ptr %269, ptr %17, align 8
  %270 = extractvalue { ptr, i32 } %268, 1
  store i32 %270, ptr %18, align 4
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %37) #8
  br label %271

271:                                              ; preds = %267, %263
  call void @llvm.lifetime.end.p0(i64 432, ptr %37) #8
  br label %300

272:                                              ; preds = %239, %230
  call void @llvm.lifetime.start.p0(i64 432, ptr %38) #8
  %273 = getelementptr inbounds %"class.DynexCN::tx_memory_pool", ptr %39, i32 0, i32 13
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.Logging::LoggerMessage") align 8 %38, ptr noundef nonnull align 8 dereferenceable(40) %273, i32 noundef 4, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging7DEFAULTB5cxx11E)
          to label %274 unwind label %283

274:                                              ; preds = %272
  %275 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA13_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %38, ptr noundef nonnull align 1 dereferenceable(13) @.str.36)
          to label %276 unwind label %287

276:                                              ; preds = %274
  %277 = load ptr, ptr %23, align 8, !tbaa !5
  %278 = getelementptr inbounds %"struct.DynexCN::tx_memory_pool::TransactionDetails", ptr %277, i32 0, i32 1
  %279 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEN6Crypto4HashEEOT_S5_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %275, ptr noundef nonnull align 1 dereferenceable(32) %278)
          to label %280 unwind label %287

280:                                              ; preds = %276
  %281 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA40_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %279, ptr noundef nonnull align 1 dereferenceable(40) @.str.41)
          to label %282 unwind label %287

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

283:                                              ; preds = %272
  %284 = landingpad { ptr, i32 }
          cleanup
  %285 = extractvalue { ptr, i32 } %284, 0
  store ptr %285, ptr %17, align 8
  %286 = extractvalue { ptr, i32 } %284, 1
  store i32 %286, ptr %18, align 4
  br label %291

287:                                              ; preds = %280, %276, %274
  %288 = landingpad { ptr, i32 }
          cleanup
  %289 = extractvalue { ptr, i32 } %288, 0
  store ptr %289, ptr %17, align 8
  %290 = extractvalue { ptr, i32 } %288, 1
  store i32 %290, ptr %18, align 4
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %38) #8
  br label %291

291:                                              ; preds = %287, %283
  call void @llvm.lifetime.end.p0(i64 432, ptr %38) #8
  br label %300

292:                                              ; preds = %282, %262
  call void @llvm.lifetime.end.p0(i64 1, ptr %29) #8
  call void @llvm.lifetime.end.p0(i64 72, ptr %28) #8
  store i32 0, ptr %22, align 4
  br label %293

293:                                              ; preds = %292, %133
  call void @llvm.lifetime.end.p0(i64 5, ptr %25) #8
  br label %294

294:                                              ; preds = %293, %95
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #8
  %295 = load i32, ptr %22, align 4
  switch i32 %295, label %326 [
    i32 0, label %296
    i32 4, label %297
  ]

296:                                              ; preds = %294
  br label %297

297:                                              ; preds = %296, %294
  %298 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5boost11multi_index6detail19bidir_node_iteratorINS1_18ordered_index_nodeINS1_19null_augment_policyENS1_15index_node_baseIN7DynexCN14tx_memory_pool18TransactionDetailsESaIS8_EEEEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %20)
          to label %299 unwind label %303

299:                                              ; preds = %297
  br label %58, !llvm.loop !113

300:                                              ; preds = %291, %271, %219, %207, %184, %172
  call void @llvm.lifetime.end.p0(i64 1, ptr %29) #8
  call void @llvm.lifetime.end.p0(i64 72, ptr %28) #8
  br label %301

301:                                              ; preds = %300, %150, %138, %134
  call void @llvm.lifetime.end.p0(i64 5, ptr %25) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #8
  br label %302

302:                                              ; preds = %301, %96
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #8
  br label %307

303:                                              ; preds = %297
  %304 = landingpad { ptr, i32 }
          cleanup
  %305 = extractvalue { ptr, i32 } %304, 0
  store ptr %305, ptr %17, align 8
  %306 = extractvalue { ptr, i32 } %304, 1
  store i32 %306, ptr %18, align 4
  br label %307

307:                                              ; preds = %303, %302, %70
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #8
  br label %319

308:                                              ; preds = %65
  %309 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK7DynexCN13BlockTemplate15getTransactionsEv(ptr noundef nonnull align 8 dereferenceable(128) %19)
          to label %310 unwind label %315

310:                                              ; preds = %308
  %311 = load ptr, ptr %9, align 8, !tbaa !5
  %312 = getelementptr inbounds %"struct.DynexCN::Block", ptr %311, i32 0, i32 3
  %313 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIN6Crypto4HashESaIS1_EEaSERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %312, ptr noundef nonnull align 8 dereferenceable(24) %309)
          to label %314 unwind label %315

314:                                              ; preds = %310
  store i32 1, ptr %22, align 4
  call void @_ZN7DynexCN13BlockTemplateD2Ev(ptr noundef nonnull align 8 dereferenceable(128) %19) #8
  call void @llvm.lifetime.end.p0(i64 128, ptr %19) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #8
  call void @_ZNSt10lock_guardISt15recursive_mutexED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %15) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #8
  ret i1 true

315:                                              ; preds = %310, %308
  %316 = landingpad { ptr, i32 }
          cleanup
  %317 = extractvalue { ptr, i32 } %316, 0
  store ptr %317, ptr %17, align 8
  %318 = extractvalue { ptr, i32 } %316, 1
  store i32 %318, ptr %18, align 4
  br label %319

319:                                              ; preds = %315, %307
  call void @_ZN7DynexCN13BlockTemplateD2Ev(ptr noundef nonnull align 8 dereferenceable(128) %19) #8
  call void @llvm.lifetime.end.p0(i64 128, ptr %19) #8
  br label %320

320:                                              ; preds = %319, %66
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #8
  call void @_ZNSt10lock_guardISt15recursive_mutexED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %15) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #8
  br label %321

321:                                              ; preds = %320
  %322 = load ptr, ptr %17, align 8
  %323 = load i32, ptr %18, align 4
  %324 = insertvalue { ptr, i32 } poison, ptr %322, 0
  %325 = insertvalue { ptr, i32 } %324, i32 %323, 1
  resume { ptr, i32 } %325

326:                                              ; preds = %294
  unreachable
}

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 1 dereferenceable(5) ptr @_ZN5boost17value_initializedIN7DynexCN23tx_verification_contextEEcvRS2_Ev(ptr noundef nonnull align 1 dereferenceable(5)) #4 align 2

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

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

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

; Function Attrs: mustprogress uwtable
declare hidden noundef zeroext i1 @"_ZN5boost11multi_index6detail18ordered_index_implINS0_8identityIN7DynexCN14tx_memory_pool18TransactionDetailsEEENS5_29TransactionPriorityComparatorENS1_9nth_layerILi2ES6_NS0_10indexed_byINS0_13hashed_uniqueINS0_6memberIS6_N6Crypto4HashEXadL_ZNS6_2idEEEEEN4mpl_2naESH_SH_EENS0_18ordered_non_uniqueIS7_S8_SH_EESH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_EESaIS6_EEENS_3mpl7vector0ISH_EENS1_22ordered_non_unique_tagENS1_19null_augment_policyEE6modifyIZNS5_19fill_block_templateERNS4_5BlockEmmmRmSX_E3$_0EEbNS1_19bidir_node_iteratorINS1_18ordered_index_nodeISS_NS1_15index_node_baseIS6_SM_EEEEEET_"(ptr noundef nonnull align 1 dereferenceable(2), ptr, ptr) #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN7DynexCN13BlockTemplate14addTransactionERKN6Crypto4HashERKNS_11TransactionE(ptr noundef nonnull align 8 dereferenceable(128), ptr noundef nonnull align 1 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(112)) #4 align 2

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

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

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"long", !7, i64 0}
!11 = !{!12, !6, i64 64}
!12 = !{!"_ZTSN7DynexCN14tx_memory_poolE", !13, i64 0, !6, i64 64, !6, i64 72, !20, i64 80, !22, i64 104, !24, i64 144, !29, i64 200, !37, i64 248, !6, i64 280, !6, i64 288, !39, i64 296, !6, i64 376, !54, i64 384, !56, i64 440, !57, i64 480, !66, i64 576, !72, i64 632}
!13 = !{!"_ZTSN5Tools15ObserverManagerIN7DynexCN15ITxPoolObserverEEE", !14, i64 0, !18, i64 24}
!14 = !{!"_ZTSSt6vectorIPN7DynexCN15ITxPoolObserverESaIS2_EE", !15, i64 0}
!15 = !{!"_ZTSSt12_Vector_baseIPN7DynexCN15ITxPoolObserverESaIS2_EE", !16, i64 0}
!16 = !{!"_ZTSNSt12_Vector_baseIPN7DynexCN15ITxPoolObserverESaIS2_EE12_Vector_implE", !17, i64 0}
!17 = !{!"_ZTSNSt12_Vector_baseIPN7DynexCN15ITxPoolObserverESaIS2_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!18 = !{!"_ZTSSt5mutex", !19, i64 0}
!19 = !{!"_ZTSSt12__mutex_base", !7, i64 0}
!20 = !{!"_ZTSN7DynexCN18OnceInTimeIntervalE", !10, i64 0, !21, i64 8, !6, i64 16}
!21 = !{!"int", !7, i64 0}
!22 = !{!"_ZTSSt15recursive_mutex", !23, i64 0}
!23 = !{!"_ZTSSt22__recursive_mutex_base", !7, i64 0}
!24 = !{!"_ZTSSt13unordered_mapIN6Crypto8KeyImageESt13unordered_setINS0_4HashESt4hashIS3_ESt8equal_toIS3_ESaIS3_EES4_IS1_ES6_IS1_ESaISt4pairIKS1_S9_EEE", !25, i64 0}
!25 = !{!"_ZTSSt10_HashtableIN6Crypto8KeyImageESt4pairIKS1_St13unordered_setINS0_4HashESt4hashIS5_ESt8equal_toIS5_ESaIS5_EEESaISC_ENSt8__detail10_Select1stES8_IS1_ES6_IS1_ENSE_18_Mod_range_hashingENSE_20_Default_ranged_hashENSE_20_Prime_rehash_policyENSE_17_Hashtable_traitsILb1ELb0ELb1EEEE", !6, i64 0, !10, i64 8, !26, i64 16, !10, i64 24, !27, i64 32, !6, i64 48}
!26 = !{!"_ZTSNSt8__detail15_Hash_node_baseE", !6, i64 0}
!27 = !{!"_ZTSNSt8__detail20_Prime_rehash_policyE", !28, i64 0, !10, i64 8}
!28 = !{!"float", !7, i64 0}
!29 = !{!"_ZTSSt3setISt4pairImmESt4lessIS1_ESaIS1_EE", !30, i64 0}
!30 = !{!"_ZTSSt8_Rb_treeISt4pairImmES1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE", !31, i64 0}
!31 = !{!"_ZTSNSt8_Rb_treeISt4pairImmES1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE13_Rb_tree_implIS5_Lb1EEE", !32, i64 0, !34, i64 8}
!32 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessISt4pairImmEEE", !33, i64 0}
!33 = !{!"_ZTSSt4lessISt4pairImmEE"}
!34 = !{!"_ZTSSt15_Rb_tree_header", !35, i64 0, !10, i64 32}
!35 = !{!"_ZTSSt18_Rb_tree_node_base", !36, i64 0, !6, i64 8, !6, i64 16, !6, i64 24}
!36 = !{!"_ZTSSt14_Rb_tree_color", !7, i64 0}
!37 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !38, i64 0, !10, i64 8, !7, i64 16}
!38 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!39 = !{!"_ZTSN5boost11multi_index21multi_index_containerIN7DynexCN14tx_memory_pool18TransactionDetailsENS0_10indexed_byINS0_13hashed_uniqueINS0_6memberIS4_N6Crypto4HashEXadL_ZNS4_2idEEEEEN4mpl_2naESC_SC_EENS0_18ordered_non_uniqueINS0_8identityIS4_EENS3_29TransactionPriorityComparatorESC_EESC_SC_SC_SC_SC_SC_SC_SC_SC_SC_SC_SC_SC_SC_SC_SC_SC_SC_EESaIS4_EEE", !40, i64 0, !42, i64 8, !43, i64 16, !10, i64 72}
!40 = !{!"_ZTSN5boost16base_from_memberISaINS_11multi_index6detail17hashed_index_nodeINS2_18ordered_index_nodeINS2_19null_augment_policyENS2_15index_node_baseIN7DynexCN14tx_memory_pool18TransactionDetailsESaIS9_EEEEEEEELi0EEE", !41, i64 0}
!41 = !{!"_ZTSSaIN5boost11multi_index6detail17hashed_index_nodeINS1_18ordered_index_nodeINS1_19null_augment_policyENS1_15index_node_baseIN7DynexCN14tx_memory_pool18TransactionDetailsESaIS8_EEEEEEEE"}
!42 = !{!"_ZTSN5boost11multi_index6detail13header_holderIPNS1_17hashed_index_nodeINS1_18ordered_index_nodeINS1_19null_augment_policyENS1_15index_node_baseIN7DynexCN14tx_memory_pool18TransactionDetailsESaIS9_EEEEEEENS0_21multi_index_containerIS9_NS0_10indexed_byINS0_13hashed_uniqueINS0_6memberIS9_N6Crypto4HashEXadL_ZNS9_2idEEEEEN4mpl_2naESN_SN_EENS0_18ordered_non_uniqueINS0_8identityIS9_EENS8_29TransactionPriorityComparatorESN_EESN_SN_SN_SN_SN_SN_SN_SN_SN_SN_SN_SN_SN_SN_SN_SN_SN_SN_EESA_EEEE", !6, i64 0}
!43 = !{!"_ZTSN5boost11multi_index6detail12hashed_indexINS0_6memberIN7DynexCN14tx_memory_pool18TransactionDetailsEN6Crypto4HashEXadL_ZNS6_2idEEEEENS_4hashIS8_EESt8equal_toIS8_ENS1_9nth_layerILi1ES6_NS0_10indexed_byINS0_13hashed_uniqueIS9_N4mpl_2naESI_SI_EENS0_18ordered_non_uniqueINS0_8identityIS6_EENS5_29TransactionPriorityComparatorESI_EESI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_EESaIS6_EEENS_3mpl7vector0ISI_EENS1_17hashed_unique_tagEEE", !44, i64 0, !48, i64 2, !49, i64 3, !50, i64 4, !51, i64 8, !28, i64 40, !10, i64 48}
!44 = !{!"_ZTSN5boost11multi_index6detail13ordered_indexINS0_8identityIN7DynexCN14tx_memory_pool18TransactionDetailsEEENS5_29TransactionPriorityComparatorENS1_9nth_layerILi2ES6_NS0_10indexed_byINS0_13hashed_uniqueINS0_6memberIS6_N6Crypto4HashEXadL_ZNS6_2idEEEEEN4mpl_2naESH_SH_EENS0_18ordered_non_uniqueIS7_S8_SH_EESH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_EESaIS6_EEENS_3mpl7vector0ISH_EENS1_22ordered_non_unique_tagENS1_19null_augment_policyEEE", !45, i64 0}
!45 = !{!"_ZTSN5boost11multi_index6detail18ordered_index_implINS0_8identityIN7DynexCN14tx_memory_pool18TransactionDetailsEEENS5_29TransactionPriorityComparatorENS1_9nth_layerILi2ES6_NS0_10indexed_byINS0_13hashed_uniqueINS0_6memberIS6_N6Crypto4HashEXadL_ZNS6_2idEEEEEN4mpl_2naESH_SH_EENS0_18ordered_non_uniqueIS7_S8_SH_EESH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_EESaIS6_EEENS_3mpl7vector0ISH_EENS1_22ordered_non_unique_tagENS1_19null_augment_policyEEE", !46, i64 0, !47, i64 1}
!46 = !{!"_ZTSN5boost11multi_index8identityIN7DynexCN14tx_memory_pool18TransactionDetailsEEE"}
!47 = !{!"_ZTSN7DynexCN14tx_memory_pool29TransactionPriorityComparatorE"}
!48 = !{!"_ZTSN5boost11multi_index6memberIN7DynexCN14tx_memory_pool18TransactionDetailsEN6Crypto4HashEXadL_ZNS4_2idEEEEE"}
!49 = !{!"_ZTSN5boost4hashIN6Crypto4HashEEE"}
!50 = !{!"_ZTSSt8equal_toIN6Crypto4HashEE"}
!51 = !{!"_ZTSN5boost11multi_index6detail12bucket_arrayISaIN7DynexCN14tx_memory_pool18TransactionDetailsEEEE", !10, i64 0, !52, i64 8}
!52 = !{!"_ZTSN5boost11multi_index6detail10auto_spaceINS1_27hashed_index_base_node_implISaIcEEESaIN7DynexCN14tx_memory_pool18TransactionDetailsEEEE", !53, i64 0, !10, i64 8, !6, i64 16}
!53 = !{!"_ZTSSaIN5boost11multi_index6detail27hashed_index_base_node_implISaIcEEEE"}
!54 = !{!"_ZTSSt13unordered_mapIN6Crypto4HashEmSt4hashIS1_ESt8equal_toIS1_ESaISt4pairIKS1_mEEE", !55, i64 0}
!55 = !{!"_ZTSSt10_HashtableIN6Crypto4HashESt4pairIKS1_mESaIS4_ENSt8__detail10_Select1stESt8equal_toIS1_ESt4hashIS1_ENS6_18_Mod_range_hashingENS6_20_Default_ranged_hashENS6_20_Prime_rehash_policyENS6_17_Hashtable_traitsILb1ELb0ELb1EEEE", !6, i64 0, !10, i64 8, !26, i64 16, !10, i64 24, !27, i64 32, !6, i64 48}
!56 = !{!"_ZTSN7Logging9LoggerRefE", !6, i64 0, !37, i64 8}
!57 = !{!"_ZTSN7DynexCN14PaymentIdIndexE", !58, i64 0, !65, i64 88}
!58 = !{!"_ZTSSt18unordered_multimapIN6Crypto4HashES1_St8functionIFmRKS1_EESt8equal_toIS1_ESaISt4pairIS3_S1_EEE", !59, i64 0}
!59 = !{!"_ZTSSt10_HashtableIN6Crypto4HashESt4pairIKS1_S1_ESaIS4_ENSt8__detail10_Select1stESt8equal_toIS1_ESt8functionIFmRS3_EENS6_18_Mod_range_hashingENS6_20_Default_ranged_hashENS6_20_Prime_rehash_policyENS6_17_Hashtable_traitsILb1ELb0ELb0EEEE", !60, i64 0, !6, i64 32, !10, i64 40, !26, i64 48, !10, i64 56, !27, i64 64, !6, i64 80}
!60 = !{!"_ZTSNSt8__detail15_Hashtable_baseIN6Crypto4HashESt4pairIKS2_S2_ENS_10_Select1stESt8equal_toIS2_ESt8functionIFmRS4_EENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb1ELb0ELb0EEEEE", !61, i64 0}
!61 = !{!"_ZTSNSt8__detail15_Hash_code_baseIN6Crypto4HashESt4pairIKS2_S2_ENS_10_Select1stESt8functionIFmRS4_EENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb1EEE", !62, i64 0}
!62 = !{!"_ZTSNSt8__detail21_Hashtable_ebo_helperILi1ESt8functionIFmRKN6Crypto4HashEEELb0EEE", !63, i64 0}
!63 = !{!"_ZTSSt8functionIFmRKN6Crypto4HashEEE", !64, i64 0, !6, i64 24}
!64 = !{!"_ZTSSt14_Function_base", !7, i64 0, !6, i64 16}
!65 = !{!"bool", !7, i64 0}
!66 = !{!"_ZTSN7DynexCN12AddressIndexE", !67, i64 0, !65, i64 48}
!67 = !{!"_ZTSSt8multimapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6Crypto4HashESt4lessIS5_ESaISt4pairIKS5_S7_EEE", !68, i64 0}
!68 = !{!"_ZTSSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_N6Crypto4HashEESt10_Select1stISA_ESt4lessIS5_ESaISA_EE", !69, i64 0}
!69 = !{!"_ZTSNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_N6Crypto4HashEESt10_Select1stISA_ESt4lessIS5_ESaISA_EE13_Rb_tree_implISE_Lb1EEE", !70, i64 0, !34, i64 8}
!70 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE", !71, i64 0}
!71 = !{!"_ZTSSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE"}
!72 = !{!"_ZTSN7DynexCN26TimestampTransactionsIndexE", !73, i64 0, !65, i64 48}
!73 = !{!"_ZTSSt8multimapImN6Crypto4HashESt4lessImESaISt4pairIKmS1_EEE", !74, i64 0}
!74 = !{!"_ZTSSt8_Rb_treeImSt4pairIKmN6Crypto4HashEESt10_Select1stIS4_ESt4lessImESaIS4_EE", !75, i64 0}
!75 = !{!"_ZTSNSt8_Rb_treeImSt4pairIKmN6Crypto4HashEESt10_Select1stIS4_ESt4lessImESaIS4_EE13_Rb_tree_implIS8_Lb1EEE", !76, i64 0, !34, i64 8}
!76 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessImEE", !77, i64 0}
!77 = !{!"_ZTSSt4lessImE"}
!78 = !{!12, !6, i64 376}
!79 = !{!80, !10, i64 224}
!80 = !{!"_ZTSN7DynexCN14tx_memory_pool18TransactionDetailsE", !81, i64 0, !83, i64 72, !84, i64 104, !10, i64 216, !10, i64 224, !65, i64 232, !10, i64 240}
!81 = !{!"_ZTSN7DynexCN14tx_memory_pool20TransactionCheckInfoE", !82, i64 0, !82, i64 36}
!82 = !{!"_ZTSN7DynexCN9BlockInfoE", !21, i64 0, !83, i64 4}
!83 = !{!"_ZTSN6Crypto4HashE", !7, i64 0}
!84 = !{!"_ZTSN7DynexCN11TransactionE", !85, i64 0, !98, i64 88}
!85 = !{!"_ZTSN7DynexCN17TransactionPrefixE", !7, i64 0, !10, i64 8, !86, i64 16, !90, i64 40, !94, i64 64}
!86 = !{!"_ZTSSt6vectorIN5boost7variantIN7DynexCN9BaseInputEJNS2_8KeyInputENS2_19MultisignatureInputEEEESaIS6_EE", !87, i64 0}
!87 = !{!"_ZTSSt12_Vector_baseIN5boost7variantIN7DynexCN9BaseInputEJNS2_8KeyInputENS2_19MultisignatureInputEEEESaIS6_EE", !88, i64 0}
!88 = !{!"_ZTSNSt12_Vector_baseIN5boost7variantIN7DynexCN9BaseInputEJNS2_8KeyInputENS2_19MultisignatureInputEEEESaIS6_EE12_Vector_implE", !89, i64 0}
!89 = !{!"_ZTSNSt12_Vector_baseIN5boost7variantIN7DynexCN9BaseInputEJNS2_8KeyInputENS2_19MultisignatureInputEEEESaIS6_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!90 = !{!"_ZTSSt6vectorIN7DynexCN17TransactionOutputESaIS1_EE", !91, i64 0}
!91 = !{!"_ZTSSt12_Vector_baseIN7DynexCN17TransactionOutputESaIS1_EE", !92, i64 0}
!92 = !{!"_ZTSNSt12_Vector_baseIN7DynexCN17TransactionOutputESaIS1_EE12_Vector_implE", !93, i64 0}
!93 = !{!"_ZTSNSt12_Vector_baseIN7DynexCN17TransactionOutputESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!94 = !{!"_ZTSSt6vectorIhSaIhEE", !95, i64 0}
!95 = !{!"_ZTSSt12_Vector_baseIhSaIhEE", !96, i64 0}
!96 = !{!"_ZTSNSt12_Vector_baseIhSaIhEE12_Vector_implE", !97, i64 0}
!97 = !{!"_ZTSNSt12_Vector_baseIhSaIhEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!98 = !{!"_ZTSSt6vectorIS_IN6Crypto9SignatureESaIS1_EESaIS3_EE", !99, i64 0}
!99 = !{!"_ZTSSt12_Vector_baseISt6vectorIN6Crypto9SignatureESaIS2_EESaIS4_EE", !100, i64 0}
!100 = !{!"_ZTSNSt12_Vector_baseISt6vectorIN6Crypto9SignatureESaIS2_EESaIS4_EE12_Vector_implE", !101, i64 0}
!101 = !{!"_ZTSNSt12_Vector_baseISt6vectorIN6Crypto9SignatureESaIS2_EESaIS4_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!102 = !{!80, !10, i64 216}
!103 = !{i64 0, i64 1, !104, i64 1, i64 1, !104, i64 2, i64 1, !104, i64 3, i64 1, !104, i64 4, i64 1, !104}
!104 = !{!65, !65, i64 0}
!105 = !{!12, !6, i64 72}
!106 = !{!107, !107, i64 0}
!107 = !{!"vtable pointer", !8, i64 0}
!108 = !{i64 0, i64 4, !109, i64 4, i64 32, !110, i64 36, i64 4, !109, i64 40, i64 32, !110}
!109 = !{!21, !21, i64 0}
!110 = !{!7, !7, i64 0}
!111 = !{i8 0, i8 2}
!112 = !{}
!113 = distinct !{!113, !114}
!114 = !{!"llvm.loop.mustprogress"}


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

%"class.std::unordered_set" = 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::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.Logging::LoggerMessage" = type <{ %"class.std::basic_ostream.base", %"class.std::basic_streambuf", ptr, %"class.std::__cxx11::basic_string", i32, [4 x i8], %"class.std::__cxx11::basic_string", %"class.boost::posix_time::ptime", i8, [7 x i8], %"class.std::basic_ios" }>
%"class.std::basic_ostream.base" = type { ptr }
%"class.std::basic_streambuf" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::locale" }
%"class.std::locale" = type { ptr }
%"class.boost::posix_time::ptime" = type { %"class.boost::date_time::base_time" }
%"class.boost::date_time::base_time" = type { %"struct.boost::date_time::counted_time_rep" }
%"struct.boost::date_time::counted_time_rep" = type { %"class.boost::date_time::int_adapter" }
%"class.boost::date_time::int_adapter" = type { i64 }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::lock_guard" = type { ptr }
%"class.DynexCN::BlockTemplate" = type { %"class.std::unordered_set.118", %"class.std::set", %"class.std::vector.73" }
%"class.std::unordered_set.118" = type { %"class.std::_Hashtable.119" }
%"class.std::_Hashtable.119" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::set" = type { %"class.std::_Rb_tree" }
%"class.std::_Rb_tree" = type { %"struct.std::_Rb_tree<std::pair<unsigned long, unsigned long>, std::pair<unsigned long, unsigned long>, std::_Identity<std::pair<unsigned long, unsigned long>>, std::less<std::pair<unsigned long, unsigned long>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::pair<unsigned long, unsigned long>, std::pair<unsigned long, unsigned long>, std::_Identity<std::pair<unsigned long, unsigned long>>, std::less<std::pair<unsigned long, unsigned long>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.std::_Rb_tree_header" = type { %"struct.std::_Rb_tree_node_base", i64 }
%"struct.std::_Rb_tree_node_base" = type { i32, ptr, ptr, ptr }
%"class.std::vector.73" = type { %"struct.std::_Vector_base.74" }
%"struct.std::_Vector_base.74" = type { %"struct.std::_Vector_base<Crypto::Hash, std::allocator<Crypto::Hash>>::_Vector_impl" }
%"struct.std::_Vector_base<Crypto::Hash, std::allocator<Crypto::Hash>>::_Vector_impl" = type { %"struct.std::_Vector_base<Crypto::Hash, std::allocator<Crypto::Hash>>::_Vector_impl_data" }
%"struct.std::_Vector_base<Crypto::Hash, std::allocator<Crypto::Hash>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.boost::multi_index::detail::bidir_node_iterator" = type { ptr }
%"struct.DynexCN::tx_verification_context" = type { i8, i8, i8, i8, i8 }
%"class.boost::value_initialized.132" = type { %"class.boost::initialized.133" }
%"class.boost::initialized.133" = type { %"struct.DynexCN::tx_verification_context" }
%"struct.DynexCN::tx_memory_pool::TransactionCheckInfo" = type { %"struct.DynexCN::BlockInfo", %"struct.DynexCN::BlockInfo" }
%"struct.DynexCN::BlockInfo" = type { i32, %"struct.Crypto::Hash" }
%"struct.Crypto::Hash" = type { [32 x i8] }
%"struct.std::__detail::_Node_iterator.113" = type { %"struct.std::__detail::_Node_iterator_base.114" }
%"struct.std::__detail::_Node_iterator_base.114" = type { ptr }

@_ZN7DynexCN24m_validated_transactionsE = external dso_local global %"class.std::unordered_set", align 8
@_ZN7Logging7DEFAULTB5cxx11E = external global %"class.std::__cxx11::basic_string", align 8
@.str.36 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [40 x i8], align 1

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

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

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN5boost14operators_implneERKNS_11multi_index6detail19bidir_node_iteratorINS2_18ordered_index_nodeINS2_19null_augment_policyENS2_15index_node_baseIN7DynexCN14tx_memory_pool18TransactionDetailsESaIS9_EEEEEEESF_(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(248) ptr @_ZNK5boost11multi_index6detail19bidir_node_iteratorINS1_18ordered_index_nodeINS1_19null_augment_policyENS1_15index_node_baseIN7DynexCN14tx_memory_pool18TransactionDetailsESaIS8_EEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #6 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local ptr @_ZNSt13unordered_setIN6Crypto4HashESt4hashIS1_ESt8equal_toIS1_ESaIS1_EE4findERKS1_(ptr noundef nonnull align 8 dereferenceable(56), ptr noundef nonnull align 1 dereferenceable(32)) local_unnamed_addr #4 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local { ptr, i8 } @_ZNSt13unordered_setIN6Crypto4HashESt4hashIS1_ESt8equal_toIS1_ESaIS1_EE6insertERKS1_(ptr noundef nonnull align 8 dereferenceable(56), ptr noundef nonnull align 1 dereferenceable(32)) local_unnamed_addr #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZNK7DynexCN14tx_memory_pool26is_transaction_ready_to_goERKNS_11TransactionERNS0_20TransactionCheckInfoE(ptr noundef nonnull align 8 dereferenceable(688), ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 4 dereferenceable(72)) local_unnamed_addr #4 align 2

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

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_ZN7DynexCN14tx_memory_pool19fill_block_templateERNS_5BlockEmmmRmS3_(ptr noundef nonnull align 8 dereferenceable(688) %0, ptr noundef nonnull align 8 dereferenceable(384) %1, i64 noundef %2, i64 noundef %3, i64 noundef %4, ptr nocapture noundef nonnull align 8 dereferenceable(8) %5, ptr nocapture noundef nonnull align 8 dereferenceable(8) %6) local_unnamed_addr #4 align 2 personality ptr @__gxx_personality_v0 {
  %8 = alloca i64, align 8
  %9 = alloca %"class.std::lock_guard", align 8
  %10 = alloca i64, align 8
  %11 = alloca %"class.DynexCN::BlockTemplate", align 8
  %12 = alloca %"class.boost::multi_index::detail::bidir_node_iterator", align 8
  %13 = alloca %"class.boost::multi_index::detail::bidir_node_iterator", align 8
  %14 = alloca %"struct.DynexCN::tx_verification_context", align 1
  %15 = alloca %"class.boost::value_initialized.132", align 1
  %16 = alloca %"class.Logging::LoggerMessage", align 8
  %17 = alloca %"struct.DynexCN::tx_memory_pool::TransactionCheckInfo", align 4
  %18 = alloca %"struct.std::__detail::_Node_iterator.113", align 8
  %19 = alloca %"struct.std::__detail::_Node_iterator.113", align 8
  %20 = alloca %"class.Logging::LoggerMessage", align 8
  %21 = alloca %"class.Logging::LoggerMessage", align 8
  %22 = alloca %"class.Logging::LoggerMessage", align 8
  %23 = alloca %"class.Logging::LoggerMessage", align 8
  store i64 %3, ptr %8, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #8
  %24 = getelementptr inbounds i8, ptr %0, i64 104
  call void @_ZNSt10lock_guardISt15recursive_mutexEC2ERS0_(ptr noundef nonnull align 8 dereferenceable(8) %9, ptr noundef nonnull align 8 dereferenceable(40) %24)
  store i64 0, ptr %5, align 8, !tbaa !5
  store i64 0, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #8
  %25 = mul i64 %2, 125
  %26 = udiv i64 %25, 100
  store i64 %26, ptr %10, align 8, !tbaa !5
  %27 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minImERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %10, ptr noundef nonnull align 8 dereferenceable(8) %8)
  %28 = load i64, ptr %27, align 8, !tbaa !5
  %29 = getelementptr inbounds i8, ptr %0, i64 64
  %30 = load ptr, ptr %29, align 8, !tbaa !9
  %31 = call noundef i64 @_ZNK7DynexCN8Currency23minerTxBlobReservedSizeEv(ptr noundef nonnull align 8 dereferenceable(984) %30)
  %32 = sub i64 %28, %31
  store i64 %32, ptr %10, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 128, ptr nonnull %11) #8
  call void @_ZN7DynexCN13BlockTemplateC2Ev(ptr noundef nonnull align 8 dereferenceable(128) %11) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #8
  %33 = getelementptr inbounds i8, ptr %0, i64 376
  %34 = load ptr, ptr %33, align 8, !tbaa !77
  %35 = call ptr @_ZN5boost11multi_index6detail18ordered_index_implINS0_8identityIN7DynexCN14tx_memory_pool18TransactionDetailsEEENS5_29TransactionPriorityComparatorENS1_9nth_layerILi2ES6_NS0_10indexed_byINS0_13hashed_uniqueINS0_6memberIS6_N6Crypto4HashEXadL_ZNS6_2idEEEEEN4mpl_2naESH_SH_EENS0_18ordered_non_uniqueIS7_S8_SH_EESH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_EESaIS6_EEENS_3mpl7vector0ISH_EENS1_22ordered_non_unique_tagENS1_19null_augment_policyEE5beginEv(ptr noundef nonnull align 1 dereferenceable(2) %34) #8
  store ptr %35, ptr %12, align 8
  %36 = getelementptr inbounds i8, ptr %0, i64 72
  %37 = getelementptr inbounds i8, ptr %0, i64 440
  br label %38

38:                                               ; preds = %174, %7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #8
  %39 = load ptr, ptr %33, align 8, !tbaa !77
  %40 = call ptr @_ZN5boost11multi_index6detail18ordered_index_implINS0_8identityIN7DynexCN14tx_memory_pool18TransactionDetailsEEENS5_29TransactionPriorityComparatorENS1_9nth_layerILi2ES6_NS0_10indexed_byINS0_13hashed_uniqueINS0_6memberIS6_N6Crypto4HashEXadL_ZNS6_2idEEEEEN4mpl_2naESH_SH_EENS0_18ordered_non_uniqueIS7_S8_SH_EESH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_EESaIS6_EEENS_3mpl7vector0ISH_EENS1_22ordered_non_unique_tagENS1_19null_augment_policyEE3endEv(ptr noundef nonnull align 1 dereferenceable(2) %39) #8
  store ptr %40, ptr %13, align 8
  %41 = invoke noundef zeroext i1 @_ZN5boost14operators_implneERKNS_11multi_index6detail19bidir_node_iteratorINS2_18ordered_index_nodeINS2_19null_augment_policyENS2_15index_node_baseIN7DynexCN14tx_memory_pool18TransactionDetailsESaIS9_EEEEEEESF_(ptr noundef nonnull align 8 dereferenceable(8) %12, ptr noundef nonnull align 8 dereferenceable(8) %13)
          to label %42 unwind label %47

42:                                               ; preds = %38
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #8
  br i1 %41, label %49, label %43

43:                                               ; preds = %42
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #8
  %44 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK7DynexCN13BlockTemplate15getTransactionsEv(ptr noundef nonnull align 8 dereferenceable(128) %11)
  %45 = getelementptr inbounds i8, ptr %1, i64 360
  %46 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIN6Crypto4HashESaIS1_EEaSERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %45, ptr noundef nonnull align 8 dereferenceable(24) %44)
          to label %181 unwind label %182

47:                                               ; preds = %38
  %48 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #8
  br label %180

49:                                               ; preds = %42
  %50 = call noundef nonnull align 8 dereferenceable(248) ptr @_ZNK5boost11multi_index6detail19bidir_node_iteratorINS1_18ordered_index_nodeINS1_19null_augment_policyENS1_15index_node_baseIN7DynexCN14tx_memory_pool18TransactionDetailsESaIS8_EEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %12)
  %51 = getelementptr inbounds i8, ptr %50, i64 224
  %52 = load i64, ptr %51, align 8, !tbaa !78
  %53 = icmp eq i64 %52, 0
  %54 = load i64, ptr %10, align 8
  %55 = select i1 %53, i64 %2, i64 %54
  %56 = load i64, ptr %5, align 8, !tbaa !5
  %57 = getelementptr inbounds i8, ptr %50, i64 216
  %58 = load i64, ptr %57, align 8, !tbaa !101
  %59 = add i64 %58, %56
  %60 = icmp ult i64 %55, %59
  br i1 %60, label %174, label %61

61:                                               ; preds = %49
  call void @llvm.lifetime.start.p0(i64 5, ptr nonnull %14) #8
  call void @llvm.lifetime.start.p0(i64 5, ptr nonnull %15) #8
  invoke void @_ZN5boost17value_initializedIN7DynexCN23tx_verification_contextEEC2Ev(ptr noundef nonnull align 1 dereferenceable(5) %15)
          to label %62 unwind label %87

62:                                               ; preds = %61
  %63 = invoke noundef nonnull align 1 dereferenceable(5) ptr @_ZN5boost17value_initializedIN7DynexCN23tx_verification_contextEEcvRS2_Ev(ptr noundef nonnull align 1 dereferenceable(5) %15)
          to label %64 unwind label %87

64:                                               ; preds = %62
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(5) %14, ptr noundef nonnull align 1 dereferenceable(5) %63, i64 5, i1 false), !tbaa.struct !102
  call void @llvm.lifetime.end.p0(i64 5, ptr nonnull %15) #8
  %65 = load ptr, ptr %36, align 8, !tbaa !104
  %66 = getelementptr inbounds i8, ptr %50, i64 104
  %67 = load i64, ptr %57, align 8, !tbaa !101
  %68 = load ptr, ptr %65, align 8, !tbaa !105
  %69 = getelementptr inbounds i8, ptr %68, i64 392
  %70 = load ptr, ptr %69, align 8
  %71 = invoke noundef i32 %70(ptr noundef nonnull align 8 dereferenceable(8) %65)
          to label %72 unwind label %89

72:                                               ; preds = %64
  %73 = load ptr, ptr %65, align 8, !tbaa !105
  %74 = getelementptr inbounds i8, ptr %73, i64 384
  %75 = load ptr, ptr %74, align 8
  %76 = invoke noundef zeroext i1 %75(ptr noundef nonnull align 8 dereferenceable(8) %65, ptr noundef nonnull align 8 dereferenceable(112) %66, i64 noundef %67, ptr noundef nonnull align 1 dereferenceable(5) %14, i32 noundef %71)
          to label %77 unwind label %89

77:                                               ; preds = %72
  br i1 %76, label %96, label %78

78:                                               ; preds = %77
  call void @llvm.lifetime.start.p0(i64 432, ptr nonnull %16) #8
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.Logging::LoggerMessage") align 8 %16, ptr noundef nonnull align 8 dereferenceable(40) %37, i32 noundef 4, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging7DEFAULTB5cxx11E)
          to label %79 unwind label %91

79:                                               ; preds = %78
  %80 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA13_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %16, ptr noundef nonnull align 1 dereferenceable(13) @.str.36)
          to label %81 unwind label %93

81:                                               ; preds = %79
  %82 = getelementptr inbounds i8, ptr %50, i64 72
  %83 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEN6Crypto4HashEEOT_S5_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %80, ptr noundef nonnull align 1 dereferenceable(32) %82)
          to label %84 unwind label %93

84:                                               ; preds = %81
  %85 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA57_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %83, ptr noundef nonnull align 1 dereferenceable(57) @.str.37)
          to label %86 unwind label %93

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

87:                                               ; preds = %62, %61
  %88 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 5, ptr nonnull %15) #8
  br label %177

89:                                               ; preds = %72, %64
  %90 = landingpad { ptr, i32 }
          cleanup
  br label %177

91:                                               ; preds = %78
  %92 = landingpad { ptr, i32 }
          cleanup
  br label %95

93:                                               ; preds = %84, %81, %79
  %94 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %16) #8
  br label %95

95:                                               ; preds = %93, %91
  %.pn = phi { ptr, i32 } [ %94, %93 ], [ %92, %91 ]
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %16) #8
  br label %177

96:                                               ; preds = %77
  call void @llvm.lifetime.start.p0(i64 72, ptr nonnull %17) #8
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(72) %17, ptr noundef nonnull align 8 dereferenceable(72) %50, i64 72, i1 false), !tbaa.struct !107
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #8
  %97 = getelementptr inbounds i8, ptr %50, i64 72
  %98 = invoke ptr @_ZNSt13unordered_setIN6Crypto4HashESt4hashIS1_ESt8equal_toIS1_ESaIS1_EE4findERKS1_(ptr noundef nonnull align 8 dereferenceable(56) @_ZN7DynexCN24m_validated_transactionsE, ptr noundef nonnull align 1 dereferenceable(32) %97)
          to label %99 unwind label %108

99:                                               ; preds = %96
  store ptr %98, ptr %18, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #8
  %100 = call ptr @_ZNSt13unordered_setIN6Crypto4HashESt4hashIS1_ESt8equal_toIS1_ESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(56) @_ZN7DynexCN24m_validated_transactionsE) #8
  store ptr %100, ptr %19, align 8
  %101 = call noundef zeroext i1 @_ZNSt8__detailneERKNS_19_Node_iterator_baseIN6Crypto4HashELb1EEES5_(ptr noundef nonnull align 8 dereferenceable(8) %18, ptr noundef nonnull align 8 dereferenceable(8) %19) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #8
  br i1 %101, label %102, label %115

102:                                              ; preds = %99
  call void @llvm.lifetime.start.p0(i64 432, ptr nonnull %20) #8
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.Logging::LoggerMessage") align 8 %20, ptr noundef nonnull align 8 dereferenceable(40) %37, i32 noundef 4, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging7DEFAULTB5cxx11E)
          to label %103 unwind label %110

103:                                              ; preds = %102
  %104 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA44_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %20, ptr noundef nonnull align 1 dereferenceable(44) @.str.38)
          to label %105 unwind label %112

105:                                              ; preds = %103
  %106 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEN6Crypto4HashEEOT_S5_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %104, ptr noundef nonnull align 1 dereferenceable(32) %97)
          to label %107 unwind label %112

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

108:                                              ; preds = %96
  %109 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #8
  br label %176

110:                                              ; preds = %102
  %111 = landingpad { ptr, i32 }
          cleanup
  br label %114

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

114:                                              ; preds = %112, %110
  %.pn44 = phi { ptr, i32 } [ %113, %112 ], [ %111, %110 ]
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %20) #8
  br label %176

115:                                              ; preds = %99
  %116 = invoke noundef zeroext i1 @_ZNK7DynexCN14tx_memory_pool26is_transaction_ready_to_goERKNS_11TransactionERNS0_20TransactionCheckInfoE(ptr noundef nonnull align 8 dereferenceable(688) %0, ptr noundef nonnull align 8 dereferenceable(112) %66, ptr noundef nonnull align 4 dereferenceable(72) %17)
          to label %117 unwind label %126

117:                                              ; preds = %115
  br i1 %116, label %118, label %133

118:                                              ; preds = %117
  %119 = invoke { ptr, i8 } @_ZNSt13unordered_setIN6Crypto4HashESt4hashIS1_ESt8equal_toIS1_ESaIS1_EE6insertERKS1_(ptr noundef nonnull align 8 dereferenceable(56) @_ZN7DynexCN24m_validated_transactionsE, ptr noundef nonnull align 1 dereferenceable(32) %97)
          to label %120 unwind label %126

120:                                              ; preds = %118
  call void @llvm.lifetime.start.p0(i64 432, ptr nonnull %21) #8
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.Logging::LoggerMessage") align 8 %21, ptr noundef nonnull align 8 dereferenceable(40) %37, i32 noundef 4, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging7DEFAULTB5cxx11E)
          to label %121 unwind label %128

121:                                              ; preds = %120
  %122 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA42_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %21, ptr noundef nonnull align 1 dereferenceable(42) @.str.39)
          to label %123 unwind label %130

123:                                              ; preds = %121
  %124 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEN6Crypto4HashEEOT_S5_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %122, ptr noundef nonnull align 1 dereferenceable(32) %97)
          to label %125 unwind label %130

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

126:                                              ; preds = %137, %133, %118, %115
  %127 = landingpad { ptr, i32 }
          cleanup
  br label %176

128:                                              ; preds = %120
  %129 = landingpad { ptr, i32 }
          cleanup
  br label %132

130:                                              ; preds = %123, %121
  %131 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %21) #8
  br label %132

132:                                              ; preds = %130, %128
  %.pn42 = phi { ptr, i32 } [ %131, %130 ], [ %129, %128 ]
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %21) #8
  br label %176

133:                                              ; preds = %117, %125, %107
  %.040 = phi i1 [ true, %107 ], [ true, %125 ], [ false, %117 ]
  %134 = load ptr, ptr %33, align 8, !tbaa !77
  %.sroa.01.0.copyload = load ptr, ptr %12, align 8
  %135 = invoke noundef zeroext i1 @"_ZN5boost11multi_index6detail18ordered_index_implINS0_8identityIN7DynexCN14tx_memory_pool18TransactionDetailsEEENS5_29TransactionPriorityComparatorENS1_9nth_layerILi2ES6_NS0_10indexed_byINS0_13hashed_uniqueINS0_6memberIS6_N6Crypto4HashEXadL_ZNS6_2idEEEEEN4mpl_2naESH_SH_EENS0_18ordered_non_uniqueIS7_S8_SH_EESH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_EESaIS6_EEENS_3mpl7vector0ISH_EENS1_22ordered_non_unique_tagENS1_19null_augment_policyEE6modifyIZNS5_19fill_block_templateERNS4_5BlockEmmmRmSX_E3$_0EEbNS1_19bidir_node_iteratorINS1_18ordered_index_nodeISS_NS1_15index_node_baseIS6_SM_EEEEEET_"(ptr noundef nonnull align 1 dereferenceable(2) %134, ptr %.sroa.01.0.copyload, ptr nonnull %17)
          to label %136 unwind label %126

136:                                              ; preds = %133
  br i1 %.040, label %137, label %159

137:                                              ; preds = %136
  %138 = invoke noundef zeroext i1 @_ZN7DynexCN13BlockTemplate14addTransactionERKN6Crypto4HashERKNS_11TransactionE(ptr noundef nonnull align 8 dereferenceable(128) %11, ptr noundef nonnull align 1 dereferenceable(32) %97, ptr noundef nonnull align 8 dereferenceable(112) %66)
          to label %139 unwind label %126

139:                                              ; preds = %137
  br i1 %138, label %140, label %159

140:                                              ; preds = %139
  %141 = load i64, ptr %57, align 8, !tbaa !101
  %142 = load i64, ptr %5, align 8, !tbaa !5
  %143 = add i64 %142, %141
  store i64 %143, ptr %5, align 8, !tbaa !5
  %144 = load i64, ptr %51, align 8, !tbaa !78
  %145 = load i64, ptr %6, align 8, !tbaa !5
  %146 = add i64 %145, %144
  store i64 %146, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 432, ptr nonnull %22) #8
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.Logging::LoggerMessage") align 8 %22, ptr noundef nonnull align 8 dereferenceable(40) %37, i32 noundef 4, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging7DEFAULTB5cxx11E)
          to label %147 unwind label %154

147:                                              ; preds = %140
  %148 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA13_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %22, ptr noundef nonnull align 1 dereferenceable(13) @.str.36)
          to label %149 unwind label %156

149:                                              ; preds = %147
  %150 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEN6Crypto4HashEEOT_S5_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %148, ptr noundef nonnull align 1 dereferenceable(32) %97)
          to label %151 unwind label %156

151:                                              ; preds = %149
  %152 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA28_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %150, ptr noundef nonnull align 1 dereferenceable(28) @.str.40)
          to label %153 unwind label %156

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

154:                                              ; preds = %140
  %155 = landingpad { ptr, i32 }
          cleanup
  br label %158

156:                                              ; preds = %151, %149, %147
  %157 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %22) #8
  br label %158

158:                                              ; preds = %156, %154
  %.pn48 = phi { ptr, i32 } [ %157, %156 ], [ %155, %154 ]
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %22) #8
  br label %176

159:                                              ; preds = %139, %136
  call void @llvm.lifetime.start.p0(i64 432, ptr nonnull %23) #8
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.Logging::LoggerMessage") align 8 %23, ptr noundef nonnull align 8 dereferenceable(40) %37, i32 noundef 4, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging7DEFAULTB5cxx11E)
          to label %160 unwind label %167

160:                                              ; preds = %159
  %161 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA13_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %23, ptr noundef nonnull align 1 dereferenceable(13) @.str.36)
          to label %162 unwind label %169

162:                                              ; preds = %160
  %163 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEN6Crypto4HashEEOT_S5_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %161, ptr noundef nonnull align 1 dereferenceable(32) %97)
          to label %164 unwind label %169

164:                                              ; preds = %162
  %165 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA40_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %163, ptr noundef nonnull align 1 dereferenceable(40) @.str.41)
          to label %166 unwind label %169

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

167:                                              ; preds = %159
  %168 = landingpad { ptr, i32 }
          cleanup
  br label %171

169:                                              ; preds = %164, %162, %160
  %170 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %23) #8
  br label %171

171:                                              ; preds = %169, %167
  %.pn46 = phi { ptr, i32 } [ %170, %169 ], [ %168, %167 ]
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %23) #8
  br label %176

172:                                              ; preds = %166, %153
  call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %17) #8
  br label %173

173:                                              ; preds = %172, %86
  call void @llvm.lifetime.end.p0(i64 5, ptr nonnull %14) #8
  br label %174

174:                                              ; preds = %49, %173
  %175 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN5boost11multi_index6detail19bidir_node_iteratorINS1_18ordered_index_nodeINS1_19null_augment_policyENS1_15index_node_baseIN7DynexCN14tx_memory_pool18TransactionDetailsESaIS8_EEEEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %12)
          to label %38 unwind label %178, !llvm.loop !110

176:                                              ; preds = %171, %158, %132, %126, %114, %108
  %.pn48.pn = phi { ptr, i32 } [ %.pn48, %158 ], [ %.pn46, %171 ], [ %127, %126 ], [ %.pn44, %114 ], [ %.pn42, %132 ], [ %109, %108 ]
  call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %17) #8
  br label %177

177:                                              ; preds = %176, %95, %89, %87
  %.pn48.pn.pn = phi { ptr, i32 } [ %.pn48.pn, %176 ], [ %.pn, %95 ], [ %90, %89 ], [ %88, %87 ]
  call void @llvm.lifetime.end.p0(i64 5, ptr nonnull %14) #8
  br label %180

178:                                              ; preds = %174
  %179 = landingpad { ptr, i32 }
          cleanup
  br label %180

180:                                              ; preds = %178, %177, %47
  %.pn52 = phi { ptr, i32 } [ %179, %178 ], [ %.pn48.pn.pn, %177 ], [ %48, %47 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #8
  br label %184

181:                                              ; preds = %43
  call void @_ZN7DynexCN13BlockTemplateD2Ev(ptr noundef nonnull align 8 dereferenceable(128) %11) #8
  call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %11) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #8
  call void @_ZNSt10lock_guardISt15recursive_mutexED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %9) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #8
  ret i1 true

182:                                              ; preds = %43
  %183 = landingpad { ptr, i32 }
          cleanup
  br label %184

184:                                              ; preds = %182, %180
  %.pn52.pn = phi { ptr, i32 } [ %.pn52, %180 ], [ %183, %182 ]
  call void @_ZN7DynexCN13BlockTemplateD2Ev(ptr noundef nonnull align 8 dereferenceable(128) %11) #8
  call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %11) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #8
  call void @_ZNSt10lock_guardISt15recursive_mutexED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %9) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #8
  resume { ptr, i32 } %.pn52.pn
}

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 1 dereferenceable(5) ptr @_ZN5boost17value_initializedIN7DynexCN23tx_verification_contextEEcvRS2_Ev(ptr noundef nonnull align 1 dereferenceable(5)) local_unnamed_addr #4 align 2

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

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

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

; Function Attrs: mustprogress uwtable
declare hidden noundef zeroext i1 @"_ZN5boost11multi_index6detail18ordered_index_implINS0_8identityIN7DynexCN14tx_memory_pool18TransactionDetailsEEENS5_29TransactionPriorityComparatorENS1_9nth_layerILi2ES6_NS0_10indexed_byINS0_13hashed_uniqueINS0_6memberIS6_N6Crypto4HashEXadL_ZNS6_2idEEEEEN4mpl_2naESH_SH_EENS0_18ordered_non_uniqueIS7_S8_SH_EESH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_EESaIS6_EEENS_3mpl7vector0ISH_EENS1_22ordered_non_unique_tagENS1_19null_augment_policyEE6modifyIZNS5_19fill_block_templateERNS4_5BlockEmmmRmSX_E3$_0EEbNS1_19bidir_node_iteratorINS1_18ordered_index_nodeISS_NS1_15index_node_baseIS6_SM_EEEEEET_"(ptr noundef nonnull align 1 dereferenceable(2), ptr, ptr) local_unnamed_addr #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN7DynexCN13BlockTemplate14addTransactionERKN6Crypto4HashERKNS_11TransactionE(ptr noundef nonnull align 8 dereferenceable(128), ptr noundef nonnull align 1 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(112)) local_unnamed_addr #4 align 2

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

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

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"long", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !16, i64 64}
!10 = !{!"_ZTSN7DynexCN14tx_memory_poolE", !11, i64 0, !16, i64 64, !16, i64 72, !19, i64 80, !21, i64 104, !23, i64 144, !28, i64 200, !36, i64 248, !16, i64 280, !16, i64 288, !38, i64 296, !16, i64 376, !53, i64 384, !55, i64 440, !56, i64 480, !65, i64 576, !71, i64 632}
!11 = !{!"_ZTSN5Tools15ObserverManagerIN7DynexCN15ITxPoolObserverEEE", !12, i64 0, !17, i64 24}
!12 = !{!"_ZTSSt6vectorIPN7DynexCN15ITxPoolObserverESaIS2_EE", !13, i64 0}
!13 = !{!"_ZTSSt12_Vector_baseIPN7DynexCN15ITxPoolObserverESaIS2_EE", !14, i64 0}
!14 = !{!"_ZTSNSt12_Vector_baseIPN7DynexCN15ITxPoolObserverESaIS2_EE12_Vector_implE", !15, i64 0}
!15 = !{!"_ZTSNSt12_Vector_baseIPN7DynexCN15ITxPoolObserverESaIS2_EE17_Vector_impl_dataE", !16, i64 0, !16, i64 8, !16, i64 16}
!16 = !{!"any pointer", !7, i64 0}
!17 = !{!"_ZTSSt5mutex", !18, i64 0}
!18 = !{!"_ZTSSt12__mutex_base", !7, i64 0}
!19 = !{!"_ZTSN7DynexCN18OnceInTimeIntervalE", !6, i64 0, !20, i64 8, !16, i64 16}
!20 = !{!"int", !7, i64 0}
!21 = !{!"_ZTSSt15recursive_mutex", !22, i64 0}
!22 = !{!"_ZTSSt22__recursive_mutex_base", !7, i64 0}
!23 = !{!"_ZTSSt13unordered_mapIN6Crypto8KeyImageESt13unordered_setINS0_4HashESt4hashIS3_ESt8equal_toIS3_ESaIS3_EES4_IS1_ES6_IS1_ESaISt4pairIKS1_S9_EEE", !24, i64 0}
!24 = !{!"_ZTSSt10_HashtableIN6Crypto8KeyImageESt4pairIKS1_St13unordered_setINS0_4HashESt4hashIS5_ESt8equal_toIS5_ESaIS5_EEESaISC_ENSt8__detail10_Select1stES8_IS1_ES6_IS1_ENSE_18_Mod_range_hashingENSE_20_Default_ranged_hashENSE_20_Prime_rehash_policyENSE_17_Hashtable_traitsILb1ELb0ELb1EEEE", !16, i64 0, !6, i64 8, !25, i64 16, !6, i64 24, !26, i64 32, !16, i64 48}
!25 = !{!"_ZTSNSt8__detail15_Hash_node_baseE", !16, i64 0}
!26 = !{!"_ZTSNSt8__detail20_Prime_rehash_policyE", !27, i64 0, !6, i64 8}
!27 = !{!"float", !7, i64 0}
!28 = !{!"_ZTSSt3setISt4pairImmESt4lessIS1_ESaIS1_EE", !29, i64 0}
!29 = !{!"_ZTSSt8_Rb_treeISt4pairImmES1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE", !30, i64 0}
!30 = !{!"_ZTSNSt8_Rb_treeISt4pairImmES1_St9_IdentityIS1_ESt4lessIS1_ESaIS1_EE13_Rb_tree_implIS5_Lb1EEE", !31, i64 0, !33, i64 8}
!31 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessISt4pairImmEEE", !32, i64 0}
!32 = !{!"_ZTSSt4lessISt4pairImmEE"}
!33 = !{!"_ZTSSt15_Rb_tree_header", !34, i64 0, !6, i64 32}
!34 = !{!"_ZTSSt18_Rb_tree_node_base", !35, i64 0, !16, i64 8, !16, i64 16, !16, i64 24}
!35 = !{!"_ZTSSt14_Rb_tree_color", !7, i64 0}
!36 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !37, i64 0, !6, i64 8, !7, i64 16}
!37 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !16, i64 0}
!38 = !{!"_ZTSN5boost11multi_index21multi_index_containerIN7DynexCN14tx_memory_pool18TransactionDetailsENS0_10indexed_byINS0_13hashed_uniqueINS0_6memberIS4_N6Crypto4HashEXadL_ZNS4_2idEEEEEN4mpl_2naESC_SC_EENS0_18ordered_non_uniqueINS0_8identityIS4_EENS3_29TransactionPriorityComparatorESC_EESC_SC_SC_SC_SC_SC_SC_SC_SC_SC_SC_SC_SC_SC_SC_SC_SC_SC_EESaIS4_EEE", !39, i64 0, !41, i64 8, !42, i64 16, !6, i64 72}
!39 = !{!"_ZTSN5boost16base_from_memberISaINS_11multi_index6detail17hashed_index_nodeINS2_18ordered_index_nodeINS2_19null_augment_policyENS2_15index_node_baseIN7DynexCN14tx_memory_pool18TransactionDetailsESaIS9_EEEEEEEELi0EEE", !40, i64 0}
!40 = !{!"_ZTSSaIN5boost11multi_index6detail17hashed_index_nodeINS1_18ordered_index_nodeINS1_19null_augment_policyENS1_15index_node_baseIN7DynexCN14tx_memory_pool18TransactionDetailsESaIS8_EEEEEEEE"}
!41 = !{!"_ZTSN5boost11multi_index6detail13header_holderIPNS1_17hashed_index_nodeINS1_18ordered_index_nodeINS1_19null_augment_policyENS1_15index_node_baseIN7DynexCN14tx_memory_pool18TransactionDetailsESaIS9_EEEEEEENS0_21multi_index_containerIS9_NS0_10indexed_byINS0_13hashed_uniqueINS0_6memberIS9_N6Crypto4HashEXadL_ZNS9_2idEEEEEN4mpl_2naESN_SN_EENS0_18ordered_non_uniqueINS0_8identityIS9_EENS8_29TransactionPriorityComparatorESN_EESN_SN_SN_SN_SN_SN_SN_SN_SN_SN_SN_SN_SN_SN_SN_SN_SN_SN_EESA_EEEE", !16, i64 0}
!42 = !{!"_ZTSN5boost11multi_index6detail12hashed_indexINS0_6memberIN7DynexCN14tx_memory_pool18TransactionDetailsEN6Crypto4HashEXadL_ZNS6_2idEEEEENS_4hashIS8_EESt8equal_toIS8_ENS1_9nth_layerILi1ES6_NS0_10indexed_byINS0_13hashed_uniqueIS9_N4mpl_2naESI_SI_EENS0_18ordered_non_uniqueINS0_8identityIS6_EENS5_29TransactionPriorityComparatorESI_EESI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_SI_EESaIS6_EEENS_3mpl7vector0ISI_EENS1_17hashed_unique_tagEEE", !43, i64 0, !47, i64 2, !48, i64 3, !49, i64 4, !50, i64 8, !27, i64 40, !6, i64 48}
!43 = !{!"_ZTSN5boost11multi_index6detail13ordered_indexINS0_8identityIN7DynexCN14tx_memory_pool18TransactionDetailsEEENS5_29TransactionPriorityComparatorENS1_9nth_layerILi2ES6_NS0_10indexed_byINS0_13hashed_uniqueINS0_6memberIS6_N6Crypto4HashEXadL_ZNS6_2idEEEEEN4mpl_2naESH_SH_EENS0_18ordered_non_uniqueIS7_S8_SH_EESH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_EESaIS6_EEENS_3mpl7vector0ISH_EENS1_22ordered_non_unique_tagENS1_19null_augment_policyEEE", !44, i64 0}
!44 = !{!"_ZTSN5boost11multi_index6detail18ordered_index_implINS0_8identityIN7DynexCN14tx_memory_pool18TransactionDetailsEEENS5_29TransactionPriorityComparatorENS1_9nth_layerILi2ES6_NS0_10indexed_byINS0_13hashed_uniqueINS0_6memberIS6_N6Crypto4HashEXadL_ZNS6_2idEEEEEN4mpl_2naESH_SH_EENS0_18ordered_non_uniqueIS7_S8_SH_EESH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_SH_EESaIS6_EEENS_3mpl7vector0ISH_EENS1_22ordered_non_unique_tagENS1_19null_augment_policyEEE", !45, i64 0, !46, i64 1}
!45 = !{!"_ZTSN5boost11multi_index8identityIN7DynexCN14tx_memory_pool18TransactionDetailsEEE"}
!46 = !{!"_ZTSN7DynexCN14tx_memory_pool29TransactionPriorityComparatorE"}
!47 = !{!"_ZTSN5boost11multi_index6memberIN7DynexCN14tx_memory_pool18TransactionDetailsEN6Crypto4HashEXadL_ZNS4_2idEEEEE"}
!48 = !{!"_ZTSN5boost4hashIN6Crypto4HashEEE"}
!49 = !{!"_ZTSSt8equal_toIN6Crypto4HashEE"}
!50 = !{!"_ZTSN5boost11multi_index6detail12bucket_arrayISaIN7DynexCN14tx_memory_pool18TransactionDetailsEEEE", !6, i64 0, !51, i64 8}
!51 = !{!"_ZTSN5boost11multi_index6detail10auto_spaceINS1_27hashed_index_base_node_implISaIcEEESaIN7DynexCN14tx_memory_pool18TransactionDetailsEEEE", !52, i64 0, !6, i64 8, !16, i64 16}
!52 = !{!"_ZTSSaIN5boost11multi_index6detail27hashed_index_base_node_implISaIcEEEE"}
!53 = !{!"_ZTSSt13unordered_mapIN6Crypto4HashEmSt4hashIS1_ESt8equal_toIS1_ESaISt4pairIKS1_mEEE", !54, i64 0}
!54 = !{!"_ZTSSt10_HashtableIN6Crypto4HashESt4pairIKS1_mESaIS4_ENSt8__detail10_Select1stESt8equal_toIS1_ESt4hashIS1_ENS6_18_Mod_range_hashingENS6_20_Default_ranged_hashENS6_20_Prime_rehash_policyENS6_17_Hashtable_traitsILb1ELb0ELb1EEEE", !16, i64 0, !6, i64 8, !25, i64 16, !6, i64 24, !26, i64 32, !16, i64 48}
!55 = !{!"_ZTSN7Logging9LoggerRefE", !16, i64 0, !36, i64 8}
!56 = !{!"_ZTSN7DynexCN14PaymentIdIndexE", !57, i64 0, !64, i64 88}
!57 = !{!"_ZTSSt18unordered_multimapIN6Crypto4HashES1_St8functionIFmRKS1_EESt8equal_toIS1_ESaISt4pairIS3_S1_EEE", !58, i64 0}
!58 = !{!"_ZTSSt10_HashtableIN6Crypto4HashESt4pairIKS1_S1_ESaIS4_ENSt8__detail10_Select1stESt8equal_toIS1_ESt8functionIFmRS3_EENS6_18_Mod_range_hashingENS6_20_Default_ranged_hashENS6_20_Prime_rehash_policyENS6_17_Hashtable_traitsILb1ELb0ELb0EEEE", !59, i64 0, !16, i64 32, !6, i64 40, !25, i64 48, !6, i64 56, !26, i64 64, !16, i64 80}
!59 = !{!"_ZTSNSt8__detail15_Hashtable_baseIN6Crypto4HashESt4pairIKS2_S2_ENS_10_Select1stESt8equal_toIS2_ESt8functionIFmRS4_EENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb1ELb0ELb0EEEEE", !60, i64 0}
!60 = !{!"_ZTSNSt8__detail15_Hash_code_baseIN6Crypto4HashESt4pairIKS2_S2_ENS_10_Select1stESt8functionIFmRS4_EENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb1EEE", !61, i64 0}
!61 = !{!"_ZTSNSt8__detail21_Hashtable_ebo_helperILi1ESt8functionIFmRKN6Crypto4HashEEELb0EEE", !62, i64 0}
!62 = !{!"_ZTSSt8functionIFmRKN6Crypto4HashEEE", !63, i64 0, !16, i64 24}
!63 = !{!"_ZTSSt14_Function_base", !7, i64 0, !16, i64 16}
!64 = !{!"bool", !7, i64 0}
!65 = !{!"_ZTSN7DynexCN12AddressIndexE", !66, i64 0, !64, i64 48}
!66 = !{!"_ZTSSt8multimapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN6Crypto4HashESt4lessIS5_ESaISt4pairIKS5_S7_EEE", !67, i64 0}
!67 = !{!"_ZTSSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_N6Crypto4HashEESt10_Select1stISA_ESt4lessIS5_ESaISA_EE", !68, i64 0}
!68 = !{!"_ZTSNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_N6Crypto4HashEESt10_Select1stISA_ESt4lessIS5_ESaISA_EE13_Rb_tree_implISE_Lb1EEE", !69, i64 0, !33, i64 8}
!69 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE", !70, i64 0}
!70 = !{!"_ZTSSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE"}
!71 = !{!"_ZTSN7DynexCN26TimestampTransactionsIndexE", !72, i64 0, !64, i64 48}
!72 = !{!"_ZTSSt8multimapImN6Crypto4HashESt4lessImESaISt4pairIKmS1_EEE", !73, i64 0}
!73 = !{!"_ZTSSt8_Rb_treeImSt4pairIKmN6Crypto4HashEESt10_Select1stIS4_ESt4lessImESaIS4_EE", !74, i64 0}
!74 = !{!"_ZTSNSt8_Rb_treeImSt4pairIKmN6Crypto4HashEESt10_Select1stIS4_ESt4lessImESaIS4_EE13_Rb_tree_implIS8_Lb1EEE", !75, i64 0, !33, i64 8}
!75 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessImEE", !76, i64 0}
!76 = !{!"_ZTSSt4lessImE"}
!77 = !{!10, !16, i64 376}
!78 = !{!79, !6, i64 224}
!79 = !{!"_ZTSN7DynexCN14tx_memory_pool18TransactionDetailsE", !80, i64 0, !82, i64 72, !83, i64 104, !6, i64 216, !6, i64 224, !64, i64 232, !6, i64 240}
!80 = !{!"_ZTSN7DynexCN14tx_memory_pool20TransactionCheckInfoE", !81, i64 0, !81, i64 36}
!81 = !{!"_ZTSN7DynexCN9BlockInfoE", !20, i64 0, !82, i64 4}
!82 = !{!"_ZTSN6Crypto4HashE", !7, i64 0}
!83 = !{!"_ZTSN7DynexCN11TransactionE", !84, i64 0, !97, i64 88}
!84 = !{!"_ZTSN7DynexCN17TransactionPrefixE", !7, i64 0, !6, i64 8, !85, i64 16, !89, i64 40, !93, i64 64}
!85 = !{!"_ZTSSt6vectorIN5boost7variantIN7DynexCN9BaseInputEJNS2_8KeyInputENS2_19MultisignatureInputEEEESaIS6_EE", !86, i64 0}
!86 = !{!"_ZTSSt12_Vector_baseIN5boost7variantIN7DynexCN9BaseInputEJNS2_8KeyInputENS2_19MultisignatureInputEEEESaIS6_EE", !87, i64 0}
!87 = !{!"_ZTSNSt12_Vector_baseIN5boost7variantIN7DynexCN9BaseInputEJNS2_8KeyInputENS2_19MultisignatureInputEEEESaIS6_EE12_Vector_implE", !88, i64 0}
!88 = !{!"_ZTSNSt12_Vector_baseIN5boost7variantIN7DynexCN9BaseInputEJNS2_8KeyInputENS2_19MultisignatureInputEEEESaIS6_EE17_Vector_impl_dataE", !16, i64 0, !16, i64 8, !16, i64 16}
!89 = !{!"_ZTSSt6vectorIN7DynexCN17TransactionOutputESaIS1_EE", !90, i64 0}
!90 = !{!"_ZTSSt12_Vector_baseIN7DynexCN17TransactionOutputESaIS1_EE", !91, i64 0}
!91 = !{!"_ZTSNSt12_Vector_baseIN7DynexCN17TransactionOutputESaIS1_EE12_Vector_implE", !92, i64 0}
!92 = !{!"_ZTSNSt12_Vector_baseIN7DynexCN17TransactionOutputESaIS1_EE17_Vector_impl_dataE", !16, i64 0, !16, i64 8, !16, i64 16}
!93 = !{!"_ZTSSt6vectorIhSaIhEE", !94, i64 0}
!94 = !{!"_ZTSSt12_Vector_baseIhSaIhEE", !95, i64 0}
!95 = !{!"_ZTSNSt12_Vector_baseIhSaIhEE12_Vector_implE", !96, i64 0}
!96 = !{!"_ZTSNSt12_Vector_baseIhSaIhEE17_Vector_impl_dataE", !16, i64 0, !16, i64 8, !16, i64 16}
!97 = !{!"_ZTSSt6vectorIS_IN6Crypto9SignatureESaIS1_EESaIS3_EE", !98, i64 0}
!98 = !{!"_ZTSSt12_Vector_baseISt6vectorIN6Crypto9SignatureESaIS2_EESaIS4_EE", !99, i64 0}
!99 = !{!"_ZTSNSt12_Vector_baseISt6vectorIN6Crypto9SignatureESaIS2_EESaIS4_EE12_Vector_implE", !100, i64 0}
!100 = !{!"_ZTSNSt12_Vector_baseISt6vectorIN6Crypto9SignatureESaIS2_EESaIS4_EE17_Vector_impl_dataE", !16, i64 0, !16, i64 8, !16, i64 16}
!101 = !{!79, !6, i64 216}
!102 = !{i64 0, i64 1, !103, i64 1, i64 1, !103, i64 2, i64 1, !103, i64 3, i64 1, !103, i64 4, i64 1, !103}
!103 = !{!64, !64, i64 0}
!104 = !{!10, !16, i64 72}
!105 = !{!106, !106, i64 0}
!106 = !{!"vtable pointer", !8, i64 0}
!107 = !{i64 0, i64 4, !108, i64 4, i64 32, !109, i64 36, i64 4, !108, i64 40, i64 32, !109}
!108 = !{!20, !20, i64 0}
!109 = !{!7, !7, i64 0}
!110 = distinct !{!110, !111}
!111 = !{!"llvm.loop.mustprogress"}


; Effective O3 passes: EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,LICMPass,PostOrderFunctionAttrsPass,ReassociatePass,SROAPass,SimplifyCFGPass