; LLVM IR from dynexcoin/Dynex :: src/DynexCNProtocol (DynexCNProtocolHandler)

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

%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.Logging::LoggerMessage" = type <{ %"class.std::basic_ostream.base", %"class.std::basic_streambuf", ptr, %"class.std::__cxx11::basic_string", i32, [4 x i8], %"class.std::__cxx11::basic_string", %"class.boost::posix_time::ptime", i8, [7 x i8], %"class.std::basic_ios" }>
%"class.std::basic_ostream.base" = type { ptr }
%"class.std::basic_streambuf" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::locale" }
%"class.std::locale" = type { ptr }
%"class.boost::posix_time::ptime" = type { %"class.boost::date_time::base_time" }
%"class.boost::date_time::base_time" = type { %"struct.boost::date_time::counted_time_rep" }
%"struct.boost::date_time::counted_time_rep" = type { %"class.boost::date_time::int_adapter" }
%"class.boost::date_time::int_adapter" = type { i64 }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::vector.18" = type { %"struct.std::_Vector_base.19" }
%"struct.std::_Vector_base.19" = 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.std::vector.97" = type { %"struct.std::_Vector_base.98" }
%"struct.std::_Vector_base.98" = type { %"struct.std::_Vector_base<DynexCN::DynexCNProtocolHandler::parsed_block_entry, std::allocator<DynexCN::DynexCNProtocolHandler::parsed_block_entry>>::_Vector_impl" }
%"struct.std::_Vector_base<DynexCN::DynexCNProtocolHandler::parsed_block_entry, std::allocator<DynexCN::DynexCNProtocolHandler::parsed_block_entry>>::_Vector_impl" = type { %"struct.std::_Vector_base<DynexCN::DynexCNProtocolHandler::parsed_block_entry, std::allocator<DynexCN::DynexCNProtocolHandler::parsed_block_entry>>::_Vector_impl_data" }
%"struct.std::_Vector_base<DynexCN::DynexCNProtocolHandler::parsed_block_entry, std::allocator<DynexCN::DynexCNProtocolHandler::parsed_block_entry>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.__gnu_cxx::__normal_iterator.102" = type { ptr }
%"struct.DynexCN::Block" = type { %"struct.DynexCN::BlockHeader", %"struct.DynexCN::ParentBlock", %"struct.DynexCN::Transaction", %"class.std::vector.18" }
%"struct.DynexCN::BlockHeader" = type { i8, i8, i32, i64, %"struct.Crypto::Hash" }
%"struct.Crypto::Hash" = type { [32 x i8] }
%"struct.DynexCN::ParentBlock" = type { i8, i8, %"struct.Crypto::Hash", i16, %"class.std::vector.18", %"struct.DynexCN::Transaction", %"class.std::vector.18" }
%"struct.DynexCN::Transaction" = type { %"struct.DynexCN::TransactionPrefix", %"class.std::vector.38" }
%"struct.DynexCN::TransactionPrefix" = type { i8, i64, %"class.std::vector.23", %"class.std::vector.28", %"class.std::vector.33" }
%"class.std::vector.23" = type { %"struct.std::_Vector_base.24" }
%"struct.std::_Vector_base.24" = 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.28" = type { %"struct.std::_Vector_base.29" }
%"struct.std::_Vector_base.29" = 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.33" = type { %"struct.std::_Vector_base.34" }
%"struct.std::_Vector_base.34" = 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.38" = type { %"struct.std::_Vector_base.39" }
%"struct.std::_Vector_base.39" = type { %"struct.std::_Vector_base<std::vector<Crypto::Signature>, std::allocator<std::vector<Crypto::Signature>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::vector<Crypto::Signature>, std::allocator<std::vector<Crypto::Signature>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::vector<Crypto::Signature>, std::allocator<std::vector<Crypto::Signature>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::vector<Crypto::Signature>, std::allocator<std::vector<Crypto::Signature>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.std::__detail::_Node_iterator" = type { %"struct.std::__detail::_Node_iterator_base" }
%"struct.std::__detail::_Node_iterator_base" = type { ptr }
%"struct.DynexCN::DynexCNProtocolHandler::parsed_block_entry" = type { %"struct.DynexCN::Block", %"class.std::vector.103" }
%"class.std::vector.103" = type { %"struct.std::_Vector_base.104" }
%"struct.std::_Vector_base.104" = type { %"struct.std::_Vector_base<std::vector<unsigned char>, std::allocator<std::vector<unsigned char>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::vector<unsigned char>, std::allocator<std::vector<unsigned char>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::vector<unsigned char>, std::allocator<std::vector<unsigned char>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::vector<unsigned char>, std::allocator<std::vector<unsigned char>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.__gnu_cxx::__normal_iterator.91" = type { ptr }
%"class.std::lock_guard.108" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.109" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.110" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.112" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.111" = type { ptr }
%"class.DynexCN::DynexCNProtocolHandler" = type { %"struct.DynexCN::i_cn_protocol", %"class.DynexCN::IDynexCNProtocolQuery", %"class.Logging::LoggerRef", ptr, ptr, ptr, %"struct.DynexCN::p2p_endpoint_stub", ptr, %"struct.std::atomic", %"struct.std::atomic", %"class.std::recursive_mutex", %"class.std::mutex", i32, %"class.std::mutex", i32, %"struct.std::atomic.4", %"class.Tools::ObserverManager" }
%"struct.DynexCN::i_cn_protocol" = type { ptr }
%"class.DynexCN::IDynexCNProtocolQuery" = type { ptr }
%"class.Logging::LoggerRef" = type { ptr, %"class.std::__cxx11::basic_string" }
%"struct.DynexCN::p2p_endpoint_stub" = type { %"struct.DynexCN::IP2pEndpoint" }
%"struct.DynexCN::IP2pEndpoint" = type { ptr }
%"struct.std::atomic" = type { %"struct.std::__atomic_base" }
%"struct.std::__atomic_base" = type { i8 }
%"class.std::recursive_mutex" = type { %"class.std::__recursive_mutex_base" }
%"class.std::__recursive_mutex_base" = type { %union.pthread_mutex_t }
%union.pthread_mutex_t = type { %struct.__pthread_mutex_s }
%struct.__pthread_mutex_s = type { i32, i32, i32, i32, i32, i16, i16, %struct.__pthread_internal_list }
%struct.__pthread_internal_list = type { ptr, ptr }
%"class.std::mutex" = type { %"class.std::__mutex_base" }
%"class.std::__mutex_base" = type { %union.pthread_mutex_t }
%"struct.std::atomic.4" = type { %"struct.std::__atomic_base.5" }
%"struct.std::__atomic_base.5" = type { i64 }
%"class.Tools::ObserverManager" = type { %"class.std::vector", %"class.std::mutex" }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<DynexCN::IDynexCNProtocolObserver *, std::allocator<DynexCN::IDynexCNProtocolObserver *>>::_Vector_impl" }
%"struct.std::_Vector_base<DynexCN::IDynexCNProtocolObserver *, std::allocator<DynexCN::IDynexCNProtocolObserver *>>::_Vector_impl" = type { %"struct.std::_Vector_base<DynexCN::IDynexCNProtocolObserver *, std::allocator<DynexCN::IDynexCNProtocolObserver *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<DynexCN::IDynexCNProtocolObserver *, std::allocator<DynexCN::IDynexCNProtocolObserver *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.DynexCN::DynexCNConnectionContext" = type { i8, %"struct.Crypto::Uuid", i32, i32, i8, i64, i32, %"class.std::__cxx11::list", %"class.std::unordered_set", i32, i32, i32, i32 }
%"struct.Crypto::Uuid" = type { [16 x i8] }
%"class.std::__cxx11::list" = type { %"class.std::__cxx11::_List_base" }
%"class.std::__cxx11::_List_base" = type { %"struct.std::__cxx11::_List_base<Crypto::Hash, std::allocator<Crypto::Hash>>::_List_impl" }
%"struct.std::__cxx11::_List_base<Crypto::Hash, std::allocator<Crypto::Hash>>::_List_impl" = type { %"struct.std::__detail::_List_node_header" }
%"struct.std::__detail::_List_node_header" = type { %"struct.std::__detail::_List_node_base", i64 }
%"struct.std::__detail::_List_node_base" = type { ptr, ptr }
%"class.std::unordered_set" = type { %"class.std::_Hashtable" }
%"class.std::_Hashtable" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"struct.std::__detail::_Hash_node_base" = type { ptr }
%"struct.std::__detail::_Prime_rehash_policy" = type { float, i64 }
%"struct.DynexCN::NOTIFY_RESPONSE_GET_OBJECTS_request" = type <{ %"class.std::vector.82", %"class.std::vector.92", %"class.std::vector.18", i32, [4 x i8] }>
%"class.std::vector.82" = type { %"struct.std::_Vector_base.83" }
%"struct.std::_Vector_base.83" = 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 }
%"class.std::vector.92" = type { %"struct.std::_Vector_base.93" }
%"struct.std::_Vector_base.93" = type { %"struct.std::_Vector_base<DynexCN::block_complete_entry, std::allocator<DynexCN::block_complete_entry>>::_Vector_impl" }
%"struct.std::_Vector_base<DynexCN::block_complete_entry, std::allocator<DynexCN::block_complete_entry>>::_Vector_impl" = type { %"struct.std::_Vector_base<DynexCN::block_complete_entry, std::allocator<DynexCN::block_complete_entry>>::_Vector_impl_data" }
%"struct.std::_Vector_base<DynexCN::block_complete_entry, std::allocator<DynexCN::block_complete_entry>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.DynexCN::block_complete_entry" = type { %"class.std::__cxx11::basic_string", %"class.std::vector.82" }

@_ZN7Logging7DEFAULTB5cxx11E = external global %"class.std::__cxx11::basic_string", align 8
@_ZN7Logging10BRIGHT_REDB5cxx11E = external global %"class.std::__cxx11::basic_string", align 8
@.str.47 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [8 x i8], align 1
@_ZN7Logging12BRIGHT_GREENB5cxx11E = external global %"class.std::__cxx11::basic_string", align 8
@.str.64 = external hidden unnamed_addr constant [40 x i8], align 1

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

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

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7DynexCN22DynexCNProtocolHandler20updateObservedHeightEjRKNS_24DynexCNConnectionContextE(ptr noundef nonnull align 8 dereferenceable(312), i32 noundef, ptr noundef nonnull align 8 dereferenceable(144)) #6 align 2

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_ZN7DynexCN22DynexCNProtocolHandler27handle_response_get_objectsEiRNS_35NOTIFY_RESPONSE_GET_OBJECTS_requestERNS_24DynexCNConnectionContextE(ptr noundef nonnull align 8 dereferenceable(312) %0, i32 noundef %1, ptr noundef nonnull align 8 dereferenceable(76) %2, ptr noundef nonnull align 8 dereferenceable(144) %3) #6 align 2 personality ptr @__gxx_personality_v0 {
  %5 = alloca i32, align 4
  %6 = alloca ptr, align 8
  %7 = alloca i32, align 4
  %8 = alloca ptr, align 8
  %9 = alloca ptr, align 8
  %10 = alloca %"class.Logging::LoggerMessage", align 8
  %11 = alloca ptr, align 8
  %12 = alloca i32, align 4
  %13 = alloca %"class.Logging::LoggerMessage", align 8
  %14 = alloca i64, align 8
  %15 = alloca %"class.std::vector.18", align 8
  %16 = alloca %"class.std::vector.97", align 8
  %17 = alloca ptr, align 8
  %18 = alloca %"class.__gnu_cxx::__normal_iterator.102", align 8
  %19 = alloca %"class.__gnu_cxx::__normal_iterator.102", align 8
  %20 = alloca i32, align 4
  %21 = alloca ptr, align 8
  %22 = alloca %"struct.DynexCN::Block", align 8
  %23 = alloca %"class.std::vector.33", align 8
  %24 = alloca %"class.Logging::LoggerMessage", align 8
  %25 = alloca i64, align 8
  %26 = alloca %"class.Logging::LoggerMessage", align 8
  %27 = alloca %"class.std::__cxx11::basic_string", align 8
  %28 = alloca %"struct.Crypto::Hash", align 1
  %29 = alloca %"class.Logging::LoggerMessage", align 8
  %30 = alloca %"struct.std::__detail::_Node_iterator", align 8
  %31 = alloca %"struct.std::__detail::_Node_iterator", align 8
  %32 = alloca %"class.Logging::LoggerMessage", align 8
  %33 = alloca %"class.std::__cxx11::basic_string", align 8
  %34 = alloca %"class.Logging::LoggerMessage", align 8
  %35 = alloca %"class.std::__cxx11::basic_string", align 8
  %36 = alloca i64, align 8
  %37 = alloca i64, align 8
  %38 = alloca %"struct.std::__detail::_Node_iterator", align 8
  %39 = alloca %"struct.std::__detail::_Node_iterator", align 8
  %40 = alloca %"struct.DynexCN::DynexCNProtocolHandler::parsed_block_entry", align 8
  %41 = alloca ptr, align 8
  %42 = alloca %"class.__gnu_cxx::__normal_iterator.91", align 8
  %43 = alloca %"class.__gnu_cxx::__normal_iterator.91", align 8
  %44 = alloca ptr, align 8
  %45 = alloca %"class.std::vector.33", align 8
  %46 = alloca %"class.Logging::LoggerMessage", align 8
  %47 = alloca i64, align 8
  %48 = alloca i32, align 4
  %49 = alloca %"struct.Crypto::Hash", align 1
  %50 = alloca %"class.std::lock_guard.108", align 8
  %51 = alloca i64, align 8
  %52 = alloca ptr, align 8
  %53 = alloca %"class.__gnu_cxx::__normal_iterator.109", align 8
  %54 = alloca %"class.__gnu_cxx::__normal_iterator.109", align 8
  %55 = alloca ptr, align 8
  %56 = alloca %"class.Logging::LoggerMessage", align 8
  %57 = alloca i64, align 8
  %58 = alloca %"class.__gnu_cxx::__normal_iterator.110", align 8
  %59 = alloca %"class.__gnu_cxx::__normal_iterator.102", align 8
  %60 = alloca %"class.__gnu_cxx::__normal_iterator.102", align 8
  %61 = alloca %"class.__gnu_cxx::__normal_iterator.112", align 8
  %62 = alloca %"class.__gnu_cxx::__normal_iterator.111", align 8
  %63 = alloca %"class.__gnu_cxx::__normal_iterator.111", align 8
  %64 = alloca i32, align 4
  %65 = alloca %"class.Logging::LoggerMessage", align 8
  store ptr %0, ptr %6, align 8, !tbaa !5
  store i32 %1, ptr %7, align 4, !tbaa !9
  store ptr %2, ptr %8, align 8, !tbaa !5
  store ptr %3, ptr %9, align 8, !tbaa !5
  %66 = load ptr, ptr %6, align 8
  call void @llvm.lifetime.start.p0(i64 432, ptr %10) #8
  %67 = getelementptr inbounds %"class.DynexCN::DynexCNProtocolHandler", ptr %66, i32 0, i32 2
  call void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.Logging::LoggerMessage") align 8 %10, ptr noundef nonnull align 8 dereferenceable(40) %67, i32 noundef 5, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging7DEFAULTB5cxx11E)
  %68 = load ptr, ptr %9, align 8, !tbaa !5
  %69 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEN7DynexCN24DynexCNConnectionContextEEOT_S5_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %10, ptr noundef nonnull align 8 dereferenceable(144) %68)
          to label %70 unwind label %101

70:                                               ; preds = %4
  %71 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA28_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %69, ptr noundef nonnull align 1 dereferenceable(28) @.str.47)
          to label %72 unwind label %101

72:                                               ; preds = %70
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %10) #8
  call void @llvm.lifetime.end.p0(i64 432, ptr %10) #8
  %73 = load ptr, ptr %9, align 8, !tbaa !5
  %74 = getelementptr inbounds %"struct.DynexCN::DynexCNConnectionContext", ptr %73, i32 0, i32 10
  %75 = load i32, ptr %74, align 4, !tbaa !11
  %76 = load ptr, ptr %8, align 8, !tbaa !5
  %77 = getelementptr inbounds %"struct.DynexCN::NOTIFY_RESPONSE_GET_OBJECTS_request", ptr %76, i32 0, i32 3
  %78 = load i32, ptr %77, align 8, !tbaa !27
  %79 = icmp ugt i32 %75, %78
  br i1 %79, label %80, label %109

80:                                               ; preds = %72
  call void @llvm.lifetime.start.p0(i64 432, ptr %13) #8
  %81 = getelementptr inbounds %"class.DynexCN::DynexCNProtocolHandler", ptr %66, i32 0, i32 2
  call void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.Logging::LoggerMessage") align 8 %13, ptr noundef nonnull align 8 dereferenceable(40) %81, i32 noundef 1, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging7DEFAULTB5cxx11E)
  %82 = load ptr, ptr %9, align 8, !tbaa !5
  %83 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEN7DynexCN24DynexCNConnectionContextEEOT_S5_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %13, ptr noundef nonnull align 8 dereferenceable(144) %82)
          to label %84 unwind label %105

84:                                               ; preds = %80
  %85 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA65_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %83, ptr noundef nonnull align 1 dereferenceable(65) @.str.48)
          to label %86 unwind label %105

86:                                               ; preds = %84
  %87 = load ptr, ptr %8, align 8, !tbaa !5
  %88 = getelementptr inbounds %"struct.DynexCN::NOTIFY_RESPONSE_GET_OBJECTS_request", ptr %87, i32 0, i32 3
  %89 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEjEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %85, ptr noundef nonnull align 4 dereferenceable(4) %88)
          to label %90 unwind label %105

90:                                               ; preds = %86
  %91 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA27_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %89, ptr noundef nonnull align 1 dereferenceable(27) @.str.49)
          to label %92 unwind label %105

92:                                               ; preds = %90
  %93 = load ptr, ptr %9, align 8, !tbaa !5
  %94 = getelementptr inbounds %"struct.DynexCN::DynexCNConnectionContext", ptr %93, i32 0, i32 10
  %95 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEjEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %91, ptr noundef nonnull align 4 dereferenceable(4) %94)
          to label %96 unwind label %105

96:                                               ; preds = %92
  %97 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA22_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %95, ptr noundef nonnull align 1 dereferenceable(22) @.str.50)
          to label %98 unwind label %105

98:                                               ; preds = %96
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %13) #8
  call void @llvm.lifetime.end.p0(i64 432, ptr %13) #8
  %99 = load ptr, ptr %9, align 8, !tbaa !5
  %100 = getelementptr inbounds %"struct.DynexCN::DynexCNConnectionContext", ptr %99, i32 0, i32 6
  store i32 6, ptr %100, align 8, !tbaa !41
  store i32 1, ptr %5, align 4
  br label %657

101:                                              ; preds = %70, %4
  %102 = landingpad { ptr, i32 }
          cleanup
  %103 = extractvalue { ptr, i32 } %102, 0
  store ptr %103, ptr %11, align 8
  %104 = extractvalue { ptr, i32 } %102, 1
  store i32 %104, ptr %12, align 4
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %10) #8
  call void @llvm.lifetime.end.p0(i64 432, ptr %10) #8
  br label %659

105:                                              ; preds = %96, %92, %90, %86, %84, %80
  %106 = landingpad { ptr, i32 }
          cleanup
  %107 = extractvalue { ptr, i32 } %106, 0
  store ptr %107, ptr %11, align 8
  %108 = extractvalue { ptr, i32 } %106, 1
  store i32 %108, ptr %12, align 4
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %13) #8
  call void @llvm.lifetime.end.p0(i64 432, ptr %13) #8
  br label %659

109:                                              ; preds = %72
  %110 = load ptr, ptr %8, align 8, !tbaa !5
  %111 = getelementptr inbounds %"struct.DynexCN::NOTIFY_RESPONSE_GET_OBJECTS_request", ptr %110, i32 0, i32 3
  %112 = load i32, ptr %111, align 8, !tbaa !27
  %113 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN7DynexCN22DynexCNProtocolHandler20updateObservedHeightEjRKNS_24DynexCNConnectionContextE(ptr noundef nonnull align 8 dereferenceable(312) %66, i32 noundef %112, ptr noundef nonnull align 8 dereferenceable(144) %113)
  %114 = load ptr, ptr %8, align 8, !tbaa !5
  %115 = getelementptr inbounds %"struct.DynexCN::NOTIFY_RESPONSE_GET_OBJECTS_request", ptr %114, i32 0, i32 3
  %116 = load i32, ptr %115, align 8, !tbaa !27
  %117 = load ptr, ptr %9, align 8, !tbaa !5
  %118 = getelementptr inbounds %"struct.DynexCN::DynexCNConnectionContext", ptr %117, i32 0, i32 9
  store i32 %116, ptr %118, align 8, !tbaa !42
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #8
  store i64 0, ptr %14, align 8, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 24, ptr %15) #8
  call void @_ZNSt6vectorIN6Crypto4HashESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %15) #8
  %119 = load ptr, ptr %8, align 8, !tbaa !5
  %120 = getelementptr inbounds %"struct.DynexCN::NOTIFY_RESPONSE_GET_OBJECTS_request", ptr %119, i32 0, i32 1
  %121 = call noundef i64 @_ZNKSt6vectorIN7DynexCN20block_complete_entryESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %120) #8
  invoke void @_ZNSt6vectorIN6Crypto4HashESaIS1_EE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %15, i64 noundef %121)
          to label %122 unwind label %138

122:                                              ; preds = %109
  call void @llvm.lifetime.start.p0(i64 24, ptr %16) #8
  call void @_ZNSt6vectorIN7DynexCN22DynexCNProtocolHandler18parsed_block_entryESaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %16) #8
  %123 = load ptr, ptr %8, align 8, !tbaa !5
  %124 = getelementptr inbounds %"struct.DynexCN::NOTIFY_RESPONSE_GET_OBJECTS_request", ptr %123, i32 0, i32 1
  %125 = call noundef i64 @_ZNKSt6vectorIN7DynexCN20block_complete_entryESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %124) #8
  invoke void @_ZNSt6vectorIN7DynexCN22DynexCNProtocolHandler18parsed_block_entryESaIS2_EE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %16, i64 noundef %125)
          to label %126 unwind label %142

126:                                              ; preds = %122
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #8
  %127 = load ptr, ptr %8, align 8, !tbaa !5
  %128 = getelementptr inbounds %"struct.DynexCN::NOTIFY_RESPONSE_GET_OBJECTS_request", ptr %127, i32 0, i32 1
  store ptr %128, ptr %17, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #8
  %129 = load ptr, ptr %17, align 8, !tbaa !5
  %130 = call ptr @_ZNSt6vectorIN7DynexCN20block_complete_entryESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %129) #8
  %131 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.102", ptr %18, i32 0, i32 0
  store ptr %130, ptr %131, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #8
  %132 = load ptr, ptr %17, align 8, !tbaa !5
  %133 = call ptr @_ZNSt6vectorIN7DynexCN20block_complete_entryESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %132) #8
  %134 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.102", ptr %19, i32 0, i32 0
  store ptr %133, ptr %134, align 8
  br label %135

135:                                              ; preds = %444, %126
  %136 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN7DynexCN20block_complete_entryESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %18, ptr noundef nonnull align 8 dereferenceable(8) %19) #8
  br i1 %136, label %146, label %137

137:                                              ; preds = %135
  store i32 2, ptr %20, align 4
  br label %451

138:                                              ; preds = %109
  %139 = landingpad { ptr, i32 }
          cleanup
  %140 = extractvalue { ptr, i32 } %139, 0
  store ptr %140, ptr %11, align 8
  %141 = extractvalue { ptr, i32 } %139, 1
  store i32 %141, ptr %12, align 4
  br label %656

142:                                              ; preds = %122
  %143 = landingpad { ptr, i32 }
          cleanup
  %144 = extractvalue { ptr, i32 } %143, 0
  store ptr %144, ptr %11, align 8
  %145 = extractvalue { ptr, i32 } %143, 1
  store i32 %145, ptr %12, align 4
  br label %655

146:                                              ; preds = %135
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #8
  %147 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPN7DynexCN20block_complete_entryESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %18) #8
  store ptr %147, ptr %21, align 8, !tbaa !5
  %148 = load i64, ptr %14, align 8, !tbaa !43
  %149 = add i64 %148, 1
  store i64 %149, ptr %14, align 8, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 384, ptr %22) #8
  call void @_ZN7DynexCN5BlockC2Ev(ptr noundef nonnull align 8 dereferenceable(384) %22) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr %23) #8
  %150 = load ptr, ptr %21, align 8, !tbaa !5
  %151 = getelementptr inbounds %"struct.DynexCN::block_complete_entry", ptr %150, i32 0, i32 0
  invoke void @_ZN6Common13asBinaryArrayERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.std::vector.33") align 8 %23, ptr noundef nonnull align 8 dereferenceable(32) %151)
          to label %152 unwind label %174

152:                                              ; preds = %146
  %153 = call noundef i64 @_ZNKSt6vectorIhSaIhEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %23) #8
  %154 = getelementptr inbounds %"class.DynexCN::DynexCNProtocolHandler", ptr %66, i32 0, i32 5
  %155 = load ptr, ptr %154, align 8, !tbaa !44
  %156 = invoke noundef i64 @_ZNK7DynexCN8Currency16maxBlockBlobSizeEv(ptr noundef nonnull align 8 dereferenceable(984) %155)
          to label %157 unwind label %178

157:                                              ; preds = %152
  %158 = icmp ugt i64 %153, %156
  br i1 %158, label %159, label %196

159:                                              ; preds = %157
  call void @llvm.lifetime.start.p0(i64 432, ptr %24) #8
  %160 = getelementptr inbounds %"class.DynexCN::DynexCNProtocolHandler", ptr %66, i32 0, i32 2
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.Logging::LoggerMessage") align 8 %24, ptr noundef nonnull align 8 dereferenceable(40) %160, i32 noundef 1, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging7DEFAULTB5cxx11E)
          to label %161 unwind label %182

161:                                              ; preds = %159
  %162 = load ptr, ptr %9, align 8, !tbaa !5
  %163 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEN7DynexCN24DynexCNConnectionContextEEOT_S5_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %24, ptr noundef nonnull align 8 dereferenceable(144) %162)
          to label %164 unwind label %186

164:                                              ; preds = %161
  %165 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA32_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %163, ptr noundef nonnull align 1 dereferenceable(32) @.str.51)
          to label %166 unwind label %186

166:                                              ; preds = %164
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #8
  %167 = call noundef i64 @_ZNKSt6vectorIhSaIhEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %23) #8
  store i64 %167, ptr %25, align 8, !tbaa !43
  %168 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEmEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %165, ptr noundef nonnull align 8 dereferenceable(8) %25)
          to label %169 unwind label %190

169:                                              ; preds = %166
  %170 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA22_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %168, ptr noundef nonnull align 1 dereferenceable(22) @.str.50)
          to label %171 unwind label %190

171:                                              ; preds = %169
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #8
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %24) #8
  call void @llvm.lifetime.end.p0(i64 432, ptr %24) #8
  %172 = load ptr, ptr %9, align 8, !tbaa !5
  %173 = getelementptr inbounds %"struct.DynexCN::DynexCNConnectionContext", ptr %172, i32 0, i32 6
  store i32 6, ptr %173, align 8, !tbaa !41
  store i32 1, ptr %5, align 4
  store i32 1, ptr %20, align 4
  br label %438

174:                                              ; preds = %146
  %175 = landingpad { ptr, i32 }
          cleanup
  %176 = extractvalue { ptr, i32 } %175, 0
  store ptr %176, ptr %11, align 8
  %177 = extractvalue { ptr, i32 } %175, 1
  store i32 %177, ptr %12, align 4
  br label %450

178:                                              ; preds = %196, %152
  %179 = landingpad { ptr, i32 }
          cleanup
  %180 = extractvalue { ptr, i32 } %179, 0
  store ptr %180, ptr %11, align 8
  %181 = extractvalue { ptr, i32 } %179, 1
  store i32 %181, ptr %12, align 4
  br label %449

182:                                              ; preds = %159
  %183 = landingpad { ptr, i32 }
          cleanup
  %184 = extractvalue { ptr, i32 } %183, 0
  store ptr %184, ptr %11, align 8
  %185 = extractvalue { ptr, i32 } %183, 1
  store i32 %185, ptr %12, align 4
  br label %195

186:                                              ; preds = %164, %161
  %187 = landingpad { ptr, i32 }
          cleanup
  %188 = extractvalue { ptr, i32 } %187, 0
  store ptr %188, ptr %11, align 8
  %189 = extractvalue { ptr, i32 } %187, 1
  store i32 %189, ptr %12, align 4
  br label %194

190:                                              ; preds = %169, %166
  %191 = landingpad { ptr, i32 }
          cleanup
  %192 = extractvalue { ptr, i32 } %191, 0
  store ptr %192, ptr %11, align 8
  %193 = extractvalue { ptr, i32 } %191, 1
  store i32 %193, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #8
  br label %194

194:                                              ; preds = %190, %186
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %24) #8
  br label %195

195:                                              ; preds = %194, %182
  call void @llvm.lifetime.end.p0(i64 432, ptr %24) #8
  br label %449

196:                                              ; preds = %157
  %197 = invoke noundef zeroext i1 @_ZN7DynexCN15fromBinaryArrayINS_5BlockEEEbRT_RKSt6vectorIhSaIhEE(ptr noundef nonnull align 8 dereferenceable(384) %22, ptr noundef nonnull align 8 dereferenceable(24) %23)
          to label %198 unwind label %178

198:                                              ; preds = %196
  br i1 %197, label %233, label %199

199:                                              ; preds = %198
  call void @llvm.lifetime.start.p0(i64 432, ptr %26) #8
  %200 = getelementptr inbounds %"class.DynexCN::DynexCNProtocolHandler", ptr %66, i32 0, i32 2
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.Logging::LoggerMessage") align 8 %26, ptr noundef nonnull align 8 dereferenceable(40) %200, i32 noundef 1, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging7DEFAULTB5cxx11E)
          to label %201 unwind label %214

201:                                              ; preds = %199
  %202 = load ptr, ptr %9, align 8, !tbaa !5
  %203 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEN7DynexCN24DynexCNConnectionContextEEOT_S5_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %26, ptr noundef nonnull align 8 dereferenceable(144) %202)
          to label %204 unwind label %218

204:                                              ; preds = %201
  %205 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA57_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %203, ptr noundef nonnull align 1 dereferenceable(57) @.str.52)
          to label %206 unwind label %218

206:                                              ; preds = %204
  call void @llvm.lifetime.start.p0(i64 32, ptr %27) #8
  invoke void @_ZN6Common5toHexB5cxx11ERKSt6vectorIhSaIhEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %27, ptr noundef nonnull align 8 dereferenceable(24) %23)
          to label %207 unwind label %222

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

209:                                              ; preds = %207
  %210 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA23_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %208, ptr noundef nonnull align 1 dereferenceable(23) @.str.53)
          to label %211 unwind label %226

211:                                              ; preds = %209
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %27) #8
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %26) #8
  call void @llvm.lifetime.end.p0(i64 432, ptr %26) #8
  %212 = load ptr, ptr %9, align 8, !tbaa !5
  %213 = getelementptr inbounds %"struct.DynexCN::DynexCNConnectionContext", ptr %212, i32 0, i32 6
  store i32 6, ptr %213, align 8, !tbaa !41
  store i32 1, ptr %5, align 4
  store i32 1, ptr %20, align 4
  br label %438

214:                                              ; preds = %199
  %215 = landingpad { ptr, i32 }
          cleanup
  %216 = extractvalue { ptr, i32 } %215, 0
  store ptr %216, ptr %11, align 8
  %217 = extractvalue { ptr, i32 } %215, 1
  store i32 %217, ptr %12, align 4
  br label %232

218:                                              ; preds = %204, %201
  %219 = landingpad { ptr, i32 }
          cleanup
  %220 = extractvalue { ptr, i32 } %219, 0
  store ptr %220, ptr %11, align 8
  %221 = extractvalue { ptr, i32 } %219, 1
  store i32 %221, ptr %12, align 4
  br label %231

222:                                              ; preds = %206
  %223 = landingpad { ptr, i32 }
          cleanup
  %224 = extractvalue { ptr, i32 } %223, 0
  store ptr %224, ptr %11, align 8
  %225 = extractvalue { ptr, i32 } %223, 1
  store i32 %225, ptr %12, align 4
  br label %230

226:                                              ; preds = %209, %207
  %227 = landingpad { ptr, i32 }
          cleanup
  %228 = extractvalue { ptr, i32 } %227, 0
  store ptr %228, ptr %11, align 8
  %229 = extractvalue { ptr, i32 } %227, 1
  store i32 %229, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #8
  br label %230

230:                                              ; preds = %226, %222
  call void @llvm.lifetime.end.p0(i64 32, ptr %27) #8
  br label %231

231:                                              ; preds = %230, %218
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %26) #8
  br label %232

232:                                              ; preds = %231, %214
  call void @llvm.lifetime.end.p0(i64 432, ptr %26) #8
  br label %449

233:                                              ; preds = %198
  call void @llvm.lifetime.start.p0(i64 32, ptr %28) #8
  invoke void @_ZN7DynexCN14get_block_hashERKNS_5BlockE(ptr dead_on_unwind writable sret(%"struct.Crypto::Hash") align 1 %28, ptr noundef nonnull align 8 dereferenceable(384) %22)
          to label %234 unwind label %259

234:                                              ; preds = %233
  %235 = load i64, ptr %14, align 8, !tbaa !43
  %236 = icmp eq i64 %235, 2
  br i1 %236, label %237, label %273

237:                                              ; preds = %234
  %238 = getelementptr inbounds %"class.DynexCN::DynexCNProtocolHandler", ptr %66, i32 0, i32 4
  %239 = load ptr, ptr %238, align 8, !tbaa !66
  %240 = load ptr, ptr %239, align 8, !tbaa !67
  %241 = getelementptr inbounds ptr, ptr %240, i64 4
  %242 = load ptr, ptr %241, align 8
  %243 = invoke noundef zeroext i1 %242(ptr noundef nonnull align 8 dereferenceable(8) %239, ptr noundef nonnull align 1 dereferenceable(32) %28)
          to label %244 unwind label %259

244:                                              ; preds = %237
  br i1 %243, label %245, label %272

245:                                              ; preds = %244
  %246 = load ptr, ptr %9, align 8, !tbaa !5
  %247 = getelementptr inbounds %"struct.DynexCN::DynexCNConnectionContext", ptr %246, i32 0, i32 6
  store i32 2, ptr %247, align 8, !tbaa !41
  %248 = load ptr, ptr %9, align 8, !tbaa !5
  %249 = getelementptr inbounds %"struct.DynexCN::DynexCNConnectionContext", ptr %248, i32 0, i32 7
  call void @_ZNSt7__cxx114listIN6Crypto4HashESaIS2_EE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) %249) #8
  %250 = load ptr, ptr %9, align 8, !tbaa !5
  %251 = getelementptr inbounds %"struct.DynexCN::DynexCNConnectionContext", ptr %250, i32 0, i32 8
  call void @_ZNSt13unordered_setIN6Crypto4HashESt4hashIS1_ESt8equal_toIS1_ESaIS1_EE5clearEv(ptr noundef nonnull align 8 dereferenceable(56) %251) #8
  call void @llvm.lifetime.start.p0(i64 432, ptr %29) #8
  %252 = getelementptr inbounds %"class.DynexCN::DynexCNProtocolHandler", ptr %66, i32 0, i32 2
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.Logging::LoggerMessage") align 8 %29, ptr noundef nonnull align 8 dereferenceable(40) %252, i32 noundef 4, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging7DEFAULTB5cxx11E)
          to label %253 unwind label %263

253:                                              ; preds = %245
  %254 = load ptr, ptr %9, align 8, !tbaa !5
  %255 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEN7DynexCN24DynexCNConnectionContextEEOT_S5_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %29, ptr noundef nonnull align 8 dereferenceable(144) %254)
          to label %256 unwind label %267

256:                                              ; preds = %253
  %257 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA30_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %255, ptr noundef nonnull align 1 dereferenceable(30) @.str.54)
          to label %258 unwind label %267

258:                                              ; preds = %256
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %29) #8
  call void @llvm.lifetime.end.p0(i64 432, ptr %29) #8
  store i32 1, ptr %5, align 4
  store i32 1, ptr %20, align 4
  br label %437

259:                                              ; preds = %237, %233
  %260 = landingpad { ptr, i32 }
          cleanup
  %261 = extractvalue { ptr, i32 } %260, 0
  store ptr %261, ptr %11, align 8
  %262 = extractvalue { ptr, i32 } %260, 1
  store i32 %262, ptr %12, align 4
  br label %448

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

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

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

272:                                              ; preds = %244
  br label %273

273:                                              ; preds = %272, %234
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #8
  %274 = load ptr, ptr %9, align 8, !tbaa !5
  %275 = getelementptr inbounds %"struct.DynexCN::DynexCNConnectionContext", ptr %274, i32 0, i32 8
  %276 = invoke ptr @_ZNSt13unordered_setIN6Crypto4HashESt4hashIS1_ESt8equal_toIS1_ESaIS1_EE4findERKS1_(ptr noundef nonnull align 8 dereferenceable(56) %275, ptr noundef nonnull align 1 dereferenceable(32) %28)
          to label %277 unwind label %301

277:                                              ; preds = %273
  %278 = getelementptr inbounds %"struct.std::__detail::_Node_iterator", ptr %30, i32 0, i32 0
  %279 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base", ptr %278, i32 0, i32 0
  store ptr %276, ptr %279, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #8
  %280 = load ptr, ptr %9, align 8, !tbaa !5
  %281 = getelementptr inbounds %"struct.DynexCN::DynexCNConnectionContext", ptr %280, i32 0, i32 8
  %282 = call ptr @_ZNSt13unordered_setIN6Crypto4HashESt4hashIS1_ESt8equal_toIS1_ESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(56) %281) #8
  %283 = getelementptr inbounds %"struct.std::__detail::_Node_iterator", ptr %31, i32 0, i32 0
  %284 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base", ptr %283, i32 0, i32 0
  store ptr %282, ptr %284, align 8
  %285 = call noundef zeroext i1 @_ZNSt8__detaileqERKNS_19_Node_iterator_baseIN6Crypto4HashELb1EEES5_(ptr noundef nonnull align 8 dereferenceable(8) %30, ptr noundef nonnull align 8 dereferenceable(8) %31) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #8
  br i1 %285, label %286, label %324

286:                                              ; preds = %277
  call void @llvm.lifetime.start.p0(i64 432, ptr %32) #8
  %287 = getelementptr inbounds %"class.DynexCN::DynexCNProtocolHandler", ptr %66, i32 0, i32 2
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.Logging::LoggerMessage") align 8 %32, ptr noundef nonnull align 8 dereferenceable(40) %287, i32 noundef 1, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging7DEFAULTB5cxx11E)
          to label %288 unwind label %305

288:                                              ; preds = %286
  %289 = load ptr, ptr %9, align 8, !tbaa !5
  %290 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEN7DynexCN24DynexCNConnectionContextEEOT_S5_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %32, ptr noundef nonnull align 8 dereferenceable(144) %289)
          to label %291 unwind label %309

291:                                              ; preds = %288
  %292 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA55_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %290, ptr noundef nonnull align 1 dereferenceable(55) @.str.55)
          to label %293 unwind label %309

293:                                              ; preds = %291
  call void @llvm.lifetime.start.p0(i64 32, ptr %33) #8
  invoke void @_ZN6Common8podToHexIN6Crypto4HashEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %33, ptr noundef nonnull align 1 dereferenceable(32) %28)
          to label %294 unwind label %313

294:                                              ; preds = %293
  %295 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEOT_S9_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %292, ptr noundef nonnull align 8 dereferenceable(32) %33)
          to label %296 unwind label %317

296:                                              ; preds = %294
  %297 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA39_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %295, ptr noundef nonnull align 1 dereferenceable(39) @.str.56)
          to label %298 unwind label %317

298:                                              ; preds = %296
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %33) #8
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %32) #8
  call void @llvm.lifetime.end.p0(i64 432, ptr %32) #8
  %299 = load ptr, ptr %9, align 8, !tbaa !5
  %300 = getelementptr inbounds %"struct.DynexCN::DynexCNConnectionContext", ptr %299, i32 0, i32 6
  store i32 6, ptr %300, align 8, !tbaa !41
  store i32 1, ptr %5, align 4
  store i32 1, ptr %20, align 4
  br label %436

301:                                              ; preds = %395, %388, %273
  %302 = landingpad { ptr, i32 }
          cleanup
  %303 = extractvalue { ptr, i32 } %302, 0
  store ptr %303, ptr %11, align 8
  %304 = extractvalue { ptr, i32 } %302, 1
  store i32 %304, ptr %12, align 4
  br label %447

305:                                              ; preds = %286
  %306 = landingpad { ptr, i32 }
          cleanup
  %307 = extractvalue { ptr, i32 } %306, 0
  store ptr %307, ptr %11, align 8
  %308 = extractvalue { ptr, i32 } %306, 1
  store i32 %308, ptr %12, align 4
  br label %323

309:                                              ; preds = %291, %288
  %310 = landingpad { ptr, i32 }
          cleanup
  %311 = extractvalue { ptr, i32 } %310, 0
  store ptr %311, ptr %11, align 8
  %312 = extractvalue { ptr, i32 } %310, 1
  store i32 %312, ptr %12, align 4
  br label %322

313:                                              ; preds = %293
  %314 = landingpad { ptr, i32 }
          cleanup
  %315 = extractvalue { ptr, i32 } %314, 0
  store ptr %315, ptr %11, align 8
  %316 = extractvalue { ptr, i32 } %314, 1
  store i32 %316, ptr %12, align 4
  br label %321

317:                                              ; preds = %296, %294
  %318 = landingpad { ptr, i32 }
          cleanup
  %319 = extractvalue { ptr, i32 } %318, 0
  store ptr %319, ptr %11, align 8
  %320 = extractvalue { ptr, i32 } %318, 1
  store i32 %320, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #8
  br label %321

321:                                              ; preds = %317, %313
  call void @llvm.lifetime.end.p0(i64 32, ptr %33) #8
  br label %322

322:                                              ; preds = %321, %309
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %32) #8
  br label %323

323:                                              ; preds = %322, %305
  call void @llvm.lifetime.end.p0(i64 432, ptr %32) #8
  br label %447

324:                                              ; preds = %277
  %325 = getelementptr inbounds %"struct.DynexCN::Block", ptr %22, i32 0, i32 3
  %326 = call noundef i64 @_ZNKSt6vectorIN6Crypto4HashESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %325) #8
  %327 = load ptr, ptr %21, align 8, !tbaa !5
  %328 = getelementptr inbounds %"struct.DynexCN::block_complete_entry", ptr %327, i32 0, i32 1
  %329 = call noundef i64 @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %328) #8
  %330 = icmp ne i64 %326, %329
  br i1 %330, label %331, label %388

331:                                              ; preds = %324
  call void @llvm.lifetime.start.p0(i64 432, ptr %34) #8
  %332 = getelementptr inbounds %"class.DynexCN::DynexCNProtocolHandler", ptr %66, i32 0, i32 2
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.Logging::LoggerMessage") align 8 %34, ptr noundef nonnull align 8 dereferenceable(40) %332, i32 noundef 1, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging7DEFAULTB5cxx11E)
          to label %333 unwind label %359

333:                                              ; preds = %331
  %334 = load ptr, ptr %9, align 8, !tbaa !5
  %335 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEN7DynexCN24DynexCNConnectionContextEEOT_S5_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %34, ptr noundef nonnull align 8 dereferenceable(144) %334)
          to label %336 unwind label %363

336:                                              ; preds = %333
  %337 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA55_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %335, ptr noundef nonnull align 1 dereferenceable(55) @.str.55)
          to label %338 unwind label %363

338:                                              ; preds = %336
  call void @llvm.lifetime.start.p0(i64 32, ptr %35) #8
  invoke void @_ZN6Common8podToHexIN6Crypto4HashEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %35, ptr noundef nonnull align 1 dereferenceable(32) %28)
          to label %339 unwind label %367

339:                                              ; preds = %338
  %340 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEOT_S9_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %337, ptr noundef nonnull align 8 dereferenceable(32) %35)
          to label %341 unwind label %371

341:                                              ; preds = %339
  %342 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA28_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %340, ptr noundef nonnull align 1 dereferenceable(28) @.str.57)
          to label %343 unwind label %371

343:                                              ; preds = %341
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #8
  %344 = getelementptr inbounds %"struct.DynexCN::Block", ptr %22, i32 0, i32 3
  %345 = call noundef i64 @_ZNKSt6vectorIN6Crypto4HashESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %344) #8
  store i64 %345, ptr %36, align 8, !tbaa !43
  %346 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEmEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %342, ptr noundef nonnull align 8 dereferenceable(8) %36)
          to label %347 unwind label %375

347:                                              ; preds = %343
  %348 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA50_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %346, ptr noundef nonnull align 1 dereferenceable(50) @.str.58)
          to label %349 unwind label %375

349:                                              ; preds = %347
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #8
  %350 = load ptr, ptr %21, align 8, !tbaa !5
  %351 = getelementptr inbounds %"struct.DynexCN::block_complete_entry", ptr %350, i32 0, i32 1
  %352 = call noundef i64 @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %351) #8
  store i64 %352, ptr %37, align 8, !tbaa !43
  %353 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEmEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %348, ptr noundef nonnull align 8 dereferenceable(8) %37)
          to label %354 unwind label %379

354:                                              ; preds = %349
  %355 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA22_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %353, ptr noundef nonnull align 1 dereferenceable(22) @.str.50)
          to label %356 unwind label %379

356:                                              ; preds = %354
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %35) #8
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %34) #8
  call void @llvm.lifetime.end.p0(i64 432, ptr %34) #8
  %357 = load ptr, ptr %9, align 8, !tbaa !5
  %358 = getelementptr inbounds %"struct.DynexCN::DynexCNConnectionContext", ptr %357, i32 0, i32 6
  store i32 6, ptr %358, align 8, !tbaa !41
  store i32 1, ptr %5, align 4
  store i32 1, ptr %20, align 4
  br label %436

359:                                              ; preds = %331
  %360 = landingpad { ptr, i32 }
          cleanup
  %361 = extractvalue { ptr, i32 } %360, 0
  store ptr %361, ptr %11, align 8
  %362 = extractvalue { ptr, i32 } %360, 1
  store i32 %362, ptr %12, align 4
  br label %387

363:                                              ; preds = %336, %333
  %364 = landingpad { ptr, i32 }
          cleanup
  %365 = extractvalue { ptr, i32 } %364, 0
  store ptr %365, ptr %11, align 8
  %366 = extractvalue { ptr, i32 } %364, 1
  store i32 %366, ptr %12, align 4
  br label %386

367:                                              ; preds = %338
  %368 = landingpad { ptr, i32 }
          cleanup
  %369 = extractvalue { ptr, i32 } %368, 0
  store ptr %369, ptr %11, align 8
  %370 = extractvalue { ptr, i32 } %368, 1
  store i32 %370, ptr %12, align 4
  br label %385

371:                                              ; preds = %341, %339
  %372 = landingpad { ptr, i32 }
          cleanup
  %373 = extractvalue { ptr, i32 } %372, 0
  store ptr %373, ptr %11, align 8
  %374 = extractvalue { ptr, i32 } %372, 1
  store i32 %374, ptr %12, align 4
  br label %384

375:                                              ; preds = %347, %343
  %376 = landingpad { ptr, i32 }
          cleanup
  %377 = extractvalue { ptr, i32 } %376, 0
  store ptr %377, ptr %11, align 8
  %378 = extractvalue { ptr, i32 } %376, 1
  store i32 %378, ptr %12, align 4
  br label %383

379:                                              ; preds = %354, %349
  %380 = landingpad { ptr, i32 }
          cleanup
  %381 = extractvalue { ptr, i32 } %380, 0
  store ptr %381, ptr %11, align 8
  %382 = extractvalue { ptr, i32 } %380, 1
  store i32 %382, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #8
  br label %383

383:                                              ; preds = %379, %375
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #8
  br label %384

384:                                              ; preds = %383, %371
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #8
  br label %385

385:                                              ; preds = %384, %367
  call void @llvm.lifetime.end.p0(i64 32, ptr %35) #8
  br label %386

386:                                              ; preds = %385, %363
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %34) #8
  br label %387

387:                                              ; preds = %386, %359
  call void @llvm.lifetime.end.p0(i64 432, ptr %34) #8
  br label %447

388:                                              ; preds = %324
  %389 = load ptr, ptr %9, align 8, !tbaa !5
  %390 = getelementptr inbounds %"struct.DynexCN::DynexCNConnectionContext", ptr %389, i32 0, i32 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %38, ptr align 8 %30, i64 8, i1 false)
  %391 = getelementptr inbounds %"struct.std::__detail::_Node_iterator", ptr %38, i32 0, i32 0
  %392 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base", ptr %391, i32 0, i32 0
  %393 = load ptr, ptr %392, align 8
  %394 = invoke ptr @_ZNSt13unordered_setIN6Crypto4HashESt4hashIS1_ESt8equal_toIS1_ESaIS1_EE5eraseENSt8__detail14_Node_iteratorIS1_Lb1ELb1EEE(ptr noundef nonnull align 8 dereferenceable(56) %390, ptr %393)
          to label %395 unwind label %301

395:                                              ; preds = %388
  %396 = getelementptr inbounds %"struct.std::__detail::_Node_iterator", ptr %39, i32 0, i32 0
  %397 = getelementptr inbounds %"struct.std::__detail::_Node_iterator_base", ptr %396, i32 0, i32 0
  store ptr %394, ptr %397, align 8
  invoke void @_ZNSt6vectorIN6Crypto4HashESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %15, ptr noundef nonnull align 1 dereferenceable(32) %28)
          to label %398 unwind label %301

398:                                              ; preds = %395
  call void @llvm.lifetime.start.p0(i64 408, ptr %40) #8
  call void @_ZN7DynexCN22DynexCNProtocolHandler18parsed_block_entryC2Ev(ptr noundef nonnull align 8 dereferenceable(408) %40) #8
  %399 = getelementptr inbounds %"struct.DynexCN::DynexCNProtocolHandler::parsed_block_entry", ptr %40, i32 0, i32 0
  %400 = invoke noundef nonnull align 8 dereferenceable(384) ptr @_ZN7DynexCN5BlockaSERKS0_(ptr noundef nonnull align 8 dereferenceable(384) %399, ptr noundef nonnull align 8 dereferenceable(384) %22)
          to label %401 unwind label %413

401:                                              ; preds = %398
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #8
  %402 = load ptr, ptr %21, align 8, !tbaa !5
  %403 = getelementptr inbounds %"struct.DynexCN::block_complete_entry", ptr %402, i32 0, i32 1
  store ptr %403, ptr %41, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #8
  %404 = load ptr, ptr %41, align 8, !tbaa !5
  %405 = call ptr @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %404) #8
  %406 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.91", ptr %42, i32 0, i32 0
  store ptr %405, ptr %406, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #8
  %407 = load ptr, ptr %41, align 8, !tbaa !5
  %408 = call ptr @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %407) #8
  %409 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.91", ptr %43, i32 0, i32 0
  store ptr %408, ptr %409, align 8
  br label %410

410:                                              ; preds = %423, %401
  %411 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEEbRKNS_17__normal_iteratorIT_T0_EESH_(ptr noundef nonnull align 8 dereferenceable(8) %42, ptr noundef nonnull align 8 dereferenceable(8) %43) #8
  br i1 %411, label %417, label %412

412:                                              ; preds = %410
  store i32 4, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #8
  br label %434

413:                                              ; preds = %434, %398
  %414 = landingpad { ptr, i32 }
          cleanup
  %415 = extractvalue { ptr, i32 } %414, 0
  store ptr %415, ptr %11, align 8
  %416 = extractvalue { ptr, i32 } %414, 1
  store i32 %416, ptr %12, align 4
  br label %446

417:                                              ; preds = %410
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #8
  %418 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %42) #8
  store ptr %418, ptr %44, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 24, ptr %45) #8
  %419 = load ptr, ptr %44, align 8, !tbaa !5
  invoke void @_ZN6Common13asBinaryArrayERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.std::vector.33") align 8 %45, ptr noundef nonnull align 8 dereferenceable(32) %419)
          to label %420 unwind label %425

420:                                              ; preds = %417
  %421 = getelementptr inbounds %"struct.DynexCN::DynexCNProtocolHandler::parsed_block_entry", ptr %40, i32 0, i32 1
  invoke void @_ZNSt6vectorIS_IhSaIhEESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %421, ptr noundef nonnull align 8 dereferenceable(24) %45)
          to label %422 unwind label %429

422:                                              ; preds = %420
  call void @_ZNSt6vectorIhSaIhEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %45) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %45) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #8
  br label %423

423:                                              ; preds = %422
  %424 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %42) #8
  br label %410

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

429:                                              ; preds = %420
  %430 = landingpad { ptr, i32 }
          cleanup
  %431 = extractvalue { ptr, i32 } %430, 0
  store ptr %431, ptr %11, align 8
  %432 = extractvalue { ptr, i32 } %430, 1
  store i32 %432, ptr %12, align 4
  call void @_ZNSt6vectorIhSaIhEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %45) #8
  br label %433

433:                                              ; preds = %429, %425
  call void @llvm.lifetime.end.p0(i64 24, ptr %45) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #8
  br label %446

434:                                              ; preds = %412
  invoke void @_ZNSt6vectorIN7DynexCN22DynexCNProtocolHandler18parsed_block_entryESaIS2_EE9push_backERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %16, ptr noundef nonnull align 8 dereferenceable(408) %40)
          to label %435 unwind label %413

435:                                              ; preds = %434
  call void @_ZN7DynexCN22DynexCNProtocolHandler18parsed_block_entryD2Ev(ptr noundef nonnull align 8 dereferenceable(408) %40) #8
  call void @llvm.lifetime.end.p0(i64 408, ptr %40) #8
  store i32 0, ptr %20, align 4
  br label %436

436:                                              ; preds = %435, %356, %298
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #8
  br label %437

437:                                              ; preds = %436, %258
  call void @llvm.lifetime.end.p0(i64 32, ptr %28) #8
  br label %438

438:                                              ; preds = %437, %211, %171
  call void @_ZNSt6vectorIhSaIhEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %23) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %23) #8
  call void @_ZN7DynexCN5BlockD2Ev(ptr noundef nonnull align 8 dereferenceable(384) %22) #8
  call void @llvm.lifetime.end.p0(i64 384, ptr %22) #8
  %439 = load i32, ptr %20, align 4
  switch i32 %439, label %441 [
    i32 0, label %440
  ]

440:                                              ; preds = %438
  store i32 0, ptr %20, align 4
  br label %441

441:                                              ; preds = %440, %438
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #8
  %442 = load i32, ptr %20, align 4
  switch i32 %442, label %451 [
    i32 0, label %443
  ]

443:                                              ; preds = %441
  br label %444

444:                                              ; preds = %443
  %445 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPN7DynexCN20block_complete_entryESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %18) #8
  br label %135

446:                                              ; preds = %433, %413
  call void @_ZN7DynexCN22DynexCNProtocolHandler18parsed_block_entryD2Ev(ptr noundef nonnull align 8 dereferenceable(408) %40) #8
  call void @llvm.lifetime.end.p0(i64 408, ptr %40) #8
  br label %447

447:                                              ; preds = %446, %387, %323, %301
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #8
  br label %448

448:                                              ; preds = %447, %271, %259
  call void @llvm.lifetime.end.p0(i64 32, ptr %28) #8
  br label %449

449:                                              ; preds = %448, %232, %195, %178
  call void @_ZNSt6vectorIhSaIhEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %23) #8
  br label %450

450:                                              ; preds = %449, %174
  call void @llvm.lifetime.end.p0(i64 24, ptr %23) #8
  call void @_ZN7DynexCN5BlockD2Ev(ptr noundef nonnull align 8 dereferenceable(384) %22) #8
  call void @llvm.lifetime.end.p0(i64 384, ptr %22) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #8
  br label %655

451:                                              ; preds = %441, %137
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #8
  %452 = load i32, ptr %20, align 4
  switch i32 %452, label %654 [
    i32 2, label %453
  ]

453:                                              ; preds = %451
  %454 = load ptr, ptr %9, align 8, !tbaa !5
  %455 = getelementptr inbounds %"struct.DynexCN::DynexCNConnectionContext", ptr %454, i32 0, i32 8
  %456 = call noundef i64 @_ZNKSt13unordered_setIN6Crypto4HashESt4hashIS1_ESt8equal_toIS1_ESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(56) %455) #8
  %457 = icmp ne i64 %456, 0
  br i1 %457, label %458, label %489

458:                                              ; preds = %453
  call void @llvm.lifetime.start.p0(i64 432, ptr %46) #8
  %459 = getelementptr inbounds %"class.DynexCN::DynexCNProtocolHandler", ptr %66, i32 0, i32 2
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.Logging::LoggerMessage") align 8 %46, ptr noundef nonnull align 8 dereferenceable(40) %459, i32 noundef 1, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging10BRIGHT_REDB5cxx11E)
          to label %460 unwind label %475

460:                                              ; preds = %458
  %461 = load ptr, ptr %9, align 8, !tbaa !5
  %462 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEN7DynexCN24DynexCNConnectionContextEEOT_S5_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %46, ptr noundef nonnull align 8 dereferenceable(144) %461)
          to label %463 unwind label %479

463:                                              ; preds = %460
  %464 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA72_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %462, ptr noundef nonnull align 1 dereferenceable(72) @.str.59)
          to label %465 unwind label %479

465:                                              ; preds = %463
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #8
  %466 = load ptr, ptr %9, align 8, !tbaa !5
  %467 = getelementptr inbounds %"struct.DynexCN::DynexCNConnectionContext", ptr %466, i32 0, i32 8
  %468 = call noundef i64 @_ZNKSt13unordered_setIN6Crypto4HashESt4hashIS1_ESt8equal_toIS1_ESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(56) %467) #8
  store i64 %468, ptr %47, align 8, !tbaa !43
  %469 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEmEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %464, ptr noundef nonnull align 8 dereferenceable(8) %47)
          to label %470 unwind label %483

470:                                              ; preds = %465
  %471 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA23_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %469, ptr noundef nonnull align 1 dereferenceable(23) @.str.60)
          to label %472 unwind label %483

472:                                              ; preds = %470
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #8
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %46) #8
  call void @llvm.lifetime.end.p0(i64 432, ptr %46) #8
  %473 = load ptr, ptr %9, align 8, !tbaa !5
  %474 = getelementptr inbounds %"struct.DynexCN::DynexCNConnectionContext", ptr %473, i32 0, i32 6
  store i32 6, ptr %474, align 8, !tbaa !41
  store i32 1, ptr %5, align 4
  store i32 1, ptr %20, align 4
  br label %654

475:                                              ; preds = %458
  %476 = landingpad { ptr, i32 }
          cleanup
  %477 = extractvalue { ptr, i32 } %476, 0
  store ptr %477, ptr %11, align 8
  %478 = extractvalue { ptr, i32 } %476, 1
  store i32 %478, ptr %12, align 4
  br label %488

479:                                              ; preds = %463, %460
  %480 = landingpad { ptr, i32 }
          cleanup
  %481 = extractvalue { ptr, i32 } %480, 0
  store ptr %481, ptr %11, align 8
  %482 = extractvalue { ptr, i32 } %480, 1
  store i32 %482, ptr %12, align 4
  br label %487

483:                                              ; preds = %470, %465
  %484 = landingpad { ptr, i32 }
          cleanup
  %485 = extractvalue { ptr, i32 } %484, 0
  store ptr %485, ptr %11, align 8
  %486 = extractvalue { ptr, i32 } %484, 1
  store i32 %486, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #8
  br label %487

487:                                              ; preds = %483, %479
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %46) #8
  br label %488

488:                                              ; preds = %487, %475
  call void @llvm.lifetime.end.p0(i64 432, ptr %46) #8
  br label %655

489:                                              ; preds = %453
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %49) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #8
  %490 = getelementptr inbounds %"class.DynexCN::DynexCNProtocolHandler", ptr %66, i32 0, i32 10
  invoke void @_ZNSt10lock_guardISt15recursive_mutexEC2ERS0_(ptr noundef nonnull align 8 dereferenceable(8) %50, ptr noundef nonnull align 8 dereferenceable(40) %490)
          to label %491 unwind label %507

491:                                              ; preds = %489
  %492 = getelementptr inbounds %"class.DynexCN::DynexCNProtocolHandler", ptr %66, i32 0, i32 4
  %493 = load ptr, ptr %492, align 8, !tbaa !66
  %494 = load ptr, ptr %493, align 8, !tbaa !67
  %495 = getelementptr inbounds ptr, ptr %494, i64 14
  %496 = load ptr, ptr %495, align 8
  invoke void %496(ptr noundef nonnull align 8 dereferenceable(8) %493, ptr noundef nonnull align 4 dereferenceable(4) %48, ptr noundef nonnull align 1 dereferenceable(32) %49)
          to label %497 unwind label %511

497:                                              ; preds = %491
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #8
  store i64 1, ptr %51, align 8, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #8
  store ptr %15, ptr %52, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #8
  %498 = load ptr, ptr %52, align 8, !tbaa !5
  %499 = call ptr @_ZNSt6vectorIN6Crypto4HashESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %498) #8
  %500 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.109", ptr %53, i32 0, i32 0
  store ptr %499, ptr %500, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #8
  %501 = load ptr, ptr %52, align 8, !tbaa !5
  %502 = call ptr @_ZNSt6vectorIN6Crypto4HashESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %501) #8
  %503 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.109", ptr %54, i32 0, i32 0
  store ptr %502, ptr %503, align 8
  br label %504

504:                                              ; preds = %592, %497
  %505 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN6Crypto4HashESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %53, ptr noundef nonnull align 8 dereferenceable(8) %54) #8
  br i1 %505, label %515, label %506

506:                                              ; preds = %504
  store i32 6, ptr %20, align 4
  br label %595

507:                                              ; preds = %489
  %508 = landingpad { ptr, i32 }
          cleanup
  %509 = extractvalue { ptr, i32 } %508, 0
  store ptr %509, ptr %11, align 8
  %510 = extractvalue { ptr, i32 } %508, 1
  store i32 %510, ptr %12, align 4
  br label %637

511:                                              ; preds = %491
  %512 = landingpad { ptr, i32 }
          cleanup
  %513 = extractvalue { ptr, i32 } %512, 0
  store ptr %513, ptr %11, align 8
  %514 = extractvalue { ptr, i32 } %512, 1
  store i32 %514, ptr %12, align 4
  br label %636

515:                                              ; preds = %504
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #8
  %516 = call noundef nonnull align 1 dereferenceable(32) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPN6Crypto4HashESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %53) #8
  store ptr %516, ptr %55, align 8, !tbaa !5
  %517 = load ptr, ptr %55, align 8, !tbaa !5
  %518 = invoke noundef zeroext i1 @_ZN6CryptoeqERKNS_4HashES2_(ptr noundef nonnull align 1 dereferenceable(32) %49, ptr noundef nonnull align 1 dereferenceable(32) %517)
          to label %519 unwind label %559

519:                                              ; preds = %515
  br i1 %518, label %520, label %586

520:                                              ; preds = %519
  call void @llvm.lifetime.start.p0(i64 432, ptr %56) #8
  %521 = getelementptr inbounds %"class.DynexCN::DynexCNProtocolHandler", ptr %66, i32 0, i32 2
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.Logging::LoggerMessage") align 8 %56, ptr noundef nonnull align 8 dereferenceable(40) %521, i32 noundef 4, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging7DEFAULTB5cxx11E)
          to label %522 unwind label %563

522:                                              ; preds = %520
  %523 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA54_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %56, ptr noundef nonnull align 1 dereferenceable(54) @.str.61)
          to label %524 unwind label %567

524:                                              ; preds = %522
  %525 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEmEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %523, ptr noundef nonnull align 8 dereferenceable(8) %51)
          to label %526 unwind label %567

526:                                              ; preds = %524
  %527 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA2_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %525, ptr noundef nonnull align 1 dereferenceable(2) @.str.62)
          to label %528 unwind label %567

528:                                              ; preds = %526
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #8
  %529 = load ptr, ptr %8, align 8, !tbaa !5
  %530 = getelementptr inbounds %"struct.DynexCN::NOTIFY_RESPONSE_GET_OBJECTS_request", ptr %529, i32 0, i32 1
  %531 = call noundef i64 @_ZNKSt6vectorIN7DynexCN20block_complete_entryESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %530) #8
  store i64 %531, ptr %57, align 8, !tbaa !43
  %532 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEmEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %527, ptr noundef nonnull align 8 dereferenceable(8) %57)
          to label %533 unwind label %571

533:                                              ; preds = %528
  %534 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA8_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %532, ptr noundef nonnull align 1 dereferenceable(8) @.str.63)
          to label %535 unwind label %571

535:                                              ; preds = %533
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #8
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %56) #8
  call void @llvm.lifetime.end.p0(i64 432, ptr %56) #8
  br label %536

536:                                              ; preds = %557, %535
  %537 = load i64, ptr %51, align 8, !tbaa !43
  %538 = add i64 %537, -1
  store i64 %538, ptr %51, align 8, !tbaa !43
  %539 = icmp ne i64 %537, 0
  br i1 %539, label %540, label %585

540:                                              ; preds = %536
  %541 = load ptr, ptr %8, align 8, !tbaa !5
  %542 = getelementptr inbounds %"struct.DynexCN::NOTIFY_RESPONSE_GET_OBJECTS_request", ptr %541, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #8
  %543 = load ptr, ptr %8, align 8, !tbaa !5
  %544 = getelementptr inbounds %"struct.DynexCN::NOTIFY_RESPONSE_GET_OBJECTS_request", ptr %543, i32 0, i32 1
  %545 = call ptr @_ZNSt6vectorIN7DynexCN20block_complete_entryESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %544) #8
  %546 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.102", ptr %59, i32 0, i32 0
  store ptr %545, ptr %546, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKN7DynexCN20block_complete_entryESt6vectorIS2_SaIS2_EEEC2IPS2_vEERKNS0_IT_S7_EE(ptr noundef nonnull align 8 dereferenceable(8) %58, ptr noundef nonnull align 8 dereferenceable(8) %59) #8
  %547 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.110", ptr %58, i32 0, i32 0
  %548 = load ptr, ptr %547, align 8
  %549 = invoke ptr @_ZNSt6vectorIN7DynexCN20block_complete_entryESaIS1_EE5eraseEN9__gnu_cxx17__normal_iteratorIPKS1_S3_EE(ptr noundef nonnull align 8 dereferenceable(24) %542, ptr %548)
          to label %550 unwind label %577

550:                                              ; preds = %540
  %551 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.102", ptr %60, i32 0, i32 0
  store ptr %549, ptr %551, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %62) #8
  %552 = call ptr @_ZNSt6vectorIN7DynexCN22DynexCNProtocolHandler18parsed_block_entryESaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %16) #8
  %553 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.111", ptr %62, i32 0, i32 0
  store ptr %552, ptr %553, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKN7DynexCN22DynexCNProtocolHandler18parsed_block_entryESt6vectorIS3_SaIS3_EEEC2IPS3_vEERKNS0_IT_S8_EE(ptr noundef nonnull align 8 dereferenceable(8) %61, ptr noundef nonnull align 8 dereferenceable(8) %62) #8
  %554 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.112", ptr %61, i32 0, i32 0
  %555 = load ptr, ptr %554, align 8
  %556 = invoke ptr @_ZNSt6vectorIN7DynexCN22DynexCNProtocolHandler18parsed_block_entryESaIS2_EE5eraseEN9__gnu_cxx17__normal_iteratorIPKS2_S4_EE(ptr noundef nonnull align 8 dereferenceable(24) %16, ptr %555)
          to label %557 unwind label %581

557:                                              ; preds = %550
  %558 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.111", ptr %63, i32 0, i32 0
  store ptr %556, ptr %558, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #8
  br label %536, !llvm.loop !69

559:                                              ; preds = %515
  %560 = landingpad { ptr, i32 }
          cleanup
  %561 = extractvalue { ptr, i32 } %560, 0
  store ptr %561, ptr %11, align 8
  %562 = extractvalue { ptr, i32 } %560, 1
  store i32 %562, ptr %12, align 4
  br label %594

563:                                              ; preds = %520
  %564 = landingpad { ptr, i32 }
          cleanup
  %565 = extractvalue { ptr, i32 } %564, 0
  store ptr %565, ptr %11, align 8
  %566 = extractvalue { ptr, i32 } %564, 1
  store i32 %566, ptr %12, align 4
  br label %576

567:                                              ; preds = %526, %524, %522
  %568 = landingpad { ptr, i32 }
          cleanup
  %569 = extractvalue { ptr, i32 } %568, 0
  store ptr %569, ptr %11, align 8
  %570 = extractvalue { ptr, i32 } %568, 1
  store i32 %570, ptr %12, align 4
  br label %575

571:                                              ; preds = %533, %528
  %572 = landingpad { ptr, i32 }
          cleanup
  %573 = extractvalue { ptr, i32 } %572, 0
  store ptr %573, ptr %11, align 8
  %574 = extractvalue { ptr, i32 } %572, 1
  store i32 %574, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #8
  br label %575

575:                                              ; preds = %571, %567
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %56) #8
  br label %576

576:                                              ; preds = %575, %563
  call void @llvm.lifetime.end.p0(i64 432, ptr %56) #8
  br label %594

577:                                              ; preds = %540
  %578 = landingpad { ptr, i32 }
          cleanup
  %579 = extractvalue { ptr, i32 } %578, 0
  store ptr %579, ptr %11, align 8
  %580 = extractvalue { ptr, i32 } %578, 1
  store i32 %580, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #8
  br label %594

581:                                              ; preds = %550
  %582 = landingpad { ptr, i32 }
          cleanup
  %583 = extractvalue { ptr, i32 } %582, 0
  store ptr %583, ptr %11, align 8
  %584 = extractvalue { ptr, i32 } %582, 1
  store i32 %584, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #8
  br label %594

585:                                              ; preds = %536
  store i32 6, ptr %20, align 4
  br label %589

586:                                              ; preds = %519
  %587 = load i64, ptr %51, align 8, !tbaa !43
  %588 = add i64 %587, 1
  store i64 %588, ptr %51, align 8, !tbaa !43
  store i32 0, ptr %20, align 4
  br label %589

589:                                              ; preds = %586, %585
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #8
  %590 = load i32, ptr %20, align 4
  switch i32 %590, label %595 [
    i32 0, label %591
  ]

591:                                              ; preds = %589
  br label %592

592:                                              ; preds = %591
  %593 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPN6Crypto4HashESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %53) #8
  br label %504

594:                                              ; preds = %581, %577, %576, %559
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #8
  br label %635

595:                                              ; preds = %589, %506
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #8
  br label %596

596:                                              ; preds = %595
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #8
  %597 = load ptr, ptr %9, align 8, !tbaa !5
  %598 = invoke noundef i32 @_ZN7DynexCN22DynexCNProtocolHandler14processObjectsERNS_24DynexCNConnectionContextERKSt6vectorINS0_18parsed_block_entryESaIS4_EE(ptr noundef nonnull align 8 dereferenceable(312) %66, ptr noundef nonnull align 8 dereferenceable(144) %597, ptr noundef nonnull align 8 dereferenceable(24) %16)
          to label %599 unwind label %604

599:                                              ; preds = %596
  store i32 %598, ptr %64, align 4, !tbaa !9
  %600 = load i32, ptr %64, align 4, !tbaa !9
  %601 = icmp ne i32 %600, 0
  br i1 %601, label %602, label %608

602:                                              ; preds = %599
  %603 = load i32, ptr %64, align 4, !tbaa !9
  store i32 %603, ptr %5, align 4
  store i32 1, ptr %20, align 4
  br label %609

604:                                              ; preds = %596
  %605 = landingpad { ptr, i32 }
          cleanup
  %606 = extractvalue { ptr, i32 } %605, 0
  store ptr %606, ptr %11, align 8
  %607 = extractvalue { ptr, i32 } %605, 1
  store i32 %607, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #8
  br label %635

608:                                              ; preds = %599
  store i32 0, ptr %20, align 4
  br label %609

609:                                              ; preds = %608, %602
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #8
  call void @_ZNSt10lock_guardISt15recursive_mutexED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %50) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #8
  %610 = load i32, ptr %20, align 4
  switch i32 %610, label %652 [
    i32 0, label %611
  ]

611:                                              ; preds = %609
  %612 = getelementptr inbounds %"class.DynexCN::DynexCNProtocolHandler", ptr %66, i32 0, i32 4
  %613 = load ptr, ptr %612, align 8, !tbaa !66
  %614 = load ptr, ptr %613, align 8, !tbaa !67
  %615 = getelementptr inbounds ptr, ptr %614, i64 14
  %616 = load ptr, ptr %615, align 8
  invoke void %616(ptr noundef nonnull align 8 dereferenceable(8) %613, ptr noundef nonnull align 4 dereferenceable(4) %48, ptr noundef nonnull align 1 dereferenceable(32) %49)
          to label %617 unwind label %638

617:                                              ; preds = %611
  call void @llvm.lifetime.start.p0(i64 432, ptr %65) #8
  %618 = getelementptr inbounds %"class.DynexCN::DynexCNProtocolHandler", ptr %66, i32 0, i32 2
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.Logging::LoggerMessage") align 8 %65, ptr noundef nonnull align 8 dereferenceable(40) %618, i32 noundef 4, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging12BRIGHT_GREENB5cxx11E)
          to label %619 unwind label %642

619:                                              ; preds = %617
  %620 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA40_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %65, ptr noundef nonnull align 1 dereferenceable(40) @.str.64)
          to label %621 unwind label %646

621:                                              ; preds = %619
  %622 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEjEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %620, ptr noundef nonnull align 4 dereferenceable(4) %48)
          to label %623 unwind label %646

623:                                              ; preds = %621
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %65) #8
  call void @llvm.lifetime.end.p0(i64 432, ptr %65) #8
  %624 = getelementptr inbounds %"class.DynexCN::DynexCNProtocolHandler", ptr %66, i32 0, i32 9
  %625 = call noundef zeroext i1 @_ZNKSt6atomicIbEcvbEv(ptr noundef nonnull align 1 dereferenceable(1) %624) #8
  br i1 %625, label %651, label %626

626:                                              ; preds = %623
  %627 = load ptr, ptr %9, align 8, !tbaa !5
  %628 = getelementptr inbounds %"struct.DynexCN::DynexCNConnectionContext", ptr %627, i32 0, i32 6
  %629 = load i32, ptr %628, align 8, !tbaa !41
  %630 = icmp eq i32 %629, 1
  br i1 %630, label %631, label %651

631:                                              ; preds = %626
  %632 = load ptr, ptr %9, align 8, !tbaa !5
  %633 = invoke noundef zeroext i1 @_ZN7DynexCN22DynexCNProtocolHandler23request_missing_objectsERNS_24DynexCNConnectionContextEb(ptr noundef nonnull align 8 dereferenceable(312) %66, ptr noundef nonnull align 8 dereferenceable(144) %632, i1 noundef zeroext true)
          to label %634 unwind label %638

634:                                              ; preds = %631
  br label %651

635:                                              ; preds = %604, %594
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #8
  br label %636

636:                                              ; preds = %635, %511
  call void @_ZNSt10lock_guardISt15recursive_mutexED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %50) #8
  br label %637

637:                                              ; preds = %636, %507
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #8
  br label %653

638:                                              ; preds = %631, %611
  %639 = landingpad { ptr, i32 }
          cleanup
  %640 = extractvalue { ptr, i32 } %639, 0
  store ptr %640, ptr %11, align 8
  %641 = extractvalue { ptr, i32 } %639, 1
  store i32 %641, ptr %12, align 4
  br label %653

642:                                              ; preds = %617
  %643 = landingpad { ptr, i32 }
          cleanup
  %644 = extractvalue { ptr, i32 } %643, 0
  store ptr %644, ptr %11, align 8
  %645 = extractvalue { ptr, i32 } %643, 1
  store i32 %645, ptr %12, align 4
  br label %650

646:                                              ; preds = %621, %619
  %647 = landingpad { ptr, i32 }
          cleanup
  %648 = extractvalue { ptr, i32 } %647, 0
  store ptr %648, ptr %11, align 8
  %649 = extractvalue { ptr, i32 } %647, 1
  store i32 %649, ptr %12, align 4
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %65) #8
  br label %650

650:                                              ; preds = %646, %642
  call void @llvm.lifetime.end.p0(i64 432, ptr %65) #8
  br label %653

651:                                              ; preds = %634, %626, %623
  store i32 1, ptr %5, align 4
  store i32 1, ptr %20, align 4
  br label %652

652:                                              ; preds = %651, %609
  call void @llvm.lifetime.end.p0(i64 32, ptr %49) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #8
  br label %654

653:                                              ; preds = %650, %638, %637
  call void @llvm.lifetime.end.p0(i64 32, ptr %49) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #8
  br label %655

654:                                              ; preds = %652, %472, %451
  call void @_ZNSt6vectorIN7DynexCN22DynexCNProtocolHandler18parsed_block_entryESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %16) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %16) #8
  call void @_ZNSt6vectorIN6Crypto4HashESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %15) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %15) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #8
  br label %657

655:                                              ; preds = %653, %488, %450, %142
  call void @_ZNSt6vectorIN7DynexCN22DynexCNProtocolHandler18parsed_block_entryESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %16) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %16) #8
  br label %656

656:                                              ; preds = %655, %138
  call void @_ZNSt6vectorIN6Crypto4HashESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %15) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %15) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #8
  br label %659

657:                                              ; preds = %654, %98
  %658 = load i32, ptr %5, align 4
  ret i32 %658

659:                                              ; preds = %656, %105, %101
  %660 = load ptr, ptr %11, align 8
  %661 = load i32, ptr %12, align 4
  %662 = insertvalue { ptr, i32 } poison, ptr %660, 0
  %663 = insertvalue { ptr, i32 } %662, i32 %661, 1
  resume { ptr, i32 } %663
}

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

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

declare void @_ZN6Common13asBinaryArrayERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.std::vector.33") align 8, ptr noundef nonnull align 8 dereferenceable(32)) #4

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

declare void @_ZN7DynexCN14get_block_hashERKNS_5BlockE(ptr dead_on_unwind writable sret(%"struct.Crypto::Hash") align 1, ptr noundef nonnull align 8 dereferenceable(384)) #4

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(384) ptr @_ZN7DynexCN5BlockaSERKS0_(ptr noundef nonnull align 8 dereferenceable(384), ptr noundef nonnull align 8 dereferenceable(384)) #3 align 2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZN7DynexCN22DynexCNProtocolHandler14processObjectsERNS_24DynexCNConnectionContextERKSt6vectorINS0_18parsed_block_entryESaIS4_EE(ptr noundef nonnull align 8 dereferenceable(312), ptr noundef nonnull align 8 dereferenceable(144), ptr noundef nonnull align 8 dereferenceable(24)) #6 align 2

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN7DynexCN22DynexCNProtocolHandler23request_missing_objectsERNS_24DynexCNConnectionContextEb(ptr noundef nonnull align 8 dereferenceable(312), ptr noundef nonnull align 8 dereferenceable(144), i1 noundef zeroext) #6 align 2

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{!12, !10, i64 132}
!12 = !{!"_ZTSN7DynexCN24DynexCNConnectionContextE", !7, i64 0, !13, i64 1, !10, i64 20, !10, i64 24, !14, i64 28, !15, i64 32, !16, i64 40, !17, i64 48, !22, i64 72, !10, i64 128, !10, i64 132, !10, i64 136, !10, i64 140}
!13 = !{!"_ZTSN6Crypto4UuidE", !7, i64 0}
!14 = !{!"bool", !7, i64 0}
!15 = !{!"long", !7, i64 0}
!16 = !{!"_ZTSN7DynexCN24DynexCNConnectionContext5stateE", !7, i64 0}
!17 = !{!"_ZTSNSt7__cxx114listIN6Crypto4HashESaIS2_EEE", !18, i64 0}
!18 = !{!"_ZTSNSt7__cxx1110_List_baseIN6Crypto4HashESaIS2_EEE", !19, i64 0}
!19 = !{!"_ZTSNSt7__cxx1110_List_baseIN6Crypto4HashESaIS2_EE10_List_implE", !20, i64 0}
!20 = !{!"_ZTSNSt8__detail17_List_node_headerE", !21, i64 0, !15, i64 16}
!21 = !{!"_ZTSNSt8__detail15_List_node_baseE", !6, i64 0, !6, i64 8}
!22 = !{!"_ZTSSt13unordered_setIN6Crypto4HashESt4hashIS1_ESt8equal_toIS1_ESaIS1_EE", !23, i64 0}
!23 = !{!"_ZTSSt10_HashtableIN6Crypto4HashES1_SaIS1_ENSt8__detail9_IdentityESt8equal_toIS1_ESt4hashIS1_ENS3_18_Mod_range_hashingENS3_20_Default_ranged_hashENS3_20_Prime_rehash_policyENS3_17_Hashtable_traitsILb1ELb1ELb1EEEE", !6, i64 0, !15, i64 8, !24, i64 16, !15, i64 24, !25, i64 32, !6, i64 48}
!24 = !{!"_ZTSNSt8__detail15_Hash_node_baseE", !6, i64 0}
!25 = !{!"_ZTSNSt8__detail20_Prime_rehash_policyE", !26, i64 0, !15, i64 8}
!26 = !{!"float", !7, i64 0}
!27 = !{!28, !10, i64 72}
!28 = !{!"_ZTSN7DynexCN35NOTIFY_RESPONSE_GET_OBJECTS_requestE", !29, i64 0, !33, i64 24, !37, i64 48, !10, i64 72}
!29 = !{!"_ZTSSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !30, i64 0}
!30 = !{!"_ZTSSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !31, i64 0}
!31 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_Vector_implE", !32, i64 0}
!32 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!33 = !{!"_ZTSSt6vectorIN7DynexCN20block_complete_entryESaIS1_EE", !34, i64 0}
!34 = !{!"_ZTSSt12_Vector_baseIN7DynexCN20block_complete_entryESaIS1_EE", !35, i64 0}
!35 = !{!"_ZTSNSt12_Vector_baseIN7DynexCN20block_complete_entryESaIS1_EE12_Vector_implE", !36, i64 0}
!36 = !{!"_ZTSNSt12_Vector_baseIN7DynexCN20block_complete_entryESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!37 = !{!"_ZTSSt6vectorIN6Crypto4HashESaIS1_EE", !38, i64 0}
!38 = !{!"_ZTSSt12_Vector_baseIN6Crypto4HashESaIS1_EE", !39, i64 0}
!39 = !{!"_ZTSNSt12_Vector_baseIN6Crypto4HashESaIS1_EE12_Vector_implE", !40, i64 0}
!40 = !{!"_ZTSNSt12_Vector_baseIN6Crypto4HashESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!41 = !{!12, !16, i64 40}
!42 = !{!12, !10, i64 128}
!43 = !{!15, !15, i64 0}
!44 = !{!45, !6, i64 72}
!45 = !{!"_ZTSN7DynexCN22DynexCNProtocolHandlerE", !46, i64 0, !47, i64 8, !48, i64 16, !6, i64 56, !6, i64 64, !6, i64 72, !51, i64 80, !6, i64 88, !53, i64 96, !53, i64 97, !55, i64 104, !57, i64 144, !10, i64 184, !57, i64 192, !10, i64 232, !59, i64 240, !61, i64 248}
!46 = !{!"_ZTSN7DynexCN13i_cn_protocolE"}
!47 = !{!"_ZTSN7DynexCN21IDynexCNProtocolQueryE"}
!48 = !{!"_ZTSN7Logging9LoggerRefE", !6, i64 0, !49, i64 8}
!49 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !50, i64 0, !15, i64 8, !7, i64 16}
!50 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!51 = !{!"_ZTSN7DynexCN17p2p_endpoint_stubE", !52, i64 0}
!52 = !{!"_ZTSN7DynexCN12IP2pEndpointE"}
!53 = !{!"_ZTSSt6atomicIbE", !54, i64 0}
!54 = !{!"_ZTSSt13__atomic_baseIbE", !14, i64 0}
!55 = !{!"_ZTSSt15recursive_mutex", !56, i64 0}
!56 = !{!"_ZTSSt22__recursive_mutex_base", !7, i64 0}
!57 = !{!"_ZTSSt5mutex", !58, i64 0}
!58 = !{!"_ZTSSt12__mutex_base", !7, i64 0}
!59 = !{!"_ZTSSt6atomicImE", !60, i64 0}
!60 = !{!"_ZTSSt13__atomic_baseImE", !15, i64 0}
!61 = !{!"_ZTSN5Tools15ObserverManagerIN7DynexCN24IDynexCNProtocolObserverEEE", !62, i64 0, !57, i64 24}
!62 = !{!"_ZTSSt6vectorIPN7DynexCN24IDynexCNProtocolObserverESaIS2_EE", !63, i64 0}
!63 = !{!"_ZTSSt12_Vector_baseIPN7DynexCN24IDynexCNProtocolObserverESaIS2_EE", !64, i64 0}
!64 = !{!"_ZTSNSt12_Vector_baseIPN7DynexCN24IDynexCNProtocolObserverESaIS2_EE12_Vector_implE", !65, i64 0}
!65 = !{!"_ZTSNSt12_Vector_baseIPN7DynexCN24IDynexCNProtocolObserverESaIS2_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!66 = !{!45, !6, i64 64}
!67 = !{!68, !68, i64 0}
!68 = !{!"vtable pointer", !8, i64 0}
!69 = distinct !{!69, !70}
!70 = !{!"llvm.loop.mustprogress"}


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

%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.Logging::LoggerMessage" = type <{ %"class.std::basic_ostream.base", %"class.std::basic_streambuf", ptr, %"class.std::__cxx11::basic_string", i32, [4 x i8], %"class.std::__cxx11::basic_string", %"class.boost::posix_time::ptime", i8, [7 x i8], %"class.std::basic_ios" }>
%"class.std::basic_ostream.base" = type { ptr }
%"class.std::basic_streambuf" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::locale" }
%"class.std::locale" = type { ptr }
%"class.boost::posix_time::ptime" = type { %"class.boost::date_time::base_time" }
%"class.boost::date_time::base_time" = type { %"struct.boost::date_time::counted_time_rep" }
%"struct.boost::date_time::counted_time_rep" = type { %"class.boost::date_time::int_adapter" }
%"class.boost::date_time::int_adapter" = type { i64 }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::vector.18" = type { %"struct.std::_Vector_base.19" }
%"struct.std::_Vector_base.19" = 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.std::vector.97" = type { %"struct.std::_Vector_base.98" }
%"struct.std::_Vector_base.98" = type { %"struct.std::_Vector_base<DynexCN::DynexCNProtocolHandler::parsed_block_entry, std::allocator<DynexCN::DynexCNProtocolHandler::parsed_block_entry>>::_Vector_impl" }
%"struct.std::_Vector_base<DynexCN::DynexCNProtocolHandler::parsed_block_entry, std::allocator<DynexCN::DynexCNProtocolHandler::parsed_block_entry>>::_Vector_impl" = type { %"struct.std::_Vector_base<DynexCN::DynexCNProtocolHandler::parsed_block_entry, std::allocator<DynexCN::DynexCNProtocolHandler::parsed_block_entry>>::_Vector_impl_data" }
%"struct.std::_Vector_base<DynexCN::DynexCNProtocolHandler::parsed_block_entry, std::allocator<DynexCN::DynexCNProtocolHandler::parsed_block_entry>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.__gnu_cxx::__normal_iterator.102" = type { ptr }
%"struct.DynexCN::Block" = type { %"struct.DynexCN::BlockHeader", %"struct.DynexCN::ParentBlock", %"struct.DynexCN::Transaction", %"class.std::vector.18" }
%"struct.DynexCN::BlockHeader" = type { i8, i8, i32, i64, %"struct.Crypto::Hash" }
%"struct.Crypto::Hash" = type { [32 x i8] }
%"struct.DynexCN::ParentBlock" = type { i8, i8, %"struct.Crypto::Hash", i16, %"class.std::vector.18", %"struct.DynexCN::Transaction", %"class.std::vector.18" }
%"struct.DynexCN::Transaction" = type { %"struct.DynexCN::TransactionPrefix", %"class.std::vector.38" }
%"struct.DynexCN::TransactionPrefix" = type { i8, i64, %"class.std::vector.23", %"class.std::vector.28", %"class.std::vector.33" }
%"class.std::vector.23" = type { %"struct.std::_Vector_base.24" }
%"struct.std::_Vector_base.24" = 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.28" = type { %"struct.std::_Vector_base.29" }
%"struct.std::_Vector_base.29" = 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.33" = type { %"struct.std::_Vector_base.34" }
%"struct.std::_Vector_base.34" = 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.38" = type { %"struct.std::_Vector_base.39" }
%"struct.std::_Vector_base.39" = type { %"struct.std::_Vector_base<std::vector<Crypto::Signature>, std::allocator<std::vector<Crypto::Signature>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::vector<Crypto::Signature>, std::allocator<std::vector<Crypto::Signature>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::vector<Crypto::Signature>, std::allocator<std::vector<Crypto::Signature>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::vector<Crypto::Signature>, std::allocator<std::vector<Crypto::Signature>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.std::__detail::_Node_iterator" = type { %"struct.std::__detail::_Node_iterator_base" }
%"struct.std::__detail::_Node_iterator_base" = type { ptr }
%"struct.DynexCN::DynexCNProtocolHandler::parsed_block_entry" = type { %"struct.DynexCN::Block", %"class.std::vector.103" }
%"class.std::vector.103" = type { %"struct.std::_Vector_base.104" }
%"struct.std::_Vector_base.104" = type { %"struct.std::_Vector_base<std::vector<unsigned char>, std::allocator<std::vector<unsigned char>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::vector<unsigned char>, std::allocator<std::vector<unsigned char>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::vector<unsigned char>, std::allocator<std::vector<unsigned char>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::vector<unsigned char>, std::allocator<std::vector<unsigned char>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.__gnu_cxx::__normal_iterator.91" = type { ptr }
%"class.std::lock_guard.108" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.109" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.110" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.112" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.111" = type { ptr }

@_ZN7Logging7DEFAULTB5cxx11E = external global %"class.std::__cxx11::basic_string", align 8
@_ZN7Logging10BRIGHT_REDB5cxx11E = external global %"class.std::__cxx11::basic_string", align 8
@.str.47 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [8 x i8], align 1
@_ZN7Logging12BRIGHT_GREENB5cxx11E = external global %"class.std::__cxx11::basic_string", align 8
@.str.64 = external hidden unnamed_addr constant [40 x i8], align 1

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

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7DynexCN22DynexCNProtocolHandler20updateObservedHeightEjRKNS_24DynexCNConnectionContextE(ptr noundef nonnull align 8 dereferenceable(312), i32 noundef, ptr noundef nonnull align 8 dereferenceable(144)) local_unnamed_addr #5 align 2

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_ZN7DynexCN22DynexCNProtocolHandler27handle_response_get_objectsEiRNS_35NOTIFY_RESPONSE_GET_OBJECTS_requestERNS_24DynexCNConnectionContextE(ptr noundef nonnull align 8 dereferenceable(312) %0, i32 noundef %1, ptr noundef nonnull align 8 dereferenceable(76) %2, ptr noundef nonnull align 8 dereferenceable(144) %3) local_unnamed_addr #5 align 2 personality ptr @__gxx_personality_v0 {
  %5 = alloca %"class.Logging::LoggerMessage", align 8
  %6 = alloca %"class.Logging::LoggerMessage", align 8
  %7 = alloca %"class.std::vector.18", align 8
  %8 = alloca %"class.std::vector.97", align 8
  %9 = alloca %"class.__gnu_cxx::__normal_iterator.102", align 8
  %10 = alloca %"class.__gnu_cxx::__normal_iterator.102", align 8
  %11 = alloca %"struct.DynexCN::Block", align 8
  %12 = alloca %"class.std::vector.33", align 8
  %13 = alloca %"class.Logging::LoggerMessage", align 8
  %14 = alloca i64, align 8
  %15 = alloca %"class.Logging::LoggerMessage", align 8
  %16 = alloca %"class.std::__cxx11::basic_string", align 8
  %17 = alloca %"struct.Crypto::Hash", align 1
  %18 = alloca %"class.Logging::LoggerMessage", align 8
  %19 = alloca %"struct.std::__detail::_Node_iterator", align 8
  %20 = alloca %"struct.std::__detail::_Node_iterator", align 8
  %21 = alloca %"class.Logging::LoggerMessage", align 8
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca %"class.Logging::LoggerMessage", align 8
  %24 = alloca %"class.std::__cxx11::basic_string", align 8
  %25 = alloca i64, align 8
  %26 = alloca i64, align 8
  %27 = alloca %"struct.DynexCN::DynexCNProtocolHandler::parsed_block_entry", align 8
  %28 = alloca %"class.__gnu_cxx::__normal_iterator.91", align 8
  %29 = alloca %"class.__gnu_cxx::__normal_iterator.91", align 8
  %30 = alloca %"class.std::vector.33", align 8
  %31 = alloca %"class.Logging::LoggerMessage", align 8
  %32 = alloca i64, align 8
  %33 = alloca i32, align 4
  %34 = alloca %"struct.Crypto::Hash", align 1
  %35 = alloca %"class.std::lock_guard.108", align 8
  %36 = alloca i64, align 8
  %37 = alloca %"class.__gnu_cxx::__normal_iterator.109", align 8
  %38 = alloca %"class.__gnu_cxx::__normal_iterator.109", align 8
  %39 = alloca %"class.Logging::LoggerMessage", align 8
  %40 = alloca i64, align 8
  %41 = alloca %"class.__gnu_cxx::__normal_iterator.110", align 8
  %42 = alloca %"class.__gnu_cxx::__normal_iterator.102", align 8
  %43 = alloca %"class.__gnu_cxx::__normal_iterator.112", align 8
  %44 = alloca %"class.__gnu_cxx::__normal_iterator.111", align 8
  %45 = alloca %"class.Logging::LoggerMessage", align 8
  call void @llvm.lifetime.start.p0(i64 432, ptr nonnull %5) #7
  %46 = getelementptr inbounds i8, ptr %0, i64 16
  call void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.Logging::LoggerMessage") align 8 %5, ptr noundef nonnull align 8 dereferenceable(40) %46, i32 noundef 5, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging7DEFAULTB5cxx11E)
  %47 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEN7DynexCN24DynexCNConnectionContextEEOT_S5_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %5, ptr noundef nonnull align 8 dereferenceable(144) %3)
          to label %48 unwind label %70

48:                                               ; preds = %4
  %49 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA28_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %47, ptr noundef nonnull align 1 dereferenceable(28) @.str.47)
          to label %50 unwind label %70

50:                                               ; preds = %48
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %5) #7
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %5) #7
  %51 = getelementptr inbounds i8, ptr %3, i64 132
  %52 = load i32, ptr %51, align 4, !tbaa !5
  %53 = getelementptr inbounds i8, ptr %2, i64 72
  %54 = load i32, ptr %53, align 8, !tbaa !25
  %55 = icmp ugt i32 %52, %54
  br i1 %55, label %56, label %74

56:                                               ; preds = %50
  call void @llvm.lifetime.start.p0(i64 432, ptr nonnull %6) #7
  call void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.Logging::LoggerMessage") align 8 %6, ptr noundef nonnull align 8 dereferenceable(40) %46, i32 noundef 1, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging7DEFAULTB5cxx11E)
  %57 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEN7DynexCN24DynexCNConnectionContextEEOT_S5_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %6, ptr noundef nonnull align 8 dereferenceable(144) %3)
          to label %58 unwind label %72

58:                                               ; preds = %56
  %59 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA65_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %57, ptr noundef nonnull align 1 dereferenceable(65) @.str.48)
          to label %60 unwind label %72

60:                                               ; preds = %58
  %61 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEjEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %59, ptr noundef nonnull align 4 dereferenceable(4) %53)
          to label %62 unwind label %72

62:                                               ; preds = %60
  %63 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA27_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %61, ptr noundef nonnull align 1 dereferenceable(27) @.str.49)
          to label %64 unwind label %72

64:                                               ; preds = %62
  %65 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEjEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %63, ptr noundef nonnull align 4 dereferenceable(4) %51)
          to label %66 unwind label %72

66:                                               ; preds = %64
  %67 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA22_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %65, ptr noundef nonnull align 1 dereferenceable(22) @.str.50)
          to label %68 unwind label %72

68:                                               ; preds = %66
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %6) #7
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %6) #7
  %69 = getelementptr inbounds i8, ptr %3, i64 40
  store i32 6, ptr %69, align 8, !tbaa !39
  br label %400

70:                                               ; preds = %48, %4
  %71 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %5) #7
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %5) #7
  br label %401

72:                                               ; preds = %66, %64, %62, %60, %58, %56
  %73 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %6) #7
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %6) #7
  br label %401

74:                                               ; preds = %50
  call void @_ZN7DynexCN22DynexCNProtocolHandler20updateObservedHeightEjRKNS_24DynexCNConnectionContextE(ptr noundef nonnull align 8 dereferenceable(312) %0, i32 noundef %54, ptr noundef nonnull align 8 dereferenceable(144) %3)
  %75 = load i32, ptr %53, align 8, !tbaa !25
  %76 = getelementptr inbounds i8, ptr %3, i64 128
  store i32 %75, ptr %76, align 8, !tbaa !40
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %7) #7
  call void @_ZNSt6vectorIN6Crypto4HashESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %7) #7
  %77 = getelementptr inbounds i8, ptr %2, i64 24
  %78 = call noundef i64 @_ZNKSt6vectorIN7DynexCN20block_complete_entryESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %77) #7
  invoke void @_ZNSt6vectorIN6Crypto4HashESaIS1_EE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %7, i64 noundef %78)
          to label %79 unwind label %92

79:                                               ; preds = %74
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %8) #7
  call void @_ZNSt6vectorIN7DynexCN22DynexCNProtocolHandler18parsed_block_entryESaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %8) #7
  %80 = call noundef i64 @_ZNKSt6vectorIN7DynexCN20block_complete_entryESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %77) #7
  invoke void @_ZNSt6vectorIN7DynexCN22DynexCNProtocolHandler18parsed_block_entryESaIS2_EE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %8, i64 noundef %80)
          to label %81 unwind label %94

81:                                               ; preds = %79
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #7
  %82 = call ptr @_ZNSt6vectorIN7DynexCN20block_complete_entryESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %77) #7
  store ptr %82, ptr %9, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #7
  %83 = call ptr @_ZNSt6vectorIN7DynexCN20block_complete_entryESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %77) #7
  store ptr %83, ptr %10, align 8
  %84 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN7DynexCN20block_complete_entryESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %9, ptr noundef nonnull align 8 dereferenceable(8) %10) #7
  br i1 %84, label %.lr.ph200, label %.loopexit

.lr.ph200:                                        ; preds = %81
  %85 = getelementptr inbounds i8, ptr %0, i64 72
  %86 = getelementptr inbounds i8, ptr %3, i64 40
  %87 = getelementptr inbounds i8, ptr %0, i64 64
  %88 = getelementptr inbounds i8, ptr %3, i64 72
  %89 = getelementptr inbounds i8, ptr %11, i64 360
  %90 = getelementptr inbounds i8, ptr %27, i64 384
  %91 = getelementptr inbounds i8, ptr %3, i64 48
  br label %96

92:                                               ; preds = %74
  %93 = landingpad { ptr, i32 }
          cleanup
  br label %399

94:                                               ; preds = %79
  %95 = landingpad { ptr, i32 }
          cleanup
  br label %398

96:                                               ; preds = %.lr.ph200, %271
  %.0112198 = phi i64 [ 0, %.lr.ph200 ], [ %98, %271 ]
  %97 = call noundef nonnull align 8 dereferenceable(56) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPN7DynexCN20block_complete_entryESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %9) #7
  %98 = add i64 %.0112198, 1
  call void @llvm.lifetime.start.p0(i64 384, ptr nonnull %11) #7
  call void @_ZN7DynexCN5BlockC2Ev(ptr noundef nonnull align 8 dereferenceable(384) %11) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %12) #7
  invoke void @_ZN6Common13asBinaryArrayERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::vector.33") align 8 %12, ptr noundef nonnull align 8 dereferenceable(32) %97)
          to label %99 unwind label %115

99:                                               ; preds = %96
  %100 = call noundef i64 @_ZNKSt6vectorIhSaIhEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %12) #7
  %101 = load ptr, ptr %85, align 8, !tbaa !41
  %102 = call noundef i64 @_ZNK7DynexCN8Currency16maxBlockBlobSizeEv(ptr noundef nonnull align 8 dereferenceable(984) %101)
  %103 = icmp ugt i64 %100, %102
  br i1 %103, label %104, label %127

104:                                              ; preds = %99
  call void @llvm.lifetime.start.p0(i64 432, ptr nonnull %13) #7
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.Logging::LoggerMessage") align 8 %13, ptr noundef nonnull align 8 dereferenceable(40) %46, i32 noundef 1, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging7DEFAULTB5cxx11E)
          to label %105 unwind label %119

105:                                              ; preds = %104
  %106 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEN7DynexCN24DynexCNConnectionContextEEOT_S5_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %13, ptr noundef nonnull align 8 dereferenceable(144) %3)
          to label %107 unwind label %121

107:                                              ; preds = %105
  %108 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA32_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %106, ptr noundef nonnull align 1 dereferenceable(32) @.str.51)
          to label %109 unwind label %121

109:                                              ; preds = %107
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #7
  %110 = call noundef i64 @_ZNKSt6vectorIhSaIhEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %12) #7
  store i64 %110, ptr %14, align 8, !tbaa !63
  %111 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEmEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %108, ptr noundef nonnull align 8 dereferenceable(8) %14)
          to label %112 unwind label %123

112:                                              ; preds = %109
  %113 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA22_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %111, ptr noundef nonnull align 1 dereferenceable(22) @.str.50)
          to label %114 unwind label %123

114:                                              ; preds = %112
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #7
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %13) #7
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %13) #7
  store i32 6, ptr %86, align 8, !tbaa !39
  br label %270

115:                                              ; preds = %96
  %116 = landingpad { ptr, i32 }
          cleanup
  br label %278

117:                                              ; preds = %127
  %118 = landingpad { ptr, i32 }
          cleanup
  br label %277

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

121:                                              ; preds = %107, %105
  %122 = landingpad { ptr, i32 }
          cleanup
  br label %125

123:                                              ; preds = %112, %109
  %124 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #7
  br label %125

125:                                              ; preds = %123, %121
  %.pn141 = phi { ptr, i32 } [ %124, %123 ], [ %122, %121 ]
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %13) #7
  br label %126

126:                                              ; preds = %125, %119
  %.pn141.pn = phi { ptr, i32 } [ %.pn141, %125 ], [ %120, %119 ]
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %13) #7
  br label %277

127:                                              ; preds = %99
  %128 = invoke noundef zeroext i1 @_ZN7DynexCN15fromBinaryArrayINS_5BlockEEEbRT_RKSt6vectorIhSaIhEE(ptr noundef nonnull align 8 dereferenceable(384) %11, ptr noundef nonnull align 8 dereferenceable(24) %12)
          to label %129 unwind label %117

129:                                              ; preds = %127
  br i1 %128, label %152, label %130

130:                                              ; preds = %129
  call void @llvm.lifetime.start.p0(i64 432, ptr nonnull %15) #7
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.Logging::LoggerMessage") align 8 %15, ptr noundef nonnull align 8 dereferenceable(40) %46, i32 noundef 1, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging7DEFAULTB5cxx11E)
          to label %131 unwind label %141

131:                                              ; preds = %130
  %132 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEN7DynexCN24DynexCNConnectionContextEEOT_S5_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %15, ptr noundef nonnull align 8 dereferenceable(144) %3)
          to label %133 unwind label %143

133:                                              ; preds = %131
  %134 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA57_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %132, ptr noundef nonnull align 1 dereferenceable(57) @.str.52)
          to label %135 unwind label %143

135:                                              ; preds = %133
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %16) #7
  invoke void @_ZN6Common5toHexB5cxx11ERKSt6vectorIhSaIhEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %16, ptr noundef nonnull align 8 dereferenceable(24) %12)
          to label %136 unwind label %145

136:                                              ; preds = %135
  %137 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEOT_S9_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %134, ptr noundef nonnull align 8 dereferenceable(32) %16)
          to label %138 unwind label %147

138:                                              ; preds = %136
  %139 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA23_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %137, ptr noundef nonnull align 1 dereferenceable(23) @.str.53)
          to label %140 unwind label %147

140:                                              ; preds = %138
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #7
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %15) #7
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %15) #7
  store i32 6, ptr %86, align 8, !tbaa !39
  br label %270

141:                                              ; preds = %130
  %142 = landingpad { ptr, i32 }
          cleanup
  br label %151

143:                                              ; preds = %133, %131
  %144 = landingpad { ptr, i32 }
          cleanup
  br label %150

145:                                              ; preds = %135
  %146 = landingpad { ptr, i32 }
          cleanup
  br label %149

147:                                              ; preds = %138, %136
  %148 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #7
  br label %149

149:                                              ; preds = %147, %145
  %.pn = phi { ptr, i32 } [ %148, %147 ], [ %146, %145 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #7
  br label %150

150:                                              ; preds = %149, %143
  %.pn.pn = phi { ptr, i32 } [ %.pn, %149 ], [ %144, %143 ]
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %15) #7
  br label %151

151:                                              ; preds = %150, %141
  %.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn, %150 ], [ %142, %141 ]
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %15) #7
  br label %277

152:                                              ; preds = %129
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %17) #7
  invoke void @_ZN7DynexCN14get_block_hashERKNS_5BlockE(ptr dead_on_unwind nonnull writable sret(%"struct.Crypto::Hash") align 1 %17, ptr noundef nonnull align 8 dereferenceable(384) %11)
          to label %153 unwind label %168

153:                                              ; preds = %152
  %154 = icmp eq i64 %98, 2
  br i1 %154, label %155, label %175

155:                                              ; preds = %153
  %156 = load ptr, ptr %87, align 8, !tbaa !64
  %157 = load ptr, ptr %156, align 8, !tbaa !65
  %158 = getelementptr inbounds i8, ptr %157, i64 32
  %159 = load ptr, ptr %158, align 8
  %160 = invoke noundef zeroext i1 %159(ptr noundef nonnull align 8 dereferenceable(8) %156, ptr noundef nonnull align 1 dereferenceable(32) %17)
          to label %161 unwind label %168

161:                                              ; preds = %155
  br i1 %160, label %162, label %175

162:                                              ; preds = %161
  store i32 2, ptr %86, align 8, !tbaa !39
  call void @_ZNSt7__cxx114listIN6Crypto4HashESaIS2_EE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) %91) #7
  call void @_ZNSt13unordered_setIN6Crypto4HashESt4hashIS1_ESt8equal_toIS1_ESaIS1_EE5clearEv(ptr noundef nonnull align 8 dereferenceable(56) %88) #7
  call void @llvm.lifetime.start.p0(i64 432, ptr nonnull %18) #7
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.Logging::LoggerMessage") align 8 %18, ptr noundef nonnull align 8 dereferenceable(40) %46, i32 noundef 4, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging7DEFAULTB5cxx11E)
          to label %163 unwind label %170

163:                                              ; preds = %162
  %164 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEN7DynexCN24DynexCNConnectionContextEEOT_S5_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %18, ptr noundef nonnull align 8 dereferenceable(144) %3)
          to label %165 unwind label %172

165:                                              ; preds = %163
  %166 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA30_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %164, ptr noundef nonnull align 1 dereferenceable(30) @.str.54)
          to label %167 unwind label %172

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

168:                                              ; preds = %155, %152
  %169 = landingpad { ptr, i32 }
          cleanup
  br label %276

170:                                              ; preds = %162
  %171 = landingpad { ptr, i32 }
          cleanup
  br label %174

172:                                              ; preds = %165, %163
  %173 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %18) #7
  br label %174

174:                                              ; preds = %172, %170
  %.pn138 = phi { ptr, i32 } [ %173, %172 ], [ %171, %170 ]
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %18) #7
  br label %276

175:                                              ; preds = %161, %153
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #7
  %176 = invoke ptr @_ZNSt13unordered_setIN6Crypto4HashESt4hashIS1_ESt8equal_toIS1_ESaIS1_EE4findERKS1_(ptr noundef nonnull align 8 dereferenceable(56) %88, ptr noundef nonnull align 1 dereferenceable(32) %17)
          to label %177 unwind label %191

177:                                              ; preds = %175
  store ptr %176, ptr %19, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #7
  %178 = call ptr @_ZNSt13unordered_setIN6Crypto4HashESt4hashIS1_ESt8equal_toIS1_ESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(56) %88) #7
  store ptr %178, ptr %20, align 8
  %179 = call noundef zeroext i1 @_ZNSt8__detaileqERKNS_19_Node_iterator_baseIN6Crypto4HashELb1EEES5_(ptr noundef nonnull align 8 dereferenceable(8) %19, ptr noundef nonnull align 8 dereferenceable(8) %20) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #7
  br i1 %179, label %180, label %204

180:                                              ; preds = %177
  call void @llvm.lifetime.start.p0(i64 432, ptr nonnull %21) #7
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.Logging::LoggerMessage") align 8 %21, ptr noundef nonnull align 8 dereferenceable(40) %46, i32 noundef 1, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging7DEFAULTB5cxx11E)
          to label %181 unwind label %193

181:                                              ; preds = %180
  %182 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEN7DynexCN24DynexCNConnectionContextEEOT_S5_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %21, ptr noundef nonnull align 8 dereferenceable(144) %3)
          to label %183 unwind label %195

183:                                              ; preds = %181
  %184 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA55_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %182, ptr noundef nonnull align 1 dereferenceable(55) @.str.55)
          to label %185 unwind label %195

185:                                              ; preds = %183
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %22) #7
  invoke void @_ZN6Common8podToHexIN6Crypto4HashEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %22, ptr noundef nonnull align 1 dereferenceable(32) %17)
          to label %186 unwind label %197

186:                                              ; preds = %185
  %187 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEOT_S9_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %184, ptr noundef nonnull align 8 dereferenceable(32) %22)
          to label %188 unwind label %199

188:                                              ; preds = %186
  %189 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA39_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %187, ptr noundef nonnull align 1 dereferenceable(39) @.str.56)
          to label %190 unwind label %199

190:                                              ; preds = %188
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #7
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %21) #7
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %21) #7
  store i32 6, ptr %86, align 8, !tbaa !39
  br label %268

191:                                              ; preds = %248, %246, %175
  %192 = landingpad { ptr, i32 }
          cleanup
  br label %275

193:                                              ; preds = %180
  %194 = landingpad { ptr, i32 }
          cleanup
  br label %203

195:                                              ; preds = %183, %181
  %196 = landingpad { ptr, i32 }
          cleanup
  br label %202

197:                                              ; preds = %185
  %198 = landingpad { ptr, i32 }
          cleanup
  br label %201

199:                                              ; preds = %188, %186
  %200 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #7
  br label %201

201:                                              ; preds = %199, %197
  %.pn133 = phi { ptr, i32 } [ %200, %199 ], [ %198, %197 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #7
  br label %202

202:                                              ; preds = %201, %195
  %.pn133.pn = phi { ptr, i32 } [ %.pn133, %201 ], [ %196, %195 ]
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %21) #7
  br label %203

203:                                              ; preds = %202, %193
  %.pn133.pn.pn = phi { ptr, i32 } [ %.pn133.pn, %202 ], [ %194, %193 ]
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %21) #7
  br label %275

204:                                              ; preds = %177
  %205 = call noundef i64 @_ZNKSt6vectorIN6Crypto4HashESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %89) #7
  %206 = getelementptr inbounds i8, ptr %97, i64 32
  %207 = call noundef i64 @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %206) #7
  %.not = icmp eq i64 %205, %207
  br i1 %.not, label %246, label %208

208:                                              ; preds = %204
  call void @llvm.lifetime.start.p0(i64 432, ptr nonnull %23) #7
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.Logging::LoggerMessage") align 8 %23, ptr noundef nonnull align 8 dereferenceable(40) %46, i32 noundef 1, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging7DEFAULTB5cxx11E)
          to label %209 unwind label %229

209:                                              ; preds = %208
  %210 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEN7DynexCN24DynexCNConnectionContextEEOT_S5_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %23, ptr noundef nonnull align 8 dereferenceable(144) %3)
          to label %211 unwind label %231

211:                                              ; preds = %209
  %212 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA55_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %210, ptr noundef nonnull align 1 dereferenceable(55) @.str.55)
          to label %213 unwind label %231

213:                                              ; preds = %211
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %24) #7
  invoke void @_ZN6Common8podToHexIN6Crypto4HashEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %24, ptr noundef nonnull align 1 dereferenceable(32) %17)
          to label %214 unwind label %233

214:                                              ; preds = %213
  %215 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEOT_S9_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %212, ptr noundef nonnull align 8 dereferenceable(32) %24)
          to label %216 unwind label %235

216:                                              ; preds = %214
  %217 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA28_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %215, ptr noundef nonnull align 1 dereferenceable(28) @.str.57)
          to label %218 unwind label %235

218:                                              ; preds = %216
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %25) #7
  %219 = call noundef i64 @_ZNKSt6vectorIN6Crypto4HashESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %89) #7
  store i64 %219, ptr %25, align 8, !tbaa !63
  %220 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEmEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %217, ptr noundef nonnull align 8 dereferenceable(8) %25)
          to label %221 unwind label %237

221:                                              ; preds = %218
  %222 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA50_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %220, ptr noundef nonnull align 1 dereferenceable(50) @.str.58)
          to label %223 unwind label %237

223:                                              ; preds = %221
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %26) #7
  %224 = call noundef i64 @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %206) #7
  store i64 %224, ptr %26, align 8, !tbaa !63
  %225 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEmEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %222, ptr noundef nonnull align 8 dereferenceable(8) %26)
          to label %226 unwind label %239

226:                                              ; preds = %223
  %227 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA22_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %225, ptr noundef nonnull align 1 dereferenceable(22) @.str.50)
          to label %228 unwind label %239

228:                                              ; preds = %226
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %24) #7
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %23) #7
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %23) #7
  store i32 6, ptr %86, align 8, !tbaa !39
  br label %268

229:                                              ; preds = %208
  %230 = landingpad { ptr, i32 }
          cleanup
  br label %245

231:                                              ; preds = %211, %209
  %232 = landingpad { ptr, i32 }
          cleanup
  br label %244

233:                                              ; preds = %213
  %234 = landingpad { ptr, i32 }
          cleanup
  br label %243

235:                                              ; preds = %216, %214
  %236 = landingpad { ptr, i32 }
          cleanup
  br label %242

237:                                              ; preds = %221, %218
  %238 = landingpad { ptr, i32 }
          cleanup
  br label %241

239:                                              ; preds = %226, %223
  %240 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #7
  br label %241

241:                                              ; preds = %239, %237
  %.pn127 = phi { ptr, i32 } [ %240, %239 ], [ %238, %237 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #7
  br label %242

242:                                              ; preds = %241, %235
  %.pn127.pn = phi { ptr, i32 } [ %.pn127, %241 ], [ %236, %235 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #7
  br label %243

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

244:                                              ; preds = %243, %231
  %.pn127.pn.pn.pn = phi { ptr, i32 } [ %.pn127.pn.pn, %243 ], [ %232, %231 ]
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %23) #7
  br label %245

245:                                              ; preds = %244, %229
  %.pn127.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn127.pn.pn.pn, %244 ], [ %230, %229 ]
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %23) #7
  br label %275

246:                                              ; preds = %204
  %.sroa.013.0.copyload = load ptr, ptr %19, align 8
  %247 = invoke ptr @_ZNSt13unordered_setIN6Crypto4HashESt4hashIS1_ESt8equal_toIS1_ESaIS1_EE5eraseENSt8__detail14_Node_iteratorIS1_Lb1ELb1EEE(ptr noundef nonnull align 8 dereferenceable(56) %88, ptr %.sroa.013.0.copyload)
          to label %248 unwind label %191

248:                                              ; preds = %246
  invoke void @_ZNSt6vectorIN6Crypto4HashESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %7, ptr noundef nonnull align 1 dereferenceable(32) %17)
          to label %249 unwind label %191

249:                                              ; preds = %248
  call void @llvm.lifetime.start.p0(i64 408, ptr nonnull %27) #7
  call void @_ZN7DynexCN22DynexCNProtocolHandler18parsed_block_entryC2Ev(ptr noundef nonnull align 8 dereferenceable(408) %27) #7
  %250 = invoke noundef nonnull align 8 dereferenceable(384) ptr @_ZN7DynexCN5BlockaSERKS0_(ptr noundef nonnull align 8 dereferenceable(384) %27, ptr noundef nonnull align 8 dereferenceable(384) %11)
          to label %251 unwind label %255

251:                                              ; preds = %249
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #7
  %252 = call ptr @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %206) #7
  store ptr %252, ptr %28, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #7
  %253 = call ptr @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %206) #7
  store ptr %253, ptr %29, align 8
  %254 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEEbRKNS_17__normal_iteratorIT_T0_EESH_(ptr noundef nonnull align 8 dereferenceable(8) %28, ptr noundef nonnull align 8 dereferenceable(8) %29) #7
  br i1 %254, label %.lr.ph, label %._crit_edge

._crit_edge:                                      ; preds = %259, %251
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #7
  invoke void @_ZNSt6vectorIN7DynexCN22DynexCNProtocolHandler18parsed_block_entryESaIS2_EE9push_backERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %8, ptr noundef nonnull align 8 dereferenceable(408) %27)
          to label %267 unwind label %255

255:                                              ; preds = %._crit_edge, %249
  %256 = landingpad { ptr, i32 }
          cleanup
  br label %274

.lr.ph:                                           ; preds = %251, %259
  %257 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %28) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %30) #7
  invoke void @_ZN6Common13asBinaryArrayERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::vector.33") align 8 %30, ptr noundef nonnull align 8 dereferenceable(32) %257)
          to label %258 unwind label %262

258:                                              ; preds = %.lr.ph
  invoke void @_ZNSt6vectorIS_IhSaIhEESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %90, ptr noundef nonnull align 8 dereferenceable(24) %30)
          to label %259 unwind label %264

259:                                              ; preds = %258
  call void @_ZNSt6vectorIhSaIhEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %30) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %30) #7
  %260 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %28) #7
  %261 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEEbRKNS_17__normal_iteratorIT_T0_EESH_(ptr noundef nonnull align 8 dereferenceable(8) %28, ptr noundef nonnull align 8 dereferenceable(8) %29) #7
  br i1 %261, label %.lr.ph, label %._crit_edge

262:                                              ; preds = %.lr.ph
  %263 = landingpad { ptr, i32 }
          cleanup
  br label %266

264:                                              ; preds = %258
  %265 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorIhSaIhEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %30) #7
  br label %266

266:                                              ; preds = %264, %262
  %.pn124 = phi { ptr, i32 } [ %265, %264 ], [ %263, %262 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %30) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #7
  br label %274

267:                                              ; preds = %._crit_edge
  call void @_ZN7DynexCN22DynexCNProtocolHandler18parsed_block_entryD2Ev(ptr noundef nonnull align 8 dereferenceable(408) %27) #7
  call void @llvm.lifetime.end.p0(i64 408, ptr nonnull %27) #7
  br label %268

268:                                              ; preds = %267, %228, %190
  %.0113 = phi i32 [ 1, %190 ], [ 1, %228 ], [ 0, %267 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #7
  br label %269

269:                                              ; preds = %268, %167
  %.1114 = phi i32 [ 1, %167 ], [ %.0113, %268 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #7
  br label %270

270:                                              ; preds = %269, %140, %114
  %.2115 = phi i32 [ 1, %114 ], [ %.1114, %269 ], [ 1, %140 ]
  call void @_ZNSt6vectorIhSaIhEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %12) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %12) #7
  call void @_ZN7DynexCN5BlockD2Ev(ptr noundef nonnull align 8 dereferenceable(384) %11) #7
  call void @llvm.lifetime.end.p0(i64 384, ptr nonnull %11) #7
  %cond3 = icmp eq i32 %.2115, 0
  br i1 %cond3, label %271, label %279

271:                                              ; preds = %270
  %272 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPN7DynexCN20block_complete_entryESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %9) #7
  %273 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN7DynexCN20block_complete_entryESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %9, ptr noundef nonnull align 8 dereferenceable(8) %10) #7
  br i1 %273, label %96, label %.loopexit

274:                                              ; preds = %266, %255
  %.pn124.pn = phi { ptr, i32 } [ %.pn124, %266 ], [ %256, %255 ]
  call void @_ZN7DynexCN22DynexCNProtocolHandler18parsed_block_entryD2Ev(ptr noundef nonnull align 8 dereferenceable(408) %27) #7
  call void @llvm.lifetime.end.p0(i64 408, ptr nonnull %27) #7
  br label %275

275:                                              ; preds = %274, %245, %203, %191
  %.pn133.pn.pn.pn = phi { ptr, i32 } [ %.pn133.pn.pn, %203 ], [ %.pn127.pn.pn.pn.pn, %245 ], [ %.pn124.pn, %274 ], [ %192, %191 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #7
  br label %276

276:                                              ; preds = %275, %174, %168
  %.pn138.pn = phi { ptr, i32 } [ %.pn138, %174 ], [ %.pn133.pn.pn.pn, %275 ], [ %169, %168 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #7
  br label %277

277:                                              ; preds = %276, %151, %126, %117
  %.pn141.pn.pn = phi { ptr, i32 } [ %.pn141.pn, %126 ], [ %.pn138.pn, %276 ], [ %.pn.pn.pn, %151 ], [ %118, %117 ]
  call void @_ZNSt6vectorIhSaIhEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %12) #7
  br label %278

278:                                              ; preds = %277, %115
  %.pn141.pn.pn.pn = phi { ptr, i32 } [ %.pn141.pn.pn, %277 ], [ %116, %115 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %12) #7
  call void @_ZN7DynexCN5BlockD2Ev(ptr noundef nonnull align 8 dereferenceable(384) %11) #7
  call void @llvm.lifetime.end.p0(i64 384, ptr nonnull %11) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #7
  br label %398

279:                                              ; preds = %270
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #7
  br label %397

.loopexit:                                        ; preds = %271, %81
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #7
  %280 = getelementptr inbounds i8, ptr %3, i64 72
  %281 = call noundef i64 @_ZNKSt13unordered_setIN6Crypto4HashESt4hashIS1_ESt8equal_toIS1_ESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(56) %280) #7
  %.not146 = icmp eq i64 %281, 0
  br i1 %.not146, label %302, label %282

282:                                              ; preds = %.loopexit
  call void @llvm.lifetime.start.p0(i64 432, ptr nonnull %31) #7
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.Logging::LoggerMessage") align 8 %31, ptr noundef nonnull align 8 dereferenceable(40) %46, i32 noundef 1, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging10BRIGHT_REDB5cxx11E)
          to label %283 unwind label %294

283:                                              ; preds = %282
  %284 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEN7DynexCN24DynexCNConnectionContextEEOT_S5_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %31, ptr noundef nonnull align 8 dereferenceable(144) %3)
          to label %285 unwind label %296

285:                                              ; preds = %283
  %286 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA72_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %284, ptr noundef nonnull align 1 dereferenceable(72) @.str.59)
          to label %287 unwind label %296

287:                                              ; preds = %285
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %32) #7
  %288 = call noundef i64 @_ZNKSt13unordered_setIN6Crypto4HashESt4hashIS1_ESt8equal_toIS1_ESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(56) %280) #7
  store i64 %288, ptr %32, align 8, !tbaa !63
  %289 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEmEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %286, ptr noundef nonnull align 8 dereferenceable(8) %32)
          to label %290 unwind label %298

290:                                              ; preds = %287
  %291 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA23_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %289, ptr noundef nonnull align 1 dereferenceable(23) @.str.60)
          to label %292 unwind label %298

292:                                              ; preds = %290
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #7
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %31) #7
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %31) #7
  %293 = getelementptr inbounds i8, ptr %3, i64 40
  store i32 6, ptr %293, align 8, !tbaa !39
  br label %397

294:                                              ; preds = %282
  %295 = landingpad { ptr, i32 }
          cleanup
  br label %301

296:                                              ; preds = %285, %283
  %297 = landingpad { ptr, i32 }
          cleanup
  br label %300

298:                                              ; preds = %290, %287
  %299 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #7
  br label %300

300:                                              ; preds = %298, %296
  %.pn160 = phi { ptr, i32 } [ %299, %298 ], [ %297, %296 ]
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %31) #7
  br label %301

301:                                              ; preds = %300, %294
  %.pn160.pn = phi { ptr, i32 } [ %.pn160, %300 ], [ %295, %294 ]
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %31) #7
  br label %398

302:                                              ; preds = %.loopexit
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %33) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %34) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %35) #7
  %303 = getelementptr inbounds i8, ptr %0, i64 104
  invoke void @_ZNSt10lock_guardISt15recursive_mutexEC2ERS0_(ptr noundef nonnull align 8 dereferenceable(8) %35, ptr noundef nonnull align 8 dereferenceable(40) %303)
          to label %304 unwind label %314

304:                                              ; preds = %302
  %305 = getelementptr inbounds i8, ptr %0, i64 64
  %306 = load ptr, ptr %305, align 8, !tbaa !64
  %307 = load ptr, ptr %306, align 8, !tbaa !65
  %308 = getelementptr inbounds i8, ptr %307, i64 112
  %309 = load ptr, ptr %308, align 8
  invoke void %309(ptr noundef nonnull align 8 dereferenceable(8) %306, ptr noundef nonnull align 4 dereferenceable(4) %33, ptr noundef nonnull align 1 dereferenceable(32) %34)
          to label %310 unwind label %316

310:                                              ; preds = %304
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %36) #7
  store i64 1, ptr %36, align 8, !tbaa !63
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %37) #7
  %311 = call ptr @_ZNSt6vectorIN6Crypto4HashESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %7) #7
  store ptr %311, ptr %37, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %38) #7
  %312 = call ptr @_ZNSt6vectorIN6Crypto4HashESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %7) #7
  store ptr %312, ptr %38, align 8
  %313 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN6Crypto4HashESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %37, ptr noundef nonnull align 8 dereferenceable(8) %38) #7
  br i1 %313, label %.lr.ph206, label %._crit_edge207

314:                                              ; preds = %302
  %315 = landingpad { ptr, i32 }
          cleanup
  br label %387

316:                                              ; preds = %304
  %317 = landingpad { ptr, i32 }
          cleanup
  br label %386

.lr.ph206:                                        ; preds = %310, %357
  %318 = call noundef nonnull align 1 dereferenceable(32) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPN6Crypto4HashESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %37) #7
  %319 = call noundef zeroext i1 @_ZN6CryptoeqERKNS_4HashES2_(ptr noundef nonnull align 1 dereferenceable(32) %34, ptr noundef nonnull align 1 dereferenceable(32) %318)
  br i1 %319, label %320, label %357

320:                                              ; preds = %.lr.ph206
  call void @llvm.lifetime.start.p0(i64 432, ptr nonnull %39) #7
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.Logging::LoggerMessage") align 8 %39, ptr noundef nonnull align 8 dereferenceable(40) %46, i32 noundef 4, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging7DEFAULTB5cxx11E)
          to label %321 unwind label %345

321:                                              ; preds = %320
  %322 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA54_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %39, ptr noundef nonnull align 1 dereferenceable(54) @.str.61)
          to label %323 unwind label %347

323:                                              ; preds = %321
  %324 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEmEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %322, ptr noundef nonnull align 8 dereferenceable(8) %36)
          to label %325 unwind label %347

325:                                              ; preds = %323
  %326 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA2_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %324, ptr noundef nonnull align 1 dereferenceable(2) @.str.62)
          to label %327 unwind label %347

327:                                              ; preds = %325
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %40) #7
  %328 = call noundef i64 @_ZNKSt6vectorIN7DynexCN20block_complete_entryESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %77) #7
  store i64 %328, ptr %40, align 8, !tbaa !63
  %329 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEmEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %326, ptr noundef nonnull align 8 dereferenceable(8) %40)
          to label %330 unwind label %349

330:                                              ; preds = %327
  %331 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA8_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %329, ptr noundef nonnull align 1 dereferenceable(8) @.str.63)
          to label %332 unwind label %349

332:                                              ; preds = %330
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #7
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %39) #7
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %39) #7
  %333 = load i64, ptr %36, align 8, !tbaa !63
  %334 = add i64 %333, -1
  store i64 %334, ptr %36, align 8, !tbaa !63
  %.not150201 = icmp eq i64 %333, 0
  br i1 %.not150201, label %._crit_edge207, label %.lr.ph203

.lr.ph203:                                        ; preds = %332, %342
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %42) #7
  %335 = call ptr @_ZNSt6vectorIN7DynexCN20block_complete_entryESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %77) #7
  store ptr %335, ptr %42, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKN7DynexCN20block_complete_entryESt6vectorIS2_SaIS2_EEEC2IPS2_vEERKNS0_IT_S7_EE(ptr noundef nonnull align 8 dereferenceable(8) %41, ptr noundef nonnull align 8 dereferenceable(8) %42) #7
  %336 = load ptr, ptr %41, align 8
  %337 = invoke ptr @_ZNSt6vectorIN7DynexCN20block_complete_entryESaIS1_EE5eraseEN9__gnu_cxx17__normal_iteratorIPKS1_S3_EE(ptr noundef nonnull align 8 dereferenceable(24) %77, ptr %336)
          to label %338 unwind label %353

338:                                              ; preds = %.lr.ph203
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %42) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %44) #7
  %339 = call ptr @_ZNSt6vectorIN7DynexCN22DynexCNProtocolHandler18parsed_block_entryESaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %8) #7
  store ptr %339, ptr %44, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKN7DynexCN22DynexCNProtocolHandler18parsed_block_entryESt6vectorIS3_SaIS3_EEEC2IPS3_vEERKNS0_IT_S8_EE(ptr noundef nonnull align 8 dereferenceable(8) %43, ptr noundef nonnull align 8 dereferenceable(8) %44) #7
  %340 = load ptr, ptr %43, align 8
  %341 = invoke ptr @_ZNSt6vectorIN7DynexCN22DynexCNProtocolHandler18parsed_block_entryESaIS2_EE5eraseEN9__gnu_cxx17__normal_iteratorIPKS2_S4_EE(ptr noundef nonnull align 8 dereferenceable(24) %8, ptr %340)
          to label %342 unwind label %355

342:                                              ; preds = %338
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %44) #7
  %343 = load i64, ptr %36, align 8, !tbaa !63
  %344 = add i64 %343, -1
  store i64 %344, ptr %36, align 8, !tbaa !63
  %.not150 = icmp eq i64 %343, 0
  br i1 %.not150, label %._crit_edge207, label %.lr.ph203, !llvm.loop !67

345:                                              ; preds = %320
  %346 = landingpad { ptr, i32 }
          cleanup
  br label %352

347:                                              ; preds = %325, %323, %321
  %348 = landingpad { ptr, i32 }
          cleanup
  br label %351

349:                                              ; preds = %330, %327
  %350 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #7
  br label %351

351:                                              ; preds = %349, %347
  %.pn147 = phi { ptr, i32 } [ %350, %349 ], [ %348, %347 ]
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %39) #7
  br label %352

352:                                              ; preds = %351, %345
  %.pn147.pn = phi { ptr, i32 } [ %.pn147, %351 ], [ %346, %345 ]
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %39) #7
  br label %362

353:                                              ; preds = %.lr.ph203
  %354 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %42) #7
  br label %362

355:                                              ; preds = %338
  %356 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %44) #7
  br label %362

357:                                              ; preds = %.lr.ph206
  %358 = load i64, ptr %36, align 8, !tbaa !63
  %359 = add i64 %358, 1
  store i64 %359, ptr %36, align 8, !tbaa !63
  %360 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPN6Crypto4HashESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %37) #7
  %361 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN6Crypto4HashESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %37, ptr noundef nonnull align 8 dereferenceable(8) %38) #7
  br i1 %361, label %.lr.ph206, label %._crit_edge207

362:                                              ; preds = %355, %353, %352
  %.pn154 = phi { ptr, i32 } [ %356, %355 ], [ %354, %353 ], [ %.pn147.pn, %352 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #7
  br label %385

._crit_edge207:                                   ; preds = %357, %342, %332, %310
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #7
  %363 = invoke noundef i32 @_ZN7DynexCN22DynexCNProtocolHandler14processObjectsERNS_24DynexCNConnectionContextERKSt6vectorINS0_18parsed_block_entryESaIS4_EE(ptr noundef nonnull align 8 dereferenceable(312) %0, ptr noundef nonnull align 8 dereferenceable(144) %3, ptr noundef nonnull align 8 dereferenceable(24) %8)
          to label %364 unwind label %365

364:                                              ; preds = %._crit_edge207
  %.not151 = icmp eq i32 %363, 0
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #7
  call void @_ZNSt10lock_guardISt15recursive_mutexED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %35) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #7
  br i1 %.not151, label %367, label %395

365:                                              ; preds = %._crit_edge207
  %366 = landingpad { ptr, i32 }
          cleanup
  br label %385

367:                                              ; preds = %364
  %368 = load ptr, ptr %305, align 8, !tbaa !64
  %369 = load ptr, ptr %368, align 8, !tbaa !65
  %370 = getelementptr inbounds i8, ptr %369, i64 112
  %371 = load ptr, ptr %370, align 8
  invoke void %371(ptr noundef nonnull align 8 dereferenceable(8) %368, ptr noundef nonnull align 4 dereferenceable(4) %33, ptr noundef nonnull align 1 dereferenceable(32) %34)
          to label %372 unwind label %388

372:                                              ; preds = %367
  call void @llvm.lifetime.start.p0(i64 432, ptr nonnull %45) #7
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.Logging::LoggerMessage") align 8 %45, ptr noundef nonnull align 8 dereferenceable(40) %46, i32 noundef 4, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging12BRIGHT_GREENB5cxx11E)
          to label %373 unwind label %390

373:                                              ; preds = %372
  %374 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA40_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %45, ptr noundef nonnull align 1 dereferenceable(40) @.str.64)
          to label %375 unwind label %392

375:                                              ; preds = %373
  %376 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEjEOT_S3_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %374, ptr noundef nonnull align 4 dereferenceable(4) %33)
          to label %377 unwind label %392

377:                                              ; preds = %375
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %45) #7
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %45) #7
  %378 = getelementptr inbounds i8, ptr %0, i64 97
  %379 = call noundef zeroext i1 @_ZNKSt6atomicIbEcvbEv(ptr noundef nonnull align 1 dereferenceable(1) %378) #7
  %380 = getelementptr inbounds i8, ptr %3, i64 40
  %381 = load i32, ptr %380, align 8
  %382 = icmp ne i32 %381, 1
  %or.cond.not = select i1 %379, i1 true, i1 %382
  br i1 %or.cond.not, label %395, label %383

383:                                              ; preds = %377
  %384 = invoke noundef zeroext i1 @_ZN7DynexCN22DynexCNProtocolHandler23request_missing_objectsERNS_24DynexCNConnectionContextEb(ptr noundef nonnull align 8 dereferenceable(312) %0, ptr noundef nonnull align 8 dereferenceable(144) %3, i1 noundef zeroext true)
          to label %395 unwind label %388

385:                                              ; preds = %365, %362
  %.pn154.pn = phi { ptr, i32 } [ %.pn154, %362 ], [ %366, %365 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #7
  br label %386

386:                                              ; preds = %385, %316
  %.pn154.pn.pn = phi { ptr, i32 } [ %.pn154.pn, %385 ], [ %317, %316 ]
  call void @_ZNSt10lock_guardISt15recursive_mutexED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %35) #7
  br label %387

387:                                              ; preds = %386, %314
  %.pn154.pn.pn.pn = phi { ptr, i32 } [ %.pn154.pn.pn, %386 ], [ %315, %314 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #7
  br label %396

388:                                              ; preds = %383, %367
  %389 = landingpad { ptr, i32 }
          cleanup
  br label %396

390:                                              ; preds = %372
  %391 = landingpad { ptr, i32 }
          cleanup
  br label %394

392:                                              ; preds = %375, %373
  %393 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %45) #7
  br label %394

394:                                              ; preds = %392, %390
  %.pn152 = phi { ptr, i32 } [ %393, %392 ], [ %391, %390 ]
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %45) #7
  br label %396

395:                                              ; preds = %377, %383, %364
  %.6 = phi i32 [ %363, %364 ], [ 1, %383 ], [ 1, %377 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %34) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %33) #7
  br label %397

396:                                              ; preds = %394, %388, %387
  %.pn154.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn154.pn.pn.pn, %387 ], [ %389, %388 ], [ %.pn152, %394 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %34) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %33) #7
  br label %398

397:                                              ; preds = %279, %395, %292
  %.7 = phi i32 [ 1, %292 ], [ %.6, %395 ], [ 1, %279 ]
  call void @_ZNSt6vectorIN7DynexCN22DynexCNProtocolHandler18parsed_block_entryESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %8) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %8) #7
  call void @_ZNSt6vectorIN6Crypto4HashESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %7) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %7) #7
  br label %400

398:                                              ; preds = %396, %301, %278, %94
  %.pn160.pn.pn = phi { ptr, i32 } [ %.pn160.pn, %301 ], [ %.pn154.pn.pn.pn.pn, %396 ], [ %.pn141.pn.pn.pn, %278 ], [ %95, %94 ]
  call void @_ZNSt6vectorIN7DynexCN22DynexCNProtocolHandler18parsed_block_entryESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %8) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %8) #7
  br label %399

399:                                              ; preds = %398, %92
  %.pn160.pn.pn.pn = phi { ptr, i32 } [ %.pn160.pn.pn, %398 ], [ %93, %92 ]
  call void @_ZNSt6vectorIN6Crypto4HashESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %7) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %7) #7
  br label %401

400:                                              ; preds = %397, %68
  %.8 = phi i32 [ 1, %68 ], [ %.7, %397 ]
  ret i32 %.8

401:                                              ; preds = %399, %72, %70
  %.pn165 = phi { ptr, i32 } [ %73, %72 ], [ %.pn160.pn.pn.pn, %399 ], [ %71, %70 ]
  resume { ptr, i32 } %.pn165
}

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

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

declare void @_ZN6Common13asBinaryArrayERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.std::vector.33") align 8, ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #3

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(56) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPN7DynexCN20block_complete_entryESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8)) 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 #6 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN7DynexCN15fromBinaryArrayINS_5BlockEEEbRT_RKSt6vectorIhSaIhEE(ptr noundef nonnull align 8 dereferenceable(384), ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #5

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

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

declare void @_ZN7DynexCN14get_block_hashERKNS_5BlockE(ptr dead_on_unwind writable sret(%"struct.Crypto::Hash") align 1, ptr noundef nonnull align 8 dereferenceable(384)) local_unnamed_addr #3

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZN7DynexCN22DynexCNProtocolHandler14processObjectsERNS_24DynexCNConnectionContextERKSt6vectorINS0_18parsed_block_entryESaIS4_EE(ptr noundef nonnull align 8 dereferenceable(312), ptr noundef nonnull align 8 dereferenceable(144), ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #5 align 2

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN7DynexCN22DynexCNProtocolHandler23request_missing_objectsERNS_24DynexCNConnectionContextEb(ptr noundef nonnull align 8 dereferenceable(312), ptr noundef nonnull align 8 dereferenceable(144), i1 noundef zeroext) local_unnamed_addr #5 align 2

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

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { 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 #3 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { 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 = { 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 #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, !10, i64 132}
!6 = !{!"_ZTSN7DynexCN24DynexCNConnectionContextE", !7, i64 0, !9, i64 1, !10, i64 20, !10, i64 24, !11, i64 28, !12, i64 32, !13, i64 40, !14, i64 48, !20, i64 72, !10, i64 128, !10, i64 132, !10, i64 136, !10, i64 140}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!"_ZTSN6Crypto4UuidE", !7, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{!"bool", !7, i64 0}
!12 = !{!"long", !7, i64 0}
!13 = !{!"_ZTSN7DynexCN24DynexCNConnectionContext5stateE", !7, i64 0}
!14 = !{!"_ZTSNSt7__cxx114listIN6Crypto4HashESaIS2_EEE", !15, i64 0}
!15 = !{!"_ZTSNSt7__cxx1110_List_baseIN6Crypto4HashESaIS2_EEE", !16, i64 0}
!16 = !{!"_ZTSNSt7__cxx1110_List_baseIN6Crypto4HashESaIS2_EE10_List_implE", !17, i64 0}
!17 = !{!"_ZTSNSt8__detail17_List_node_headerE", !18, i64 0, !12, i64 16}
!18 = !{!"_ZTSNSt8__detail15_List_node_baseE", !19, i64 0, !19, i64 8}
!19 = !{!"any pointer", !7, i64 0}
!20 = !{!"_ZTSSt13unordered_setIN6Crypto4HashESt4hashIS1_ESt8equal_toIS1_ESaIS1_EE", !21, i64 0}
!21 = !{!"_ZTSSt10_HashtableIN6Crypto4HashES1_SaIS1_ENSt8__detail9_IdentityESt8equal_toIS1_ESt4hashIS1_ENS3_18_Mod_range_hashingENS3_20_Default_ranged_hashENS3_20_Prime_rehash_policyENS3_17_Hashtable_traitsILb1ELb1ELb1EEEE", !19, i64 0, !12, i64 8, !22, i64 16, !12, i64 24, !23, i64 32, !19, i64 48}
!22 = !{!"_ZTSNSt8__detail15_Hash_node_baseE", !19, i64 0}
!23 = !{!"_ZTSNSt8__detail20_Prime_rehash_policyE", !24, i64 0, !12, i64 8}
!24 = !{!"float", !7, i64 0}
!25 = !{!26, !10, i64 72}
!26 = !{!"_ZTSN7DynexCN35NOTIFY_RESPONSE_GET_OBJECTS_requestE", !27, i64 0, !31, i64 24, !35, i64 48, !10, i64 72}
!27 = !{!"_ZTSSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !28, i64 0}
!28 = !{!"_ZTSSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !29, i64 0}
!29 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_Vector_implE", !30, i64 0}
!30 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_Vector_impl_dataE", !19, i64 0, !19, i64 8, !19, i64 16}
!31 = !{!"_ZTSSt6vectorIN7DynexCN20block_complete_entryESaIS1_EE", !32, i64 0}
!32 = !{!"_ZTSSt12_Vector_baseIN7DynexCN20block_complete_entryESaIS1_EE", !33, i64 0}
!33 = !{!"_ZTSNSt12_Vector_baseIN7DynexCN20block_complete_entryESaIS1_EE12_Vector_implE", !34, i64 0}
!34 = !{!"_ZTSNSt12_Vector_baseIN7DynexCN20block_complete_entryESaIS1_EE17_Vector_impl_dataE", !19, i64 0, !19, i64 8, !19, i64 16}
!35 = !{!"_ZTSSt6vectorIN6Crypto4HashESaIS1_EE", !36, i64 0}
!36 = !{!"_ZTSSt12_Vector_baseIN6Crypto4HashESaIS1_EE", !37, i64 0}
!37 = !{!"_ZTSNSt12_Vector_baseIN6Crypto4HashESaIS1_EE12_Vector_implE", !38, i64 0}
!38 = !{!"_ZTSNSt12_Vector_baseIN6Crypto4HashESaIS1_EE17_Vector_impl_dataE", !19, i64 0, !19, i64 8, !19, i64 16}
!39 = !{!6, !13, i64 40}
!40 = !{!6, !10, i64 128}
!41 = !{!42, !19, i64 72}
!42 = !{!"_ZTSN7DynexCN22DynexCNProtocolHandlerE", !43, i64 0, !44, i64 8, !45, i64 16, !19, i64 56, !19, i64 64, !19, i64 72, !48, i64 80, !19, i64 88, !50, i64 96, !50, i64 97, !52, i64 104, !54, i64 144, !10, i64 184, !54, i64 192, !10, i64 232, !56, i64 240, !58, i64 248}
!43 = !{!"_ZTSN7DynexCN13i_cn_protocolE"}
!44 = !{!"_ZTSN7DynexCN21IDynexCNProtocolQueryE"}
!45 = !{!"_ZTSN7Logging9LoggerRefE", !19, i64 0, !46, i64 8}
!46 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !47, i64 0, !12, i64 8, !7, i64 16}
!47 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !19, i64 0}
!48 = !{!"_ZTSN7DynexCN17p2p_endpoint_stubE", !49, i64 0}
!49 = !{!"_ZTSN7DynexCN12IP2pEndpointE"}
!50 = !{!"_ZTSSt6atomicIbE", !51, i64 0}
!51 = !{!"_ZTSSt13__atomic_baseIbE", !11, i64 0}
!52 = !{!"_ZTSSt15recursive_mutex", !53, i64 0}
!53 = !{!"_ZTSSt22__recursive_mutex_base", !7, i64 0}
!54 = !{!"_ZTSSt5mutex", !55, i64 0}
!55 = !{!"_ZTSSt12__mutex_base", !7, i64 0}
!56 = !{!"_ZTSSt6atomicImE", !57, i64 0}
!57 = !{!"_ZTSSt13__atomic_baseImE", !12, i64 0}
!58 = !{!"_ZTSN5Tools15ObserverManagerIN7DynexCN24IDynexCNProtocolObserverEEE", !59, i64 0, !54, i64 24}
!59 = !{!"_ZTSSt6vectorIPN7DynexCN24IDynexCNProtocolObserverESaIS2_EE", !60, i64 0}
!60 = !{!"_ZTSSt12_Vector_baseIPN7DynexCN24IDynexCNProtocolObserverESaIS2_EE", !61, i64 0}
!61 = !{!"_ZTSNSt12_Vector_baseIPN7DynexCN24IDynexCNProtocolObserverESaIS2_EE12_Vector_implE", !62, i64 0}
!62 = !{!"_ZTSNSt12_Vector_baseIPN7DynexCN24IDynexCNProtocolObserverESaIS2_EE17_Vector_impl_dataE", !19, i64 0, !19, i64 8, !19, i64 16}
!63 = !{!12, !12, i64 0}
!64 = !{!42, !19, i64 64}
!65 = !{!66, !66, i64 0}
!66 = !{!"vtable pointer", !8, i64 0}
!67 = distinct !{!67, !68}
!68 = !{!"llvm.loop.mustprogress"}


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