; LLVM IR from dynexcoin/Dynex :: src/P2p (NetNodeConfig)

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

%"struct.command_line::arg_descriptor" = type <{ ptr, ptr, %"class.std::__cxx11::basic_string", i8, [7 x i8] }>
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"struct.command_line::arg_descriptor.12" = type { ptr, ptr, i16, i8 }
%"struct.command_line::arg_descriptor.13" = type { ptr, ptr, i8, i8 }
%"struct.command_line::arg_descriptor.14" = type { ptr, ptr }
%"class.std::allocator" = type { i8 }
%"class.std::vector.37" = type { %"struct.std::_Vector_base.38" }
%"struct.std::_Vector_base.38" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.__gnu_cxx::__normal_iterator" = type { ptr }
%"struct.DynexCN::PeerlistEntry" = type { %"struct.DynexCN::NetworkAddress", i64, i64 }
%"struct.DynexCN::NetworkAddress" = type { i32, i32 }
%"class.boost::value_initialized" = type { %"class.boost::initialized" }
%"class.boost::initialized" = type { %"struct.DynexCN::PeerlistEntry" }
%"class.DynexCN::NetNodeConfig" = type <{ %"class.std::__cxx11::basic_string", i16, i16, i8, [3 x i8], %"class.std::vector.15", %"class.std::vector.20", %"class.std::vector.20", %"class.std::vector.20", i8, [7 x i8], %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", i8, [7 x i8] }>
%"class.std::vector.15" = type { %"struct.std::_Vector_base.16" }
%"struct.std::_Vector_base.16" = type { %"struct.std::_Vector_base<DynexCN::PeerlistEntry, std::allocator<DynexCN::PeerlistEntry>>::_Vector_impl" }
%"struct.std::_Vector_base<DynexCN::PeerlistEntry, std::allocator<DynexCN::PeerlistEntry>>::_Vector_impl" = type { %"struct.std::_Vector_base<DynexCN::PeerlistEntry, std::allocator<DynexCN::PeerlistEntry>>::_Vector_impl_data" }
%"struct.std::_Vector_base<DynexCN::PeerlistEntry, std::allocator<DynexCN::PeerlistEntry>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.20" = type { %"struct.std::_Vector_base.21" }
%"struct.std::_Vector_base.21" = type { %"struct.std::_Vector_base<DynexCN::NetworkAddress, std::allocator<DynexCN::NetworkAddress>>::_Vector_impl" }
%"struct.std::_Vector_base<DynexCN::NetworkAddress, std::allocator<DynexCN::NetworkAddress>>::_Vector_impl" = type { %"struct.std::_Vector_base<DynexCN::NetworkAddress, std::allocator<DynexCN::NetworkAddress>>::_Vector_impl_data" }
%"struct.std::_Vector_base<DynexCN::NetworkAddress, std::allocator<DynexCN::NetworkAddress>>::_Vector_impl_data" = type { ptr, ptr, ptr }

@_ZN7DynexCN12_GLOBAL__N_115arg_p2p_bind_ipB5cxx11E = external hidden global %"struct.command_line::arg_descriptor", align 8
@_ZN7DynexCN12_GLOBAL__N_117arg_p2p_bind_portE = external hidden constant %"struct.command_line::arg_descriptor.12", align 8
@_ZN7DynexCN12_GLOBAL__N_121arg_p2p_external_portE = external hidden constant %"struct.command_line::arg_descriptor.12", align 8
@_ZN7DynexCN12_GLOBAL__N_122arg_p2p_allow_local_ipE = external hidden constant %"struct.command_line::arg_descriptor.13", align 8
@_ZN7DynexCN12_GLOBAL__N_116arg_p2p_add_peerB5cxx11E = external hidden constant %"struct.command_line::arg_descriptor.14", align 8
@_ZN7DynexCN12_GLOBAL__N_125arg_p2p_add_priority_nodeB5cxx11E = external hidden constant %"struct.command_line::arg_descriptor.14", align 8
@_ZN7DynexCN12_GLOBAL__N_126arg_p2p_add_exclusive_nodeB5cxx11E = external hidden constant %"struct.command_line::arg_descriptor.14", align 8
@_ZN7DynexCN12_GLOBAL__N_117arg_p2p_seed_nodeB5cxx11E = external hidden constant %"struct.command_line::arg_descriptor.14", align 8
@_ZN7DynexCN12_GLOBAL__N_120arg_p2p_hide_my_portE = external hidden constant %"struct.command_line::arg_descriptor.13", align 8
@_ZN12command_line12arg_data_dirB5cxx11E = external global %"struct.command_line::arg_descriptor", align 8
@_ZN7DynexCN10parametersL21P2P_NET_DATA_FILENAMEE = external hidden constant [13 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: mustprogress nounwind uwtable
declare void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1 align 2

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

declare i32 @__gxx_personality_v0(...)

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

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

declare void @_ZN5Tools23getDefaultDataDirectoryB5cxx11Ev(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8) #3

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

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

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_ZN7DynexCN13NetNodeConfig4initERKN5boost15program_options13variables_mapE(ptr noundef nonnull align 8 dereferenceable(209) %0, ptr noundef nonnull align 8 dereferenceable(160) %1) #2 align 2 personality ptr @__gxx_personality_v0 {
  %3 = alloca i1, align 1
  %4 = alloca ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca %"class.std::__cxx11::basic_string", align 8
  %7 = alloca %"class.std::allocator", align 1
  %8 = alloca ptr, align 8
  %9 = alloca i32, align 4
  %10 = alloca %"class.std::__cxx11::basic_string", align 8
  %11 = alloca i1, align 1
  %12 = alloca %"class.std::allocator", align 1
  %13 = alloca i1, align 1
  %14 = alloca i1, align 1
  %15 = alloca i1, align 1
  %16 = alloca %"class.std::__cxx11::basic_string", align 8
  %17 = alloca %"class.std::__cxx11::basic_string", align 8
  %18 = alloca %"class.std::allocator", align 1
  %19 = alloca %"class.std::__cxx11::basic_string", align 8
  %20 = alloca i1, align 1
  %21 = alloca %"class.std::allocator", align 1
  %22 = alloca i1, align 1
  %23 = alloca i1, align 1
  %24 = alloca i1, align 1
  %25 = alloca %"class.std::__cxx11::basic_string", align 8
  %26 = alloca %"class.std::allocator", align 1
  %27 = alloca %"class.std::__cxx11::basic_string", align 8
  %28 = alloca i1, align 1
  %29 = alloca %"class.std::allocator", align 1
  %30 = alloca i1, align 1
  %31 = alloca i1, align 1
  %32 = alloca i1, align 1
  %33 = alloca %"class.std::__cxx11::basic_string", align 8
  %34 = alloca %"class.std::allocator", align 1
  %35 = alloca %"class.std::__cxx11::basic_string", align 8
  %36 = alloca i1, align 1
  %37 = alloca %"class.std::allocator", align 1
  %38 = alloca i1, align 1
  %39 = alloca i1, align 1
  %40 = alloca i1, align 1
  %41 = alloca %"class.std::__cxx11::basic_string", align 8
  %42 = alloca %"class.std::allocator", align 1
  %43 = alloca %"class.std::__cxx11::basic_string", align 8
  %44 = alloca i1, align 1
  %45 = alloca %"class.std::allocator", align 1
  %46 = alloca i1, align 1
  %47 = alloca i1, align 1
  %48 = alloca i1, align 1
  %49 = alloca %"class.std::__cxx11::basic_string", align 8
  %50 = alloca i1, align 1
  %51 = alloca i1, align 1
  %52 = alloca %"class.std::__cxx11::basic_string", align 8
  %53 = alloca %"class.std::vector.37", align 8
  %54 = alloca ptr, align 8
  %55 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %56 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %57 = alloca i32, align 4
  %58 = alloca ptr, align 8
  %59 = alloca %"struct.DynexCN::PeerlistEntry", align 1
  %60 = alloca %"class.boost::value_initialized", align 1
  store ptr %0, ptr %4, align 8, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !5
  %61 = load ptr, ptr %4, align 8
  %62 = load ptr, ptr %5, align 8, !tbaa !5
  %63 = getelementptr inbounds i8, ptr %62, i64 16
  call void @llvm.lifetime.start.p0(i64 32, ptr %6) #7
  %64 = load ptr, ptr @_ZN7DynexCN12_GLOBAL__N_115arg_p2p_bind_ipB5cxx11E, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %7) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #7
  store i1 false, ptr %11, align 1
  store i1 false, ptr %13, align 1
  store i1 false, ptr %14, align 1
  store i1 false, ptr %15, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef %64, ptr noundef nonnull align 1 dereferenceable(1) %7)
          to label %65 unwind label %100

65:                                               ; preds = %2
  %66 = invoke noundef i64 @_ZNKSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN5boost15program_options14variable_valueESt4lessIS5_ESaISt4pairIKS5_S8_EEE5countERSC_(ptr noundef nonnull align 8 dereferenceable(48) %63, ptr noundef nonnull align 8 dereferenceable(32) %6)
          to label %67 unwind label %104

67:                                               ; preds = %65
  %68 = icmp ne i64 %66, 0
  br i1 %68, label %69, label %82

69:                                               ; preds = %67
  %70 = load ptr, ptr %5, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %10) #7
  store i1 true, ptr %11, align 1
  %71 = load ptr, ptr @_ZN7DynexCN12_GLOBAL__N_115arg_p2p_bind_ipB5cxx11E, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %12) #7
  store i1 true, ptr %13, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #7
  store i1 true, ptr %14, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef %71, ptr noundef nonnull align 1 dereferenceable(1) %12)
          to label %72 unwind label %108

72:                                               ; preds = %69
  store i1 true, ptr %15, align 1
  %73 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5boost15program_options13variables_mapixERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(160) %70, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %74 unwind label %112

74:                                               ; preds = %72
  %75 = invoke noundef zeroext i1 @_ZNK5boost15program_options14variable_value9defaultedEv(ptr noundef nonnull align 8 dereferenceable(32) %73)
          to label %76 unwind label %112

76:                                               ; preds = %74
  br i1 %75, label %77, label %80

77:                                               ; preds = %76
  %78 = getelementptr inbounds %"class.DynexCN::NetNodeConfig", ptr %61, i32 0, i32 0
  %79 = call noundef zeroext i1 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(32) %78) #7
  br label %80

80:                                               ; preds = %77, %76
  %81 = phi i1 [ true, %76 ], [ %79, %77 ]
  br label %82

82:                                               ; preds = %80, %67
  %83 = phi i1 [ false, %67 ], [ %81, %80 ]
  %84 = load i1, ptr %15, align 1
  br i1 %84, label %85, label %86

85:                                               ; preds = %82
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #7
  br label %86

86:                                               ; preds = %85, %82
  %87 = load i1, ptr %14, align 1
  br i1 %87, label %88, label %89

88:                                               ; preds = %86
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #7
  br label %89

89:                                               ; preds = %88, %86
  %90 = load i1, ptr %13, align 1
  br i1 %90, label %91, label %92

91:                                               ; preds = %89
  call void @llvm.lifetime.end.p0(i64 1, ptr %12) #7
  br label %92

92:                                               ; preds = %91, %89
  %93 = load i1, ptr %11, align 1
  br i1 %93, label %94, label %95

94:                                               ; preds = %92
  call void @llvm.lifetime.end.p0(i64 32, ptr %10) #7
  br label %95

95:                                               ; preds = %94, %92
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %7) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %6) #7
  br i1 %83, label %96, label %131

96:                                               ; preds = %95
  call void @llvm.lifetime.start.p0(i64 32, ptr %16) #7
  %97 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN12command_line7get_argINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEELb0EEET_RKN5boost15program_options13variables_mapERKNS_14arg_descriptorIS7_XT0_EEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %16, ptr noundef nonnull align 8 dereferenceable(160) %97, ptr noundef nonnull align 8 dereferenceable(49) @_ZN7DynexCN12_GLOBAL__N_115arg_p2p_bind_ipB5cxx11E)
  %98 = getelementptr inbounds %"class.DynexCN::NetNodeConfig", ptr %61, i32 0, i32 0
  %99 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %98, ptr noundef nonnull align 8 dereferenceable(32) %16) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %16) #7
  br label %131

100:                                              ; preds = %2
  %101 = landingpad { ptr, i32 }
          cleanup
  %102 = extractvalue { ptr, i32 } %101, 0
  store ptr %102, ptr %8, align 8
  %103 = extractvalue { ptr, i32 } %101, 1
  store i32 %103, ptr %9, align 4
  br label %130

104:                                              ; preds = %65
  %105 = landingpad { ptr, i32 }
          cleanup
  %106 = extractvalue { ptr, i32 } %105, 0
  store ptr %106, ptr %8, align 8
  %107 = extractvalue { ptr, i32 } %105, 1
  store i32 %107, ptr %9, align 4
  br label %129

108:                                              ; preds = %69
  %109 = landingpad { ptr, i32 }
          cleanup
  %110 = extractvalue { ptr, i32 } %109, 0
  store ptr %110, ptr %8, align 8
  %111 = extractvalue { ptr, i32 } %109, 1
  store i32 %111, ptr %9, align 4
  br label %119

112:                                              ; preds = %74, %72
  %113 = landingpad { ptr, i32 }
          cleanup
  %114 = extractvalue { ptr, i32 } %113, 0
  store ptr %114, ptr %8, align 8
  %115 = extractvalue { ptr, i32 } %113, 1
  store i32 %115, ptr %9, align 4
  %116 = load i1, ptr %15, align 1
  br i1 %116, label %117, label %118

117:                                              ; preds = %112
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #7
  br label %118

118:                                              ; preds = %117, %112
  br label %119

119:                                              ; preds = %118, %108
  %120 = load i1, ptr %14, align 1
  br i1 %120, label %121, label %122

121:                                              ; preds = %119
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #7
  br label %122

122:                                              ; preds = %121, %119
  %123 = load i1, ptr %13, align 1
  br i1 %123, label %124, label %125

124:                                              ; preds = %122
  call void @llvm.lifetime.end.p0(i64 1, ptr %12) #7
  br label %125

125:                                              ; preds = %124, %122
  %126 = load i1, ptr %11, align 1
  br i1 %126, label %127, label %128

127:                                              ; preds = %125
  call void @llvm.lifetime.end.p0(i64 32, ptr %10) #7
  br label %128

128:                                              ; preds = %127, %125
  br label %129

129:                                              ; preds = %128, %104
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #7
  br label %130

130:                                              ; preds = %129, %100
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %7) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %6) #7
  br label %523

131:                                              ; preds = %96, %95
  %132 = load ptr, ptr %5, align 8, !tbaa !5
  %133 = getelementptr inbounds i8, ptr %132, i64 16
  call void @llvm.lifetime.start.p0(i64 32, ptr %17) #7
  %134 = load ptr, ptr @_ZN7DynexCN12_GLOBAL__N_117arg_p2p_bind_portE, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 1, ptr %18) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #7
  store i1 false, ptr %20, align 1
  store i1 false, ptr %22, align 1
  store i1 false, ptr %23, align 1
  store i1 false, ptr %24, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef %134, ptr noundef nonnull align 1 dereferenceable(1) %18)
          to label %135 unwind label %172

135:                                              ; preds = %131
  %136 = invoke noundef i64 @_ZNKSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN5boost15program_options14variable_valueESt4lessIS5_ESaISt4pairIKS5_S8_EEE5countERSC_(ptr noundef nonnull align 8 dereferenceable(48) %133, ptr noundef nonnull align 8 dereferenceable(32) %17)
          to label %137 unwind label %176

137:                                              ; preds = %135
  %138 = icmp ne i64 %136, 0
  br i1 %138, label %139, label %154

139:                                              ; preds = %137
  %140 = load ptr, ptr %5, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %19) #7
  store i1 true, ptr %20, align 1
  %141 = load ptr, ptr @_ZN7DynexCN12_GLOBAL__N_117arg_p2p_bind_portE, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 1, ptr %21) #7
  store i1 true, ptr %22, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #7
  store i1 true, ptr %23, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef %141, ptr noundef nonnull align 1 dereferenceable(1) %21)
          to label %142 unwind label %180

142:                                              ; preds = %139
  store i1 true, ptr %24, align 1
  %143 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5boost15program_options13variables_mapixERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(160) %140, ptr noundef nonnull align 8 dereferenceable(32) %19)
          to label %144 unwind label %184

144:                                              ; preds = %142
  %145 = invoke noundef zeroext i1 @_ZNK5boost15program_options14variable_value9defaultedEv(ptr noundef nonnull align 8 dereferenceable(32) %143)
          to label %146 unwind label %184

146:                                              ; preds = %144
  br i1 %145, label %147, label %152

147:                                              ; preds = %146
  %148 = getelementptr inbounds %"class.DynexCN::NetNodeConfig", ptr %61, i32 0, i32 1
  %149 = load i16, ptr %148, align 8, !tbaa !18
  %150 = zext i16 %149 to i32
  %151 = icmp eq i32 %150, 0
  br label %152

152:                                              ; preds = %147, %146
  %153 = phi i1 [ true, %146 ], [ %151, %147 ]
  br label %154

154:                                              ; preds = %152, %137
  %155 = phi i1 [ false, %137 ], [ %153, %152 ]
  %156 = load i1, ptr %24, align 1
  br i1 %156, label %157, label %158

157:                                              ; preds = %154
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #7
  br label %158

158:                                              ; preds = %157, %154
  %159 = load i1, ptr %23, align 1
  br i1 %159, label %160, label %161

160:                                              ; preds = %158
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #7
  br label %161

161:                                              ; preds = %160, %158
  %162 = load i1, ptr %22, align 1
  br i1 %162, label %163, label %164

163:                                              ; preds = %161
  call void @llvm.lifetime.end.p0(i64 1, ptr %21) #7
  br label %164

164:                                              ; preds = %163, %161
  %165 = load i1, ptr %20, align 1
  br i1 %165, label %166, label %167

166:                                              ; preds = %164
  call void @llvm.lifetime.end.p0(i64 32, ptr %19) #7
  br label %167

167:                                              ; preds = %166, %164
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %18) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %17) #7
  br i1 %155, label %168, label %203

168:                                              ; preds = %167
  %169 = load ptr, ptr %5, align 8, !tbaa !5
  %170 = call noundef zeroext i16 @_ZN12command_line7get_argItLb0EEET_RKN5boost15program_options13variables_mapERKNS_14arg_descriptorIS1_XT0_EEE(ptr noundef nonnull align 8 dereferenceable(160) %169, ptr noundef nonnull align 8 dereferenceable(24) @_ZN7DynexCN12_GLOBAL__N_117arg_p2p_bind_portE)
  %171 = getelementptr inbounds %"class.DynexCN::NetNodeConfig", ptr %61, i32 0, i32 1
  store i16 %170, ptr %171, align 8, !tbaa !18
  br label %203

172:                                              ; preds = %131
  %173 = landingpad { ptr, i32 }
          cleanup
  %174 = extractvalue { ptr, i32 } %173, 0
  store ptr %174, ptr %8, align 8
  %175 = extractvalue { ptr, i32 } %173, 1
  store i32 %175, ptr %9, align 4
  br label %202

176:                                              ; preds = %135
  %177 = landingpad { ptr, i32 }
          cleanup
  %178 = extractvalue { ptr, i32 } %177, 0
  store ptr %178, ptr %8, align 8
  %179 = extractvalue { ptr, i32 } %177, 1
  store i32 %179, ptr %9, align 4
  br label %201

180:                                              ; preds = %139
  %181 = landingpad { ptr, i32 }
          cleanup
  %182 = extractvalue { ptr, i32 } %181, 0
  store ptr %182, ptr %8, align 8
  %183 = extractvalue { ptr, i32 } %181, 1
  store i32 %183, ptr %9, align 4
  br label %191

184:                                              ; preds = %144, %142
  %185 = landingpad { ptr, i32 }
          cleanup
  %186 = extractvalue { ptr, i32 } %185, 0
  store ptr %186, ptr %8, align 8
  %187 = extractvalue { ptr, i32 } %185, 1
  store i32 %187, ptr %9, align 4
  %188 = load i1, ptr %24, align 1
  br i1 %188, label %189, label %190

189:                                              ; preds = %184
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #7
  br label %190

190:                                              ; preds = %189, %184
  br label %191

191:                                              ; preds = %190, %180
  %192 = load i1, ptr %23, align 1
  br i1 %192, label %193, label %194

193:                                              ; preds = %191
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #7
  br label %194

194:                                              ; preds = %193, %191
  %195 = load i1, ptr %22, align 1
  br i1 %195, label %196, label %197

196:                                              ; preds = %194
  call void @llvm.lifetime.end.p0(i64 1, ptr %21) #7
  br label %197

197:                                              ; preds = %196, %194
  %198 = load i1, ptr %20, align 1
  br i1 %198, label %199, label %200

199:                                              ; preds = %197
  call void @llvm.lifetime.end.p0(i64 32, ptr %19) #7
  br label %200

200:                                              ; preds = %199, %197
  br label %201

201:                                              ; preds = %200, %176
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #7
  br label %202

202:                                              ; preds = %201, %172
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %18) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %17) #7
  br label %523

203:                                              ; preds = %168, %167
  %204 = load ptr, ptr %5, align 8, !tbaa !5
  %205 = getelementptr inbounds i8, ptr %204, i64 16
  call void @llvm.lifetime.start.p0(i64 32, ptr %25) #7
  %206 = load ptr, ptr @_ZN7DynexCN12_GLOBAL__N_121arg_p2p_external_portE, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 1, ptr %26) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #7
  store i1 false, ptr %28, align 1
  store i1 false, ptr %30, align 1
  store i1 false, ptr %31, align 1
  store i1 false, ptr %32, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef %206, ptr noundef nonnull align 1 dereferenceable(1) %26)
          to label %207 unwind label %244

207:                                              ; preds = %203
  %208 = invoke noundef i64 @_ZNKSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN5boost15program_options14variable_valueESt4lessIS5_ESaISt4pairIKS5_S8_EEE5countERSC_(ptr noundef nonnull align 8 dereferenceable(48) %205, ptr noundef nonnull align 8 dereferenceable(32) %25)
          to label %209 unwind label %248

209:                                              ; preds = %207
  %210 = icmp ne i64 %208, 0
  br i1 %210, label %211, label %226

211:                                              ; preds = %209
  %212 = load ptr, ptr %5, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %27) #7
  store i1 true, ptr %28, align 1
  %213 = load ptr, ptr @_ZN7DynexCN12_GLOBAL__N_121arg_p2p_external_portE, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 1, ptr %29) #7
  store i1 true, ptr %30, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %29) #7
  store i1 true, ptr %31, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %27, ptr noundef %213, ptr noundef nonnull align 1 dereferenceable(1) %29)
          to label %214 unwind label %252

214:                                              ; preds = %211
  store i1 true, ptr %32, align 1
  %215 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5boost15program_options13variables_mapixERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(160) %212, ptr noundef nonnull align 8 dereferenceable(32) %27)
          to label %216 unwind label %256

216:                                              ; preds = %214
  %217 = invoke noundef zeroext i1 @_ZNK5boost15program_options14variable_value9defaultedEv(ptr noundef nonnull align 8 dereferenceable(32) %215)
          to label %218 unwind label %256

218:                                              ; preds = %216
  br i1 %217, label %219, label %224

219:                                              ; preds = %218
  %220 = getelementptr inbounds %"class.DynexCN::NetNodeConfig", ptr %61, i32 0, i32 2
  %221 = load i16, ptr %220, align 2, !tbaa !28
  %222 = zext i16 %221 to i32
  %223 = icmp eq i32 %222, 0
  br label %224

224:                                              ; preds = %219, %218
  %225 = phi i1 [ true, %218 ], [ %223, %219 ]
  br label %226

226:                                              ; preds = %224, %209
  %227 = phi i1 [ false, %209 ], [ %225, %224 ]
  %228 = load i1, ptr %32, align 1
  br i1 %228, label %229, label %230

229:                                              ; preds = %226
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #7
  br label %230

230:                                              ; preds = %229, %226
  %231 = load i1, ptr %31, align 1
  br i1 %231, label %232, label %233

232:                                              ; preds = %230
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %29) #7
  br label %233

233:                                              ; preds = %232, %230
  %234 = load i1, ptr %30, align 1
  br i1 %234, label %235, label %236

235:                                              ; preds = %233
  call void @llvm.lifetime.end.p0(i64 1, ptr %29) #7
  br label %236

236:                                              ; preds = %235, %233
  %237 = load i1, ptr %28, align 1
  br i1 %237, label %238, label %239

238:                                              ; preds = %236
  call void @llvm.lifetime.end.p0(i64 32, ptr %27) #7
  br label %239

239:                                              ; preds = %238, %236
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %26) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %25) #7
  br i1 %227, label %240, label %275

240:                                              ; preds = %239
  %241 = load ptr, ptr %5, align 8, !tbaa !5
  %242 = call noundef zeroext i16 @_ZN12command_line7get_argItLb0EEET_RKN5boost15program_options13variables_mapERKNS_14arg_descriptorIS1_XT0_EEE(ptr noundef nonnull align 8 dereferenceable(160) %241, ptr noundef nonnull align 8 dereferenceable(24) @_ZN7DynexCN12_GLOBAL__N_121arg_p2p_external_portE)
  %243 = getelementptr inbounds %"class.DynexCN::NetNodeConfig", ptr %61, i32 0, i32 2
  store i16 %242, ptr %243, align 2, !tbaa !28
  br label %275

244:                                              ; preds = %203
  %245 = landingpad { ptr, i32 }
          cleanup
  %246 = extractvalue { ptr, i32 } %245, 0
  store ptr %246, ptr %8, align 8
  %247 = extractvalue { ptr, i32 } %245, 1
  store i32 %247, ptr %9, align 4
  br label %274

248:                                              ; preds = %207
  %249 = landingpad { ptr, i32 }
          cleanup
  %250 = extractvalue { ptr, i32 } %249, 0
  store ptr %250, ptr %8, align 8
  %251 = extractvalue { ptr, i32 } %249, 1
  store i32 %251, ptr %9, align 4
  br label %273

252:                                              ; preds = %211
  %253 = landingpad { ptr, i32 }
          cleanup
  %254 = extractvalue { ptr, i32 } %253, 0
  store ptr %254, ptr %8, align 8
  %255 = extractvalue { ptr, i32 } %253, 1
  store i32 %255, ptr %9, align 4
  br label %263

256:                                              ; preds = %216, %214
  %257 = landingpad { ptr, i32 }
          cleanup
  %258 = extractvalue { ptr, i32 } %257, 0
  store ptr %258, ptr %8, align 8
  %259 = extractvalue { ptr, i32 } %257, 1
  store i32 %259, ptr %9, align 4
  %260 = load i1, ptr %32, align 1
  br i1 %260, label %261, label %262

261:                                              ; preds = %256
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #7
  br label %262

262:                                              ; preds = %261, %256
  br label %263

263:                                              ; preds = %262, %252
  %264 = load i1, ptr %31, align 1
  br i1 %264, label %265, label %266

265:                                              ; preds = %263
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %29) #7
  br label %266

266:                                              ; preds = %265, %263
  %267 = load i1, ptr %30, align 1
  br i1 %267, label %268, label %269

268:                                              ; preds = %266
  call void @llvm.lifetime.end.p0(i64 1, ptr %29) #7
  br label %269

269:                                              ; preds = %268, %266
  %270 = load i1, ptr %28, align 1
  br i1 %270, label %271, label %272

271:                                              ; preds = %269
  call void @llvm.lifetime.end.p0(i64 32, ptr %27) #7
  br label %272

272:                                              ; preds = %271, %269
  br label %273

273:                                              ; preds = %272, %248
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #7
  br label %274

274:                                              ; preds = %273, %244
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %26) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %25) #7
  br label %523

275:                                              ; preds = %240, %239
  %276 = load ptr, ptr %5, align 8, !tbaa !5
  %277 = getelementptr inbounds i8, ptr %276, i64 16
  call void @llvm.lifetime.start.p0(i64 32, ptr %33) #7
  %278 = load ptr, ptr @_ZN7DynexCN12_GLOBAL__N_122arg_p2p_allow_local_ipE, align 8, !tbaa !29
  call void @llvm.lifetime.start.p0(i64 1, ptr %34) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #7
  store i1 false, ptr %36, align 1
  store i1 false, ptr %38, align 1
  store i1 false, ptr %39, align 1
  store i1 false, ptr %40, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %33, ptr noundef %278, ptr noundef nonnull align 1 dereferenceable(1) %34)
          to label %279 unwind label %317

279:                                              ; preds = %275
  %280 = invoke noundef i64 @_ZNKSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN5boost15program_options14variable_valueESt4lessIS5_ESaISt4pairIKS5_S8_EEE5countERSC_(ptr noundef nonnull align 8 dereferenceable(48) %277, ptr noundef nonnull align 8 dereferenceable(32) %33)
          to label %281 unwind label %321

281:                                              ; preds = %279
  %282 = icmp ne i64 %280, 0
  br i1 %282, label %283, label %298

283:                                              ; preds = %281
  %284 = load ptr, ptr %5, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %35) #7
  store i1 true, ptr %36, align 1
  %285 = load ptr, ptr @_ZN7DynexCN12_GLOBAL__N_122arg_p2p_allow_local_ipE, align 8, !tbaa !29
  call void @llvm.lifetime.start.p0(i64 1, ptr %37) #7
  store i1 true, ptr %38, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %37) #7
  store i1 true, ptr %39, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %35, ptr noundef %285, ptr noundef nonnull align 1 dereferenceable(1) %37)
          to label %286 unwind label %325

286:                                              ; preds = %283
  store i1 true, ptr %40, align 1
  %287 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5boost15program_options13variables_mapixERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(160) %284, ptr noundef nonnull align 8 dereferenceable(32) %35)
          to label %288 unwind label %329

288:                                              ; preds = %286
  %289 = invoke noundef zeroext i1 @_ZNK5boost15program_options14variable_value9defaultedEv(ptr noundef nonnull align 8 dereferenceable(32) %287)
          to label %290 unwind label %329

290:                                              ; preds = %288
  br i1 %289, label %291, label %296

291:                                              ; preds = %290
  %292 = getelementptr inbounds %"class.DynexCN::NetNodeConfig", ptr %61, i32 0, i32 3
  %293 = load i8, ptr %292, align 4, !tbaa !31, !range !32, !noundef !33
  %294 = trunc i8 %293 to i1
  %295 = xor i1 %294, true
  br label %296

296:                                              ; preds = %291, %290
  %297 = phi i1 [ true, %290 ], [ %295, %291 ]
  br label %298

298:                                              ; preds = %296, %281
  %299 = phi i1 [ false, %281 ], [ %297, %296 ]
  %300 = load i1, ptr %40, align 1
  br i1 %300, label %301, label %302

301:                                              ; preds = %298
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #7
  br label %302

302:                                              ; preds = %301, %298
  %303 = load i1, ptr %39, align 1
  br i1 %303, label %304, label %305

304:                                              ; preds = %302
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %37) #7
  br label %305

305:                                              ; preds = %304, %302
  %306 = load i1, ptr %38, align 1
  br i1 %306, label %307, label %308

307:                                              ; preds = %305
  call void @llvm.lifetime.end.p0(i64 1, ptr %37) #7
  br label %308

308:                                              ; preds = %307, %305
  %309 = load i1, ptr %36, align 1
  br i1 %309, label %310, label %311

310:                                              ; preds = %308
  call void @llvm.lifetime.end.p0(i64 32, ptr %35) #7
  br label %311

311:                                              ; preds = %310, %308
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %34) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %33) #7
  br i1 %299, label %312, label %348

312:                                              ; preds = %311
  %313 = load ptr, ptr %5, align 8, !tbaa !5
  %314 = call noundef zeroext i1 @_ZN12command_line7get_argIbLb0EEET_RKN5boost15program_options13variables_mapERKNS_14arg_descriptorIS1_XT0_EEE(ptr noundef nonnull align 8 dereferenceable(160) %313, ptr noundef nonnull align 8 dereferenceable(24) @_ZN7DynexCN12_GLOBAL__N_122arg_p2p_allow_local_ipE)
  %315 = getelementptr inbounds %"class.DynexCN::NetNodeConfig", ptr %61, i32 0, i32 3
  %316 = zext i1 %314 to i8
  store i8 %316, ptr %315, align 4, !tbaa !31
  br label %348

317:                                              ; preds = %275
  %318 = landingpad { ptr, i32 }
          cleanup
  %319 = extractvalue { ptr, i32 } %318, 0
  store ptr %319, ptr %8, align 8
  %320 = extractvalue { ptr, i32 } %318, 1
  store i32 %320, ptr %9, align 4
  br label %347

321:                                              ; preds = %279
  %322 = landingpad { ptr, i32 }
          cleanup
  %323 = extractvalue { ptr, i32 } %322, 0
  store ptr %323, ptr %8, align 8
  %324 = extractvalue { ptr, i32 } %322, 1
  store i32 %324, ptr %9, align 4
  br label %346

325:                                              ; preds = %283
  %326 = landingpad { ptr, i32 }
          cleanup
  %327 = extractvalue { ptr, i32 } %326, 0
  store ptr %327, ptr %8, align 8
  %328 = extractvalue { ptr, i32 } %326, 1
  store i32 %328, ptr %9, align 4
  br label %336

329:                                              ; preds = %288, %286
  %330 = landingpad { ptr, i32 }
          cleanup
  %331 = extractvalue { ptr, i32 } %330, 0
  store ptr %331, ptr %8, align 8
  %332 = extractvalue { ptr, i32 } %330, 1
  store i32 %332, ptr %9, align 4
  %333 = load i1, ptr %40, align 1
  br i1 %333, label %334, label %335

334:                                              ; preds = %329
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #7
  br label %335

335:                                              ; preds = %334, %329
  br label %336

336:                                              ; preds = %335, %325
  %337 = load i1, ptr %39, align 1
  br i1 %337, label %338, label %339

338:                                              ; preds = %336
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %37) #7
  br label %339

339:                                              ; preds = %338, %336
  %340 = load i1, ptr %38, align 1
  br i1 %340, label %341, label %342

341:                                              ; preds = %339
  call void @llvm.lifetime.end.p0(i64 1, ptr %37) #7
  br label %342

342:                                              ; preds = %341, %339
  %343 = load i1, ptr %36, align 1
  br i1 %343, label %344, label %345

344:                                              ; preds = %342
  call void @llvm.lifetime.end.p0(i64 32, ptr %35) #7
  br label %345

345:                                              ; preds = %344, %342
  br label %346

346:                                              ; preds = %345, %321
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #7
  br label %347

347:                                              ; preds = %346, %317
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %34) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %33) #7
  br label %523

348:                                              ; preds = %312, %311
  %349 = load ptr, ptr %5, align 8, !tbaa !5
  %350 = getelementptr inbounds i8, ptr %349, i64 16
  call void @llvm.lifetime.start.p0(i64 32, ptr %41) #7
  %351 = load ptr, ptr @_ZN12command_line12arg_data_dirB5cxx11E, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %42) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %42) #7
  store i1 false, ptr %44, align 1
  store i1 false, ptr %46, align 1
  store i1 false, ptr %47, align 1
  store i1 false, ptr %48, align 1
  store i1 false, ptr %50, align 1
  store i1 false, ptr %51, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %41, ptr noundef %351, ptr noundef nonnull align 1 dereferenceable(1) %42)
          to label %352 unwind label %394

352:                                              ; preds = %348
  %353 = invoke noundef i64 @_ZNKSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN5boost15program_options14variable_valueESt4lessIS5_ESaISt4pairIKS5_S8_EEE5countERSC_(ptr noundef nonnull align 8 dereferenceable(48) %350, ptr noundef nonnull align 8 dereferenceable(32) %41)
          to label %354 unwind label %398

354:                                              ; preds = %352
  %355 = icmp ne i64 %353, 0
  br i1 %355, label %356, label %370

356:                                              ; preds = %354
  %357 = load ptr, ptr %5, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %43) #7
  store i1 true, ptr %44, align 1
  %358 = load ptr, ptr @_ZN12command_line12arg_data_dirB5cxx11E, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %45) #7
  store i1 true, ptr %46, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %45) #7
  store i1 true, ptr %47, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %43, ptr noundef %358, ptr noundef nonnull align 1 dereferenceable(1) %45)
          to label %359 unwind label %402

359:                                              ; preds = %356
  store i1 true, ptr %48, align 1
  %360 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5boost15program_options13variables_mapixERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(160) %357, ptr noundef nonnull align 8 dereferenceable(32) %43)
          to label %361 unwind label %406

361:                                              ; preds = %359
  %362 = invoke noundef zeroext i1 @_ZNK5boost15program_options14variable_value9defaultedEv(ptr noundef nonnull align 8 dereferenceable(32) %360)
          to label %363 unwind label %406

363:                                              ; preds = %361
  br i1 %362, label %364, label %368

364:                                              ; preds = %363
  %365 = getelementptr inbounds %"class.DynexCN::NetNodeConfig", ptr %61, i32 0, i32 11
  call void @llvm.lifetime.start.p0(i64 32, ptr %49) #7
  store i1 true, ptr %50, align 1
  invoke void @_ZN5Tools23getDefaultDataDirectoryB5cxx11Ev(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %49)
          to label %366 unwind label %410

366:                                              ; preds = %364
  store i1 true, ptr %51, align 1
  %367 = call noundef zeroext i1 @_ZSteqIcEN9__gnu_cxx11__enable_ifIXsr9__is_charIT_EE7__valueEbE6__typeERKNSt7__cxx1112basic_stringIS2_St11char_traitsIS2_ESaIS2_EEESC_(ptr noundef nonnull align 8 dereferenceable(32) %365, ptr noundef nonnull align 8 dereferenceable(32) %49) #7
  br label %368

368:                                              ; preds = %366, %363
  %369 = phi i1 [ true, %363 ], [ %367, %366 ]
  br label %370

370:                                              ; preds = %368, %354
  %371 = phi i1 [ false, %354 ], [ %369, %368 ]
  %372 = load i1, ptr %51, align 1
  br i1 %372, label %373, label %374

373:                                              ; preds = %370
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #7
  br label %374

374:                                              ; preds = %373, %370
  %375 = load i1, ptr %50, align 1
  br i1 %375, label %376, label %377

376:                                              ; preds = %374
  call void @llvm.lifetime.end.p0(i64 32, ptr %49) #7
  br label %377

377:                                              ; preds = %376, %374
  %378 = load i1, ptr %48, align 1
  br i1 %378, label %379, label %380

379:                                              ; preds = %377
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #7
  br label %380

380:                                              ; preds = %379, %377
  %381 = load i1, ptr %47, align 1
  br i1 %381, label %382, label %383

382:                                              ; preds = %380
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %45) #7
  br label %383

383:                                              ; preds = %382, %380
  %384 = load i1, ptr %46, align 1
  br i1 %384, label %385, label %386

385:                                              ; preds = %383
  call void @llvm.lifetime.end.p0(i64 1, ptr %45) #7
  br label %386

386:                                              ; preds = %385, %383
  %387 = load i1, ptr %44, align 1
  br i1 %387, label %388, label %389

388:                                              ; preds = %386
  call void @llvm.lifetime.end.p0(i64 32, ptr %43) #7
  br label %389

389:                                              ; preds = %388, %386
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %42) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %42) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %41) #7
  br i1 %371, label %390, label %433

390:                                              ; preds = %389
  call void @llvm.lifetime.start.p0(i64 32, ptr %52) #7
  %391 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN12command_line7get_argINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEELb0EEET_RKN5boost15program_options13variables_mapERKNS_14arg_descriptorIS7_XT0_EEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %52, ptr noundef nonnull align 8 dereferenceable(160) %391, ptr noundef nonnull align 8 dereferenceable(49) @_ZN12command_line12arg_data_dirB5cxx11E)
  %392 = getelementptr inbounds %"class.DynexCN::NetNodeConfig", ptr %61, i32 0, i32 11
  %393 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %392, ptr noundef nonnull align 8 dereferenceable(32) %52) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %52) #7
  br label %433

394:                                              ; preds = %348
  %395 = landingpad { ptr, i32 }
          cleanup
  %396 = extractvalue { ptr, i32 } %395, 0
  store ptr %396, ptr %8, align 8
  %397 = extractvalue { ptr, i32 } %395, 1
  store i32 %397, ptr %9, align 4
  br label %432

398:                                              ; preds = %352
  %399 = landingpad { ptr, i32 }
          cleanup
  %400 = extractvalue { ptr, i32 } %399, 0
  store ptr %400, ptr %8, align 8
  %401 = extractvalue { ptr, i32 } %399, 1
  store i32 %401, ptr %9, align 4
  br label %431

402:                                              ; preds = %356
  %403 = landingpad { ptr, i32 }
          cleanup
  %404 = extractvalue { ptr, i32 } %403, 0
  store ptr %404, ptr %8, align 8
  %405 = extractvalue { ptr, i32 } %403, 1
  store i32 %405, ptr %9, align 4
  br label %421

406:                                              ; preds = %361, %359
  %407 = landingpad { ptr, i32 }
          cleanup
  %408 = extractvalue { ptr, i32 } %407, 0
  store ptr %408, ptr %8, align 8
  %409 = extractvalue { ptr, i32 } %407, 1
  store i32 %409, ptr %9, align 4
  br label %417

410:                                              ; preds = %364
  %411 = landingpad { ptr, i32 }
          cleanup
  %412 = extractvalue { ptr, i32 } %411, 0
  store ptr %412, ptr %8, align 8
  %413 = extractvalue { ptr, i32 } %411, 1
  store i32 %413, ptr %9, align 4
  %414 = load i1, ptr %50, align 1
  br i1 %414, label %415, label %416

415:                                              ; preds = %410
  call void @llvm.lifetime.end.p0(i64 32, ptr %49) #7
  br label %416

416:                                              ; preds = %415, %410
  br label %417

417:                                              ; preds = %416, %406
  %418 = load i1, ptr %48, align 1
  br i1 %418, label %419, label %420

419:                                              ; preds = %417
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #7
  br label %420

420:                                              ; preds = %419, %417
  br label %421

421:                                              ; preds = %420, %402
  %422 = load i1, ptr %47, align 1
  br i1 %422, label %423, label %424

423:                                              ; preds = %421
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %45) #7
  br label %424

424:                                              ; preds = %423, %421
  %425 = load i1, ptr %46, align 1
  br i1 %425, label %426, label %427

426:                                              ; preds = %424
  call void @llvm.lifetime.end.p0(i64 1, ptr %45) #7
  br label %427

427:                                              ; preds = %426, %424
  %428 = load i1, ptr %44, align 1
  br i1 %428, label %429, label %430

429:                                              ; preds = %427
  call void @llvm.lifetime.end.p0(i64 32, ptr %43) #7
  br label %430

430:                                              ; preds = %429, %427
  br label %431

431:                                              ; preds = %430, %398
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #7
  br label %432

432:                                              ; preds = %431, %394
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %42) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %42) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %41) #7
  br label %523

433:                                              ; preds = %390, %389
  %434 = getelementptr inbounds %"class.DynexCN::NetNodeConfig", ptr %61, i32 0, i32 12
  %435 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %434, ptr noundef @_ZN7DynexCN10parametersL21P2P_NET_DATA_FILENAMEE)
  %436 = load ptr, ptr %5, align 8, !tbaa !5
  %437 = call noundef zeroext i1 @_ZN12command_line7has_argISt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS7_EELb0EEEbRKN5boost15program_options13variables_mapERKNS_14arg_descriptorIT_XT0_EEE(ptr noundef nonnull align 8 dereferenceable(160) %436, ptr noundef nonnull align 8 dereferenceable(16) @_ZN7DynexCN12_GLOBAL__N_116arg_p2p_add_peerB5cxx11E)
  br i1 %437, label %438, label %488

438:                                              ; preds = %433
  call void @llvm.lifetime.start.p0(i64 24, ptr %53) #7
  %439 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZN12command_line7get_argISt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS7_EELb0EEET_RKN5boost15program_options13variables_mapERKNS_14arg_descriptorISA_XT0_EEE(ptr dead_on_unwind writable sret(%"class.std::vector.37") align 8 %53, ptr noundef nonnull align 8 dereferenceable(160) %439, ptr noundef nonnull align 8 dereferenceable(16) @_ZN7DynexCN12_GLOBAL__N_116arg_p2p_add_peerB5cxx11E)
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #7
  store ptr %53, ptr %54, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #7
  %440 = load ptr, ptr %54, align 8, !tbaa !5
  %441 = call ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %440) #7
  %442 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %55, i32 0, i32 0
  store ptr %441, ptr %442, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #7
  %443 = load ptr, ptr %54, align 8, !tbaa !5
  %444 = call ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %443) #7
  %445 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %56, i32 0, i32 0
  store ptr %444, ptr %445, align 8
  br label %446

446:                                              ; preds = %479, %438
  %447 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEEbRKNS_17__normal_iteratorIT_T0_EESG_(ptr noundef nonnull align 8 dereferenceable(8) %55, ptr noundef nonnull align 8 dereferenceable(8) %56) #7
  br i1 %447, label %449, label %448

448:                                              ; preds = %446
  store i32 2, ptr %57, align 4
  br label %482

449:                                              ; preds = %446
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #7
  %450 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %55) #7
  store ptr %450, ptr %58, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 24, ptr %59) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %60) #7
  invoke void @_ZN5boost17value_initializedIN7DynexCN13PeerlistEntryEEC2Ev(ptr noundef nonnull align 1 dereferenceable(24) %60)
          to label %451 unwind label %462

451:                                              ; preds = %449
  %452 = invoke noundef nonnull align 1 dereferenceable(24) ptr @_ZN5boost17value_initializedIN7DynexCN13PeerlistEntryEEcvRS2_Ev(ptr noundef nonnull align 1 dereferenceable(24) %60)
          to label %453 unwind label %462

453:                                              ; preds = %451
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %59, ptr align 1 %452, i64 24, i1 false), !tbaa.struct !34
  call void @llvm.lifetime.end.p0(i64 24, ptr %60) #7
  %454 = invoke noundef i64 @_ZN6Crypto4randImEENSt9enable_ifIXsr3std6is_podIT_EE5valueES2_E4typeEv()
          to label %455 unwind label %466

455:                                              ; preds = %453
  %456 = getelementptr inbounds %"struct.DynexCN::PeerlistEntry", ptr %59, i32 0, i32 1
  store i64 %454, ptr %456, align 1, !tbaa !38
  %457 = getelementptr inbounds %"struct.DynexCN::PeerlistEntry", ptr %59, i32 0, i32 0
  %458 = load ptr, ptr %58, align 8, !tbaa !5
  %459 = invoke noundef zeroext i1 @_ZN7DynexCN12_GLOBAL__N_119parsePeerFromStringERNS_14NetworkAddressERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 1 dereferenceable(8) %457, ptr noundef nonnull align 8 dereferenceable(32) %458)
          to label %460 unwind label %466

460:                                              ; preds = %455
  br i1 %459, label %470, label %461

461:                                              ; preds = %460
  store i1 false, ptr %3, align 1
  store i32 1, ptr %57, align 4
  br label %473

462:                                              ; preds = %451, %449
  %463 = landingpad { ptr, i32 }
          cleanup
  %464 = extractvalue { ptr, i32 } %463, 0
  store ptr %464, ptr %8, align 8
  %465 = extractvalue { ptr, i32 } %463, 1
  store i32 %465, ptr %9, align 4
  call void @llvm.lifetime.end.p0(i64 24, ptr %60) #7
  br label %481

466:                                              ; preds = %470, %455, %453
  %467 = landingpad { ptr, i32 }
          cleanup
  %468 = extractvalue { ptr, i32 } %467, 0
  store ptr %468, ptr %8, align 8
  %469 = extractvalue { ptr, i32 } %467, 1
  store i32 %469, ptr %9, align 4
  br label %481

470:                                              ; preds = %460
  %471 = getelementptr inbounds %"class.DynexCN::NetNodeConfig", ptr %61, i32 0, i32 5
  invoke void @_ZNSt6vectorIN7DynexCN13PeerlistEntryESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %471, ptr noundef nonnull align 1 dereferenceable(24) %59)
          to label %472 unwind label %466

472:                                              ; preds = %470
  store i32 0, ptr %57, align 4
  br label %473

473:                                              ; preds = %472, %461
  call void @llvm.lifetime.end.p0(i64 24, ptr %59) #7
  %474 = load i32, ptr %57, align 4
  switch i32 %474, label %476 [
    i32 0, label %475
  ]

475:                                              ; preds = %473
  store i32 0, ptr %57, align 4
  br label %476

476:                                              ; preds = %475, %473
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #7
  %477 = load i32, ptr %57, align 4
  switch i32 %477, label %482 [
    i32 0, label %478
  ]

478:                                              ; preds = %476
  br label %479

479:                                              ; preds = %478
  %480 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %55) #7
  br label %446

481:                                              ; preds = %466, %462
  call void @llvm.lifetime.end.p0(i64 24, ptr %59) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #7
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %53) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %53) #7
  br label %523

482:                                              ; preds = %476, %448
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #7
  %483 = load i32, ptr %57, align 4
  switch i32 %483, label %485 [
    i32 2, label %484
  ]

484:                                              ; preds = %482
  store i32 0, ptr %57, align 4
  br label %485

485:                                              ; preds = %484, %482
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %53) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %53) #7
  %486 = load i32, ptr %57, align 4
  switch i32 %486, label %528 [
    i32 0, label %487
    i32 1, label %521
  ]

487:                                              ; preds = %485
  br label %488

488:                                              ; preds = %487, %433
  %489 = load ptr, ptr %5, align 8, !tbaa !5
  %490 = call noundef zeroext i1 @_ZN12command_line7has_argISt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS7_EELb0EEEbRKN5boost15program_options13variables_mapERKNS_14arg_descriptorIT_XT0_EEE(ptr noundef nonnull align 8 dereferenceable(160) %489, ptr noundef nonnull align 8 dereferenceable(16) @_ZN7DynexCN12_GLOBAL__N_126arg_p2p_add_exclusive_nodeB5cxx11E)
  br i1 %490, label %491, label %497

491:                                              ; preds = %488
  %492 = load ptr, ptr %5, align 8, !tbaa !5
  %493 = getelementptr inbounds %"class.DynexCN::NetNodeConfig", ptr %61, i32 0, i32 7
  %494 = call noundef zeroext i1 @_ZN7DynexCN12_GLOBAL__N_127parsePeersAndAddToContainerERKN5boost15program_options13variables_mapERKN12command_line14arg_descriptorISt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaISE_EELb0EEERS8_INS_14NetworkAddressESaISK_EE(ptr noundef nonnull align 8 dereferenceable(160) %492, ptr noundef nonnull align 8 dereferenceable(16) @_ZN7DynexCN12_GLOBAL__N_126arg_p2p_add_exclusive_nodeB5cxx11E, ptr noundef nonnull align 8 dereferenceable(24) %493)
  br i1 %494, label %496, label %495

495:                                              ; preds = %491
  store i1 false, ptr %3, align 1
  br label %521

496:                                              ; preds = %491
  br label %497

497:                                              ; preds = %496, %488
  %498 = load ptr, ptr %5, align 8, !tbaa !5
  %499 = call noundef zeroext i1 @_ZN12command_line7has_argISt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS7_EELb0EEEbRKN5boost15program_options13variables_mapERKNS_14arg_descriptorIT_XT0_EEE(ptr noundef nonnull align 8 dereferenceable(160) %498, ptr noundef nonnull align 8 dereferenceable(16) @_ZN7DynexCN12_GLOBAL__N_125arg_p2p_add_priority_nodeB5cxx11E)
  br i1 %499, label %500, label %506

500:                                              ; preds = %497
  %501 = load ptr, ptr %5, align 8, !tbaa !5
  %502 = getelementptr inbounds %"class.DynexCN::NetNodeConfig", ptr %61, i32 0, i32 6
  %503 = call noundef zeroext i1 @_ZN7DynexCN12_GLOBAL__N_127parsePeersAndAddToContainerERKN5boost15program_options13variables_mapERKN12command_line14arg_descriptorISt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaISE_EELb0EEERS8_INS_14NetworkAddressESaISK_EE(ptr noundef nonnull align 8 dereferenceable(160) %501, ptr noundef nonnull align 8 dereferenceable(16) @_ZN7DynexCN12_GLOBAL__N_125arg_p2p_add_priority_nodeB5cxx11E, ptr noundef nonnull align 8 dereferenceable(24) %502)
  br i1 %503, label %505, label %504

504:                                              ; preds = %500
  store i1 false, ptr %3, align 1
  br label %521

505:                                              ; preds = %500
  br label %506

506:                                              ; preds = %505, %497
  %507 = load ptr, ptr %5, align 8, !tbaa !5
  %508 = call noundef zeroext i1 @_ZN12command_line7has_argISt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS7_EELb0EEEbRKN5boost15program_options13variables_mapERKNS_14arg_descriptorIT_XT0_EEE(ptr noundef nonnull align 8 dereferenceable(160) %507, ptr noundef nonnull align 8 dereferenceable(16) @_ZN7DynexCN12_GLOBAL__N_117arg_p2p_seed_nodeB5cxx11E)
  br i1 %508, label %509, label %515

509:                                              ; preds = %506
  %510 = load ptr, ptr %5, align 8, !tbaa !5
  %511 = getelementptr inbounds %"class.DynexCN::NetNodeConfig", ptr %61, i32 0, i32 8
  %512 = call noundef zeroext i1 @_ZN7DynexCN12_GLOBAL__N_127parsePeersAndAddToContainerERKN5boost15program_options13variables_mapERKN12command_line14arg_descriptorISt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaISE_EELb0EEERS8_INS_14NetworkAddressESaISK_EE(ptr noundef nonnull align 8 dereferenceable(160) %510, ptr noundef nonnull align 8 dereferenceable(16) @_ZN7DynexCN12_GLOBAL__N_117arg_p2p_seed_nodeB5cxx11E, ptr noundef nonnull align 8 dereferenceable(24) %511)
  br i1 %512, label %514, label %513

513:                                              ; preds = %509
  store i1 false, ptr %3, align 1
  br label %521

514:                                              ; preds = %509
  br label %515

515:                                              ; preds = %514, %506
  %516 = load ptr, ptr %5, align 8, !tbaa !5
  %517 = call noundef zeroext i1 @_ZN12command_line7has_argIbLb0EEEbRKN5boost15program_options13variables_mapERKNS_14arg_descriptorIT_XT0_EEE(ptr noundef nonnull align 8 dereferenceable(160) %516, ptr noundef nonnull align 8 dereferenceable(24) @_ZN7DynexCN12_GLOBAL__N_120arg_p2p_hide_my_portE)
  br i1 %517, label %518, label %520

518:                                              ; preds = %515
  %519 = getelementptr inbounds %"class.DynexCN::NetNodeConfig", ptr %61, i32 0, i32 9
  store i8 1, ptr %519, align 8, !tbaa !41
  br label %520

520:                                              ; preds = %518, %515
  store i1 true, ptr %3, align 1
  br label %521

521:                                              ; preds = %520, %513, %504, %495, %485
  %522 = load i1, ptr %3, align 1
  ret i1 %522

523:                                              ; preds = %481, %432, %347, %274, %202, %130
  %524 = load ptr, ptr %8, align 8
  %525 = load i32, ptr %9, align 4
  %526 = insertvalue { ptr, i32 } poison, ptr %524, 0
  %527 = insertvalue { ptr, i32 } %526, i32 %525, 1
  resume { ptr, i32 } %527

528:                                              ; preds = %485
  unreachable
}

; Function Attrs: mustprogress uwtable
declare dso_local noundef i64 @_ZNKSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN5boost15program_options14variable_valueESt4lessIS5_ESaISt4pairIKS5_S8_EEE5countERSC_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(32)) #2 align 2

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i16 @_ZN12command_line7get_argItLb0EEET_RKN5boost15program_options13variables_mapERKNS_14arg_descriptorIS1_XT0_EEE(ptr noundef nonnull align 8 dereferenceable(160), ptr noundef nonnull align 8 dereferenceable(24)) #2

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN12command_line7get_argISt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS7_EELb0EEET_RKN5boost15program_options13variables_mapERKNS_14arg_descriptorISA_XT0_EEE(ptr dead_on_unwind noalias writable sret(%"class.std::vector.37") align 8, ptr noundef nonnull align 8 dereferenceable(160), ptr noundef nonnull align 8 dereferenceable(16)) #2

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 1 dereferenceable(24) ptr @_ZN5boost17value_initializedIN7DynexCN13PeerlistEntryEEcvRS2_Ev(ptr noundef nonnull align 1 dereferenceable(24)) #2 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) #5

; Function Attrs: mustprogress uwtable
declare dso_local noundef i64 @_ZN6Crypto4randImEENSt9enable_ifIXsr3std6is_podIT_EE5valueES2_E4typeEv() #2

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

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

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

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

; Function Attrs: mustprogress uwtable
declare hidden noundef zeroext i1 @_ZN7DynexCN12_GLOBAL__N_127parsePeersAndAddToContainerERKN5boost15program_options13variables_mapERKN12command_line14arg_descriptorISt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaISE_EELb0EEERS8_INS_14NetworkAddressESaISK_EE(ptr noundef nonnull align 8 dereferenceable(160), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(24)) #2

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !6, i64 0}
!10 = !{!"_ZTSN12command_line14arg_descriptorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEELb0EEE", !6, i64 0, !6, i64 8, !11, i64 16, !14, i64 48}
!11 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !12, i64 0, !13, i64 8, !7, i64 16}
!12 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!13 = !{!"long", !7, i64 0}
!14 = !{!"bool", !7, i64 0}
!15 = !{!16, !6, i64 0}
!16 = !{!"_ZTSN12command_line14arg_descriptorItLb0EEE", !6, i64 0, !6, i64 8, !17, i64 16, !14, i64 18}
!17 = !{!"short", !7, i64 0}
!18 = !{!19, !17, i64 32}
!19 = !{!"_ZTSN7DynexCN13NetNodeConfigE", !11, i64 0, !17, i64 32, !17, i64 34, !14, i64 36, !20, i64 40, !24, i64 64, !24, i64 88, !24, i64 112, !14, i64 136, !11, i64 144, !11, i64 176, !14, i64 208}
!20 = !{!"_ZTSSt6vectorIN7DynexCN13PeerlistEntryESaIS1_EE", !21, i64 0}
!21 = !{!"_ZTSSt12_Vector_baseIN7DynexCN13PeerlistEntryESaIS1_EE", !22, i64 0}
!22 = !{!"_ZTSNSt12_Vector_baseIN7DynexCN13PeerlistEntryESaIS1_EE12_Vector_implE", !23, i64 0}
!23 = !{!"_ZTSNSt12_Vector_baseIN7DynexCN13PeerlistEntryESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!24 = !{!"_ZTSSt6vectorIN7DynexCN14NetworkAddressESaIS1_EE", !25, i64 0}
!25 = !{!"_ZTSSt12_Vector_baseIN7DynexCN14NetworkAddressESaIS1_EE", !26, i64 0}
!26 = !{!"_ZTSNSt12_Vector_baseIN7DynexCN14NetworkAddressESaIS1_EE12_Vector_implE", !27, i64 0}
!27 = !{!"_ZTSNSt12_Vector_baseIN7DynexCN14NetworkAddressESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!28 = !{!19, !17, i64 34}
!29 = !{!30, !6, i64 0}
!30 = !{!"_ZTSN12command_line14arg_descriptorIbLb0EEE", !6, i64 0, !6, i64 8, !14, i64 16, !14, i64 17}
!31 = !{!19, !14, i64 36}
!32 = !{i8 0, i8 2}
!33 = !{}
!34 = !{i64 0, i64 4, !35, i64 4, i64 4, !35, i64 8, i64 8, !37, i64 16, i64 8, !37}
!35 = !{!36, !36, i64 0}
!36 = !{!"int", !7, i64 0}
!37 = !{!13, !13, i64 0}
!38 = !{!39, !13, i64 8}
!39 = !{!"_ZTSN7DynexCN13PeerlistEntryE", !40, i64 0, !13, i64 8, !13, i64 16}
!40 = !{!"_ZTSN7DynexCN14NetworkAddressE", !36, i64 0, !36, i64 4}
!41 = !{!19, !14, i64 136}


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

%"struct.command_line::arg_descriptor" = type <{ ptr, ptr, %"class.std::__cxx11::basic_string", i8, [7 x i8] }>
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"struct.command_line::arg_descriptor.12" = type { ptr, ptr, i16, i8 }
%"struct.command_line::arg_descriptor.13" = type { ptr, ptr, i8, i8 }
%"struct.command_line::arg_descriptor.14" = type { ptr, ptr }
%"class.std::allocator" = type { i8 }
%"class.std::vector.37" = type { %"struct.std::_Vector_base.38" }
%"struct.std::_Vector_base.38" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.__gnu_cxx::__normal_iterator" = type { ptr }
%"struct.DynexCN::PeerlistEntry" = type { %"struct.DynexCN::NetworkAddress", i64, i64 }
%"struct.DynexCN::NetworkAddress" = type { i32, i32 }
%"class.boost::value_initialized" = type { %"class.boost::initialized" }
%"class.boost::initialized" = type { %"struct.DynexCN::PeerlistEntry" }

@_ZN7DynexCN12_GLOBAL__N_115arg_p2p_bind_ipB5cxx11E = external hidden global %"struct.command_line::arg_descriptor", align 8
@_ZN7DynexCN12_GLOBAL__N_117arg_p2p_bind_portE = external hidden constant %"struct.command_line::arg_descriptor.12", align 8
@_ZN7DynexCN12_GLOBAL__N_121arg_p2p_external_portE = external hidden constant %"struct.command_line::arg_descriptor.12", align 8
@_ZN7DynexCN12_GLOBAL__N_122arg_p2p_allow_local_ipE = external hidden constant %"struct.command_line::arg_descriptor.13", align 8
@_ZN7DynexCN12_GLOBAL__N_116arg_p2p_add_peerB5cxx11E = external hidden constant %"struct.command_line::arg_descriptor.14", align 8
@_ZN7DynexCN12_GLOBAL__N_125arg_p2p_add_priority_nodeB5cxx11E = external hidden constant %"struct.command_line::arg_descriptor.14", align 8
@_ZN7DynexCN12_GLOBAL__N_126arg_p2p_add_exclusive_nodeB5cxx11E = external hidden constant %"struct.command_line::arg_descriptor.14", align 8
@_ZN7DynexCN12_GLOBAL__N_117arg_p2p_seed_nodeB5cxx11E = external hidden constant %"struct.command_line::arg_descriptor.14", align 8
@_ZN7DynexCN12_GLOBAL__N_120arg_p2p_hide_my_portE = external hidden constant %"struct.command_line::arg_descriptor.13", align 8
@_ZN12command_line12arg_data_dirB5cxx11E = external global %"struct.command_line::arg_descriptor", align 8
@_ZN7DynexCN10parametersL21P2P_NET_DATA_FILENAMEE = external hidden constant [13 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 nounwind uwtable
declare void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1 align 2

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

declare i32 @__gxx_personality_v0(...)

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

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

declare void @_ZN5Tools23getDefaultDataDirectoryB5cxx11Ev(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8) local_unnamed_addr #3

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

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

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_ZN7DynexCN13NetNodeConfig4initERKN5boost15program_options13variables_mapE(ptr noundef nonnull align 8 dereferenceable(209) %0, ptr noundef nonnull align 8 dereferenceable(160) %1) local_unnamed_addr #2 align 2 personality ptr @__gxx_personality_v0 {
  %3 = alloca %"class.std::__cxx11::basic_string", align 8
  %4 = alloca %"class.std::allocator", align 1
  %5 = alloca %"class.std::__cxx11::basic_string", align 8
  %6 = alloca %"class.std::allocator", align 1
  %7 = alloca %"class.std::__cxx11::basic_string", align 8
  %8 = alloca %"class.std::__cxx11::basic_string", align 8
  %9 = alloca %"class.std::allocator", align 1
  %10 = alloca %"class.std::__cxx11::basic_string", align 8
  %11 = alloca %"class.std::allocator", align 1
  %12 = alloca %"class.std::__cxx11::basic_string", align 8
  %13 = alloca %"class.std::allocator", align 1
  %14 = alloca %"class.std::__cxx11::basic_string", align 8
  %15 = alloca %"class.std::allocator", align 1
  %16 = alloca %"class.std::__cxx11::basic_string", align 8
  %17 = alloca %"class.std::allocator", align 1
  %18 = alloca %"class.std::__cxx11::basic_string", align 8
  %19 = alloca %"class.std::allocator", align 1
  %20 = alloca %"class.std::__cxx11::basic_string", align 8
  %21 = alloca %"class.std::allocator", align 1
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca %"class.std::allocator", align 1
  %24 = alloca %"class.std::__cxx11::basic_string", align 8
  %25 = alloca %"class.std::__cxx11::basic_string", align 8
  %26 = alloca %"class.std::vector.37", align 8
  %27 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %28 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %29 = alloca %"struct.DynexCN::PeerlistEntry", align 1
  %30 = alloca %"class.boost::value_initialized", align 1
  %31 = getelementptr inbounds i8, ptr %1, i64 16
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %3) #7
  %32 = load ptr, ptr @_ZN7DynexCN12_GLOBAL__N_115arg_p2p_bind_ipB5cxx11E, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %4) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %4) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %3, ptr noundef %32, ptr noundef nonnull align 1 dereferenceable(1) %4)
          to label %33 unwind label %45

33:                                               ; preds = %2
  %34 = invoke noundef i64 @_ZNKSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN5boost15program_options14variable_valueESt4lessIS5_ESaISt4pairIKS5_S8_EEE5countERSC_(ptr noundef nonnull align 8 dereferenceable(48) %31, ptr noundef nonnull align 8 dereferenceable(32) %3)
          to label %35 unwind label %47

35:                                               ; preds = %33
  %.not.not = icmp eq i64 %34, 0
  br i1 %.not.not, label %.critedge192, label %36

36:                                               ; preds = %35
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %5) #7
  %37 = load ptr, ptr @_ZN7DynexCN12_GLOBAL__N_115arg_p2p_bind_ipB5cxx11E, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %6) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %6) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef %37, ptr noundef nonnull align 1 dereferenceable(1) %6)
          to label %38 unwind label %49

38:                                               ; preds = %36
  %39 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5boost15program_options13variables_mapixERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(160) %1, ptr noundef nonnull align 8 dereferenceable(32) %5)
          to label %40 unwind label %51

40:                                               ; preds = %38
  %41 = call noundef zeroext i1 @_ZNK5boost15program_options14variable_value9defaultedEv(ptr noundef nonnull align 8 dereferenceable(32) %39)
  br i1 %41, label %.critedge, label %.critedge197

.critedge:                                        ; preds = %40
  %42 = call noundef zeroext i1 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(32) %0) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %6) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %6) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %4) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %4) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) #7
  br i1 %42, label %43, label %56

.critedge197:                                     ; preds = %40
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %6) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %6) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %4) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %4) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) #7
  br label %43

43:                                               ; preds = %.critedge197, %.critedge
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %7) #7
  call void @_ZN12command_line7get_argINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEELb0EEET_RKN5boost15program_options13variables_mapERKNS_14arg_descriptorIS7_XT0_EEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %7, ptr noundef nonnull align 8 dereferenceable(160) %1, ptr noundef nonnull align 8 dereferenceable(49) @_ZN7DynexCN12_GLOBAL__N_115arg_p2p_bind_ipB5cxx11E)
  %44 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef nonnull align 8 dereferenceable(32) %7) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #7
  br label %56

45:                                               ; preds = %2
  %46 = landingpad { ptr, i32 }
          cleanup
  br label %55

47:                                               ; preds = %33
  %48 = landingpad { ptr, i32 }
          cleanup
  br label %54

49:                                               ; preds = %36
  %50 = landingpad { ptr, i32 }
          cleanup
  br label %53

51:                                               ; preds = %38
  %52 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #7
  br label %53

53:                                               ; preds = %49, %51
  %.pn = phi { ptr, i32 } [ %52, %51 ], [ %50, %49 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %6) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %6) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #7
  br label %54

54:                                               ; preds = %53, %47
  %.pn.pn = phi { ptr, i32 } [ %.pn, %53 ], [ %48, %47 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #7
  br label %55

55:                                               ; preds = %54, %45
  %.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn, %54 ], [ %46, %45 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %4) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %4) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) #7
  br label %213

.critedge192:                                     ; preds = %35
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %4) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %4) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) #7
  br label %56

56:                                               ; preds = %.critedge192, %43, %.critedge
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %8) #7
  %57 = load ptr, ptr @_ZN7DynexCN12_GLOBAL__N_117arg_p2p_bind_portE, align 8, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %9) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef %57, ptr noundef nonnull align 1 dereferenceable(1) %9)
          to label %58 unwind label %70

58:                                               ; preds = %56
  %59 = invoke noundef i64 @_ZNKSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN5boost15program_options14variable_valueESt4lessIS5_ESaISt4pairIKS5_S8_EEE5countERSC_(ptr noundef nonnull align 8 dereferenceable(48) %31, ptr noundef nonnull align 8 dereferenceable(32) %8)
          to label %60 unwind label %72

60:                                               ; preds = %58
  %.not.not133 = icmp eq i64 %59, 0
  br i1 %.not.not133, label %.critedge193, label %61

61:                                               ; preds = %60
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %10) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %11) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef %57, ptr noundef nonnull align 1 dereferenceable(1) %11)
          to label %62 unwind label %74

62:                                               ; preds = %61
  %63 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5boost15program_options13variables_mapixERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(160) %1, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %.critedge156 unwind label %76

.critedge156:                                     ; preds = %62
  %64 = call noundef zeroext i1 @_ZNK5boost15program_options14variable_value9defaultedEv(ptr noundef nonnull align 8 dereferenceable(32) %63)
  %65 = getelementptr inbounds i8, ptr %0, i64 32
  %66 = load i16, ptr %65, align 8
  %67 = icmp ne i16 %66, 0
  %.ph176.not = select i1 %64, i1 %67, i1 false
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %11) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %9) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #7
  br i1 %.ph176.not, label %81, label %68

68:                                               ; preds = %.critedge156
  %69 = call noundef zeroext i16 @_ZN12command_line7get_argItLb0EEET_RKN5boost15program_options13variables_mapERKNS_14arg_descriptorIS1_XT0_EEE(ptr noundef nonnull align 8 dereferenceable(160) %1, ptr noundef nonnull align 8 dereferenceable(24) @_ZN7DynexCN12_GLOBAL__N_117arg_p2p_bind_portE)
  store i16 %69, ptr %65, align 8, !tbaa !17
  br label %81

70:                                               ; preds = %56
  %71 = landingpad { ptr, i32 }
          cleanup
  br label %80

72:                                               ; preds = %58
  %73 = landingpad { ptr, i32 }
          cleanup
  br label %79

74:                                               ; preds = %61
  %75 = landingpad { ptr, i32 }
          cleanup
  br label %78

76:                                               ; preds = %62
  %77 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #7
  br label %78

78:                                               ; preds = %74, %76
  %.pn129 = phi { ptr, i32 } [ %77, %76 ], [ %75, %74 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %11) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #7
  br label %79

79:                                               ; preds = %78, %72
  %.pn129.pn = phi { ptr, i32 } [ %.pn129, %78 ], [ %73, %72 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #7
  br label %80

80:                                               ; preds = %79, %70
  %.pn129.pn.pn = phi { ptr, i32 } [ %.pn129.pn, %79 ], [ %71, %70 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %9) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #7
  br label %213

.critedge193:                                     ; preds = %60
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %9) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #7
  br label %81

81:                                               ; preds = %.critedge193, %68, %.critedge156
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %12) #7
  %82 = load ptr, ptr @_ZN7DynexCN12_GLOBAL__N_121arg_p2p_external_portE, align 8, !tbaa !14
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %13) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef %82, ptr noundef nonnull align 1 dereferenceable(1) %13)
          to label %83 unwind label %95

83:                                               ; preds = %81
  %84 = invoke noundef i64 @_ZNKSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN5boost15program_options14variable_valueESt4lessIS5_ESaISt4pairIKS5_S8_EEE5countERSC_(ptr noundef nonnull align 8 dereferenceable(48) %31, ptr noundef nonnull align 8 dereferenceable(32) %12)
          to label %85 unwind label %97

85:                                               ; preds = %83
  %.not.not138 = icmp eq i64 %84, 0
  br i1 %.not.not138, label %.critedge194, label %86

86:                                               ; preds = %85
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %14) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %15) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef %82, ptr noundef nonnull align 1 dereferenceable(1) %15)
          to label %87 unwind label %99

87:                                               ; preds = %86
  %88 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5boost15program_options13variables_mapixERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(160) %1, ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %.critedge160 unwind label %101

.critedge160:                                     ; preds = %87
  %89 = call noundef zeroext i1 @_ZNK5boost15program_options14variable_value9defaultedEv(ptr noundef nonnull align 8 dereferenceable(32) %88)
  %90 = getelementptr inbounds i8, ptr %0, i64 34
  %91 = load i16, ptr %90, align 2
  %92 = icmp ne i16 %91, 0
  %.ph179.not = select i1 %89, i1 %92, i1 false
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %15) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %13) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #7
  br i1 %.ph179.not, label %106, label %93

93:                                               ; preds = %.critedge160
  %94 = call noundef zeroext i16 @_ZN12command_line7get_argItLb0EEET_RKN5boost15program_options13variables_mapERKNS_14arg_descriptorIS1_XT0_EEE(ptr noundef nonnull align 8 dereferenceable(160) %1, ptr noundef nonnull align 8 dereferenceable(24) @_ZN7DynexCN12_GLOBAL__N_121arg_p2p_external_portE)
  store i16 %94, ptr %90, align 2, !tbaa !27
  br label %106

95:                                               ; preds = %81
  %96 = landingpad { ptr, i32 }
          cleanup
  br label %105

97:                                               ; preds = %83
  %98 = landingpad { ptr, i32 }
          cleanup
  br label %104

99:                                               ; preds = %86
  %100 = landingpad { ptr, i32 }
          cleanup
  br label %103

101:                                              ; preds = %87
  %102 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #7
  br label %103

103:                                              ; preds = %99, %101
  %.pn134 = phi { ptr, i32 } [ %102, %101 ], [ %100, %99 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %15) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #7
  br label %104

104:                                              ; preds = %103, %97
  %.pn134.pn = phi { ptr, i32 } [ %.pn134, %103 ], [ %98, %97 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #7
  br label %105

105:                                              ; preds = %104, %95
  %.pn134.pn.pn = phi { ptr, i32 } [ %.pn134.pn, %104 ], [ %96, %95 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %13) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #7
  br label %213

.critedge194:                                     ; preds = %85
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %13) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #7
  br label %106

106:                                              ; preds = %.critedge194, %93, %.critedge160
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %16) #7
  %107 = load ptr, ptr @_ZN7DynexCN12_GLOBAL__N_122arg_p2p_allow_local_ipE, align 8, !tbaa !28
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %17) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef %107, ptr noundef nonnull align 1 dereferenceable(1) %17)
          to label %108 unwind label %122

108:                                              ; preds = %106
  %109 = invoke noundef i64 @_ZNKSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN5boost15program_options14variable_valueESt4lessIS5_ESaISt4pairIKS5_S8_EEE5countERSC_(ptr noundef nonnull align 8 dereferenceable(48) %31, ptr noundef nonnull align 8 dereferenceable(32) %16)
          to label %110 unwind label %124

110:                                              ; preds = %108
  %.not.not143 = icmp eq i64 %109, 0
  br i1 %.not.not143, label %.critedge195, label %111

111:                                              ; preds = %110
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %18) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %19) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef %107, ptr noundef nonnull align 1 dereferenceable(1) %19)
          to label %112 unwind label %126

112:                                              ; preds = %111
  %113 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5boost15program_options13variables_mapixERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(160) %1, ptr noundef nonnull align 8 dereferenceable(32) %18)
          to label %.critedge164 unwind label %128

.critedge164:                                     ; preds = %112
  %114 = call noundef zeroext i1 @_ZNK5boost15program_options14variable_value9defaultedEv(ptr noundef nonnull align 8 dereferenceable(32) %113)
  %115 = getelementptr inbounds i8, ptr %0, i64 36
  %116 = load i8, ptr %115, align 4, !range !30
  %117 = trunc nuw i8 %116 to i1
  %118 = select i1 %114, i1 %117, i1 false
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %19) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %17) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #7
  br i1 %118, label %133, label %119

119:                                              ; preds = %.critedge164
  %120 = call noundef zeroext i1 @_ZN12command_line7get_argIbLb0EEET_RKN5boost15program_options13variables_mapERKNS_14arg_descriptorIS1_XT0_EEE(ptr noundef nonnull align 8 dereferenceable(160) %1, ptr noundef nonnull align 8 dereferenceable(24) @_ZN7DynexCN12_GLOBAL__N_122arg_p2p_allow_local_ipE)
  %121 = zext i1 %120 to i8
  store i8 %121, ptr %115, align 4, !tbaa !31
  br label %133

122:                                              ; preds = %106
  %123 = landingpad { ptr, i32 }
          cleanup
  br label %132

124:                                              ; preds = %108
  %125 = landingpad { ptr, i32 }
          cleanup
  br label %131

126:                                              ; preds = %111
  %127 = landingpad { ptr, i32 }
          cleanup
  br label %130

128:                                              ; preds = %112
  %129 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #7
  br label %130

130:                                              ; preds = %126, %128
  %.pn139 = phi { ptr, i32 } [ %129, %128 ], [ %127, %126 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %19) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #7
  br label %131

131:                                              ; preds = %130, %124
  %.pn139.pn = phi { ptr, i32 } [ %.pn139, %130 ], [ %125, %124 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #7
  br label %132

132:                                              ; preds = %131, %122
  %.pn139.pn.pn = phi { ptr, i32 } [ %.pn139.pn, %131 ], [ %123, %122 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %17) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #7
  br label %213

.critedge195:                                     ; preds = %110
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %17) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #7
  br label %133

133:                                              ; preds = %.critedge195, %119, %.critedge164
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %20) #7
  %134 = load ptr, ptr @_ZN12command_line12arg_data_dirB5cxx11E, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %21) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef %134, ptr noundef nonnull align 1 dereferenceable(1) %21)
          to label %135 unwind label %150

135:                                              ; preds = %133
  %136 = invoke noundef i64 @_ZNKSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN5boost15program_options14variable_valueESt4lessIS5_ESaISt4pairIKS5_S8_EEE5countERSC_(ptr noundef nonnull align 8 dereferenceable(48) %31, ptr noundef nonnull align 8 dereferenceable(32) %20)
          to label %137 unwind label %152

137:                                              ; preds = %135
  %.not.not149 = icmp eq i64 %136, 0
  br i1 %.not.not149, label %.critedge196, label %138

138:                                              ; preds = %137
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %22) #7
  %139 = load ptr, ptr @_ZN12command_line12arg_data_dirB5cxx11E, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %23) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef %139, ptr noundef nonnull align 1 dereferenceable(1) %23)
          to label %140 unwind label %154

140:                                              ; preds = %138
  %141 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK5boost15program_options13variables_mapixERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(160) %1, ptr noundef nonnull align 8 dereferenceable(32) %22)
          to label %142 unwind label %156

142:                                              ; preds = %140
  %143 = call noundef zeroext i1 @_ZNK5boost15program_options14variable_value9defaultedEv(ptr noundef nonnull align 8 dereferenceable(32) %141)
  br i1 %143, label %144, label %.critedge198

144:                                              ; preds = %142
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %24) #7
  invoke void @_ZN5Tools23getDefaultDataDirectoryB5cxx11Ev(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %24)
          to label %.critedge168.thread unwind label %158

.critedge168.thread:                              ; preds = %144
  %145 = getelementptr inbounds i8, ptr %0, i64 144
  %146 = call noundef zeroext i1 @_ZSteqIcEN9__gnu_cxx11__enable_ifIXsr9__is_charIT_EE7__valueEbE6__typeERKNSt7__cxx1112basic_stringIS2_St11char_traitsIS2_ESaIS2_EEESC_(ptr noundef nonnull align 8 dereferenceable(32) %145, ptr noundef nonnull align 8 dereferenceable(32) %24) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %24) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %23) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %21) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #7
  br i1 %146, label %147, label %164

.critedge198:                                     ; preds = %142
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %23) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %21) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #7
  br label %147

147:                                              ; preds = %.critedge198, %.critedge168.thread
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %25) #7
  call void @_ZN12command_line7get_argINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEELb0EEET_RKN5boost15program_options13variables_mapERKNS_14arg_descriptorIS7_XT0_EEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %25, ptr noundef nonnull align 8 dereferenceable(160) %1, ptr noundef nonnull align 8 dereferenceable(49) @_ZN12command_line12arg_data_dirB5cxx11E)
  %148 = getelementptr inbounds i8, ptr %0, i64 144
  %149 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %148, ptr noundef nonnull align 8 dereferenceable(32) %25) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #7
  br label %164

150:                                              ; preds = %133
  %151 = landingpad { ptr, i32 }
          cleanup
  br label %163

152:                                              ; preds = %135
  %153 = landingpad { ptr, i32 }
          cleanup
  br label %162

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

156:                                              ; preds = %140
  %157 = landingpad { ptr, i32 }
          cleanup
  br label %160

158:                                              ; preds = %144
  %159 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %24) #7
  br label %160

160:                                              ; preds = %156, %158
  %.pn144 = phi { ptr, i32 } [ %159, %158 ], [ %157, %156 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #7
  br label %161

161:                                              ; preds = %154, %160
  %.pn144.pn = phi { ptr, i32 } [ %.pn144, %160 ], [ %155, %154 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %23) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #7
  br label %162

162:                                              ; preds = %161, %152
  %.pn144.pn.pn = phi { ptr, i32 } [ %.pn144.pn, %161 ], [ %153, %152 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #7
  br label %163

163:                                              ; preds = %162, %150
  %.pn144.pn.pn.pn = phi { ptr, i32 } [ %.pn144.pn.pn, %162 ], [ %151, %150 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %21) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #7
  br label %213

.critedge196:                                     ; preds = %137
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %21) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #7
  br label %164

164:                                              ; preds = %.critedge196, %147, %.critedge168.thread
  %165 = getelementptr inbounds i8, ptr %0, i64 176
  %166 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %165, ptr noundef nonnull @_ZN7DynexCN10parametersL21P2P_NET_DATA_FILENAMEE)
  %167 = call noundef zeroext i1 @_ZN12command_line7has_argISt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS7_EELb0EEEbRKN5boost15program_options13variables_mapERKNS_14arg_descriptorIT_XT0_EEE(ptr noundef nonnull align 8 dereferenceable(160) %1, ptr noundef nonnull align 8 dereferenceable(16) @_ZN7DynexCN12_GLOBAL__N_116arg_p2p_add_peerB5cxx11E)
  br i1 %167, label %168, label %193

168:                                              ; preds = %164
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %26) #7
  call void @_ZN12command_line7get_argISt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS7_EELb0EEET_RKN5boost15program_options13variables_mapERKNS_14arg_descriptorISA_XT0_EEE(ptr dead_on_unwind nonnull writable sret(%"class.std::vector.37") align 8 %26, ptr noundef nonnull align 8 dereferenceable(160) %1, ptr noundef nonnull align 8 dereferenceable(16) @_ZN7DynexCN12_GLOBAL__N_116arg_p2p_add_peerB5cxx11E)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) #7
  %169 = call ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %26) #7
  store ptr %169, ptr %27, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #7
  %170 = call ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %26) #7
  store ptr %170, ptr %28, align 8
  %171 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEEbRKNS_17__normal_iteratorIT_T0_EESG_(ptr noundef nonnull align 8 dereferenceable(8) %27, ptr noundef nonnull align 8 dereferenceable(8) %28) #7
  br i1 %171, label %.lr.ph, label %.thread190

.lr.ph:                                           ; preds = %168
  %172 = getelementptr inbounds i8, ptr %29, i64 8
  %173 = getelementptr inbounds i8, ptr %0, i64 40
  br label %174

.thread190:                                       ; preds = %188, %168
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #7
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %26) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %26) #7
  br label %193

174:                                              ; preds = %.lr.ph, %188
  %175 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %27) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %29) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %30) #7
  invoke void @_ZN5boost17value_initializedIN7DynexCN13PeerlistEntryEEC2Ev(ptr noundef nonnull align 1 dereferenceable(24) %30)
          to label %176 unwind label %183

176:                                              ; preds = %174
  %177 = invoke noundef nonnull align 1 dereferenceable(24) ptr @_ZN5boost17value_initializedIN7DynexCN13PeerlistEntryEEcvRS2_Ev(ptr noundef nonnull align 1 dereferenceable(24) %30)
          to label %178 unwind label %183

178:                                              ; preds = %176
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(24) %29, ptr noundef nonnull align 1 dereferenceable(24) %177, i64 24, i1 false), !tbaa.struct !32
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %30) #7
  %179 = invoke noundef i64 @_ZN6Crypto4randImEENSt9enable_ifIXsr3std6is_podIT_EE5valueES2_E4typeEv()
          to label %180 unwind label %185

180:                                              ; preds = %178
  store i64 %179, ptr %172, align 1, !tbaa !36
  %181 = invoke noundef zeroext i1 @_ZN7DynexCN12_GLOBAL__N_119parsePeerFromStringERNS_14NetworkAddressERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 1 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(32) %175)
          to label %182 unwind label %185

182:                                              ; preds = %180
  br i1 %181, label %187, label %192

183:                                              ; preds = %176, %174
  %184 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %30) #7
  br label %191

185:                                              ; preds = %187, %180, %178
  %186 = landingpad { ptr, i32 }
          cleanup
  br label %191

187:                                              ; preds = %182
  invoke void @_ZNSt6vectorIN7DynexCN13PeerlistEntryESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %173, ptr noundef nonnull align 1 dereferenceable(24) %29)
          to label %188 unwind label %185

188:                                              ; preds = %187
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %29) #7
  %189 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %27) #7
  %190 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEEbRKNS_17__normal_iteratorIT_T0_EESG_(ptr noundef nonnull align 8 dereferenceable(8) %27, ptr noundef nonnull align 8 dereferenceable(8) %28) #7
  br i1 %190, label %174, label %.thread190

191:                                              ; preds = %185, %183
  %.pn150 = phi { ptr, i32 } [ %186, %185 ], [ %184, %183 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %29) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #7
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %26) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %26) #7
  br label %213

192:                                              ; preds = %182
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %29) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #7
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %26) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %26) #7
  br label %212

193:                                              ; preds = %.thread190, %164
  %194 = call noundef zeroext i1 @_ZN12command_line7has_argISt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS7_EELb0EEEbRKN5boost15program_options13variables_mapERKNS_14arg_descriptorIT_XT0_EEE(ptr noundef nonnull align 8 dereferenceable(160) %1, ptr noundef nonnull align 8 dereferenceable(16) @_ZN7DynexCN12_GLOBAL__N_126arg_p2p_add_exclusive_nodeB5cxx11E)
  br i1 %194, label %195, label %198

195:                                              ; preds = %193
  %196 = getelementptr inbounds i8, ptr %0, i64 88
  %197 = call noundef zeroext i1 @_ZN7DynexCN12_GLOBAL__N_127parsePeersAndAddToContainerERKN5boost15program_options13variables_mapERKN12command_line14arg_descriptorISt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaISE_EELb0EEERS8_INS_14NetworkAddressESaISK_EE(ptr noundef nonnull align 8 dereferenceable(160) %1, ptr noundef nonnull align 8 dereferenceable(16) @_ZN7DynexCN12_GLOBAL__N_126arg_p2p_add_exclusive_nodeB5cxx11E, ptr noundef nonnull align 8 dereferenceable(24) %196)
  br i1 %197, label %198, label %212

198:                                              ; preds = %195, %193
  %199 = call noundef zeroext i1 @_ZN12command_line7has_argISt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS7_EELb0EEEbRKN5boost15program_options13variables_mapERKNS_14arg_descriptorIT_XT0_EEE(ptr noundef nonnull align 8 dereferenceable(160) %1, ptr noundef nonnull align 8 dereferenceable(16) @_ZN7DynexCN12_GLOBAL__N_125arg_p2p_add_priority_nodeB5cxx11E)
  br i1 %199, label %200, label %203

200:                                              ; preds = %198
  %201 = getelementptr inbounds i8, ptr %0, i64 64
  %202 = call noundef zeroext i1 @_ZN7DynexCN12_GLOBAL__N_127parsePeersAndAddToContainerERKN5boost15program_options13variables_mapERKN12command_line14arg_descriptorISt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaISE_EELb0EEERS8_INS_14NetworkAddressESaISK_EE(ptr noundef nonnull align 8 dereferenceable(160) %1, ptr noundef nonnull align 8 dereferenceable(16) @_ZN7DynexCN12_GLOBAL__N_125arg_p2p_add_priority_nodeB5cxx11E, ptr noundef nonnull align 8 dereferenceable(24) %201)
  br i1 %202, label %203, label %212

203:                                              ; preds = %200, %198
  %204 = call noundef zeroext i1 @_ZN12command_line7has_argISt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS7_EELb0EEEbRKN5boost15program_options13variables_mapERKNS_14arg_descriptorIT_XT0_EEE(ptr noundef nonnull align 8 dereferenceable(160) %1, ptr noundef nonnull align 8 dereferenceable(16) @_ZN7DynexCN12_GLOBAL__N_117arg_p2p_seed_nodeB5cxx11E)
  br i1 %204, label %205, label %208

205:                                              ; preds = %203
  %206 = getelementptr inbounds i8, ptr %0, i64 112
  %207 = call noundef zeroext i1 @_ZN7DynexCN12_GLOBAL__N_127parsePeersAndAddToContainerERKN5boost15program_options13variables_mapERKN12command_line14arg_descriptorISt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaISE_EELb0EEERS8_INS_14NetworkAddressESaISK_EE(ptr noundef nonnull align 8 dereferenceable(160) %1, ptr noundef nonnull align 8 dereferenceable(16) @_ZN7DynexCN12_GLOBAL__N_117arg_p2p_seed_nodeB5cxx11E, ptr noundef nonnull align 8 dereferenceable(24) %206)
  br i1 %207, label %208, label %212

208:                                              ; preds = %205, %203
  %209 = call noundef zeroext i1 @_ZN12command_line7has_argIbLb0EEEbRKN5boost15program_options13variables_mapERKNS_14arg_descriptorIT_XT0_EEE(ptr noundef nonnull align 8 dereferenceable(160) %1, ptr noundef nonnull align 8 dereferenceable(24) @_ZN7DynexCN12_GLOBAL__N_120arg_p2p_hide_my_portE)
  br i1 %209, label %210, label %212

210:                                              ; preds = %208
  %211 = getelementptr inbounds i8, ptr %0, i64 136
  store i8 1, ptr %211, align 8, !tbaa !39
  br label %212

212:                                              ; preds = %192, %208, %210, %205, %200, %195
  %.3 = phi i1 [ false, %192 ], [ false, %195 ], [ false, %200 ], [ false, %205 ], [ true, %210 ], [ true, %208 ]
  ret i1 %.3

213:                                              ; preds = %191, %163, %132, %105, %80, %55
  %.pn150.pn = phi { ptr, i32 } [ %.pn150, %191 ], [ %.pn144.pn.pn.pn, %163 ], [ %.pn139.pn.pn, %132 ], [ %.pn134.pn.pn, %105 ], [ %.pn129.pn.pn, %80 ], [ %.pn.pn.pn, %55 ]
  resume { ptr, i32 } %.pn150.pn
}

; Function Attrs: mustprogress uwtable
declare dso_local noundef i64 @_ZNKSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN5boost15program_options14variable_valueESt4lessIS5_ESaISt4pairIKS5_S8_EEE5countERSC_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #2 align 2

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i16 @_ZN12command_line7get_argItLb0EEET_RKN5boost15program_options13variables_mapERKNS_14arg_descriptorIS1_XT0_EEE(ptr noundef nonnull align 8 dereferenceable(160), ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #2

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN12command_line7get_argISt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS7_EELb0EEET_RKN5boost15program_options13variables_mapERKNS_14arg_descriptorISA_XT0_EEE(ptr dead_on_unwind noalias writable sret(%"class.std::vector.37") align 8, ptr noundef nonnull align 8 dereferenceable(160), ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #2

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 1 dereferenceable(24) ptr @_ZN5boost17value_initializedIN7DynexCN13PeerlistEntryEEcvRS2_Ev(ptr noundef nonnull align 1 dereferenceable(24)) local_unnamed_addr #2 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) #5

; Function Attrs: mustprogress uwtable
declare dso_local noundef i64 @_ZN6Crypto4randImEENSt9enable_ifIXsr3std6is_podIT_EE5valueES2_E4typeEv() local_unnamed_addr #2

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

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

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

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

; Function Attrs: mustprogress uwtable
declare hidden noundef zeroext i1 @_ZN7DynexCN12_GLOBAL__N_127parsePeersAndAddToContainerERKN5boost15program_options13variables_mapERKN12command_line14arg_descriptorISt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaISE_EELb0EEERS8_INS_14NetworkAddressESaISK_EE(ptr noundef nonnull align 8 dereferenceable(160), ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #2

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !7, i64 0}
!6 = !{!"_ZTSN12command_line14arg_descriptorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEELb0EEE", !7, i64 0, !7, i64 8, !10, i64 16, !13, i64 48}
!7 = !{!"any pointer", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !11, i64 0, !12, i64 8, !8, i64 16}
!11 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !7, i64 0}
!12 = !{!"long", !8, i64 0}
!13 = !{!"bool", !8, i64 0}
!14 = !{!15, !7, i64 0}
!15 = !{!"_ZTSN12command_line14arg_descriptorItLb0EEE", !7, i64 0, !7, i64 8, !16, i64 16, !13, i64 18}
!16 = !{!"short", !8, i64 0}
!17 = !{!18, !16, i64 32}
!18 = !{!"_ZTSN7DynexCN13NetNodeConfigE", !10, i64 0, !16, i64 32, !16, i64 34, !13, i64 36, !19, i64 40, !23, i64 64, !23, i64 88, !23, i64 112, !13, i64 136, !10, i64 144, !10, i64 176, !13, i64 208}
!19 = !{!"_ZTSSt6vectorIN7DynexCN13PeerlistEntryESaIS1_EE", !20, i64 0}
!20 = !{!"_ZTSSt12_Vector_baseIN7DynexCN13PeerlistEntryESaIS1_EE", !21, i64 0}
!21 = !{!"_ZTSNSt12_Vector_baseIN7DynexCN13PeerlistEntryESaIS1_EE12_Vector_implE", !22, i64 0}
!22 = !{!"_ZTSNSt12_Vector_baseIN7DynexCN13PeerlistEntryESaIS1_EE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!23 = !{!"_ZTSSt6vectorIN7DynexCN14NetworkAddressESaIS1_EE", !24, i64 0}
!24 = !{!"_ZTSSt12_Vector_baseIN7DynexCN14NetworkAddressESaIS1_EE", !25, i64 0}
!25 = !{!"_ZTSNSt12_Vector_baseIN7DynexCN14NetworkAddressESaIS1_EE12_Vector_implE", !26, i64 0}
!26 = !{!"_ZTSNSt12_Vector_baseIN7DynexCN14NetworkAddressESaIS1_EE17_Vector_impl_dataE", !7, i64 0, !7, i64 8, !7, i64 16}
!27 = !{!18, !16, i64 34}
!28 = !{!29, !7, i64 0}
!29 = !{!"_ZTSN12command_line14arg_descriptorIbLb0EEE", !7, i64 0, !7, i64 8, !13, i64 16, !13, i64 17}
!30 = !{i8 0, i8 2}
!31 = !{!18, !13, i64 36}
!32 = !{i64 0, i64 4, !33, i64 4, i64 4, !33, i64 8, i64 8, !35, i64 16, i64 8, !35}
!33 = !{!34, !34, i64 0}
!34 = !{!"int", !8, i64 0}
!35 = !{!12, !12, i64 0}
!36 = !{!37, !12, i64 8}
!37 = !{!"_ZTSN7DynexCN13PeerlistEntryE", !38, i64 0, !12, i64 8, !12, i64 16}
!38 = !{!"_ZTSN7DynexCN14NetworkAddressE", !34, i64 0, !34, i64 4}
!39 = !{!18, !13, i64 136}


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