; LLVM IR from UBIC-repo/core :: Network (NetworkMessageHandler)

; 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.Log = type { i8, i8, ptr, %"class.std::basic_filebuf" }
%"class.std::basic_filebuf" = type { %"class.std::basic_streambuf", %union.pthread_mutex_t, %"class.std::__basic_file", i32, %struct.__mbstate_t, %struct.__mbstate_t, %struct.__mbstate_t, ptr, i64, i8, i8, i8, i8, ptr, ptr, i8, ptr, ptr, i64, ptr, ptr }
%"class.std::basic_streambuf" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::locale" }
%"class.std::locale" = type { ptr }
%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::__basic_file" = type <{ ptr, i8, [7 x i8] }>
%struct.__mbstate_t = type { i32, %union.anon.4 }
%union.anon.4 = type { i32 }
%"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.CDataStream = type <{ %"class.std::vector", i32, i32, i32, [4 x i8] }>
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<char, zero_after_free_allocator<char>>::_Vector_impl" }
%"struct.std::_Vector_base<char, zero_after_free_allocator<char>>::_Vector_impl" = type { %"struct.std::_Vector_base<char, zero_after_free_allocator<char>>::_Vector_impl_data" }
%"struct.std::_Vector_base<char, zero_after_free_allocator<char>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%struct.AskForBlocks = type { i8, i64, i64 }
%"class.std::shared_ptr" = type { %"class.std::__shared_ptr" }
%"class.std::__shared_ptr" = type { ptr, %"class.std::__shared_count" }
%"class.std::__shared_count" = type { ptr }
%struct.AskForBlock = type { i8, i64, %"class.std::vector.5" }
%"class.std::vector.5" = type { %"struct.std::_Vector_base.6" }
%"struct.std::_Vector_base.6" = 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 }
%struct.TransmitTransactions = type { i8, %"class.std::vector.10" }
%"class.std::vector.10" = type { %"struct.std::_Vector_base.11" }
%"struct.std::_Vector_base.11" = type { %"struct.std::_Vector_base<TransactionForNetwork, std::allocator<TransactionForNetwork>>::_Vector_impl" }
%"struct.std::_Vector_base<TransactionForNetwork, std::allocator<TransactionForNetwork>>::_Vector_impl" = type { %"struct.std::_Vector_base<TransactionForNetwork, std::allocator<TransactionForNetwork>>::_Vector_impl_data" }
%"struct.std::_Vector_base<TransactionForNetwork, std::allocator<TransactionForNetwork>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%struct.TransmitBlock = type { i8, %"class.std::vector.5" }
%struct.TransmitBlocks = type { i8, %"class.std::vector.15" }
%"class.std::vector.15" = type { %"struct.std::_Vector_base.16" }
%"struct.std::_Vector_base.16" = 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 }
%struct.TransmitPeers = type { i8, %"class.std::vector.20" }
%"class.std::vector.20" = type { %"struct.std::_Vector_base.21" }
%"struct.std::_Vector_base.21" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%struct.TransmitBlockchainHeight = type { i8, i32, %"class.std::vector.5" }
%struct.TransmitBestBlockHeader = type { i8, %class.BlockHeader }
%class.BlockHeader = type { i8, i8, %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", i32, i32, %struct.UAmount, %struct.UAmount, %struct.UAmount32, %struct.UAmount32, %struct.UAmount32, %"class.std::vector.36", %"class.std::vector.5", %"class.std::vector.5" }
%struct.UAmount = type { %"class.std::map.25" }
%"class.std::map.25" = type { %"class.std::_Rb_tree.26" }
%"class.std::_Rb_tree.26" = type { %"struct.std::_Rb_tree<unsigned char, std::pair<const unsigned char, unsigned long>, std::_Select1st<std::pair<const unsigned char, unsigned long>>, std::less<unsigned char>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<unsigned char, std::pair<const unsigned char, unsigned long>, std::_Select1st<std::pair<const unsigned char, unsigned long>>, std::less<unsigned char>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.std::_Rb_tree_header" = type { %"struct.std::_Rb_tree_node_base", i64 }
%"struct.std::_Rb_tree_node_base" = type { i32, ptr, ptr, ptr }
%struct.UAmount32 = type { %"class.std::map.31" }
%"class.std::map.31" = type { %"class.std::_Rb_tree.32" }
%"class.std::_Rb_tree.32" = type { %"struct.std::_Rb_tree<unsigned char, std::pair<const unsigned char, unsigned int>, std::_Select1st<std::pair<const unsigned char, unsigned int>>, std::less<unsigned char>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<unsigned char, std::pair<const unsigned char, unsigned int>, std::_Select1st<std::pair<const unsigned char, unsigned int>>, std::less<unsigned char>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::vector.36" = type { %"struct.std::_Vector_base.37" }
%"struct.std::_Vector_base.37" = type { %"struct.std::_Vector_base<Transaction, std::allocator<Transaction>>::_Vector_impl" }
%"struct.std::_Vector_base<Transaction, std::allocator<Transaction>>::_Vector_impl" = type { %"struct.std::_Vector_base<Transaction, std::allocator<Transaction>>::_Vector_impl_data" }
%"struct.std::_Vector_base<Transaction, std::allocator<Transaction>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%struct.TransmitVersion = type { i8, i16 }
%struct.TransmitStatus = type { i8 }
%struct.TransmitDonationAddress = type { i8, %"class.std::__cxx11::basic_string" }

@.str.5 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [60 x i8], align 1
@_ZTISt9exception = external constant ptr
@.str.8 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [51 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 nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #0

declare i32 @__gxx_personality_v0(...)

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

declare ptr @__cxa_begin_catch(ptr)

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

declare void @__cxa_end_catch()

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN21NetworkMessageHandler20handleNetworkMessageEP14NetworkMessageSt10shared_ptrI13PeerInterfaceE(ptr noundef %0, ptr noundef %1) #3 align 2 personality ptr @__gxx_personality_v0 {
  %3 = alloca ptr, align 8
  %4 = alloca ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca %class.Log, align 8
  %7 = alloca ptr, align 8
  %8 = alloca i32, align 4
  %9 = alloca %class.Log, align 8
  %10 = alloca %"class.std::__cxx11::basic_string", align 8
  %11 = alloca i32, align 4
  %12 = alloca i8, align 1
  %13 = alloca %class.CDataStream, align 8
  %14 = alloca %class.Log, align 8
  %15 = alloca %struct.AskForBlocks, align 8
  %16 = alloca ptr, align 8
  %17 = alloca %class.Log, align 8
  %18 = alloca %"class.std::__cxx11::basic_string", align 8
  %19 = alloca %"class.std::__cxx11::basic_string", align 8
  %20 = alloca %struct.AskForBlocks, align 8
  %21 = alloca %"class.std::shared_ptr", align 8
  %22 = alloca %struct.AskForBlock, align 8
  %23 = alloca ptr, align 8
  %24 = alloca %class.Log, align 8
  %25 = alloca %"class.std::__cxx11::basic_string", align 8
  %26 = alloca %"class.std::__cxx11::basic_string", align 8
  %27 = alloca %struct.AskForBlock, align 8
  %28 = alloca %"class.std::shared_ptr", align 8
  %29 = alloca ptr, align 8
  %30 = alloca ptr, align 8
  %31 = alloca %class.Log, align 8
  %32 = alloca %"class.std::__cxx11::basic_string", align 8
  %33 = alloca %"class.std::__cxx11::basic_string", align 8
  %34 = alloca %"class.std::shared_ptr", align 8
  %35 = alloca %"class.std::shared_ptr", align 8
  %36 = alloca %"class.std::shared_ptr", align 8
  %37 = alloca %"class.std::shared_ptr", align 8
  %38 = alloca %"class.std::shared_ptr", align 8
  %39 = alloca %"class.std::shared_ptr", align 8
  %40 = alloca %struct.TransmitTransactions, align 8
  %41 = alloca ptr, align 8
  %42 = alloca %class.Log, align 8
  %43 = alloca %"class.std::__cxx11::basic_string", align 8
  %44 = alloca %"class.std::__cxx11::basic_string", align 8
  %45 = alloca %struct.TransmitTransactions, align 8
  %46 = alloca %"class.std::shared_ptr", align 8
  %47 = alloca %struct.TransmitBlock, align 8
  %48 = alloca ptr, align 8
  %49 = alloca %class.Log, align 8
  %50 = alloca %"class.std::__cxx11::basic_string", align 8
  %51 = alloca %"class.std::__cxx11::basic_string", align 8
  %52 = alloca %struct.TransmitBlock, align 8
  %53 = alloca %"class.std::shared_ptr", align 8
  %54 = alloca %struct.TransmitBlocks, align 8
  %55 = alloca ptr, align 8
  %56 = alloca %class.Log, align 8
  %57 = alloca %"class.std::__cxx11::basic_string", align 8
  %58 = alloca %"class.std::__cxx11::basic_string", align 8
  %59 = alloca %struct.TransmitBlocks, align 8
  %60 = alloca %"class.std::shared_ptr", align 8
  %61 = alloca %struct.TransmitPeers, align 8
  %62 = alloca ptr, align 8
  %63 = alloca %class.Log, align 8
  %64 = alloca %"class.std::__cxx11::basic_string", align 8
  %65 = alloca %"class.std::__cxx11::basic_string", align 8
  %66 = alloca %struct.TransmitPeers, align 8
  %67 = alloca %"class.std::shared_ptr", align 8
  %68 = alloca %struct.TransmitBlockchainHeight, align 8
  %69 = alloca ptr, align 8
  %70 = alloca %class.Log, align 8
  %71 = alloca %"class.std::__cxx11::basic_string", align 8
  %72 = alloca %"class.std::__cxx11::basic_string", align 8
  %73 = alloca %struct.TransmitBlockchainHeight, align 8
  %74 = alloca %"class.std::shared_ptr", align 8
  %75 = alloca %struct.TransmitBestBlockHeader, align 8
  %76 = alloca ptr, align 8
  %77 = alloca %class.Log, align 8
  %78 = alloca %"class.std::__cxx11::basic_string", align 8
  %79 = alloca %"class.std::__cxx11::basic_string", align 8
  %80 = alloca %struct.TransmitBestBlockHeader, align 8
  %81 = alloca %"class.std::shared_ptr", align 8
  %82 = alloca %struct.TransmitVersion, align 2
  %83 = alloca ptr, align 8
  %84 = alloca %class.Log, align 8
  %85 = alloca %"class.std::__cxx11::basic_string", align 8
  %86 = alloca %"class.std::__cxx11::basic_string", align 8
  %87 = alloca %struct.TransmitVersion, align 2
  %88 = alloca %"class.std::shared_ptr", align 8
  %89 = alloca %struct.TransmitStatus, align 1
  %90 = alloca ptr, align 8
  %91 = alloca %class.Log, align 8
  %92 = alloca %"class.std::__cxx11::basic_string", align 8
  %93 = alloca %"class.std::__cxx11::basic_string", align 8
  %94 = alloca %struct.TransmitStatus, align 1
  %95 = alloca %"class.std::shared_ptr", align 8
  %96 = alloca %"class.std::shared_ptr", align 8
  %97 = alloca %struct.TransmitDonationAddress, align 8
  %98 = alloca ptr, align 8
  %99 = alloca %class.Log, align 8
  %100 = alloca %"class.std::__cxx11::basic_string", align 8
  %101 = alloca %"class.std::__cxx11::basic_string", align 8
  %102 = alloca %struct.TransmitDonationAddress, align 8
  %103 = alloca %"class.std::shared_ptr", align 8
  %104 = alloca %class.Log, align 8
  store ptr %0, ptr %3, align 8, !tbaa !5
  store ptr %1, ptr %4, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %5) #13
  %105 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZN7BanList8InstanceEv()
  store ptr %105, ptr %5, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 256, ptr %6) #13
  call void @_ZN3LogC1Eh(ptr noundef nonnull align 8 dereferenceable(256) %6, i8 noundef zeroext 0)
  %106 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsEPKc(ptr noundef nonnull align 8 dereferenceable(256) %6, ptr noundef @.str.5)
          to label %107 unwind label %124

107:                                              ; preds = %2
  call void @_ZN3LogD1Ev(ptr noundef nonnull align 8 dereferenceable(256) %6) #13
  call void @llvm.lifetime.end.p0(i64 256, ptr %6) #13
  %108 = load ptr, ptr %3, align 8, !tbaa !5
  %109 = call noundef i64 @_ZNK14NetworkMessage11body_lengthEv(ptr noundef nonnull align 8 dereferenceable(16) %108)
  %110 = icmp eq i64 %109, 0
  br i1 %110, label %111, label %136

111:                                              ; preds = %107
  call void @llvm.lifetime.start.p0(i64 256, ptr %9) #13
  call void @_ZN3LogC1Eh(ptr noundef nonnull align 8 dereferenceable(256) %9, i8 noundef zeroext 3)
  %112 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsEPKc(ptr noundef nonnull align 8 dereferenceable(256) %9, ptr noundef @.str.6)
          to label %113 unwind label %128

113:                                              ; preds = %111
  call void @_ZN3LogD1Ev(ptr noundef nonnull align 8 dereferenceable(256) %9) #13
  call void @llvm.lifetime.end.p0(i64 256, ptr %9) #13
  %114 = load ptr, ptr %5, align 8, !tbaa !5
  %115 = call noundef ptr @_ZNKSt19__shared_ptr_accessI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1) #13
  %116 = load ptr, ptr %115, align 8, !tbaa !9
  %117 = getelementptr inbounds ptr, ptr %116, i64 0
  %118 = load ptr, ptr %117, align 8
  call void %118(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %10, ptr noundef nonnull align 8 dereferenceable(8) %115)
  invoke void @_ZN7BanList9appendBanENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEt(ptr noundef nonnull align 8 dereferenceable(48) %114, ptr noundef %10, i16 noundef zeroext 34)
          to label %119 unwind label %132

119:                                              ; preds = %113
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #13
  %120 = load ptr, ptr %3, align 8, !tbaa !5
  %121 = icmp eq ptr %120, null
  br i1 %121, label %123, label %122

122:                                              ; preds = %119
  call void @_ZN14NetworkMessageD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %120) #13
  call void @_ZdlPvm(ptr noundef %120, i64 noundef 16) #14
  br label %123

123:                                              ; preds = %122, %119
  store i32 1, ptr %11, align 4
  br label %1207

124:                                              ; preds = %2
  %125 = landingpad { ptr, i32 }
          cleanup
  %126 = extractvalue { ptr, i32 } %125, 0
  store ptr %126, ptr %7, align 8
  %127 = extractvalue { ptr, i32 } %125, 1
  store i32 %127, ptr %8, align 4
  call void @_ZN3LogD1Ev(ptr noundef nonnull align 8 dereferenceable(256) %6) #13
  call void @llvm.lifetime.end.p0(i64 256, ptr %6) #13
  br label %1211

128:                                              ; preds = %111
  %129 = landingpad { ptr, i32 }
          cleanup
  %130 = extractvalue { ptr, i32 } %129, 0
  store ptr %130, ptr %7, align 8
  %131 = extractvalue { ptr, i32 } %129, 1
  store i32 %131, ptr %8, align 4
  call void @_ZN3LogD1Ev(ptr noundef nonnull align 8 dereferenceable(256) %9) #13
  call void @llvm.lifetime.end.p0(i64 256, ptr %9) #13
  br label %1211

132:                                              ; preds = %113
  %133 = landingpad { ptr, i32 }
          cleanup
  %134 = extractvalue { ptr, i32 } %133, 0
  store ptr %134, ptr %7, align 8
  %135 = extractvalue { ptr, i32 } %133, 1
  store i32 %135, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #13
  br label %1211

136:                                              ; preds = %107
  call void @llvm.lifetime.start.p0(i64 1, ptr %12) #13
  %137 = load ptr, ptr %3, align 8, !tbaa !5
  %138 = call noundef ptr @_ZN14NetworkMessage4bodyEv(ptr noundef nonnull align 8 dereferenceable(16) %137)
  %139 = getelementptr inbounds i8, ptr %138, i64 0
  %140 = load i8, ptr %139, align 1, !tbaa !11
  store i8 %140, ptr %12, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 40, ptr %13) #13
  call void @_ZN11CDataStreamC2Eii(ptr noundef nonnull align 8 dereferenceable(36) %13, i32 noundef 2, i32 noundef 1)
  %141 = load ptr, ptr %3, align 8, !tbaa !5
  %142 = invoke noundef ptr @_ZN14NetworkMessage4bodyEv(ptr noundef nonnull align 8 dereferenceable(16) %141)
          to label %143 unwind label %157

143:                                              ; preds = %136
  %144 = load ptr, ptr %3, align 8, !tbaa !5
  %145 = invoke noundef i64 @_ZNK14NetworkMessage11body_lengthEv(ptr noundef nonnull align 8 dereferenceable(16) %144)
          to label %146 unwind label %157

146:                                              ; preds = %143
  invoke void @_ZN11CDataStream5writeEPKcm(ptr noundef nonnull align 8 dereferenceable(36) %13, ptr noundef %142, i64 noundef %145)
          to label %147 unwind label %157

147:                                              ; preds = %146
  call void @llvm.lifetime.start.p0(i64 256, ptr %14) #13
  invoke void @_ZN3LogC1Eh(ptr noundef nonnull align 8 dereferenceable(256) %14, i8 noundef zeroext 0)
          to label %148 unwind label %161

148:                                              ; preds = %147
  %149 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsEPKc(ptr noundef nonnull align 8 dereferenceable(256) %14, ptr noundef @.str.7)
          to label %150 unwind label %165

150:                                              ; preds = %148
  %151 = load i8, ptr %12, align 1, !tbaa !11
  %152 = zext i8 %151 to i32
  %153 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsEi(ptr noundef nonnull align 8 dereferenceable(256) %149, i32 noundef %152)
          to label %154 unwind label %165

154:                                              ; preds = %150
  call void @_ZN3LogD1Ev(ptr noundef nonnull align 8 dereferenceable(256) %14) #13
  call void @llvm.lifetime.end.p0(i64 256, ptr %14) #13
  %155 = load i8, ptr %12, align 1, !tbaa !11
  %156 = zext i8 %155 to i32
  switch i32 %156, label %1184 [
    i32 1, label %170
    i32 2, label %247
    i32 3, label %329
    i32 5, label %417
    i32 4, label %423
    i32 6, label %429
    i32 7, label %435
    i32 8, label %441
    i32 17, label %447
    i32 18, label %529
    i32 32, label %611
    i32 19, label %693
    i32 21, label %775
    i32 20, label %857
    i32 22, label %939
    i32 23, label %1017
    i32 24, label %1096
    i32 25, label %1102
  ]

157:                                              ; preds = %1201, %146, %143, %136
  %158 = landingpad { ptr, i32 }
          cleanup
  %159 = extractvalue { ptr, i32 } %158, 0
  store ptr %159, ptr %7, align 8
  %160 = extractvalue { ptr, i32 } %158, 1
  store i32 %160, ptr %8, align 4
  br label %1210

161:                                              ; preds = %147
  %162 = landingpad { ptr, i32 }
          cleanup
  %163 = extractvalue { ptr, i32 } %162, 0
  store ptr %163, ptr %7, align 8
  %164 = extractvalue { ptr, i32 } %162, 1
  store i32 %164, ptr %8, align 4
  br label %169

165:                                              ; preds = %150, %148
  %166 = landingpad { ptr, i32 }
          cleanup
  %167 = extractvalue { ptr, i32 } %166, 0
  store ptr %167, ptr %7, align 8
  %168 = extractvalue { ptr, i32 } %166, 1
  store i32 %168, ptr %8, align 4
  call void @_ZN3LogD1Ev(ptr noundef nonnull align 8 dereferenceable(256) %14) #13
  br label %169

169:                                              ; preds = %165, %161
  call void @llvm.lifetime.end.p0(i64 256, ptr %14) #13
  br label %1210

170:                                              ; preds = %154
  call void @llvm.lifetime.start.p0(i64 24, ptr %15) #13
  call void @_ZN12AskForBlocksC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %15) #13
  %171 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN11CDataStreamrsI12AskForBlocksEERS_RT_(ptr noundef nonnull align 8 dereferenceable(36) %13, ptr noundef nonnull align 8 dereferenceable(24) %15)
          to label %172 unwind label %173

172:                                              ; preds = %170
  br label %211

173:                                              ; preds = %170
  %174 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %175 = extractvalue { ptr, i32 } %174, 0
  store ptr %175, ptr %7, align 8
  %176 = extractvalue { ptr, i32 } %174, 1
  store i32 %176, ptr %8, align 4
  br label %177

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

181:                                              ; preds = %177
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #13
  %182 = load ptr, ptr %7, align 8
  %183 = call ptr @__cxa_begin_catch(ptr %182) #13
  store ptr %183, ptr %16, align 8
  call void @llvm.lifetime.start.p0(i64 256, ptr %17) #13
  invoke void @_ZN3LogC1Eh(ptr noundef nonnull align 8 dereferenceable(256) %17, i8 noundef zeroext 3)
          to label %184 unwind label %213

184:                                              ; preds = %181
  %185 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsEPKc(ptr noundef nonnull align 8 dereferenceable(256) %17, ptr noundef @.str.8)
          to label %186 unwind label %217

186:                                              ; preds = %184
  %187 = call noundef ptr @_ZNKSt19__shared_ptr_accessI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1) #13
  %188 = load ptr, ptr %187, align 8, !tbaa !9
  %189 = getelementptr inbounds ptr, ptr %188, i64 0
  %190 = load ptr, ptr %189, align 8
  invoke void %190(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %18, ptr noundef nonnull align 8 dereferenceable(8) %187)
          to label %191 unwind label %217

191:                                              ; preds = %186
  %192 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(256) %185, ptr noundef %18)
          to label %193 unwind label %221

193:                                              ; preds = %191
  %194 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsEPKc(ptr noundef nonnull align 8 dereferenceable(256) %192, ptr noundef @.str.9)
          to label %195 unwind label %221

195:                                              ; preds = %193
  %196 = load ptr, ptr %16, align 8, !tbaa !5
  %197 = load ptr, ptr %196, align 8, !tbaa !9
  %198 = getelementptr inbounds ptr, ptr %197, i64 2
  %199 = load ptr, ptr %198, align 8
  %200 = call noundef ptr %199(ptr noundef nonnull align 8 dereferenceable(8) %196) #13
  %201 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsEPKc(ptr noundef nonnull align 8 dereferenceable(256) %194, ptr noundef %200)
          to label %202 unwind label %221

202:                                              ; preds = %195
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #13
  call void @_ZN3LogD1Ev(ptr noundef nonnull align 8 dereferenceable(256) %17) #13
  call void @llvm.lifetime.end.p0(i64 256, ptr %17) #13
  %203 = load ptr, ptr %5, align 8, !tbaa !5
  %204 = call noundef ptr @_ZNKSt19__shared_ptr_accessI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1) #13
  %205 = load ptr, ptr %204, align 8, !tbaa !9
  %206 = getelementptr inbounds ptr, ptr %205, i64 0
  %207 = load ptr, ptr %206, align 8
  invoke void %207(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %19, ptr noundef nonnull align 8 dereferenceable(8) %204)
          to label %208 unwind label %227

208:                                              ; preds = %202
  invoke void @_ZN7BanList9appendBanENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEt(ptr noundef nonnull align 8 dereferenceable(48) %203, ptr noundef %19, i16 noundef zeroext 34)
          to label %209 unwind label %231

209:                                              ; preds = %208
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #13
  invoke void @__cxa_end_catch()
          to label %210 unwind label %235

210:                                              ; preds = %209
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #13
  br label %211

211:                                              ; preds = %210, %172
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %20, ptr align 8 %15, i64 24, i1 false), !tbaa.struct !12
  call void @_ZNSt10shared_ptrI13PeerInterfaceEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %21, ptr noundef nonnull align 8 dereferenceable(16) %1) #13
  invoke void @_ZN21NetworkMessageHandler18handleAskForBlocksE12AskForBlocksSt10shared_ptrI13PeerInterfaceE(ptr noundef byval(%struct.AskForBlocks) align 8 %20, ptr noundef %21)
          to label %212 unwind label %242

212:                                              ; preds = %211
  call void @_ZNSt12__shared_ptrI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %21) #13
  store i32 2, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %15) #13
  br label %1201

213:                                              ; preds = %181
  %214 = landingpad { ptr, i32 }
          cleanup
  %215 = extractvalue { ptr, i32 } %214, 0
  store ptr %215, ptr %7, align 8
  %216 = extractvalue { ptr, i32 } %214, 1
  store i32 %216, ptr %8, align 4
  br label %226

217:                                              ; preds = %186, %184
  %218 = landingpad { ptr, i32 }
          cleanup
  %219 = extractvalue { ptr, i32 } %218, 0
  store ptr %219, ptr %7, align 8
  %220 = extractvalue { ptr, i32 } %218, 1
  store i32 %220, ptr %8, align 4
  br label %225

221:                                              ; preds = %195, %193, %191
  %222 = landingpad { ptr, i32 }
          cleanup
  %223 = extractvalue { ptr, i32 } %222, 0
  store ptr %223, ptr %7, align 8
  %224 = extractvalue { ptr, i32 } %222, 1
  store i32 %224, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #13
  br label %225

225:                                              ; preds = %221, %217
  call void @_ZN3LogD1Ev(ptr noundef nonnull align 8 dereferenceable(256) %17) #13
  br label %226

226:                                              ; preds = %225, %213
  call void @llvm.lifetime.end.p0(i64 256, ptr %17) #13
  br label %239

227:                                              ; preds = %202
  %228 = landingpad { ptr, i32 }
          cleanup
  %229 = extractvalue { ptr, i32 } %228, 0
  store ptr %229, ptr %7, align 8
  %230 = extractvalue { ptr, i32 } %228, 1
  store i32 %230, ptr %8, align 4
  br label %239

231:                                              ; preds = %208
  %232 = landingpad { ptr, i32 }
          cleanup
  %233 = extractvalue { ptr, i32 } %232, 0
  store ptr %233, ptr %7, align 8
  %234 = extractvalue { ptr, i32 } %232, 1
  store i32 %234, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #13
  br label %239

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

239:                                              ; preds = %231, %227, %226
  invoke void @__cxa_end_catch()
          to label %240 unwind label %1217

240:                                              ; preds = %239
  br label %241

241:                                              ; preds = %240, %235
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #13
  br label %246

242:                                              ; preds = %211
  %243 = landingpad { ptr, i32 }
          cleanup
  %244 = extractvalue { ptr, i32 } %243, 0
  store ptr %244, ptr %7, align 8
  %245 = extractvalue { ptr, i32 } %243, 1
  store i32 %245, ptr %8, align 4
  call void @_ZNSt12__shared_ptrI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %21) #13
  br label %246

246:                                              ; preds = %242, %241, %177
  call void @llvm.lifetime.end.p0(i64 24, ptr %15) #13
  br label %1210

247:                                              ; preds = %154
  call void @llvm.lifetime.start.p0(i64 40, ptr %22) #13
  call void @_ZN11AskForBlockC2Ev(ptr noundef nonnull align 8 dereferenceable(40) %22) #13
  %248 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN11CDataStreamrsI11AskForBlockEERS_RT_(ptr noundef nonnull align 8 dereferenceable(36) %13, ptr noundef nonnull align 8 dereferenceable(40) %22)
          to label %249 unwind label %250

249:                                              ; preds = %247
  br label %288

250:                                              ; preds = %247
  %251 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %252 = extractvalue { ptr, i32 } %251, 0
  store ptr %252, ptr %7, align 8
  %253 = extractvalue { ptr, i32 } %251, 1
  store i32 %253, ptr %8, align 4
  br label %254

254:                                              ; preds = %250
  %255 = load i32, ptr %8, align 4
  %256 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTISt9exception) #13
  %257 = icmp eq i32 %255, %256
  br i1 %257, label %258, label %328

258:                                              ; preds = %254
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #13
  %259 = load ptr, ptr %7, align 8
  %260 = call ptr @__cxa_begin_catch(ptr %259) #13
  store ptr %260, ptr %23, align 8
  call void @llvm.lifetime.start.p0(i64 256, ptr %24) #13
  invoke void @_ZN3LogC1Eh(ptr noundef nonnull align 8 dereferenceable(256) %24, i8 noundef zeroext 3)
          to label %261 unwind label %291

261:                                              ; preds = %258
  %262 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsEPKc(ptr noundef nonnull align 8 dereferenceable(256) %24, ptr noundef @.str.10)
          to label %263 unwind label %295

263:                                              ; preds = %261
  %264 = call noundef ptr @_ZNKSt19__shared_ptr_accessI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1) #13
  %265 = load ptr, ptr %264, align 8, !tbaa !9
  %266 = getelementptr inbounds ptr, ptr %265, i64 0
  %267 = load ptr, ptr %266, align 8
  invoke void %267(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %25, ptr noundef nonnull align 8 dereferenceable(8) %264)
          to label %268 unwind label %295

268:                                              ; preds = %263
  %269 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(256) %262, ptr noundef %25)
          to label %270 unwind label %299

270:                                              ; preds = %268
  %271 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsEPKc(ptr noundef nonnull align 8 dereferenceable(256) %269, ptr noundef @.str.9)
          to label %272 unwind label %299

272:                                              ; preds = %270
  %273 = load ptr, ptr %23, align 8, !tbaa !5
  %274 = load ptr, ptr %273, align 8, !tbaa !9
  %275 = getelementptr inbounds ptr, ptr %274, i64 2
  %276 = load ptr, ptr %275, align 8
  %277 = call noundef ptr %276(ptr noundef nonnull align 8 dereferenceable(8) %273) #13
  %278 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsEPKc(ptr noundef nonnull align 8 dereferenceable(256) %271, ptr noundef %277)
          to label %279 unwind label %299

279:                                              ; preds = %272
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #13
  call void @_ZN3LogD1Ev(ptr noundef nonnull align 8 dereferenceable(256) %24) #13
  call void @llvm.lifetime.end.p0(i64 256, ptr %24) #13
  %280 = load ptr, ptr %5, align 8, !tbaa !5
  %281 = call noundef ptr @_ZNKSt19__shared_ptr_accessI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1) #13
  %282 = load ptr, ptr %281, align 8, !tbaa !9
  %283 = getelementptr inbounds ptr, ptr %282, i64 0
  %284 = load ptr, ptr %283, align 8
  invoke void %284(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %26, ptr noundef nonnull align 8 dereferenceable(8) %281)
          to label %285 unwind label %305

285:                                              ; preds = %279
  invoke void @_ZN7BanList9appendBanENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEt(ptr noundef nonnull align 8 dereferenceable(48) %280, ptr noundef %26, i16 noundef zeroext 34)
          to label %286 unwind label %309

286:                                              ; preds = %285
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #13
  invoke void @__cxa_end_catch()
          to label %287 unwind label %313

287:                                              ; preds = %286
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #13
  br label %288

288:                                              ; preds = %287, %249
  invoke void @_ZN11AskForBlockC2ERKS_(ptr noundef nonnull align 8 dereferenceable(40) %27, ptr noundef nonnull align 8 dereferenceable(40) %22)
          to label %289 unwind label %320

289:                                              ; preds = %288
  call void @_ZNSt10shared_ptrI13PeerInterfaceEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %28, ptr noundef nonnull align 8 dereferenceable(16) %1) #13
  invoke void @_ZN21NetworkMessageHandler17handleAskForBlockE11AskForBlockSt10shared_ptrI13PeerInterfaceE(ptr noundef %27, ptr noundef %28)
          to label %290 unwind label %324

290:                                              ; preds = %289
  call void @_ZNSt12__shared_ptrI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %28) #13
  call void @_ZN11AskForBlockD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %27) #13
  store i32 2, ptr %11, align 4
  call void @_ZN11AskForBlockD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %22) #13
  call void @llvm.lifetime.end.p0(i64 40, ptr %22) #13
  br label %1201

291:                                              ; preds = %258
  %292 = landingpad { ptr, i32 }
          cleanup
  %293 = extractvalue { ptr, i32 } %292, 0
  store ptr %293, ptr %7, align 8
  %294 = extractvalue { ptr, i32 } %292, 1
  store i32 %294, ptr %8, align 4
  br label %304

295:                                              ; preds = %263, %261
  %296 = landingpad { ptr, i32 }
          cleanup
  %297 = extractvalue { ptr, i32 } %296, 0
  store ptr %297, ptr %7, align 8
  %298 = extractvalue { ptr, i32 } %296, 1
  store i32 %298, ptr %8, align 4
  br label %303

299:                                              ; preds = %272, %270, %268
  %300 = landingpad { ptr, i32 }
          cleanup
  %301 = extractvalue { ptr, i32 } %300, 0
  store ptr %301, ptr %7, align 8
  %302 = extractvalue { ptr, i32 } %300, 1
  store i32 %302, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #13
  br label %303

303:                                              ; preds = %299, %295
  call void @_ZN3LogD1Ev(ptr noundef nonnull align 8 dereferenceable(256) %24) #13
  br label %304

304:                                              ; preds = %303, %291
  call void @llvm.lifetime.end.p0(i64 256, ptr %24) #13
  br label %317

305:                                              ; preds = %279
  %306 = landingpad { ptr, i32 }
          cleanup
  %307 = extractvalue { ptr, i32 } %306, 0
  store ptr %307, ptr %7, align 8
  %308 = extractvalue { ptr, i32 } %306, 1
  store i32 %308, ptr %8, align 4
  br label %317

309:                                              ; preds = %285
  %310 = landingpad { ptr, i32 }
          cleanup
  %311 = extractvalue { ptr, i32 } %310, 0
  store ptr %311, ptr %7, align 8
  %312 = extractvalue { ptr, i32 } %310, 1
  store i32 %312, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #13
  br label %317

313:                                              ; preds = %286
  %314 = landingpad { ptr, i32 }
          cleanup
  %315 = extractvalue { ptr, i32 } %314, 0
  store ptr %315, ptr %7, align 8
  %316 = extractvalue { ptr, i32 } %314, 1
  store i32 %316, ptr %8, align 4
  br label %319

317:                                              ; preds = %309, %305, %304
  invoke void @__cxa_end_catch()
          to label %318 unwind label %1217

318:                                              ; preds = %317
  br label %319

319:                                              ; preds = %318, %313
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #13
  br label %328

320:                                              ; preds = %288
  %321 = landingpad { ptr, i32 }
          cleanup
  %322 = extractvalue { ptr, i32 } %321, 0
  store ptr %322, ptr %7, align 8
  %323 = extractvalue { ptr, i32 } %321, 1
  store i32 %323, ptr %8, align 4
  br label %328

324:                                              ; preds = %289
  %325 = landingpad { ptr, i32 }
          cleanup
  %326 = extractvalue { ptr, i32 } %325, 0
  store ptr %326, ptr %7, align 8
  %327 = extractvalue { ptr, i32 } %325, 1
  store i32 %327, ptr %8, align 4
  call void @_ZNSt12__shared_ptrI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %28) #13
  call void @_ZN11AskForBlockD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %27) #13
  br label %328

328:                                              ; preds = %324, %320, %319, %254
  call void @_ZN11AskForBlockD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %22) #13
  call void @llvm.lifetime.end.p0(i64 40, ptr %22) #13
  br label %1210

329:                                              ; preds = %154
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #13
  %330 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 1) #15
          to label %331 unwind label %335

331:                                              ; preds = %329
  call void @llvm.memset.p0.i64(ptr align 1 %330, i8 0, i64 1, i1 false)
  call void @_ZN11AskForPeersC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %330) #13
  store ptr %330, ptr %29, align 8, !tbaa !5
  %332 = load ptr, ptr %29, align 8, !tbaa !5
  %333 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN11CDataStreamrsI11AskForPeersEERS_RT_(ptr noundef nonnull align 8 dereferenceable(36) %13, ptr noundef nonnull align 1 dereferenceable(1) %332)
          to label %334 unwind label %339

334:                                              ; preds = %331
  br label %377

335:                                              ; preds = %329
  %336 = landingpad { ptr, i32 }
          cleanup
  %337 = extractvalue { ptr, i32 } %336, 0
  store ptr %337, ptr %7, align 8
  %338 = extractvalue { ptr, i32 } %336, 1
  store i32 %338, ptr %8, align 4
  br label %416

339:                                              ; preds = %331
  %340 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %341 = extractvalue { ptr, i32 } %340, 0
  store ptr %341, ptr %7, align 8
  %342 = extractvalue { ptr, i32 } %340, 1
  store i32 %342, ptr %8, align 4
  br label %343

343:                                              ; preds = %339
  %344 = load i32, ptr %8, align 4
  %345 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTISt9exception) #13
  %346 = icmp eq i32 %344, %345
  br i1 %346, label %347, label %416

347:                                              ; preds = %343
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #13
  %348 = load ptr, ptr %7, align 8
  %349 = call ptr @__cxa_begin_catch(ptr %348) #13
  store ptr %349, ptr %30, align 8
  call void @llvm.lifetime.start.p0(i64 256, ptr %31) #13
  invoke void @_ZN3LogC1Eh(ptr noundef nonnull align 8 dereferenceable(256) %31, i8 noundef zeroext 3)
          to label %350 unwind label %383

350:                                              ; preds = %347
  %351 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsEPKc(ptr noundef nonnull align 8 dereferenceable(256) %31, ptr noundef @.str.11)
          to label %352 unwind label %387

352:                                              ; preds = %350
  %353 = call noundef ptr @_ZNKSt19__shared_ptr_accessI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1) #13
  %354 = load ptr, ptr %353, align 8, !tbaa !9
  %355 = getelementptr inbounds ptr, ptr %354, i64 0
  %356 = load ptr, ptr %355, align 8
  invoke void %356(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %32, ptr noundef nonnull align 8 dereferenceable(8) %353)
          to label %357 unwind label %387

357:                                              ; preds = %352
  %358 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(256) %351, ptr noundef %32)
          to label %359 unwind label %391

359:                                              ; preds = %357
  %360 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsEPKc(ptr noundef nonnull align 8 dereferenceable(256) %358, ptr noundef @.str.9)
          to label %361 unwind label %391

361:                                              ; preds = %359
  %362 = load ptr, ptr %30, align 8, !tbaa !5
  %363 = load ptr, ptr %362, align 8, !tbaa !9
  %364 = getelementptr inbounds ptr, ptr %363, i64 2
  %365 = load ptr, ptr %364, align 8
  %366 = call noundef ptr %365(ptr noundef nonnull align 8 dereferenceable(8) %362) #13
  %367 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsEPKc(ptr noundef nonnull align 8 dereferenceable(256) %360, ptr noundef %366)
          to label %368 unwind label %391

368:                                              ; preds = %361
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #13
  call void @_ZN3LogD1Ev(ptr noundef nonnull align 8 dereferenceable(256) %31) #13
  call void @llvm.lifetime.end.p0(i64 256, ptr %31) #13
  %369 = load ptr, ptr %5, align 8, !tbaa !5
  %370 = call noundef ptr @_ZNKSt19__shared_ptr_accessI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1) #13
  %371 = load ptr, ptr %370, align 8, !tbaa !9
  %372 = getelementptr inbounds ptr, ptr %371, i64 0
  %373 = load ptr, ptr %372, align 8
  invoke void %373(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %33, ptr noundef nonnull align 8 dereferenceable(8) %370)
          to label %374 unwind label %397

374:                                              ; preds = %368
  invoke void @_ZN7BanList9appendBanENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEt(ptr noundef nonnull align 8 dereferenceable(48) %369, ptr noundef %33, i16 noundef zeroext 34)
          to label %375 unwind label %401

375:                                              ; preds = %374
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #13
  invoke void @__cxa_end_catch()
          to label %376 unwind label %405

376:                                              ; preds = %375
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #13
  br label %377

377:                                              ; preds = %376, %334
  call void @_ZNSt10shared_ptrI13PeerInterfaceEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %34, ptr noundef nonnull align 8 dereferenceable(16) %1) #13
  invoke void @_ZN21NetworkMessageHandler17handleAskForPeersESt10shared_ptrI13PeerInterfaceE(ptr noundef %34)
          to label %378 unwind label %412

378:                                              ; preds = %377
  call void @_ZNSt12__shared_ptrI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %34) #13
  %379 = load ptr, ptr %29, align 8, !tbaa !5
  %380 = icmp eq ptr %379, null
  br i1 %380, label %382, label %381

381:                                              ; preds = %378
  call void @_ZdlPvm(ptr noundef %379, i64 noundef 1) #14
  br label %382

382:                                              ; preds = %381, %378
  store i32 2, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #13
  br label %1201

383:                                              ; preds = %347
  %384 = landingpad { ptr, i32 }
          cleanup
  %385 = extractvalue { ptr, i32 } %384, 0
  store ptr %385, ptr %7, align 8
  %386 = extractvalue { ptr, i32 } %384, 1
  store i32 %386, ptr %8, align 4
  br label %396

387:                                              ; preds = %352, %350
  %388 = landingpad { ptr, i32 }
          cleanup
  %389 = extractvalue { ptr, i32 } %388, 0
  store ptr %389, ptr %7, align 8
  %390 = extractvalue { ptr, i32 } %388, 1
  store i32 %390, ptr %8, align 4
  br label %395

391:                                              ; preds = %361, %359, %357
  %392 = landingpad { ptr, i32 }
          cleanup
  %393 = extractvalue { ptr, i32 } %392, 0
  store ptr %393, ptr %7, align 8
  %394 = extractvalue { ptr, i32 } %392, 1
  store i32 %394, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #13
  br label %395

395:                                              ; preds = %391, %387
  call void @_ZN3LogD1Ev(ptr noundef nonnull align 8 dereferenceable(256) %31) #13
  br label %396

396:                                              ; preds = %395, %383
  call void @llvm.lifetime.end.p0(i64 256, ptr %31) #13
  br label %409

397:                                              ; preds = %368
  %398 = landingpad { ptr, i32 }
          cleanup
  %399 = extractvalue { ptr, i32 } %398, 0
  store ptr %399, ptr %7, align 8
  %400 = extractvalue { ptr, i32 } %398, 1
  store i32 %400, ptr %8, align 4
  br label %409

401:                                              ; preds = %374
  %402 = landingpad { ptr, i32 }
          cleanup
  %403 = extractvalue { ptr, i32 } %402, 0
  store ptr %403, ptr %7, align 8
  %404 = extractvalue { ptr, i32 } %402, 1
  store i32 %404, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #13
  br label %409

405:                                              ; preds = %375
  %406 = landingpad { ptr, i32 }
          cleanup
  %407 = extractvalue { ptr, i32 } %406, 0
  store ptr %407, ptr %7, align 8
  %408 = extractvalue { ptr, i32 } %406, 1
  store i32 %408, ptr %8, align 4
  br label %411

409:                                              ; preds = %401, %397, %396
  invoke void @__cxa_end_catch()
          to label %410 unwind label %1217

410:                                              ; preds = %409
  br label %411

411:                                              ; preds = %410, %405
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #13
  br label %416

412:                                              ; preds = %377
  %413 = landingpad { ptr, i32 }
          cleanup
  %414 = extractvalue { ptr, i32 } %413, 0
  store ptr %414, ptr %7, align 8
  %415 = extractvalue { ptr, i32 } %413, 1
  store i32 %415, ptr %8, align 4
  call void @_ZNSt12__shared_ptrI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %34) #13
  br label %416

416:                                              ; preds = %412, %411, %343, %335
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #13
  br label %1210

417:                                              ; preds = %154
  call void @_ZNSt10shared_ptrI13PeerInterfaceEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %35, ptr noundef nonnull align 8 dereferenceable(16) %1) #13
  invoke void @_ZN21NetworkMessageHandler28handleAskForBlockchainHeightESt10shared_ptrI13PeerInterfaceE(ptr noundef %35)
          to label %418 unwind label %419

418:                                              ; preds = %417
  call void @_ZNSt12__shared_ptrI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %35) #13
  br label %1201

419:                                              ; preds = %417
  %420 = landingpad { ptr, i32 }
          cleanup
  %421 = extractvalue { ptr, i32 } %420, 0
  store ptr %421, ptr %7, align 8
  %422 = extractvalue { ptr, i32 } %420, 1
  store i32 %422, ptr %8, align 4
  call void @_ZNSt12__shared_ptrI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %35) #13
  br label %1210

423:                                              ; preds = %154
  call void @_ZNSt10shared_ptrI13PeerInterfaceEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %36, ptr noundef nonnull align 8 dereferenceable(16) %1) #13
  invoke void @_ZN21NetworkMessageHandler27handleAskForBestBlockHeaderESt10shared_ptrI13PeerInterfaceE(ptr noundef %36)
          to label %424 unwind label %425

424:                                              ; preds = %423
  call void @_ZNSt12__shared_ptrI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %36) #13
  br label %1201

425:                                              ; preds = %423
  %426 = landingpad { ptr, i32 }
          cleanup
  %427 = extractvalue { ptr, i32 } %426, 0
  store ptr %427, ptr %7, align 8
  %428 = extractvalue { ptr, i32 } %426, 1
  store i32 %428, ptr %8, align 4
  call void @_ZNSt12__shared_ptrI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %36) #13
  br label %1210

429:                                              ; preds = %154
  call void @_ZNSt10shared_ptrI13PeerInterfaceEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %37, ptr noundef nonnull align 8 dereferenceable(16) %1) #13
  invoke void @_ZN21NetworkMessageHandler19handleAskForVersionESt10shared_ptrI13PeerInterfaceE(ptr noundef %37)
          to label %430 unwind label %431

430:                                              ; preds = %429
  call void @_ZNSt12__shared_ptrI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %37) #13
  br label %1201

431:                                              ; preds = %429
  %432 = landingpad { ptr, i32 }
          cleanup
  %433 = extractvalue { ptr, i32 } %432, 0
  store ptr %433, ptr %7, align 8
  %434 = extractvalue { ptr, i32 } %432, 1
  store i32 %434, ptr %8, align 4
  call void @_ZNSt12__shared_ptrI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %37) #13
  br label %1210

435:                                              ; preds = %154
  call void @_ZNSt10shared_ptrI13PeerInterfaceEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %38, ptr noundef nonnull align 8 dereferenceable(16) %1) #13
  invoke void @_ZN21NetworkMessageHandler18handleAskForStatusESt10shared_ptrI13PeerInterfaceE(ptr noundef %38)
          to label %436 unwind label %437

436:                                              ; preds = %435
  call void @_ZNSt12__shared_ptrI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %38) #13
  br label %1201

437:                                              ; preds = %435
  %438 = landingpad { ptr, i32 }
          cleanup
  %439 = extractvalue { ptr, i32 } %438, 0
  store ptr %439, ptr %7, align 8
  %440 = extractvalue { ptr, i32 } %438, 1
  store i32 %440, ptr %8, align 4
  call void @_ZNSt12__shared_ptrI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %38) #13
  br label %1210

441:                                              ; preds = %154
  call void @_ZNSt10shared_ptrI13PeerInterfaceEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %39, ptr noundef nonnull align 8 dereferenceable(16) %1) #13
  invoke void @_ZN21NetworkMessageHandler27handleAskForDonationAddressESt10shared_ptrI13PeerInterfaceE(ptr noundef %39)
          to label %442 unwind label %443

442:                                              ; preds = %441
  call void @_ZNSt12__shared_ptrI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %39) #13
  br label %1201

443:                                              ; preds = %441
  %444 = landingpad { ptr, i32 }
          cleanup
  %445 = extractvalue { ptr, i32 } %444, 0
  store ptr %445, ptr %7, align 8
  %446 = extractvalue { ptr, i32 } %444, 1
  store i32 %446, ptr %8, align 4
  call void @_ZNSt12__shared_ptrI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %39) #13
  br label %1210

447:                                              ; preds = %154
  call void @llvm.lifetime.start.p0(i64 32, ptr %40) #13
  call void @_ZN20TransmitTransactionsC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #13
  %448 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN11CDataStreamrsI20TransmitTransactionsEERS_RT_(ptr noundef nonnull align 8 dereferenceable(36) %13, ptr noundef nonnull align 8 dereferenceable(32) %40)
          to label %449 unwind label %450

449:                                              ; preds = %447
  br label %488

450:                                              ; preds = %447
  %451 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %452 = extractvalue { ptr, i32 } %451, 0
  store ptr %452, ptr %7, align 8
  %453 = extractvalue { ptr, i32 } %451, 1
  store i32 %453, ptr %8, align 4
  br label %454

454:                                              ; preds = %450
  %455 = load i32, ptr %8, align 4
  %456 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTISt9exception) #13
  %457 = icmp eq i32 %455, %456
  br i1 %457, label %458, label %528

458:                                              ; preds = %454
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #13
  %459 = load ptr, ptr %7, align 8
  %460 = call ptr @__cxa_begin_catch(ptr %459) #13
  store ptr %460, ptr %41, align 8
  call void @llvm.lifetime.start.p0(i64 256, ptr %42) #13
  invoke void @_ZN3LogC1Eh(ptr noundef nonnull align 8 dereferenceable(256) %42, i8 noundef zeroext 3)
          to label %461 unwind label %491

461:                                              ; preds = %458
  %462 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsEPKc(ptr noundef nonnull align 8 dereferenceable(256) %42, ptr noundef @.str.12)
          to label %463 unwind label %495

463:                                              ; preds = %461
  %464 = call noundef ptr @_ZNKSt19__shared_ptr_accessI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1) #13
  %465 = load ptr, ptr %464, align 8, !tbaa !9
  %466 = getelementptr inbounds ptr, ptr %465, i64 0
  %467 = load ptr, ptr %466, align 8
  invoke void %467(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %43, ptr noundef nonnull align 8 dereferenceable(8) %464)
          to label %468 unwind label %495

468:                                              ; preds = %463
  %469 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(256) %462, ptr noundef %43)
          to label %470 unwind label %499

470:                                              ; preds = %468
  %471 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsEPKc(ptr noundef nonnull align 8 dereferenceable(256) %469, ptr noundef @.str.9)
          to label %472 unwind label %499

472:                                              ; preds = %470
  %473 = load ptr, ptr %41, align 8, !tbaa !5
  %474 = load ptr, ptr %473, align 8, !tbaa !9
  %475 = getelementptr inbounds ptr, ptr %474, i64 2
  %476 = load ptr, ptr %475, align 8
  %477 = call noundef ptr %476(ptr noundef nonnull align 8 dereferenceable(8) %473) #13
  %478 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsEPKc(ptr noundef nonnull align 8 dereferenceable(256) %471, ptr noundef %477)
          to label %479 unwind label %499

479:                                              ; preds = %472
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #13
  call void @_ZN3LogD1Ev(ptr noundef nonnull align 8 dereferenceable(256) %42) #13
  call void @llvm.lifetime.end.p0(i64 256, ptr %42) #13
  %480 = load ptr, ptr %5, align 8, !tbaa !5
  %481 = call noundef ptr @_ZNKSt19__shared_ptr_accessI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1) #13
  %482 = load ptr, ptr %481, align 8, !tbaa !9
  %483 = getelementptr inbounds ptr, ptr %482, i64 0
  %484 = load ptr, ptr %483, align 8
  invoke void %484(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %44, ptr noundef nonnull align 8 dereferenceable(8) %481)
          to label %485 unwind label %505

485:                                              ; preds = %479
  invoke void @_ZN7BanList9appendBanENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEt(ptr noundef nonnull align 8 dereferenceable(48) %480, ptr noundef %44, i16 noundef zeroext 34)
          to label %486 unwind label %509

486:                                              ; preds = %485
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #13
  invoke void @__cxa_end_catch()
          to label %487 unwind label %513

487:                                              ; preds = %486
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #13
  br label %488

488:                                              ; preds = %487, %449
  invoke void @_ZN20TransmitTransactionsC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %45, ptr noundef nonnull align 8 dereferenceable(32) %40)
          to label %489 unwind label %520

489:                                              ; preds = %488
  call void @_ZNSt10shared_ptrI13PeerInterfaceEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %46, ptr noundef nonnull align 8 dereferenceable(16) %1) #13
  invoke void @_ZN21NetworkMessageHandler26handleTransmitTransactionsE20TransmitTransactionsSt10shared_ptrI13PeerInterfaceE(ptr noundef %45, ptr noundef %46)
          to label %490 unwind label %524

490:                                              ; preds = %489
  call void @_ZNSt12__shared_ptrI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %46) #13
  call void @_ZN20TransmitTransactionsD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #13
  store i32 2, ptr %11, align 4
  call void @_ZN20TransmitTransactionsD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr %40) #13
  br label %1201

491:                                              ; preds = %458
  %492 = landingpad { ptr, i32 }
          cleanup
  %493 = extractvalue { ptr, i32 } %492, 0
  store ptr %493, ptr %7, align 8
  %494 = extractvalue { ptr, i32 } %492, 1
  store i32 %494, ptr %8, align 4
  br label %504

495:                                              ; preds = %463, %461
  %496 = landingpad { ptr, i32 }
          cleanup
  %497 = extractvalue { ptr, i32 } %496, 0
  store ptr %497, ptr %7, align 8
  %498 = extractvalue { ptr, i32 } %496, 1
  store i32 %498, ptr %8, align 4
  br label %503

499:                                              ; preds = %472, %470, %468
  %500 = landingpad { ptr, i32 }
          cleanup
  %501 = extractvalue { ptr, i32 } %500, 0
  store ptr %501, ptr %7, align 8
  %502 = extractvalue { ptr, i32 } %500, 1
  store i32 %502, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #13
  br label %503

503:                                              ; preds = %499, %495
  call void @_ZN3LogD1Ev(ptr noundef nonnull align 8 dereferenceable(256) %42) #13
  br label %504

504:                                              ; preds = %503, %491
  call void @llvm.lifetime.end.p0(i64 256, ptr %42) #13
  br label %517

505:                                              ; preds = %479
  %506 = landingpad { ptr, i32 }
          cleanup
  %507 = extractvalue { ptr, i32 } %506, 0
  store ptr %507, ptr %7, align 8
  %508 = extractvalue { ptr, i32 } %506, 1
  store i32 %508, ptr %8, align 4
  br label %517

509:                                              ; preds = %485
  %510 = landingpad { ptr, i32 }
          cleanup
  %511 = extractvalue { ptr, i32 } %510, 0
  store ptr %511, ptr %7, align 8
  %512 = extractvalue { ptr, i32 } %510, 1
  store i32 %512, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #13
  br label %517

513:                                              ; preds = %486
  %514 = landingpad { ptr, i32 }
          cleanup
  %515 = extractvalue { ptr, i32 } %514, 0
  store ptr %515, ptr %7, align 8
  %516 = extractvalue { ptr, i32 } %514, 1
  store i32 %516, ptr %8, align 4
  br label %519

517:                                              ; preds = %509, %505, %504
  invoke void @__cxa_end_catch()
          to label %518 unwind label %1217

518:                                              ; preds = %517
  br label %519

519:                                              ; preds = %518, %513
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #13
  br label %528

520:                                              ; preds = %488
  %521 = landingpad { ptr, i32 }
          cleanup
  %522 = extractvalue { ptr, i32 } %521, 0
  store ptr %522, ptr %7, align 8
  %523 = extractvalue { ptr, i32 } %521, 1
  store i32 %523, ptr %8, align 4
  br label %528

524:                                              ; preds = %489
  %525 = landingpad { ptr, i32 }
          cleanup
  %526 = extractvalue { ptr, i32 } %525, 0
  store ptr %526, ptr %7, align 8
  %527 = extractvalue { ptr, i32 } %525, 1
  store i32 %527, ptr %8, align 4
  call void @_ZNSt12__shared_ptrI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %46) #13
  call void @_ZN20TransmitTransactionsD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #13
  br label %528

528:                                              ; preds = %524, %520, %519, %454
  call void @_ZN20TransmitTransactionsD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr %40) #13
  br label %1210

529:                                              ; preds = %154
  call void @llvm.lifetime.start.p0(i64 32, ptr %47) #13
  call void @_ZN13TransmitBlockC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #13
  %530 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN11CDataStreamrsI13TransmitBlockEERS_RT_(ptr noundef nonnull align 8 dereferenceable(36) %13, ptr noundef nonnull align 8 dereferenceable(32) %47)
          to label %531 unwind label %532

531:                                              ; preds = %529
  br label %570

532:                                              ; preds = %529
  %533 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %534 = extractvalue { ptr, i32 } %533, 0
  store ptr %534, ptr %7, align 8
  %535 = extractvalue { ptr, i32 } %533, 1
  store i32 %535, ptr %8, align 4
  br label %536

536:                                              ; preds = %532
  %537 = load i32, ptr %8, align 4
  %538 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTISt9exception) #13
  %539 = icmp eq i32 %537, %538
  br i1 %539, label %540, label %610

540:                                              ; preds = %536
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #13
  %541 = load ptr, ptr %7, align 8
  %542 = call ptr @__cxa_begin_catch(ptr %541) #13
  store ptr %542, ptr %48, align 8
  call void @llvm.lifetime.start.p0(i64 256, ptr %49) #13
  invoke void @_ZN3LogC1Eh(ptr noundef nonnull align 8 dereferenceable(256) %49, i8 noundef zeroext 3)
          to label %543 unwind label %573

543:                                              ; preds = %540
  %544 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsEPKc(ptr noundef nonnull align 8 dereferenceable(256) %49, ptr noundef @.str.13)
          to label %545 unwind label %577

545:                                              ; preds = %543
  %546 = call noundef ptr @_ZNKSt19__shared_ptr_accessI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1) #13
  %547 = load ptr, ptr %546, align 8, !tbaa !9
  %548 = getelementptr inbounds ptr, ptr %547, i64 0
  %549 = load ptr, ptr %548, align 8
  invoke void %549(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %50, ptr noundef nonnull align 8 dereferenceable(8) %546)
          to label %550 unwind label %577

550:                                              ; preds = %545
  %551 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(256) %544, ptr noundef %50)
          to label %552 unwind label %581

552:                                              ; preds = %550
  %553 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsEPKc(ptr noundef nonnull align 8 dereferenceable(256) %551, ptr noundef @.str.9)
          to label %554 unwind label %581

554:                                              ; preds = %552
  %555 = load ptr, ptr %48, align 8, !tbaa !5
  %556 = load ptr, ptr %555, align 8, !tbaa !9
  %557 = getelementptr inbounds ptr, ptr %556, i64 2
  %558 = load ptr, ptr %557, align 8
  %559 = call noundef ptr %558(ptr noundef nonnull align 8 dereferenceable(8) %555) #13
  %560 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsEPKc(ptr noundef nonnull align 8 dereferenceable(256) %553, ptr noundef %559)
          to label %561 unwind label %581

561:                                              ; preds = %554
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #13
  call void @_ZN3LogD1Ev(ptr noundef nonnull align 8 dereferenceable(256) %49) #13
  call void @llvm.lifetime.end.p0(i64 256, ptr %49) #13
  %562 = load ptr, ptr %5, align 8, !tbaa !5
  %563 = call noundef ptr @_ZNKSt19__shared_ptr_accessI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1) #13
  %564 = load ptr, ptr %563, align 8, !tbaa !9
  %565 = getelementptr inbounds ptr, ptr %564, i64 0
  %566 = load ptr, ptr %565, align 8
  invoke void %566(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %51, ptr noundef nonnull align 8 dereferenceable(8) %563)
          to label %567 unwind label %587

567:                                              ; preds = %561
  invoke void @_ZN7BanList9appendBanENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEt(ptr noundef nonnull align 8 dereferenceable(48) %562, ptr noundef %51, i16 noundef zeroext 34)
          to label %568 unwind label %591

568:                                              ; preds = %567
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #13
  invoke void @__cxa_end_catch()
          to label %569 unwind label %595

569:                                              ; preds = %568
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #13
  br label %570

570:                                              ; preds = %569, %531
  invoke void @_ZN13TransmitBlockC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %52, ptr noundef nonnull align 8 dereferenceable(32) %47)
          to label %571 unwind label %602

571:                                              ; preds = %570
  call void @_ZNSt10shared_ptrI13PeerInterfaceEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %53, ptr noundef nonnull align 8 dereferenceable(16) %1) #13
  invoke void @_ZN21NetworkMessageHandler19handleTransmitBlockE13TransmitBlockSt10shared_ptrI13PeerInterfaceE(ptr noundef %52, ptr noundef %53)
          to label %572 unwind label %606

572:                                              ; preds = %571
  call void @_ZNSt12__shared_ptrI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %53) #13
  call void @_ZN13TransmitBlockD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #13
  store i32 2, ptr %11, align 4
  call void @_ZN13TransmitBlockD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr %47) #13
  br label %1201

573:                                              ; preds = %540
  %574 = landingpad { ptr, i32 }
          cleanup
  %575 = extractvalue { ptr, i32 } %574, 0
  store ptr %575, ptr %7, align 8
  %576 = extractvalue { ptr, i32 } %574, 1
  store i32 %576, ptr %8, align 4
  br label %586

577:                                              ; preds = %545, %543
  %578 = landingpad { ptr, i32 }
          cleanup
  %579 = extractvalue { ptr, i32 } %578, 0
  store ptr %579, ptr %7, align 8
  %580 = extractvalue { ptr, i32 } %578, 1
  store i32 %580, ptr %8, align 4
  br label %585

581:                                              ; preds = %554, %552, %550
  %582 = landingpad { ptr, i32 }
          cleanup
  %583 = extractvalue { ptr, i32 } %582, 0
  store ptr %583, ptr %7, align 8
  %584 = extractvalue { ptr, i32 } %582, 1
  store i32 %584, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #13
  br label %585

585:                                              ; preds = %581, %577
  call void @_ZN3LogD1Ev(ptr noundef nonnull align 8 dereferenceable(256) %49) #13
  br label %586

586:                                              ; preds = %585, %573
  call void @llvm.lifetime.end.p0(i64 256, ptr %49) #13
  br label %599

587:                                              ; preds = %561
  %588 = landingpad { ptr, i32 }
          cleanup
  %589 = extractvalue { ptr, i32 } %588, 0
  store ptr %589, ptr %7, align 8
  %590 = extractvalue { ptr, i32 } %588, 1
  store i32 %590, ptr %8, align 4
  br label %599

591:                                              ; preds = %567
  %592 = landingpad { ptr, i32 }
          cleanup
  %593 = extractvalue { ptr, i32 } %592, 0
  store ptr %593, ptr %7, align 8
  %594 = extractvalue { ptr, i32 } %592, 1
  store i32 %594, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #13
  br label %599

595:                                              ; preds = %568
  %596 = landingpad { ptr, i32 }
          cleanup
  %597 = extractvalue { ptr, i32 } %596, 0
  store ptr %597, ptr %7, align 8
  %598 = extractvalue { ptr, i32 } %596, 1
  store i32 %598, ptr %8, align 4
  br label %601

599:                                              ; preds = %591, %587, %586
  invoke void @__cxa_end_catch()
          to label %600 unwind label %1217

600:                                              ; preds = %599
  br label %601

601:                                              ; preds = %600, %595
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #13
  br label %610

602:                                              ; preds = %570
  %603 = landingpad { ptr, i32 }
          cleanup
  %604 = extractvalue { ptr, i32 } %603, 0
  store ptr %604, ptr %7, align 8
  %605 = extractvalue { ptr, i32 } %603, 1
  store i32 %605, ptr %8, align 4
  br label %610

606:                                              ; preds = %571
  %607 = landingpad { ptr, i32 }
          cleanup
  %608 = extractvalue { ptr, i32 } %607, 0
  store ptr %608, ptr %7, align 8
  %609 = extractvalue { ptr, i32 } %607, 1
  store i32 %609, ptr %8, align 4
  call void @_ZNSt12__shared_ptrI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %53) #13
  call void @_ZN13TransmitBlockD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #13
  br label %610

610:                                              ; preds = %606, %602, %601, %536
  call void @_ZN13TransmitBlockD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr %47) #13
  br label %1210

611:                                              ; preds = %154
  call void @llvm.lifetime.start.p0(i64 32, ptr %54) #13
  call void @_ZN14TransmitBlocksC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #13
  %612 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN11CDataStreamrsI14TransmitBlocksEERS_RT_(ptr noundef nonnull align 8 dereferenceable(36) %13, ptr noundef nonnull align 8 dereferenceable(32) %54)
          to label %613 unwind label %614

613:                                              ; preds = %611
  br label %652

614:                                              ; preds = %611
  %615 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %616 = extractvalue { ptr, i32 } %615, 0
  store ptr %616, ptr %7, align 8
  %617 = extractvalue { ptr, i32 } %615, 1
  store i32 %617, ptr %8, align 4
  br label %618

618:                                              ; preds = %614
  %619 = load i32, ptr %8, align 4
  %620 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTISt9exception) #13
  %621 = icmp eq i32 %619, %620
  br i1 %621, label %622, label %692

622:                                              ; preds = %618
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #13
  %623 = load ptr, ptr %7, align 8
  %624 = call ptr @__cxa_begin_catch(ptr %623) #13
  store ptr %624, ptr %55, align 8
  call void @llvm.lifetime.start.p0(i64 256, ptr %56) #13
  invoke void @_ZN3LogC1Eh(ptr noundef nonnull align 8 dereferenceable(256) %56, i8 noundef zeroext 3)
          to label %625 unwind label %655

625:                                              ; preds = %622
  %626 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsEPKc(ptr noundef nonnull align 8 dereferenceable(256) %56, ptr noundef @.str.13)
          to label %627 unwind label %659

627:                                              ; preds = %625
  %628 = call noundef ptr @_ZNKSt19__shared_ptr_accessI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1) #13
  %629 = load ptr, ptr %628, align 8, !tbaa !9
  %630 = getelementptr inbounds ptr, ptr %629, i64 0
  %631 = load ptr, ptr %630, align 8
  invoke void %631(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %57, ptr noundef nonnull align 8 dereferenceable(8) %628)
          to label %632 unwind label %659

632:                                              ; preds = %627
  %633 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(256) %626, ptr noundef %57)
          to label %634 unwind label %663

634:                                              ; preds = %632
  %635 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsEPKc(ptr noundef nonnull align 8 dereferenceable(256) %633, ptr noundef @.str.9)
          to label %636 unwind label %663

636:                                              ; preds = %634
  %637 = load ptr, ptr %55, align 8, !tbaa !5
  %638 = load ptr, ptr %637, align 8, !tbaa !9
  %639 = getelementptr inbounds ptr, ptr %638, i64 2
  %640 = load ptr, ptr %639, align 8
  %641 = call noundef ptr %640(ptr noundef nonnull align 8 dereferenceable(8) %637) #13
  %642 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsEPKc(ptr noundef nonnull align 8 dereferenceable(256) %635, ptr noundef %641)
          to label %643 unwind label %663

643:                                              ; preds = %636
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #13
  call void @_ZN3LogD1Ev(ptr noundef nonnull align 8 dereferenceable(256) %56) #13
  call void @llvm.lifetime.end.p0(i64 256, ptr %56) #13
  %644 = load ptr, ptr %5, align 8, !tbaa !5
  %645 = call noundef ptr @_ZNKSt19__shared_ptr_accessI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1) #13
  %646 = load ptr, ptr %645, align 8, !tbaa !9
  %647 = getelementptr inbounds ptr, ptr %646, i64 0
  %648 = load ptr, ptr %647, align 8
  invoke void %648(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %58, ptr noundef nonnull align 8 dereferenceable(8) %645)
          to label %649 unwind label %669

649:                                              ; preds = %643
  invoke void @_ZN7BanList9appendBanENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEt(ptr noundef nonnull align 8 dereferenceable(48) %644, ptr noundef %58, i16 noundef zeroext 34)
          to label %650 unwind label %673

650:                                              ; preds = %649
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #13
  invoke void @__cxa_end_catch()
          to label %651 unwind label %677

651:                                              ; preds = %650
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #13
  br label %652

652:                                              ; preds = %651, %613
  invoke void @_ZN14TransmitBlocksC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %59, ptr noundef nonnull align 8 dereferenceable(32) %54)
          to label %653 unwind label %684

653:                                              ; preds = %652
  call void @_ZNSt10shared_ptrI13PeerInterfaceEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %60, ptr noundef nonnull align 8 dereferenceable(16) %1) #13
  invoke void @_ZN21NetworkMessageHandler20handleTransmitBlocksE14TransmitBlocksSt10shared_ptrI13PeerInterfaceE(ptr noundef %59, ptr noundef %60)
          to label %654 unwind label %688

654:                                              ; preds = %653
  call void @_ZNSt12__shared_ptrI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %60) #13
  call void @_ZN14TransmitBlocksD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #13
  store i32 2, ptr %11, align 4
  call void @_ZN14TransmitBlocksD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr %54) #13
  br label %1201

655:                                              ; preds = %622
  %656 = landingpad { ptr, i32 }
          cleanup
  %657 = extractvalue { ptr, i32 } %656, 0
  store ptr %657, ptr %7, align 8
  %658 = extractvalue { ptr, i32 } %656, 1
  store i32 %658, ptr %8, align 4
  br label %668

659:                                              ; preds = %627, %625
  %660 = landingpad { ptr, i32 }
          cleanup
  %661 = extractvalue { ptr, i32 } %660, 0
  store ptr %661, ptr %7, align 8
  %662 = extractvalue { ptr, i32 } %660, 1
  store i32 %662, ptr %8, align 4
  br label %667

663:                                              ; preds = %636, %634, %632
  %664 = landingpad { ptr, i32 }
          cleanup
  %665 = extractvalue { ptr, i32 } %664, 0
  store ptr %665, ptr %7, align 8
  %666 = extractvalue { ptr, i32 } %664, 1
  store i32 %666, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #13
  br label %667

667:                                              ; preds = %663, %659
  call void @_ZN3LogD1Ev(ptr noundef nonnull align 8 dereferenceable(256) %56) #13
  br label %668

668:                                              ; preds = %667, %655
  call void @llvm.lifetime.end.p0(i64 256, ptr %56) #13
  br label %681

669:                                              ; preds = %643
  %670 = landingpad { ptr, i32 }
          cleanup
  %671 = extractvalue { ptr, i32 } %670, 0
  store ptr %671, ptr %7, align 8
  %672 = extractvalue { ptr, i32 } %670, 1
  store i32 %672, ptr %8, align 4
  br label %681

673:                                              ; preds = %649
  %674 = landingpad { ptr, i32 }
          cleanup
  %675 = extractvalue { ptr, i32 } %674, 0
  store ptr %675, ptr %7, align 8
  %676 = extractvalue { ptr, i32 } %674, 1
  store i32 %676, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #13
  br label %681

677:                                              ; preds = %650
  %678 = landingpad { ptr, i32 }
          cleanup
  %679 = extractvalue { ptr, i32 } %678, 0
  store ptr %679, ptr %7, align 8
  %680 = extractvalue { ptr, i32 } %678, 1
  store i32 %680, ptr %8, align 4
  br label %683

681:                                              ; preds = %673, %669, %668
  invoke void @__cxa_end_catch()
          to label %682 unwind label %1217

682:                                              ; preds = %681
  br label %683

683:                                              ; preds = %682, %677
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #13
  br label %692

684:                                              ; preds = %652
  %685 = landingpad { ptr, i32 }
          cleanup
  %686 = extractvalue { ptr, i32 } %685, 0
  store ptr %686, ptr %7, align 8
  %687 = extractvalue { ptr, i32 } %685, 1
  store i32 %687, ptr %8, align 4
  br label %692

688:                                              ; preds = %653
  %689 = landingpad { ptr, i32 }
          cleanup
  %690 = extractvalue { ptr, i32 } %689, 0
  store ptr %690, ptr %7, align 8
  %691 = extractvalue { ptr, i32 } %689, 1
  store i32 %691, ptr %8, align 4
  call void @_ZNSt12__shared_ptrI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %60) #13
  call void @_ZN14TransmitBlocksD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #13
  br label %692

692:                                              ; preds = %688, %684, %683, %618
  call void @_ZN14TransmitBlocksD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr %54) #13
  br label %1210

693:                                              ; preds = %154
  call void @llvm.lifetime.start.p0(i64 32, ptr %61) #13
  call void @_ZN13TransmitPeersC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #13
  %694 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN11CDataStreamrsI13TransmitPeersEERS_RT_(ptr noundef nonnull align 8 dereferenceable(36) %13, ptr noundef nonnull align 8 dereferenceable(32) %61)
          to label %695 unwind label %696

695:                                              ; preds = %693
  br label %734

696:                                              ; preds = %693
  %697 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %698 = extractvalue { ptr, i32 } %697, 0
  store ptr %698, ptr %7, align 8
  %699 = extractvalue { ptr, i32 } %697, 1
  store i32 %699, ptr %8, align 4
  br label %700

700:                                              ; preds = %696
  %701 = load i32, ptr %8, align 4
  %702 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTISt9exception) #13
  %703 = icmp eq i32 %701, %702
  br i1 %703, label %704, label %774

704:                                              ; preds = %700
  call void @llvm.lifetime.start.p0(i64 8, ptr %62) #13
  %705 = load ptr, ptr %7, align 8
  %706 = call ptr @__cxa_begin_catch(ptr %705) #13
  store ptr %706, ptr %62, align 8
  call void @llvm.lifetime.start.p0(i64 256, ptr %63) #13
  invoke void @_ZN3LogC1Eh(ptr noundef nonnull align 8 dereferenceable(256) %63, i8 noundef zeroext 3)
          to label %707 unwind label %737

707:                                              ; preds = %704
  %708 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsEPKc(ptr noundef nonnull align 8 dereferenceable(256) %63, ptr noundef @.str.14)
          to label %709 unwind label %741

709:                                              ; preds = %707
  %710 = call noundef ptr @_ZNKSt19__shared_ptr_accessI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1) #13
  %711 = load ptr, ptr %710, align 8, !tbaa !9
  %712 = getelementptr inbounds ptr, ptr %711, i64 0
  %713 = load ptr, ptr %712, align 8
  invoke void %713(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %64, ptr noundef nonnull align 8 dereferenceable(8) %710)
          to label %714 unwind label %741

714:                                              ; preds = %709
  %715 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(256) %708, ptr noundef %64)
          to label %716 unwind label %745

716:                                              ; preds = %714
  %717 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsEPKc(ptr noundef nonnull align 8 dereferenceable(256) %715, ptr noundef @.str.9)
          to label %718 unwind label %745

718:                                              ; preds = %716
  %719 = load ptr, ptr %62, align 8, !tbaa !5
  %720 = load ptr, ptr %719, align 8, !tbaa !9
  %721 = getelementptr inbounds ptr, ptr %720, i64 2
  %722 = load ptr, ptr %721, align 8
  %723 = call noundef ptr %722(ptr noundef nonnull align 8 dereferenceable(8) %719) #13
  %724 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsEPKc(ptr noundef nonnull align 8 dereferenceable(256) %717, ptr noundef %723)
          to label %725 unwind label %745

725:                                              ; preds = %718
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #13
  call void @_ZN3LogD1Ev(ptr noundef nonnull align 8 dereferenceable(256) %63) #13
  call void @llvm.lifetime.end.p0(i64 256, ptr %63) #13
  %726 = load ptr, ptr %5, align 8, !tbaa !5
  %727 = call noundef ptr @_ZNKSt19__shared_ptr_accessI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1) #13
  %728 = load ptr, ptr %727, align 8, !tbaa !9
  %729 = getelementptr inbounds ptr, ptr %728, i64 0
  %730 = load ptr, ptr %729, align 8
  invoke void %730(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %65, ptr noundef nonnull align 8 dereferenceable(8) %727)
          to label %731 unwind label %751

731:                                              ; preds = %725
  invoke void @_ZN7BanList9appendBanENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEt(ptr noundef nonnull align 8 dereferenceable(48) %726, ptr noundef %65, i16 noundef zeroext 34)
          to label %732 unwind label %755

732:                                              ; preds = %731
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #13
  invoke void @__cxa_end_catch()
          to label %733 unwind label %759

733:                                              ; preds = %732
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #13
  br label %734

734:                                              ; preds = %733, %695
  invoke void @_ZN13TransmitPeersC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %66, ptr noundef nonnull align 8 dereferenceable(32) %61)
          to label %735 unwind label %766

735:                                              ; preds = %734
  call void @_ZNSt10shared_ptrI13PeerInterfaceEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %67, ptr noundef nonnull align 8 dereferenceable(16) %1) #13
  invoke void @_ZN21NetworkMessageHandler19handleTransmitPeersE13TransmitPeersSt10shared_ptrI13PeerInterfaceE(ptr noundef %66, ptr noundef %67)
          to label %736 unwind label %770

736:                                              ; preds = %735
  call void @_ZNSt12__shared_ptrI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %67) #13
  call void @_ZN13TransmitPeersD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #13
  store i32 2, ptr %11, align 4
  call void @_ZN13TransmitPeersD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr %61) #13
  br label %1201

737:                                              ; preds = %704
  %738 = landingpad { ptr, i32 }
          cleanup
  %739 = extractvalue { ptr, i32 } %738, 0
  store ptr %739, ptr %7, align 8
  %740 = extractvalue { ptr, i32 } %738, 1
  store i32 %740, ptr %8, align 4
  br label %750

741:                                              ; preds = %709, %707
  %742 = landingpad { ptr, i32 }
          cleanup
  %743 = extractvalue { ptr, i32 } %742, 0
  store ptr %743, ptr %7, align 8
  %744 = extractvalue { ptr, i32 } %742, 1
  store i32 %744, ptr %8, align 4
  br label %749

745:                                              ; preds = %718, %716, %714
  %746 = landingpad { ptr, i32 }
          cleanup
  %747 = extractvalue { ptr, i32 } %746, 0
  store ptr %747, ptr %7, align 8
  %748 = extractvalue { ptr, i32 } %746, 1
  store i32 %748, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #13
  br label %749

749:                                              ; preds = %745, %741
  call void @_ZN3LogD1Ev(ptr noundef nonnull align 8 dereferenceable(256) %63) #13
  br label %750

750:                                              ; preds = %749, %737
  call void @llvm.lifetime.end.p0(i64 256, ptr %63) #13
  br label %763

751:                                              ; preds = %725
  %752 = landingpad { ptr, i32 }
          cleanup
  %753 = extractvalue { ptr, i32 } %752, 0
  store ptr %753, ptr %7, align 8
  %754 = extractvalue { ptr, i32 } %752, 1
  store i32 %754, ptr %8, align 4
  br label %763

755:                                              ; preds = %731
  %756 = landingpad { ptr, i32 }
          cleanup
  %757 = extractvalue { ptr, i32 } %756, 0
  store ptr %757, ptr %7, align 8
  %758 = extractvalue { ptr, i32 } %756, 1
  store i32 %758, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #13
  br label %763

759:                                              ; preds = %732
  %760 = landingpad { ptr, i32 }
          cleanup
  %761 = extractvalue { ptr, i32 } %760, 0
  store ptr %761, ptr %7, align 8
  %762 = extractvalue { ptr, i32 } %760, 1
  store i32 %762, ptr %8, align 4
  br label %765

763:                                              ; preds = %755, %751, %750
  invoke void @__cxa_end_catch()
          to label %764 unwind label %1217

764:                                              ; preds = %763
  br label %765

765:                                              ; preds = %764, %759
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #13
  br label %774

766:                                              ; preds = %734
  %767 = landingpad { ptr, i32 }
          cleanup
  %768 = extractvalue { ptr, i32 } %767, 0
  store ptr %768, ptr %7, align 8
  %769 = extractvalue { ptr, i32 } %767, 1
  store i32 %769, ptr %8, align 4
  br label %774

770:                                              ; preds = %735
  %771 = landingpad { ptr, i32 }
          cleanup
  %772 = extractvalue { ptr, i32 } %771, 0
  store ptr %772, ptr %7, align 8
  %773 = extractvalue { ptr, i32 } %771, 1
  store i32 %773, ptr %8, align 4
  call void @_ZNSt12__shared_ptrI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %67) #13
  call void @_ZN13TransmitPeersD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #13
  br label %774

774:                                              ; preds = %770, %766, %765, %700
  call void @_ZN13TransmitPeersD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr %61) #13
  br label %1210

775:                                              ; preds = %154
  call void @llvm.lifetime.start.p0(i64 32, ptr %68) #13
  call void @_ZN24TransmitBlockchainHeightC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #13
  %776 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN11CDataStreamrsI24TransmitBlockchainHeightEERS_RT_(ptr noundef nonnull align 8 dereferenceable(36) %13, ptr noundef nonnull align 8 dereferenceable(32) %68)
          to label %777 unwind label %778

777:                                              ; preds = %775
  br label %816

778:                                              ; preds = %775
  %779 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %780 = extractvalue { ptr, i32 } %779, 0
  store ptr %780, ptr %7, align 8
  %781 = extractvalue { ptr, i32 } %779, 1
  store i32 %781, ptr %8, align 4
  br label %782

782:                                              ; preds = %778
  %783 = load i32, ptr %8, align 4
  %784 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTISt9exception) #13
  %785 = icmp eq i32 %783, %784
  br i1 %785, label %786, label %856

786:                                              ; preds = %782
  call void @llvm.lifetime.start.p0(i64 8, ptr %69) #13
  %787 = load ptr, ptr %7, align 8
  %788 = call ptr @__cxa_begin_catch(ptr %787) #13
  store ptr %788, ptr %69, align 8
  call void @llvm.lifetime.start.p0(i64 256, ptr %70) #13
  invoke void @_ZN3LogC1Eh(ptr noundef nonnull align 8 dereferenceable(256) %70, i8 noundef zeroext 3)
          to label %789 unwind label %819

789:                                              ; preds = %786
  %790 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsEPKc(ptr noundef nonnull align 8 dereferenceable(256) %70, ptr noundef @.str.15)
          to label %791 unwind label %823

791:                                              ; preds = %789
  %792 = call noundef ptr @_ZNKSt19__shared_ptr_accessI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1) #13
  %793 = load ptr, ptr %792, align 8, !tbaa !9
  %794 = getelementptr inbounds ptr, ptr %793, i64 0
  %795 = load ptr, ptr %794, align 8
  invoke void %795(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %71, ptr noundef nonnull align 8 dereferenceable(8) %792)
          to label %796 unwind label %823

796:                                              ; preds = %791
  %797 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(256) %790, ptr noundef %71)
          to label %798 unwind label %827

798:                                              ; preds = %796
  %799 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsEPKc(ptr noundef nonnull align 8 dereferenceable(256) %797, ptr noundef @.str.9)
          to label %800 unwind label %827

800:                                              ; preds = %798
  %801 = load ptr, ptr %69, align 8, !tbaa !5
  %802 = load ptr, ptr %801, align 8, !tbaa !9
  %803 = getelementptr inbounds ptr, ptr %802, i64 2
  %804 = load ptr, ptr %803, align 8
  %805 = call noundef ptr %804(ptr noundef nonnull align 8 dereferenceable(8) %801) #13
  %806 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsEPKc(ptr noundef nonnull align 8 dereferenceable(256) %799, ptr noundef %805)
          to label %807 unwind label %827

807:                                              ; preds = %800
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %71) #13
  call void @_ZN3LogD1Ev(ptr noundef nonnull align 8 dereferenceable(256) %70) #13
  call void @llvm.lifetime.end.p0(i64 256, ptr %70) #13
  %808 = load ptr, ptr %5, align 8, !tbaa !5
  %809 = call noundef ptr @_ZNKSt19__shared_ptr_accessI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1) #13
  %810 = load ptr, ptr %809, align 8, !tbaa !9
  %811 = getelementptr inbounds ptr, ptr %810, i64 0
  %812 = load ptr, ptr %811, align 8
  invoke void %812(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %72, ptr noundef nonnull align 8 dereferenceable(8) %809)
          to label %813 unwind label %833

813:                                              ; preds = %807
  invoke void @_ZN7BanList9appendBanENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEt(ptr noundef nonnull align 8 dereferenceable(48) %808, ptr noundef %72, i16 noundef zeroext 34)
          to label %814 unwind label %837

814:                                              ; preds = %813
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %72) #13
  invoke void @__cxa_end_catch()
          to label %815 unwind label %841

815:                                              ; preds = %814
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #13
  br label %816

816:                                              ; preds = %815, %777
  invoke void @_ZN24TransmitBlockchainHeightC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %73, ptr noundef nonnull align 8 dereferenceable(32) %68)
          to label %817 unwind label %848

817:                                              ; preds = %816
  call void @_ZNSt10shared_ptrI13PeerInterfaceEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %74, ptr noundef nonnull align 8 dereferenceable(16) %1) #13
  invoke void @_ZN21NetworkMessageHandler30handleTransmitBlockchainHeightE24TransmitBlockchainHeightSt10shared_ptrI13PeerInterfaceE(ptr noundef %73, ptr noundef %74)
          to label %818 unwind label %852

818:                                              ; preds = %817
  call void @_ZNSt12__shared_ptrI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %74) #13
  call void @_ZN24TransmitBlockchainHeightD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #13
  store i32 2, ptr %11, align 4
  call void @_ZN24TransmitBlockchainHeightD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr %68) #13
  br label %1201

819:                                              ; preds = %786
  %820 = landingpad { ptr, i32 }
          cleanup
  %821 = extractvalue { ptr, i32 } %820, 0
  store ptr %821, ptr %7, align 8
  %822 = extractvalue { ptr, i32 } %820, 1
  store i32 %822, ptr %8, align 4
  br label %832

823:                                              ; preds = %791, %789
  %824 = landingpad { ptr, i32 }
          cleanup
  %825 = extractvalue { ptr, i32 } %824, 0
  store ptr %825, ptr %7, align 8
  %826 = extractvalue { ptr, i32 } %824, 1
  store i32 %826, ptr %8, align 4
  br label %831

827:                                              ; preds = %800, %798, %796
  %828 = landingpad { ptr, i32 }
          cleanup
  %829 = extractvalue { ptr, i32 } %828, 0
  store ptr %829, ptr %7, align 8
  %830 = extractvalue { ptr, i32 } %828, 1
  store i32 %830, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %71) #13
  br label %831

831:                                              ; preds = %827, %823
  call void @_ZN3LogD1Ev(ptr noundef nonnull align 8 dereferenceable(256) %70) #13
  br label %832

832:                                              ; preds = %831, %819
  call void @llvm.lifetime.end.p0(i64 256, ptr %70) #13
  br label %845

833:                                              ; preds = %807
  %834 = landingpad { ptr, i32 }
          cleanup
  %835 = extractvalue { ptr, i32 } %834, 0
  store ptr %835, ptr %7, align 8
  %836 = extractvalue { ptr, i32 } %834, 1
  store i32 %836, ptr %8, align 4
  br label %845

837:                                              ; preds = %813
  %838 = landingpad { ptr, i32 }
          cleanup
  %839 = extractvalue { ptr, i32 } %838, 0
  store ptr %839, ptr %7, align 8
  %840 = extractvalue { ptr, i32 } %838, 1
  store i32 %840, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %72) #13
  br label %845

841:                                              ; preds = %814
  %842 = landingpad { ptr, i32 }
          cleanup
  %843 = extractvalue { ptr, i32 } %842, 0
  store ptr %843, ptr %7, align 8
  %844 = extractvalue { ptr, i32 } %842, 1
  store i32 %844, ptr %8, align 4
  br label %847

845:                                              ; preds = %837, %833, %832
  invoke void @__cxa_end_catch()
          to label %846 unwind label %1217

846:                                              ; preds = %845
  br label %847

847:                                              ; preds = %846, %841
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #13
  br label %856

848:                                              ; preds = %816
  %849 = landingpad { ptr, i32 }
          cleanup
  %850 = extractvalue { ptr, i32 } %849, 0
  store ptr %850, ptr %7, align 8
  %851 = extractvalue { ptr, i32 } %849, 1
  store i32 %851, ptr %8, align 4
  br label %856

852:                                              ; preds = %817
  %853 = landingpad { ptr, i32 }
          cleanup
  %854 = extractvalue { ptr, i32 } %853, 0
  store ptr %854, ptr %7, align 8
  %855 = extractvalue { ptr, i32 } %853, 1
  store i32 %855, ptr %8, align 4
  call void @_ZNSt12__shared_ptrI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %74) #13
  call void @_ZN24TransmitBlockchainHeightD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #13
  br label %856

856:                                              ; preds = %852, %848, %847, %782
  call void @_ZN24TransmitBlockchainHeightD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #13
  call void @llvm.lifetime.end.p0(i64 32, ptr %68) #13
  br label %1210

857:                                              ; preds = %154
  call void @llvm.lifetime.start.p0(i64 408, ptr %75) #13
  call void @_ZN23TransmitBestBlockHeaderC2Ev(ptr noundef nonnull align 8 dereferenceable(408) %75) #13
  %858 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN11CDataStreamrsI23TransmitBestBlockHeaderEERS_RT_(ptr noundef nonnull align 8 dereferenceable(36) %13, ptr noundef nonnull align 8 dereferenceable(408) %75)
          to label %859 unwind label %860

859:                                              ; preds = %857
  br label %898

860:                                              ; preds = %857
  %861 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %862 = extractvalue { ptr, i32 } %861, 0
  store ptr %862, ptr %7, align 8
  %863 = extractvalue { ptr, i32 } %861, 1
  store i32 %863, ptr %8, align 4
  br label %864

864:                                              ; preds = %860
  %865 = load i32, ptr %8, align 4
  %866 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTISt9exception) #13
  %867 = icmp eq i32 %865, %866
  br i1 %867, label %868, label %938

868:                                              ; preds = %864
  call void @llvm.lifetime.start.p0(i64 8, ptr %76) #13
  %869 = load ptr, ptr %7, align 8
  %870 = call ptr @__cxa_begin_catch(ptr %869) #13
  store ptr %870, ptr %76, align 8
  call void @llvm.lifetime.start.p0(i64 256, ptr %77) #13
  invoke void @_ZN3LogC1Eh(ptr noundef nonnull align 8 dereferenceable(256) %77, i8 noundef zeroext 3)
          to label %871 unwind label %901

871:                                              ; preds = %868
  %872 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsEPKc(ptr noundef nonnull align 8 dereferenceable(256) %77, ptr noundef @.str.16)
          to label %873 unwind label %905

873:                                              ; preds = %871
  %874 = call noundef ptr @_ZNKSt19__shared_ptr_accessI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1) #13
  %875 = load ptr, ptr %874, align 8, !tbaa !9
  %876 = getelementptr inbounds ptr, ptr %875, i64 0
  %877 = load ptr, ptr %876, align 8
  invoke void %877(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %78, ptr noundef nonnull align 8 dereferenceable(8) %874)
          to label %878 unwind label %905

878:                                              ; preds = %873
  %879 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(256) %872, ptr noundef %78)
          to label %880 unwind label %909

880:                                              ; preds = %878
  %881 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsEPKc(ptr noundef nonnull align 8 dereferenceable(256) %879, ptr noundef @.str.9)
          to label %882 unwind label %909

882:                                              ; preds = %880
  %883 = load ptr, ptr %76, align 8, !tbaa !5
  %884 = load ptr, ptr %883, align 8, !tbaa !9
  %885 = getelementptr inbounds ptr, ptr %884, i64 2
  %886 = load ptr, ptr %885, align 8
  %887 = call noundef ptr %886(ptr noundef nonnull align 8 dereferenceable(8) %883) #13
  %888 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsEPKc(ptr noundef nonnull align 8 dereferenceable(256) %881, ptr noundef %887)
          to label %889 unwind label %909

889:                                              ; preds = %882
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #13
  call void @_ZN3LogD1Ev(ptr noundef nonnull align 8 dereferenceable(256) %77) #13
  call void @llvm.lifetime.end.p0(i64 256, ptr %77) #13
  %890 = load ptr, ptr %5, align 8, !tbaa !5
  %891 = call noundef ptr @_ZNKSt19__shared_ptr_accessI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1) #13
  %892 = load ptr, ptr %891, align 8, !tbaa !9
  %893 = getelementptr inbounds ptr, ptr %892, i64 0
  %894 = load ptr, ptr %893, align 8
  invoke void %894(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %79, ptr noundef nonnull align 8 dereferenceable(8) %891)
          to label %895 unwind label %915

895:                                              ; preds = %889
  invoke void @_ZN7BanList9appendBanENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEt(ptr noundef nonnull align 8 dereferenceable(48) %890, ptr noundef %79, i16 noundef zeroext 34)
          to label %896 unwind label %919

896:                                              ; preds = %895
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #13
  invoke void @__cxa_end_catch()
          to label %897 unwind label %923

897:                                              ; preds = %896
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #13
  br label %898

898:                                              ; preds = %897, %859
  invoke void @_ZN23TransmitBestBlockHeaderC2ERKS_(ptr noundef nonnull align 8 dereferenceable(408) %80, ptr noundef nonnull align 8 dereferenceable(408) %75)
          to label %899 unwind label %930

899:                                              ; preds = %898
  call void @_ZNSt10shared_ptrI13PeerInterfaceEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %81, ptr noundef nonnull align 8 dereferenceable(16) %1) #13
  invoke void @_ZN21NetworkMessageHandler29handleTransmitBestBlockHeaderE23TransmitBestBlockHeaderSt10shared_ptrI13PeerInterfaceE(ptr noundef %80, ptr noundef %81)
          to label %900 unwind label %934

900:                                              ; preds = %899
  call void @_ZNSt12__shared_ptrI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %81) #13
  call void @_ZN23TransmitBestBlockHeaderD2Ev(ptr noundef nonnull align 8 dereferenceable(408) %80) #13
  store i32 2, ptr %11, align 4
  call void @_ZN23TransmitBestBlockHeaderD2Ev(ptr noundef nonnull align 8 dereferenceable(408) %75) #13
  call void @llvm.lifetime.end.p0(i64 408, ptr %75) #13
  br label %1201

901:                                              ; preds = %868
  %902 = landingpad { ptr, i32 }
          cleanup
  %903 = extractvalue { ptr, i32 } %902, 0
  store ptr %903, ptr %7, align 8
  %904 = extractvalue { ptr, i32 } %902, 1
  store i32 %904, ptr %8, align 4
  br label %914

905:                                              ; preds = %873, %871
  %906 = landingpad { ptr, i32 }
          cleanup
  %907 = extractvalue { ptr, i32 } %906, 0
  store ptr %907, ptr %7, align 8
  %908 = extractvalue { ptr, i32 } %906, 1
  store i32 %908, ptr %8, align 4
  br label %913

909:                                              ; preds = %882, %880, %878
  %910 = landingpad { ptr, i32 }
          cleanup
  %911 = extractvalue { ptr, i32 } %910, 0
  store ptr %911, ptr %7, align 8
  %912 = extractvalue { ptr, i32 } %910, 1
  store i32 %912, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #13
  br label %913

913:                                              ; preds = %909, %905
  call void @_ZN3LogD1Ev(ptr noundef nonnull align 8 dereferenceable(256) %77) #13
  br label %914

914:                                              ; preds = %913, %901
  call void @llvm.lifetime.end.p0(i64 256, ptr %77) #13
  br label %927

915:                                              ; preds = %889
  %916 = landingpad { ptr, i32 }
          cleanup
  %917 = extractvalue { ptr, i32 } %916, 0
  store ptr %917, ptr %7, align 8
  %918 = extractvalue { ptr, i32 } %916, 1
  store i32 %918, ptr %8, align 4
  br label %927

919:                                              ; preds = %895
  %920 = landingpad { ptr, i32 }
          cleanup
  %921 = extractvalue { ptr, i32 } %920, 0
  store ptr %921, ptr %7, align 8
  %922 = extractvalue { ptr, i32 } %920, 1
  store i32 %922, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #13
  br label %927

923:                                              ; preds = %896
  %924 = landingpad { ptr, i32 }
          cleanup
  %925 = extractvalue { ptr, i32 } %924, 0
  store ptr %925, ptr %7, align 8
  %926 = extractvalue { ptr, i32 } %924, 1
  store i32 %926, ptr %8, align 4
  br label %929

927:                                              ; preds = %919, %915, %914
  invoke void @__cxa_end_catch()
          to label %928 unwind label %1217

928:                                              ; preds = %927
  br label %929

929:                                              ; preds = %928, %923
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #13
  br label %938

930:                                              ; preds = %898
  %931 = landingpad { ptr, i32 }
          cleanup
  %932 = extractvalue { ptr, i32 } %931, 0
  store ptr %932, ptr %7, align 8
  %933 = extractvalue { ptr, i32 } %931, 1
  store i32 %933, ptr %8, align 4
  br label %938

934:                                              ; preds = %899
  %935 = landingpad { ptr, i32 }
          cleanup
  %936 = extractvalue { ptr, i32 } %935, 0
  store ptr %936, ptr %7, align 8
  %937 = extractvalue { ptr, i32 } %935, 1
  store i32 %937, ptr %8, align 4
  call void @_ZNSt12__shared_ptrI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %81) #13
  call void @_ZN23TransmitBestBlockHeaderD2Ev(ptr noundef nonnull align 8 dereferenceable(408) %80) #13
  br label %938

938:                                              ; preds = %934, %930, %929, %864
  call void @_ZN23TransmitBestBlockHeaderD2Ev(ptr noundef nonnull align 8 dereferenceable(408) %75) #13
  call void @llvm.lifetime.end.p0(i64 408, ptr %75) #13
  br label %1210

939:                                              ; preds = %154
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #13
  call void @_ZN15TransmitVersionC2Ev(ptr noundef nonnull align 2 dereferenceable(4) %82) #13
  %940 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN11CDataStreamrsI15TransmitVersionEERS_RT_(ptr noundef nonnull align 8 dereferenceable(36) %13, ptr noundef nonnull align 2 dereferenceable(4) %82)
          to label %941 unwind label %942

941:                                              ; preds = %939
  br label %980

942:                                              ; preds = %939
  %943 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %944 = extractvalue { ptr, i32 } %943, 0
  store ptr %944, ptr %7, align 8
  %945 = extractvalue { ptr, i32 } %943, 1
  store i32 %945, ptr %8, align 4
  br label %946

946:                                              ; preds = %942
  %947 = load i32, ptr %8, align 4
  %948 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTISt9exception) #13
  %949 = icmp eq i32 %947, %948
  br i1 %949, label %950, label %1016

950:                                              ; preds = %946
  call void @llvm.lifetime.start.p0(i64 8, ptr %83) #13
  %951 = load ptr, ptr %7, align 8
  %952 = call ptr @__cxa_begin_catch(ptr %951) #13
  store ptr %952, ptr %83, align 8
  call void @llvm.lifetime.start.p0(i64 256, ptr %84) #13
  invoke void @_ZN3LogC1Eh(ptr noundef nonnull align 8 dereferenceable(256) %84, i8 noundef zeroext 3)
          to label %953 unwind label %983

953:                                              ; preds = %950
  %954 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsEPKc(ptr noundef nonnull align 8 dereferenceable(256) %84, ptr noundef @.str.17)
          to label %955 unwind label %987

955:                                              ; preds = %953
  %956 = call noundef ptr @_ZNKSt19__shared_ptr_accessI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1) #13
  %957 = load ptr, ptr %956, align 8, !tbaa !9
  %958 = getelementptr inbounds ptr, ptr %957, i64 0
  %959 = load ptr, ptr %958, align 8
  invoke void %959(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %85, ptr noundef nonnull align 8 dereferenceable(8) %956)
          to label %960 unwind label %987

960:                                              ; preds = %955
  %961 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(256) %954, ptr noundef %85)
          to label %962 unwind label %991

962:                                              ; preds = %960
  %963 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsEPKc(ptr noundef nonnull align 8 dereferenceable(256) %961, ptr noundef @.str.9)
          to label %964 unwind label %991

964:                                              ; preds = %962
  %965 = load ptr, ptr %83, align 8, !tbaa !5
  %966 = load ptr, ptr %965, align 8, !tbaa !9
  %967 = getelementptr inbounds ptr, ptr %966, i64 2
  %968 = load ptr, ptr %967, align 8
  %969 = call noundef ptr %968(ptr noundef nonnull align 8 dereferenceable(8) %965) #13
  %970 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsEPKc(ptr noundef nonnull align 8 dereferenceable(256) %963, ptr noundef %969)
          to label %971 unwind label %991

971:                                              ; preds = %964
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %85) #13
  call void @_ZN3LogD1Ev(ptr noundef nonnull align 8 dereferenceable(256) %84) #13
  call void @llvm.lifetime.end.p0(i64 256, ptr %84) #13
  %972 = load ptr, ptr %5, align 8, !tbaa !5
  %973 = call noundef ptr @_ZNKSt19__shared_ptr_accessI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1) #13
  %974 = load ptr, ptr %973, align 8, !tbaa !9
  %975 = getelementptr inbounds ptr, ptr %974, i64 0
  %976 = load ptr, ptr %975, align 8
  invoke void %976(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %86, ptr noundef nonnull align 8 dereferenceable(8) %973)
          to label %977 unwind label %997

977:                                              ; preds = %971
  invoke void @_ZN7BanList9appendBanENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEt(ptr noundef nonnull align 8 dereferenceable(48) %972, ptr noundef %86, i16 noundef zeroext 34)
          to label %978 unwind label %1001

978:                                              ; preds = %977
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %86) #13
  invoke void @__cxa_end_catch()
          to label %979 unwind label %1005

979:                                              ; preds = %978
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #13
  br label %980

980:                                              ; preds = %979, %941
  call void @llvm.memcpy.p0.p0.i64(ptr align 2 %87, ptr align 2 %82, i64 4, i1 false), !tbaa.struct !15
  call void @_ZNSt10shared_ptrI13PeerInterfaceEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %88, ptr noundef nonnull align 8 dereferenceable(16) %1) #13
  %981 = load i32, ptr %87, align 2
  invoke void @_ZN21NetworkMessageHandler21handleTransmitVersionE15TransmitVersionSt10shared_ptrI13PeerInterfaceE(i32 %981, ptr noundef %88)
          to label %982 unwind label %1012

982:                                              ; preds = %980
  call void @_ZNSt12__shared_ptrI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %88) #13
  store i32 2, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #13
  br label %1201

983:                                              ; preds = %950
  %984 = landingpad { ptr, i32 }
          cleanup
  %985 = extractvalue { ptr, i32 } %984, 0
  store ptr %985, ptr %7, align 8
  %986 = extractvalue { ptr, i32 } %984, 1
  store i32 %986, ptr %8, align 4
  br label %996

987:                                              ; preds = %955, %953
  %988 = landingpad { ptr, i32 }
          cleanup
  %989 = extractvalue { ptr, i32 } %988, 0
  store ptr %989, ptr %7, align 8
  %990 = extractvalue { ptr, i32 } %988, 1
  store i32 %990, ptr %8, align 4
  br label %995

991:                                              ; preds = %964, %962, %960
  %992 = landingpad { ptr, i32 }
          cleanup
  %993 = extractvalue { ptr, i32 } %992, 0
  store ptr %993, ptr %7, align 8
  %994 = extractvalue { ptr, i32 } %992, 1
  store i32 %994, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %85) #13
  br label %995

995:                                              ; preds = %991, %987
  call void @_ZN3LogD1Ev(ptr noundef nonnull align 8 dereferenceable(256) %84) #13
  br label %996

996:                                              ; preds = %995, %983
  call void @llvm.lifetime.end.p0(i64 256, ptr %84) #13
  br label %1009

997:                                              ; preds = %971
  %998 = landingpad { ptr, i32 }
          cleanup
  %999 = extractvalue { ptr, i32 } %998, 0
  store ptr %999, ptr %7, align 8
  %1000 = extractvalue { ptr, i32 } %998, 1
  store i32 %1000, ptr %8, align 4
  br label %1009

1001:                                             ; preds = %977
  %1002 = landingpad { ptr, i32 }
          cleanup
  %1003 = extractvalue { ptr, i32 } %1002, 0
  store ptr %1003, ptr %7, align 8
  %1004 = extractvalue { ptr, i32 } %1002, 1
  store i32 %1004, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %86) #13
  br label %1009

1005:                                             ; preds = %978
  %1006 = landingpad { ptr, i32 }
          cleanup
  %1007 = extractvalue { ptr, i32 } %1006, 0
  store ptr %1007, ptr %7, align 8
  %1008 = extractvalue { ptr, i32 } %1006, 1
  store i32 %1008, ptr %8, align 4
  br label %1011

1009:                                             ; preds = %1001, %997, %996
  invoke void @__cxa_end_catch()
          to label %1010 unwind label %1217

1010:                                             ; preds = %1009
  br label %1011

1011:                                             ; preds = %1010, %1005
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #13
  br label %1016

1012:                                             ; preds = %980
  %1013 = landingpad { ptr, i32 }
          cleanup
  %1014 = extractvalue { ptr, i32 } %1013, 0
  store ptr %1014, ptr %7, align 8
  %1015 = extractvalue { ptr, i32 } %1013, 1
  store i32 %1015, ptr %8, align 4
  call void @_ZNSt12__shared_ptrI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %88) #13
  br label %1016

1016:                                             ; preds = %1012, %1011, %946
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #13
  br label %1210

1017:                                             ; preds = %154
  call void @llvm.lifetime.start.p0(i64 1, ptr %89) #13
  call void @_ZN14TransmitStatusC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %89) #13
  %1018 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN11CDataStreamrsI14TransmitStatusEERS_RT_(ptr noundef nonnull align 8 dereferenceable(36) %13, ptr noundef nonnull align 1 dereferenceable(1) %89)
          to label %1019 unwind label %1020

1019:                                             ; preds = %1017
  br label %1058

1020:                                             ; preds = %1017
  %1021 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %1022 = extractvalue { ptr, i32 } %1021, 0
  store ptr %1022, ptr %7, align 8
  %1023 = extractvalue { ptr, i32 } %1021, 1
  store i32 %1023, ptr %8, align 4
  br label %1024

1024:                                             ; preds = %1020
  %1025 = load i32, ptr %8, align 4
  %1026 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTISt9exception) #13
  %1027 = icmp eq i32 %1025, %1026
  br i1 %1027, label %1028, label %1095

1028:                                             ; preds = %1024
  call void @llvm.lifetime.start.p0(i64 8, ptr %90) #13
  %1029 = load ptr, ptr %7, align 8
  %1030 = call ptr @__cxa_begin_catch(ptr %1029) #13
  store ptr %1030, ptr %90, align 8
  call void @llvm.lifetime.start.p0(i64 256, ptr %91) #13
  invoke void @_ZN3LogC1Eh(ptr noundef nonnull align 8 dereferenceable(256) %91, i8 noundef zeroext 3)
          to label %1031 unwind label %1062

1031:                                             ; preds = %1028
  %1032 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsEPKc(ptr noundef nonnull align 8 dereferenceable(256) %91, ptr noundef @.str.18)
          to label %1033 unwind label %1066

1033:                                             ; preds = %1031
  %1034 = call noundef ptr @_ZNKSt19__shared_ptr_accessI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1) #13
  %1035 = load ptr, ptr %1034, align 8, !tbaa !9
  %1036 = getelementptr inbounds ptr, ptr %1035, i64 0
  %1037 = load ptr, ptr %1036, align 8
  invoke void %1037(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %92, ptr noundef nonnull align 8 dereferenceable(8) %1034)
          to label %1038 unwind label %1066

1038:                                             ; preds = %1033
  %1039 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(256) %1032, ptr noundef %92)
          to label %1040 unwind label %1070

1040:                                             ; preds = %1038
  %1041 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsEPKc(ptr noundef nonnull align 8 dereferenceable(256) %1039, ptr noundef @.str.9)
          to label %1042 unwind label %1070

1042:                                             ; preds = %1040
  %1043 = load ptr, ptr %90, align 8, !tbaa !5
  %1044 = load ptr, ptr %1043, align 8, !tbaa !9
  %1045 = getelementptr inbounds ptr, ptr %1044, i64 2
  %1046 = load ptr, ptr %1045, align 8
  %1047 = call noundef ptr %1046(ptr noundef nonnull align 8 dereferenceable(8) %1043) #13
  %1048 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsEPKc(ptr noundef nonnull align 8 dereferenceable(256) %1041, ptr noundef %1047)
          to label %1049 unwind label %1070

1049:                                             ; preds = %1042
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %92) #13
  call void @_ZN3LogD1Ev(ptr noundef nonnull align 8 dereferenceable(256) %91) #13
  call void @llvm.lifetime.end.p0(i64 256, ptr %91) #13
  %1050 = load ptr, ptr %5, align 8, !tbaa !5
  %1051 = call noundef ptr @_ZNKSt19__shared_ptr_accessI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1) #13
  %1052 = load ptr, ptr %1051, align 8, !tbaa !9
  %1053 = getelementptr inbounds ptr, ptr %1052, i64 0
  %1054 = load ptr, ptr %1053, align 8
  invoke void %1054(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %93, ptr noundef nonnull align 8 dereferenceable(8) %1051)
          to label %1055 unwind label %1076

1055:                                             ; preds = %1049
  invoke void @_ZN7BanList9appendBanENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEt(ptr noundef nonnull align 8 dereferenceable(48) %1050, ptr noundef %93, i16 noundef zeroext 34)
          to label %1056 unwind label %1080

1056:                                             ; preds = %1055
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %93) #13
  invoke void @__cxa_end_catch()
          to label %1057 unwind label %1084

1057:                                             ; preds = %1056
  call void @llvm.lifetime.end.p0(i64 8, ptr %90) #13
  br label %1058

1058:                                             ; preds = %1057, %1019
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %94, ptr align 1 %89, i64 1, i1 false), !tbaa.struct !18
  call void @_ZNSt10shared_ptrI13PeerInterfaceEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %95, ptr noundef nonnull align 8 dereferenceable(16) %1) #13
  %1059 = getelementptr inbounds %struct.TransmitStatus, ptr %94, i32 0, i32 0
  %1060 = load i8, ptr %1059, align 1
  invoke void @_ZN21NetworkMessageHandler20handleTransmitStatusE14TransmitStatusSt10shared_ptrI13PeerInterfaceE(i8 %1060, ptr noundef %95)
          to label %1061 unwind label %1091

1061:                                             ; preds = %1058
  call void @_ZNSt12__shared_ptrI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %95) #13
  store i32 2, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %89) #13
  br label %1201

1062:                                             ; preds = %1028
  %1063 = landingpad { ptr, i32 }
          cleanup
  %1064 = extractvalue { ptr, i32 } %1063, 0
  store ptr %1064, ptr %7, align 8
  %1065 = extractvalue { ptr, i32 } %1063, 1
  store i32 %1065, ptr %8, align 4
  br label %1075

1066:                                             ; preds = %1033, %1031
  %1067 = landingpad { ptr, i32 }
          cleanup
  %1068 = extractvalue { ptr, i32 } %1067, 0
  store ptr %1068, ptr %7, align 8
  %1069 = extractvalue { ptr, i32 } %1067, 1
  store i32 %1069, ptr %8, align 4
  br label %1074

1070:                                             ; preds = %1042, %1040, %1038
  %1071 = landingpad { ptr, i32 }
          cleanup
  %1072 = extractvalue { ptr, i32 } %1071, 0
  store ptr %1072, ptr %7, align 8
  %1073 = extractvalue { ptr, i32 } %1071, 1
  store i32 %1073, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %92) #13
  br label %1074

1074:                                             ; preds = %1070, %1066
  call void @_ZN3LogD1Ev(ptr noundef nonnull align 8 dereferenceable(256) %91) #13
  br label %1075

1075:                                             ; preds = %1074, %1062
  call void @llvm.lifetime.end.p0(i64 256, ptr %91) #13
  br label %1088

1076:                                             ; preds = %1049
  %1077 = landingpad { ptr, i32 }
          cleanup
  %1078 = extractvalue { ptr, i32 } %1077, 0
  store ptr %1078, ptr %7, align 8
  %1079 = extractvalue { ptr, i32 } %1077, 1
  store i32 %1079, ptr %8, align 4
  br label %1088

1080:                                             ; preds = %1055
  %1081 = landingpad { ptr, i32 }
          cleanup
  %1082 = extractvalue { ptr, i32 } %1081, 0
  store ptr %1082, ptr %7, align 8
  %1083 = extractvalue { ptr, i32 } %1081, 1
  store i32 %1083, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %93) #13
  br label %1088

1084:                                             ; preds = %1056
  %1085 = landingpad { ptr, i32 }
          cleanup
  %1086 = extractvalue { ptr, i32 } %1085, 0
  store ptr %1086, ptr %7, align 8
  %1087 = extractvalue { ptr, i32 } %1085, 1
  store i32 %1087, ptr %8, align 4
  br label %1090

1088:                                             ; preds = %1080, %1076, %1075
  invoke void @__cxa_end_catch()
          to label %1089 unwind label %1217

1089:                                             ; preds = %1088
  br label %1090

1090:                                             ; preds = %1089, %1084
  call void @llvm.lifetime.end.p0(i64 8, ptr %90) #13
  br label %1095

1091:                                             ; preds = %1058
  %1092 = landingpad { ptr, i32 }
          cleanup
  %1093 = extractvalue { ptr, i32 } %1092, 0
  store ptr %1093, ptr %7, align 8
  %1094 = extractvalue { ptr, i32 } %1092, 1
  store i32 %1094, ptr %8, align 4
  call void @_ZNSt12__shared_ptrI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %95) #13
  br label %1095

1095:                                             ; preds = %1091, %1090, %1024
  call void @llvm.lifetime.end.p0(i64 1, ptr %89) #13
  br label %1210

1096:                                             ; preds = %154
  call void @_ZNSt10shared_ptrI13PeerInterfaceEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %96, ptr noundef nonnull align 8 dereferenceable(16) %1) #13
  invoke void @_ZN21NetworkMessageHandler19handleTransmitLeaveESt10shared_ptrI13PeerInterfaceE(ptr noundef %96)
          to label %1097 unwind label %1098

1097:                                             ; preds = %1096
  call void @_ZNSt12__shared_ptrI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %96) #13
  br label %1201

1098:                                             ; preds = %1096
  %1099 = landingpad { ptr, i32 }
          cleanup
  %1100 = extractvalue { ptr, i32 } %1099, 0
  store ptr %1100, ptr %7, align 8
  %1101 = extractvalue { ptr, i32 } %1099, 1
  store i32 %1101, ptr %8, align 4
  call void @_ZNSt12__shared_ptrI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %96) #13
  br label %1210

1102:                                             ; preds = %154
  call void @llvm.lifetime.start.p0(i64 40, ptr %97) #13
  call void @_ZN23TransmitDonationAddressC2Ev(ptr noundef nonnull align 8 dereferenceable(40) %97) #13
  %1103 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN11CDataStreamrsI23TransmitDonationAddressEERS_RT_(ptr noundef nonnull align 8 dereferenceable(36) %13, ptr noundef nonnull align 8 dereferenceable(40) %97)
          to label %1104 unwind label %1105

1104:                                             ; preds = %1102
  br label %1143

1105:                                             ; preds = %1102
  %1106 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %1107 = extractvalue { ptr, i32 } %1106, 0
  store ptr %1107, ptr %7, align 8
  %1108 = extractvalue { ptr, i32 } %1106, 1
  store i32 %1108, ptr %8, align 4
  br label %1109

1109:                                             ; preds = %1105
  %1110 = load i32, ptr %8, align 4
  %1111 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTISt9exception) #13
  %1112 = icmp eq i32 %1110, %1111
  br i1 %1112, label %1113, label %1183

1113:                                             ; preds = %1109
  call void @llvm.lifetime.start.p0(i64 8, ptr %98) #13
  %1114 = load ptr, ptr %7, align 8
  %1115 = call ptr @__cxa_begin_catch(ptr %1114) #13
  store ptr %1115, ptr %98, align 8
  call void @llvm.lifetime.start.p0(i64 256, ptr %99) #13
  invoke void @_ZN3LogC1Eh(ptr noundef nonnull align 8 dereferenceable(256) %99, i8 noundef zeroext 3)
          to label %1116 unwind label %1146

1116:                                             ; preds = %1113
  %1117 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsEPKc(ptr noundef nonnull align 8 dereferenceable(256) %99, ptr noundef @.str.19)
          to label %1118 unwind label %1150

1118:                                             ; preds = %1116
  %1119 = call noundef ptr @_ZNKSt19__shared_ptr_accessI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1) #13
  %1120 = load ptr, ptr %1119, align 8, !tbaa !9
  %1121 = getelementptr inbounds ptr, ptr %1120, i64 0
  %1122 = load ptr, ptr %1121, align 8
  invoke void %1122(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %100, ptr noundef nonnull align 8 dereferenceable(8) %1119)
          to label %1123 unwind label %1150

1123:                                             ; preds = %1118
  %1124 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(256) %1117, ptr noundef %100)
          to label %1125 unwind label %1154

1125:                                             ; preds = %1123
  %1126 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsEPKc(ptr noundef nonnull align 8 dereferenceable(256) %1124, ptr noundef @.str.9)
          to label %1127 unwind label %1154

1127:                                             ; preds = %1125
  %1128 = load ptr, ptr %98, align 8, !tbaa !5
  %1129 = load ptr, ptr %1128, align 8, !tbaa !9
  %1130 = getelementptr inbounds ptr, ptr %1129, i64 2
  %1131 = load ptr, ptr %1130, align 8
  %1132 = call noundef ptr %1131(ptr noundef nonnull align 8 dereferenceable(8) %1128) #13
  %1133 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsEPKc(ptr noundef nonnull align 8 dereferenceable(256) %1126, ptr noundef %1132)
          to label %1134 unwind label %1154

1134:                                             ; preds = %1127
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %100) #13
  call void @_ZN3LogD1Ev(ptr noundef nonnull align 8 dereferenceable(256) %99) #13
  call void @llvm.lifetime.end.p0(i64 256, ptr %99) #13
  %1135 = load ptr, ptr %5, align 8, !tbaa !5
  %1136 = call noundef ptr @_ZNKSt19__shared_ptr_accessI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1) #13
  %1137 = load ptr, ptr %1136, align 8, !tbaa !9
  %1138 = getelementptr inbounds ptr, ptr %1137, i64 0
  %1139 = load ptr, ptr %1138, align 8
  invoke void %1139(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %101, ptr noundef nonnull align 8 dereferenceable(8) %1136)
          to label %1140 unwind label %1160

1140:                                             ; preds = %1134
  invoke void @_ZN7BanList9appendBanENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEt(ptr noundef nonnull align 8 dereferenceable(48) %1135, ptr noundef %101, i16 noundef zeroext 34)
          to label %1141 unwind label %1164

1141:                                             ; preds = %1140
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %101) #13
  invoke void @__cxa_end_catch()
          to label %1142 unwind label %1168

1142:                                             ; preds = %1141
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #13
  br label %1143

1143:                                             ; preds = %1142, %1104
  invoke void @_ZN23TransmitDonationAddressC2ERKS_(ptr noundef nonnull align 8 dereferenceable(40) %102, ptr noundef nonnull align 8 dereferenceable(40) %97)
          to label %1144 unwind label %1175

1144:                                             ; preds = %1143
  call void @_ZNSt10shared_ptrI13PeerInterfaceEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %103, ptr noundef nonnull align 8 dereferenceable(16) %1) #13
  invoke void @_ZN21NetworkMessageHandler29handleTransmitDonationAddressE23TransmitDonationAddressSt10shared_ptrI13PeerInterfaceE(ptr noundef %102, ptr noundef %103)
          to label %1145 unwind label %1179

1145:                                             ; preds = %1144
  call void @_ZNSt12__shared_ptrI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %103) #13
  call void @_ZN23TransmitDonationAddressD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %102) #13
  store i32 2, ptr %11, align 4
  call void @_ZN23TransmitDonationAddressD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %97) #13
  call void @llvm.lifetime.end.p0(i64 40, ptr %97) #13
  br label %1201

1146:                                             ; preds = %1113
  %1147 = landingpad { ptr, i32 }
          cleanup
  %1148 = extractvalue { ptr, i32 } %1147, 0
  store ptr %1148, ptr %7, align 8
  %1149 = extractvalue { ptr, i32 } %1147, 1
  store i32 %1149, ptr %8, align 4
  br label %1159

1150:                                             ; preds = %1118, %1116
  %1151 = landingpad { ptr, i32 }
          cleanup
  %1152 = extractvalue { ptr, i32 } %1151, 0
  store ptr %1152, ptr %7, align 8
  %1153 = extractvalue { ptr, i32 } %1151, 1
  store i32 %1153, ptr %8, align 4
  br label %1158

1154:                                             ; preds = %1127, %1125, %1123
  %1155 = landingpad { ptr, i32 }
          cleanup
  %1156 = extractvalue { ptr, i32 } %1155, 0
  store ptr %1156, ptr %7, align 8
  %1157 = extractvalue { ptr, i32 } %1155, 1
  store i32 %1157, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %100) #13
  br label %1158

1158:                                             ; preds = %1154, %1150
  call void @_ZN3LogD1Ev(ptr noundef nonnull align 8 dereferenceable(256) %99) #13
  br label %1159

1159:                                             ; preds = %1158, %1146
  call void @llvm.lifetime.end.p0(i64 256, ptr %99) #13
  br label %1172

1160:                                             ; preds = %1134
  %1161 = landingpad { ptr, i32 }
          cleanup
  %1162 = extractvalue { ptr, i32 } %1161, 0
  store ptr %1162, ptr %7, align 8
  %1163 = extractvalue { ptr, i32 } %1161, 1
  store i32 %1163, ptr %8, align 4
  br label %1172

1164:                                             ; preds = %1140
  %1165 = landingpad { ptr, i32 }
          cleanup
  %1166 = extractvalue { ptr, i32 } %1165, 0
  store ptr %1166, ptr %7, align 8
  %1167 = extractvalue { ptr, i32 } %1165, 1
  store i32 %1167, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %101) #13
  br label %1172

1168:                                             ; preds = %1141
  %1169 = landingpad { ptr, i32 }
          cleanup
  %1170 = extractvalue { ptr, i32 } %1169, 0
  store ptr %1170, ptr %7, align 8
  %1171 = extractvalue { ptr, i32 } %1169, 1
  store i32 %1171, ptr %8, align 4
  br label %1174

1172:                                             ; preds = %1164, %1160, %1159
  invoke void @__cxa_end_catch()
          to label %1173 unwind label %1217

1173:                                             ; preds = %1172
  br label %1174

1174:                                             ; preds = %1173, %1168
  call void @llvm.lifetime.end.p0(i64 8, ptr %98) #13
  br label %1183

1175:                                             ; preds = %1143
  %1176 = landingpad { ptr, i32 }
          cleanup
  %1177 = extractvalue { ptr, i32 } %1176, 0
  store ptr %1177, ptr %7, align 8
  %1178 = extractvalue { ptr, i32 } %1176, 1
  store i32 %1178, ptr %8, align 4
  br label %1183

1179:                                             ; preds = %1144
  %1180 = landingpad { ptr, i32 }
          cleanup
  %1181 = extractvalue { ptr, i32 } %1180, 0
  store ptr %1181, ptr %7, align 8
  %1182 = extractvalue { ptr, i32 } %1180, 1
  store i32 %1182, ptr %8, align 4
  call void @_ZNSt12__shared_ptrI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %103) #13
  call void @_ZN23TransmitDonationAddressD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %102) #13
  br label %1183

1183:                                             ; preds = %1179, %1175, %1174, %1109
  call void @_ZN23TransmitDonationAddressD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %97) #13
  call void @llvm.lifetime.end.p0(i64 40, ptr %97) #13
  br label %1210

1184:                                             ; preds = %154
  call void @llvm.lifetime.start.p0(i64 256, ptr %104) #13
  invoke void @_ZN3LogC1Eh(ptr noundef nonnull align 8 dereferenceable(256) %104, i8 noundef zeroext 3)
          to label %1185 unwind label %1192

1185:                                             ; preds = %1184
  %1186 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsEPKc(ptr noundef nonnull align 8 dereferenceable(256) %104, ptr noundef @.str.20)
          to label %1187 unwind label %1196

1187:                                             ; preds = %1185
  %1188 = load i8, ptr %12, align 1, !tbaa !11
  %1189 = zext i8 %1188 to i32
  %1190 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsEi(ptr noundef nonnull align 8 dereferenceable(256) %1186, i32 noundef %1189)
          to label %1191 unwind label %1196

1191:                                             ; preds = %1187
  call void @_ZN3LogD1Ev(ptr noundef nonnull align 8 dereferenceable(256) %104) #13
  call void @llvm.lifetime.end.p0(i64 256, ptr %104) #13
  br label %1201

1192:                                             ; preds = %1184
  %1193 = landingpad { ptr, i32 }
          cleanup
  %1194 = extractvalue { ptr, i32 } %1193, 0
  store ptr %1194, ptr %7, align 8
  %1195 = extractvalue { ptr, i32 } %1193, 1
  store i32 %1195, ptr %8, align 4
  br label %1200

1196:                                             ; preds = %1187, %1185
  %1197 = landingpad { ptr, i32 }
          cleanup
  %1198 = extractvalue { ptr, i32 } %1197, 0
  store ptr %1198, ptr %7, align 8
  %1199 = extractvalue { ptr, i32 } %1197, 1
  store i32 %1199, ptr %8, align 4
  call void @_ZN3LogD1Ev(ptr noundef nonnull align 8 dereferenceable(256) %104) #13
  br label %1200

1200:                                             ; preds = %1196, %1192
  call void @llvm.lifetime.end.p0(i64 256, ptr %104) #13
  br label %1210

1201:                                             ; preds = %1191, %1145, %1097, %1061, %982, %900, %818, %736, %654, %572, %490, %442, %436, %430, %424, %418, %382, %290, %212
  invoke void @_ZN11CDataStream5clearEv(ptr noundef nonnull align 8 dereferenceable(36) %13)
          to label %1202 unwind label %157

1202:                                             ; preds = %1201
  %1203 = load ptr, ptr %3, align 8, !tbaa !5
  %1204 = icmp eq ptr %1203, null
  br i1 %1204, label %1206, label %1205

1205:                                             ; preds = %1202
  call void @_ZN14NetworkMessageD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %1203) #13
  call void @_ZdlPvm(ptr noundef %1203, i64 noundef 16) #14
  br label %1206

1206:                                             ; preds = %1205, %1202
  call void @_ZN11CDataStreamD2Ev(ptr noundef nonnull align 8 dereferenceable(36) %13) #13
  call void @llvm.lifetime.end.p0(i64 40, ptr %13) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr %12) #13
  store i32 0, ptr %11, align 4
  br label %1207

1207:                                             ; preds = %1206, %123
  call void @llvm.lifetime.end.p0(i64 8, ptr %5) #13
  %1208 = load i32, ptr %11, align 4
  switch i32 %1208, label %1220 [
    i32 0, label %1209
    i32 1, label %1209
  ]

1209:                                             ; preds = %1207, %1207
  ret void

1210:                                             ; preds = %1200, %1183, %1098, %1095, %1016, %938, %856, %774, %692, %610, %528, %443, %437, %431, %425, %419, %416, %328, %246, %169, %157
  call void @_ZN11CDataStreamD2Ev(ptr noundef nonnull align 8 dereferenceable(36) %13) #13
  call void @llvm.lifetime.end.p0(i64 40, ptr %13) #13
  call void @llvm.lifetime.end.p0(i64 1, ptr %12) #13
  br label %1211

1211:                                             ; preds = %1210, %132, %128, %124
  call void @llvm.lifetime.end.p0(i64 8, ptr %5) #13
  br label %1212

1212:                                             ; preds = %1211
  %1213 = load ptr, ptr %7, align 8
  %1214 = load i32, ptr %8, align 4
  %1215 = insertvalue { ptr, i32 } poison, ptr %1213, 0
  %1216 = insertvalue { ptr, i32 } %1215, i32 %1214, 1
  resume { ptr, i32 } %1216

1217:                                             ; preds = %1172, %1088, %1009, %927, %845, %763, %681, %599, %517, %409, %317, %239
  %1218 = landingpad { ptr, i32 }
          catch ptr null
  %1219 = extractvalue { ptr, i32 } %1218, 0
  call void @__clang_call_terminate(ptr %1219) #16
  unreachable

1220:                                             ; preds = %1207
  unreachable
}

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

declare void @_ZN3LogC1Eh(ptr noundef nonnull align 8 dereferenceable(256), i8 noundef zeroext) unnamed_addr #4

declare noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsEPKc(ptr noundef nonnull align 8 dereferenceable(256), ptr noundef) #4

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7BanList9appendBanENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEt(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef, i16 noundef zeroext) #3 align 2

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

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

; Function Attrs: nobuiltin nounwind
declare void @_ZdlPvm(ptr noundef, i64 noundef) #6

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

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

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

declare noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsEi(ptr noundef nonnull align 8 dereferenceable(256), i32 noundef) #4

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

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

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

declare noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(256), ptr noundef) #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN21NetworkMessageHandler18handleAskForBlocksE12AskForBlocksSt10shared_ptrI13PeerInterfaceE(ptr noundef byval(%struct.AskForBlocks) align 8, ptr noundef) #3 align 2

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN21NetworkMessageHandler17handleAskForBlockE11AskForBlockSt10shared_ptrI13PeerInterfaceE(ptr noundef, ptr noundef) #3 align 2

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

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

; Function Attrs: nobuiltin allocsize(0)
declare noundef nonnull ptr @_Znwm(i64 noundef) #11

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN21NetworkMessageHandler17handleAskForPeersESt10shared_ptrI13PeerInterfaceE(ptr noundef) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN21NetworkMessageHandler28handleAskForBlockchainHeightESt10shared_ptrI13PeerInterfaceE(ptr noundef) #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN21NetworkMessageHandler27handleAskForBestBlockHeaderESt10shared_ptrI13PeerInterfaceE(ptr noundef) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN21NetworkMessageHandler19handleAskForVersionESt10shared_ptrI13PeerInterfaceE(ptr noundef) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN21NetworkMessageHandler18handleAskForStatusESt10shared_ptrI13PeerInterfaceE(ptr noundef) #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN21NetworkMessageHandler27handleAskForDonationAddressESt10shared_ptrI13PeerInterfaceE(ptr noundef) #2 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(36) ptr @_ZN11CDataStreamrsI20TransmitTransactionsEERS_RT_(ptr noundef nonnull align 8 dereferenceable(36), ptr noundef nonnull align 8 dereferenceable(32)) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN21NetworkMessageHandler26handleTransmitTransactionsE20TransmitTransactionsSt10shared_ptrI13PeerInterfaceE(ptr noundef, ptr noundef) #3 align 2

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(36) ptr @_ZN11CDataStreamrsI13TransmitBlockEERS_RT_(ptr noundef nonnull align 8 dereferenceable(36), ptr noundef nonnull align 8 dereferenceable(32)) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN21NetworkMessageHandler19handleTransmitBlockE13TransmitBlockSt10shared_ptrI13PeerInterfaceE(ptr noundef, ptr noundef) #3 align 2

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(36) ptr @_ZN11CDataStreamrsI14TransmitBlocksEERS_RT_(ptr noundef nonnull align 8 dereferenceable(36), ptr noundef nonnull align 8 dereferenceable(32)) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN21NetworkMessageHandler20handleTransmitBlocksE14TransmitBlocksSt10shared_ptrI13PeerInterfaceE(ptr noundef, ptr noundef) #3 align 2

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(36) ptr @_ZN11CDataStreamrsI13TransmitPeersEERS_RT_(ptr noundef nonnull align 8 dereferenceable(36), ptr noundef nonnull align 8 dereferenceable(32)) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN21NetworkMessageHandler19handleTransmitPeersE13TransmitPeersSt10shared_ptrI13PeerInterfaceE(ptr noundef, ptr noundef) #3 align 2

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(36) ptr @_ZN11CDataStreamrsI24TransmitBlockchainHeightEERS_RT_(ptr noundef nonnull align 8 dereferenceable(36), ptr noundef nonnull align 8 dereferenceable(32)) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN21NetworkMessageHandler30handleTransmitBlockchainHeightE24TransmitBlockchainHeightSt10shared_ptrI13PeerInterfaceE(ptr noundef, ptr noundef) #3 align 2

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(36) ptr @_ZN11CDataStreamrsI23TransmitBestBlockHeaderEERS_RT_(ptr noundef nonnull align 8 dereferenceable(36), ptr noundef nonnull align 8 dereferenceable(408)) #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN21NetworkMessageHandler29handleTransmitBestBlockHeaderE23TransmitBestBlockHeaderSt10shared_ptrI13PeerInterfaceE(ptr noundef, ptr noundef) #2 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN23TransmitBestBlockHeaderC2ERKS_(ptr noundef nonnull align 8 dereferenceable(408), ptr noundef nonnull align 8 dereferenceable(408)) unnamed_addr #10 align 2

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN21NetworkMessageHandler21handleTransmitVersionE15TransmitVersionSt10shared_ptrI13PeerInterfaceE(i32, ptr noundef) #3 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN21NetworkMessageHandler20handleTransmitStatusE14TransmitStatusSt10shared_ptrI13PeerInterfaceE(i8, ptr noundef) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN21NetworkMessageHandler19handleTransmitLeaveESt10shared_ptrI13PeerInterfaceE(ptr noundef) #3 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN21NetworkMessageHandler29handleTransmitDonationAddressE23TransmitDonationAddressSt10shared_ptrI13PeerInterfaceE(ptr noundef, ptr noundef) #3 align 2

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

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"vtable pointer", !8, i64 0}
!11 = !{!7, !7, i64 0}
!12 = !{i64 0, i64 1, !11, i64 8, i64 8, !13, i64 16, i64 8, !13}
!13 = !{!14, !14, i64 0}
!14 = !{!"long", !7, i64 0}
!15 = !{i64 0, i64 1, !11, i64 2, i64 2, !16}
!16 = !{!17, !17, i64 0}
!17 = !{!"short", !7, i64 0}
!18 = !{i64 0, i64 1, !11}


; 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.Log = type { i8, i8, ptr, %"class.std::basic_filebuf" }
%"class.std::basic_filebuf" = type { %"class.std::basic_streambuf", %union.pthread_mutex_t, %"class.std::__basic_file", i32, %struct.__mbstate_t, %struct.__mbstate_t, %struct.__mbstate_t, ptr, i64, i8, i8, i8, i8, ptr, ptr, i8, ptr, ptr, i64, ptr, ptr }
%"class.std::basic_streambuf" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::locale" }
%"class.std::locale" = type { ptr }
%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::__basic_file" = type <{ ptr, i8, [7 x i8] }>
%struct.__mbstate_t = type { i32, %union.anon.4 }
%union.anon.4 = type { i32 }
%"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.CDataStream = type <{ %"class.std::vector", i32, i32, i32, [4 x i8] }>
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<char, zero_after_free_allocator<char>>::_Vector_impl" }
%"struct.std::_Vector_base<char, zero_after_free_allocator<char>>::_Vector_impl" = type { %"struct.std::_Vector_base<char, zero_after_free_allocator<char>>::_Vector_impl_data" }
%"struct.std::_Vector_base<char, zero_after_free_allocator<char>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%struct.AskForBlocks = type { i8, i64, i64 }
%"class.std::shared_ptr" = type { %"class.std::__shared_ptr" }
%"class.std::__shared_ptr" = type { ptr, %"class.std::__shared_count" }
%"class.std::__shared_count" = type { ptr }
%struct.AskForBlock = type { i8, i64, %"class.std::vector.5" }
%"class.std::vector.5" = type { %"struct.std::_Vector_base.6" }
%"struct.std::_Vector_base.6" = 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 }
%struct.TransmitTransactions = type { i8, %"class.std::vector.10" }
%"class.std::vector.10" = type { %"struct.std::_Vector_base.11" }
%"struct.std::_Vector_base.11" = type { %"struct.std::_Vector_base<TransactionForNetwork, std::allocator<TransactionForNetwork>>::_Vector_impl" }
%"struct.std::_Vector_base<TransactionForNetwork, std::allocator<TransactionForNetwork>>::_Vector_impl" = type { %"struct.std::_Vector_base<TransactionForNetwork, std::allocator<TransactionForNetwork>>::_Vector_impl_data" }
%"struct.std::_Vector_base<TransactionForNetwork, std::allocator<TransactionForNetwork>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%struct.TransmitBlock = type { i8, %"class.std::vector.5" }
%struct.TransmitBlocks = type { i8, %"class.std::vector.15" }
%"class.std::vector.15" = type { %"struct.std::_Vector_base.16" }
%"struct.std::_Vector_base.16" = 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 }
%struct.TransmitPeers = type { i8, %"class.std::vector.20" }
%"class.std::vector.20" = type { %"struct.std::_Vector_base.21" }
%"struct.std::_Vector_base.21" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%struct.TransmitBlockchainHeight = type { i8, i32, %"class.std::vector.5" }
%struct.TransmitBestBlockHeader = type { i8, %class.BlockHeader }
%class.BlockHeader = type { i8, i8, %"class.std::vector.5", %"class.std::vector.5", %"class.std::vector.5", i32, i32, %struct.UAmount, %struct.UAmount, %struct.UAmount32, %struct.UAmount32, %struct.UAmount32, %"class.std::vector.36", %"class.std::vector.5", %"class.std::vector.5" }
%struct.UAmount = type { %"class.std::map.25" }
%"class.std::map.25" = type { %"class.std::_Rb_tree.26" }
%"class.std::_Rb_tree.26" = type { %"struct.std::_Rb_tree<unsigned char, std::pair<const unsigned char, unsigned long>, std::_Select1st<std::pair<const unsigned char, unsigned long>>, std::less<unsigned char>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<unsigned char, std::pair<const unsigned char, unsigned long>, std::_Select1st<std::pair<const unsigned char, unsigned long>>, std::less<unsigned char>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.std::_Rb_tree_header" = type { %"struct.std::_Rb_tree_node_base", i64 }
%"struct.std::_Rb_tree_node_base" = type { i32, ptr, ptr, ptr }
%struct.UAmount32 = type { %"class.std::map.31" }
%"class.std::map.31" = type { %"class.std::_Rb_tree.32" }
%"class.std::_Rb_tree.32" = type { %"struct.std::_Rb_tree<unsigned char, std::pair<const unsigned char, unsigned int>, std::_Select1st<std::pair<const unsigned char, unsigned int>>, std::less<unsigned char>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<unsigned char, std::pair<const unsigned char, unsigned int>, std::_Select1st<std::pair<const unsigned char, unsigned int>>, std::less<unsigned char>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::vector.36" = type { %"struct.std::_Vector_base.37" }
%"struct.std::_Vector_base.37" = type { %"struct.std::_Vector_base<Transaction, std::allocator<Transaction>>::_Vector_impl" }
%"struct.std::_Vector_base<Transaction, std::allocator<Transaction>>::_Vector_impl" = type { %"struct.std::_Vector_base<Transaction, std::allocator<Transaction>>::_Vector_impl_data" }
%"struct.std::_Vector_base<Transaction, std::allocator<Transaction>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%struct.TransmitVersion = type { i8, i16 }
%struct.TransmitStatus = type { i8 }
%struct.TransmitDonationAddress = type { i8, %"class.std::__cxx11::basic_string" }

@.str.5 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [60 x i8], align 1
@_ZTISt9exception = external constant ptr
@.str.8 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [51 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: noinline noreturn nounwind uwtable
declare hidden void @__clang_call_terminate(ptr noundef) local_unnamed_addr #1

declare ptr @__cxa_begin_catch(ptr) local_unnamed_addr

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

declare void @__cxa_end_catch() local_unnamed_addr

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN21NetworkMessageHandler20handleNetworkMessageEP14NetworkMessageSt10shared_ptrI13PeerInterfaceE(ptr noundef %0, ptr noundef %1) local_unnamed_addr #3 align 2 personality ptr @__gxx_personality_v0 {
  %3 = alloca %class.Log, align 8
  %4 = alloca %class.Log, align 8
  %5 = alloca %"class.std::__cxx11::basic_string", align 8
  %6 = alloca %class.CDataStream, align 8
  %7 = alloca %class.Log, align 8
  %8 = alloca %struct.AskForBlocks, align 8
  %9 = alloca %class.Log, align 8
  %10 = alloca %"class.std::__cxx11::basic_string", align 8
  %11 = alloca %"class.std::__cxx11::basic_string", align 8
  %12 = alloca %struct.AskForBlocks, align 8
  %13 = alloca %"class.std::shared_ptr", align 8
  %14 = alloca %struct.AskForBlock, align 8
  %15 = alloca %class.Log, align 8
  %16 = alloca %"class.std::__cxx11::basic_string", align 8
  %17 = alloca %"class.std::__cxx11::basic_string", align 8
  %18 = alloca %struct.AskForBlock, align 8
  %19 = alloca %"class.std::shared_ptr", align 8
  %20 = alloca %class.Log, align 8
  %21 = alloca %"class.std::__cxx11::basic_string", align 8
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca %"class.std::shared_ptr", align 8
  %24 = alloca %"class.std::shared_ptr", align 8
  %25 = alloca %"class.std::shared_ptr", align 8
  %26 = alloca %"class.std::shared_ptr", align 8
  %27 = alloca %"class.std::shared_ptr", align 8
  %28 = alloca %"class.std::shared_ptr", align 8
  %29 = alloca %struct.TransmitTransactions, align 8
  %30 = alloca %class.Log, align 8
  %31 = alloca %"class.std::__cxx11::basic_string", align 8
  %32 = alloca %"class.std::__cxx11::basic_string", align 8
  %33 = alloca %struct.TransmitTransactions, align 8
  %34 = alloca %"class.std::shared_ptr", align 8
  %35 = alloca %struct.TransmitBlock, align 8
  %36 = alloca %class.Log, align 8
  %37 = alloca %"class.std::__cxx11::basic_string", align 8
  %38 = alloca %"class.std::__cxx11::basic_string", align 8
  %39 = alloca %struct.TransmitBlock, align 8
  %40 = alloca %"class.std::shared_ptr", align 8
  %41 = alloca %struct.TransmitBlocks, align 8
  %42 = alloca %class.Log, align 8
  %43 = alloca %"class.std::__cxx11::basic_string", align 8
  %44 = alloca %"class.std::__cxx11::basic_string", align 8
  %45 = alloca %struct.TransmitBlocks, align 8
  %46 = alloca %"class.std::shared_ptr", align 8
  %47 = alloca %struct.TransmitPeers, align 8
  %48 = alloca %class.Log, align 8
  %49 = alloca %"class.std::__cxx11::basic_string", align 8
  %50 = alloca %"class.std::__cxx11::basic_string", align 8
  %51 = alloca %struct.TransmitPeers, align 8
  %52 = alloca %"class.std::shared_ptr", align 8
  %53 = alloca %struct.TransmitBlockchainHeight, align 8
  %54 = alloca %class.Log, align 8
  %55 = alloca %"class.std::__cxx11::basic_string", align 8
  %56 = alloca %"class.std::__cxx11::basic_string", align 8
  %57 = alloca %struct.TransmitBlockchainHeight, align 8
  %58 = alloca %"class.std::shared_ptr", align 8
  %59 = alloca %struct.TransmitBestBlockHeader, align 8
  %60 = alloca %class.Log, align 8
  %61 = alloca %"class.std::__cxx11::basic_string", align 8
  %62 = alloca %"class.std::__cxx11::basic_string", align 8
  %63 = alloca %struct.TransmitBestBlockHeader, align 8
  %64 = alloca %"class.std::shared_ptr", align 8
  %65 = alloca %struct.TransmitVersion, align 4
  %66 = alloca %class.Log, align 8
  %67 = alloca %"class.std::__cxx11::basic_string", align 8
  %68 = alloca %"class.std::__cxx11::basic_string", align 8
  %69 = alloca %"class.std::shared_ptr", align 8
  %70 = alloca %struct.TransmitStatus, align 1
  %71 = alloca %class.Log, align 8
  %72 = alloca %"class.std::__cxx11::basic_string", align 8
  %73 = alloca %"class.std::__cxx11::basic_string", align 8
  %74 = alloca %"class.std::shared_ptr", align 8
  %75 = alloca %"class.std::shared_ptr", align 8
  %76 = alloca %struct.TransmitDonationAddress, align 8
  %77 = alloca %class.Log, align 8
  %78 = alloca %"class.std::__cxx11::basic_string", align 8
  %79 = alloca %"class.std::__cxx11::basic_string", align 8
  %80 = alloca %struct.TransmitDonationAddress, align 8
  %81 = alloca %"class.std::shared_ptr", align 8
  %82 = alloca %class.Log, align 8
  %83 = tail call noundef nonnull align 8 dereferenceable(48) ptr @_ZN7BanList8InstanceEv()
  call void @llvm.lifetime.start.p0(i64 256, ptr nonnull %3) #12
  call void @_ZN3LogC1Eh(ptr noundef nonnull align 8 dereferenceable(256) %3, i8 noundef zeroext 0)
  %84 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsEPKc(ptr noundef nonnull align 8 dereferenceable(256) %3, ptr noundef nonnull @.str.5)
          to label %85 unwind label %95

85:                                               ; preds = %2
  call void @_ZN3LogD1Ev(ptr noundef nonnull align 8 dereferenceable(256) %3) #12
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %3) #12
  %86 = call noundef i64 @_ZNK14NetworkMessage11body_lengthEv(ptr noundef nonnull align 8 dereferenceable(16) %0)
  %87 = icmp eq i64 %86, 0
  br i1 %87, label %88, label %107

88:                                               ; preds = %85
  call void @llvm.lifetime.start.p0(i64 256, ptr nonnull %4) #12
  call void @_ZN3LogC1Eh(ptr noundef nonnull align 8 dereferenceable(256) %4, i8 noundef zeroext 3)
  %89 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsEPKc(ptr noundef nonnull align 8 dereferenceable(256) %4, ptr noundef nonnull @.str.6)
          to label %90 unwind label %99

90:                                               ; preds = %88
  call void @_ZN3LogD1Ev(ptr noundef nonnull align 8 dereferenceable(256) %4) #12
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %4) #12
  %91 = call noundef ptr @_ZNKSt19__shared_ptr_accessI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1) #12
  %92 = load ptr, ptr %91, align 8, !tbaa !5
  %93 = load ptr, ptr %92, align 8
  call void %93(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %5, ptr noundef nonnull align 8 dereferenceable(8) %91)
  invoke void @_ZN7BanList9appendBanENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEt(ptr noundef nonnull align 8 dereferenceable(48) %83, ptr noundef nonnull %5, i16 noundef zeroext 34)
          to label %94 unwind label %103

94:                                               ; preds = %90
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #12
  call void @_ZN14NetworkMessageD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %0) #12
  call void @_ZdlPvm(ptr noundef %0, i64 noundef 16) #13
  br label %866

95:                                               ; preds = %2
  %96 = landingpad { ptr, i32 }
          cleanup
  %97 = extractvalue { ptr, i32 } %96, 0
  %98 = extractvalue { ptr, i32 } %96, 1
  call void @_ZN3LogD1Ev(ptr noundef nonnull align 8 dereferenceable(256) %3) #12
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %3) #12
  br label %868

99:                                               ; preds = %88
  %100 = landingpad { ptr, i32 }
          cleanup
  %101 = extractvalue { ptr, i32 } %100, 0
  %102 = extractvalue { ptr, i32 } %100, 1
  call void @_ZN3LogD1Ev(ptr noundef nonnull align 8 dereferenceable(256) %4) #12
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %4) #12
  br label %868

103:                                              ; preds = %90
  %104 = landingpad { ptr, i32 }
          cleanup
  %105 = extractvalue { ptr, i32 } %104, 0
  %106 = extractvalue { ptr, i32 } %104, 1
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #12
  br label %868

107:                                              ; preds = %85
  %108 = call noundef ptr @_ZN14NetworkMessage4bodyEv(ptr noundef nonnull align 8 dereferenceable(16) %0)
  %109 = load i8, ptr %108, align 1, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %6) #12
  call void @_ZN11CDataStreamC2Eii(ptr noundef nonnull align 8 dereferenceable(36) %6, i32 noundef 2, i32 noundef 1)
  %110 = call noundef ptr @_ZN14NetworkMessage4bodyEv(ptr noundef nonnull align 8 dereferenceable(16) %0)
  %111 = call noundef i64 @_ZNK14NetworkMessage11body_lengthEv(ptr noundef nonnull align 8 dereferenceable(16) %0)
  invoke void @_ZN11CDataStream5writeEPKcm(ptr noundef nonnull align 8 dereferenceable(36) %6, ptr noundef %110, i64 noundef %111)
          to label %112 unwind label %119

112:                                              ; preds = %107
  call void @llvm.lifetime.start.p0(i64 256, ptr nonnull %7) #12
  invoke void @_ZN3LogC1Eh(ptr noundef nonnull align 8 dereferenceable(256) %7, i8 noundef zeroext 0)
          to label %113 unwind label %123

113:                                              ; preds = %112
  %114 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsEPKc(ptr noundef nonnull align 8 dereferenceable(256) %7, ptr noundef nonnull @.str.7)
          to label %115 unwind label %125

115:                                              ; preds = %113
  %116 = zext i8 %109 to i32
  %117 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsEi(ptr noundef nonnull align 8 dereferenceable(256) %114, i32 noundef %116)
          to label %118 unwind label %125

118:                                              ; preds = %115
  call void @_ZN3LogD1Ev(ptr noundef nonnull align 8 dereferenceable(256) %7) #12
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %7) #12
  switch i8 %109, label %854 [
    i8 1, label %128
    i8 2, label %183
    i8 3, label %243
    i8 5, label %303
    i8 4, label %309
    i8 6, label %310
    i8 7, label %316
    i8 8, label %322
    i8 17, label %323
    i8 18, label %383
    i8 32, label %443
    i8 19, label %503
    i8 21, label %563
    i8 20, label %623
    i8 22, label %678
    i8 23, label %733
    i8 24, label %788
    i8 25, label %794
  ]

119:                                              ; preds = %107
  %120 = landingpad { ptr, i32 }
          cleanup
  %121 = extractvalue { ptr, i32 } %120, 0
  %122 = extractvalue { ptr, i32 } %120, 1
  br label %867

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

125:                                              ; preds = %115, %113
  %126 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3LogD1Ev(ptr noundef nonnull align 8 dereferenceable(256) %7) #12
  br label %127

127:                                              ; preds = %125, %123
  %.pn = phi { ptr, i32 } [ %126, %125 ], [ %124, %123 ]
  %.0 = extractvalue { ptr, i32 } %.pn, 0
  %.062 = extractvalue { ptr, i32 } %.pn, 1
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %7) #12
  br label %867

128:                                              ; preds = %118
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %8) #12
  call void @_ZN12AskForBlocksC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %8) #12
  %129 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN11CDataStreamrsI12AskForBlocksEERS_RT_(ptr noundef nonnull align 8 dereferenceable(36) %6, ptr noundef nonnull align 8 dereferenceable(24) %8)
          to label %160 unwind label %130

130:                                              ; preds = %128
  %131 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %132 = extractvalue { ptr, i32 } %131, 0
  %133 = extractvalue { ptr, i32 } %131, 1
  %134 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTISt9exception) #12
  %135 = icmp eq i32 %133, %134
  br i1 %135, label %136, label %182

136:                                              ; preds = %130
  %137 = call ptr @__cxa_begin_catch(ptr %132) #12
  call void @llvm.lifetime.start.p0(i64 256, ptr nonnull %9) #12
  invoke void @_ZN3LogC1Eh(ptr noundef nonnull align 8 dereferenceable(256) %9, i8 noundef zeroext 3)
          to label %138 unwind label %162

138:                                              ; preds = %136
  %139 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsEPKc(ptr noundef nonnull align 8 dereferenceable(256) %9, ptr noundef nonnull @.str.8)
          to label %140 unwind label %164

140:                                              ; preds = %138
  %141 = call noundef ptr @_ZNKSt19__shared_ptr_accessI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1) #12
  %142 = load ptr, ptr %141, align 8, !tbaa !5
  %143 = load ptr, ptr %142, align 8
  invoke void %143(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %10, ptr noundef nonnull align 8 dereferenceable(8) %141)
          to label %144 unwind label %164

144:                                              ; preds = %140
  %145 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(256) %139, ptr noundef nonnull %10)
          to label %146 unwind label %166

146:                                              ; preds = %144
  %147 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsEPKc(ptr noundef nonnull align 8 dereferenceable(256) %145, ptr noundef nonnull @.str.9)
          to label %148 unwind label %166

148:                                              ; preds = %146
  %149 = load ptr, ptr %137, align 8, !tbaa !5
  %150 = getelementptr inbounds i8, ptr %149, i64 16
  %151 = load ptr, ptr %150, align 8
  %152 = call noundef ptr %151(ptr noundef nonnull align 8 dereferenceable(8) %137) #12
  %153 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsEPKc(ptr noundef nonnull align 8 dereferenceable(256) %147, ptr noundef %152)
          to label %154 unwind label %166

154:                                              ; preds = %148
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #12
  call void @_ZN3LogD1Ev(ptr noundef nonnull align 8 dereferenceable(256) %9) #12
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %9) #12
  %155 = call noundef ptr @_ZNKSt19__shared_ptr_accessI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1) #12
  %156 = load ptr, ptr %155, align 8, !tbaa !5
  %157 = load ptr, ptr %156, align 8
  invoke void %157(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %11, ptr noundef nonnull align 8 dereferenceable(8) %155)
          to label %158 unwind label %170

158:                                              ; preds = %154
  invoke void @_ZN7BanList9appendBanENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEt(ptr noundef nonnull align 8 dereferenceable(48) %83, ptr noundef nonnull %11, i16 noundef zeroext 34)
          to label %159 unwind label %172

159:                                              ; preds = %158
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #12
  invoke void @__cxa_end_catch()
          to label %160 unwind label %174

160:                                              ; preds = %159, %128
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %12, ptr noundef nonnull align 8 dereferenceable(24) %8, i64 24, i1 false), !tbaa.struct !10
  call void @_ZNSt10shared_ptrI13PeerInterfaceEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %13, ptr noundef nonnull align 8 dereferenceable(16) %1) #12
  invoke void @_ZN21NetworkMessageHandler18handleAskForBlocksE12AskForBlocksSt10shared_ptrI13PeerInterfaceE(ptr noundef nonnull byval(%struct.AskForBlocks) align 8 %12, ptr noundef nonnull %13)
          to label %161 unwind label %178

161:                                              ; preds = %160
  call void @_ZNSt12__shared_ptrI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %13) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %8) #12
  br label %865

162:                                              ; preds = %136
  %163 = landingpad { ptr, i32 }
          cleanup
  br label %169

164:                                              ; preds = %140, %138
  %165 = landingpad { ptr, i32 }
          cleanup
  br label %168

166:                                              ; preds = %148, %146, %144
  %167 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #12
  br label %168

168:                                              ; preds = %166, %164
  %.pn216 = phi { ptr, i32 } [ %167, %166 ], [ %165, %164 ]
  call void @_ZN3LogD1Ev(ptr noundef nonnull align 8 dereferenceable(256) %9) #12
  br label %169

169:                                              ; preds = %168, %162
  %.pn216.pn = phi { ptr, i32 } [ %.pn216, %168 ], [ %163, %162 ]
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %9) #12
  br label %176

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

172:                                              ; preds = %158
  %173 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #12
  br label %176

174:                                              ; preds = %159
  %175 = landingpad { ptr, i32 }
          cleanup
  br label %177

176:                                              ; preds = %172, %170, %169
  %.pn219 = phi { ptr, i32 } [ %173, %172 ], [ %171, %170 ], [ %.pn216.pn, %169 ]
  invoke void @__cxa_end_catch()
          to label %177 unwind label %871

177:                                              ; preds = %176, %174
  %.pn221 = phi { ptr, i32 } [ %175, %174 ], [ %.pn219, %176 ]
  %.4 = extractvalue { ptr, i32 } %.pn221, 0
  %.466 = extractvalue { ptr, i32 } %.pn221, 1
  br label %182

178:                                              ; preds = %160
  %179 = landingpad { ptr, i32 }
          cleanup
  %180 = extractvalue { ptr, i32 } %179, 0
  %181 = extractvalue { ptr, i32 } %179, 1
  call void @_ZNSt12__shared_ptrI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %13) #12
  br label %182

182:                                              ; preds = %178, %177, %130
  %.567 = phi i32 [ %181, %178 ], [ %.466, %177 ], [ %133, %130 ]
  %.5 = phi ptr [ %180, %178 ], [ %.4, %177 ], [ %132, %130 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %8) #12
  br label %867

183:                                              ; preds = %118
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %14) #12
  call void @_ZN11AskForBlockC2Ev(ptr noundef nonnull align 8 dereferenceable(40) %14) #12
  %184 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN11CDataStreamrsI11AskForBlockEERS_RT_(ptr noundef nonnull align 8 dereferenceable(36) %6, ptr noundef nonnull align 8 dereferenceable(40) %14)
          to label %215 unwind label %185

185:                                              ; preds = %183
  %186 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %187 = extractvalue { ptr, i32 } %186, 0
  %188 = extractvalue { ptr, i32 } %186, 1
  %189 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTISt9exception) #12
  %190 = icmp eq i32 %188, %189
  br i1 %190, label %191, label %242

191:                                              ; preds = %185
  %192 = call ptr @__cxa_begin_catch(ptr %187) #12
  call void @llvm.lifetime.start.p0(i64 256, ptr nonnull %15) #12
  invoke void @_ZN3LogC1Eh(ptr noundef nonnull align 8 dereferenceable(256) %15, i8 noundef zeroext 3)
          to label %193 unwind label %218

193:                                              ; preds = %191
  %194 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsEPKc(ptr noundef nonnull align 8 dereferenceable(256) %15, ptr noundef nonnull @.str.10)
          to label %195 unwind label %220

195:                                              ; preds = %193
  %196 = call noundef ptr @_ZNKSt19__shared_ptr_accessI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1) #12
  %197 = load ptr, ptr %196, align 8, !tbaa !5
  %198 = load ptr, ptr %197, align 8
  invoke void %198(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %16, ptr noundef nonnull align 8 dereferenceable(8) %196)
          to label %199 unwind label %220

199:                                              ; preds = %195
  %200 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(256) %194, ptr noundef nonnull %16)
          to label %201 unwind label %222

201:                                              ; preds = %199
  %202 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsEPKc(ptr noundef nonnull align 8 dereferenceable(256) %200, ptr noundef nonnull @.str.9)
          to label %203 unwind label %222

203:                                              ; preds = %201
  %204 = load ptr, ptr %192, align 8, !tbaa !5
  %205 = getelementptr inbounds i8, ptr %204, i64 16
  %206 = load ptr, ptr %205, align 8
  %207 = call noundef ptr %206(ptr noundef nonnull align 8 dereferenceable(8) %192) #12
  %208 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsEPKc(ptr noundef nonnull align 8 dereferenceable(256) %202, ptr noundef %207)
          to label %209 unwind label %222

209:                                              ; preds = %203
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #12
  call void @_ZN3LogD1Ev(ptr noundef nonnull align 8 dereferenceable(256) %15) #12
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %15) #12
  %210 = call noundef ptr @_ZNKSt19__shared_ptr_accessI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1) #12
  %211 = load ptr, ptr %210, align 8, !tbaa !5
  %212 = load ptr, ptr %211, align 8
  invoke void %212(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %17, ptr noundef nonnull align 8 dereferenceable(8) %210)
          to label %213 unwind label %226

213:                                              ; preds = %209
  invoke void @_ZN7BanList9appendBanENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEt(ptr noundef nonnull align 8 dereferenceable(48) %83, ptr noundef nonnull %17, i16 noundef zeroext 34)
          to label %214 unwind label %228

214:                                              ; preds = %213
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #12
  invoke void @__cxa_end_catch()
          to label %215 unwind label %230

215:                                              ; preds = %214, %183
  invoke void @_ZN11AskForBlockC2ERKS_(ptr noundef nonnull align 8 dereferenceable(40) %18, ptr noundef nonnull align 8 dereferenceable(40) %14)
          to label %216 unwind label %234

216:                                              ; preds = %215
  call void @_ZNSt10shared_ptrI13PeerInterfaceEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %19, ptr noundef nonnull align 8 dereferenceable(16) %1) #12
  invoke void @_ZN21NetworkMessageHandler17handleAskForBlockE11AskForBlockSt10shared_ptrI13PeerInterfaceE(ptr noundef nonnull %18, ptr noundef nonnull %19)
          to label %217 unwind label %238

217:                                              ; preds = %216
  call void @_ZNSt12__shared_ptrI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %19) #12
  call void @_ZN11AskForBlockD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %18) #12
  call void @_ZN11AskForBlockD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %14) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %14) #12
  br label %865

218:                                              ; preds = %191
  %219 = landingpad { ptr, i32 }
          cleanup
  br label %225

220:                                              ; preds = %195, %193
  %221 = landingpad { ptr, i32 }
          cleanup
  br label %224

222:                                              ; preds = %203, %201, %199
  %223 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #12
  br label %224

224:                                              ; preds = %222, %220
  %.pn209 = phi { ptr, i32 } [ %223, %222 ], [ %221, %220 ]
  call void @_ZN3LogD1Ev(ptr noundef nonnull align 8 dereferenceable(256) %15) #12
  br label %225

225:                                              ; preds = %224, %218
  %.pn209.pn = phi { ptr, i32 } [ %.pn209, %224 ], [ %219, %218 ]
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %15) #12
  br label %232

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

228:                                              ; preds = %213
  %229 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #12
  br label %232

230:                                              ; preds = %214
  %231 = landingpad { ptr, i32 }
          cleanup
  br label %233

232:                                              ; preds = %228, %226, %225
  %.pn212 = phi { ptr, i32 } [ %229, %228 ], [ %227, %226 ], [ %.pn209.pn, %225 ]
  invoke void @__cxa_end_catch()
          to label %233 unwind label %871

233:                                              ; preds = %232, %230
  %.pn214 = phi { ptr, i32 } [ %231, %230 ], [ %.pn212, %232 ]
  %.9 = extractvalue { ptr, i32 } %.pn214, 0
  %.971 = extractvalue { ptr, i32 } %.pn214, 1
  br label %242

234:                                              ; preds = %215
  %235 = landingpad { ptr, i32 }
          cleanup
  %236 = extractvalue { ptr, i32 } %235, 0
  %237 = extractvalue { ptr, i32 } %235, 1
  br label %242

238:                                              ; preds = %216
  %239 = landingpad { ptr, i32 }
          cleanup
  %240 = extractvalue { ptr, i32 } %239, 0
  %241 = extractvalue { ptr, i32 } %239, 1
  call void @_ZNSt12__shared_ptrI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %19) #12
  call void @_ZN11AskForBlockD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %18) #12
  br label %242

242:                                              ; preds = %238, %234, %233, %185
  %.1072 = phi i32 [ %241, %238 ], [ %237, %234 ], [ %.971, %233 ], [ %188, %185 ]
  %.10 = phi ptr [ %240, %238 ], [ %236, %234 ], [ %.9, %233 ], [ %187, %185 ]
  call void @_ZN11AskForBlockD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %14) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %14) #12
  br label %867

243:                                              ; preds = %118
  %244 = invoke noalias noundef nonnull dereferenceable(1) ptr @_Znwm(i64 noundef 1) #14
          to label %245 unwind label %247

245:                                              ; preds = %243
  store i8 0, ptr %244, align 1
  call void @_ZN11AskForPeersC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %244) #12
  %246 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN11CDataStreamrsI11AskForPeersEERS_RT_(ptr noundef nonnull align 8 dereferenceable(36) %6, ptr noundef nonnull align 1 dereferenceable(1) %244)
          to label %281 unwind label %251

247:                                              ; preds = %243
  %248 = landingpad { ptr, i32 }
          cleanup
  %249 = extractvalue { ptr, i32 } %248, 0
  %250 = extractvalue { ptr, i32 } %248, 1
  br label %867

251:                                              ; preds = %245
  %252 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %253 = extractvalue { ptr, i32 } %252, 0
  %254 = extractvalue { ptr, i32 } %252, 1
  %255 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTISt9exception) #12
  %256 = icmp eq i32 %254, %255
  br i1 %256, label %257, label %867

257:                                              ; preds = %251
  %258 = call ptr @__cxa_begin_catch(ptr %253) #12
  call void @llvm.lifetime.start.p0(i64 256, ptr nonnull %20) #12
  invoke void @_ZN3LogC1Eh(ptr noundef nonnull align 8 dereferenceable(256) %20, i8 noundef zeroext 3)
          to label %259 unwind label %283

259:                                              ; preds = %257
  %260 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsEPKc(ptr noundef nonnull align 8 dereferenceable(256) %20, ptr noundef nonnull @.str.11)
          to label %261 unwind label %285

261:                                              ; preds = %259
  %262 = call noundef ptr @_ZNKSt19__shared_ptr_accessI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1) #12
  %263 = load ptr, ptr %262, align 8, !tbaa !5
  %264 = load ptr, ptr %263, align 8
  invoke void %264(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %21, ptr noundef nonnull align 8 dereferenceable(8) %262)
          to label %265 unwind label %285

265:                                              ; preds = %261
  %266 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(256) %260, ptr noundef nonnull %21)
          to label %267 unwind label %287

267:                                              ; preds = %265
  %268 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsEPKc(ptr noundef nonnull align 8 dereferenceable(256) %266, ptr noundef nonnull @.str.9)
          to label %269 unwind label %287

269:                                              ; preds = %267
  %270 = load ptr, ptr %258, align 8, !tbaa !5
  %271 = getelementptr inbounds i8, ptr %270, i64 16
  %272 = load ptr, ptr %271, align 8
  %273 = call noundef ptr %272(ptr noundef nonnull align 8 dereferenceable(8) %258) #12
  %274 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsEPKc(ptr noundef nonnull align 8 dereferenceable(256) %268, ptr noundef %273)
          to label %275 unwind label %287

275:                                              ; preds = %269
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #12
  call void @_ZN3LogD1Ev(ptr noundef nonnull align 8 dereferenceable(256) %20) #12
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %20) #12
  %276 = call noundef ptr @_ZNKSt19__shared_ptr_accessI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1) #12
  %277 = load ptr, ptr %276, align 8, !tbaa !5
  %278 = load ptr, ptr %277, align 8
  invoke void %278(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %22, ptr noundef nonnull align 8 dereferenceable(8) %276)
          to label %279 unwind label %291

279:                                              ; preds = %275
  invoke void @_ZN7BanList9appendBanENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEt(ptr noundef nonnull align 8 dereferenceable(48) %83, ptr noundef nonnull %22, i16 noundef zeroext 34)
          to label %280 unwind label %293

280:                                              ; preds = %279
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #12
  invoke void @__cxa_end_catch()
          to label %281 unwind label %295

281:                                              ; preds = %280, %245
  call void @_ZNSt10shared_ptrI13PeerInterfaceEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %23, ptr noundef nonnull align 8 dereferenceable(16) %1) #12
  invoke void @_ZN21NetworkMessageHandler17handleAskForPeersESt10shared_ptrI13PeerInterfaceE(ptr noundef nonnull %23)
          to label %282 unwind label %299

282:                                              ; preds = %281
  call void @_ZNSt12__shared_ptrI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %23) #12
  call void @_ZdlPvm(ptr noundef nonnull %244, i64 noundef 1) #13
  br label %865

283:                                              ; preds = %257
  %284 = landingpad { ptr, i32 }
          cleanup
  br label %290

285:                                              ; preds = %261, %259
  %286 = landingpad { ptr, i32 }
          cleanup
  br label %289

287:                                              ; preds = %269, %267, %265
  %288 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #12
  br label %289

289:                                              ; preds = %287, %285
  %.pn202 = phi { ptr, i32 } [ %288, %287 ], [ %286, %285 ]
  call void @_ZN3LogD1Ev(ptr noundef nonnull align 8 dereferenceable(256) %20) #12
  br label %290

290:                                              ; preds = %289, %283
  %.pn202.pn = phi { ptr, i32 } [ %.pn202, %289 ], [ %284, %283 ]
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %20) #12
  br label %297

291:                                              ; preds = %275
  %292 = landingpad { ptr, i32 }
          cleanup
  br label %297

293:                                              ; preds = %279
  %294 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #12
  br label %297

295:                                              ; preds = %280
  %296 = landingpad { ptr, i32 }
          cleanup
  br label %298

297:                                              ; preds = %293, %291, %290
  %.pn205 = phi { ptr, i32 } [ %294, %293 ], [ %292, %291 ], [ %.pn202.pn, %290 ]
  invoke void @__cxa_end_catch()
          to label %298 unwind label %871

298:                                              ; preds = %297, %295
  %.pn207 = phi { ptr, i32 } [ %296, %295 ], [ %.pn205, %297 ]
  %.14 = extractvalue { ptr, i32 } %.pn207, 0
  %.1476 = extractvalue { ptr, i32 } %.pn207, 1
  br label %867

299:                                              ; preds = %281
  %300 = landingpad { ptr, i32 }
          cleanup
  %301 = extractvalue { ptr, i32 } %300, 0
  %302 = extractvalue { ptr, i32 } %300, 1
  call void @_ZNSt12__shared_ptrI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %23) #12
  br label %867

303:                                              ; preds = %118
  call void @_ZNSt10shared_ptrI13PeerInterfaceEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %24, ptr noundef nonnull align 8 dereferenceable(16) %1) #12
  invoke void @_ZN21NetworkMessageHandler28handleAskForBlockchainHeightESt10shared_ptrI13PeerInterfaceE(ptr noundef nonnull %24)
          to label %304 unwind label %305

304:                                              ; preds = %303
  call void @_ZNSt12__shared_ptrI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %24) #12
  br label %865

305:                                              ; preds = %303
  %306 = landingpad { ptr, i32 }
          cleanup
  %307 = extractvalue { ptr, i32 } %306, 0
  %308 = extractvalue { ptr, i32 } %306, 1
  call void @_ZNSt12__shared_ptrI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %24) #12
  br label %867

309:                                              ; preds = %118
  call void @_ZNSt10shared_ptrI13PeerInterfaceEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %25, ptr noundef nonnull align 8 dereferenceable(16) %1) #12
  call void @_ZN21NetworkMessageHandler27handleAskForBestBlockHeaderESt10shared_ptrI13PeerInterfaceE(ptr noundef nonnull %25)
  call void @_ZNSt12__shared_ptrI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %25) #12
  br label %865

310:                                              ; preds = %118
  call void @_ZNSt10shared_ptrI13PeerInterfaceEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %26, ptr noundef nonnull align 8 dereferenceable(16) %1) #12
  invoke void @_ZN21NetworkMessageHandler19handleAskForVersionESt10shared_ptrI13PeerInterfaceE(ptr noundef nonnull %26)
          to label %311 unwind label %312

311:                                              ; preds = %310
  call void @_ZNSt12__shared_ptrI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %26) #12
  br label %865

312:                                              ; preds = %310
  %313 = landingpad { ptr, i32 }
          cleanup
  %314 = extractvalue { ptr, i32 } %313, 0
  %315 = extractvalue { ptr, i32 } %313, 1
  call void @_ZNSt12__shared_ptrI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %26) #12
  br label %867

316:                                              ; preds = %118
  call void @_ZNSt10shared_ptrI13PeerInterfaceEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %27, ptr noundef nonnull align 8 dereferenceable(16) %1) #12
  invoke void @_ZN21NetworkMessageHandler18handleAskForStatusESt10shared_ptrI13PeerInterfaceE(ptr noundef nonnull %27)
          to label %317 unwind label %318

317:                                              ; preds = %316
  call void @_ZNSt12__shared_ptrI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %27) #12
  br label %865

318:                                              ; preds = %316
  %319 = landingpad { ptr, i32 }
          cleanup
  %320 = extractvalue { ptr, i32 } %319, 0
  %321 = extractvalue { ptr, i32 } %319, 1
  call void @_ZNSt12__shared_ptrI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %27) #12
  br label %867

322:                                              ; preds = %118
  call void @_ZNSt10shared_ptrI13PeerInterfaceEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %28, ptr noundef nonnull align 8 dereferenceable(16) %1) #12
  call void @_ZN21NetworkMessageHandler27handleAskForDonationAddressESt10shared_ptrI13PeerInterfaceE(ptr noundef nonnull %28)
  call void @_ZNSt12__shared_ptrI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %28) #12
  br label %865

323:                                              ; preds = %118
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %29) #12
  call void @_ZN20TransmitTransactionsC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #12
  %324 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN11CDataStreamrsI20TransmitTransactionsEERS_RT_(ptr noundef nonnull align 8 dereferenceable(36) %6, ptr noundef nonnull align 8 dereferenceable(32) %29)
          to label %355 unwind label %325

325:                                              ; preds = %323
  %326 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %327 = extractvalue { ptr, i32 } %326, 0
  %328 = extractvalue { ptr, i32 } %326, 1
  %329 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTISt9exception) #12
  %330 = icmp eq i32 %328, %329
  br i1 %330, label %331, label %382

331:                                              ; preds = %325
  %332 = call ptr @__cxa_begin_catch(ptr %327) #12
  call void @llvm.lifetime.start.p0(i64 256, ptr nonnull %30) #12
  invoke void @_ZN3LogC1Eh(ptr noundef nonnull align 8 dereferenceable(256) %30, i8 noundef zeroext 3)
          to label %333 unwind label %358

333:                                              ; preds = %331
  %334 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsEPKc(ptr noundef nonnull align 8 dereferenceable(256) %30, ptr noundef nonnull @.str.12)
          to label %335 unwind label %360

335:                                              ; preds = %333
  %336 = call noundef ptr @_ZNKSt19__shared_ptr_accessI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1) #12
  %337 = load ptr, ptr %336, align 8, !tbaa !5
  %338 = load ptr, ptr %337, align 8
  invoke void %338(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %31, ptr noundef nonnull align 8 dereferenceable(8) %336)
          to label %339 unwind label %360

339:                                              ; preds = %335
  %340 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(256) %334, ptr noundef nonnull %31)
          to label %341 unwind label %362

341:                                              ; preds = %339
  %342 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsEPKc(ptr noundef nonnull align 8 dereferenceable(256) %340, ptr noundef nonnull @.str.9)
          to label %343 unwind label %362

343:                                              ; preds = %341
  %344 = load ptr, ptr %332, align 8, !tbaa !5
  %345 = getelementptr inbounds i8, ptr %344, i64 16
  %346 = load ptr, ptr %345, align 8
  %347 = call noundef ptr %346(ptr noundef nonnull align 8 dereferenceable(8) %332) #12
  %348 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsEPKc(ptr noundef nonnull align 8 dereferenceable(256) %342, ptr noundef %347)
          to label %349 unwind label %362

349:                                              ; preds = %343
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #12
  call void @_ZN3LogD1Ev(ptr noundef nonnull align 8 dereferenceable(256) %30) #12
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %30) #12
  %350 = call noundef ptr @_ZNKSt19__shared_ptr_accessI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1) #12
  %351 = load ptr, ptr %350, align 8, !tbaa !5
  %352 = load ptr, ptr %351, align 8
  invoke void %352(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %32, ptr noundef nonnull align 8 dereferenceable(8) %350)
          to label %353 unwind label %366

353:                                              ; preds = %349
  invoke void @_ZN7BanList9appendBanENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEt(ptr noundef nonnull align 8 dereferenceable(48) %83, ptr noundef nonnull %32, i16 noundef zeroext 34)
          to label %354 unwind label %368

354:                                              ; preds = %353
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #12
  invoke void @__cxa_end_catch()
          to label %355 unwind label %370

355:                                              ; preds = %354, %323
  invoke void @_ZN20TransmitTransactionsC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %33, ptr noundef nonnull align 8 dereferenceable(32) %29)
          to label %356 unwind label %374

356:                                              ; preds = %355
  call void @_ZNSt10shared_ptrI13PeerInterfaceEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %34, ptr noundef nonnull align 8 dereferenceable(16) %1) #12
  invoke void @_ZN21NetworkMessageHandler26handleTransmitTransactionsE20TransmitTransactionsSt10shared_ptrI13PeerInterfaceE(ptr noundef nonnull %33, ptr noundef nonnull %34)
          to label %357 unwind label %378

357:                                              ; preds = %356
  call void @_ZNSt12__shared_ptrI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %34) #12
  call void @_ZN20TransmitTransactionsD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #12
  call void @_ZN20TransmitTransactionsD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #12
  br label %865

358:                                              ; preds = %331
  %359 = landingpad { ptr, i32 }
          cleanup
  br label %365

360:                                              ; preds = %335, %333
  %361 = landingpad { ptr, i32 }
          cleanup
  br label %364

362:                                              ; preds = %343, %341, %339
  %363 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #12
  br label %364

364:                                              ; preds = %362, %360
  %.pn195 = phi { ptr, i32 } [ %363, %362 ], [ %361, %360 ]
  call void @_ZN3LogD1Ev(ptr noundef nonnull align 8 dereferenceable(256) %30) #12
  br label %365

365:                                              ; preds = %364, %358
  %.pn195.pn = phi { ptr, i32 } [ %.pn195, %364 ], [ %359, %358 ]
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %30) #12
  br label %372

366:                                              ; preds = %349
  %367 = landingpad { ptr, i32 }
          cleanup
  br label %372

368:                                              ; preds = %353
  %369 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #12
  br label %372

370:                                              ; preds = %354
  %371 = landingpad { ptr, i32 }
          cleanup
  br label %373

372:                                              ; preds = %368, %366, %365
  %.pn198 = phi { ptr, i32 } [ %369, %368 ], [ %367, %366 ], [ %.pn195.pn, %365 ]
  invoke void @__cxa_end_catch()
          to label %373 unwind label %871

373:                                              ; preds = %372, %370
  %.pn200 = phi { ptr, i32 } [ %371, %370 ], [ %.pn198, %372 ]
  %.19 = extractvalue { ptr, i32 } %.pn200, 0
  %.1981 = extractvalue { ptr, i32 } %.pn200, 1
  br label %382

374:                                              ; preds = %355
  %375 = landingpad { ptr, i32 }
          cleanup
  %376 = extractvalue { ptr, i32 } %375, 0
  %377 = extractvalue { ptr, i32 } %375, 1
  br label %382

378:                                              ; preds = %356
  %379 = landingpad { ptr, i32 }
          cleanup
  %380 = extractvalue { ptr, i32 } %379, 0
  %381 = extractvalue { ptr, i32 } %379, 1
  call void @_ZNSt12__shared_ptrI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %34) #12
  call void @_ZN20TransmitTransactionsD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #12
  br label %382

382:                                              ; preds = %378, %374, %373, %325
  %.2082 = phi i32 [ %381, %378 ], [ %377, %374 ], [ %.1981, %373 ], [ %328, %325 ]
  %.20 = phi ptr [ %380, %378 ], [ %376, %374 ], [ %.19, %373 ], [ %327, %325 ]
  call void @_ZN20TransmitTransactionsD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %29) #12
  br label %867

383:                                              ; preds = %118
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %35) #12
  call void @_ZN13TransmitBlockC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #12
  %384 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN11CDataStreamrsI13TransmitBlockEERS_RT_(ptr noundef nonnull align 8 dereferenceable(36) %6, ptr noundef nonnull align 8 dereferenceable(32) %35)
          to label %415 unwind label %385

385:                                              ; preds = %383
  %386 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %387 = extractvalue { ptr, i32 } %386, 0
  %388 = extractvalue { ptr, i32 } %386, 1
  %389 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTISt9exception) #12
  %390 = icmp eq i32 %388, %389
  br i1 %390, label %391, label %442

391:                                              ; preds = %385
  %392 = call ptr @__cxa_begin_catch(ptr %387) #12
  call void @llvm.lifetime.start.p0(i64 256, ptr nonnull %36) #12
  invoke void @_ZN3LogC1Eh(ptr noundef nonnull align 8 dereferenceable(256) %36, i8 noundef zeroext 3)
          to label %393 unwind label %418

393:                                              ; preds = %391
  %394 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsEPKc(ptr noundef nonnull align 8 dereferenceable(256) %36, ptr noundef nonnull @.str.13)
          to label %395 unwind label %420

395:                                              ; preds = %393
  %396 = call noundef ptr @_ZNKSt19__shared_ptr_accessI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1) #12
  %397 = load ptr, ptr %396, align 8, !tbaa !5
  %398 = load ptr, ptr %397, align 8
  invoke void %398(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %37, ptr noundef nonnull align 8 dereferenceable(8) %396)
          to label %399 unwind label %420

399:                                              ; preds = %395
  %400 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(256) %394, ptr noundef nonnull %37)
          to label %401 unwind label %422

401:                                              ; preds = %399
  %402 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsEPKc(ptr noundef nonnull align 8 dereferenceable(256) %400, ptr noundef nonnull @.str.9)
          to label %403 unwind label %422

403:                                              ; preds = %401
  %404 = load ptr, ptr %392, align 8, !tbaa !5
  %405 = getelementptr inbounds i8, ptr %404, i64 16
  %406 = load ptr, ptr %405, align 8
  %407 = call noundef ptr %406(ptr noundef nonnull align 8 dereferenceable(8) %392) #12
  %408 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsEPKc(ptr noundef nonnull align 8 dereferenceable(256) %402, ptr noundef %407)
          to label %409 unwind label %422

409:                                              ; preds = %403
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #12
  call void @_ZN3LogD1Ev(ptr noundef nonnull align 8 dereferenceable(256) %36) #12
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %36) #12
  %410 = call noundef ptr @_ZNKSt19__shared_ptr_accessI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1) #12
  %411 = load ptr, ptr %410, align 8, !tbaa !5
  %412 = load ptr, ptr %411, align 8
  invoke void %412(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %38, ptr noundef nonnull align 8 dereferenceable(8) %410)
          to label %413 unwind label %426

413:                                              ; preds = %409
  invoke void @_ZN7BanList9appendBanENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEt(ptr noundef nonnull align 8 dereferenceable(48) %83, ptr noundef nonnull %38, i16 noundef zeroext 34)
          to label %414 unwind label %428

414:                                              ; preds = %413
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #12
  invoke void @__cxa_end_catch()
          to label %415 unwind label %430

415:                                              ; preds = %414, %383
  invoke void @_ZN13TransmitBlockC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %39, ptr noundef nonnull align 8 dereferenceable(32) %35)
          to label %416 unwind label %434

416:                                              ; preds = %415
  call void @_ZNSt10shared_ptrI13PeerInterfaceEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %40, ptr noundef nonnull align 8 dereferenceable(16) %1) #12
  invoke void @_ZN21NetworkMessageHandler19handleTransmitBlockE13TransmitBlockSt10shared_ptrI13PeerInterfaceE(ptr noundef nonnull %39, ptr noundef nonnull %40)
          to label %417 unwind label %438

417:                                              ; preds = %416
  call void @_ZNSt12__shared_ptrI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %40) #12
  call void @_ZN13TransmitBlockD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #12
  call void @_ZN13TransmitBlockD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #12
  br label %865

418:                                              ; preds = %391
  %419 = landingpad { ptr, i32 }
          cleanup
  br label %425

420:                                              ; preds = %395, %393
  %421 = landingpad { ptr, i32 }
          cleanup
  br label %424

422:                                              ; preds = %403, %401, %399
  %423 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #12
  br label %424

424:                                              ; preds = %422, %420
  %.pn188 = phi { ptr, i32 } [ %423, %422 ], [ %421, %420 ]
  call void @_ZN3LogD1Ev(ptr noundef nonnull align 8 dereferenceable(256) %36) #12
  br label %425

425:                                              ; preds = %424, %418
  %.pn188.pn = phi { ptr, i32 } [ %.pn188, %424 ], [ %419, %418 ]
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %36) #12
  br label %432

426:                                              ; preds = %409
  %427 = landingpad { ptr, i32 }
          cleanup
  br label %432

428:                                              ; preds = %413
  %429 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #12
  br label %432

430:                                              ; preds = %414
  %431 = landingpad { ptr, i32 }
          cleanup
  br label %433

432:                                              ; preds = %428, %426, %425
  %.pn191 = phi { ptr, i32 } [ %429, %428 ], [ %427, %426 ], [ %.pn188.pn, %425 ]
  invoke void @__cxa_end_catch()
          to label %433 unwind label %871

433:                                              ; preds = %432, %430
  %.pn193 = phi { ptr, i32 } [ %431, %430 ], [ %.pn191, %432 ]
  %.24 = extractvalue { ptr, i32 } %.pn193, 0
  %.2486 = extractvalue { ptr, i32 } %.pn193, 1
  br label %442

434:                                              ; preds = %415
  %435 = landingpad { ptr, i32 }
          cleanup
  %436 = extractvalue { ptr, i32 } %435, 0
  %437 = extractvalue { ptr, i32 } %435, 1
  br label %442

438:                                              ; preds = %416
  %439 = landingpad { ptr, i32 }
          cleanup
  %440 = extractvalue { ptr, i32 } %439, 0
  %441 = extractvalue { ptr, i32 } %439, 1
  call void @_ZNSt12__shared_ptrI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %40) #12
  call void @_ZN13TransmitBlockD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #12
  br label %442

442:                                              ; preds = %438, %434, %433, %385
  %.2587 = phi i32 [ %441, %438 ], [ %437, %434 ], [ %.2486, %433 ], [ %388, %385 ]
  %.25 = phi ptr [ %440, %438 ], [ %436, %434 ], [ %.24, %433 ], [ %387, %385 ]
  call void @_ZN13TransmitBlockD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #12
  br label %867

443:                                              ; preds = %118
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %41) #12
  call void @_ZN14TransmitBlocksC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #12
  %444 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN11CDataStreamrsI14TransmitBlocksEERS_RT_(ptr noundef nonnull align 8 dereferenceable(36) %6, ptr noundef nonnull align 8 dereferenceable(32) %41)
          to label %475 unwind label %445

445:                                              ; preds = %443
  %446 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %447 = extractvalue { ptr, i32 } %446, 0
  %448 = extractvalue { ptr, i32 } %446, 1
  %449 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTISt9exception) #12
  %450 = icmp eq i32 %448, %449
  br i1 %450, label %451, label %502

451:                                              ; preds = %445
  %452 = call ptr @__cxa_begin_catch(ptr %447) #12
  call void @llvm.lifetime.start.p0(i64 256, ptr nonnull %42) #12
  invoke void @_ZN3LogC1Eh(ptr noundef nonnull align 8 dereferenceable(256) %42, i8 noundef zeroext 3)
          to label %453 unwind label %478

453:                                              ; preds = %451
  %454 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsEPKc(ptr noundef nonnull align 8 dereferenceable(256) %42, ptr noundef nonnull @.str.13)
          to label %455 unwind label %480

455:                                              ; preds = %453
  %456 = call noundef ptr @_ZNKSt19__shared_ptr_accessI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1) #12
  %457 = load ptr, ptr %456, align 8, !tbaa !5
  %458 = load ptr, ptr %457, align 8
  invoke void %458(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %43, ptr noundef nonnull align 8 dereferenceable(8) %456)
          to label %459 unwind label %480

459:                                              ; preds = %455
  %460 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(256) %454, ptr noundef nonnull %43)
          to label %461 unwind label %482

461:                                              ; preds = %459
  %462 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsEPKc(ptr noundef nonnull align 8 dereferenceable(256) %460, ptr noundef nonnull @.str.9)
          to label %463 unwind label %482

463:                                              ; preds = %461
  %464 = load ptr, ptr %452, align 8, !tbaa !5
  %465 = getelementptr inbounds i8, ptr %464, i64 16
  %466 = load ptr, ptr %465, align 8
  %467 = call noundef ptr %466(ptr noundef nonnull align 8 dereferenceable(8) %452) #12
  %468 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsEPKc(ptr noundef nonnull align 8 dereferenceable(256) %462, ptr noundef %467)
          to label %469 unwind label %482

469:                                              ; preds = %463
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #12
  call void @_ZN3LogD1Ev(ptr noundef nonnull align 8 dereferenceable(256) %42) #12
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %42) #12
  %470 = call noundef ptr @_ZNKSt19__shared_ptr_accessI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1) #12
  %471 = load ptr, ptr %470, align 8, !tbaa !5
  %472 = load ptr, ptr %471, align 8
  invoke void %472(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %44, ptr noundef nonnull align 8 dereferenceable(8) %470)
          to label %473 unwind label %486

473:                                              ; preds = %469
  invoke void @_ZN7BanList9appendBanENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEt(ptr noundef nonnull align 8 dereferenceable(48) %83, ptr noundef nonnull %44, i16 noundef zeroext 34)
          to label %474 unwind label %488

474:                                              ; preds = %473
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #12
  invoke void @__cxa_end_catch()
          to label %475 unwind label %490

475:                                              ; preds = %474, %443
  invoke void @_ZN14TransmitBlocksC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %45, ptr noundef nonnull align 8 dereferenceable(32) %41)
          to label %476 unwind label %494

476:                                              ; preds = %475
  call void @_ZNSt10shared_ptrI13PeerInterfaceEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %46, ptr noundef nonnull align 8 dereferenceable(16) %1) #12
  invoke void @_ZN21NetworkMessageHandler20handleTransmitBlocksE14TransmitBlocksSt10shared_ptrI13PeerInterfaceE(ptr noundef nonnull %45, ptr noundef nonnull %46)
          to label %477 unwind label %498

477:                                              ; preds = %476
  call void @_ZNSt12__shared_ptrI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %46) #12
  call void @_ZN14TransmitBlocksD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #12
  call void @_ZN14TransmitBlocksD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %41) #12
  br label %865

478:                                              ; preds = %451
  %479 = landingpad { ptr, i32 }
          cleanup
  br label %485

480:                                              ; preds = %455, %453
  %481 = landingpad { ptr, i32 }
          cleanup
  br label %484

482:                                              ; preds = %463, %461, %459
  %483 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #12
  br label %484

484:                                              ; preds = %482, %480
  %.pn181 = phi { ptr, i32 } [ %483, %482 ], [ %481, %480 ]
  call void @_ZN3LogD1Ev(ptr noundef nonnull align 8 dereferenceable(256) %42) #12
  br label %485

485:                                              ; preds = %484, %478
  %.pn181.pn = phi { ptr, i32 } [ %.pn181, %484 ], [ %479, %478 ]
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %42) #12
  br label %492

486:                                              ; preds = %469
  %487 = landingpad { ptr, i32 }
          cleanup
  br label %492

488:                                              ; preds = %473
  %489 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #12
  br label %492

490:                                              ; preds = %474
  %491 = landingpad { ptr, i32 }
          cleanup
  br label %493

492:                                              ; preds = %488, %486, %485
  %.pn184 = phi { ptr, i32 } [ %489, %488 ], [ %487, %486 ], [ %.pn181.pn, %485 ]
  invoke void @__cxa_end_catch()
          to label %493 unwind label %871

493:                                              ; preds = %492, %490
  %.pn186 = phi { ptr, i32 } [ %491, %490 ], [ %.pn184, %492 ]
  %.29 = extractvalue { ptr, i32 } %.pn186, 0
  %.2991 = extractvalue { ptr, i32 } %.pn186, 1
  br label %502

494:                                              ; preds = %475
  %495 = landingpad { ptr, i32 }
          cleanup
  %496 = extractvalue { ptr, i32 } %495, 0
  %497 = extractvalue { ptr, i32 } %495, 1
  br label %502

498:                                              ; preds = %476
  %499 = landingpad { ptr, i32 }
          cleanup
  %500 = extractvalue { ptr, i32 } %499, 0
  %501 = extractvalue { ptr, i32 } %499, 1
  call void @_ZNSt12__shared_ptrI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %46) #12
  call void @_ZN14TransmitBlocksD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #12
  br label %502

502:                                              ; preds = %498, %494, %493, %445
  %.3092 = phi i32 [ %501, %498 ], [ %497, %494 ], [ %.2991, %493 ], [ %448, %445 ]
  %.30 = phi ptr [ %500, %498 ], [ %496, %494 ], [ %.29, %493 ], [ %447, %445 ]
  call void @_ZN14TransmitBlocksD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %41) #12
  br label %867

503:                                              ; preds = %118
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %47) #12
  call void @_ZN13TransmitPeersC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #12
  %504 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN11CDataStreamrsI13TransmitPeersEERS_RT_(ptr noundef nonnull align 8 dereferenceable(36) %6, ptr noundef nonnull align 8 dereferenceable(32) %47)
          to label %535 unwind label %505

505:                                              ; preds = %503
  %506 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %507 = extractvalue { ptr, i32 } %506, 0
  %508 = extractvalue { ptr, i32 } %506, 1
  %509 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTISt9exception) #12
  %510 = icmp eq i32 %508, %509
  br i1 %510, label %511, label %562

511:                                              ; preds = %505
  %512 = call ptr @__cxa_begin_catch(ptr %507) #12
  call void @llvm.lifetime.start.p0(i64 256, ptr nonnull %48) #12
  invoke void @_ZN3LogC1Eh(ptr noundef nonnull align 8 dereferenceable(256) %48, i8 noundef zeroext 3)
          to label %513 unwind label %538

513:                                              ; preds = %511
  %514 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsEPKc(ptr noundef nonnull align 8 dereferenceable(256) %48, ptr noundef nonnull @.str.14)
          to label %515 unwind label %540

515:                                              ; preds = %513
  %516 = call noundef ptr @_ZNKSt19__shared_ptr_accessI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1) #12
  %517 = load ptr, ptr %516, align 8, !tbaa !5
  %518 = load ptr, ptr %517, align 8
  invoke void %518(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %49, ptr noundef nonnull align 8 dereferenceable(8) %516)
          to label %519 unwind label %540

519:                                              ; preds = %515
  %520 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(256) %514, ptr noundef nonnull %49)
          to label %521 unwind label %542

521:                                              ; preds = %519
  %522 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsEPKc(ptr noundef nonnull align 8 dereferenceable(256) %520, ptr noundef nonnull @.str.9)
          to label %523 unwind label %542

523:                                              ; preds = %521
  %524 = load ptr, ptr %512, align 8, !tbaa !5
  %525 = getelementptr inbounds i8, ptr %524, i64 16
  %526 = load ptr, ptr %525, align 8
  %527 = call noundef ptr %526(ptr noundef nonnull align 8 dereferenceable(8) %512) #12
  %528 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsEPKc(ptr noundef nonnull align 8 dereferenceable(256) %522, ptr noundef %527)
          to label %529 unwind label %542

529:                                              ; preds = %523
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #12
  call void @_ZN3LogD1Ev(ptr noundef nonnull align 8 dereferenceable(256) %48) #12
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %48) #12
  %530 = call noundef ptr @_ZNKSt19__shared_ptr_accessI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1) #12
  %531 = load ptr, ptr %530, align 8, !tbaa !5
  %532 = load ptr, ptr %531, align 8
  invoke void %532(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %50, ptr noundef nonnull align 8 dereferenceable(8) %530)
          to label %533 unwind label %546

533:                                              ; preds = %529
  invoke void @_ZN7BanList9appendBanENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEt(ptr noundef nonnull align 8 dereferenceable(48) %83, ptr noundef nonnull %50, i16 noundef zeroext 34)
          to label %534 unwind label %548

534:                                              ; preds = %533
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #12
  invoke void @__cxa_end_catch()
          to label %535 unwind label %550

535:                                              ; preds = %534, %503
  invoke void @_ZN13TransmitPeersC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %51, ptr noundef nonnull align 8 dereferenceable(32) %47)
          to label %536 unwind label %554

536:                                              ; preds = %535
  call void @_ZNSt10shared_ptrI13PeerInterfaceEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %52, ptr noundef nonnull align 8 dereferenceable(16) %1) #12
  invoke void @_ZN21NetworkMessageHandler19handleTransmitPeersE13TransmitPeersSt10shared_ptrI13PeerInterfaceE(ptr noundef nonnull %51, ptr noundef nonnull %52)
          to label %537 unwind label %558

537:                                              ; preds = %536
  call void @_ZNSt12__shared_ptrI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %52) #12
  call void @_ZN13TransmitPeersD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #12
  call void @_ZN13TransmitPeersD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %47) #12
  br label %865

538:                                              ; preds = %511
  %539 = landingpad { ptr, i32 }
          cleanup
  br label %545

540:                                              ; preds = %515, %513
  %541 = landingpad { ptr, i32 }
          cleanup
  br label %544

542:                                              ; preds = %523, %521, %519
  %543 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #12
  br label %544

544:                                              ; preds = %542, %540
  %.pn174 = phi { ptr, i32 } [ %543, %542 ], [ %541, %540 ]
  call void @_ZN3LogD1Ev(ptr noundef nonnull align 8 dereferenceable(256) %48) #12
  br label %545

545:                                              ; preds = %544, %538
  %.pn174.pn = phi { ptr, i32 } [ %.pn174, %544 ], [ %539, %538 ]
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %48) #12
  br label %552

546:                                              ; preds = %529
  %547 = landingpad { ptr, i32 }
          cleanup
  br label %552

548:                                              ; preds = %533
  %549 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #12
  br label %552

550:                                              ; preds = %534
  %551 = landingpad { ptr, i32 }
          cleanup
  br label %553

552:                                              ; preds = %548, %546, %545
  %.pn177 = phi { ptr, i32 } [ %549, %548 ], [ %547, %546 ], [ %.pn174.pn, %545 ]
  invoke void @__cxa_end_catch()
          to label %553 unwind label %871

553:                                              ; preds = %552, %550
  %.pn179 = phi { ptr, i32 } [ %551, %550 ], [ %.pn177, %552 ]
  %.34 = extractvalue { ptr, i32 } %.pn179, 0
  %.3496 = extractvalue { ptr, i32 } %.pn179, 1
  br label %562

554:                                              ; preds = %535
  %555 = landingpad { ptr, i32 }
          cleanup
  %556 = extractvalue { ptr, i32 } %555, 0
  %557 = extractvalue { ptr, i32 } %555, 1
  br label %562

558:                                              ; preds = %536
  %559 = landingpad { ptr, i32 }
          cleanup
  %560 = extractvalue { ptr, i32 } %559, 0
  %561 = extractvalue { ptr, i32 } %559, 1
  call void @_ZNSt12__shared_ptrI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %52) #12
  call void @_ZN13TransmitPeersD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #12
  br label %562

562:                                              ; preds = %558, %554, %553, %505
  %.3597 = phi i32 [ %561, %558 ], [ %557, %554 ], [ %.3496, %553 ], [ %508, %505 ]
  %.35 = phi ptr [ %560, %558 ], [ %556, %554 ], [ %.34, %553 ], [ %507, %505 ]
  call void @_ZN13TransmitPeersD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %47) #12
  br label %867

563:                                              ; preds = %118
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %53) #12
  call void @_ZN24TransmitBlockchainHeightC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #12
  %564 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN11CDataStreamrsI24TransmitBlockchainHeightEERS_RT_(ptr noundef nonnull align 8 dereferenceable(36) %6, ptr noundef nonnull align 8 dereferenceable(32) %53)
          to label %595 unwind label %565

565:                                              ; preds = %563
  %566 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %567 = extractvalue { ptr, i32 } %566, 0
  %568 = extractvalue { ptr, i32 } %566, 1
  %569 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTISt9exception) #12
  %570 = icmp eq i32 %568, %569
  br i1 %570, label %571, label %622

571:                                              ; preds = %565
  %572 = call ptr @__cxa_begin_catch(ptr %567) #12
  call void @llvm.lifetime.start.p0(i64 256, ptr nonnull %54) #12
  invoke void @_ZN3LogC1Eh(ptr noundef nonnull align 8 dereferenceable(256) %54, i8 noundef zeroext 3)
          to label %573 unwind label %598

573:                                              ; preds = %571
  %574 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsEPKc(ptr noundef nonnull align 8 dereferenceable(256) %54, ptr noundef nonnull @.str.15)
          to label %575 unwind label %600

575:                                              ; preds = %573
  %576 = call noundef ptr @_ZNKSt19__shared_ptr_accessI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1) #12
  %577 = load ptr, ptr %576, align 8, !tbaa !5
  %578 = load ptr, ptr %577, align 8
  invoke void %578(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %55, ptr noundef nonnull align 8 dereferenceable(8) %576)
          to label %579 unwind label %600

579:                                              ; preds = %575
  %580 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(256) %574, ptr noundef nonnull %55)
          to label %581 unwind label %602

581:                                              ; preds = %579
  %582 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsEPKc(ptr noundef nonnull align 8 dereferenceable(256) %580, ptr noundef nonnull @.str.9)
          to label %583 unwind label %602

583:                                              ; preds = %581
  %584 = load ptr, ptr %572, align 8, !tbaa !5
  %585 = getelementptr inbounds i8, ptr %584, i64 16
  %586 = load ptr, ptr %585, align 8
  %587 = call noundef ptr %586(ptr noundef nonnull align 8 dereferenceable(8) %572) #12
  %588 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsEPKc(ptr noundef nonnull align 8 dereferenceable(256) %582, ptr noundef %587)
          to label %589 unwind label %602

589:                                              ; preds = %583
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #12
  call void @_ZN3LogD1Ev(ptr noundef nonnull align 8 dereferenceable(256) %54) #12
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %54) #12
  %590 = call noundef ptr @_ZNKSt19__shared_ptr_accessI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1) #12
  %591 = load ptr, ptr %590, align 8, !tbaa !5
  %592 = load ptr, ptr %591, align 8
  invoke void %592(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %56, ptr noundef nonnull align 8 dereferenceable(8) %590)
          to label %593 unwind label %606

593:                                              ; preds = %589
  invoke void @_ZN7BanList9appendBanENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEt(ptr noundef nonnull align 8 dereferenceable(48) %83, ptr noundef nonnull %56, i16 noundef zeroext 34)
          to label %594 unwind label %608

594:                                              ; preds = %593
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #12
  invoke void @__cxa_end_catch()
          to label %595 unwind label %610

595:                                              ; preds = %594, %563
  invoke void @_ZN24TransmitBlockchainHeightC2ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %57, ptr noundef nonnull align 8 dereferenceable(32) %53)
          to label %596 unwind label %614

596:                                              ; preds = %595
  call void @_ZNSt10shared_ptrI13PeerInterfaceEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %58, ptr noundef nonnull align 8 dereferenceable(16) %1) #12
  invoke void @_ZN21NetworkMessageHandler30handleTransmitBlockchainHeightE24TransmitBlockchainHeightSt10shared_ptrI13PeerInterfaceE(ptr noundef nonnull %57, ptr noundef nonnull %58)
          to label %597 unwind label %618

597:                                              ; preds = %596
  call void @_ZNSt12__shared_ptrI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %58) #12
  call void @_ZN24TransmitBlockchainHeightD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #12
  call void @_ZN24TransmitBlockchainHeightD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %53) #12
  br label %865

598:                                              ; preds = %571
  %599 = landingpad { ptr, i32 }
          cleanup
  br label %605

600:                                              ; preds = %575, %573
  %601 = landingpad { ptr, i32 }
          cleanup
  br label %604

602:                                              ; preds = %583, %581, %579
  %603 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #12
  br label %604

604:                                              ; preds = %602, %600
  %.pn167 = phi { ptr, i32 } [ %603, %602 ], [ %601, %600 ]
  call void @_ZN3LogD1Ev(ptr noundef nonnull align 8 dereferenceable(256) %54) #12
  br label %605

605:                                              ; preds = %604, %598
  %.pn167.pn = phi { ptr, i32 } [ %.pn167, %604 ], [ %599, %598 ]
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %54) #12
  br label %612

606:                                              ; preds = %589
  %607 = landingpad { ptr, i32 }
          cleanup
  br label %612

608:                                              ; preds = %593
  %609 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #12
  br label %612

610:                                              ; preds = %594
  %611 = landingpad { ptr, i32 }
          cleanup
  br label %613

612:                                              ; preds = %608, %606, %605
  %.pn170 = phi { ptr, i32 } [ %609, %608 ], [ %607, %606 ], [ %.pn167.pn, %605 ]
  invoke void @__cxa_end_catch()
          to label %613 unwind label %871

613:                                              ; preds = %612, %610
  %.pn172 = phi { ptr, i32 } [ %611, %610 ], [ %.pn170, %612 ]
  %.39 = extractvalue { ptr, i32 } %.pn172, 0
  %.39101 = extractvalue { ptr, i32 } %.pn172, 1
  br label %622

614:                                              ; preds = %595
  %615 = landingpad { ptr, i32 }
          cleanup
  %616 = extractvalue { ptr, i32 } %615, 0
  %617 = extractvalue { ptr, i32 } %615, 1
  br label %622

618:                                              ; preds = %596
  %619 = landingpad { ptr, i32 }
          cleanup
  %620 = extractvalue { ptr, i32 } %619, 0
  %621 = extractvalue { ptr, i32 } %619, 1
  call void @_ZNSt12__shared_ptrI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %58) #12
  call void @_ZN24TransmitBlockchainHeightD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #12
  br label %622

622:                                              ; preds = %618, %614, %613, %565
  %.40102 = phi i32 [ %621, %618 ], [ %617, %614 ], [ %.39101, %613 ], [ %568, %565 ]
  %.40 = phi ptr [ %620, %618 ], [ %616, %614 ], [ %.39, %613 ], [ %567, %565 ]
  call void @_ZN24TransmitBlockchainHeightD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %53) #12
  br label %867

623:                                              ; preds = %118
  call void @llvm.lifetime.start.p0(i64 408, ptr nonnull %59) #12
  call void @_ZN23TransmitBestBlockHeaderC2Ev(ptr noundef nonnull align 8 dereferenceable(408) %59) #12
  %624 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN11CDataStreamrsI23TransmitBestBlockHeaderEERS_RT_(ptr noundef nonnull align 8 dereferenceable(36) %6, ptr noundef nonnull align 8 dereferenceable(408) %59)
          to label %655 unwind label %625

625:                                              ; preds = %623
  %626 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %627 = extractvalue { ptr, i32 } %626, 0
  %628 = extractvalue { ptr, i32 } %626, 1
  %629 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTISt9exception) #12
  %630 = icmp eq i32 %628, %629
  br i1 %630, label %631, label %677

631:                                              ; preds = %625
  %632 = call ptr @__cxa_begin_catch(ptr %627) #12
  call void @llvm.lifetime.start.p0(i64 256, ptr nonnull %60) #12
  invoke void @_ZN3LogC1Eh(ptr noundef nonnull align 8 dereferenceable(256) %60, i8 noundef zeroext 3)
          to label %633 unwind label %657

633:                                              ; preds = %631
  %634 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsEPKc(ptr noundef nonnull align 8 dereferenceable(256) %60, ptr noundef nonnull @.str.16)
          to label %635 unwind label %659

635:                                              ; preds = %633
  %636 = call noundef ptr @_ZNKSt19__shared_ptr_accessI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1) #12
  %637 = load ptr, ptr %636, align 8, !tbaa !5
  %638 = load ptr, ptr %637, align 8
  invoke void %638(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %61, ptr noundef nonnull align 8 dereferenceable(8) %636)
          to label %639 unwind label %659

639:                                              ; preds = %635
  %640 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(256) %634, ptr noundef nonnull %61)
          to label %641 unwind label %661

641:                                              ; preds = %639
  %642 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsEPKc(ptr noundef nonnull align 8 dereferenceable(256) %640, ptr noundef nonnull @.str.9)
          to label %643 unwind label %661

643:                                              ; preds = %641
  %644 = load ptr, ptr %632, align 8, !tbaa !5
  %645 = getelementptr inbounds i8, ptr %644, i64 16
  %646 = load ptr, ptr %645, align 8
  %647 = call noundef ptr %646(ptr noundef nonnull align 8 dereferenceable(8) %632) #12
  %648 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsEPKc(ptr noundef nonnull align 8 dereferenceable(256) %642, ptr noundef %647)
          to label %649 unwind label %661

649:                                              ; preds = %643
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #12
  call void @_ZN3LogD1Ev(ptr noundef nonnull align 8 dereferenceable(256) %60) #12
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %60) #12
  %650 = call noundef ptr @_ZNKSt19__shared_ptr_accessI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1) #12
  %651 = load ptr, ptr %650, align 8, !tbaa !5
  %652 = load ptr, ptr %651, align 8
  invoke void %652(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %62, ptr noundef nonnull align 8 dereferenceable(8) %650)
          to label %653 unwind label %665

653:                                              ; preds = %649
  invoke void @_ZN7BanList9appendBanENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEt(ptr noundef nonnull align 8 dereferenceable(48) %83, ptr noundef nonnull %62, i16 noundef zeroext 34)
          to label %654 unwind label %667

654:                                              ; preds = %653
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #12
  invoke void @__cxa_end_catch()
          to label %655 unwind label %669

655:                                              ; preds = %654, %623
  invoke void @_ZN23TransmitBestBlockHeaderC2ERKS_(ptr noundef nonnull align 8 dereferenceable(408) %63, ptr noundef nonnull align 8 dereferenceable(408) %59)
          to label %656 unwind label %673

656:                                              ; preds = %655
  call void @_ZNSt10shared_ptrI13PeerInterfaceEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %64, ptr noundef nonnull align 8 dereferenceable(16) %1) #12
  call void @_ZN21NetworkMessageHandler29handleTransmitBestBlockHeaderE23TransmitBestBlockHeaderSt10shared_ptrI13PeerInterfaceE(ptr noundef nonnull %63, ptr noundef nonnull %64)
  call void @_ZNSt12__shared_ptrI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %64) #12
  call void @_ZN23TransmitBestBlockHeaderD2Ev(ptr noundef nonnull align 8 dereferenceable(408) %63) #12
  call void @_ZN23TransmitBestBlockHeaderD2Ev(ptr noundef nonnull align 8 dereferenceable(408) %59) #12
  call void @llvm.lifetime.end.p0(i64 408, ptr nonnull %59) #12
  br label %865

657:                                              ; preds = %631
  %658 = landingpad { ptr, i32 }
          cleanup
  br label %664

659:                                              ; preds = %635, %633
  %660 = landingpad { ptr, i32 }
          cleanup
  br label %663

661:                                              ; preds = %643, %641, %639
  %662 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #12
  br label %663

663:                                              ; preds = %661, %659
  %.pn160 = phi { ptr, i32 } [ %662, %661 ], [ %660, %659 ]
  call void @_ZN3LogD1Ev(ptr noundef nonnull align 8 dereferenceable(256) %60) #12
  br label %664

664:                                              ; preds = %663, %657
  %.pn160.pn = phi { ptr, i32 } [ %.pn160, %663 ], [ %658, %657 ]
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %60) #12
  br label %671

665:                                              ; preds = %649
  %666 = landingpad { ptr, i32 }
          cleanup
  br label %671

667:                                              ; preds = %653
  %668 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #12
  br label %671

669:                                              ; preds = %654
  %670 = landingpad { ptr, i32 }
          cleanup
  br label %672

671:                                              ; preds = %667, %665, %664
  %.pn163 = phi { ptr, i32 } [ %668, %667 ], [ %666, %665 ], [ %.pn160.pn, %664 ]
  invoke void @__cxa_end_catch()
          to label %672 unwind label %871

672:                                              ; preds = %671, %669
  %.pn165 = phi { ptr, i32 } [ %670, %669 ], [ %.pn163, %671 ]
  %.44 = extractvalue { ptr, i32 } %.pn165, 0
  %.44106 = extractvalue { ptr, i32 } %.pn165, 1
  br label %677

673:                                              ; preds = %655
  %674 = landingpad { ptr, i32 }
          cleanup
  %675 = extractvalue { ptr, i32 } %674, 0
  %676 = extractvalue { ptr, i32 } %674, 1
  br label %677

677:                                              ; preds = %673, %672, %625
  %.45107 = phi i32 [ %676, %673 ], [ %.44106, %672 ], [ %628, %625 ]
  %.45 = phi ptr [ %675, %673 ], [ %.44, %672 ], [ %627, %625 ]
  call void @_ZN23TransmitBestBlockHeaderD2Ev(ptr noundef nonnull align 8 dereferenceable(408) %59) #12
  call void @llvm.lifetime.end.p0(i64 408, ptr nonnull %59) #12
  br label %867

678:                                              ; preds = %118
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %65) #12
  call void @_ZN15TransmitVersionC2Ev(ptr noundef nonnull align 2 dereferenceable(4) %65) #12
  %679 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN11CDataStreamrsI15TransmitVersionEERS_RT_(ptr noundef nonnull align 8 dereferenceable(36) %6, ptr noundef nonnull align 2 dereferenceable(4) %65)
          to label %710 unwind label %680

680:                                              ; preds = %678
  %681 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %682 = extractvalue { ptr, i32 } %681, 0
  %683 = extractvalue { ptr, i32 } %681, 1
  %684 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTISt9exception) #12
  %685 = icmp eq i32 %683, %684
  br i1 %685, label %686, label %732

686:                                              ; preds = %680
  %687 = call ptr @__cxa_begin_catch(ptr %682) #12
  call void @llvm.lifetime.start.p0(i64 256, ptr nonnull %66) #12
  invoke void @_ZN3LogC1Eh(ptr noundef nonnull align 8 dereferenceable(256) %66, i8 noundef zeroext 3)
          to label %688 unwind label %712

688:                                              ; preds = %686
  %689 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsEPKc(ptr noundef nonnull align 8 dereferenceable(256) %66, ptr noundef nonnull @.str.17)
          to label %690 unwind label %714

690:                                              ; preds = %688
  %691 = call noundef ptr @_ZNKSt19__shared_ptr_accessI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1) #12
  %692 = load ptr, ptr %691, align 8, !tbaa !5
  %693 = load ptr, ptr %692, align 8
  invoke void %693(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %67, ptr noundef nonnull align 8 dereferenceable(8) %691)
          to label %694 unwind label %714

694:                                              ; preds = %690
  %695 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(256) %689, ptr noundef nonnull %67)
          to label %696 unwind label %716

696:                                              ; preds = %694
  %697 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsEPKc(ptr noundef nonnull align 8 dereferenceable(256) %695, ptr noundef nonnull @.str.9)
          to label %698 unwind label %716

698:                                              ; preds = %696
  %699 = load ptr, ptr %687, align 8, !tbaa !5
  %700 = getelementptr inbounds i8, ptr %699, i64 16
  %701 = load ptr, ptr %700, align 8
  %702 = call noundef ptr %701(ptr noundef nonnull align 8 dereferenceable(8) %687) #12
  %703 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsEPKc(ptr noundef nonnull align 8 dereferenceable(256) %697, ptr noundef %702)
          to label %704 unwind label %716

704:                                              ; preds = %698
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #12
  call void @_ZN3LogD1Ev(ptr noundef nonnull align 8 dereferenceable(256) %66) #12
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %66) #12
  %705 = call noundef ptr @_ZNKSt19__shared_ptr_accessI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1) #12
  %706 = load ptr, ptr %705, align 8, !tbaa !5
  %707 = load ptr, ptr %706, align 8
  invoke void %707(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %68, ptr noundef nonnull align 8 dereferenceable(8) %705)
          to label %708 unwind label %720

708:                                              ; preds = %704
  invoke void @_ZN7BanList9appendBanENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEt(ptr noundef nonnull align 8 dereferenceable(48) %83, ptr noundef nonnull %68, i16 noundef zeroext 34)
          to label %709 unwind label %722

709:                                              ; preds = %708
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #12
  invoke void @__cxa_end_catch()
          to label %710 unwind label %724

710:                                              ; preds = %709, %678
  %.sroa.02.0.copyload = load i32, ptr %65, align 4
  call void @_ZNSt10shared_ptrI13PeerInterfaceEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %69, ptr noundef nonnull align 8 dereferenceable(16) %1) #12
  invoke void @_ZN21NetworkMessageHandler21handleTransmitVersionE15TransmitVersionSt10shared_ptrI13PeerInterfaceE(i32 %.sroa.02.0.copyload, ptr noundef nonnull %69)
          to label %711 unwind label %728

711:                                              ; preds = %710
  call void @_ZNSt12__shared_ptrI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %69) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %65) #12
  br label %865

712:                                              ; preds = %686
  %713 = landingpad { ptr, i32 }
          cleanup
  br label %719

714:                                              ; preds = %690, %688
  %715 = landingpad { ptr, i32 }
          cleanup
  br label %718

716:                                              ; preds = %698, %696, %694
  %717 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #12
  br label %718

718:                                              ; preds = %716, %714
  %.pn153 = phi { ptr, i32 } [ %717, %716 ], [ %715, %714 ]
  call void @_ZN3LogD1Ev(ptr noundef nonnull align 8 dereferenceable(256) %66) #12
  br label %719

719:                                              ; preds = %718, %712
  %.pn153.pn = phi { ptr, i32 } [ %.pn153, %718 ], [ %713, %712 ]
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %66) #12
  br label %726

720:                                              ; preds = %704
  %721 = landingpad { ptr, i32 }
          cleanup
  br label %726

722:                                              ; preds = %708
  %723 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #12
  br label %726

724:                                              ; preds = %709
  %725 = landingpad { ptr, i32 }
          cleanup
  br label %727

726:                                              ; preds = %722, %720, %719
  %.pn156 = phi { ptr, i32 } [ %723, %722 ], [ %721, %720 ], [ %.pn153.pn, %719 ]
  invoke void @__cxa_end_catch()
          to label %727 unwind label %871

727:                                              ; preds = %726, %724
  %.pn158 = phi { ptr, i32 } [ %725, %724 ], [ %.pn156, %726 ]
  %.49 = extractvalue { ptr, i32 } %.pn158, 0
  %.49111 = extractvalue { ptr, i32 } %.pn158, 1
  br label %732

728:                                              ; preds = %710
  %729 = landingpad { ptr, i32 }
          cleanup
  %730 = extractvalue { ptr, i32 } %729, 0
  %731 = extractvalue { ptr, i32 } %729, 1
  call void @_ZNSt12__shared_ptrI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %69) #12
  br label %732

732:                                              ; preds = %728, %727, %680
  %.50112 = phi i32 [ %731, %728 ], [ %.49111, %727 ], [ %683, %680 ]
  %.50 = phi ptr [ %730, %728 ], [ %.49, %727 ], [ %682, %680 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %65) #12
  br label %867

733:                                              ; preds = %118
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %70) #12
  call void @_ZN14TransmitStatusC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %70) #12
  %734 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN11CDataStreamrsI14TransmitStatusEERS_RT_(ptr noundef nonnull align 8 dereferenceable(36) %6, ptr noundef nonnull align 1 dereferenceable(1) %70)
          to label %765 unwind label %735

735:                                              ; preds = %733
  %736 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %737 = extractvalue { ptr, i32 } %736, 0
  %738 = extractvalue { ptr, i32 } %736, 1
  %739 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTISt9exception) #12
  %740 = icmp eq i32 %738, %739
  br i1 %740, label %741, label %787

741:                                              ; preds = %735
  %742 = call ptr @__cxa_begin_catch(ptr %737) #12
  call void @llvm.lifetime.start.p0(i64 256, ptr nonnull %71) #12
  invoke void @_ZN3LogC1Eh(ptr noundef nonnull align 8 dereferenceable(256) %71, i8 noundef zeroext 3)
          to label %743 unwind label %767

743:                                              ; preds = %741
  %744 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsEPKc(ptr noundef nonnull align 8 dereferenceable(256) %71, ptr noundef nonnull @.str.18)
          to label %745 unwind label %769

745:                                              ; preds = %743
  %746 = call noundef ptr @_ZNKSt19__shared_ptr_accessI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1) #12
  %747 = load ptr, ptr %746, align 8, !tbaa !5
  %748 = load ptr, ptr %747, align 8
  invoke void %748(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %72, ptr noundef nonnull align 8 dereferenceable(8) %746)
          to label %749 unwind label %769

749:                                              ; preds = %745
  %750 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(256) %744, ptr noundef nonnull %72)
          to label %751 unwind label %771

751:                                              ; preds = %749
  %752 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsEPKc(ptr noundef nonnull align 8 dereferenceable(256) %750, ptr noundef nonnull @.str.9)
          to label %753 unwind label %771

753:                                              ; preds = %751
  %754 = load ptr, ptr %742, align 8, !tbaa !5
  %755 = getelementptr inbounds i8, ptr %754, i64 16
  %756 = load ptr, ptr %755, align 8
  %757 = call noundef ptr %756(ptr noundef nonnull align 8 dereferenceable(8) %742) #12
  %758 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsEPKc(ptr noundef nonnull align 8 dereferenceable(256) %752, ptr noundef %757)
          to label %759 unwind label %771

759:                                              ; preds = %753
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %72) #12
  call void @_ZN3LogD1Ev(ptr noundef nonnull align 8 dereferenceable(256) %71) #12
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %71) #12
  %760 = call noundef ptr @_ZNKSt19__shared_ptr_accessI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1) #12
  %761 = load ptr, ptr %760, align 8, !tbaa !5
  %762 = load ptr, ptr %761, align 8
  invoke void %762(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %73, ptr noundef nonnull align 8 dereferenceable(8) %760)
          to label %763 unwind label %775

763:                                              ; preds = %759
  invoke void @_ZN7BanList9appendBanENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEt(ptr noundef nonnull align 8 dereferenceable(48) %83, ptr noundef nonnull %73, i16 noundef zeroext 34)
          to label %764 unwind label %777

764:                                              ; preds = %763
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #12
  invoke void @__cxa_end_catch()
          to label %765 unwind label %779

765:                                              ; preds = %764, %733
  %.sroa.0.0.copyload = load i8, ptr %70, align 1, !tbaa !8
  call void @_ZNSt10shared_ptrI13PeerInterfaceEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %74, ptr noundef nonnull align 8 dereferenceable(16) %1) #12
  invoke void @_ZN21NetworkMessageHandler20handleTransmitStatusE14TransmitStatusSt10shared_ptrI13PeerInterfaceE(i8 %.sroa.0.0.copyload, ptr noundef nonnull %74)
          to label %766 unwind label %783

766:                                              ; preds = %765
  call void @_ZNSt12__shared_ptrI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %74) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %70) #12
  br label %865

767:                                              ; preds = %741
  %768 = landingpad { ptr, i32 }
          cleanup
  br label %774

769:                                              ; preds = %745, %743
  %770 = landingpad { ptr, i32 }
          cleanup
  br label %773

771:                                              ; preds = %753, %751, %749
  %772 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %72) #12
  br label %773

773:                                              ; preds = %771, %769
  %.pn146 = phi { ptr, i32 } [ %772, %771 ], [ %770, %769 ]
  call void @_ZN3LogD1Ev(ptr noundef nonnull align 8 dereferenceable(256) %71) #12
  br label %774

774:                                              ; preds = %773, %767
  %.pn146.pn = phi { ptr, i32 } [ %.pn146, %773 ], [ %768, %767 ]
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %71) #12
  br label %781

775:                                              ; preds = %759
  %776 = landingpad { ptr, i32 }
          cleanup
  br label %781

777:                                              ; preds = %763
  %778 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #12
  br label %781

779:                                              ; preds = %764
  %780 = landingpad { ptr, i32 }
          cleanup
  br label %782

781:                                              ; preds = %777, %775, %774
  %.pn149 = phi { ptr, i32 } [ %778, %777 ], [ %776, %775 ], [ %.pn146.pn, %774 ]
  invoke void @__cxa_end_catch()
          to label %782 unwind label %871

782:                                              ; preds = %781, %779
  %.pn151 = phi { ptr, i32 } [ %780, %779 ], [ %.pn149, %781 ]
  %.54 = extractvalue { ptr, i32 } %.pn151, 0
  %.54116 = extractvalue { ptr, i32 } %.pn151, 1
  br label %787

783:                                              ; preds = %765
  %784 = landingpad { ptr, i32 }
          cleanup
  %785 = extractvalue { ptr, i32 } %784, 0
  %786 = extractvalue { ptr, i32 } %784, 1
  call void @_ZNSt12__shared_ptrI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %74) #12
  br label %787

787:                                              ; preds = %783, %782, %735
  %.55117 = phi i32 [ %786, %783 ], [ %.54116, %782 ], [ %738, %735 ]
  %.55 = phi ptr [ %785, %783 ], [ %.54, %782 ], [ %737, %735 ]
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %70) #12
  br label %867

788:                                              ; preds = %118
  call void @_ZNSt10shared_ptrI13PeerInterfaceEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %75, ptr noundef nonnull align 8 dereferenceable(16) %1) #12
  invoke void @_ZN21NetworkMessageHandler19handleTransmitLeaveESt10shared_ptrI13PeerInterfaceE(ptr noundef nonnull %75)
          to label %789 unwind label %790

789:                                              ; preds = %788
  call void @_ZNSt12__shared_ptrI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %75) #12
  br label %865

790:                                              ; preds = %788
  %791 = landingpad { ptr, i32 }
          cleanup
  %792 = extractvalue { ptr, i32 } %791, 0
  %793 = extractvalue { ptr, i32 } %791, 1
  call void @_ZNSt12__shared_ptrI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %75) #12
  br label %867

794:                                              ; preds = %118
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %76) #12
  call void @_ZN23TransmitDonationAddressC2Ev(ptr noundef nonnull align 8 dereferenceable(40) %76) #12
  %795 = invoke noundef nonnull align 8 dereferenceable(36) ptr @_ZN11CDataStreamrsI23TransmitDonationAddressEERS_RT_(ptr noundef nonnull align 8 dereferenceable(36) %6, ptr noundef nonnull align 8 dereferenceable(40) %76)
          to label %826 unwind label %796

796:                                              ; preds = %794
  %797 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt9exception
  %798 = extractvalue { ptr, i32 } %797, 0
  %799 = extractvalue { ptr, i32 } %797, 1
  %800 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTISt9exception) #12
  %801 = icmp eq i32 %799, %800
  br i1 %801, label %802, label %853

802:                                              ; preds = %796
  %803 = call ptr @__cxa_begin_catch(ptr %798) #12
  call void @llvm.lifetime.start.p0(i64 256, ptr nonnull %77) #12
  invoke void @_ZN3LogC1Eh(ptr noundef nonnull align 8 dereferenceable(256) %77, i8 noundef zeroext 3)
          to label %804 unwind label %829

804:                                              ; preds = %802
  %805 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsEPKc(ptr noundef nonnull align 8 dereferenceable(256) %77, ptr noundef nonnull @.str.19)
          to label %806 unwind label %831

806:                                              ; preds = %804
  %807 = call noundef ptr @_ZNKSt19__shared_ptr_accessI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1) #12
  %808 = load ptr, ptr %807, align 8, !tbaa !5
  %809 = load ptr, ptr %808, align 8
  invoke void %809(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %78, ptr noundef nonnull align 8 dereferenceable(8) %807)
          to label %810 unwind label %831

810:                                              ; preds = %806
  %811 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(256) %805, ptr noundef nonnull %78)
          to label %812 unwind label %833

812:                                              ; preds = %810
  %813 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsEPKc(ptr noundef nonnull align 8 dereferenceable(256) %811, ptr noundef nonnull @.str.9)
          to label %814 unwind label %833

814:                                              ; preds = %812
  %815 = load ptr, ptr %803, align 8, !tbaa !5
  %816 = getelementptr inbounds i8, ptr %815, i64 16
  %817 = load ptr, ptr %816, align 8
  %818 = call noundef ptr %817(ptr noundef nonnull align 8 dereferenceable(8) %803) #12
  %819 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsEPKc(ptr noundef nonnull align 8 dereferenceable(256) %813, ptr noundef %818)
          to label %820 unwind label %833

820:                                              ; preds = %814
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #12
  call void @_ZN3LogD1Ev(ptr noundef nonnull align 8 dereferenceable(256) %77) #12
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %77) #12
  %821 = call noundef ptr @_ZNKSt19__shared_ptr_accessI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %1) #12
  %822 = load ptr, ptr %821, align 8, !tbaa !5
  %823 = load ptr, ptr %822, align 8
  invoke void %823(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %79, ptr noundef nonnull align 8 dereferenceable(8) %821)
          to label %824 unwind label %837

824:                                              ; preds = %820
  invoke void @_ZN7BanList9appendBanENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEt(ptr noundef nonnull align 8 dereferenceable(48) %83, ptr noundef nonnull %79, i16 noundef zeroext 34)
          to label %825 unwind label %839

825:                                              ; preds = %824
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #12
  invoke void @__cxa_end_catch()
          to label %826 unwind label %841

826:                                              ; preds = %825, %794
  invoke void @_ZN23TransmitDonationAddressC2ERKS_(ptr noundef nonnull align 8 dereferenceable(40) %80, ptr noundef nonnull align 8 dereferenceable(40) %76)
          to label %827 unwind label %845

827:                                              ; preds = %826
  call void @_ZNSt10shared_ptrI13PeerInterfaceEC2ERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %81, ptr noundef nonnull align 8 dereferenceable(16) %1) #12
  invoke void @_ZN21NetworkMessageHandler29handleTransmitDonationAddressE23TransmitDonationAddressSt10shared_ptrI13PeerInterfaceE(ptr noundef nonnull %80, ptr noundef nonnull %81)
          to label %828 unwind label %849

828:                                              ; preds = %827
  call void @_ZNSt12__shared_ptrI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %81) #12
  call void @_ZN23TransmitDonationAddressD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %80) #12
  call void @_ZN23TransmitDonationAddressD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %76) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %76) #12
  br label %865

829:                                              ; preds = %802
  %830 = landingpad { ptr, i32 }
          cleanup
  br label %836

831:                                              ; preds = %806, %804
  %832 = landingpad { ptr, i32 }
          cleanup
  br label %835

833:                                              ; preds = %814, %812, %810
  %834 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #12
  br label %835

835:                                              ; preds = %833, %831
  %.pn139 = phi { ptr, i32 } [ %834, %833 ], [ %832, %831 ]
  call void @_ZN3LogD1Ev(ptr noundef nonnull align 8 dereferenceable(256) %77) #12
  br label %836

836:                                              ; preds = %835, %829
  %.pn139.pn = phi { ptr, i32 } [ %.pn139, %835 ], [ %830, %829 ]
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %77) #12
  br label %843

837:                                              ; preds = %820
  %838 = landingpad { ptr, i32 }
          cleanup
  br label %843

839:                                              ; preds = %824
  %840 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #12
  br label %843

841:                                              ; preds = %825
  %842 = landingpad { ptr, i32 }
          cleanup
  br label %844

843:                                              ; preds = %839, %837, %836
  %.pn142 = phi { ptr, i32 } [ %840, %839 ], [ %838, %837 ], [ %.pn139.pn, %836 ]
  invoke void @__cxa_end_catch()
          to label %844 unwind label %871

844:                                              ; preds = %843, %841
  %.pn144 = phi { ptr, i32 } [ %842, %841 ], [ %.pn142, %843 ]
  %.59 = extractvalue { ptr, i32 } %.pn144, 0
  %.59121 = extractvalue { ptr, i32 } %.pn144, 1
  br label %853

845:                                              ; preds = %826
  %846 = landingpad { ptr, i32 }
          cleanup
  %847 = extractvalue { ptr, i32 } %846, 0
  %848 = extractvalue { ptr, i32 } %846, 1
  br label %853

849:                                              ; preds = %827
  %850 = landingpad { ptr, i32 }
          cleanup
  %851 = extractvalue { ptr, i32 } %850, 0
  %852 = extractvalue { ptr, i32 } %850, 1
  call void @_ZNSt12__shared_ptrI13PeerInterfaceLN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %81) #12
  call void @_ZN23TransmitDonationAddressD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %80) #12
  br label %853

853:                                              ; preds = %849, %845, %844, %796
  %.60122 = phi i32 [ %852, %849 ], [ %848, %845 ], [ %.59121, %844 ], [ %799, %796 ]
  %.60 = phi ptr [ %851, %849 ], [ %847, %845 ], [ %.59, %844 ], [ %798, %796 ]
  call void @_ZN23TransmitDonationAddressD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %76) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %76) #12
  br label %867

854:                                              ; preds = %118
  call void @llvm.lifetime.start.p0(i64 256, ptr nonnull %82) #12
  invoke void @_ZN3LogC1Eh(ptr noundef nonnull align 8 dereferenceable(256) %82, i8 noundef zeroext 3)
          to label %855 unwind label %860

855:                                              ; preds = %854
  %856 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsEPKc(ptr noundef nonnull align 8 dereferenceable(256) %82, ptr noundef nonnull @.str.20)
          to label %857 unwind label %862

857:                                              ; preds = %855
  %858 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsEi(ptr noundef nonnull align 8 dereferenceable(256) %856, i32 noundef %116)
          to label %859 unwind label %862

859:                                              ; preds = %857
  call void @_ZN3LogD1Ev(ptr noundef nonnull align 8 dereferenceable(256) %82) #12
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %82) #12
  br label %865

860:                                              ; preds = %854
  %861 = landingpad { ptr, i32 }
          cleanup
  br label %864

862:                                              ; preds = %857, %855
  %863 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3LogD1Ev(ptr noundef nonnull align 8 dereferenceable(256) %82) #12
  br label %864

864:                                              ; preds = %862, %860
  %.pn223 = phi { ptr, i32 } [ %863, %862 ], [ %861, %860 ]
  %.61 = extractvalue { ptr, i32 } %.pn223, 0
  %.61123 = extractvalue { ptr, i32 } %.pn223, 1
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %82) #12
  br label %867

865:                                              ; preds = %859, %828, %789, %766, %711, %656, %597, %537, %477, %417, %357, %322, %317, %311, %309, %304, %282, %217, %161
  call void @_ZN11CDataStream5clearEv(ptr noundef nonnull align 8 dereferenceable(36) %6)
  call void @_ZN14NetworkMessageD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %0) #12
  call void @_ZdlPvm(ptr noundef %0, i64 noundef 16) #13
  call void @_ZN11CDataStreamD2Ev(ptr noundef nonnull align 8 dereferenceable(36) %6) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %6) #12
  br label %866

866:                                              ; preds = %865, %94
  ret void

867:                                              ; preds = %247, %251, %298, %299, %864, %853, %790, %787, %732, %677, %622, %562, %502, %442, %382, %318, %312, %305, %242, %182, %127, %119
  %.62124 = phi i32 [ %.61123, %864 ], [ %.60122, %853 ], [ %793, %790 ], [ %.55117, %787 ], [ %.50112, %732 ], [ %.45107, %677 ], [ %.40102, %622 ], [ %.3597, %562 ], [ %.3092, %502 ], [ %.2587, %442 ], [ %.2082, %382 ], [ %321, %318 ], [ %315, %312 ], [ %308, %305 ], [ %.1072, %242 ], [ %.567, %182 ], [ %.062, %127 ], [ %122, %119 ], [ %302, %299 ], [ %.1476, %298 ], [ %254, %251 ], [ %250, %247 ]
  %.62 = phi ptr [ %.61, %864 ], [ %.60, %853 ], [ %792, %790 ], [ %.55, %787 ], [ %.50, %732 ], [ %.45, %677 ], [ %.40, %622 ], [ %.35, %562 ], [ %.30, %502 ], [ %.25, %442 ], [ %.20, %382 ], [ %320, %318 ], [ %314, %312 ], [ %307, %305 ], [ %.10, %242 ], [ %.5, %182 ], [ %.0, %127 ], [ %121, %119 ], [ %301, %299 ], [ %.14, %298 ], [ %253, %251 ], [ %249, %247 ]
  call void @_ZN11CDataStreamD2Ev(ptr noundef nonnull align 8 dereferenceable(36) %6) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %6) #12
  br label %868

868:                                              ; preds = %867, %103, %99, %95
  %.63125 = phi i32 [ %106, %103 ], [ %102, %99 ], [ %.62124, %867 ], [ %98, %95 ]
  %.63 = phi ptr [ %105, %103 ], [ %101, %99 ], [ %.62, %867 ], [ %97, %95 ]
  %869 = insertvalue { ptr, i32 } poison, ptr %.63, 0
  %870 = insertvalue { ptr, i32 } %869, i32 %.63125, 1
  resume { ptr, i32 } %870

871:                                              ; preds = %843, %781, %726, %671, %612, %552, %492, %432, %372, %297, %232, %176
  %872 = landingpad { ptr, i32 }
          catch ptr null
  %873 = extractvalue { ptr, i32 } %872, 0
  call void @__clang_call_terminate(ptr %873) #15
  unreachable
}

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

declare void @_ZN3LogC1Eh(ptr noundef nonnull align 8 dereferenceable(256), i8 noundef zeroext) unnamed_addr #4

declare noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsEPKc(ptr noundef nonnull align 8 dereferenceable(256), ptr noundef) local_unnamed_addr #4

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7BanList9appendBanENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEt(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef, i16 noundef zeroext) local_unnamed_addr #3 align 2

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

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

; Function Attrs: nobuiltin nounwind
declare void @_ZdlPvm(ptr noundef, i64 noundef) local_unnamed_addr #6

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN11CDataStream5writeEPKcm(ptr noundef nonnull align 8 dereferenceable(36), ptr noundef, i64 noundef) local_unnamed_addr #3 align 2

declare noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsEi(ptr noundef nonnull align 8 dereferenceable(256), i32 noundef) local_unnamed_addr #4

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

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

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

declare noundef nonnull align 8 dereferenceable(256) ptr @_ZN3LoglsENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(256), ptr noundef) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN21NetworkMessageHandler18handleAskForBlocksE12AskForBlocksSt10shared_ptrI13PeerInterfaceE(ptr noundef byval(%struct.AskForBlocks) align 8, ptr noundef) local_unnamed_addr #3 align 2

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN21NetworkMessageHandler17handleAskForBlockE11AskForBlockSt10shared_ptrI13PeerInterfaceE(ptr noundef, ptr noundef) local_unnamed_addr #3 align 2

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

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

; Function Attrs: nobuiltin allocsize(0)
declare noundef nonnull ptr @_Znwm(i64 noundef) local_unnamed_addr #11

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN21NetworkMessageHandler17handleAskForPeersESt10shared_ptrI13PeerInterfaceE(ptr noundef) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN21NetworkMessageHandler28handleAskForBlockchainHeightESt10shared_ptrI13PeerInterfaceE(ptr noundef) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN21NetworkMessageHandler27handleAskForBestBlockHeaderESt10shared_ptrI13PeerInterfaceE(ptr noundef) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN21NetworkMessageHandler19handleAskForVersionESt10shared_ptrI13PeerInterfaceE(ptr noundef) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN21NetworkMessageHandler18handleAskForStatusESt10shared_ptrI13PeerInterfaceE(ptr noundef) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN21NetworkMessageHandler27handleAskForDonationAddressESt10shared_ptrI13PeerInterfaceE(ptr noundef) local_unnamed_addr #2 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(36) ptr @_ZN11CDataStreamrsI20TransmitTransactionsEERS_RT_(ptr noundef nonnull align 8 dereferenceable(36), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN21NetworkMessageHandler26handleTransmitTransactionsE20TransmitTransactionsSt10shared_ptrI13PeerInterfaceE(ptr noundef, ptr noundef) local_unnamed_addr #3 align 2

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(36) ptr @_ZN11CDataStreamrsI13TransmitBlockEERS_RT_(ptr noundef nonnull align 8 dereferenceable(36), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN21NetworkMessageHandler19handleTransmitBlockE13TransmitBlockSt10shared_ptrI13PeerInterfaceE(ptr noundef, ptr noundef) local_unnamed_addr #3 align 2

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(36) ptr @_ZN11CDataStreamrsI14TransmitBlocksEERS_RT_(ptr noundef nonnull align 8 dereferenceable(36), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN21NetworkMessageHandler20handleTransmitBlocksE14TransmitBlocksSt10shared_ptrI13PeerInterfaceE(ptr noundef, ptr noundef) local_unnamed_addr #3 align 2

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(36) ptr @_ZN11CDataStreamrsI13TransmitPeersEERS_RT_(ptr noundef nonnull align 8 dereferenceable(36), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN21NetworkMessageHandler19handleTransmitPeersE13TransmitPeersSt10shared_ptrI13PeerInterfaceE(ptr noundef, ptr noundef) local_unnamed_addr #3 align 2

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(36) ptr @_ZN11CDataStreamrsI24TransmitBlockchainHeightEERS_RT_(ptr noundef nonnull align 8 dereferenceable(36), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN21NetworkMessageHandler30handleTransmitBlockchainHeightE24TransmitBlockchainHeightSt10shared_ptrI13PeerInterfaceE(ptr noundef, ptr noundef) local_unnamed_addr #3 align 2

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(36) ptr @_ZN11CDataStreamrsI23TransmitBestBlockHeaderEERS_RT_(ptr noundef nonnull align 8 dereferenceable(36), ptr noundef nonnull align 8 dereferenceable(408)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN21NetworkMessageHandler29handleTransmitBestBlockHeaderE23TransmitBestBlockHeaderSt10shared_ptrI13PeerInterfaceE(ptr noundef, ptr noundef) local_unnamed_addr #2 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN23TransmitBestBlockHeaderC2ERKS_(ptr noundef nonnull align 8 dereferenceable(408), ptr noundef nonnull align 8 dereferenceable(408)) unnamed_addr #10 align 2

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN21NetworkMessageHandler21handleTransmitVersionE15TransmitVersionSt10shared_ptrI13PeerInterfaceE(i32, ptr noundef) local_unnamed_addr #3 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN21NetworkMessageHandler20handleTransmitStatusE14TransmitStatusSt10shared_ptrI13PeerInterfaceE(i8, ptr noundef) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN21NetworkMessageHandler19handleTransmitLeaveESt10shared_ptrI13PeerInterfaceE(ptr noundef) local_unnamed_addr #3 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN21NetworkMessageHandler29handleTransmitDonationAddressE23TransmitDonationAddressSt10shared_ptrI13PeerInterfaceE(ptr noundef, ptr noundef) local_unnamed_addr #3 align 2

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

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"vtable pointer", !7, i64 0}
!7 = !{!"Simple C++ TBAA"}
!8 = !{!9, !9, i64 0}
!9 = !{!"omnipotent char", !7, i64 0}
!10 = !{i64 0, i64 1, !8, i64 8, i64 8, !11, i64 16, i64 8, !11}
!11 = !{!12, !12, i64 0}
!12 = !{!"long", !9, i64 0}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GlobalOptPass,IPSCCPPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,SROAPass,SimplifyCFGPass,TailCallElimPass