; LLVM IR from dynexcoin/Dynex :: src/BlockchainExplorer (BlockchainExplorerDataBuilder)

; 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"

%"struct.Crypto::Hash" = type { [32 x i8] }
%"class.boost::value_initialized.79" = type { %"class.boost::initialized.80" }
%"class.boost::initialized.80" = type { i32 }
%"class.boost::value_initialized" = type { %"class.boost::initialized" }
%"class.boost::initialized" = type { %"struct.Crypto::Hash" }
%"struct.DynexCN::Block" = type { %"struct.DynexCN::BlockHeader", %"struct.DynexCN::ParentBlock", %"struct.DynexCN::Transaction", %"class.std::vector.47" }
%"struct.DynexCN::BlockHeader" = type { i8, i8, i32, i64, %"struct.Crypto::Hash" }
%"struct.DynexCN::ParentBlock" = type { i8, i8, %"struct.Crypto::Hash", i16, %"class.std::vector.47", %"struct.DynexCN::Transaction", %"class.std::vector.47" }
%"struct.DynexCN::Transaction" = type { %"struct.DynexCN::TransactionPrefix", %"class.std::vector.14" }
%"struct.DynexCN::TransactionPrefix" = type { i8, i64, %"class.std::vector", %"class.std::vector.4", %"class.std::vector.9" }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = 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.4" = type { %"struct.std::_Vector_base.5" }
%"struct.std::_Vector_base.5" = 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.9" = type { %"struct.std::_Vector_base.10" }
%"struct.std::_Vector_base.10" = 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.14" = type { %"struct.std::_Vector_base.15" }
%"struct.std::_Vector_base.15" = type { %"struct.std::_Vector_base<std::vector<Crypto::Signature>, std::allocator<std::vector<Crypto::Signature>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::vector<Crypto::Signature>, std::allocator<std::vector<Crypto::Signature>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::vector<Crypto::Signature>, std::allocator<std::vector<Crypto::Signature>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::vector<Crypto::Signature>, std::allocator<std::vector<Crypto::Signature>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.47" = type { %"struct.std::_Vector_base.48" }
%"struct.std::_Vector_base.48" = 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.__gnu_cxx::__normal_iterator.81" = type { ptr }
%"class.std::vector.82" = type { %"struct.std::_Vector_base.83" }
%"struct.std::_Vector_base.83" = type { %"struct.std::_Vector_base<Crypto::Signature, std::allocator<Crypto::Signature>>::_Vector_impl" }
%"struct.std::_Vector_base<Crypto::Signature, std::allocator<Crypto::Signature>>::_Vector_impl" = type { %"struct.std::_Vector_base<Crypto::Signature, std::allocator<Crypto::Signature>>::_Vector_impl_data" }
%"struct.std::_Vector_base<Crypto::Signature, std::allocator<Crypto::Signature>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.__gnu_cxx::__normal_iterator.87" = type { ptr }
%"class.__gnu_cxx::__normal_iterator" = type { ptr }
%"class.boost::variant.88" = type { i32, [4 x i8], %"class.boost::aligned_storage.89" }
%"class.boost::aligned_storage.89" = type { %"struct.boost::detail::aligned_storage::aligned_storage_imp.90" }
%"struct.boost::detail::aligned_storage::aligned_storage_imp.90" = type { %"union.boost::detail::aligned_storage::aligned_storage_imp<96, 8>::data_t" }
%"union.boost::detail::aligned_storage::aligned_storage_imp<96, 8>::data_t" = type { [96 x i8] }
%"struct.DynexCN::BaseInputDetails" = type { %"struct.DynexCN::BaseInput", i64 }
%"struct.DynexCN::BaseInput" = type { i32 }
%"class.__gnu_cxx::__normal_iterator.57" = type { ptr }
%"struct.DynexCN::KeyInputDetails" = type { %"struct.DynexCN::KeyInput", i64, %"class.std::vector.91" }
%"struct.DynexCN::KeyInput" = type { i64, %"class.std::vector.19", %"struct.Crypto::KeyImage" }
%"class.std::vector.19" = type { %"struct.std::_Vector_base.20" }
%"struct.std::_Vector_base.20" = type { %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl" }
%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl" = type { %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.Crypto::KeyImage" = type { [32 x i8] }
%"class.std::vector.91" = type { %"struct.std::_Vector_base.92" }
%"struct.std::_Vector_base.92" = type { %"struct.std::_Vector_base<DynexCN::TransactionOutputReferenceDetails, std::allocator<DynexCN::TransactionOutputReferenceDetails>>::_Vector_impl" }
%"struct.std::_Vector_base<DynexCN::TransactionOutputReferenceDetails, std::allocator<DynexCN::TransactionOutputReferenceDetails>>::_Vector_impl" = type { %"struct.std::_Vector_base<DynexCN::TransactionOutputReferenceDetails, std::allocator<DynexCN::TransactionOutputReferenceDetails>>::_Vector_impl_data" }
%"struct.std::_Vector_base<DynexCN::TransactionOutputReferenceDetails, std::allocator<DynexCN::TransactionOutputReferenceDetails>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::__cxx11::list.96" = type { %"class.std::__cxx11::_List_base.97" }
%"class.std::__cxx11::_List_base.97" = type { %"struct.std::__cxx11::_List_base<std::pair<Crypto::Hash, unsigned long>, std::allocator<std::pair<Crypto::Hash, unsigned long>>>::_List_impl" }
%"struct.std::__cxx11::_List_base<std::pair<Crypto::Hash, unsigned long>, std::allocator<std::pair<Crypto::Hash, unsigned long>>>::_List_impl" = type { %"struct.std::__detail::_List_node_header" }
%"struct.std::__detail::_List_node_header" = type { %"struct.std::__detail::_List_node_base", i64 }
%"struct.std::__detail::_List_node_base" = type { ptr, ptr }
%"struct.std::_List_iterator.101" = type { ptr }
%"struct.DynexCN::TransactionOutputReferenceDetails" = type { %"struct.Crypto::Hash", i64 }
%"struct.DynexCN::MultisignatureInputDetails" = type { %"struct.DynexCN::MultisignatureInput", %"struct.DynexCN::TransactionOutputReferenceDetails" }
%"struct.DynexCN::MultisignatureInput" = type { i64, i8, i32 }
%"struct.std::pair" = type { %"struct.Crypto::Hash", i64 }
%"class.boost::range::combined_range" = type { %"class.boost::iterator_range" }
%"class.boost::iterator_range" = type { %"class.boost::iterator_range_detail::iterator_range_base" }
%"class.boost::iterator_range_detail::iterator_range_base" = type { %"class.boost::iterator_range_detail::iterator_range_base.102" }
%"class.boost::iterator_range_detail::iterator_range_base.102" = type { %"class.boost::iterator_range_detail::iterator_range_base.103" }
%"class.boost::iterator_range_detail::iterator_range_base.103" = type { %"class.boost::iterators::zip_iterator", %"class.boost::iterators::zip_iterator" }
%"class.boost::iterators::zip_iterator" = type { %"class.boost::tuples::tuple" }
%"class.boost::tuples::tuple" = type { %"struct.boost::tuples::cons" }
%"struct.boost::tuples::cons" = type { %"class.__gnu_cxx::__normal_iterator.57", %"struct.boost::tuples::cons.106" }
%"struct.boost::tuples::cons.106" = type { %"class.__gnu_cxx::__normal_iterator.107" }
%"class.__gnu_cxx::__normal_iterator.107" = type { ptr }
%"class.boost::tuples::tuple.108" = type { %"struct.boost::tuples::cons.base", [4 x i8] }
%"struct.boost::tuples::cons.base" = type <{ %"struct.DynexCN::TransactionOutput", %"struct.boost::tuples::cons.110" }>
%"struct.DynexCN::TransactionOutput" = type { i64, %"class.boost::variant.58" }
%"class.boost::variant.58" = type { i32, [4 x i8], %"class.boost::aligned_storage.59" }
%"class.boost::aligned_storage.59" = type { %"struct.boost::detail::aligned_storage::aligned_storage_imp.60" }
%"struct.boost::detail::aligned_storage::aligned_storage_imp.60" = type { %"union.boost::detail::aligned_storage::aligned_storage_imp<32, 8>::data_t" }
%"union.boost::detail::aligned_storage::aligned_storage_imp<32, 8>::data_t" = type { [32 x i8] }
%"struct.boost::tuples::cons.110" = type { i32 }
%"struct.boost::tuples::cons.111" = type { ptr, %"struct.boost::tuples::cons.112" }
%"struct.boost::tuples::cons.112" = type { ptr }
%"struct.DynexCN::transactionOutputDetails2" = type { %"struct.DynexCN::TransactionOutput", i64 }
%"struct.DynexCN::TransactionDetails" = type { %"struct.Crypto::Hash", i64, i64, i64, i64, i64, i64, i64, i8, %"struct.Crypto::Hash", i8, i8, %"struct.Crypto::Hash", i32, %"struct.DynexCN::TransactionExtraDetails2", %"class.std::vector.14", %"class.std::vector.61", %"class.std::vector.66", %"class.std::__cxx11::basic_string", %"class.std::vector.34", %"class.std::vector.34", %"struct.Crypto::SecretKey" }
%"struct.DynexCN::TransactionExtraDetails2" = type { %"class.std::vector.39", %"struct.Crypto::PublicKey", %"class.std::vector.9", %"class.std::vector.9", %"class.std::__cxx11::basic_string", %"class.std::vector.34", %"class.std::vector.34", %"struct.Crypto::SecretKey" }
%"class.std::vector.39" = type { %"struct.std::_Vector_base.40" }
%"struct.std::_Vector_base.40" = type { %"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl" }
%"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl" = type { %"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl_data" }
%"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.Crypto::PublicKey" = type { [32 x i8] }
%"class.std::vector.61" = type { %"struct.std::_Vector_base.62" }
%"struct.std::_Vector_base.62" = type { %"struct.std::_Vector_base<boost::variant<DynexCN::BaseInputDetails, DynexCN::KeyInputDetails, DynexCN::MultisignatureInputDetails>, std::allocator<boost::variant<DynexCN::BaseInputDetails, DynexCN::KeyInputDetails, DynexCN::MultisignatureInputDetails>>>::_Vector_impl" }
%"struct.std::_Vector_base<boost::variant<DynexCN::BaseInputDetails, DynexCN::KeyInputDetails, DynexCN::MultisignatureInputDetails>, std::allocator<boost::variant<DynexCN::BaseInputDetails, DynexCN::KeyInputDetails, DynexCN::MultisignatureInputDetails>>>::_Vector_impl" = type { %"struct.std::_Vector_base<boost::variant<DynexCN::BaseInputDetails, DynexCN::KeyInputDetails, DynexCN::MultisignatureInputDetails>, std::allocator<boost::variant<DynexCN::BaseInputDetails, DynexCN::KeyInputDetails, DynexCN::MultisignatureInputDetails>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<boost::variant<DynexCN::BaseInputDetails, DynexCN::KeyInputDetails, DynexCN::MultisignatureInputDetails>, std::allocator<boost::variant<DynexCN::BaseInputDetails, DynexCN::KeyInputDetails, DynexCN::MultisignatureInputDetails>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.66" = type { %"struct.std::_Vector_base.67" }
%"struct.std::_Vector_base.67" = type { %"struct.std::_Vector_base<DynexCN::transactionOutputDetails2, std::allocator<DynexCN::transactionOutputDetails2>>::_Vector_impl" }
%"struct.std::_Vector_base<DynexCN::transactionOutputDetails2, std::allocator<DynexCN::transactionOutputDetails2>>::_Vector_impl" = type { %"struct.std::_Vector_base<DynexCN::transactionOutputDetails2, std::allocator<DynexCN::transactionOutputDetails2>>::_Vector_impl_data" }
%"struct.std::_Vector_base<DynexCN::transactionOutputDetails2, std::allocator<DynexCN::transactionOutputDetails2>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::vector.34" = type { %"struct.std::_Vector_base.35" }
%"struct.std::_Vector_base.35" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.Crypto::SecretKey" = type { [32 x i8] }
%"class.DynexCN::BlockchainExplorerDataBuilder" = type { ptr, ptr }

@_ZTIN7DynexCN8KeyInputE = external dso_local constant { ptr, ptr }, align 8
@_ZTIN7DynexCN9BaseInputE = external dso_local constant { ptr, ptr }, align 8
@_ZTIN7DynexCN19MultisignatureInputE = external dso_local constant { ptr, ptr }, align 8

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

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN9__gnu_cxxneIPKN5boost7variantIN7DynexCN9BaseInputEJNS3_8KeyInputENS3_19MultisignatureInputEEEESt6vectorIS7_SaIS7_EEEEbRKNS_17__normal_iteratorIT_T0_EESI_(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(72) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN5boost7variantIN7DynexCN9BaseInputEJNS3_8KeyInputENS3_19MultisignatureInputEEEESt6vectorIS7_SaIS7_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8)) #3 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(64) ptr @_ZN5boost3getIN7DynexCN8KeyInputENS1_9BaseInputEJS2_NS1_19MultisignatureInputEEEENS_13add_referenceIKT_E4typeERKNS_7variantIT0_JDpT1_EEE(ptr noundef nonnull align 8 dereferenceable(72)) #5

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

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

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

declare i32 @__gxx_personality_v0(...)

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN7DynexCN29BlockchainExplorerDataBuilder11fillTxExtraERKSt6vectorIhSaIhEERNS_24TransactionExtraDetails2E(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(216)) #1 align 2

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN9__gnu_cxxneIPKN7DynexCN17TransactionOutputESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(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(48) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN7DynexCN17TransactionOutputESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8)) #3 align 2

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZN5boost3getIN7DynexCN9BaseInputES2_JNS1_8KeyInputENS1_19MultisignatureInputEEEENS_13add_referenceIKT_E4typeERKNS_7variantIT0_JDpT1_EEE(ptr noundef nonnull align 8 dereferenceable(72)) #5

; Function Attrs: mustprogress uwtable
declare dso_local noundef i64 @_ZN7DynexCN19getObjectBinarySizeINS_11TransactionEEEmRKT_(ptr noundef nonnull align 8 dereferenceable(112)) #1

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_ZN7DynexCN29BlockchainExplorerDataBuilder22fillTransactionDetailsERKNS_11TransactionERNS_18TransactionDetailsEm(ptr noundef nonnull align 8 dereferenceable(16) %0, ptr noundef nonnull align 8 dereferenceable(112) %1, ptr noundef nonnull align 8 dereferenceable(560) %2, i64 noundef %3) #1 align 2 personality ptr @__gxx_personality_v0 {
  %5 = alloca i1, align 1
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca ptr, align 8
  %9 = alloca i64, align 8
  %10 = alloca %"struct.Crypto::Hash", align 1
  %11 = alloca %"struct.Crypto::Hash", align 1
  %12 = alloca i32, align 4
  %13 = alloca %"class.boost::value_initialized.79", align 4
  %14 = alloca %"class.boost::value_initialized", align 1
  %15 = alloca %"struct.DynexCN::Block", align 8
  %16 = alloca ptr, align 8
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca i64, align 8
  %20 = alloca i64, align 8
  %21 = alloca i64, align 8
  %22 = alloca %"struct.Crypto::Hash", align 1
  %23 = alloca %"class.boost::value_initialized", align 1
  %24 = alloca ptr, align 8
  %25 = alloca %"class.__gnu_cxx::__normal_iterator.81", align 8
  %26 = alloca %"class.__gnu_cxx::__normal_iterator.81", align 8
  %27 = alloca ptr, align 8
  %28 = alloca %"class.std::vector.82", align 8
  %29 = alloca ptr, align 8
  %30 = alloca %"class.__gnu_cxx::__normal_iterator.87", align 8
  %31 = alloca %"class.__gnu_cxx::__normal_iterator.87", align 8
  %32 = alloca ptr, align 8
  %33 = alloca ptr, align 8
  %34 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %35 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %36 = alloca ptr, align 8
  %37 = alloca %"class.boost::variant.88", align 8
  %38 = alloca %"struct.DynexCN::BaseInputDetails", align 8
  %39 = alloca ptr, align 8
  %40 = alloca %"class.__gnu_cxx::__normal_iterator.57", align 8
  %41 = alloca %"class.__gnu_cxx::__normal_iterator.57", align 8
  %42 = alloca ptr, align 8
  %43 = alloca %"struct.DynexCN::KeyInputDetails", align 8
  %44 = alloca ptr, align 8
  %45 = alloca %"class.std::__cxx11::list.96", align 8
  %46 = alloca ptr, align 8
  %47 = alloca %"struct.std::_List_iterator.101", align 8
  %48 = alloca %"struct.std::_List_iterator.101", align 8
  %49 = alloca ptr, align 8
  %50 = alloca %"struct.DynexCN::TransactionOutputReferenceDetails", align 8
  %51 = alloca %"struct.DynexCN::MultisignatureInputDetails", align 8
  %52 = alloca ptr, align 8
  %53 = alloca %"struct.std::pair", align 8
  %54 = alloca %"class.std::vector.19", align 8
  %55 = alloca i64, align 8
  %56 = alloca i32, align 4
  %57 = alloca %"class.boost::range::combined_range", align 8
  %58 = alloca ptr, align 8
  %59 = alloca %"class.boost::iterators::zip_iterator", align 8
  %60 = alloca %"class.boost::iterators::zip_iterator", align 8
  %61 = alloca ptr, align 8
  %62 = alloca %"class.boost::tuples::tuple.108", align 8
  %63 = alloca %"struct.boost::tuples::cons.111", align 8
  %64 = alloca %"struct.DynexCN::transactionOutputDetails2", align 8
  store ptr %0, ptr %6, align 8, !tbaa !5
  store ptr %1, ptr %7, align 8, !tbaa !5
  store ptr %2, ptr %8, align 8, !tbaa !5
  store i64 %3, ptr %9, align 8, !tbaa !9
  %65 = load ptr, ptr %6, align 8
  call void @llvm.lifetime.start.p0(i64 32, ptr %10) #7
  %66 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN7DynexCN13getObjectHashINS_11TransactionEEEN6Crypto4HashERKT_(ptr dead_on_unwind writable sret(%"struct.Crypto::Hash") align 1 %10, ptr noundef nonnull align 8 dereferenceable(112) %66)
  %67 = load ptr, ptr %8, align 8, !tbaa !5
  %68 = getelementptr inbounds %"struct.DynexCN::TransactionDetails", ptr %67, i32 0, i32 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %68, ptr align 1 %10, i64 32, i1 false), !tbaa.struct !11
  %69 = load ptr, ptr %7, align 8, !tbaa !5
  %70 = getelementptr inbounds %"struct.DynexCN::TransactionPrefix", ptr %69, i32 0, i32 0
  %71 = load i8, ptr %70, align 8, !tbaa !13
  %72 = load ptr, ptr %8, align 8, !tbaa !5
  %73 = getelementptr inbounds %"struct.DynexCN::TransactionDetails", ptr %72, i32 0, i32 8
  store i8 %71, ptr %73, align 8, !tbaa !27
  %74 = load i64, ptr %9, align 8, !tbaa !9
  %75 = load ptr, ptr %8, align 8, !tbaa !5
  %76 = getelementptr inbounds %"struct.DynexCN::TransactionDetails", ptr %75, i32 0, i32 7
  store i64 %74, ptr %76, align 8, !tbaa !57
  call void @llvm.lifetime.start.p0(i64 32, ptr %11) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #7
  %77 = getelementptr inbounds %"class.DynexCN::BlockchainExplorerDataBuilder", ptr %65, i32 0, i32 0
  %78 = load ptr, ptr %77, align 8, !tbaa !58
  %79 = load ptr, ptr %78, align 8, !tbaa !60
  %80 = getelementptr inbounds ptr, ptr %79, i64 38
  %81 = load ptr, ptr %80, align 8
  %82 = call noundef zeroext i1 %81(ptr noundef nonnull align 8 dereferenceable(8) %78, ptr noundef nonnull align 1 dereferenceable(32) %10, ptr noundef nonnull align 1 dereferenceable(32) %11, ptr noundef nonnull align 4 dereferenceable(4) %12)
  br i1 %82, label %93, label %83

83:                                               ; preds = %4
  %84 = load ptr, ptr %8, align 8, !tbaa !5
  %85 = getelementptr inbounds %"struct.DynexCN::TransactionDetails", ptr %84, i32 0, i32 11
  store i8 0, ptr %85, align 2, !tbaa !62
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #7
  call void @_ZN5boost17value_initializedIjEC2Ev(ptr noundef nonnull align 4 dereferenceable(4) %13)
  %86 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN5boost17value_initializedIjEcvRjEv(ptr noundef nonnull align 4 dereferenceable(4) %13)
  %87 = load i32, ptr %86, align 4, !tbaa !63
  %88 = load ptr, ptr %8, align 8, !tbaa !5
  %89 = getelementptr inbounds %"struct.DynexCN::TransactionDetails", ptr %88, i32 0, i32 13
  store i32 %87, ptr %89, align 4, !tbaa !64
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %14) #7
  call void @_ZN5boost17value_initializedIN6Crypto4HashEEC2Ev(ptr noundef nonnull align 1 dereferenceable(32) %14)
  %90 = call noundef nonnull align 1 dereferenceable(32) ptr @_ZN5boost17value_initializedIN6Crypto4HashEEcvRS2_Ev(ptr noundef nonnull align 1 dereferenceable(32) %14)
  %91 = load ptr, ptr %8, align 8, !tbaa !5
  %92 = getelementptr inbounds %"struct.DynexCN::TransactionDetails", ptr %91, i32 0, i32 12
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %92, ptr align 1 %90, i64 32, i1 false), !tbaa.struct !11
  call void @llvm.lifetime.end.p0(i64 32, ptr %14) #7
  br label %125

93:                                               ; preds = %4
  %94 = load ptr, ptr %8, align 8, !tbaa !5
  %95 = getelementptr inbounds %"struct.DynexCN::TransactionDetails", ptr %94, i32 0, i32 11
  store i8 1, ptr %95, align 2, !tbaa !62
  %96 = load i32, ptr %12, align 4, !tbaa !63
  %97 = load ptr, ptr %8, align 8, !tbaa !5
  %98 = getelementptr inbounds %"struct.DynexCN::TransactionDetails", ptr %97, i32 0, i32 13
  store i32 %96, ptr %98, align 4, !tbaa !64
  %99 = load ptr, ptr %8, align 8, !tbaa !5
  %100 = getelementptr inbounds %"struct.DynexCN::TransactionDetails", ptr %99, i32 0, i32 12
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %100, ptr align 1 %11, i64 32, i1 false), !tbaa.struct !11
  %101 = load i64, ptr %9, align 8, !tbaa !9
  %102 = icmp eq i64 %101, 0
  br i1 %102, label %103, label %124

103:                                              ; preds = %93
  call void @llvm.lifetime.start.p0(i64 384, ptr %15) #7
  call void @_ZN7DynexCN5BlockC2Ev(ptr noundef nonnull align 8 dereferenceable(384) %15) #7
  %104 = getelementptr inbounds %"class.DynexCN::BlockchainExplorerDataBuilder", ptr %65, i32 0, i32 0
  %105 = load ptr, ptr %104, align 8, !tbaa !58
  %106 = load ptr, ptr %105, align 8, !tbaa !60
  %107 = getelementptr inbounds ptr, ptr %106, i64 28
  %108 = load ptr, ptr %107, align 8
  %109 = invoke noundef zeroext i1 %108(ptr noundef nonnull align 8 dereferenceable(8) %105, ptr noundef nonnull align 1 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(384) %15)
          to label %110 unwind label %112

110:                                              ; preds = %103
  br i1 %109, label %116, label %111

111:                                              ; preds = %110
  store i1 false, ptr %5, align 1
  store i32 1, ptr %18, align 4
  br label %121

112:                                              ; preds = %103
  %113 = landingpad { ptr, i32 }
          cleanup
  %114 = extractvalue { ptr, i32 } %113, 0
  store ptr %114, ptr %16, align 8
  %115 = extractvalue { ptr, i32 } %113, 1
  store i32 %115, ptr %17, align 4
  call void @_ZN7DynexCN5BlockD2Ev(ptr noundef nonnull align 8 dereferenceable(384) %15) #7
  call void @llvm.lifetime.end.p0(i64 384, ptr %15) #7
  br label %587

116:                                              ; preds = %110
  %117 = getelementptr inbounds %"struct.DynexCN::BlockHeader", ptr %15, i32 0, i32 3
  %118 = load i64, ptr %117, align 8, !tbaa !65
  %119 = load ptr, ptr %8, align 8, !tbaa !5
  %120 = getelementptr inbounds %"struct.DynexCN::TransactionDetails", ptr %119, i32 0, i32 7
  store i64 %118, ptr %120, align 8, !tbaa !57
  store i32 0, ptr %18, align 4
  br label %121

121:                                              ; preds = %116, %111
  call void @_ZN7DynexCN5BlockD2Ev(ptr noundef nonnull align 8 dereferenceable(384) %15) #7
  call void @llvm.lifetime.end.p0(i64 384, ptr %15) #7
  %122 = load i32, ptr %18, align 4
  switch i32 %122, label %585 [
    i32 0, label %123
  ]

123:                                              ; preds = %121
  br label %124

124:                                              ; preds = %123, %93
  br label %125

125:                                              ; preds = %124, %83
  %126 = load ptr, ptr %7, align 8, !tbaa !5
  %127 = call noundef i64 @_ZN7DynexCN19getObjectBinarySizeINS_11TransactionEEEmRKT_(ptr noundef nonnull align 8 dereferenceable(112) %126)
  %128 = load ptr, ptr %8, align 8, !tbaa !5
  %129 = getelementptr inbounds %"struct.DynexCN::TransactionDetails", ptr %128, i32 0, i32 1
  store i64 %127, ptr %129, align 8, !tbaa !67
  %130 = load ptr, ptr %7, align 8, !tbaa !5
  %131 = getelementptr inbounds %"struct.DynexCN::TransactionPrefix", ptr %130, i32 0, i32 1
  %132 = load i64, ptr %131, align 8, !tbaa !68
  %133 = load ptr, ptr %8, align 8, !tbaa !5
  %134 = getelementptr inbounds %"struct.DynexCN::TransactionDetails", ptr %133, i32 0, i32 6
  store i64 %132, ptr %134, align 8, !tbaa !69
  %135 = load ptr, ptr %7, align 8, !tbaa !5
  %136 = call noundef i64 @_ZN7DynexCN21get_outs_money_amountERKNS_11TransactionE(ptr noundef nonnull align 8 dereferenceable(112) %135)
  %137 = load ptr, ptr %8, align 8, !tbaa !5
  %138 = getelementptr inbounds %"struct.DynexCN::TransactionDetails", ptr %137, i32 0, i32 4
  store i64 %136, ptr %138, align 8, !tbaa !70
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #7
  %139 = load ptr, ptr %7, align 8, !tbaa !5
  %140 = call noundef zeroext i1 @_ZN7DynexCN23get_inputs_money_amountERKNS_11TransactionERm(ptr noundef nonnull align 8 dereferenceable(112) %139, ptr noundef nonnull align 8 dereferenceable(8) %19)
  br i1 %140, label %142, label %141

141:                                              ; preds = %125
  store i1 false, ptr %5, align 1
  store i32 1, ptr %18, align 4
  br label %584

142:                                              ; preds = %125
  %143 = load i64, ptr %19, align 8, !tbaa !9
  %144 = load ptr, ptr %8, align 8, !tbaa !5
  %145 = getelementptr inbounds %"struct.DynexCN::TransactionDetails", ptr %144, i32 0, i32 3
  store i64 %143, ptr %145, align 8, !tbaa !71
  %146 = load ptr, ptr %7, align 8, !tbaa !5
  %147 = getelementptr inbounds %"struct.DynexCN::TransactionPrefix", ptr %146, i32 0, i32 2
  %148 = call noundef i64 @_ZNKSt6vectorIN5boost7variantIN7DynexCN9BaseInputEJNS2_8KeyInputENS2_19MultisignatureInputEEEESaIS6_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %147) #7
  %149 = icmp ugt i64 %148, 0
  br i1 %149, label %150, label %161

150:                                              ; preds = %142
  %151 = load ptr, ptr %7, align 8, !tbaa !5
  %152 = getelementptr inbounds %"struct.DynexCN::TransactionPrefix", ptr %151, i32 0, i32 2
  %153 = call noundef nonnull align 8 dereferenceable(72) ptr @_ZNKSt6vectorIN5boost7variantIN7DynexCN9BaseInputEJNS2_8KeyInputENS2_19MultisignatureInputEEEESaIS6_EE5frontEv(ptr noundef nonnull align 8 dereferenceable(24) %152) #7
  %154 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK5boost7variantIN7DynexCN9BaseInputEJNS1_8KeyInputENS1_19MultisignatureInputEEE4typeEv(ptr noundef nonnull align 8 dereferenceable(72) %153)
  %155 = call noundef zeroext i1 @_ZNKSt9type_infoeqERKS_(ptr noundef nonnull align 8 dereferenceable(16) %154, ptr noundef nonnull align 8 dereferenceable(16) @_ZTIN7DynexCN9BaseInputE) #7
  br i1 %155, label %156, label %161

156:                                              ; preds = %150
  %157 = load ptr, ptr %8, align 8, !tbaa !5
  %158 = getelementptr inbounds %"struct.DynexCN::TransactionDetails", ptr %157, i32 0, i32 2
  store i64 0, ptr %158, align 8, !tbaa !72
  %159 = load ptr, ptr %8, align 8, !tbaa !5
  %160 = getelementptr inbounds %"struct.DynexCN::TransactionDetails", ptr %159, i32 0, i32 5
  store i64 0, ptr %160, align 8, !tbaa !73
  br label %185

161:                                              ; preds = %150, %142
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #7
  %162 = load ptr, ptr %7, align 8, !tbaa !5
  %163 = call noundef zeroext i1 @_ZN7DynexCN10get_tx_feeERKNS_11TransactionERm(ptr noundef nonnull align 8 dereferenceable(112) %162, ptr noundef nonnull align 8 dereferenceable(8) %20)
  br i1 %163, label %165, label %164

164:                                              ; preds = %161
  store i1 false, ptr %5, align 1
  store i32 1, ptr %18, align 4
  br label %182

165:                                              ; preds = %161
  %166 = load i64, ptr %20, align 8, !tbaa !9
  %167 = load ptr, ptr %8, align 8, !tbaa !5
  %168 = getelementptr inbounds %"struct.DynexCN::TransactionDetails", ptr %167, i32 0, i32 2
  store i64 %166, ptr %168, align 8, !tbaa !72
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #7
  %169 = getelementptr inbounds %"class.DynexCN::BlockchainExplorerDataBuilder", ptr %65, i32 0, i32 0
  %170 = load ptr, ptr %169, align 8, !tbaa !58
  %171 = load ptr, ptr %7, align 8, !tbaa !5
  %172 = load ptr, ptr %170, align 8, !tbaa !60
  %173 = getelementptr inbounds ptr, ptr %172, i64 58
  %174 = load ptr, ptr %173, align 8
  %175 = call noundef zeroext i1 %174(ptr noundef nonnull align 8 dereferenceable(8) %170, ptr noundef nonnull align 8 dereferenceable(112) %171, ptr noundef nonnull align 8 dereferenceable(8) %21)
  br i1 %175, label %177, label %176

176:                                              ; preds = %165
  store i1 false, ptr %5, align 1
  store i32 1, ptr %18, align 4
  br label %181

177:                                              ; preds = %165
  %178 = load i64, ptr %21, align 8, !tbaa !9
  %179 = load ptr, ptr %8, align 8, !tbaa !5
  %180 = getelementptr inbounds %"struct.DynexCN::TransactionDetails", ptr %179, i32 0, i32 5
  store i64 %178, ptr %180, align 8, !tbaa !73
  store i32 0, ptr %18, align 4
  br label %181

181:                                              ; preds = %177, %176
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #7
  br label %182

182:                                              ; preds = %181, %164
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #7
  %183 = load i32, ptr %18, align 4
  switch i32 %183, label %584 [
    i32 0, label %184
  ]

184:                                              ; preds = %182
  br label %185

185:                                              ; preds = %184, %156
  call void @llvm.lifetime.start.p0(i64 32, ptr %22) #7
  %186 = load ptr, ptr %7, align 8, !tbaa !5
  %187 = call noundef zeroext i1 @_ZN7DynexCN29BlockchainExplorerDataBuilder12getPaymentIdERKNS_11TransactionERN6Crypto4HashE(ptr noundef nonnull align 8 dereferenceable(112) %186, ptr noundef nonnull align 1 dereferenceable(32) %22)
  br i1 %187, label %188, label %191

188:                                              ; preds = %185
  %189 = load ptr, ptr %8, align 8, !tbaa !5
  %190 = getelementptr inbounds %"struct.DynexCN::TransactionDetails", ptr %189, i32 0, i32 9
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %190, ptr align 1 %22, i64 32, i1 false), !tbaa.struct !11
  br label %195

191:                                              ; preds = %185
  call void @llvm.lifetime.start.p0(i64 32, ptr %23) #7
  call void @_ZN5boost17value_initializedIN6Crypto4HashEEC2Ev(ptr noundef nonnull align 1 dereferenceable(32) %23)
  %192 = call noundef nonnull align 1 dereferenceable(32) ptr @_ZN5boost17value_initializedIN6Crypto4HashEEcvRS2_Ev(ptr noundef nonnull align 1 dereferenceable(32) %23)
  %193 = load ptr, ptr %8, align 8, !tbaa !5
  %194 = getelementptr inbounds %"struct.DynexCN::TransactionDetails", ptr %193, i32 0, i32 9
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %194, ptr align 1 %192, i64 32, i1 false), !tbaa.struct !11
  call void @llvm.lifetime.end.p0(i64 32, ptr %23) #7
  br label %195

195:                                              ; preds = %191, %188
  %196 = load ptr, ptr %7, align 8, !tbaa !5
  %197 = getelementptr inbounds %"struct.DynexCN::TransactionPrefix", ptr %196, i32 0, i32 4
  %198 = load ptr, ptr %8, align 8, !tbaa !5
  %199 = getelementptr inbounds %"struct.DynexCN::TransactionDetails", ptr %198, i32 0, i32 14
  %200 = call noundef zeroext i1 @_ZN7DynexCN29BlockchainExplorerDataBuilder11fillTxExtraERKSt6vectorIhSaIhEERNS_24TransactionExtraDetails2E(ptr noundef nonnull align 8 dereferenceable(16) %65, ptr noundef nonnull align 8 dereferenceable(24) %197, ptr noundef nonnull align 8 dereferenceable(216) %199)
  %201 = load ptr, ptr %8, align 8, !tbaa !5
  %202 = getelementptr inbounds %"struct.DynexCN::TransactionDetails", ptr %201, i32 0, i32 14
  %203 = getelementptr inbounds %"struct.DynexCN::TransactionExtraDetails2", ptr %202, i32 0, i32 4
  %204 = load ptr, ptr %8, align 8, !tbaa !5
  %205 = getelementptr inbounds %"struct.DynexCN::TransactionDetails", ptr %204, i32 0, i32 18
  %206 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %205, ptr noundef nonnull align 8 dereferenceable(32) %203)
  %207 = load ptr, ptr %8, align 8, !tbaa !5
  %208 = getelementptr inbounds %"struct.DynexCN::TransactionDetails", ptr %207, i32 0, i32 14
  %209 = getelementptr inbounds %"struct.DynexCN::TransactionExtraDetails2", ptr %208, i32 0, i32 5
  %210 = load ptr, ptr %8, align 8, !tbaa !5
  %211 = getelementptr inbounds %"struct.DynexCN::TransactionDetails", ptr %210, i32 0, i32 19
  %212 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEaSERKS7_(ptr noundef nonnull align 8 dereferenceable(24) %211, ptr noundef nonnull align 8 dereferenceable(24) %209)
  %213 = load ptr, ptr %8, align 8, !tbaa !5
  %214 = getelementptr inbounds %"struct.DynexCN::TransactionDetails", ptr %213, i32 0, i32 14
  %215 = getelementptr inbounds %"struct.DynexCN::TransactionExtraDetails2", ptr %214, i32 0, i32 6
  %216 = load ptr, ptr %8, align 8, !tbaa !5
  %217 = getelementptr inbounds %"struct.DynexCN::TransactionDetails", ptr %216, i32 0, i32 20
  %218 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEaSERKS7_(ptr noundef nonnull align 8 dereferenceable(24) %217, ptr noundef nonnull align 8 dereferenceable(24) %215)
  %219 = load ptr, ptr %8, align 8, !tbaa !5
  %220 = getelementptr inbounds %"struct.DynexCN::TransactionDetails", ptr %219, i32 0, i32 14
  %221 = getelementptr inbounds %"struct.DynexCN::TransactionExtraDetails2", ptr %220, i32 0, i32 7
  %222 = load ptr, ptr %8, align 8, !tbaa !5
  %223 = getelementptr inbounds %"struct.DynexCN::TransactionDetails", ptr %222, i32 0, i32 21
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %223, ptr align 8 %221, i64 32, i1 false), !tbaa.struct !11
  %224 = load ptr, ptr %8, align 8, !tbaa !5
  %225 = getelementptr inbounds %"struct.DynexCN::TransactionDetails", ptr %224, i32 0, i32 15
  %226 = load ptr, ptr %7, align 8, !tbaa !5
  %227 = getelementptr inbounds %"struct.DynexCN::Transaction", ptr %226, i32 0, i32 1
  %228 = call noundef i64 @_ZNKSt6vectorIS_IN6Crypto9SignatureESaIS1_EESaIS3_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %227) #7
  call void @_ZNSt6vectorIS_IN6Crypto9SignatureESaIS1_EESaIS3_EE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %225, i64 noundef %228)
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #7
  %229 = load ptr, ptr %7, align 8, !tbaa !5
  %230 = getelementptr inbounds %"struct.DynexCN::Transaction", ptr %229, i32 0, i32 1
  store ptr %230, ptr %24, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #7
  %231 = load ptr, ptr %24, align 8, !tbaa !5
  %232 = call ptr @_ZNKSt6vectorIS_IN6Crypto9SignatureESaIS1_EESaIS3_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %231) #7
  %233 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.81", ptr %25, i32 0, i32 0
  store ptr %232, ptr %233, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #7
  %234 = load ptr, ptr %24, align 8, !tbaa !5
  %235 = call ptr @_ZNKSt6vectorIS_IN6Crypto9SignatureESaIS1_EESaIS3_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %234) #7
  %236 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.81", ptr %26, i32 0, i32 0
  store ptr %235, ptr %236, align 8
  br label %237

237:                                              ; preds = %273, %195
  %238 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKSt6vectorIN6Crypto9SignatureESaIS3_EES1_IS5_SaIS5_EEEEbRKNS_17__normal_iteratorIT_T0_EESF_(ptr noundef nonnull align 8 dereferenceable(8) %25, ptr noundef nonnull align 8 dereferenceable(8) %26) #7
  br i1 %238, label %240, label %239

239:                                              ; preds = %237
  store i32 2, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #7
  br label %276

240:                                              ; preds = %237
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #7
  %241 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKSt6vectorIN6Crypto9SignatureESaIS3_EES1_IS5_SaIS5_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %25) #7
  store ptr %241, ptr %27, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 24, ptr %28) #7
  call void @_ZNSt6vectorIN6Crypto9SignatureESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %28) #7
  %242 = load ptr, ptr %27, align 8, !tbaa !5
  %243 = call noundef i64 @_ZNKSt6vectorIN6Crypto9SignatureESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %242) #7
  invoke void @_ZNSt6vectorIN6Crypto9SignatureESaIS1_EE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %28, i64 noundef %243)
          to label %244 unwind label %255

244:                                              ; preds = %240
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #7
  %245 = load ptr, ptr %27, align 8, !tbaa !5
  store ptr %245, ptr %29, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #7
  %246 = load ptr, ptr %29, align 8, !tbaa !5
  %247 = call ptr @_ZNKSt6vectorIN6Crypto9SignatureESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %246) #7
  %248 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.87", ptr %30, i32 0, i32 0
  store ptr %247, ptr %248, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #7
  %249 = load ptr, ptr %29, align 8, !tbaa !5
  %250 = call ptr @_ZNKSt6vectorIN6Crypto9SignatureESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %249) #7
  %251 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.87", ptr %31, i32 0, i32 0
  store ptr %250, ptr %251, align 8
  br label %252

252:                                              ; preds = %263, %244
  %253 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN6Crypto9SignatureESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %30, ptr noundef nonnull align 8 dereferenceable(8) %31) #7
  br i1 %253, label %259, label %254

254:                                              ; preds = %252
  store i32 4, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #7
  br label %269

255:                                              ; preds = %269, %240
  %256 = landingpad { ptr, i32 }
          cleanup
  %257 = extractvalue { ptr, i32 } %256, 0
  store ptr %257, ptr %16, align 8
  %258 = extractvalue { ptr, i32 } %256, 1
  store i32 %258, ptr %17, align 4
  br label %275

259:                                              ; preds = %252
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #7
  %260 = call noundef nonnull align 1 dereferenceable(64) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN6Crypto9SignatureESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %30) #7
  store ptr %260, ptr %32, align 8, !tbaa !5
  %261 = load ptr, ptr %32, align 8, !tbaa !5
  invoke void @_ZNSt6vectorIN6Crypto9SignatureESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %28, ptr noundef nonnull align 1 dereferenceable(64) %261)
          to label %262 unwind label %265

262:                                              ; preds = %259
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #7
  br label %263

263:                                              ; preds = %262
  %264 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN6Crypto9SignatureESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %30) #7
  br label %252

265:                                              ; preds = %259
  %266 = landingpad { ptr, i32 }
          cleanup
  %267 = extractvalue { ptr, i32 } %266, 0
  store ptr %267, ptr %16, align 8
  %268 = extractvalue { ptr, i32 } %266, 1
  store i32 %268, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #7
  br label %275

269:                                              ; preds = %254
  %270 = load ptr, ptr %8, align 8, !tbaa !5
  %271 = getelementptr inbounds %"struct.DynexCN::TransactionDetails", ptr %270, i32 0, i32 15
  invoke void @_ZNSt6vectorIS_IN6Crypto9SignatureESaIS1_EESaIS3_EE9push_backEOS3_(ptr noundef nonnull align 8 dereferenceable(24) %271, ptr noundef nonnull align 8 dereferenceable(24) %28)
          to label %272 unwind label %255

272:                                              ; preds = %269
  call void @_ZNSt6vectorIN6Crypto9SignatureESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %28) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %28) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #7
  br label %273

273:                                              ; preds = %272
  %274 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKSt6vectorIN6Crypto9SignatureESaIS3_EES1_IS5_SaIS5_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %25) #7
  br label %237

275:                                              ; preds = %265, %255
  call void @_ZNSt6vectorIN6Crypto9SignatureESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %28) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %28) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #7
  br label %583

276:                                              ; preds = %239
  %277 = load ptr, ptr %8, align 8, !tbaa !5
  %278 = getelementptr inbounds %"struct.DynexCN::TransactionDetails", ptr %277, i32 0, i32 16
  %279 = load ptr, ptr %7, align 8, !tbaa !5
  %280 = getelementptr inbounds %"struct.DynexCN::TransactionPrefix", ptr %279, i32 0, i32 2
  %281 = call noundef i64 @_ZNKSt6vectorIN5boost7variantIN7DynexCN9BaseInputEJNS2_8KeyInputENS2_19MultisignatureInputEEEESaIS6_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %280) #7
  call void @_ZNSt6vectorIN5boost7variantIN7DynexCN16BaseInputDetailsEJNS2_15KeyInputDetailsENS2_26MultisignatureInputDetailsEEEESaIS6_EE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %278, i64 noundef %281)
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #7
  %282 = load ptr, ptr %7, align 8, !tbaa !5
  %283 = getelementptr inbounds %"struct.DynexCN::TransactionPrefix", ptr %282, i32 0, i32 2
  store ptr %283, ptr %33, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #7
  %284 = load ptr, ptr %33, align 8, !tbaa !5
  %285 = call ptr @_ZNKSt6vectorIN5boost7variantIN7DynexCN9BaseInputEJNS2_8KeyInputENS2_19MultisignatureInputEEEESaIS6_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %284) #7
  %286 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %34, i32 0, i32 0
  store ptr %285, ptr %286, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #7
  %287 = load ptr, ptr %33, align 8, !tbaa !5
  %288 = call ptr @_ZNKSt6vectorIN5boost7variantIN7DynexCN9BaseInputEJNS2_8KeyInputENS2_19MultisignatureInputEEEESaIS6_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %287) #7
  %289 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %35, i32 0, i32 0
  store ptr %288, ptr %289, align 8
  br label %290

290:                                              ; preds = %465, %276
  %291 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN5boost7variantIN7DynexCN9BaseInputEJNS3_8KeyInputENS3_19MultisignatureInputEEEESt6vectorIS7_SaIS7_EEEEbRKNS_17__normal_iteratorIT_T0_EESI_(ptr noundef nonnull align 8 dereferenceable(8) %34, ptr noundef nonnull align 8 dereferenceable(8) %35) #7
  br i1 %291, label %293, label %292

292:                                              ; preds = %290
  store i32 6, ptr %18, align 4
  br label %468

293:                                              ; preds = %290
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #7
  %294 = call noundef nonnull align 8 dereferenceable(72) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN5boost7variantIN7DynexCN9BaseInputEJNS3_8KeyInputENS3_19MultisignatureInputEEEESt6vectorIS7_SaIS7_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %34) #7
  store ptr %294, ptr %36, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 104, ptr %37) #7
  call void @_ZN5boost7variantIN7DynexCN16BaseInputDetailsEJNS1_15KeyInputDetailsENS1_26MultisignatureInputDetailsEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(104) %37) #7
  %295 = load ptr, ptr %36, align 8, !tbaa !5
  %296 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK5boost7variantIN7DynexCN9BaseInputEJNS1_8KeyInputENS1_19MultisignatureInputEEE4typeEv(ptr noundef nonnull align 8 dereferenceable(72) %295)
          to label %297 unwind label %319

297:                                              ; preds = %293
  %298 = call noundef zeroext i1 @_ZNKSt9type_infoeqERKS_(ptr noundef nonnull align 8 dereferenceable(16) %296, ptr noundef nonnull align 8 dereferenceable(16) @_ZTIN7DynexCN9BaseInputE) #7
  br i1 %298, label %299, label %340

299:                                              ; preds = %297
  call void @llvm.lifetime.start.p0(i64 16, ptr %38) #7
  %300 = load ptr, ptr %36, align 8, !tbaa !5
  %301 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN5boost3getIN7DynexCN9BaseInputES2_JNS1_8KeyInputENS1_19MultisignatureInputEEEENS_13add_referenceIKT_E4typeERKNS_7variantIT0_JDpT1_EEE(ptr noundef nonnull align 8 dereferenceable(72) %300)
          to label %302 unwind label %323

302:                                              ; preds = %299
  %303 = getelementptr inbounds %"struct.DynexCN::BaseInput", ptr %301, i32 0, i32 0
  %304 = load i32, ptr %303, align 4, !tbaa !74
  %305 = getelementptr inbounds %"struct.DynexCN::BaseInputDetails", ptr %38, i32 0, i32 0
  %306 = getelementptr inbounds %"struct.DynexCN::BaseInput", ptr %305, i32 0, i32 0
  store i32 %304, ptr %306, align 8, !tbaa !76
  %307 = getelementptr inbounds %"struct.DynexCN::BaseInputDetails", ptr %38, i32 0, i32 1
  store i64 0, ptr %307, align 8, !tbaa !78
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #7
  %308 = load ptr, ptr %7, align 8, !tbaa !5
  %309 = getelementptr inbounds %"struct.DynexCN::TransactionPrefix", ptr %308, i32 0, i32 3
  store ptr %309, ptr %39, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #7
  %310 = load ptr, ptr %39, align 8, !tbaa !5
  %311 = call ptr @_ZNKSt6vectorIN7DynexCN17TransactionOutputESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %310) #7
  %312 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.57", ptr %40, i32 0, i32 0
  store ptr %311, ptr %312, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #7
  %313 = load ptr, ptr %39, align 8, !tbaa !5
  %314 = call ptr @_ZNKSt6vectorIN7DynexCN17TransactionOutputESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %313) #7
  %315 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.57", ptr %41, i32 0, i32 0
  store ptr %314, ptr %315, align 8
  br label %316

316:                                              ; preds = %335, %302
  %317 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN7DynexCN17TransactionOutputESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %40, ptr noundef nonnull align 8 dereferenceable(8) %41) #7
  br i1 %317, label %327, label %318

318:                                              ; preds = %316
  store i32 8, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #7
  br label %337

319:                                              ; preds = %455, %409, %340, %293
  %320 = landingpad { ptr, i32 }
          cleanup
  %321 = extractvalue { ptr, i32 } %320, 0
  store ptr %321, ptr %16, align 8
  %322 = extractvalue { ptr, i32 } %320, 1
  store i32 %322, ptr %17, align 4
  br label %467

323:                                              ; preds = %337, %299
  %324 = landingpad { ptr, i32 }
          cleanup
  %325 = extractvalue { ptr, i32 } %324, 0
  store ptr %325, ptr %16, align 8
  %326 = extractvalue { ptr, i32 } %324, 1
  store i32 %326, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %38) #7
  br label %467

327:                                              ; preds = %316
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #7
  %328 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN7DynexCN17TransactionOutputESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %40) #7
  store ptr %328, ptr %42, align 8, !tbaa !5
  %329 = load ptr, ptr %42, align 8, !tbaa !5
  %330 = getelementptr inbounds %"struct.DynexCN::TransactionOutput", ptr %329, i32 0, i32 0
  %331 = load i64, ptr %330, align 8, !tbaa !79
  %332 = getelementptr inbounds %"struct.DynexCN::BaseInputDetails", ptr %38, i32 0, i32 1
  %333 = load i64, ptr %332, align 8, !tbaa !78
  %334 = add i64 %333, %331
  store i64 %334, ptr %332, align 8, !tbaa !78
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #7
  br label %335

335:                                              ; preds = %327
  %336 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN7DynexCN17TransactionOutputESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %40) #7
  br label %316

337:                                              ; preds = %318
  %338 = invoke noundef nonnull align 8 dereferenceable(104) ptr @_ZN5boost7variantIN7DynexCN16BaseInputDetailsEJNS1_15KeyInputDetailsENS1_26MultisignatureInputDetailsEEEaSIS2_EENS_9enable_ifINS_3mpl3or_INS_7is_sameIT_S5_EENS_6detail7variant29is_variant_constructible_fromIRKSB_NS8_6l_itemIN4mpl_5long_ILl3EEES2_NSI_INSK_ILl2EEES3_NSI_INSK_ILl1EEES4_NS8_5l_endEEEEEEEEENSJ_5bool_ILb0EEESU_SU_EERS5_E4typeESH_(ptr noundef nonnull align 8 dereferenceable(104) %37, ptr noundef nonnull align 8 dereferenceable(16) %38)
          to label %339 unwind label %323

339:                                              ; preds = %337
  call void @llvm.lifetime.end.p0(i64 16, ptr %38) #7
  br label %455

340:                                              ; preds = %297
  %341 = load ptr, ptr %36, align 8, !tbaa !5
  %342 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK5boost7variantIN7DynexCN9BaseInputEJNS1_8KeyInputENS1_19MultisignatureInputEEE4typeEv(ptr noundef nonnull align 8 dereferenceable(72) %341)
          to label %343 unwind label %319

343:                                              ; preds = %340
  %344 = call noundef zeroext i1 @_ZNKSt9type_infoeqERKS_(ptr noundef nonnull align 8 dereferenceable(16) %342, ptr noundef nonnull align 8 dereferenceable(16) @_ZTIN7DynexCN8KeyInputE) #7
  br i1 %344, label %345, label %409

345:                                              ; preds = %343
  call void @llvm.lifetime.start.p0(i64 96, ptr %43) #7
  call void @_ZN7DynexCN15KeyInputDetailsC2Ev(ptr noundef nonnull align 8 dereferenceable(96) %43) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #7
  %346 = load ptr, ptr %36, align 8, !tbaa !5
  %347 = invoke noundef nonnull align 8 dereferenceable(64) ptr @_ZN5boost3getIN7DynexCN8KeyInputENS1_9BaseInputEJS2_NS1_19MultisignatureInputEEEENS_13add_referenceIKT_E4typeERKNS_7variantIT0_JDpT1_EEE(ptr noundef nonnull align 8 dereferenceable(72) %346)
          to label %348 unwind label %362

348:                                              ; preds = %345
  store ptr %347, ptr %44, align 8, !tbaa !5
  %349 = load ptr, ptr %44, align 8, !tbaa !5
  %350 = getelementptr inbounds %"struct.DynexCN::KeyInputDetails", ptr %43, i32 0, i32 0
  %351 = invoke noundef nonnull align 8 dereferenceable(64) ptr @_ZN7DynexCN8KeyInputaSERKS0_(ptr noundef nonnull align 8 dereferenceable(64) %350, ptr noundef nonnull align 8 dereferenceable(64) %349)
          to label %352 unwind label %362

352:                                              ; preds = %348
  call void @llvm.lifetime.start.p0(i64 24, ptr %45) #7
  call void @_ZNSt7__cxx114listISt4pairIN6Crypto4HashEmESaIS4_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %45) #7
  %353 = getelementptr inbounds %"class.DynexCN::BlockchainExplorerDataBuilder", ptr %65, i32 0, i32 0
  %354 = load ptr, ptr %353, align 8, !tbaa !58
  %355 = load ptr, ptr %44, align 8, !tbaa !5
  %356 = load ptr, ptr %354, align 8, !tbaa !60
  %357 = getelementptr inbounds ptr, ptr %356, i64 35
  %358 = load ptr, ptr %357, align 8
  %359 = invoke noundef zeroext i1 %358(ptr noundef nonnull align 8 dereferenceable(8) %354, ptr noundef nonnull align 8 dereferenceable(64) %355, ptr noundef nonnull align 8 dereferenceable(24) %45)
          to label %360 unwind label %366

360:                                              ; preds = %352
  br i1 %359, label %370, label %361

361:                                              ; preds = %360
  store i1 false, ptr %5, align 1
  store i32 1, ptr %18, align 4
  br label %404

362:                                              ; preds = %348, %345
  %363 = landingpad { ptr, i32 }
          cleanup
  %364 = extractvalue { ptr, i32 } %363, 0
  store ptr %364, ptr %16, align 8
  %365 = extractvalue { ptr, i32 } %363, 1
  store i32 %365, ptr %17, align 4
  br label %408

366:                                              ; preds = %401, %352
  %367 = landingpad { ptr, i32 }
          cleanup
  %368 = extractvalue { ptr, i32 } %367, 0
  store ptr %368, ptr %16, align 8
  %369 = extractvalue { ptr, i32 } %367, 1
  store i32 %369, ptr %17, align 4
  br label %407

370:                                              ; preds = %360
  %371 = load ptr, ptr %44, align 8, !tbaa !5
  %372 = getelementptr inbounds %"struct.DynexCN::KeyInput", ptr %371, i32 0, i32 1
  %373 = call noundef i64 @_ZNKSt6vectorIjSaIjEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %372) #7
  %374 = getelementptr inbounds %"struct.DynexCN::KeyInputDetails", ptr %43, i32 0, i32 1
  store i64 %373, ptr %374, align 8, !tbaa !84
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #7
  store ptr %45, ptr %46, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #7
  %375 = load ptr, ptr %46, align 8, !tbaa !5
  %376 = call ptr @_ZNSt7__cxx114listISt4pairIN6Crypto4HashEmESaIS4_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %375) #7
  %377 = getelementptr inbounds %"struct.std::_List_iterator.101", ptr %47, i32 0, i32 0
  store ptr %376, ptr %377, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #7
  %378 = load ptr, ptr %46, align 8, !tbaa !5
  %379 = call ptr @_ZNSt7__cxx114listISt4pairIN6Crypto4HashEmESaIS4_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %378) #7
  %380 = getelementptr inbounds %"struct.std::_List_iterator.101", ptr %48, i32 0, i32 0
  store ptr %379, ptr %380, align 8
  br label %381

381:                                              ; preds = %395, %370
  %382 = call noundef zeroext i1 @_ZStneRKSt14_List_iteratorISt4pairIN6Crypto4HashEmEES6_(ptr noundef nonnull align 8 dereferenceable(8) %47, ptr noundef nonnull align 8 dereferenceable(8) %48) #7
  br i1 %382, label %384, label %383

383:                                              ; preds = %381
  store i32 10, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #7
  br label %401

384:                                              ; preds = %381
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #7
  %385 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNKSt14_List_iteratorISt4pairIN6Crypto4HashEmEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %47) #7
  store ptr %385, ptr %49, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 40, ptr %50) #7
  %386 = load ptr, ptr %49, align 8, !tbaa !5
  %387 = getelementptr inbounds %"struct.std::pair", ptr %386, i32 0, i32 1
  %388 = load i64, ptr %387, align 8, !tbaa !96
  %389 = getelementptr inbounds %"struct.DynexCN::TransactionOutputReferenceDetails", ptr %50, i32 0, i32 1
  store i64 %388, ptr %389, align 8, !tbaa !98
  %390 = load ptr, ptr %49, align 8, !tbaa !5
  %391 = getelementptr inbounds %"struct.std::pair", ptr %390, i32 0, i32 0
  %392 = getelementptr inbounds %"struct.DynexCN::TransactionOutputReferenceDetails", ptr %50, i32 0, i32 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %392, ptr align 8 %391, i64 32, i1 false), !tbaa.struct !11
  %393 = getelementptr inbounds %"struct.DynexCN::KeyInputDetails", ptr %43, i32 0, i32 2
  invoke void @_ZNSt6vectorIN7DynexCN33TransactionOutputReferenceDetailsESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %393, ptr noundef nonnull align 8 dereferenceable(40) %50)
          to label %394 unwind label %397

394:                                              ; preds = %384
  call void @llvm.lifetime.end.p0(i64 40, ptr %50) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #7
  br label %395

395:                                              ; preds = %394
  %396 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt14_List_iteratorISt4pairIN6Crypto4HashEmEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %47) #7
  br label %381

397:                                              ; preds = %384
  %398 = landingpad { ptr, i32 }
          cleanup
  %399 = extractvalue { ptr, i32 } %398, 0
  store ptr %399, ptr %16, align 8
  %400 = extractvalue { ptr, i32 } %398, 1
  store i32 %400, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 40, ptr %50) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #7
  br label %407

401:                                              ; preds = %383
  %402 = invoke noundef nonnull align 8 dereferenceable(104) ptr @_ZN5boost7variantIN7DynexCN16BaseInputDetailsEJNS1_15KeyInputDetailsENS1_26MultisignatureInputDetailsEEEaSIS3_EENS_9enable_ifINS_3mpl3or_INS_7is_sameIT_S5_EENS_6detail7variant29is_variant_constructible_fromIRKSB_NS8_6l_itemIN4mpl_5long_ILl3EEES2_NSI_INSK_ILl2EEES3_NSI_INSK_ILl1EEES4_NS8_5l_endEEEEEEEEENSJ_5bool_ILb0EEESU_SU_EERS5_E4typeESH_(ptr noundef nonnull align 8 dereferenceable(104) %37, ptr noundef nonnull align 8 dereferenceable(96) %43)
          to label %403 unwind label %366

403:                                              ; preds = %401
  store i32 0, ptr %18, align 4
  br label %404

404:                                              ; preds = %403, %361
  call void @_ZNSt7__cxx1110_List_baseISt4pairIN6Crypto4HashEmESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %45) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %45) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #7
  call void @_ZN7DynexCN15KeyInputDetailsD2Ev(ptr noundef nonnull align 8 dereferenceable(96) %43) #7
  call void @llvm.lifetime.end.p0(i64 96, ptr %43) #7
  %405 = load i32, ptr %18, align 4
  switch i32 %405, label %459 [
    i32 0, label %406
  ]

406:                                              ; preds = %404
  br label %454

407:                                              ; preds = %397, %366
  call void @_ZNSt7__cxx1110_List_baseISt4pairIN6Crypto4HashEmESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %45) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %45) #7
  br label %408

408:                                              ; preds = %407, %362
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #7
  call void @_ZN7DynexCN15KeyInputDetailsD2Ev(ptr noundef nonnull align 8 dereferenceable(96) %43) #7
  call void @llvm.lifetime.end.p0(i64 96, ptr %43) #7
  br label %467

409:                                              ; preds = %343
  %410 = load ptr, ptr %36, align 8, !tbaa !5
  %411 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK5boost7variantIN7DynexCN9BaseInputEJNS1_8KeyInputENS1_19MultisignatureInputEEE4typeEv(ptr noundef nonnull align 8 dereferenceable(72) %410)
          to label %412 unwind label %319

412:                                              ; preds = %409
  %413 = call noundef zeroext i1 @_ZNKSt9type_infoeqERKS_(ptr noundef nonnull align 8 dereferenceable(16) %411, ptr noundef nonnull align 8 dereferenceable(16) @_ZTIN7DynexCN19MultisignatureInputE) #7
  br i1 %413, label %414, label %452

414:                                              ; preds = %412
  call void @llvm.lifetime.start.p0(i64 56, ptr %51) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #7
  %415 = load ptr, ptr %36, align 8, !tbaa !5
  %416 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN5boost3getIN7DynexCN19MultisignatureInputENS1_9BaseInputEJNS1_8KeyInputES2_EEENS_13add_referenceIKT_E4typeERKNS_7variantIT0_JDpT1_EEE(ptr noundef nonnull align 8 dereferenceable(72) %415)
          to label %417 unwind label %430

417:                                              ; preds = %414
  store ptr %416, ptr %52, align 8, !tbaa !5
  %418 = load ptr, ptr %52, align 8, !tbaa !5
  %419 = getelementptr inbounds %"struct.DynexCN::MultisignatureInputDetails", ptr %51, i32 0, i32 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %419, ptr align 8 %418, i64 16, i1 false), !tbaa.struct !100
  call void @llvm.lifetime.start.p0(i64 40, ptr %53) #7
  invoke void @_ZNSt4pairIN6Crypto4HashEmEC2IS1_mTnNSt9enable_ifIXsr6__and_ISt37__is_implicitly_default_constructibleIT_ES5_IT0_EEE5valueEbE4typeELb1EEEv(ptr noundef nonnull align 8 dereferenceable(40) %53)
          to label %420 unwind label %434

420:                                              ; preds = %417
  %421 = getelementptr inbounds %"class.DynexCN::BlockchainExplorerDataBuilder", ptr %65, i32 0, i32 0
  %422 = load ptr, ptr %421, align 8, !tbaa !58
  %423 = load ptr, ptr %52, align 8, !tbaa !5
  %424 = load ptr, ptr %422, align 8, !tbaa !60
  %425 = getelementptr inbounds ptr, ptr %424, i64 39
  %426 = load ptr, ptr %425, align 8
  %427 = invoke noundef zeroext i1 %426(ptr noundef nonnull align 8 dereferenceable(8) %422, ptr noundef nonnull align 8 dereferenceable(16) %423, ptr noundef nonnull align 8 dereferenceable(40) %53)
          to label %428 unwind label %434

428:                                              ; preds = %420
  br i1 %427, label %438, label %429

429:                                              ; preds = %428
  store i1 false, ptr %5, align 1
  store i32 1, ptr %18, align 4
  br label %448

430:                                              ; preds = %414
  %431 = landingpad { ptr, i32 }
          cleanup
  %432 = extractvalue { ptr, i32 } %431, 0
  store ptr %432, ptr %16, align 8
  %433 = extractvalue { ptr, i32 } %431, 1
  store i32 %433, ptr %17, align 4
  br label %451

434:                                              ; preds = %438, %420, %417
  %435 = landingpad { ptr, i32 }
          cleanup
  %436 = extractvalue { ptr, i32 } %435, 0
  store ptr %436, ptr %16, align 8
  %437 = extractvalue { ptr, i32 } %435, 1
  store i32 %437, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 40, ptr %53) #7
  br label %451

438:                                              ; preds = %428
  %439 = getelementptr inbounds %"struct.std::pair", ptr %53, i32 0, i32 1
  %440 = load i64, ptr %439, align 8, !tbaa !96
  %441 = getelementptr inbounds %"struct.DynexCN::MultisignatureInputDetails", ptr %51, i32 0, i32 1
  %442 = getelementptr inbounds %"struct.DynexCN::TransactionOutputReferenceDetails", ptr %441, i32 0, i32 1
  store i64 %440, ptr %442, align 8, !tbaa !101
  %443 = getelementptr inbounds %"struct.std::pair", ptr %53, i32 0, i32 0
  %444 = getelementptr inbounds %"struct.DynexCN::MultisignatureInputDetails", ptr %51, i32 0, i32 1
  %445 = getelementptr inbounds %"struct.DynexCN::TransactionOutputReferenceDetails", ptr %444, i32 0, i32 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %445, ptr align 8 %443, i64 32, i1 false), !tbaa.struct !11
  %446 = invoke noundef nonnull align 8 dereferenceable(104) ptr @_ZN5boost7variantIN7DynexCN16BaseInputDetailsEJNS1_15KeyInputDetailsENS1_26MultisignatureInputDetailsEEEaSIS4_EENS_9enable_ifINS_3mpl3or_INS_7is_sameIT_S5_EENS_6detail7variant29is_variant_constructible_fromIRKSB_NS8_6l_itemIN4mpl_5long_ILl3EEES2_NSI_INSK_ILl2EEES3_NSI_INSK_ILl1EEES4_NS8_5l_endEEEEEEEEENSJ_5bool_ILb0EEESU_SU_EERS5_E4typeESH_(ptr noundef nonnull align 8 dereferenceable(104) %37, ptr noundef nonnull align 8 dereferenceable(56) %51)
          to label %447 unwind label %434

447:                                              ; preds = %438
  store i32 0, ptr %18, align 4
  br label %448

448:                                              ; preds = %447, %429
  call void @llvm.lifetime.end.p0(i64 40, ptr %53) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #7
  call void @llvm.lifetime.end.p0(i64 56, ptr %51) #7
  %449 = load i32, ptr %18, align 4
  switch i32 %449, label %459 [
    i32 0, label %450
  ]

450:                                              ; preds = %448
  br label %453

451:                                              ; preds = %434, %430
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #7
  call void @llvm.lifetime.end.p0(i64 56, ptr %51) #7
  br label %467

452:                                              ; preds = %412
  store i1 false, ptr %5, align 1
  store i32 1, ptr %18, align 4
  br label %459

453:                                              ; preds = %450
  br label %454

454:                                              ; preds = %453, %406
  br label %455

455:                                              ; preds = %454, %339
  %456 = load ptr, ptr %8, align 8, !tbaa !5
  %457 = getelementptr inbounds %"struct.DynexCN::TransactionDetails", ptr %456, i32 0, i32 16
  invoke void @_ZNSt6vectorIN5boost7variantIN7DynexCN16BaseInputDetailsEJNS2_15KeyInputDetailsENS2_26MultisignatureInputDetailsEEEESaIS6_EE9push_backEOS6_(ptr noundef nonnull align 8 dereferenceable(24) %457, ptr noundef nonnull align 8 dereferenceable(104) %37)
          to label %458 unwind label %319

458:                                              ; preds = %455
  store i32 0, ptr %18, align 4
  br label %459

459:                                              ; preds = %458, %452, %448, %404
  call void @_ZN5boost7variantIN7DynexCN16BaseInputDetailsEJNS1_15KeyInputDetailsENS1_26MultisignatureInputDetailsEEED2Ev(ptr noundef nonnull align 8 dereferenceable(104) %37) #7
  call void @llvm.lifetime.end.p0(i64 104, ptr %37) #7
  %460 = load i32, ptr %18, align 4
  switch i32 %460, label %462 [
    i32 0, label %461
  ]

461:                                              ; preds = %459
  store i32 0, ptr %18, align 4
  br label %462

462:                                              ; preds = %461, %459
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #7
  %463 = load i32, ptr %18, align 4
  switch i32 %463, label %468 [
    i32 0, label %464
  ]

464:                                              ; preds = %462
  br label %465

465:                                              ; preds = %464
  %466 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN5boost7variantIN7DynexCN9BaseInputEJNS3_8KeyInputENS3_19MultisignatureInputEEEESt6vectorIS7_SaIS7_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %34) #7
  br label %290

467:                                              ; preds = %451, %408, %323, %319
  call void @_ZN5boost7variantIN7DynexCN16BaseInputDetailsEJNS1_15KeyInputDetailsENS1_26MultisignatureInputDetailsEEED2Ev(ptr noundef nonnull align 8 dereferenceable(104) %37) #7
  call void @llvm.lifetime.end.p0(i64 104, ptr %37) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #7
  br label %583

468:                                              ; preds = %462, %292
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #7
  %469 = load i32, ptr %18, align 4
  switch i32 %469, label %582 [
    i32 6, label %470
  ]

470:                                              ; preds = %468
  %471 = load ptr, ptr %8, align 8, !tbaa !5
  %472 = getelementptr inbounds %"struct.DynexCN::TransactionDetails", ptr %471, i32 0, i32 17
  %473 = load ptr, ptr %7, align 8, !tbaa !5
  %474 = getelementptr inbounds %"struct.DynexCN::TransactionPrefix", ptr %473, i32 0, i32 3
  %475 = call noundef i64 @_ZNKSt6vectorIN7DynexCN17TransactionOutputESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %474) #7
  call void @_ZNSt6vectorIN7DynexCN25transactionOutputDetails2ESaIS1_EE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %472, i64 noundef %475)
  call void @llvm.lifetime.start.p0(i64 24, ptr %54) #7
  call void @_ZNSt6vectorIjSaIjEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %54) #7
  %476 = load ptr, ptr %7, align 8, !tbaa !5
  %477 = getelementptr inbounds %"struct.DynexCN::TransactionPrefix", ptr %476, i32 0, i32 3
  %478 = call noundef i64 @_ZNKSt6vectorIN7DynexCN17TransactionOutputESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %477) #7
  invoke void @_ZNSt6vectorIjSaIjEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %54, i64 noundef %478)
          to label %479 unwind label %500

479:                                              ; preds = %470
  %480 = load ptr, ptr %8, align 8, !tbaa !5
  %481 = getelementptr inbounds %"struct.DynexCN::TransactionDetails", ptr %480, i32 0, i32 11
  %482 = load i8, ptr %481, align 2, !tbaa !62, !range !104, !noundef !105
  %483 = trunc i8 %482 to i1
  br i1 %483, label %484, label %492

484:                                              ; preds = %479
  %485 = getelementptr inbounds %"class.DynexCN::BlockchainExplorerDataBuilder", ptr %65, i32 0, i32 0
  %486 = load ptr, ptr %485, align 8, !tbaa !58
  %487 = load ptr, ptr %486, align 8, !tbaa !60
  %488 = getelementptr inbounds ptr, ptr %487, i64 17
  %489 = load ptr, ptr %488, align 8
  %490 = invoke noundef zeroext i1 %489(ptr noundef nonnull align 8 dereferenceable(8) %486, ptr noundef nonnull align 1 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(24) %54)
          to label %491 unwind label %500

491:                                              ; preds = %484
  br i1 %490, label %514, label %492

492:                                              ; preds = %491, %479
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #7
  store i64 0, ptr %55, align 8, !tbaa !9
  br label %493

493:                                              ; preds = %506, %492
  %494 = load i64, ptr %55, align 8, !tbaa !9
  %495 = load ptr, ptr %7, align 8, !tbaa !5
  %496 = getelementptr inbounds %"struct.DynexCN::TransactionPrefix", ptr %495, i32 0, i32 3
  %497 = call noundef i64 @_ZNKSt6vectorIN7DynexCN17TransactionOutputESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %496) #7
  %498 = icmp ult i64 %494, %497
  br i1 %498, label %504, label %499

499:                                              ; preds = %493
  store i32 12, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #7
  br label %513

500:                                              ; preds = %484, %470
  %501 = landingpad { ptr, i32 }
          cleanup
  %502 = extractvalue { ptr, i32 } %501, 0
  store ptr %502, ptr %16, align 8
  %503 = extractvalue { ptr, i32 } %501, 1
  store i32 %503, ptr %17, align 4
  br label %581

504:                                              ; preds = %493
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #7
  store i32 0, ptr %56, align 4, !tbaa !63
  invoke void @_ZNSt6vectorIjSaIjEE9push_backEOj(ptr noundef nonnull align 8 dereferenceable(24) %54, ptr noundef nonnull align 4 dereferenceable(4) %56)
          to label %505 unwind label %509

505:                                              ; preds = %504
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #7
  br label %506

506:                                              ; preds = %505
  %507 = load i64, ptr %55, align 8, !tbaa !9
  %508 = add i64 %507, 1
  store i64 %508, ptr %55, align 8, !tbaa !9
  br label %493, !llvm.loop !106

509:                                              ; preds = %504
  %510 = landingpad { ptr, i32 }
          cleanup
  %511 = extractvalue { ptr, i32 } %510, 0
  store ptr %511, ptr %16, align 8
  %512 = extractvalue { ptr, i32 } %510, 1
  store i32 %512, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #7
  br label %581

513:                                              ; preds = %499
  br label %514

514:                                              ; preds = %513, %491
  call void @llvm.lifetime.start.p0(i64 32, ptr %57) #7
  %515 = load ptr, ptr %7, align 8, !tbaa !5
  %516 = getelementptr inbounds %"struct.DynexCN::TransactionPrefix", ptr %515, i32 0, i32 3
  invoke void @_ZN5boost5range7combineIJRKSt6vectorIN7DynexCN17TransactionOutputESaIS4_EERS2_IjSaIjEEEEENS0_14combined_rangeIDTclsr5boostE10make_tuplespclsr5boostE5beginfp_EEEEEDpOT_(ptr dead_on_unwind writable sret(%"class.boost::range::combined_range") align 8 %57, ptr noundef nonnull align 8 dereferenceable(24) %516, ptr noundef nonnull align 8 dereferenceable(24) %54)
          to label %517 unwind label %526

517:                                              ; preds = %514
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #7
  store ptr %57, ptr %58, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %59) #7
  %518 = load ptr, ptr %58, align 8, !tbaa !5
  invoke void @_ZNK5boost21iterator_range_detail19iterator_range_baseINS_9iterators12zip_iteratorINS_6tuples5tupleIN9__gnu_cxx17__normal_iteratorIPKN7DynexCN17TransactionOutputESt6vectorIS9_SaIS9_EEEENS7_IPjSC_IjSaIjEEEENS4_9null_typeESK_SK_SK_SK_SK_SK_SK_EEEENS2_27incrementable_traversal_tagEE5beginEv(ptr dead_on_unwind writable sret(%"class.boost::iterators::zip_iterator") align 8 %59, ptr noundef nonnull align 8 dereferenceable(32) %518)
          to label %519 unwind label %530

519:                                              ; preds = %517
  call void @llvm.lifetime.start.p0(i64 16, ptr %60) #7
  %520 = load ptr, ptr %58, align 8, !tbaa !5
  invoke void @_ZNK5boost21iterator_range_detail19iterator_range_baseINS_9iterators12zip_iteratorINS_6tuples5tupleIN9__gnu_cxx17__normal_iteratorIPKN7DynexCN17TransactionOutputESt6vectorIS9_SaIS9_EEEENS7_IPjSC_IjSaIjEEEENS4_9null_typeESK_SK_SK_SK_SK_SK_SK_EEEENS2_27incrementable_traversal_tagEE3endEv(ptr dead_on_unwind writable sret(%"class.boost::iterators::zip_iterator") align 8 %60, ptr noundef nonnull align 8 dereferenceable(32) %520)
          to label %521 unwind label %534

521:                                              ; preds = %519
  br label %522

522:                                              ; preds = %567, %521
  %523 = invoke noundef zeroext i1 @_ZN5boost9iteratorsneINS0_12zip_iteratorINS_6tuples5tupleIN9__gnu_cxx17__normal_iteratorIPKN7DynexCN17TransactionOutputESt6vectorIS8_SaIS8_EEEENS6_IPjSB_IjSaIjEEEENS3_9null_typeESJ_SJ_SJ_SJ_SJ_SJ_SJ_EEEENS3_4consIRS9_NSM_IRjSJ_EEEENS0_27random_access_traversal_tagESQ_lSL_SQ_SR_SQ_lEENS0_6detail23enable_if_interoperableIT_T4_NS_3mpl6apply2INSS_12always_bool2ESU_SV_E4typeEE4typeERKNS0_15iterator_facadeISU_T0_T1_T2_T3_EERKNS13_ISV_T5_T6_T7_T8_EE(ptr noundef nonnull align 1 dereferenceable(1) %59, ptr noundef nonnull align 1 dereferenceable(1) %60)
          to label %524 unwind label %534

524:                                              ; preds = %522
  br i1 %523, label %538, label %525

525:                                              ; preds = %524
  store i32 15, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %60) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %59) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #7
  br label %579

526:                                              ; preds = %514
  %527 = landingpad { ptr, i32 }
          cleanup
  %528 = extractvalue { ptr, i32 } %527, 0
  store ptr %528, ptr %16, align 8
  %529 = extractvalue { ptr, i32 } %527, 1
  store i32 %529, ptr %17, align 4
  br label %580

530:                                              ; preds = %517
  %531 = landingpad { ptr, i32 }
          cleanup
  %532 = extractvalue { ptr, i32 } %531, 0
  store ptr %532, ptr %16, align 8
  %533 = extractvalue { ptr, i32 } %531, 1
  store i32 %533, ptr %17, align 4
  br label %578

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

538:                                              ; preds = %524
  call void @llvm.lifetime.start.p0(i64 8, ptr %61) #7
  call void @llvm.lifetime.start.p0(i64 56, ptr %62) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %63) #7
  invoke void @_ZNK5boost9iterators6detail20iterator_facade_baseINS0_12zip_iteratorINS_6tuples5tupleIN9__gnu_cxx17__normal_iteratorIPKN7DynexCN17TransactionOutputESt6vectorIS9_SaIS9_EEEENS7_IPjSC_IjSaIjEEEENS4_9null_typeESK_SK_SK_SK_SK_SK_SK_EEEENS4_4consIRSA_NSN_IRjSK_EEEENS0_27random_access_traversal_tagESR_lLb0ELb0EEdeEv(ptr dead_on_unwind writable sret(%"struct.boost::tuples::cons.111") align 8 %63, ptr noundef nonnull align 1 dereferenceable(1) %59)
          to label %539 unwind label %568

539:                                              ; preds = %538
  invoke void @_ZN5boost6tuples5tupleIN7DynexCN17TransactionOutputEjNS0_9null_typeES4_S4_S4_S4_S4_S4_S4_EC2IRKS3_NS0_4consIRjS4_EEEERKNS9_IT_T0_EE(ptr noundef nonnull align 8 dereferenceable(52) %62, ptr noundef nonnull align 8 dereferenceable(16) %63)
          to label %540 unwind label %568

540:                                              ; preds = %539
  call void @llvm.lifetime.end.p0(i64 16, ptr %63) #7
  store ptr %62, ptr %61, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 56, ptr %64) #7
  call void @_ZN7DynexCN25transactionOutputDetails2C2Ev(ptr noundef nonnull align 8 dereferenceable(56) %64) #7
  %541 = load ptr, ptr %61, align 8, !tbaa !5
  %542 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK5boost6tuples4consIN7DynexCN17TransactionOutputENS1_IjNS0_9null_typeEEEE3getILi1EEENS0_13access_traitsINS0_7elementIXT_ES6_E4typeEE10const_typeEv(ptr noundef nonnull align 8 dereferenceable(52) %541)
          to label %543 unwind label %572

543:                                              ; preds = %540
  %544 = load i32, ptr %542, align 4, !tbaa !63
  %545 = zext i32 %544 to i64
  %546 = getelementptr inbounds %"struct.DynexCN::transactionOutputDetails2", ptr %64, i32 0, i32 1
  store i64 %545, ptr %546, align 8, !tbaa !108
  %547 = load ptr, ptr %61, align 8, !tbaa !5
  %548 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZNK5boost6tuples4consIN7DynexCN17TransactionOutputENS1_IjNS0_9null_typeEEEE3getILi0EEENS0_13access_traitsINS0_7elementIXT_ES6_E4typeEE10const_typeEv(ptr noundef nonnull align 8 dereferenceable(52) %547)
          to label %549 unwind label %572

549:                                              ; preds = %543
  %550 = getelementptr inbounds %"struct.DynexCN::TransactionOutput", ptr %548, i32 0, i32 0
  %551 = load i64, ptr %550, align 8, !tbaa !79
  %552 = getelementptr inbounds %"struct.DynexCN::transactionOutputDetails2", ptr %64, i32 0, i32 0
  %553 = getelementptr inbounds %"struct.DynexCN::TransactionOutput", ptr %552, i32 0, i32 0
  store i64 %551, ptr %553, align 8, !tbaa !110
  %554 = load ptr, ptr %61, align 8, !tbaa !5
  %555 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZNK5boost6tuples4consIN7DynexCN17TransactionOutputENS1_IjNS0_9null_typeEEEE3getILi0EEENS0_13access_traitsINS0_7elementIXT_ES6_E4typeEE10const_typeEv(ptr noundef nonnull align 8 dereferenceable(52) %554)
          to label %556 unwind label %572

556:                                              ; preds = %549
  %557 = getelementptr inbounds %"struct.DynexCN::TransactionOutput", ptr %555, i32 0, i32 1
  %558 = getelementptr inbounds %"struct.DynexCN::transactionOutputDetails2", ptr %64, i32 0, i32 0
  %559 = getelementptr inbounds %"struct.DynexCN::TransactionOutput", ptr %558, i32 0, i32 1
  %560 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZN5boost7variantIN7DynexCN9KeyOutputEJNS1_20MultisignatureOutputEEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(40) %559, ptr noundef nonnull align 8 dereferenceable(40) %557)
          to label %561 unwind label %572

561:                                              ; preds = %556
  %562 = load ptr, ptr %8, align 8, !tbaa !5
  %563 = getelementptr inbounds %"struct.DynexCN::TransactionDetails", ptr %562, i32 0, i32 17
  invoke void @_ZNSt6vectorIN7DynexCN25transactionOutputDetails2ESaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %563, ptr noundef nonnull align 8 dereferenceable(56) %64)
          to label %564 unwind label %572

564:                                              ; preds = %561
  call void @_ZN7DynexCN25transactionOutputDetails2D2Ev(ptr noundef nonnull align 8 dereferenceable(56) %64) #7
  call void @llvm.lifetime.end.p0(i64 56, ptr %64) #7
  call void @_ZN5boost6tuples4consIN7DynexCN17TransactionOutputENS1_IjNS0_9null_typeEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(52) %62) #7
  call void @llvm.lifetime.end.p0(i64 56, ptr %62) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #7
  br label %565

565:                                              ; preds = %564
  %566 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN5boost9iterators6detail20iterator_facade_baseINS0_12zip_iteratorINS_6tuples5tupleIN9__gnu_cxx17__normal_iteratorIPKN7DynexCN17TransactionOutputESt6vectorIS9_SaIS9_EEEENS7_IPjSC_IjSaIjEEEENS4_9null_typeESK_SK_SK_SK_SK_SK_SK_EEEENS4_4consIRSA_NSN_IRjSK_EEEENS0_27random_access_traversal_tagESR_lLb0ELb0EEppEv(ptr noundef nonnull align 1 dereferenceable(1) %59)
          to label %567 unwind label %534

567:                                              ; preds = %565
  br label %522

568:                                              ; preds = %539, %538
  %569 = landingpad { ptr, i32 }
          cleanup
  %570 = extractvalue { ptr, i32 } %569, 0
  store ptr %570, ptr %16, align 8
  %571 = extractvalue { ptr, i32 } %569, 1
  store i32 %571, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %63) #7
  br label %576

572:                                              ; preds = %561, %556, %549, %543, %540
  %573 = landingpad { ptr, i32 }
          cleanup
  %574 = extractvalue { ptr, i32 } %573, 0
  store ptr %574, ptr %16, align 8
  %575 = extractvalue { ptr, i32 } %573, 1
  store i32 %575, ptr %17, align 4
  call void @_ZN7DynexCN25transactionOutputDetails2D2Ev(ptr noundef nonnull align 8 dereferenceable(56) %64) #7
  call void @llvm.lifetime.end.p0(i64 56, ptr %64) #7
  call void @_ZN5boost6tuples4consIN7DynexCN17TransactionOutputENS1_IjNS0_9null_typeEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(52) %62) #7
  call void @llvm.lifetime.end.p0(i64 56, ptr %62) #7
  br label %576

576:                                              ; preds = %572, %568
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #7
  br label %577

577:                                              ; preds = %576, %534
  call void @llvm.lifetime.end.p0(i64 16, ptr %60) #7
  br label %578

578:                                              ; preds = %577, %530
  call void @llvm.lifetime.end.p0(i64 16, ptr %59) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #7
  br label %580

579:                                              ; preds = %525
  store i1 true, ptr %5, align 1
  store i32 1, ptr %18, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %57) #7
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %54) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %54) #7
  br label %582

580:                                              ; preds = %578, %526
  call void @llvm.lifetime.end.p0(i64 32, ptr %57) #7
  br label %581

581:                                              ; preds = %580, %509, %500
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %54) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %54) #7
  br label %583

582:                                              ; preds = %579, %468
  call void @llvm.lifetime.end.p0(i64 32, ptr %22) #7
  br label %584

583:                                              ; preds = %581, %467, %275
  call void @llvm.lifetime.end.p0(i64 32, ptr %22) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #7
  br label %587

584:                                              ; preds = %582, %182, %141
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #7
  br label %585

585:                                              ; preds = %584, %121
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %11) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %10) #7
  %586 = load i1, ptr %5, align 1
  ret i1 %586

587:                                              ; preds = %583, %112
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %11) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %10) #7
  br label %588

588:                                              ; preds = %587
  %589 = load ptr, ptr %16, align 8
  %590 = load i32, ptr %17, align 4
  %591 = insertvalue { ptr, i32 } poison, ptr %589, 0
  %592 = insertvalue { ptr, i32 } %591, i32 %590, 1
  resume { ptr, i32 } %592
}

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7DynexCN13getObjectHashINS_11TransactionEEEN6Crypto4HashERKT_(ptr dead_on_unwind noalias writable sret(%"struct.Crypto::Hash") align 1, ptr noundef nonnull align 8 dereferenceable(112)) #1

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

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

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

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

declare noundef i64 @_ZN7DynexCN21get_outs_money_amountERKNS_11TransactionE(ptr noundef nonnull align 8 dereferenceable(112)) #6

declare noundef zeroext i1 @_ZN7DynexCN23get_inputs_money_amountERKNS_11TransactionERm(ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 8 dereferenceable(8)) #6

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

declare noundef zeroext i1 @_ZN7DynexCN10get_tx_feeERKNS_11TransactionERm(ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 8 dereferenceable(8)) #6

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

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

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN9__gnu_cxxneIPKSt6vectorIN6Crypto9SignatureESaIS3_EES1_IS5_SaIS5_EEEEbRKNS_17__normal_iteratorIT_T0_EESF_(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(24) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKSt6vectorIN6Crypto9SignatureESaIS3_EES1_IS5_SaIS5_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8)) #3 align 2

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

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

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN9__gnu_cxxneIPKN6Crypto9SignatureESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(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 1 dereferenceable(64) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN6Crypto9SignatureESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8)) #3 align 2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN5boost3getIN7DynexCN19MultisignatureInputENS1_9BaseInputEJNS1_8KeyInputES2_EEENS_13add_referenceIKT_E4typeERKNS_7variantIT0_JDpT1_EEE(ptr noundef nonnull align 8 dereferenceable(72)) #5

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5boost5range7combineIJRKSt6vectorIN7DynexCN17TransactionOutputESaIS4_EERS2_IjSaIjEEEEENS0_14combined_rangeIDTclsr5boostE10make_tuplespclsr5boostE5beginfp_EEEEEDpOT_(ptr dead_on_unwind noalias writable sret(%"class.boost::range::combined_range") align 8, ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24)) #1

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5boost21iterator_range_detail19iterator_range_baseINS_9iterators12zip_iteratorINS_6tuples5tupleIN9__gnu_cxx17__normal_iteratorIPKN7DynexCN17TransactionOutputESt6vectorIS9_SaIS9_EEEENS7_IPjSC_IjSaIjEEEENS4_9null_typeESK_SK_SK_SK_SK_SK_SK_EEEENS2_27incrementable_traversal_tagEE5beginEv(ptr dead_on_unwind noalias writable sret(%"class.boost::iterators::zip_iterator") align 8, ptr noundef nonnull align 8 dereferenceable(32)) #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5boost21iterator_range_detail19iterator_range_baseINS_9iterators12zip_iteratorINS_6tuples5tupleIN9__gnu_cxx17__normal_iteratorIPKN7DynexCN17TransactionOutputESt6vectorIS9_SaIS9_EEEENS7_IPjSC_IjSaIjEEEENS4_9null_typeESK_SK_SK_SK_SK_SK_SK_EEEENS2_27incrementable_traversal_tagEE3endEv(ptr dead_on_unwind noalias writable sret(%"class.boost::iterators::zip_iterator") align 8, ptr noundef nonnull align 8 dereferenceable(32)) #1 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5boost9iterators6detail20iterator_facade_baseINS0_12zip_iteratorINS_6tuples5tupleIN9__gnu_cxx17__normal_iteratorIPKN7DynexCN17TransactionOutputESt6vectorIS9_SaIS9_EEEENS7_IPjSC_IjSaIjEEEENS4_9null_typeESK_SK_SK_SK_SK_SK_SK_EEEENS4_4consIRSA_NSN_IRjSK_EEEENS0_27random_access_traversal_tagESR_lLb0ELb0EEdeEv(ptr dead_on_unwind noalias writable sret(%"struct.boost::tuples::cons.111") align 8, ptr noundef nonnull align 1 dereferenceable(1)) #1 align 2

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

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

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

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

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

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

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

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

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

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

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

!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 = !{i64 0, i64 32, !12}
!12 = !{!7, !7, i64 0}
!13 = !{!14, !7, i64 0}
!14 = !{!"_ZTSN7DynexCN17TransactionPrefixE", !7, i64 0, !10, i64 8, !15, i64 16, !19, i64 40, !23, i64 64}
!15 = !{!"_ZTSSt6vectorIN5boost7variantIN7DynexCN9BaseInputEJNS2_8KeyInputENS2_19MultisignatureInputEEEESaIS6_EE", !16, i64 0}
!16 = !{!"_ZTSSt12_Vector_baseIN5boost7variantIN7DynexCN9BaseInputEJNS2_8KeyInputENS2_19MultisignatureInputEEEESaIS6_EE", !17, i64 0}
!17 = !{!"_ZTSNSt12_Vector_baseIN5boost7variantIN7DynexCN9BaseInputEJNS2_8KeyInputENS2_19MultisignatureInputEEEESaIS6_EE12_Vector_implE", !18, i64 0}
!18 = !{!"_ZTSNSt12_Vector_baseIN5boost7variantIN7DynexCN9BaseInputEJNS2_8KeyInputENS2_19MultisignatureInputEEEESaIS6_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!19 = !{!"_ZTSSt6vectorIN7DynexCN17TransactionOutputESaIS1_EE", !20, i64 0}
!20 = !{!"_ZTSSt12_Vector_baseIN7DynexCN17TransactionOutputESaIS1_EE", !21, i64 0}
!21 = !{!"_ZTSNSt12_Vector_baseIN7DynexCN17TransactionOutputESaIS1_EE12_Vector_implE", !22, i64 0}
!22 = !{!"_ZTSNSt12_Vector_baseIN7DynexCN17TransactionOutputESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!23 = !{!"_ZTSSt6vectorIhSaIhEE", !24, i64 0}
!24 = !{!"_ZTSSt12_Vector_baseIhSaIhEE", !25, i64 0}
!25 = !{!"_ZTSNSt12_Vector_baseIhSaIhEE12_Vector_implE", !26, i64 0}
!26 = !{!"_ZTSNSt12_Vector_baseIhSaIhEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!27 = !{!28, !7, i64 88}
!28 = !{!"_ZTSN7DynexCN18TransactionDetailsE", !29, i64 0, !10, i64 32, !10, i64 40, !10, i64 48, !10, i64 56, !10, i64 64, !10, i64 72, !10, i64 80, !7, i64 88, !29, i64 89, !30, i64 121, !30, i64 122, !29, i64 123, !31, i64 156, !32, i64 160, !45, i64 376, !49, i64 400, !53, i64 424, !38, i64 448, !40, i64 480, !40, i64 504, !44, i64 528}
!29 = !{!"_ZTSN6Crypto4HashE", !7, i64 0}
!30 = !{!"bool", !7, i64 0}
!31 = !{!"int", !7, i64 0}
!32 = !{!"_ZTSN7DynexCN24TransactionExtraDetails2E", !33, i64 0, !37, i64 24, !23, i64 56, !23, i64 80, !38, i64 104, !40, i64 136, !40, i64 160, !44, i64 184}
!33 = !{!"_ZTSSt6vectorImSaImEE", !34, i64 0}
!34 = !{!"_ZTSSt12_Vector_baseImSaImEE", !35, i64 0}
!35 = !{!"_ZTSNSt12_Vector_baseImSaImEE12_Vector_implE", !36, i64 0}
!36 = !{!"_ZTSNSt12_Vector_baseImSaImEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!37 = !{!"_ZTSN6Crypto9PublicKeyE", !7, i64 0}
!38 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !39, i64 0, !10, i64 8, !7, i64 16}
!39 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!40 = !{!"_ZTSSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !41, i64 0}
!41 = !{!"_ZTSSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !42, i64 0}
!42 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_Vector_implE", !43, i64 0}
!43 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!44 = !{!"_ZTSN6Crypto9SecretKeyE", !7, i64 0}
!45 = !{!"_ZTSSt6vectorIS_IN6Crypto9SignatureESaIS1_EESaIS3_EE", !46, i64 0}
!46 = !{!"_ZTSSt12_Vector_baseISt6vectorIN6Crypto9SignatureESaIS2_EESaIS4_EE", !47, i64 0}
!47 = !{!"_ZTSNSt12_Vector_baseISt6vectorIN6Crypto9SignatureESaIS2_EESaIS4_EE12_Vector_implE", !48, i64 0}
!48 = !{!"_ZTSNSt12_Vector_baseISt6vectorIN6Crypto9SignatureESaIS2_EESaIS4_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!49 = !{!"_ZTSSt6vectorIN5boost7variantIN7DynexCN16BaseInputDetailsEJNS2_15KeyInputDetailsENS2_26MultisignatureInputDetailsEEEESaIS6_EE", !50, i64 0}
!50 = !{!"_ZTSSt12_Vector_baseIN5boost7variantIN7DynexCN16BaseInputDetailsEJNS2_15KeyInputDetailsENS2_26MultisignatureInputDetailsEEEESaIS6_EE", !51, i64 0}
!51 = !{!"_ZTSNSt12_Vector_baseIN5boost7variantIN7DynexCN16BaseInputDetailsEJNS2_15KeyInputDetailsENS2_26MultisignatureInputDetailsEEEESaIS6_EE12_Vector_implE", !52, i64 0}
!52 = !{!"_ZTSNSt12_Vector_baseIN5boost7variantIN7DynexCN16BaseInputDetailsEJNS2_15KeyInputDetailsENS2_26MultisignatureInputDetailsEEEESaIS6_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!53 = !{!"_ZTSSt6vectorIN7DynexCN25transactionOutputDetails2ESaIS1_EE", !54, i64 0}
!54 = !{!"_ZTSSt12_Vector_baseIN7DynexCN25transactionOutputDetails2ESaIS1_EE", !55, i64 0}
!55 = !{!"_ZTSNSt12_Vector_baseIN7DynexCN25transactionOutputDetails2ESaIS1_EE12_Vector_implE", !56, i64 0}
!56 = !{!"_ZTSNSt12_Vector_baseIN7DynexCN25transactionOutputDetails2ESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!57 = !{!28, !10, i64 80}
!58 = !{!59, !6, i64 0}
!59 = !{!"_ZTSN7DynexCN29BlockchainExplorerDataBuilderE", !6, i64 0, !6, i64 8}
!60 = !{!61, !61, i64 0}
!61 = !{!"vtable pointer", !8, i64 0}
!62 = !{!28, !30, i64 122}
!63 = !{!31, !31, i64 0}
!64 = !{!28, !31, i64 156}
!65 = !{!66, !10, i64 8}
!66 = !{!"_ZTSN7DynexCN11BlockHeaderE", !7, i64 0, !7, i64 1, !31, i64 4, !10, i64 8, !29, i64 16}
!67 = !{!28, !10, i64 32}
!68 = !{!14, !10, i64 8}
!69 = !{!28, !10, i64 72}
!70 = !{!28, !10, i64 56}
!71 = !{!28, !10, i64 48}
!72 = !{!28, !10, i64 40}
!73 = !{!28, !10, i64 64}
!74 = !{!75, !31, i64 0}
!75 = !{!"_ZTSN7DynexCN9BaseInputE", !31, i64 0}
!76 = !{!77, !31, i64 0}
!77 = !{!"_ZTSN7DynexCN16BaseInputDetailsE", !75, i64 0, !10, i64 8}
!78 = !{!77, !10, i64 8}
!79 = !{!80, !10, i64 0}
!80 = !{!"_ZTSN7DynexCN17TransactionOutputE", !10, i64 0, !81, i64 8}
!81 = !{!"_ZTSN5boost7variantIN7DynexCN9KeyOutputEJNS1_20MultisignatureOutputEEEE", !31, i64 0, !82, i64 8}
!82 = !{!"_ZTSN5boost15aligned_storageILm32ELm8EEE", !83, i64 0}
!83 = !{!"_ZTSN5boost6detail15aligned_storage19aligned_storage_impILm32ELm8EEE", !7, i64 0}
!84 = !{!85, !10, i64 64}
!85 = !{!"_ZTSN7DynexCN15KeyInputDetailsE", !86, i64 0, !10, i64 64, !92, i64 72}
!86 = !{!"_ZTSN7DynexCN8KeyInputE", !10, i64 0, !87, i64 8, !91, i64 32}
!87 = !{!"_ZTSSt6vectorIjSaIjEE", !88, i64 0}
!88 = !{!"_ZTSSt12_Vector_baseIjSaIjEE", !89, i64 0}
!89 = !{!"_ZTSNSt12_Vector_baseIjSaIjEE12_Vector_implE", !90, i64 0}
!90 = !{!"_ZTSNSt12_Vector_baseIjSaIjEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!91 = !{!"_ZTSN6Crypto8KeyImageE", !7, i64 0}
!92 = !{!"_ZTSSt6vectorIN7DynexCN33TransactionOutputReferenceDetailsESaIS1_EE", !93, i64 0}
!93 = !{!"_ZTSSt12_Vector_baseIN7DynexCN33TransactionOutputReferenceDetailsESaIS1_EE", !94, i64 0}
!94 = !{!"_ZTSNSt12_Vector_baseIN7DynexCN33TransactionOutputReferenceDetailsESaIS1_EE12_Vector_implE", !95, i64 0}
!95 = !{!"_ZTSNSt12_Vector_baseIN7DynexCN33TransactionOutputReferenceDetailsESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!96 = !{!97, !10, i64 32}
!97 = !{!"_ZTSSt4pairIN6Crypto4HashEmE", !29, i64 0, !10, i64 32}
!98 = !{!99, !10, i64 32}
!99 = !{!"_ZTSN7DynexCN33TransactionOutputReferenceDetailsE", !29, i64 0, !10, i64 32}
!100 = !{i64 0, i64 8, !9, i64 8, i64 1, !12, i64 12, i64 4, !63}
!101 = !{!102, !10, i64 48}
!102 = !{!"_ZTSN7DynexCN26MultisignatureInputDetailsE", !103, i64 0, !99, i64 16}
!103 = !{!"_ZTSN7DynexCN19MultisignatureInputE", !10, i64 0, !7, i64 8, !31, i64 12}
!104 = !{i8 0, i8 2}
!105 = !{}
!106 = distinct !{!106, !107}
!107 = !{!"llvm.loop.mustprogress"}
!108 = !{!109, !10, i64 48}
!109 = !{!"_ZTSN7DynexCN25transactionOutputDetails2E", !80, i64 0, !10, i64 48}
!110 = !{!109, !10, i64 0}


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

%"struct.Crypto::Hash" = type { [32 x i8] }
%"class.boost::value_initialized.79" = type { %"class.boost::initialized.80" }
%"class.boost::initialized.80" = type { i32 }
%"class.boost::value_initialized" = type { %"class.boost::initialized" }
%"class.boost::initialized" = type { %"struct.Crypto::Hash" }
%"struct.DynexCN::Block" = type { %"struct.DynexCN::BlockHeader", %"struct.DynexCN::ParentBlock", %"struct.DynexCN::Transaction", %"class.std::vector.47" }
%"struct.DynexCN::BlockHeader" = type { i8, i8, i32, i64, %"struct.Crypto::Hash" }
%"struct.DynexCN::ParentBlock" = type { i8, i8, %"struct.Crypto::Hash", i16, %"class.std::vector.47", %"struct.DynexCN::Transaction", %"class.std::vector.47" }
%"struct.DynexCN::Transaction" = type { %"struct.DynexCN::TransactionPrefix", %"class.std::vector.14" }
%"struct.DynexCN::TransactionPrefix" = type { i8, i64, %"class.std::vector", %"class.std::vector.4", %"class.std::vector.9" }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = 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.4" = type { %"struct.std::_Vector_base.5" }
%"struct.std::_Vector_base.5" = 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.9" = type { %"struct.std::_Vector_base.10" }
%"struct.std::_Vector_base.10" = 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.14" = type { %"struct.std::_Vector_base.15" }
%"struct.std::_Vector_base.15" = type { %"struct.std::_Vector_base<std::vector<Crypto::Signature>, std::allocator<std::vector<Crypto::Signature>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::vector<Crypto::Signature>, std::allocator<std::vector<Crypto::Signature>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::vector<Crypto::Signature>, std::allocator<std::vector<Crypto::Signature>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::vector<Crypto::Signature>, std::allocator<std::vector<Crypto::Signature>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.47" = type { %"struct.std::_Vector_base.48" }
%"struct.std::_Vector_base.48" = 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.__gnu_cxx::__normal_iterator.81" = type { ptr }
%"class.std::vector.82" = type { %"struct.std::_Vector_base.83" }
%"struct.std::_Vector_base.83" = type { %"struct.std::_Vector_base<Crypto::Signature, std::allocator<Crypto::Signature>>::_Vector_impl" }
%"struct.std::_Vector_base<Crypto::Signature, std::allocator<Crypto::Signature>>::_Vector_impl" = type { %"struct.std::_Vector_base<Crypto::Signature, std::allocator<Crypto::Signature>>::_Vector_impl_data" }
%"struct.std::_Vector_base<Crypto::Signature, std::allocator<Crypto::Signature>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.__gnu_cxx::__normal_iterator.87" = type { ptr }
%"class.__gnu_cxx::__normal_iterator" = type { ptr }
%"class.boost::variant.88" = type { i32, [4 x i8], %"class.boost::aligned_storage.89" }
%"class.boost::aligned_storage.89" = type { %"struct.boost::detail::aligned_storage::aligned_storage_imp.90" }
%"struct.boost::detail::aligned_storage::aligned_storage_imp.90" = type { %"union.boost::detail::aligned_storage::aligned_storage_imp<96, 8>::data_t" }
%"union.boost::detail::aligned_storage::aligned_storage_imp<96, 8>::data_t" = type { [96 x i8] }
%"struct.DynexCN::BaseInputDetails" = type { %"struct.DynexCN::BaseInput", i64 }
%"struct.DynexCN::BaseInput" = type { i32 }
%"class.__gnu_cxx::__normal_iterator.57" = type { ptr }
%"struct.DynexCN::KeyInputDetails" = type { %"struct.DynexCN::KeyInput", i64, %"class.std::vector.91" }
%"struct.DynexCN::KeyInput" = type { i64, %"class.std::vector.19", %"struct.Crypto::KeyImage" }
%"class.std::vector.19" = type { %"struct.std::_Vector_base.20" }
%"struct.std::_Vector_base.20" = type { %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl" }
%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl" = type { %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.Crypto::KeyImage" = type { [32 x i8] }
%"class.std::vector.91" = type { %"struct.std::_Vector_base.92" }
%"struct.std::_Vector_base.92" = type { %"struct.std::_Vector_base<DynexCN::TransactionOutputReferenceDetails, std::allocator<DynexCN::TransactionOutputReferenceDetails>>::_Vector_impl" }
%"struct.std::_Vector_base<DynexCN::TransactionOutputReferenceDetails, std::allocator<DynexCN::TransactionOutputReferenceDetails>>::_Vector_impl" = type { %"struct.std::_Vector_base<DynexCN::TransactionOutputReferenceDetails, std::allocator<DynexCN::TransactionOutputReferenceDetails>>::_Vector_impl_data" }
%"struct.std::_Vector_base<DynexCN::TransactionOutputReferenceDetails, std::allocator<DynexCN::TransactionOutputReferenceDetails>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::__cxx11::list.96" = type { %"class.std::__cxx11::_List_base.97" }
%"class.std::__cxx11::_List_base.97" = type { %"struct.std::__cxx11::_List_base<std::pair<Crypto::Hash, unsigned long>, std::allocator<std::pair<Crypto::Hash, unsigned long>>>::_List_impl" }
%"struct.std::__cxx11::_List_base<std::pair<Crypto::Hash, unsigned long>, std::allocator<std::pair<Crypto::Hash, unsigned long>>>::_List_impl" = type { %"struct.std::__detail::_List_node_header" }
%"struct.std::__detail::_List_node_header" = type { %"struct.std::__detail::_List_node_base", i64 }
%"struct.std::__detail::_List_node_base" = type { ptr, ptr }
%"struct.std::_List_iterator.101" = type { ptr }
%"struct.DynexCN::TransactionOutputReferenceDetails" = type { %"struct.Crypto::Hash", i64 }
%"struct.DynexCN::MultisignatureInputDetails" = type { %"struct.DynexCN::MultisignatureInput", %"struct.DynexCN::TransactionOutputReferenceDetails" }
%"struct.DynexCN::MultisignatureInput" = type { i64, i8, i32 }
%"struct.std::pair" = type { %"struct.Crypto::Hash", i64 }
%"class.boost::range::combined_range" = type { %"class.boost::iterator_range" }
%"class.boost::iterator_range" = type { %"class.boost::iterator_range_detail::iterator_range_base" }
%"class.boost::iterator_range_detail::iterator_range_base" = type { %"class.boost::iterator_range_detail::iterator_range_base.102" }
%"class.boost::iterator_range_detail::iterator_range_base.102" = type { %"class.boost::iterator_range_detail::iterator_range_base.103" }
%"class.boost::iterator_range_detail::iterator_range_base.103" = type { %"class.boost::iterators::zip_iterator", %"class.boost::iterators::zip_iterator" }
%"class.boost::iterators::zip_iterator" = type { %"class.boost::tuples::tuple" }
%"class.boost::tuples::tuple" = type { %"struct.boost::tuples::cons" }
%"struct.boost::tuples::cons" = type { %"class.__gnu_cxx::__normal_iterator.57", %"struct.boost::tuples::cons.106" }
%"struct.boost::tuples::cons.106" = type { %"class.__gnu_cxx::__normal_iterator.107" }
%"class.__gnu_cxx::__normal_iterator.107" = type { ptr }
%"class.boost::tuples::tuple.108" = type { %"struct.boost::tuples::cons.base", [4 x i8] }
%"struct.boost::tuples::cons.base" = type <{ %"struct.DynexCN::TransactionOutput", %"struct.boost::tuples::cons.110" }>
%"struct.DynexCN::TransactionOutput" = type { i64, %"class.boost::variant.58" }
%"class.boost::variant.58" = type { i32, [4 x i8], %"class.boost::aligned_storage.59" }
%"class.boost::aligned_storage.59" = type { %"struct.boost::detail::aligned_storage::aligned_storage_imp.60" }
%"struct.boost::detail::aligned_storage::aligned_storage_imp.60" = type { %"union.boost::detail::aligned_storage::aligned_storage_imp<32, 8>::data_t" }
%"union.boost::detail::aligned_storage::aligned_storage_imp<32, 8>::data_t" = type { [32 x i8] }
%"struct.boost::tuples::cons.110" = type { i32 }
%"struct.boost::tuples::cons.111" = type { ptr, %"struct.boost::tuples::cons.112" }
%"struct.boost::tuples::cons.112" = type { ptr }
%"struct.DynexCN::transactionOutputDetails2" = type { %"struct.DynexCN::TransactionOutput", i64 }

@_ZTIN7DynexCN8KeyInputE = external dso_local constant { ptr, ptr }, align 8
@_ZTIN7DynexCN9BaseInputE = external dso_local constant { ptr, ptr }, align 8
@_ZTIN7DynexCN19MultisignatureInputE = external dso_local constant { ptr, ptr }, align 8

; 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 uwtable
declare dso_local void @_ZN5boost17value_initializedIN6Crypto4HashEEC2Ev(ptr noundef nonnull align 1 dereferenceable(32)) unnamed_addr #1 align 2

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

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

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN9__gnu_cxxneIPKN5boost7variantIN7DynexCN9BaseInputEJNS3_8KeyInputENS3_19MultisignatureInputEEEESt6vectorIS7_SaIS7_EEEEbRKNS_17__normal_iteratorIT_T0_EESI_(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(72) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN5boost7variantIN7DynexCN9BaseInputEJNS3_8KeyInputENS3_19MultisignatureInputEEEESt6vectorIS7_SaIS7_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(64) ptr @_ZN5boost3getIN7DynexCN8KeyInputENS1_9BaseInputEJS2_NS1_19MultisignatureInputEEEENS_13add_referenceIKT_E4typeERKNS_7variantIT0_JDpT1_EEE(ptr noundef nonnull align 8 dereferenceable(72)) local_unnamed_addr #5

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

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

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN9__gnu_cxxneIPKN7DynexCN17TransactionOutputESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(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(48) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN7DynexCN17TransactionOutputESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3 align 2

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZN5boost3getIN7DynexCN9BaseInputES2_JNS1_8KeyInputENS1_19MultisignatureInputEEEENS_13add_referenceIKT_E4typeERKNS_7variantIT0_JDpT1_EEE(ptr noundef nonnull align 8 dereferenceable(72)) local_unnamed_addr #5

; Function Attrs: mustprogress uwtable
declare dso_local noundef i64 @_ZN7DynexCN19getObjectBinarySizeINS_11TransactionEEEmRKT_(ptr noundef nonnull align 8 dereferenceable(112)) local_unnamed_addr #1

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_ZN7DynexCN29BlockchainExplorerDataBuilder22fillTransactionDetailsERKNS_11TransactionERNS_18TransactionDetailsEm(ptr noundef nonnull align 8 dereferenceable(16) %0, ptr noundef nonnull align 8 dereferenceable(112) %1, ptr noundef nonnull align 8 dereferenceable(560) %2, i64 noundef %3) local_unnamed_addr #1 align 2 personality ptr @__gxx_personality_v0 {
  %5 = alloca %"struct.Crypto::Hash", align 1
  %6 = alloca %"struct.Crypto::Hash", align 1
  %7 = alloca i32, align 4
  %8 = alloca %"class.boost::value_initialized.79", align 4
  %9 = alloca %"class.boost::value_initialized", align 1
  %10 = alloca %"struct.DynexCN::Block", align 8
  %11 = alloca i64, align 8
  %12 = alloca i64, align 8
  %13 = alloca i64, align 8
  %14 = alloca %"struct.Crypto::Hash", align 1
  %15 = alloca %"class.boost::value_initialized", align 1
  %16 = alloca %"class.__gnu_cxx::__normal_iterator.81", align 8
  %17 = alloca %"class.__gnu_cxx::__normal_iterator.81", align 8
  %18 = alloca %"class.std::vector.82", align 8
  %19 = alloca %"class.__gnu_cxx::__normal_iterator.87", align 8
  %20 = alloca %"class.__gnu_cxx::__normal_iterator.87", align 8
  %21 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %22 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %23 = alloca %"class.boost::variant.88", align 8
  %24 = alloca %"struct.DynexCN::BaseInputDetails", align 8
  %25 = alloca %"class.__gnu_cxx::__normal_iterator.57", align 8
  %26 = alloca %"class.__gnu_cxx::__normal_iterator.57", align 8
  %27 = alloca %"struct.DynexCN::KeyInputDetails", align 8
  %28 = alloca %"class.std::__cxx11::list.96", align 8
  %29 = alloca %"struct.std::_List_iterator.101", align 8
  %30 = alloca %"struct.std::_List_iterator.101", align 8
  %31 = alloca %"struct.DynexCN::TransactionOutputReferenceDetails", align 8
  %32 = alloca %"struct.DynexCN::MultisignatureInputDetails", align 8
  %33 = alloca %"struct.std::pair", align 8
  %34 = alloca %"class.std::vector.19", align 8
  %35 = alloca i32, align 4
  %36 = alloca %"class.boost::range::combined_range", align 8
  %37 = alloca %"class.boost::iterators::zip_iterator", align 8
  %38 = alloca %"class.boost::iterators::zip_iterator", align 8
  %39 = alloca %"class.boost::tuples::tuple.108", align 8
  %40 = alloca %"struct.boost::tuples::cons.111", align 8
  %41 = alloca %"struct.DynexCN::transactionOutputDetails2", align 8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %5) #7
  call void @_ZN7DynexCN13getObjectHashINS_11TransactionEEEN6Crypto4HashERKT_(ptr dead_on_unwind nonnull writable sret(%"struct.Crypto::Hash") align 1 %5, ptr noundef nonnull align 8 dereferenceable(112) %1)
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull align 1 dereferenceable(32) %5, i64 32, i1 false), !tbaa.struct !5
  %42 = load i8, ptr %1, align 8, !tbaa !9
  %43 = getelementptr inbounds i8, ptr %2, i64 88
  store i8 %42, ptr %43, align 8, !tbaa !25
  %44 = getelementptr inbounds i8, ptr %2, i64 80
  store i64 %3, ptr %44, align 8, !tbaa !55
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %6) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %7) #7
  %45 = load ptr, ptr %0, align 8, !tbaa !56
  %46 = load ptr, ptr %45, align 8, !tbaa !58
  %47 = getelementptr inbounds i8, ptr %46, i64 304
  %48 = load ptr, ptr %47, align 8
  %49 = call noundef zeroext i1 %48(ptr noundef nonnull align 8 dereferenceable(8) %45, ptr noundef nonnull align 1 dereferenceable(32) %5, ptr noundef nonnull align 1 dereferenceable(32) %6, ptr noundef nonnull align 4 dereferenceable(4) %7)
  %50 = getelementptr inbounds i8, ptr %2, i64 122
  br i1 %49, label %57, label %51

51:                                               ; preds = %4
  store i8 0, ptr %50, align 2, !tbaa !60
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %8) #7
  call void @_ZN5boost17value_initializedIjEC2Ev(ptr noundef nonnull align 4 dereferenceable(4) %8)
  %52 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN5boost17value_initializedIjEcvRjEv(ptr noundef nonnull align 4 dereferenceable(4) %8)
  %53 = load i32, ptr %52, align 4, !tbaa !61
  %54 = getelementptr inbounds i8, ptr %2, i64 156
  store i32 %53, ptr %54, align 4, !tbaa !62
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %9) #7
  call void @_ZN5boost17value_initializedIN6Crypto4HashEEC2Ev(ptr noundef nonnull align 1 dereferenceable(32) %9)
  %55 = call noundef nonnull align 1 dereferenceable(32) ptr @_ZN5boost17value_initializedIN6Crypto4HashEEcvRS2_Ev(ptr noundef nonnull align 1 dereferenceable(32) %9)
  %56 = getelementptr inbounds i8, ptr %2, i64 123
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(32) %56, ptr noundef nonnull align 1 dereferenceable(32) %55, i64 32, i1 false), !tbaa.struct !5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #7
  br label %74

57:                                               ; preds = %4
  store i8 1, ptr %50, align 2, !tbaa !60
  %58 = load i32, ptr %7, align 4, !tbaa !61
  %59 = getelementptr inbounds i8, ptr %2, i64 156
  store i32 %58, ptr %59, align 4, !tbaa !62
  %60 = getelementptr inbounds i8, ptr %2, i64 123
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(32) %60, ptr noundef nonnull align 1 dereferenceable(32) %6, i64 32, i1 false), !tbaa.struct !5
  %61 = icmp eq i64 %3, 0
  br i1 %61, label %62, label %74

62:                                               ; preds = %57
  call void @llvm.lifetime.start.p0(i64 384, ptr nonnull %10) #7
  call void @_ZN7DynexCN5BlockC2Ev(ptr noundef nonnull align 8 dereferenceable(384) %10) #7
  %63 = load ptr, ptr %0, align 8, !tbaa !56
  %64 = load ptr, ptr %63, align 8, !tbaa !58
  %65 = getelementptr inbounds i8, ptr %64, i64 224
  %66 = load ptr, ptr %65, align 8
  %67 = invoke noundef zeroext i1 %66(ptr noundef nonnull align 8 dereferenceable(8) %63, ptr noundef nonnull align 1 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(384) %10)
          to label %68 unwind label %69

68:                                               ; preds = %62
  br i1 %67, label %71, label %.critedge

69:                                               ; preds = %62
  %70 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7DynexCN5BlockD2Ev(ptr noundef nonnull align 8 dereferenceable(384) %10) #7
  call void @llvm.lifetime.end.p0(i64 384, ptr nonnull %10) #7
  br label %321

71:                                               ; preds = %68
  %72 = getelementptr inbounds i8, ptr %10, i64 8
  %73 = load i64, ptr %72, align 8, !tbaa !63
  store i64 %73, ptr %44, align 8, !tbaa !55
  call void @_ZN7DynexCN5BlockD2Ev(ptr noundef nonnull align 8 dereferenceable(384) %10) #7
  call void @llvm.lifetime.end.p0(i64 384, ptr nonnull %10) #7
  br label %74

74:                                               ; preds = %71, %57, %51
  %75 = call noundef i64 @_ZN7DynexCN19getObjectBinarySizeINS_11TransactionEEEmRKT_(ptr noundef nonnull align 8 dereferenceable(112) %1)
  %76 = getelementptr inbounds i8, ptr %2, i64 32
  store i64 %75, ptr %76, align 8, !tbaa !65
  %77 = getelementptr inbounds i8, ptr %1, i64 8
  %78 = load i64, ptr %77, align 8, !tbaa !66
  %79 = getelementptr inbounds i8, ptr %2, i64 72
  store i64 %78, ptr %79, align 8, !tbaa !67
  %80 = call noundef i64 @_ZN7DynexCN21get_outs_money_amountERKNS_11TransactionE(ptr noundef nonnull align 8 dereferenceable(112) %1)
  %81 = getelementptr inbounds i8, ptr %2, i64 56
  store i64 %80, ptr %81, align 8, !tbaa !68
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #7
  %82 = call noundef zeroext i1 @_ZN7DynexCN23get_inputs_money_amountERKNS_11TransactionERm(ptr noundef nonnull align 8 dereferenceable(112) %1, ptr noundef nonnull align 8 dereferenceable(8) %11)
  br i1 %82, label %83, label %319

83:                                               ; preds = %74
  %84 = load i64, ptr %11, align 8, !tbaa !69
  %85 = getelementptr inbounds i8, ptr %2, i64 48
  store i64 %84, ptr %85, align 8, !tbaa !70
  %86 = getelementptr inbounds i8, ptr %1, i64 16
  %87 = call noundef i64 @_ZNKSt6vectorIN5boost7variantIN7DynexCN9BaseInputEJNS2_8KeyInputENS2_19MultisignatureInputEEEESaIS6_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %86) #7
  %.not = icmp eq i64 %87, 0
  br i1 %.not, label %95, label %88

88:                                               ; preds = %83
  %89 = call noundef nonnull align 8 dereferenceable(72) ptr @_ZNKSt6vectorIN5boost7variantIN7DynexCN9BaseInputEJNS2_8KeyInputENS2_19MultisignatureInputEEEESaIS6_EE5frontEv(ptr noundef nonnull align 8 dereferenceable(24) %86) #7
  %90 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK5boost7variantIN7DynexCN9BaseInputEJNS1_8KeyInputENS1_19MultisignatureInputEEE4typeEv(ptr noundef nonnull align 8 dereferenceable(72) %89)
  %91 = call noundef zeroext i1 @_ZNKSt9type_infoeqERKS_(ptr noundef nonnull align 8 dereferenceable(16) %90, ptr noundef nonnull align 8 dereferenceable(16) @_ZTIN7DynexCN9BaseInputE) #7
  br i1 %91, label %92, label %95

92:                                               ; preds = %88
  %93 = getelementptr inbounds i8, ptr %2, i64 40
  store i64 0, ptr %93, align 8, !tbaa !71
  %94 = getelementptr inbounds i8, ptr %2, i64 64
  store i64 0, ptr %94, align 8, !tbaa !72
  br label %108

95:                                               ; preds = %88, %83
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #7
  %96 = call noundef zeroext i1 @_ZN7DynexCN10get_tx_feeERKNS_11TransactionERm(ptr noundef nonnull align 8 dereferenceable(112) %1, ptr noundef nonnull align 8 dereferenceable(8) %12)
  br i1 %96, label %97, label %.thread

.thread:                                          ; preds = %95
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #7
  br label %319

97:                                               ; preds = %95
  %98 = load i64, ptr %12, align 8, !tbaa !69
  %99 = getelementptr inbounds i8, ptr %2, i64 40
  store i64 %98, ptr %99, align 8, !tbaa !71
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #7
  %100 = load ptr, ptr %0, align 8, !tbaa !56
  %101 = load ptr, ptr %100, align 8, !tbaa !58
  %102 = getelementptr inbounds i8, ptr %101, i64 464
  %103 = load ptr, ptr %102, align 8
  %104 = call noundef zeroext i1 %103(ptr noundef nonnull align 8 dereferenceable(8) %100, ptr noundef nonnull align 8 dereferenceable(112) %1, ptr noundef nonnull align 8 dereferenceable(8) %13)
  br i1 %104, label %.thread168, label %107

.thread168:                                       ; preds = %97
  %105 = load i64, ptr %13, align 8, !tbaa !69
  %106 = getelementptr inbounds i8, ptr %2, i64 64
  store i64 %105, ptr %106, align 8, !tbaa !72
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #7
  br label %108

107:                                              ; preds = %97
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #7
  br label %319

108:                                              ; preds = %.thread168, %92
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %14) #7
  %109 = call noundef zeroext i1 @_ZN7DynexCN29BlockchainExplorerDataBuilder12getPaymentIdERKNS_11TransactionERN6Crypto4HashE(ptr noundef nonnull align 8 dereferenceable(112) %1, ptr noundef nonnull align 1 dereferenceable(32) %14)
  br i1 %109, label %110, label %112

110:                                              ; preds = %108
  %111 = getelementptr inbounds i8, ptr %2, i64 89
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(32) %111, ptr noundef nonnull align 1 dereferenceable(32) %14, i64 32, i1 false), !tbaa.struct !5
  br label %115

112:                                              ; preds = %108
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %15) #7
  call void @_ZN5boost17value_initializedIN6Crypto4HashEEC2Ev(ptr noundef nonnull align 1 dereferenceable(32) %15)
  %113 = call noundef nonnull align 1 dereferenceable(32) ptr @_ZN5boost17value_initializedIN6Crypto4HashEEcvRS2_Ev(ptr noundef nonnull align 1 dereferenceable(32) %15)
  %114 = getelementptr inbounds i8, ptr %2, i64 89
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(32) %114, ptr noundef nonnull align 1 dereferenceable(32) %113, i64 32, i1 false), !tbaa.struct !5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #7
  br label %115

115:                                              ; preds = %112, %110
  %116 = getelementptr inbounds i8, ptr %1, i64 64
  %117 = getelementptr inbounds i8, ptr %2, i64 160
  %118 = call noundef zeroext i1 @_ZN7DynexCN29BlockchainExplorerDataBuilder11fillTxExtraERKSt6vectorIhSaIhEERNS_24TransactionExtraDetails2E(ptr noundef nonnull align 8 dereferenceable(16) %0, ptr noundef nonnull align 8 dereferenceable(24) %116, ptr noundef nonnull align 8 dereferenceable(216) %117)
  %119 = getelementptr inbounds i8, ptr %2, i64 264
  %120 = getelementptr inbounds i8, ptr %2, i64 448
  %121 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %120, ptr noundef nonnull align 8 dereferenceable(32) %119)
  %122 = getelementptr inbounds i8, ptr %2, i64 296
  %123 = getelementptr inbounds i8, ptr %2, i64 480
  %124 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEaSERKS7_(ptr noundef nonnull align 8 dereferenceable(24) %123, ptr noundef nonnull align 8 dereferenceable(24) %122)
  %125 = getelementptr inbounds i8, ptr %2, i64 320
  %126 = getelementptr inbounds i8, ptr %2, i64 504
  %127 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEaSERKS7_(ptr noundef nonnull align 8 dereferenceable(24) %126, ptr noundef nonnull align 8 dereferenceable(24) %125)
  %128 = getelementptr inbounds i8, ptr %2, i64 344
  %129 = getelementptr inbounds i8, ptr %2, i64 528
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %129, ptr noundef nonnull align 8 dereferenceable(32) %128, i64 32, i1 false), !tbaa.struct !5
  %130 = getelementptr inbounds i8, ptr %2, i64 376
  %131 = getelementptr inbounds i8, ptr %1, i64 88
  %132 = call noundef i64 @_ZNKSt6vectorIS_IN6Crypto9SignatureESaIS1_EESaIS3_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %131) #7
  call void @_ZNSt6vectorIS_IN6Crypto9SignatureESaIS1_EESaIS3_EE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %130, i64 noundef %132)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #7
  %133 = call ptr @_ZNKSt6vectorIS_IN6Crypto9SignatureESaIS1_EESaIS3_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %131) #7
  store ptr %133, ptr %16, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #7
  %134 = call ptr @_ZNKSt6vectorIS_IN6Crypto9SignatureESaIS1_EESaIS3_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %131) #7
  store ptr %134, ptr %17, align 8
  %135 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKSt6vectorIN6Crypto9SignatureESaIS3_EES1_IS5_SaIS5_EEEEbRKNS_17__normal_iteratorIT_T0_EESF_(ptr noundef nonnull align 8 dereferenceable(8) %16, ptr noundef nonnull align 8 dereferenceable(8) %17) #7
  br i1 %135, label %.lr.ph184, label %._crit_edge185

._crit_edge185:                                   ; preds = %163, %115
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #7
  %136 = getelementptr inbounds i8, ptr %2, i64 400
  %137 = call noundef i64 @_ZNKSt6vectorIN5boost7variantIN7DynexCN9BaseInputEJNS2_8KeyInputENS2_19MultisignatureInputEEEESaIS6_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %86) #7
  call void @_ZNSt6vectorIN5boost7variantIN7DynexCN16BaseInputDetailsEJNS2_15KeyInputDetailsENS2_26MultisignatureInputDetailsEEEESaIS6_EE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %136, i64 noundef %137)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #7
  %138 = call ptr @_ZNKSt6vectorIN5boost7variantIN7DynexCN9BaseInputEJNS2_8KeyInputENS2_19MultisignatureInputEEEESaIS6_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %86) #7
  store ptr %138, ptr %21, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %22) #7
  %139 = call ptr @_ZNKSt6vectorIN5boost7variantIN7DynexCN9BaseInputEJNS2_8KeyInputENS2_19MultisignatureInputEEEESaIS6_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %86) #7
  store ptr %139, ptr %22, align 8
  %140 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN5boost7variantIN7DynexCN9BaseInputEJNS3_8KeyInputENS3_19MultisignatureInputEEEESt6vectorIS7_SaIS7_EEEEbRKNS_17__normal_iteratorIT_T0_EESI_(ptr noundef nonnull align 8 dereferenceable(8) %21, ptr noundef nonnull align 8 dereferenceable(8) %22) #7
  br i1 %140, label %.lr.ph193, label %.loopexit212

.lr.ph193:                                        ; preds = %._crit_edge185
  %141 = getelementptr inbounds i8, ptr %33, i64 32
  %142 = getelementptr inbounds i8, ptr %32, i64 16
  %143 = getelementptr inbounds i8, ptr %32, i64 48
  %144 = getelementptr inbounds i8, ptr %27, i64 64
  %145 = getelementptr inbounds i8, ptr %31, i64 32
  %146 = getelementptr inbounds i8, ptr %27, i64 72
  %147 = getelementptr inbounds i8, ptr %24, i64 8
  %148 = getelementptr inbounds i8, ptr %1, i64 40
  br label %167

.lr.ph184:                                        ; preds = %115, %163
  %149 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKSt6vectorIN6Crypto9SignatureESaIS3_EES1_IS5_SaIS5_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %16) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %18) #7
  call void @_ZNSt6vectorIN6Crypto9SignatureESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %18) #7
  %150 = call noundef i64 @_ZNKSt6vectorIN6Crypto9SignatureESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %149) #7
  invoke void @_ZNSt6vectorIN6Crypto9SignatureESaIS1_EE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %18, i64 noundef %150)
          to label %151 unwind label %155

151:                                              ; preds = %.lr.ph184
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #7
  %152 = call ptr @_ZNKSt6vectorIN6Crypto9SignatureESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %149) #7
  store ptr %152, ptr %19, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #7
  %153 = call ptr @_ZNKSt6vectorIN6Crypto9SignatureESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %149) #7
  store ptr %153, ptr %20, align 8
  %154 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN6Crypto9SignatureESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %19, ptr noundef nonnull align 8 dereferenceable(8) %20) #7
  br i1 %154, label %.lr.ph, label %._crit_edge

._crit_edge:                                      ; preds = %158, %151
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #7
  invoke void @_ZNSt6vectorIS_IN6Crypto9SignatureESaIS1_EESaIS3_EE9push_backEOS3_(ptr noundef nonnull align 8 dereferenceable(24) %130, ptr noundef nonnull align 8 dereferenceable(24) %18)
          to label %163 unwind label %155

155:                                              ; preds = %._crit_edge, %.lr.ph184
  %156 = landingpad { ptr, i32 }
          cleanup
  br label %166

.lr.ph:                                           ; preds = %151, %158
  %157 = call noundef nonnull align 1 dereferenceable(64) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN6Crypto9SignatureESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %19) #7
  invoke void @_ZNSt6vectorIN6Crypto9SignatureESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %18, ptr noundef nonnull align 1 dereferenceable(64) %157)
          to label %158 unwind label %161

158:                                              ; preds = %.lr.ph
  %159 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN6Crypto9SignatureESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %19) #7
  %160 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN6Crypto9SignatureESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %19, ptr noundef nonnull align 8 dereferenceable(8) %20) #7
  br i1 %160, label %.lr.ph, label %._crit_edge

161:                                              ; preds = %.lr.ph
  %162 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #7
  br label %166

163:                                              ; preds = %._crit_edge
  call void @_ZNSt6vectorIN6Crypto9SignatureESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %18) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %18) #7
  %164 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKSt6vectorIN6Crypto9SignatureESaIS3_EES1_IS5_SaIS5_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %16) #7
  %165 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKSt6vectorIN6Crypto9SignatureESaIS3_EES1_IS5_SaIS5_EEEEbRKNS_17__normal_iteratorIT_T0_EESF_(ptr noundef nonnull align 8 dereferenceable(8) %16, ptr noundef nonnull align 8 dereferenceable(8) %17) #7
  br i1 %165, label %.lr.ph184, label %._crit_edge185

166:                                              ; preds = %161, %155
  %.pn154 = phi { ptr, i32 } [ %162, %161 ], [ %156, %155 ]
  call void @_ZNSt6vectorIN6Crypto9SignatureESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %18) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %18) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #7
  br label %318

167:                                              ; preds = %.lr.ph193, %251
  %168 = call noundef nonnull align 8 dereferenceable(72) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN5boost7variantIN7DynexCN9BaseInputEJNS3_8KeyInputENS3_19MultisignatureInputEEEESt6vectorIS7_SaIS7_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %21) #7
  call void @llvm.lifetime.start.p0(i64 104, ptr nonnull %23) #7
  call void @_ZN5boost7variantIN7DynexCN16BaseInputDetailsEJNS1_15KeyInputDetailsENS1_26MultisignatureInputDetailsEEEC2Ev(ptr noundef nonnull align 8 dereferenceable(104) %23) #7
  %169 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK5boost7variantIN7DynexCN9BaseInputEJNS1_8KeyInputENS1_19MultisignatureInputEEE4typeEv(ptr noundef nonnull align 8 dereferenceable(72) %168)
          to label %170 unwind label %180

170:                                              ; preds = %167
  %171 = call noundef zeroext i1 @_ZNKSt9type_infoeqERKS_(ptr noundef nonnull align 8 dereferenceable(16) %169, ptr noundef nonnull align 8 dereferenceable(16) @_ZTIN7DynexCN9BaseInputE) #7
  br i1 %171, label %172, label %191

172:                                              ; preds = %170
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %24) #7
  %173 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN5boost3getIN7DynexCN9BaseInputES2_JNS1_8KeyInputENS1_19MultisignatureInputEEEENS_13add_referenceIKT_E4typeERKNS_7variantIT0_JDpT1_EEE(ptr noundef nonnull align 8 dereferenceable(72) %168)
          to label %174 unwind label %182

174:                                              ; preds = %172
  %175 = load i32, ptr %173, align 4, !tbaa !73
  store i32 %175, ptr %24, align 8, !tbaa !75
  store i64 0, ptr %147, align 8, !tbaa !77
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %25) #7
  %176 = call ptr @_ZNKSt6vectorIN7DynexCN17TransactionOutputESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %148) #7
  store ptr %176, ptr %25, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %26) #7
  %177 = call ptr @_ZNKSt6vectorIN7DynexCN17TransactionOutputESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %148) #7
  store ptr %177, ptr %26, align 8
  %178 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN7DynexCN17TransactionOutputESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %25, ptr noundef nonnull align 8 dereferenceable(8) %26) #7
  br i1 %178, label %.lr.ph190, label %._crit_edge191

._crit_edge191:                                   ; preds = %.lr.ph190, %174
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #7
  %179 = invoke noundef nonnull align 8 dereferenceable(104) ptr @_ZN5boost7variantIN7DynexCN16BaseInputDetailsEJNS1_15KeyInputDetailsENS1_26MultisignatureInputDetailsEEEaSIS2_EENS_9enable_ifINS_3mpl3or_INS_7is_sameIT_S5_EENS_6detail7variant29is_variant_constructible_fromIRKSB_NS8_6l_itemIN4mpl_5long_ILl3EEES2_NSI_INSK_ILl2EEES3_NSI_INSK_ILl1EEES4_NS8_5l_endEEEEEEEEENSJ_5bool_ILb0EEESU_SU_EERS5_E4typeESH_(ptr noundef nonnull align 8 dereferenceable(104) %23, ptr noundef nonnull align 8 dereferenceable(16) %24)
          to label %190 unwind label %182

180:                                              ; preds = %250, %228, %191, %167
  %181 = landingpad { ptr, i32 }
          cleanup
  br label %254

182:                                              ; preds = %._crit_edge191, %172
  %183 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %24) #7
  br label %254

.lr.ph190:                                        ; preds = %174, %.lr.ph190
  %184 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN7DynexCN17TransactionOutputESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %25) #7
  %185 = load i64, ptr %184, align 8, !tbaa !78
  %186 = load i64, ptr %147, align 8, !tbaa !77
  %187 = add i64 %186, %185
  store i64 %187, ptr %147, align 8, !tbaa !77
  %188 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN7DynexCN17TransactionOutputESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %25) #7
  %189 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN7DynexCN17TransactionOutputESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %25, ptr noundef nonnull align 8 dereferenceable(8) %26) #7
  br i1 %189, label %.lr.ph190, label %._crit_edge191

190:                                              ; preds = %._crit_edge191
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %24) #7
  br label %250

191:                                              ; preds = %170
  %192 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK5boost7variantIN7DynexCN9BaseInputEJNS1_8KeyInputENS1_19MultisignatureInputEEE4typeEv(ptr noundef nonnull align 8 dereferenceable(72) %168)
          to label %193 unwind label %180

193:                                              ; preds = %191
  %194 = call noundef zeroext i1 @_ZNKSt9type_infoeqERKS_(ptr noundef nonnull align 8 dereferenceable(16) %192, ptr noundef nonnull align 8 dereferenceable(16) @_ZTIN7DynexCN8KeyInputE) #7
  br i1 %194, label %195, label %228

195:                                              ; preds = %193
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %27) #7
  call void @_ZN7DynexCN15KeyInputDetailsC2Ev(ptr noundef nonnull align 8 dereferenceable(96) %27) #7
  %196 = invoke noundef nonnull align 8 dereferenceable(64) ptr @_ZN5boost3getIN7DynexCN8KeyInputENS1_9BaseInputEJS2_NS1_19MultisignatureInputEEEENS_13add_referenceIKT_E4typeERKNS_7variantIT0_JDpT1_EEE(ptr noundef nonnull align 8 dereferenceable(72) %168)
          to label %197 unwind label %206

197:                                              ; preds = %195
  %198 = invoke noundef nonnull align 8 dereferenceable(64) ptr @_ZN7DynexCN8KeyInputaSERKS0_(ptr noundef nonnull align 8 dereferenceable(64) %27, ptr noundef nonnull align 8 dereferenceable(64) %196)
          to label %199 unwind label %206

199:                                              ; preds = %197
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %28) #7
  call void @_ZNSt7__cxx114listISt4pairIN6Crypto4HashEmESaIS4_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %28) #7
  %200 = load ptr, ptr %0, align 8, !tbaa !56
  %201 = load ptr, ptr %200, align 8, !tbaa !58
  %202 = getelementptr inbounds i8, ptr %201, i64 280
  %203 = load ptr, ptr %202, align 8
  %204 = invoke noundef zeroext i1 %203(ptr noundef nonnull align 8 dereferenceable(8) %200, ptr noundef nonnull align 8 dereferenceable(64) %196, ptr noundef nonnull align 8 dereferenceable(24) %28)
          to label %205 unwind label %208

205:                                              ; preds = %199
  br i1 %204, label %210, label %.critedge159

206:                                              ; preds = %197, %195
  %207 = landingpad { ptr, i32 }
          cleanup
  br label %227

208:                                              ; preds = %._crit_edge188, %199
  %209 = landingpad { ptr, i32 }
          cleanup
  br label %226

210:                                              ; preds = %205
  %211 = getelementptr inbounds i8, ptr %196, i64 8
  %212 = call noundef i64 @_ZNKSt6vectorIjSaIjEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %211) #7
  store i64 %212, ptr %144, align 8, !tbaa !83
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #7
  %213 = call ptr @_ZNSt7__cxx114listISt4pairIN6Crypto4HashEmESaIS4_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %28) #7
  store ptr %213, ptr %29, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %30) #7
  %214 = call ptr @_ZNSt7__cxx114listISt4pairIN6Crypto4HashEmESaIS4_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %28) #7
  store ptr %214, ptr %30, align 8
  %215 = call noundef zeroext i1 @_ZStneRKSt14_List_iteratorISt4pairIN6Crypto4HashEmEES6_(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %30) #7
  br i1 %215, label %.lr.ph187, label %._crit_edge188

._crit_edge188:                                   ; preds = %220, %210
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #7
  %216 = invoke noundef nonnull align 8 dereferenceable(104) ptr @_ZN5boost7variantIN7DynexCN16BaseInputDetailsEJNS1_15KeyInputDetailsENS1_26MultisignatureInputDetailsEEEaSIS3_EENS_9enable_ifINS_3mpl3or_INS_7is_sameIT_S5_EENS_6detail7variant29is_variant_constructible_fromIRKSB_NS8_6l_itemIN4mpl_5long_ILl3EEES2_NSI_INSK_ILl2EEES3_NSI_INSK_ILl1EEES4_NS8_5l_endEEEEEEEEENSJ_5bool_ILb0EEESU_SU_EERS5_E4typeESH_(ptr noundef nonnull align 8 dereferenceable(104) %23, ptr noundef nonnull align 8 dereferenceable(96) %27)
          to label %225 unwind label %208

.lr.ph187:                                        ; preds = %210, %220
  %217 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNKSt14_List_iteratorISt4pairIN6Crypto4HashEmEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %29) #7
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %31) #7
  %218 = getelementptr inbounds i8, ptr %217, i64 32
  %219 = load i64, ptr %218, align 8, !tbaa !95
  store i64 %219, ptr %145, align 8, !tbaa !97
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %31, ptr noundef nonnull align 8 dereferenceable(32) %217, i64 32, i1 false), !tbaa.struct !5
  invoke void @_ZNSt6vectorIN7DynexCN33TransactionOutputReferenceDetailsESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %146, ptr noundef nonnull align 8 dereferenceable(40) %31)
          to label %220 unwind label %223

220:                                              ; preds = %.lr.ph187
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %31) #7
  %221 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt14_List_iteratorISt4pairIN6Crypto4HashEmEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %29) #7
  %222 = call noundef zeroext i1 @_ZStneRKSt14_List_iteratorISt4pairIN6Crypto4HashEmEES6_(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %30) #7
  br i1 %222, label %.lr.ph187, label %._crit_edge188

223:                                              ; preds = %.lr.ph187
  %224 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %31) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #7
  br label %226

225:                                              ; preds = %._crit_edge188
  call void @_ZNSt7__cxx1110_List_baseISt4pairIN6Crypto4HashEmESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %28) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %28) #7
  call void @_ZN7DynexCN15KeyInputDetailsD2Ev(ptr noundef nonnull align 8 dereferenceable(96) %27) #7
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %27) #7
  br label %250

226:                                              ; preds = %223, %208
  %.pn142 = phi { ptr, i32 } [ %224, %223 ], [ %209, %208 ]
  call void @_ZNSt7__cxx1110_List_baseISt4pairIN6Crypto4HashEmESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %28) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %28) #7
  br label %227

227:                                              ; preds = %226, %206
  %.pn142.pn = phi { ptr, i32 } [ %.pn142, %226 ], [ %207, %206 ]
  call void @_ZN7DynexCN15KeyInputDetailsD2Ev(ptr noundef nonnull align 8 dereferenceable(96) %27) #7
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %27) #7
  br label %254

228:                                              ; preds = %193
  %229 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK5boost7variantIN7DynexCN9BaseInputEJNS1_8KeyInputENS1_19MultisignatureInputEEE4typeEv(ptr noundef nonnull align 8 dereferenceable(72) %168)
          to label %230 unwind label %180

230:                                              ; preds = %228
  %231 = call noundef zeroext i1 @_ZNKSt9type_infoeqERKS_(ptr noundef nonnull align 8 dereferenceable(16) %229, ptr noundef nonnull align 8 dereferenceable(16) @_ZTIN7DynexCN19MultisignatureInputE) #7
  br i1 %231, label %232, label %.critedge163.thread

232:                                              ; preds = %230
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %32) #7
  %233 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN5boost3getIN7DynexCN19MultisignatureInputENS1_9BaseInputEJNS1_8KeyInputES2_EEENS_13add_referenceIKT_E4typeERKNS_7variantIT0_JDpT1_EEE(ptr noundef nonnull align 8 dereferenceable(72) %168)
          to label %234 unwind label %241

234:                                              ; preds = %232
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %32, ptr noundef nonnull align 8 dereferenceable(16) %233, i64 16, i1 false), !tbaa.struct !99
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %33) #7
  call void @_ZNSt4pairIN6Crypto4HashEmEC2IS1_mTnNSt9enable_ifIXsr6__and_ISt37__is_implicitly_default_constructibleIT_ES5_IT0_EEE5valueEbE4typeELb1EEEv(ptr noundef nonnull align 8 dereferenceable(40) %33)
  %235 = load ptr, ptr %0, align 8, !tbaa !56
  %236 = load ptr, ptr %235, align 8, !tbaa !58
  %237 = getelementptr inbounds i8, ptr %236, i64 312
  %238 = load ptr, ptr %237, align 8
  %239 = invoke noundef zeroext i1 %238(ptr noundef nonnull align 8 dereferenceable(8) %235, ptr noundef nonnull align 8 dereferenceable(16) %233, ptr noundef nonnull align 8 dereferenceable(40) %33)
          to label %240 unwind label %243

240:                                              ; preds = %234
  br i1 %239, label %245, label %.critedge161

241:                                              ; preds = %232
  %242 = landingpad { ptr, i32 }
          cleanup
  br label %249

243:                                              ; preds = %245, %234
  %244 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %33) #7
  br label %249

245:                                              ; preds = %240
  %246 = load i64, ptr %141, align 8, !tbaa !95
  store i64 %246, ptr %143, align 8, !tbaa !100
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %142, ptr noundef nonnull align 8 dereferenceable(32) %33, i64 32, i1 false), !tbaa.struct !5
  %247 = invoke noundef nonnull align 8 dereferenceable(104) ptr @_ZN5boost7variantIN7DynexCN16BaseInputDetailsEJNS1_15KeyInputDetailsENS1_26MultisignatureInputDetailsEEEaSIS4_EENS_9enable_ifINS_3mpl3or_INS_7is_sameIT_S5_EENS_6detail7variant29is_variant_constructible_fromIRKSB_NS8_6l_itemIN4mpl_5long_ILl3EEES2_NSI_INSK_ILl2EEES3_NSI_INSK_ILl1EEES4_NS8_5l_endEEEEEEEEENSJ_5bool_ILb0EEESU_SU_EERS5_E4typeESH_(ptr noundef nonnull align 8 dereferenceable(104) %23, ptr noundef nonnull align 8 dereferenceable(56) %32)
          to label %248 unwind label %243

248:                                              ; preds = %245
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %33) #7
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %32) #7
  br label %250

249:                                              ; preds = %243, %241
  %.pn = phi { ptr, i32 } [ %244, %243 ], [ %242, %241 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %32) #7
  br label %254

250:                                              ; preds = %225, %248, %190
  invoke void @_ZNSt6vectorIN5boost7variantIN7DynexCN16BaseInputDetailsEJNS2_15KeyInputDetailsENS2_26MultisignatureInputDetailsEEEESaIS6_EE9push_backEOS6_(ptr noundef nonnull align 8 dereferenceable(24) %136, ptr noundef nonnull align 8 dereferenceable(104) %23)
          to label %251 unwind label %180

.critedge159:                                     ; preds = %205
  call void @_ZNSt7__cxx1110_List_baseISt4pairIN6Crypto4HashEmESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %28) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %28) #7
  call void @_ZN7DynexCN15KeyInputDetailsD2Ev(ptr noundef nonnull align 8 dereferenceable(96) %27) #7
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %27) #7
  br label %.critedge163.thread

.critedge161:                                     ; preds = %240
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %33) #7
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %32) #7
  br label %.critedge163.thread

251:                                              ; preds = %250
  call void @_ZN5boost7variantIN7DynexCN16BaseInputDetailsEJNS1_15KeyInputDetailsENS1_26MultisignatureInputDetailsEEED2Ev(ptr noundef nonnull align 8 dereferenceable(104) %23) #7
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %23) #7
  %252 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN5boost7variantIN7DynexCN9BaseInputEJNS3_8KeyInputENS3_19MultisignatureInputEEEESt6vectorIS7_SaIS7_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %21) #7
  %253 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN5boost7variantIN7DynexCN9BaseInputEJNS3_8KeyInputENS3_19MultisignatureInputEEEESt6vectorIS7_SaIS7_EEEEbRKNS_17__normal_iteratorIT_T0_EESI_(ptr noundef nonnull align 8 dereferenceable(8) %21, ptr noundef nonnull align 8 dereferenceable(8) %22) #7
  br i1 %253, label %167, label %.loopexit212

254:                                              ; preds = %249, %227, %182, %180
  %.pn145 = phi { ptr, i32 } [ %181, %180 ], [ %183, %182 ], [ %.pn142.pn, %227 ], [ %.pn, %249 ]
  call void @_ZN5boost7variantIN7DynexCN16BaseInputDetailsEJNS1_15KeyInputDetailsENS1_26MultisignatureInputDetailsEEED2Ev(ptr noundef nonnull align 8 dereferenceable(104) %23) #7
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %23) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #7
  br label %318

.critedge163.thread:                              ; preds = %230, %.critedge161, %.critedge159
  call void @_ZN5boost7variantIN7DynexCN16BaseInputDetailsEJNS1_15KeyInputDetailsENS1_26MultisignatureInputDetailsEEED2Ev(ptr noundef nonnull align 8 dereferenceable(104) %23) #7
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %23) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #7
  br label %317

.loopexit212:                                     ; preds = %251, %._crit_edge185
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #7
  %255 = getelementptr inbounds i8, ptr %2, i64 424
  %256 = getelementptr inbounds i8, ptr %1, i64 40
  %257 = call noundef i64 @_ZNKSt6vectorIN7DynexCN17TransactionOutputESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %256) #7
  call void @_ZNSt6vectorIN7DynexCN25transactionOutputDetails2ESaIS1_EE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %255, i64 noundef %257)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %34) #7
  call void @_ZNSt6vectorIjSaIjEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %34) #7
  %258 = call noundef i64 @_ZNKSt6vectorIN7DynexCN17TransactionOutputESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %256) #7
  invoke void @_ZNSt6vectorIjSaIjEE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %34, i64 noundef %258)
          to label %259 unwind label %272

259:                                              ; preds = %.loopexit212
  %260 = getelementptr inbounds i8, ptr %2, i64 122
  %261 = load i8, ptr %260, align 2, !tbaa !60, !range !103, !noundef !104
  %262 = trunc nuw i8 %261 to i1
  br i1 %262, label %263, label %270

263:                                              ; preds = %259
  %264 = load ptr, ptr %0, align 8, !tbaa !56
  %265 = load ptr, ptr %264, align 8, !tbaa !58
  %266 = getelementptr inbounds i8, ptr %265, i64 136
  %267 = load ptr, ptr %266, align 8
  %268 = invoke noundef zeroext i1 %267(ptr noundef nonnull align 8 dereferenceable(8) %264, ptr noundef nonnull align 1 dereferenceable(32) %5, ptr noundef nonnull align 8 dereferenceable(24) %34)
          to label %269 unwind label %272

269:                                              ; preds = %263
  br i1 %268, label %.loopexit171, label %270

270:                                              ; preds = %269, %259
  %271 = call noundef i64 @_ZNKSt6vectorIN7DynexCN17TransactionOutputESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %256) #7
  %.not197 = icmp eq i64 %271, 0
  br i1 %.not197, label %.loopexit171, label %.lr.ph196

272:                                              ; preds = %263, %.loopexit212
  %273 = landingpad { ptr, i32 }
          cleanup
  br label %316

.lr.ph196:                                        ; preds = %270, %274
  %.0121194 = phi i64 [ %275, %274 ], [ 0, %270 ]
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %35) #7
  store i32 0, ptr %35, align 4, !tbaa !61
  invoke void @_ZNSt6vectorIjSaIjEE9push_backEOj(ptr noundef nonnull align 8 dereferenceable(24) %34, ptr noundef nonnull align 4 dereferenceable(4) %35)
          to label %274 unwind label %278

274:                                              ; preds = %.lr.ph196
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %35) #7
  %275 = add nuw i64 %.0121194, 1
  %276 = call noundef i64 @_ZNKSt6vectorIN7DynexCN17TransactionOutputESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %256) #7
  %277 = icmp ult i64 %275, %276
  br i1 %277, label %.lr.ph196, label %.loopexit171, !llvm.loop !105

278:                                              ; preds = %.lr.ph196
  %279 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %35) #7
  br label %316

.loopexit171:                                     ; preds = %274, %270, %269
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %36) #7
  invoke void @_ZN5boost5range7combineIJRKSt6vectorIN7DynexCN17TransactionOutputESaIS4_EERS2_IjSaIjEEEEENS0_14combined_rangeIDTclsr5boostE10make_tuplespclsr5boostE5beginfp_EEEEEDpOT_(ptr dead_on_unwind nonnull writable sret(%"class.boost::range::combined_range") align 8 %36, ptr noundef nonnull align 8 dereferenceable(24) %256, ptr noundef nonnull align 8 dereferenceable(24) %34)
          to label %280 unwind label %288

280:                                              ; preds = %.loopexit171
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %37) #7
  invoke void @_ZNK5boost21iterator_range_detail19iterator_range_baseINS_9iterators12zip_iteratorINS_6tuples5tupleIN9__gnu_cxx17__normal_iteratorIPKN7DynexCN17TransactionOutputESt6vectorIS9_SaIS9_EEEENS7_IPjSC_IjSaIjEEEENS4_9null_typeESK_SK_SK_SK_SK_SK_SK_EEEENS2_27incrementable_traversal_tagEE5beginEv(ptr dead_on_unwind nonnull writable sret(%"class.boost::iterators::zip_iterator") align 8 %37, ptr noundef nonnull align 8 dereferenceable(32) %36)
          to label %281 unwind label %290

281:                                              ; preds = %280
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %38) #7
  invoke void @_ZNK5boost21iterator_range_detail19iterator_range_baseINS_9iterators12zip_iteratorINS_6tuples5tupleIN9__gnu_cxx17__normal_iteratorIPKN7DynexCN17TransactionOutputESt6vectorIS9_SaIS9_EEEENS7_IPjSC_IjSaIjEEEENS4_9null_typeESK_SK_SK_SK_SK_SK_SK_EEEENS2_27incrementable_traversal_tagEE3endEv(ptr dead_on_unwind nonnull writable sret(%"class.boost::iterators::zip_iterator") align 8 %38, ptr noundef nonnull align 8 dereferenceable(32) %36)
          to label %.preheader unwind label %.loopexit.split-lp

.preheader:                                       ; preds = %281
  %282 = getelementptr inbounds i8, ptr %41, i64 48
  %283 = getelementptr inbounds i8, ptr %41, i64 8
  br label %284

284:                                              ; preds = %.preheader, %307
  %285 = invoke noundef zeroext i1 @_ZN5boost9iteratorsneINS0_12zip_iteratorINS_6tuples5tupleIN9__gnu_cxx17__normal_iteratorIPKN7DynexCN17TransactionOutputESt6vectorIS8_SaIS8_EEEENS6_IPjSB_IjSaIjEEEENS3_9null_typeESJ_SJ_SJ_SJ_SJ_SJ_SJ_EEEENS3_4consIRS9_NSM_IRjSJ_EEEENS0_27random_access_traversal_tagESQ_lSL_SQ_SR_SQ_lEENS0_6detail23enable_if_interoperableIT_T4_NS_3mpl6apply2INSS_12always_bool2ESU_SV_E4typeEE4typeERKNS0_15iterator_facadeISU_T0_T1_T2_T3_EERKNS13_ISV_T5_T6_T7_T8_EE(ptr noundef nonnull align 1 dereferenceable(1) %37, ptr noundef nonnull align 1 dereferenceable(1) %38)
          to label %286 unwind label %.loopexit

286:                                              ; preds = %284
  br i1 %285, label %292, label %287

287:                                              ; preds = %286
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %38) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %37) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %36) #7
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %34) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %34) #7
  br label %317

288:                                              ; preds = %.loopexit171
  %289 = landingpad { ptr, i32 }
          cleanup
  br label %315

290:                                              ; preds = %280
  %291 = landingpad { ptr, i32 }
          cleanup
  br label %314

.loopexit:                                        ; preds = %284, %307
  %lpad.loopexit = landingpad { ptr, i32 }
          cleanup
  br label %313

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

292:                                              ; preds = %286
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %39) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %40) #7
  invoke void @_ZNK5boost9iterators6detail20iterator_facade_baseINS0_12zip_iteratorINS_6tuples5tupleIN9__gnu_cxx17__normal_iteratorIPKN7DynexCN17TransactionOutputESt6vectorIS9_SaIS9_EEEENS7_IPjSC_IjSaIjEEEENS4_9null_typeESK_SK_SK_SK_SK_SK_SK_EEEENS4_4consIRSA_NSN_IRjSK_EEEENS0_27random_access_traversal_tagESR_lLb0ELb0EEdeEv(ptr dead_on_unwind nonnull writable sret(%"struct.boost::tuples::cons.111") align 8 %40, ptr noundef nonnull align 1 dereferenceable(1) %37)
          to label %293 unwind label %309

293:                                              ; preds = %292
  invoke void @_ZN5boost6tuples5tupleIN7DynexCN17TransactionOutputEjNS0_9null_typeES4_S4_S4_S4_S4_S4_S4_EC2IRKS3_NS0_4consIRjS4_EEEERKNS9_IT_T0_EE(ptr noundef nonnull align 8 dereferenceable(52) %39, ptr noundef nonnull align 8 dereferenceable(16) %40)
          to label %294 unwind label %309

294:                                              ; preds = %293
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %40) #7
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %41) #7
  call void @_ZN7DynexCN25transactionOutputDetails2C2Ev(ptr noundef nonnull align 8 dereferenceable(56) %41) #7
  %295 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK5boost6tuples4consIN7DynexCN17TransactionOutputENS1_IjNS0_9null_typeEEEE3getILi1EEENS0_13access_traitsINS0_7elementIXT_ES6_E4typeEE10const_typeEv(ptr noundef nonnull align 8 dereferenceable(52) %39)
          to label %296 unwind label %311

296:                                              ; preds = %294
  %297 = load i32, ptr %295, align 4, !tbaa !61
  %298 = zext i32 %297 to i64
  store i64 %298, ptr %282, align 8, !tbaa !107
  %299 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZNK5boost6tuples4consIN7DynexCN17TransactionOutputENS1_IjNS0_9null_typeEEEE3getILi0EEENS0_13access_traitsINS0_7elementIXT_ES6_E4typeEE10const_typeEv(ptr noundef nonnull align 8 dereferenceable(52) %39)
          to label %300 unwind label %311

300:                                              ; preds = %296
  %301 = load i64, ptr %299, align 8, !tbaa !78
  store i64 %301, ptr %41, align 8, !tbaa !109
  %302 = invoke noundef nonnull align 8 dereferenceable(48) ptr @_ZNK5boost6tuples4consIN7DynexCN17TransactionOutputENS1_IjNS0_9null_typeEEEE3getILi0EEENS0_13access_traitsINS0_7elementIXT_ES6_E4typeEE10const_typeEv(ptr noundef nonnull align 8 dereferenceable(52) %39)
          to label %303 unwind label %311

303:                                              ; preds = %300
  %304 = getelementptr inbounds i8, ptr %302, i64 8
  %305 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZN5boost7variantIN7DynexCN9KeyOutputEJNS1_20MultisignatureOutputEEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(40) %283, ptr noundef nonnull align 8 dereferenceable(40) %304)
          to label %306 unwind label %311

306:                                              ; preds = %303
  invoke void @_ZNSt6vectorIN7DynexCN25transactionOutputDetails2ESaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %255, ptr noundef nonnull align 8 dereferenceable(56) %41)
          to label %307 unwind label %311

307:                                              ; preds = %306
  call void @_ZN7DynexCN25transactionOutputDetails2D2Ev(ptr noundef nonnull align 8 dereferenceable(56) %41) #7
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %41) #7
  call void @_ZN5boost6tuples4consIN7DynexCN17TransactionOutputENS1_IjNS0_9null_typeEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(52) %39) #7
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %39) #7
  %308 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN5boost9iterators6detail20iterator_facade_baseINS0_12zip_iteratorINS_6tuples5tupleIN9__gnu_cxx17__normal_iteratorIPKN7DynexCN17TransactionOutputESt6vectorIS9_SaIS9_EEEENS7_IPjSC_IjSaIjEEEENS4_9null_typeESK_SK_SK_SK_SK_SK_SK_EEEENS4_4consIRSA_NSN_IRjSK_EEEENS0_27random_access_traversal_tagESR_lLb0ELb0EEppEv(ptr noundef nonnull align 1 dereferenceable(1) %37)
          to label %284 unwind label %.loopexit

309:                                              ; preds = %293, %292
  %310 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %40) #7
  br label %313

311:                                              ; preds = %306, %303, %300, %296, %294
  %312 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7DynexCN25transactionOutputDetails2D2Ev(ptr noundef nonnull align 8 dereferenceable(56) %41) #7
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %41) #7
  call void @_ZN5boost6tuples4consIN7DynexCN17TransactionOutputENS1_IjNS0_9null_typeEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(52) %39) #7
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %39) #7
  br label %313

313:                                              ; preds = %.loopexit, %.loopexit.split-lp, %309, %311
  %.pn149 = phi { ptr, i32 } [ %312, %311 ], [ %310, %309 ], [ %lpad.loopexit, %.loopexit ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %38) #7
  br label %314

314:                                              ; preds = %313, %290
  %.pn149.pn = phi { ptr, i32 } [ %.pn149, %313 ], [ %291, %290 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %37) #7
  br label %315

315:                                              ; preds = %314, %288
  %.pn149.pn.pn = phi { ptr, i32 } [ %.pn149.pn, %314 ], [ %289, %288 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %36) #7
  br label %316

316:                                              ; preds = %315, %278, %272
  %.pn149.pn.pn.pn = phi { ptr, i32 } [ %.pn149.pn.pn, %315 ], [ %279, %278 ], [ %273, %272 ]
  call void @_ZNSt6vectorIjSaIjEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %34) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %34) #7
  br label %318

317:                                              ; preds = %.critedge163.thread, %287
  %.11 = phi i1 [ false, %.critedge163.thread ], [ true, %287 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #7
  br label %319

318:                                              ; preds = %316, %254, %166
  %.pn154.pn = phi { ptr, i32 } [ %.pn154, %166 ], [ %.pn149.pn.pn.pn, %316 ], [ %.pn145, %254 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #7
  br label %321

319:                                              ; preds = %107, %.thread, %74, %317
  %.12 = phi i1 [ %.11, %317 ], [ false, %107 ], [ false, %74 ], [ false, %.thread ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #7
  br label %320

.critedge:                                        ; preds = %68
  call void @_ZN7DynexCN5BlockD2Ev(ptr noundef nonnull align 8 dereferenceable(384) %10) #7
  call void @llvm.lifetime.end.p0(i64 384, ptr nonnull %10) #7
  br label %320

320:                                              ; preds = %.critedge, %319
  %.13 = phi i1 [ %.12, %319 ], [ false, %.critedge ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %7) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #7
  ret i1 %.13

321:                                              ; preds = %318, %69
  %.pn154.pn.pn = phi { ptr, i32 } [ %.pn154.pn, %318 ], [ %70, %69 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %7) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #7
  resume { ptr, i32 } %.pn154.pn.pn
}

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7DynexCN13getObjectHashINS_11TransactionEEEN6Crypto4HashERKT_(ptr dead_on_unwind noalias writable sret(%"struct.Crypto::Hash") align 1, ptr noundef nonnull align 8 dereferenceable(112)) local_unnamed_addr #1

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

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

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

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

declare noundef i64 @_ZN7DynexCN21get_outs_money_amountERKNS_11TransactionE(ptr noundef nonnull align 8 dereferenceable(112)) local_unnamed_addr #6

declare noundef zeroext i1 @_ZN7DynexCN23get_inputs_money_amountERKNS_11TransactionERm(ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #6

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

declare noundef zeroext i1 @_ZN7DynexCN10get_tx_feeERKNS_11TransactionERm(ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #6

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

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

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN9__gnu_cxxneIPKSt6vectorIN6Crypto9SignatureESaIS3_EES1_IS5_SaIS5_EEEEbRKNS_17__normal_iteratorIT_T0_EESF_(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(24) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKSt6vectorIN6Crypto9SignatureESaIS3_EES1_IS5_SaIS5_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3 align 2

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

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

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN9__gnu_cxxneIPKN6Crypto9SignatureESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(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 1 dereferenceable(64) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN6Crypto9SignatureESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3 align 2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN5boost3getIN7DynexCN19MultisignatureInputENS1_9BaseInputEJNS1_8KeyInputES2_EEENS_13add_referenceIKT_E4typeERKNS_7variantIT0_JDpT1_EEE(ptr noundef nonnull align 8 dereferenceable(72)) local_unnamed_addr #5

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5boost5range7combineIJRKSt6vectorIN7DynexCN17TransactionOutputESaIS4_EERS2_IjSaIjEEEEENS0_14combined_rangeIDTclsr5boostE10make_tuplespclsr5boostE5beginfp_EEEEEDpOT_(ptr dead_on_unwind noalias writable sret(%"class.boost::range::combined_range") align 8, ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #1

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5boost21iterator_range_detail19iterator_range_baseINS_9iterators12zip_iteratorINS_6tuples5tupleIN9__gnu_cxx17__normal_iteratorIPKN7DynexCN17TransactionOutputESt6vectorIS9_SaIS9_EEEENS7_IPjSC_IjSaIjEEEENS4_9null_typeESK_SK_SK_SK_SK_SK_SK_EEEENS2_27incrementable_traversal_tagEE5beginEv(ptr dead_on_unwind noalias writable sret(%"class.boost::iterators::zip_iterator") align 8, ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5boost21iterator_range_detail19iterator_range_baseINS_9iterators12zip_iteratorINS_6tuples5tupleIN9__gnu_cxx17__normal_iteratorIPKN7DynexCN17TransactionOutputESt6vectorIS9_SaIS9_EEEENS7_IPjSC_IjSaIjEEEENS4_9null_typeESK_SK_SK_SK_SK_SK_SK_EEEENS2_27incrementable_traversal_tagEE3endEv(ptr dead_on_unwind noalias writable sret(%"class.boost::iterators::zip_iterator") align 8, ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #1 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK5boost9iterators6detail20iterator_facade_baseINS0_12zip_iteratorINS_6tuples5tupleIN9__gnu_cxx17__normal_iteratorIPKN7DynexCN17TransactionOutputESt6vectorIS9_SaIS9_EEEENS7_IPjSC_IjSaIjEEEENS4_9null_typeESK_SK_SK_SK_SK_SK_SK_EEEENS4_4consIRSA_NSN_IRjSK_EEEENS0_27random_access_traversal_tagESR_lLb0ELb0EEdeEv(ptr dead_on_unwind noalias writable sret(%"struct.boost::tuples::cons.111") align 8, ptr noundef nonnull align 1 dereferenceable(1)) local_unnamed_addr #1 align 2

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

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

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

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

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

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

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

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

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

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

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

!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 = !{i64 0, i64 32, !6}
!6 = !{!7, !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !7, i64 0}
!10 = !{!"_ZTSN7DynexCN17TransactionPrefixE", !7, i64 0, !11, i64 8, !12, i64 16, !17, i64 40, !21, i64 64}
!11 = !{!"long", !7, i64 0}
!12 = !{!"_ZTSSt6vectorIN5boost7variantIN7DynexCN9BaseInputEJNS2_8KeyInputENS2_19MultisignatureInputEEEESaIS6_EE", !13, i64 0}
!13 = !{!"_ZTSSt12_Vector_baseIN5boost7variantIN7DynexCN9BaseInputEJNS2_8KeyInputENS2_19MultisignatureInputEEEESaIS6_EE", !14, i64 0}
!14 = !{!"_ZTSNSt12_Vector_baseIN5boost7variantIN7DynexCN9BaseInputEJNS2_8KeyInputENS2_19MultisignatureInputEEEESaIS6_EE12_Vector_implE", !15, i64 0}
!15 = !{!"_ZTSNSt12_Vector_baseIN5boost7variantIN7DynexCN9BaseInputEJNS2_8KeyInputENS2_19MultisignatureInputEEEESaIS6_EE17_Vector_impl_dataE", !16, i64 0, !16, i64 8, !16, i64 16}
!16 = !{!"any pointer", !7, i64 0}
!17 = !{!"_ZTSSt6vectorIN7DynexCN17TransactionOutputESaIS1_EE", !18, i64 0}
!18 = !{!"_ZTSSt12_Vector_baseIN7DynexCN17TransactionOutputESaIS1_EE", !19, i64 0}
!19 = !{!"_ZTSNSt12_Vector_baseIN7DynexCN17TransactionOutputESaIS1_EE12_Vector_implE", !20, i64 0}
!20 = !{!"_ZTSNSt12_Vector_baseIN7DynexCN17TransactionOutputESaIS1_EE17_Vector_impl_dataE", !16, i64 0, !16, i64 8, !16, i64 16}
!21 = !{!"_ZTSSt6vectorIhSaIhEE", !22, i64 0}
!22 = !{!"_ZTSSt12_Vector_baseIhSaIhEE", !23, i64 0}
!23 = !{!"_ZTSNSt12_Vector_baseIhSaIhEE12_Vector_implE", !24, i64 0}
!24 = !{!"_ZTSNSt12_Vector_baseIhSaIhEE17_Vector_impl_dataE", !16, i64 0, !16, i64 8, !16, i64 16}
!25 = !{!26, !7, i64 88}
!26 = !{!"_ZTSN7DynexCN18TransactionDetailsE", !27, i64 0, !11, i64 32, !11, i64 40, !11, i64 48, !11, i64 56, !11, i64 64, !11, i64 72, !11, i64 80, !7, i64 88, !27, i64 89, !28, i64 121, !28, i64 122, !27, i64 123, !29, i64 156, !30, i64 160, !43, i64 376, !47, i64 400, !51, i64 424, !36, i64 448, !38, i64 480, !38, i64 504, !42, i64 528}
!27 = !{!"_ZTSN6Crypto4HashE", !7, i64 0}
!28 = !{!"bool", !7, i64 0}
!29 = !{!"int", !7, i64 0}
!30 = !{!"_ZTSN7DynexCN24TransactionExtraDetails2E", !31, i64 0, !35, i64 24, !21, i64 56, !21, i64 80, !36, i64 104, !38, i64 136, !38, i64 160, !42, i64 184}
!31 = !{!"_ZTSSt6vectorImSaImEE", !32, i64 0}
!32 = !{!"_ZTSSt12_Vector_baseImSaImEE", !33, i64 0}
!33 = !{!"_ZTSNSt12_Vector_baseImSaImEE12_Vector_implE", !34, i64 0}
!34 = !{!"_ZTSNSt12_Vector_baseImSaImEE17_Vector_impl_dataE", !16, i64 0, !16, i64 8, !16, i64 16}
!35 = !{!"_ZTSN6Crypto9PublicKeyE", !7, i64 0}
!36 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !37, i64 0, !11, i64 8, !7, i64 16}
!37 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !16, i64 0}
!38 = !{!"_ZTSSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !39, i64 0}
!39 = !{!"_ZTSSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !40, i64 0}
!40 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_Vector_implE", !41, i64 0}
!41 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_Vector_impl_dataE", !16, i64 0, !16, i64 8, !16, i64 16}
!42 = !{!"_ZTSN6Crypto9SecretKeyE", !7, i64 0}
!43 = !{!"_ZTSSt6vectorIS_IN6Crypto9SignatureESaIS1_EESaIS3_EE", !44, i64 0}
!44 = !{!"_ZTSSt12_Vector_baseISt6vectorIN6Crypto9SignatureESaIS2_EESaIS4_EE", !45, i64 0}
!45 = !{!"_ZTSNSt12_Vector_baseISt6vectorIN6Crypto9SignatureESaIS2_EESaIS4_EE12_Vector_implE", !46, i64 0}
!46 = !{!"_ZTSNSt12_Vector_baseISt6vectorIN6Crypto9SignatureESaIS2_EESaIS4_EE17_Vector_impl_dataE", !16, i64 0, !16, i64 8, !16, i64 16}
!47 = !{!"_ZTSSt6vectorIN5boost7variantIN7DynexCN16BaseInputDetailsEJNS2_15KeyInputDetailsENS2_26MultisignatureInputDetailsEEEESaIS6_EE", !48, i64 0}
!48 = !{!"_ZTSSt12_Vector_baseIN5boost7variantIN7DynexCN16BaseInputDetailsEJNS2_15KeyInputDetailsENS2_26MultisignatureInputDetailsEEEESaIS6_EE", !49, i64 0}
!49 = !{!"_ZTSNSt12_Vector_baseIN5boost7variantIN7DynexCN16BaseInputDetailsEJNS2_15KeyInputDetailsENS2_26MultisignatureInputDetailsEEEESaIS6_EE12_Vector_implE", !50, i64 0}
!50 = !{!"_ZTSNSt12_Vector_baseIN5boost7variantIN7DynexCN16BaseInputDetailsEJNS2_15KeyInputDetailsENS2_26MultisignatureInputDetailsEEEESaIS6_EE17_Vector_impl_dataE", !16, i64 0, !16, i64 8, !16, i64 16}
!51 = !{!"_ZTSSt6vectorIN7DynexCN25transactionOutputDetails2ESaIS1_EE", !52, i64 0}
!52 = !{!"_ZTSSt12_Vector_baseIN7DynexCN25transactionOutputDetails2ESaIS1_EE", !53, i64 0}
!53 = !{!"_ZTSNSt12_Vector_baseIN7DynexCN25transactionOutputDetails2ESaIS1_EE12_Vector_implE", !54, i64 0}
!54 = !{!"_ZTSNSt12_Vector_baseIN7DynexCN25transactionOutputDetails2ESaIS1_EE17_Vector_impl_dataE", !16, i64 0, !16, i64 8, !16, i64 16}
!55 = !{!26, !11, i64 80}
!56 = !{!57, !16, i64 0}
!57 = !{!"_ZTSN7DynexCN29BlockchainExplorerDataBuilderE", !16, i64 0, !16, i64 8}
!58 = !{!59, !59, i64 0}
!59 = !{!"vtable pointer", !8, i64 0}
!60 = !{!26, !28, i64 122}
!61 = !{!29, !29, i64 0}
!62 = !{!26, !29, i64 156}
!63 = !{!64, !11, i64 8}
!64 = !{!"_ZTSN7DynexCN11BlockHeaderE", !7, i64 0, !7, i64 1, !29, i64 4, !11, i64 8, !27, i64 16}
!65 = !{!26, !11, i64 32}
!66 = !{!10, !11, i64 8}
!67 = !{!26, !11, i64 72}
!68 = !{!26, !11, i64 56}
!69 = !{!11, !11, i64 0}
!70 = !{!26, !11, i64 48}
!71 = !{!26, !11, i64 40}
!72 = !{!26, !11, i64 64}
!73 = !{!74, !29, i64 0}
!74 = !{!"_ZTSN7DynexCN9BaseInputE", !29, i64 0}
!75 = !{!76, !29, i64 0}
!76 = !{!"_ZTSN7DynexCN16BaseInputDetailsE", !74, i64 0, !11, i64 8}
!77 = !{!76, !11, i64 8}
!78 = !{!79, !11, i64 0}
!79 = !{!"_ZTSN7DynexCN17TransactionOutputE", !11, i64 0, !80, i64 8}
!80 = !{!"_ZTSN5boost7variantIN7DynexCN9KeyOutputEJNS1_20MultisignatureOutputEEEE", !29, i64 0, !81, i64 8}
!81 = !{!"_ZTSN5boost15aligned_storageILm32ELm8EEE", !82, i64 0}
!82 = !{!"_ZTSN5boost6detail15aligned_storage19aligned_storage_impILm32ELm8EEE", !7, i64 0}
!83 = !{!84, !11, i64 64}
!84 = !{!"_ZTSN7DynexCN15KeyInputDetailsE", !85, i64 0, !11, i64 64, !91, i64 72}
!85 = !{!"_ZTSN7DynexCN8KeyInputE", !11, i64 0, !86, i64 8, !90, i64 32}
!86 = !{!"_ZTSSt6vectorIjSaIjEE", !87, i64 0}
!87 = !{!"_ZTSSt12_Vector_baseIjSaIjEE", !88, i64 0}
!88 = !{!"_ZTSNSt12_Vector_baseIjSaIjEE12_Vector_implE", !89, i64 0}
!89 = !{!"_ZTSNSt12_Vector_baseIjSaIjEE17_Vector_impl_dataE", !16, i64 0, !16, i64 8, !16, i64 16}
!90 = !{!"_ZTSN6Crypto8KeyImageE", !7, i64 0}
!91 = !{!"_ZTSSt6vectorIN7DynexCN33TransactionOutputReferenceDetailsESaIS1_EE", !92, i64 0}
!92 = !{!"_ZTSSt12_Vector_baseIN7DynexCN33TransactionOutputReferenceDetailsESaIS1_EE", !93, i64 0}
!93 = !{!"_ZTSNSt12_Vector_baseIN7DynexCN33TransactionOutputReferenceDetailsESaIS1_EE12_Vector_implE", !94, i64 0}
!94 = !{!"_ZTSNSt12_Vector_baseIN7DynexCN33TransactionOutputReferenceDetailsESaIS1_EE17_Vector_impl_dataE", !16, i64 0, !16, i64 8, !16, i64 16}
!95 = !{!96, !11, i64 32}
!96 = !{!"_ZTSSt4pairIN6Crypto4HashEmE", !27, i64 0, !11, i64 32}
!97 = !{!98, !11, i64 32}
!98 = !{!"_ZTSN7DynexCN33TransactionOutputReferenceDetailsE", !27, i64 0, !11, i64 32}
!99 = !{i64 0, i64 8, !69, i64 8, i64 1, !6, i64 12, i64 4, !61}
!100 = !{!101, !11, i64 48}
!101 = !{!"_ZTSN7DynexCN26MultisignatureInputDetailsE", !102, i64 0, !98, i64 16}
!102 = !{!"_ZTSN7DynexCN19MultisignatureInputE", !11, i64 0, !7, i64 8, !29, i64 12}
!103 = !{i8 0, i8 2}
!104 = !{}
!105 = distinct !{!105, !106}
!106 = !{!"llvm.loop.mustprogress"}
!107 = !{!108, !11, i64 48}
!108 = !{!"_ZTSN7DynexCN25transactionOutputDetails2E", !79, i64 0, !11, i64 48}
!109 = !{!108, !11, i64 0}


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