; LLVM IR from aws/s2n-tls :: tests/unit (s2n_npn_extension_test)

; 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.s2n_extension_type = type { i16, i8, i16, ptr, ptr, ptr, ptr }
%struct.s2n_result = type { i32 }
%struct.s2n_stuffer = type { %struct.s2n_blob, i32, i32, i32, i8 }
%struct.s2n_blob = type { ptr, i32, i32, i8 }
%struct.s2n_connection = type { i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, [22 x i8], [22 x i8], [22 x i8], i32, i32, %struct.s2n_timer, i64, i64, [32 x i8], i8, i8, i8, i8, i8, i8, i8, ptr, ptr, %struct.s2n_secrets, ptr, ptr, %struct.s2n_kex_parameters, %struct.s2n_handshake_parameters, %struct.s2n_psk_parameters, ptr, i8, i32, [5 x i8], %struct.s2n_stuffer, %struct.s2n_stuffer, %struct.s2n_stuffer, %struct.s2n_stuffer, i32, i64, [2 x i8], %struct.s2n_stuffer, i8, i8, i8, i8, %struct.s2n_atomic_flag, %struct.s2n_atomic_flag, %struct.s2n_handshake, i16, i32, i16, i64, i8, i64, i64, i64, %struct.s2n_atomic_flag, %struct.s2n_atomic_flag, [256 x i8], [256 x i8], i32, %struct.s2n_blob, i32, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_client_hello, %struct.s2n_x509_validator, ptr, ptr, i8, i32, %struct.s2n_blob, i32, %struct.s2n_ticket_fields, [138 x i8], %struct.s2n_stuffer, %struct.s2n_blob, %struct.s2n_blob, i8, i8, i8, i16, i16, i32, i32, %struct.s2n_blob, i32, %struct.s2n_post_handshake, %struct.s2n_atomic_flag, i8, i8 }
%struct.s2n_timer = type { i64 }
%struct.s2n_secrets = type { %union.anon, i32 }
%union.anon = type { %struct.s2n_tls13_secrets }
%struct.s2n_tls13_secrets = type { [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], i32 }
%struct.s2n_kex_parameters = type { %struct.s2n_dh_params, %struct.s2n_ecc_evp_params, [4 x ptr], %struct.s2n_ecc_evp_params, %struct.s2n_kem_group_params, %struct.s2n_kem_group_params, [8 x ptr], %struct.s2n_kem_params, %struct.s2n_blob, %struct.s2n_blob }
%struct.s2n_dh_params = type { ptr }
%struct.s2n_ecc_evp_params = type { ptr, ptr }
%struct.s2n_kem_group_params = type { ptr, %struct.s2n_kem_params, %struct.s2n_ecc_evp_params }
%struct.s2n_kem_params = type { ptr, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob, i8 }
%struct.s2n_handshake_parameters = type { %struct.s2n_pkey, %struct.s2n_pkey, %struct.s2n_blob, i32, %struct.s2n_sig_scheme_list, ptr, ptr, ptr, [4 x ptr], [4 x ptr], i8, i8, [32 x i8], [32 x i8] }
%struct.s2n_pkey = type { ptr, ptr, ptr, ptr, ptr, ptr }
%struct.s2n_sig_scheme_list = type { [128 x i16], i8 }
%struct.s2n_psk_parameters = type { i32, %struct.s2n_array, i16, i16, ptr, i32 }
%struct.s2n_array = type { %struct.s2n_blob, i32, i32 }
%struct.s2n_handshake = type { %struct.s2n_stuffer, ptr, [8 x i8], [48 x i8], [48 x i8], i8, i32, i32, i32, i32, %struct.s2n_offered_early_data, i8, i32 }
%struct.s2n_offered_early_data = type { ptr }
%struct.s2n_client_hello = type { %struct.s2n_blob, %struct.s2n_parsed_extensions_list, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob, i8, i8, i8 }
%struct.s2n_parsed_extensions_list = type { [21 x %struct.s2n_parsed_extension], %struct.s2n_blob, i16 }
%struct.s2n_parsed_extension = type { %struct.s2n_blob, i16, i16, i8 }
%struct.s2n_x509_validator = type { ptr, ptr, i8, i8, i16, ptr, i32, ptr, %struct.s2n_cert_validation_info, i8 }
%struct.s2n_cert_validation_info = type { i8, [3 x i8] }
%struct.s2n_ticket_fields = type { %struct.s2n_blob, i32 }
%struct.s2n_post_handshake = type { %struct.s2n_stuffer, [4 x i8] }
%struct.s2n_atomic_flag = type { i32 }

@s2n_use_color_in_output = external dso_local global i8, align 1
@test_count = external dso_local global i32, align 4
@stdout = external global ptr, align 8
@.str = external hidden unnamed_addr constant [19 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [81 x i8], align 1
@stderr = external global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [52 x i8], align 1
@s2n_errno = external thread_local global i32, align 4
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [39 x i8], align 1
@__const.main.protocols = external hidden unnamed_addr constant [3 x ptr], align 16
@s2n_client_npn_extension = external constant %struct.s2n_extension_type, align 8
@.str.11 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [100 x i8], align 1
@s2n_client_alpn_extension = external constant %struct.s2n_extension_type, align 8
@.str.17 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [59 x i8], align 1
@s2n_server_npn_extension = external constant %struct.s2n_extension_type, align 8
@.str.26 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [116 x i8], align 1
@__const.main.protocol = external hidden unnamed_addr constant [6 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [92 x i8], align 1
@__const.main.wire_bytes = external hidden unnamed_addr constant [23 x i8], align 16
@.str.42 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [116 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [25 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local i32 @main(i32 noundef %0, ptr noundef %1) #0 {
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca [3 x ptr], align 16
  %10 = alloca i8, align 1
  %11 = alloca i32, align 4
  %12 = alloca ptr, align 8
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca ptr, align 8
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca %struct.s2n_result, align 4
  %27 = alloca %struct.s2n_result, align 4
  %28 = alloca ptr, align 8
  %29 = alloca i32, align 4
  %30 = alloca ptr, align 8
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca %struct.s2n_stuffer, align 8
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca i8, align 1
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca %struct.s2n_result, align 4
  %46 = alloca %struct.s2n_result, align 4
  %47 = alloca ptr, align 8
  %48 = alloca i32, align 4
  %49 = alloca ptr, align 8
  %50 = alloca i32, align 4
  %51 = alloca i32, align 4
  %52 = alloca i32, align 4
  %53 = alloca i32, align 4
  %54 = alloca i32, align 4
  %55 = alloca %struct.s2n_result, align 4
  %56 = alloca %struct.s2n_result, align 4
  %57 = alloca ptr, align 8
  %58 = alloca i32, align 4
  %59 = alloca ptr, align 8
  %60 = alloca i32, align 4
  %61 = alloca i32, align 4
  %62 = alloca i32, align 4
  %63 = alloca %struct.s2n_stuffer, align 8
  %64 = alloca i32, align 4
  %65 = alloca i32, align 4
  %66 = alloca i8, align 1
  %67 = alloca [255 x i8], align 16
  %68 = alloca i64, align 8
  %69 = alloca i32, align 4
  %70 = alloca i32, align 4
  %71 = alloca i32, align 4
  %72 = alloca i32, align 4
  %73 = alloca i32, align 4
  %74 = alloca %struct.s2n_result, align 4
  %75 = alloca %struct.s2n_result, align 4
  %76 = alloca ptr, align 8
  %77 = alloca i32, align 4
  %78 = alloca %struct.s2n_stuffer, align 8
  %79 = alloca i32, align 4
  %80 = alloca i32, align 4
  %81 = alloca i32, align 4
  %82 = alloca %struct.s2n_result, align 4
  %83 = alloca ptr, align 8
  %84 = alloca i32, align 4
  %85 = alloca ptr, align 8
  %86 = alloca i32, align 4
  %87 = alloca i32, align 4
  %88 = alloca i32, align 4
  %89 = alloca %struct.s2n_stuffer, align 8
  %90 = alloca i32, align 4
  %91 = alloca i32, align 4
  %92 = alloca i32, align 4
  %93 = alloca i32, align 4
  %94 = alloca i32, align 4
  %95 = alloca %struct.s2n_result, align 4
  %96 = alloca %struct.s2n_result, align 4
  %97 = alloca ptr, align 8
  %98 = alloca i32, align 4
  %99 = alloca ptr, align 8
  %100 = alloca i32, align 4
  %101 = alloca i32, align 4
  %102 = alloca i32, align 4
  %103 = alloca %struct.s2n_stuffer, align 8
  %104 = alloca i32, align 4
  %105 = alloca [6 x i8], align 1
  %106 = alloca i32, align 4
  %107 = alloca i32, align 4
  %108 = alloca i32, align 4
  %109 = alloca i32, align 4
  %110 = alloca i32, align 4
  %111 = alloca %struct.s2n_result, align 4
  %112 = alloca %struct.s2n_result, align 4
  %113 = alloca ptr, align 8
  %114 = alloca i32, align 4
  %115 = alloca ptr, align 8
  %116 = alloca i32, align 4
  %117 = alloca i32, align 4
  %118 = alloca i32, align 4
  %119 = alloca %struct.s2n_stuffer, align 8
  %120 = alloca i32, align 4
  %121 = alloca i32, align 4
  %122 = alloca i32, align 4
  %123 = alloca i32, align 4
  %124 = alloca %struct.s2n_result, align 4
  %125 = alloca %struct.s2n_result, align 4
  %126 = alloca ptr, align 8
  %127 = alloca i32, align 4
  %128 = alloca ptr, align 8
  %129 = alloca i32, align 4
  %130 = alloca i32, align 4
  %131 = alloca i32, align 4
  %132 = alloca %struct.s2n_stuffer, align 8
  %133 = alloca i32, align 4
  %134 = alloca [23 x i8], align 16
  %135 = alloca i32, align 4
  %136 = alloca i32, align 4
  %137 = alloca i32, align 4
  %138 = alloca i32, align 4
  %139 = alloca %struct.s2n_result, align 4
  %140 = alloca %struct.s2n_result, align 4
  %141 = alloca ptr, align 8
  %142 = alloca i32, align 4
  %143 = alloca %struct.s2n_result, align 4
  %144 = alloca i32, align 4
  %145 = alloca i32, align 4
  %146 = alloca i32, align 4
  store i32 0, ptr %3, align 4
  store i32 %0, ptr %4, align 4, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !9
  br label %147

147:                                              ; preds = %2
  br label %148

148:                                              ; preds = %147
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %149 = load ptr, ptr @stdout, align 8, !tbaa !9
  %150 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %149, ptr noundef @.str, ptr noundef @.str.1) #10
  %151 = load ptr, ptr @stdout, align 8, !tbaa !9
  %152 = call i32 @fflush(ptr noundef %151)
  br label %153

153:                                              ; preds = %148
  %154 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %155 = icmp eq i32 %154, -1
  br i1 %155, label %156, label %207

156:                                              ; preds = %153
  br label %157

157:                                              ; preds = %156
  br label %158

158:                                              ; preds = %157
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #10
  %159 = call ptr @__errno_location() #11
  %160 = load i32, ptr %159, align 4, !tbaa !5
  store i32 %160, ptr %6, align 4, !tbaa !5
  %161 = load ptr, ptr @stderr, align 8, !tbaa !9
  %162 = call i32 @s2n_print_stacktrace(ptr noundef %161)
  %163 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %164 = trunc i8 %163 to i1
  br i1 %164, label %165, label %187

165:                                              ; preds = %158
  %166 = load ptr, ptr @stderr, align 8, !tbaa !9
  %167 = call i32 @fileno(ptr noundef %166) #10
  %168 = call i32 @isatty(i32 noundef %167) #10
  %169 = icmp ne i32 %168, 0
  br i1 %169, label %170, label %187

170:                                              ; preds = %165
  %171 = load i32, ptr %6, align 4, !tbaa !5
  %172 = call ptr @__errno_location() #11
  store i32 %171, ptr %172, align 4, !tbaa !5
  %173 = load ptr, ptr @stderr, align 8, !tbaa !9
  %174 = load i32, ptr @test_count, align 4, !tbaa !5
  %175 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %176 = load i32, ptr %175, align 4, !tbaa !5
  %177 = call ptr @s2n_strerror(i32 noundef %176, ptr noundef @.str.4)
  %178 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %179 = load i32, ptr %178, align 4, !tbaa !5
  %180 = call ptr @s2n_strerror_debug(i32 noundef %179, ptr noundef @.str.4)
  %181 = call ptr @__errno_location() #11
  %182 = load i32, ptr %181, align 4, !tbaa !5
  %183 = call ptr @strerror(i32 noundef %182) #10
  %184 = call ptr @__errno_location() #11
  %185 = load i32, ptr %184, align 4, !tbaa !5
  %186 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %173, ptr noundef @.str.2, i32 noundef %174, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 37, ptr noundef %177, ptr noundef %180, ptr noundef %183, i32 noundef %185) #10
  br label %204

187:                                              ; preds = %165, %158
  %188 = load i32, ptr %6, align 4, !tbaa !5
  %189 = call ptr @__errno_location() #11
  store i32 %188, ptr %189, align 4, !tbaa !5
  %190 = load ptr, ptr @stderr, align 8, !tbaa !9
  %191 = load i32, ptr @test_count, align 4, !tbaa !5
  %192 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %193 = load i32, ptr %192, align 4, !tbaa !5
  %194 = call ptr @s2n_strerror(i32 noundef %193, ptr noundef @.str.4)
  %195 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %196 = load i32, ptr %195, align 4, !tbaa !5
  %197 = call ptr @s2n_strerror_debug(i32 noundef %196, ptr noundef @.str.4)
  %198 = call ptr @__errno_location() #11
  %199 = load i32, ptr %198, align 4, !tbaa !5
  %200 = call ptr @strerror(i32 noundef %199) #10
  %201 = call ptr @__errno_location() #11
  %202 = load i32, ptr %201, align 4, !tbaa !5
  %203 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %190, ptr noundef @.str.5, i32 noundef %191, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 37, ptr noundef %194, ptr noundef %197, ptr noundef %200, i32 noundef %202) #10
  br label %204

204:                                              ; preds = %187, %170
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #10
  br label %205

205:                                              ; preds = %204
  call void @exit(i32 noundef 1) #12
  unreachable

206:                                              ; No predecessors!
  br label %207

207:                                              ; preds = %206, %153
  br label %208

208:                                              ; preds = %207
  br label %209

209:                                              ; preds = %208
  %210 = load i32, ptr @test_count, align 4, !tbaa !5
  %211 = add nsw i32 %210, 1
  store i32 %211, ptr @test_count, align 4, !tbaa !5
  %212 = call i32 @s2n_enable_atexit()
  %213 = icmp eq i32 %212, -1
  br i1 %213, label %214, label %265

214:                                              ; preds = %209
  br label %215

215:                                              ; preds = %214
  br label %216

216:                                              ; preds = %215
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #10
  %217 = call ptr @__errno_location() #11
  %218 = load i32, ptr %217, align 4, !tbaa !5
  store i32 %218, ptr %7, align 4, !tbaa !5
  %219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %220 = call i32 @s2n_print_stacktrace(ptr noundef %219)
  %221 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %222 = trunc i8 %221 to i1
  br i1 %222, label %223, label %245

223:                                              ; preds = %216
  %224 = load ptr, ptr @stderr, align 8, !tbaa !9
  %225 = call i32 @fileno(ptr noundef %224) #10
  %226 = call i32 @isatty(i32 noundef %225) #10
  %227 = icmp ne i32 %226, 0
  br i1 %227, label %228, label %245

228:                                              ; preds = %223
  %229 = load i32, ptr %7, align 4, !tbaa !5
  %230 = call ptr @__errno_location() #11
  store i32 %229, ptr %230, align 4, !tbaa !5
  %231 = load ptr, ptr @stderr, align 8, !tbaa !9
  %232 = load i32, ptr @test_count, align 4, !tbaa !5
  %233 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %234 = load i32, ptr %233, align 4, !tbaa !5
  %235 = call ptr @s2n_strerror(i32 noundef %234, ptr noundef @.str.4)
  %236 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %237 = load i32, ptr %236, align 4, !tbaa !5
  %238 = call ptr @s2n_strerror_debug(i32 noundef %237, ptr noundef @.str.4)
  %239 = call ptr @__errno_location() #11
  %240 = load i32, ptr %239, align 4, !tbaa !5
  %241 = call ptr @strerror(i32 noundef %240) #10
  %242 = call ptr @__errno_location() #11
  %243 = load i32, ptr %242, align 4, !tbaa !5
  %244 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %231, ptr noundef @.str.2, i32 noundef %232, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 37, ptr noundef %235, ptr noundef %238, ptr noundef %241, i32 noundef %243) #10
  br label %262

245:                                              ; preds = %223, %216
  %246 = load i32, ptr %7, align 4, !tbaa !5
  %247 = call ptr @__errno_location() #11
  store i32 %246, ptr %247, align 4, !tbaa !5
  %248 = load ptr, ptr @stderr, align 8, !tbaa !9
  %249 = load i32, ptr @test_count, align 4, !tbaa !5
  %250 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %251 = load i32, ptr %250, align 4, !tbaa !5
  %252 = call ptr @s2n_strerror(i32 noundef %251, ptr noundef @.str.4)
  %253 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %254 = load i32, ptr %253, align 4, !tbaa !5
  %255 = call ptr @s2n_strerror_debug(i32 noundef %254, ptr noundef @.str.4)
  %256 = call ptr @__errno_location() #11
  %257 = load i32, ptr %256, align 4, !tbaa !5
  %258 = call ptr @strerror(i32 noundef %257) #10
  %259 = call ptr @__errno_location() #11
  %260 = load i32, ptr %259, align 4, !tbaa !5
  %261 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %248, ptr noundef @.str.5, i32 noundef %249, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 37, ptr noundef %252, ptr noundef %255, ptr noundef %258, i32 noundef %260) #10
  br label %262

262:                                              ; preds = %245, %228
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #10
  br label %263

263:                                              ; preds = %262
  call void @exit(i32 noundef 1) #12
  unreachable

264:                                              ; No predecessors!
  br label %265

265:                                              ; preds = %264, %209
  br label %266

266:                                              ; preds = %265
  br label %267

267:                                              ; preds = %266
  br label %268

268:                                              ; preds = %267
  %269 = call i32 @s2n_init()
  %270 = icmp eq i32 %269, -1
  br i1 %270, label %271, label %322

271:                                              ; preds = %268
  br label %272

272:                                              ; preds = %271
  br label %273

273:                                              ; preds = %272
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #10
  %274 = call ptr @__errno_location() #11
  %275 = load i32, ptr %274, align 4, !tbaa !5
  store i32 %275, ptr %8, align 4, !tbaa !5
  %276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %277 = call i32 @s2n_print_stacktrace(ptr noundef %276)
  %278 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %279 = trunc i8 %278 to i1
  br i1 %279, label %280, label %302

280:                                              ; preds = %273
  %281 = load ptr, ptr @stderr, align 8, !tbaa !9
  %282 = call i32 @fileno(ptr noundef %281) #10
  %283 = call i32 @isatty(i32 noundef %282) #10
  %284 = icmp ne i32 %283, 0
  br i1 %284, label %285, label %302

285:                                              ; preds = %280
  %286 = load i32, ptr %8, align 4, !tbaa !5
  %287 = call ptr @__errno_location() #11
  store i32 %286, ptr %287, align 4, !tbaa !5
  %288 = load ptr, ptr @stderr, align 8, !tbaa !9
  %289 = load i32, ptr @test_count, align 4, !tbaa !5
  %290 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %291 = load i32, ptr %290, align 4, !tbaa !5
  %292 = call ptr @s2n_strerror(i32 noundef %291, ptr noundef @.str.4)
  %293 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %294 = load i32, ptr %293, align 4, !tbaa !5
  %295 = call ptr @s2n_strerror_debug(i32 noundef %294, ptr noundef @.str.4)
  %296 = call ptr @__errno_location() #11
  %297 = load i32, ptr %296, align 4, !tbaa !5
  %298 = call ptr @strerror(i32 noundef %297) #10
  %299 = call ptr @__errno_location() #11
  %300 = load i32, ptr %299, align 4, !tbaa !5
  %301 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %288, ptr noundef @.str.2, i32 noundef %289, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 37, ptr noundef %292, ptr noundef %295, ptr noundef %298, i32 noundef %300) #10
  br label %319

302:                                              ; preds = %280, %273
  %303 = load i32, ptr %8, align 4, !tbaa !5
  %304 = call ptr @__errno_location() #11
  store i32 %303, ptr %304, align 4, !tbaa !5
  %305 = load ptr, ptr @stderr, align 8, !tbaa !9
  %306 = load i32, ptr @test_count, align 4, !tbaa !5
  %307 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %308 = load i32, ptr %307, align 4, !tbaa !5
  %309 = call ptr @s2n_strerror(i32 noundef %308, ptr noundef @.str.4)
  %310 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %311 = load i32, ptr %310, align 4, !tbaa !5
  %312 = call ptr @s2n_strerror_debug(i32 noundef %311, ptr noundef @.str.4)
  %313 = call ptr @__errno_location() #11
  %314 = load i32, ptr %313, align 4, !tbaa !5
  %315 = call ptr @strerror(i32 noundef %314) #10
  %316 = call ptr @__errno_location() #11
  %317 = load i32, ptr %316, align 4, !tbaa !5
  %318 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %305, ptr noundef @.str.5, i32 noundef %306, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 37, ptr noundef %309, ptr noundef %312, ptr noundef %315, i32 noundef %317) #10
  br label %319

319:                                              ; preds = %302, %285
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #10
  br label %320

320:                                              ; preds = %319
  call void @exit(i32 noundef 1) #12
  unreachable

321:                                              ; No predecessors!
  br label %322

322:                                              ; preds = %321, %268
  br label %323

323:                                              ; preds = %322
  br label %324

324:                                              ; preds = %323
  call void @llvm.lifetime.start.p0(i64 24, ptr %9) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %9, ptr align 16 @__const.main.protocols, i64 24, i1 false)
  call void @llvm.lifetime.start.p0(i64 1, ptr %10) #10
  store i8 3, ptr %10, align 1, !tbaa !15
  br label %325

325:                                              ; preds = %324
  %326 = load i32, ptr @test_count, align 4, !tbaa !5
  %327 = add nsw i32 %326, 1
  store i32 %327, ptr @test_count, align 4, !tbaa !5
  %328 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_npn_extension, i32 0, i32 5), align 8, !tbaa !16
  %329 = call zeroext i1 %328(ptr noundef null)
  br i1 %329, label %330, label %383

330:                                              ; preds = %325
  br label %331

331:                                              ; preds = %330
  br label %332

332:                                              ; preds = %331
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #10
  %333 = call ptr @__errno_location() #11
  %334 = load i32, ptr %333, align 4, !tbaa !5
  store i32 %334, ptr %11, align 4, !tbaa !5
  %335 = load ptr, ptr @stderr, align 8, !tbaa !9
  %336 = call i32 @s2n_print_stacktrace(ptr noundef %335)
  %337 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %338 = trunc i8 %337 to i1
  br i1 %338, label %339, label %361

339:                                              ; preds = %332
  %340 = load ptr, ptr @stderr, align 8, !tbaa !9
  %341 = call i32 @fileno(ptr noundef %340) #10
  %342 = call i32 @isatty(i32 noundef %341) #10
  %343 = icmp ne i32 %342, 0
  br i1 %343, label %344, label %361

344:                                              ; preds = %339
  %345 = load i32, ptr %11, align 4, !tbaa !5
  %346 = call ptr @__errno_location() #11
  store i32 %345, ptr %346, align 4, !tbaa !5
  %347 = load ptr, ptr @stderr, align 8, !tbaa !9
  %348 = load i32, ptr @test_count, align 4, !tbaa !5
  %349 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %350 = load i32, ptr %349, align 4, !tbaa !5
  %351 = call ptr @s2n_strerror(i32 noundef %350, ptr noundef @.str.4)
  %352 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %353 = load i32, ptr %352, align 4, !tbaa !5
  %354 = call ptr @s2n_strerror_debug(i32 noundef %353, ptr noundef @.str.4)
  %355 = call ptr @__errno_location() #11
  %356 = load i32, ptr %355, align 4, !tbaa !5
  %357 = call ptr @strerror(i32 noundef %356) #10
  %358 = call ptr @__errno_location() #11
  %359 = load i32, ptr %358, align 4, !tbaa !5
  %360 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %347, ptr noundef @.str.2, i32 noundef %348, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 45, ptr noundef %351, ptr noundef %354, ptr noundef %357, i32 noundef %359) #10
  br label %378

361:                                              ; preds = %339, %332
  %362 = load i32, ptr %11, align 4, !tbaa !5
  %363 = call ptr @__errno_location() #11
  store i32 %362, ptr %363, align 4, !tbaa !5
  %364 = load ptr, ptr @stderr, align 8, !tbaa !9
  %365 = load i32, ptr @test_count, align 4, !tbaa !5
  %366 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %367 = load i32, ptr %366, align 4, !tbaa !5
  %368 = call ptr @s2n_strerror(i32 noundef %367, ptr noundef @.str.4)
  %369 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %370 = load i32, ptr %369, align 4, !tbaa !5
  %371 = call ptr @s2n_strerror_debug(i32 noundef %370, ptr noundef @.str.4)
  %372 = call ptr @__errno_location() #11
  %373 = load i32, ptr %372, align 4, !tbaa !5
  %374 = call ptr @strerror(i32 noundef %373) #10
  %375 = call ptr @__errno_location() #11
  %376 = load i32, ptr %375, align 4, !tbaa !5
  %377 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %364, ptr noundef @.str.5, i32 noundef %365, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 45, ptr noundef %368, ptr noundef %371, ptr noundef %374, i32 noundef %376) #10
  br label %378

378:                                              ; preds = %361, %344
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #10
  br label %379

379:                                              ; preds = %378
  br label %380

380:                                              ; preds = %379
  call void @exit(i32 noundef 1) #12
  unreachable

381:                                              ; No predecessors!
  br label %382

382:                                              ; preds = %381
  br label %383

383:                                              ; preds = %382, %325
  br label %384

384:                                              ; preds = %383
  br label %385

385:                                              ; preds = %384
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #10
  %386 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %386, ptr %12, align 8, !tbaa !9
  br label %387

387:                                              ; preds = %385
  %388 = load i32, ptr @test_count, align 4, !tbaa !5
  %389 = add nsw i32 %388, 1
  store i32 %389, ptr @test_count, align 4, !tbaa !5
  %390 = load ptr, ptr %12, align 8, !tbaa !9
  %391 = icmp eq ptr %390, null
  br i1 %391, label %392, label %445

392:                                              ; preds = %387
  br label %393

393:                                              ; preds = %392
  br label %394

394:                                              ; preds = %393
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #10
  %395 = call ptr @__errno_location() #11
  %396 = load i32, ptr %395, align 4, !tbaa !5
  store i32 %396, ptr %13, align 4, !tbaa !5
  %397 = load ptr, ptr @stderr, align 8, !tbaa !9
  %398 = call i32 @s2n_print_stacktrace(ptr noundef %397)
  %399 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %400 = trunc i8 %399 to i1
  br i1 %400, label %401, label %423

401:                                              ; preds = %394
  %402 = load ptr, ptr @stderr, align 8, !tbaa !9
  %403 = call i32 @fileno(ptr noundef %402) #10
  %404 = call i32 @isatty(i32 noundef %403) #10
  %405 = icmp ne i32 %404, 0
  br i1 %405, label %406, label %423

406:                                              ; preds = %401
  %407 = load i32, ptr %13, align 4, !tbaa !5
  %408 = call ptr @__errno_location() #11
  store i32 %407, ptr %408, align 4, !tbaa !5
  %409 = load ptr, ptr @stderr, align 8, !tbaa !9
  %410 = load i32, ptr @test_count, align 4, !tbaa !5
  %411 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %412 = load i32, ptr %411, align 4, !tbaa !5
  %413 = call ptr @s2n_strerror(i32 noundef %412, ptr noundef @.str.4)
  %414 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %415 = load i32, ptr %414, align 4, !tbaa !5
  %416 = call ptr @s2n_strerror_debug(i32 noundef %415, ptr noundef @.str.4)
  %417 = call ptr @__errno_location() #11
  %418 = load i32, ptr %417, align 4, !tbaa !5
  %419 = call ptr @strerror(i32 noundef %418) #10
  %420 = call ptr @__errno_location() #11
  %421 = load i32, ptr %420, align 4, !tbaa !5
  %422 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %409, ptr noundef @.str.2, i32 noundef %410, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 49, ptr noundef %413, ptr noundef %416, ptr noundef %419, i32 noundef %421) #10
  br label %440

423:                                              ; preds = %401, %394
  %424 = load i32, ptr %13, align 4, !tbaa !5
  %425 = call ptr @__errno_location() #11
  store i32 %424, ptr %425, align 4, !tbaa !5
  %426 = load ptr, ptr @stderr, align 8, !tbaa !9
  %427 = load i32, ptr @test_count, align 4, !tbaa !5
  %428 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %429 = load i32, ptr %428, align 4, !tbaa !5
  %430 = call ptr @s2n_strerror(i32 noundef %429, ptr noundef @.str.4)
  %431 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %432 = load i32, ptr %431, align 4, !tbaa !5
  %433 = call ptr @s2n_strerror_debug(i32 noundef %432, ptr noundef @.str.4)
  %434 = call ptr @__errno_location() #11
  %435 = load i32, ptr %434, align 4, !tbaa !5
  %436 = call ptr @strerror(i32 noundef %435) #10
  %437 = call ptr @__errno_location() #11
  %438 = load i32, ptr %437, align 4, !tbaa !5
  %439 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %426, ptr noundef @.str.5, i32 noundef %427, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 49, ptr noundef %430, ptr noundef %433, ptr noundef %436, i32 noundef %438) #10
  br label %440

440:                                              ; preds = %423, %406
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #10
  br label %441

441:                                              ; preds = %440
  br label %442

442:                                              ; preds = %441
  call void @exit(i32 noundef 1) #12
  unreachable

443:                                              ; No predecessors!
  br label %444

444:                                              ; preds = %443
  br label %445

445:                                              ; preds = %444, %387
  br label %446

446:                                              ; preds = %445
  br label %447

447:                                              ; preds = %446
  br label %448

448:                                              ; preds = %447
  %449 = load i32, ptr @test_count, align 4, !tbaa !5
  %450 = add nsw i32 %449, 1
  store i32 %450, ptr @test_count, align 4, !tbaa !5
  %451 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_npn_extension, i32 0, i32 5), align 8, !tbaa !16
  %452 = load ptr, ptr %12, align 8, !tbaa !9
  %453 = call zeroext i1 %451(ptr noundef %452)
  br i1 %453, label %454, label %507

454:                                              ; preds = %448
  br label %455

455:                                              ; preds = %454
  br label %456

456:                                              ; preds = %455
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #10
  %457 = call ptr @__errno_location() #11
  %458 = load i32, ptr %457, align 4, !tbaa !5
  store i32 %458, ptr %14, align 4, !tbaa !5
  %459 = load ptr, ptr @stderr, align 8, !tbaa !9
  %460 = call i32 @s2n_print_stacktrace(ptr noundef %459)
  %461 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %462 = trunc i8 %461 to i1
  br i1 %462, label %463, label %485

463:                                              ; preds = %456
  %464 = load ptr, ptr @stderr, align 8, !tbaa !9
  %465 = call i32 @fileno(ptr noundef %464) #10
  %466 = call i32 @isatty(i32 noundef %465) #10
  %467 = icmp ne i32 %466, 0
  br i1 %467, label %468, label %485

468:                                              ; preds = %463
  %469 = load i32, ptr %14, align 4, !tbaa !5
  %470 = call ptr @__errno_location() #11
  store i32 %469, ptr %470, align 4, !tbaa !5
  %471 = load ptr, ptr @stderr, align 8, !tbaa !9
  %472 = load i32, ptr @test_count, align 4, !tbaa !5
  %473 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %474 = load i32, ptr %473, align 4, !tbaa !5
  %475 = call ptr @s2n_strerror(i32 noundef %474, ptr noundef @.str.4)
  %476 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %477 = load i32, ptr %476, align 4, !tbaa !5
  %478 = call ptr @s2n_strerror_debug(i32 noundef %477, ptr noundef @.str.4)
  %479 = call ptr @__errno_location() #11
  %480 = load i32, ptr %479, align 4, !tbaa !5
  %481 = call ptr @strerror(i32 noundef %480) #10
  %482 = call ptr @__errno_location() #11
  %483 = load i32, ptr %482, align 4, !tbaa !5
  %484 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %471, ptr noundef @.str.2, i32 noundef %472, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 50, ptr noundef %475, ptr noundef %478, ptr noundef %481, i32 noundef %483) #10
  br label %502

485:                                              ; preds = %463, %456
  %486 = load i32, ptr %14, align 4, !tbaa !5
  %487 = call ptr @__errno_location() #11
  store i32 %486, ptr %487, align 4, !tbaa !5
  %488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %489 = load i32, ptr @test_count, align 4, !tbaa !5
  %490 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %491 = load i32, ptr %490, align 4, !tbaa !5
  %492 = call ptr @s2n_strerror(i32 noundef %491, ptr noundef @.str.4)
  %493 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %494 = load i32, ptr %493, align 4, !tbaa !5
  %495 = call ptr @s2n_strerror_debug(i32 noundef %494, ptr noundef @.str.4)
  %496 = call ptr @__errno_location() #11
  %497 = load i32, ptr %496, align 4, !tbaa !5
  %498 = call ptr @strerror(i32 noundef %497) #10
  %499 = call ptr @__errno_location() #11
  %500 = load i32, ptr %499, align 4, !tbaa !5
  %501 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %488, ptr noundef @.str.5, i32 noundef %489, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 50, ptr noundef %492, ptr noundef %495, ptr noundef %498, i32 noundef %500) #10
  br label %502

502:                                              ; preds = %485, %468
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #10
  br label %503

503:                                              ; preds = %502
  br label %504

504:                                              ; preds = %503
  call void @exit(i32 noundef 1) #12
  unreachable

505:                                              ; No predecessors!
  br label %506

506:                                              ; preds = %505
  br label %507

507:                                              ; preds = %506, %448
  br label %508

508:                                              ; preds = %507
  br label %509

509:                                              ; preds = %508
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #10
  %510 = call ptr @s2n_config_new()
  store ptr %510, ptr %15, align 8, !tbaa !9
  br label %511

511:                                              ; preds = %509
  %512 = load i32, ptr @test_count, align 4, !tbaa !5
  %513 = add nsw i32 %512, 1
  store i32 %513, ptr @test_count, align 4, !tbaa !5
  %514 = load ptr, ptr %15, align 8, !tbaa !9
  %515 = icmp eq ptr %514, null
  br i1 %515, label %516, label %569

516:                                              ; preds = %511
  br label %517

517:                                              ; preds = %516
  br label %518

518:                                              ; preds = %517
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #10
  %519 = call ptr @__errno_location() #11
  %520 = load i32, ptr %519, align 4, !tbaa !5
  store i32 %520, ptr %16, align 4, !tbaa !5
  %521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %522 = call i32 @s2n_print_stacktrace(ptr noundef %521)
  %523 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %524 = trunc i8 %523 to i1
  br i1 %524, label %525, label %547

525:                                              ; preds = %518
  %526 = load ptr, ptr @stderr, align 8, !tbaa !9
  %527 = call i32 @fileno(ptr noundef %526) #10
  %528 = call i32 @isatty(i32 noundef %527) #10
  %529 = icmp ne i32 %528, 0
  br i1 %529, label %530, label %547

530:                                              ; preds = %525
  %531 = load i32, ptr %16, align 4, !tbaa !5
  %532 = call ptr @__errno_location() #11
  store i32 %531, ptr %532, align 4, !tbaa !5
  %533 = load ptr, ptr @stderr, align 8, !tbaa !9
  %534 = load i32, ptr @test_count, align 4, !tbaa !5
  %535 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %536 = load i32, ptr %535, align 4, !tbaa !5
  %537 = call ptr @s2n_strerror(i32 noundef %536, ptr noundef @.str.4)
  %538 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %539 = load i32, ptr %538, align 4, !tbaa !5
  %540 = call ptr @s2n_strerror_debug(i32 noundef %539, ptr noundef @.str.4)
  %541 = call ptr @__errno_location() #11
  %542 = load i32, ptr %541, align 4, !tbaa !5
  %543 = call ptr @strerror(i32 noundef %542) #10
  %544 = call ptr @__errno_location() #11
  %545 = load i32, ptr %544, align 4, !tbaa !5
  %546 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %533, ptr noundef @.str.2, i32 noundef %534, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 54, ptr noundef %537, ptr noundef %540, ptr noundef %543, i32 noundef %545) #10
  br label %564

547:                                              ; preds = %525, %518
  %548 = load i32, ptr %16, align 4, !tbaa !5
  %549 = call ptr @__errno_location() #11
  store i32 %548, ptr %549, align 4, !tbaa !5
  %550 = load ptr, ptr @stderr, align 8, !tbaa !9
  %551 = load i32, ptr @test_count, align 4, !tbaa !5
  %552 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %553 = load i32, ptr %552, align 4, !tbaa !5
  %554 = call ptr @s2n_strerror(i32 noundef %553, ptr noundef @.str.4)
  %555 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %556 = load i32, ptr %555, align 4, !tbaa !5
  %557 = call ptr @s2n_strerror_debug(i32 noundef %556, ptr noundef @.str.4)
  %558 = call ptr @__errno_location() #11
  %559 = load i32, ptr %558, align 4, !tbaa !5
  %560 = call ptr @strerror(i32 noundef %559) #10
  %561 = call ptr @__errno_location() #11
  %562 = load i32, ptr %561, align 4, !tbaa !5
  %563 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %550, ptr noundef @.str.5, i32 noundef %551, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 54, ptr noundef %554, ptr noundef %557, ptr noundef %560, i32 noundef %562) #10
  br label %564

564:                                              ; preds = %547, %530
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #10
  br label %565

565:                                              ; preds = %564
  br label %566

566:                                              ; preds = %565
  call void @exit(i32 noundef 1) #12
  unreachable

567:                                              ; No predecessors!
  br label %568

568:                                              ; preds = %567
  br label %569

569:                                              ; preds = %568, %511
  br label %570

570:                                              ; preds = %569
  br label %571

571:                                              ; preds = %570
  br label %572

572:                                              ; preds = %571
  %573 = load i32, ptr @test_count, align 4, !tbaa !5
  %574 = add nsw i32 %573, 1
  store i32 %574, ptr @test_count, align 4, !tbaa !5
  %575 = load ptr, ptr %12, align 8, !tbaa !9
  %576 = load ptr, ptr %15, align 8, !tbaa !9
  %577 = call i32 @s2n_connection_set_config(ptr noundef %575, ptr noundef %576)
  %578 = icmp eq i32 %577, -1
  br i1 %578, label %579, label %632

579:                                              ; preds = %572
  br label %580

580:                                              ; preds = %579
  br label %581

581:                                              ; preds = %580
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #10
  %582 = call ptr @__errno_location() #11
  %583 = load i32, ptr %582, align 4, !tbaa !5
  store i32 %583, ptr %17, align 4, !tbaa !5
  %584 = load ptr, ptr @stderr, align 8, !tbaa !9
  %585 = call i32 @s2n_print_stacktrace(ptr noundef %584)
  %586 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %587 = trunc i8 %586 to i1
  br i1 %587, label %588, label %610

588:                                              ; preds = %581
  %589 = load ptr, ptr @stderr, align 8, !tbaa !9
  %590 = call i32 @fileno(ptr noundef %589) #10
  %591 = call i32 @isatty(i32 noundef %590) #10
  %592 = icmp ne i32 %591, 0
  br i1 %592, label %593, label %610

593:                                              ; preds = %588
  %594 = load i32, ptr %17, align 4, !tbaa !5
  %595 = call ptr @__errno_location() #11
  store i32 %594, ptr %595, align 4, !tbaa !5
  %596 = load ptr, ptr @stderr, align 8, !tbaa !9
  %597 = load i32, ptr @test_count, align 4, !tbaa !5
  %598 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %599 = load i32, ptr %598, align 4, !tbaa !5
  %600 = call ptr @s2n_strerror(i32 noundef %599, ptr noundef @.str.4)
  %601 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %602 = load i32, ptr %601, align 4, !tbaa !5
  %603 = call ptr @s2n_strerror_debug(i32 noundef %602, ptr noundef @.str.4)
  %604 = call ptr @__errno_location() #11
  %605 = load i32, ptr %604, align 4, !tbaa !5
  %606 = call ptr @strerror(i32 noundef %605) #10
  %607 = call ptr @__errno_location() #11
  %608 = load i32, ptr %607, align 4, !tbaa !5
  %609 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %596, ptr noundef @.str.2, i32 noundef %597, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 55, ptr noundef %600, ptr noundef %603, ptr noundef %606, i32 noundef %608) #10
  br label %627

610:                                              ; preds = %588, %581
  %611 = load i32, ptr %17, align 4, !tbaa !5
  %612 = call ptr @__errno_location() #11
  store i32 %611, ptr %612, align 4, !tbaa !5
  %613 = load ptr, ptr @stderr, align 8, !tbaa !9
  %614 = load i32, ptr @test_count, align 4, !tbaa !5
  %615 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %616 = load i32, ptr %615, align 4, !tbaa !5
  %617 = call ptr @s2n_strerror(i32 noundef %616, ptr noundef @.str.4)
  %618 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %619 = load i32, ptr %618, align 4, !tbaa !5
  %620 = call ptr @s2n_strerror_debug(i32 noundef %619, ptr noundef @.str.4)
  %621 = call ptr @__errno_location() #11
  %622 = load i32, ptr %621, align 4, !tbaa !5
  %623 = call ptr @strerror(i32 noundef %622) #10
  %624 = call ptr @__errno_location() #11
  %625 = load i32, ptr %624, align 4, !tbaa !5
  %626 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %613, ptr noundef @.str.5, i32 noundef %614, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 55, ptr noundef %617, ptr noundef %620, ptr noundef %623, i32 noundef %625) #10
  br label %627

627:                                              ; preds = %610, %593
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #10
  br label %628

628:                                              ; preds = %627
  br label %629

629:                                              ; preds = %628
  call void @exit(i32 noundef 1) #12
  unreachable

630:                                              ; No predecessors!
  br label %631

631:                                              ; preds = %630
  br label %632

632:                                              ; preds = %631, %572
  br label %633

633:                                              ; preds = %632
  br label %634

634:                                              ; preds = %633
  br label %635

635:                                              ; preds = %634
  %636 = load i32, ptr @test_count, align 4, !tbaa !5
  %637 = add nsw i32 %636, 1
  store i32 %637, ptr @test_count, align 4, !tbaa !5
  %638 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_npn_extension, i32 0, i32 5), align 8, !tbaa !16
  %639 = load ptr, ptr %12, align 8, !tbaa !9
  %640 = call zeroext i1 %638(ptr noundef %639)
  br i1 %640, label %641, label %694

641:                                              ; preds = %635
  br label %642

642:                                              ; preds = %641
  br label %643

643:                                              ; preds = %642
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #10
  %644 = call ptr @__errno_location() #11
  %645 = load i32, ptr %644, align 4, !tbaa !5
  store i32 %645, ptr %18, align 4, !tbaa !5
  %646 = load ptr, ptr @stderr, align 8, !tbaa !9
  %647 = call i32 @s2n_print_stacktrace(ptr noundef %646)
  %648 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %649 = trunc i8 %648 to i1
  br i1 %649, label %650, label %672

650:                                              ; preds = %643
  %651 = load ptr, ptr @stderr, align 8, !tbaa !9
  %652 = call i32 @fileno(ptr noundef %651) #10
  %653 = call i32 @isatty(i32 noundef %652) #10
  %654 = icmp ne i32 %653, 0
  br i1 %654, label %655, label %672

655:                                              ; preds = %650
  %656 = load i32, ptr %18, align 4, !tbaa !5
  %657 = call ptr @__errno_location() #11
  store i32 %656, ptr %657, align 4, !tbaa !5
  %658 = load ptr, ptr @stderr, align 8, !tbaa !9
  %659 = load i32, ptr @test_count, align 4, !tbaa !5
  %660 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %661 = load i32, ptr %660, align 4, !tbaa !5
  %662 = call ptr @s2n_strerror(i32 noundef %661, ptr noundef @.str.4)
  %663 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %664 = load i32, ptr %663, align 4, !tbaa !5
  %665 = call ptr @s2n_strerror_debug(i32 noundef %664, ptr noundef @.str.4)
  %666 = call ptr @__errno_location() #11
  %667 = load i32, ptr %666, align 4, !tbaa !5
  %668 = call ptr @strerror(i32 noundef %667) #10
  %669 = call ptr @__errno_location() #11
  %670 = load i32, ptr %669, align 4, !tbaa !5
  %671 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %658, ptr noundef @.str.2, i32 noundef %659, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 56, ptr noundef %662, ptr noundef %665, ptr noundef %668, i32 noundef %670) #10
  br label %689

672:                                              ; preds = %650, %643
  %673 = load i32, ptr %18, align 4, !tbaa !5
  %674 = call ptr @__errno_location() #11
  store i32 %673, ptr %674, align 4, !tbaa !5
  %675 = load ptr, ptr @stderr, align 8, !tbaa !9
  %676 = load i32, ptr @test_count, align 4, !tbaa !5
  %677 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %678 = load i32, ptr %677, align 4, !tbaa !5
  %679 = call ptr @s2n_strerror(i32 noundef %678, ptr noundef @.str.4)
  %680 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %681 = load i32, ptr %680, align 4, !tbaa !5
  %682 = call ptr @s2n_strerror_debug(i32 noundef %681, ptr noundef @.str.4)
  %683 = call ptr @__errno_location() #11
  %684 = load i32, ptr %683, align 4, !tbaa !5
  %685 = call ptr @strerror(i32 noundef %684) #10
  %686 = call ptr @__errno_location() #11
  %687 = load i32, ptr %686, align 4, !tbaa !5
  %688 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %675, ptr noundef @.str.5, i32 noundef %676, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 56, ptr noundef %679, ptr noundef %682, ptr noundef %685, i32 noundef %687) #10
  br label %689

689:                                              ; preds = %672, %655
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #10
  br label %690

690:                                              ; preds = %689
  br label %691

691:                                              ; preds = %690
  call void @exit(i32 noundef 1) #12
  unreachable

692:                                              ; No predecessors!
  br label %693

693:                                              ; preds = %692
  br label %694

694:                                              ; preds = %693, %635
  br label %695

695:                                              ; preds = %694
  br label %696

696:                                              ; preds = %695
  br label %697

697:                                              ; preds = %696
  %698 = load i32, ptr @test_count, align 4, !tbaa !5
  %699 = add nsw i32 %698, 1
  store i32 %699, ptr @test_count, align 4, !tbaa !5
  %700 = load ptr, ptr %15, align 8, !tbaa !9
  %701 = getelementptr inbounds [3 x ptr], ptr %9, i64 0, i64 0
  %702 = call i32 @s2n_config_set_protocol_preferences(ptr noundef %700, ptr noundef %701, i32 noundef 3)
  %703 = icmp eq i32 %702, -1
  br i1 %703, label %704, label %757

704:                                              ; preds = %697
  br label %705

705:                                              ; preds = %704
  br label %706

706:                                              ; preds = %705
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #10
  %707 = call ptr @__errno_location() #11
  %708 = load i32, ptr %707, align 4, !tbaa !5
  store i32 %708, ptr %19, align 4, !tbaa !5
  %709 = load ptr, ptr @stderr, align 8, !tbaa !9
  %710 = call i32 @s2n_print_stacktrace(ptr noundef %709)
  %711 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %712 = trunc i8 %711 to i1
  br i1 %712, label %713, label %735

713:                                              ; preds = %706
  %714 = load ptr, ptr @stderr, align 8, !tbaa !9
  %715 = call i32 @fileno(ptr noundef %714) #10
  %716 = call i32 @isatty(i32 noundef %715) #10
  %717 = icmp ne i32 %716, 0
  br i1 %717, label %718, label %735

718:                                              ; preds = %713
  %719 = load i32, ptr %19, align 4, !tbaa !5
  %720 = call ptr @__errno_location() #11
  store i32 %719, ptr %720, align 4, !tbaa !5
  %721 = load ptr, ptr @stderr, align 8, !tbaa !9
  %722 = load i32, ptr @test_count, align 4, !tbaa !5
  %723 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %724 = load i32, ptr %723, align 4, !tbaa !5
  %725 = call ptr @s2n_strerror(i32 noundef %724, ptr noundef @.str.4)
  %726 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %727 = load i32, ptr %726, align 4, !tbaa !5
  %728 = call ptr @s2n_strerror_debug(i32 noundef %727, ptr noundef @.str.4)
  %729 = call ptr @__errno_location() #11
  %730 = load i32, ptr %729, align 4, !tbaa !5
  %731 = call ptr @strerror(i32 noundef %730) #10
  %732 = call ptr @__errno_location() #11
  %733 = load i32, ptr %732, align 4, !tbaa !5
  %734 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %721, ptr noundef @.str.2, i32 noundef %722, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 59, ptr noundef %725, ptr noundef %728, ptr noundef %731, i32 noundef %733) #10
  br label %752

735:                                              ; preds = %713, %706
  %736 = load i32, ptr %19, align 4, !tbaa !5
  %737 = call ptr @__errno_location() #11
  store i32 %736, ptr %737, align 4, !tbaa !5
  %738 = load ptr, ptr @stderr, align 8, !tbaa !9
  %739 = load i32, ptr @test_count, align 4, !tbaa !5
  %740 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %741 = load i32, ptr %740, align 4, !tbaa !5
  %742 = call ptr @s2n_strerror(i32 noundef %741, ptr noundef @.str.4)
  %743 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %744 = load i32, ptr %743, align 4, !tbaa !5
  %745 = call ptr @s2n_strerror_debug(i32 noundef %744, ptr noundef @.str.4)
  %746 = call ptr @__errno_location() #11
  %747 = load i32, ptr %746, align 4, !tbaa !5
  %748 = call ptr @strerror(i32 noundef %747) #10
  %749 = call ptr @__errno_location() #11
  %750 = load i32, ptr %749, align 4, !tbaa !5
  %751 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %738, ptr noundef @.str.5, i32 noundef %739, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 59, ptr noundef %742, ptr noundef %745, ptr noundef %748, i32 noundef %750) #10
  br label %752

752:                                              ; preds = %735, %718
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #10
  br label %753

753:                                              ; preds = %752
  br label %754

754:                                              ; preds = %753
  call void @exit(i32 noundef 1) #12
  unreachable

755:                                              ; No predecessors!
  br label %756

756:                                              ; preds = %755
  br label %757

757:                                              ; preds = %756, %697
  br label %758

758:                                              ; preds = %757
  br label %759

759:                                              ; preds = %758
  br label %760

760:                                              ; preds = %759
  %761 = load i32, ptr @test_count, align 4, !tbaa !5
  %762 = add nsw i32 %761, 1
  store i32 %762, ptr @test_count, align 4, !tbaa !5
  %763 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_npn_extension, i32 0, i32 5), align 8, !tbaa !16
  %764 = load ptr, ptr %12, align 8, !tbaa !9
  %765 = call zeroext i1 %763(ptr noundef %764)
  br i1 %765, label %766, label %819

766:                                              ; preds = %760
  br label %767

767:                                              ; preds = %766
  br label %768

768:                                              ; preds = %767
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #10
  %769 = call ptr @__errno_location() #11
  %770 = load i32, ptr %769, align 4, !tbaa !5
  store i32 %770, ptr %20, align 4, !tbaa !5
  %771 = load ptr, ptr @stderr, align 8, !tbaa !9
  %772 = call i32 @s2n_print_stacktrace(ptr noundef %771)
  %773 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %774 = trunc i8 %773 to i1
  br i1 %774, label %775, label %797

775:                                              ; preds = %768
  %776 = load ptr, ptr @stderr, align 8, !tbaa !9
  %777 = call i32 @fileno(ptr noundef %776) #10
  %778 = call i32 @isatty(i32 noundef %777) #10
  %779 = icmp ne i32 %778, 0
  br i1 %779, label %780, label %797

780:                                              ; preds = %775
  %781 = load i32, ptr %20, align 4, !tbaa !5
  %782 = call ptr @__errno_location() #11
  store i32 %781, ptr %782, align 4, !tbaa !5
  %783 = load ptr, ptr @stderr, align 8, !tbaa !9
  %784 = load i32, ptr @test_count, align 4, !tbaa !5
  %785 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %786 = load i32, ptr %785, align 4, !tbaa !5
  %787 = call ptr @s2n_strerror(i32 noundef %786, ptr noundef @.str.4)
  %788 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %789 = load i32, ptr %788, align 4, !tbaa !5
  %790 = call ptr @s2n_strerror_debug(i32 noundef %789, ptr noundef @.str.4)
  %791 = call ptr @__errno_location() #11
  %792 = load i32, ptr %791, align 4, !tbaa !5
  %793 = call ptr @strerror(i32 noundef %792) #10
  %794 = call ptr @__errno_location() #11
  %795 = load i32, ptr %794, align 4, !tbaa !5
  %796 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %783, ptr noundef @.str.2, i32 noundef %784, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 60, ptr noundef %787, ptr noundef %790, ptr noundef %793, i32 noundef %795) #10
  br label %814

797:                                              ; preds = %775, %768
  %798 = load i32, ptr %20, align 4, !tbaa !5
  %799 = call ptr @__errno_location() #11
  store i32 %798, ptr %799, align 4, !tbaa !5
  %800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %801 = load i32, ptr @test_count, align 4, !tbaa !5
  %802 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %803 = load i32, ptr %802, align 4, !tbaa !5
  %804 = call ptr @s2n_strerror(i32 noundef %803, ptr noundef @.str.4)
  %805 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %806 = load i32, ptr %805, align 4, !tbaa !5
  %807 = call ptr @s2n_strerror_debug(i32 noundef %806, ptr noundef @.str.4)
  %808 = call ptr @__errno_location() #11
  %809 = load i32, ptr %808, align 4, !tbaa !5
  %810 = call ptr @strerror(i32 noundef %809) #10
  %811 = call ptr @__errno_location() #11
  %812 = load i32, ptr %811, align 4, !tbaa !5
  %813 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %800, ptr noundef @.str.5, i32 noundef %801, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 60, ptr noundef %804, ptr noundef %807, ptr noundef %810, i32 noundef %812) #10
  br label %814

814:                                              ; preds = %797, %780
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #10
  br label %815

815:                                              ; preds = %814
  br label %816

816:                                              ; preds = %815
  call void @exit(i32 noundef 1) #12
  unreachable

817:                                              ; No predecessors!
  br label %818

818:                                              ; preds = %817
  br label %819

819:                                              ; preds = %818, %760
  br label %820

820:                                              ; preds = %819
  br label %821

821:                                              ; preds = %820
  br label %822

822:                                              ; preds = %821
  %823 = load i32, ptr @test_count, align 4, !tbaa !5
  %824 = add nsw i32 %823, 1
  store i32 %824, ptr @test_count, align 4, !tbaa !5
  %825 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_alpn_extension, i32 0, i32 5), align 8, !tbaa !16
  %826 = load ptr, ptr %12, align 8, !tbaa !9
  %827 = call zeroext i1 %825(ptr noundef %826)
  br i1 %827, label %881, label %828

828:                                              ; preds = %822
  br label %829

829:                                              ; preds = %828
  br label %830

830:                                              ; preds = %829
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #10
  %831 = call ptr @__errno_location() #11
  %832 = load i32, ptr %831, align 4, !tbaa !5
  store i32 %832, ptr %21, align 4, !tbaa !5
  %833 = load ptr, ptr @stderr, align 8, !tbaa !9
  %834 = call i32 @s2n_print_stacktrace(ptr noundef %833)
  %835 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %836 = trunc i8 %835 to i1
  br i1 %836, label %837, label %859

837:                                              ; preds = %830
  %838 = load ptr, ptr @stderr, align 8, !tbaa !9
  %839 = call i32 @fileno(ptr noundef %838) #10
  %840 = call i32 @isatty(i32 noundef %839) #10
  %841 = icmp ne i32 %840, 0
  br i1 %841, label %842, label %859

842:                                              ; preds = %837
  %843 = load i32, ptr %21, align 4, !tbaa !5
  %844 = call ptr @__errno_location() #11
  store i32 %843, ptr %844, align 4, !tbaa !5
  %845 = load ptr, ptr @stderr, align 8, !tbaa !9
  %846 = load i32, ptr @test_count, align 4, !tbaa !5
  %847 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %848 = load i32, ptr %847, align 4, !tbaa !5
  %849 = call ptr @s2n_strerror(i32 noundef %848, ptr noundef @.str.4)
  %850 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %851 = load i32, ptr %850, align 4, !tbaa !5
  %852 = call ptr @s2n_strerror_debug(i32 noundef %851, ptr noundef @.str.4)
  %853 = call ptr @__errno_location() #11
  %854 = load i32, ptr %853, align 4, !tbaa !5
  %855 = call ptr @strerror(i32 noundef %854) #10
  %856 = call ptr @__errno_location() #11
  %857 = load i32, ptr %856, align 4, !tbaa !5
  %858 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %845, ptr noundef @.str.2, i32 noundef %846, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 61, ptr noundef %849, ptr noundef %852, ptr noundef %855, i32 noundef %857) #10
  br label %876

859:                                              ; preds = %837, %830
  %860 = load i32, ptr %21, align 4, !tbaa !5
  %861 = call ptr @__errno_location() #11
  store i32 %860, ptr %861, align 4, !tbaa !5
  %862 = load ptr, ptr @stderr, align 8, !tbaa !9
  %863 = load i32, ptr @test_count, align 4, !tbaa !5
  %864 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %865 = load i32, ptr %864, align 4, !tbaa !5
  %866 = call ptr @s2n_strerror(i32 noundef %865, ptr noundef @.str.4)
  %867 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %868 = load i32, ptr %867, align 4, !tbaa !5
  %869 = call ptr @s2n_strerror_debug(i32 noundef %868, ptr noundef @.str.4)
  %870 = call ptr @__errno_location() #11
  %871 = load i32, ptr %870, align 4, !tbaa !5
  %872 = call ptr @strerror(i32 noundef %871) #10
  %873 = call ptr @__errno_location() #11
  %874 = load i32, ptr %873, align 4, !tbaa !5
  %875 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %862, ptr noundef @.str.5, i32 noundef %863, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 61, ptr noundef %866, ptr noundef %869, ptr noundef %872, i32 noundef %874) #10
  br label %876

876:                                              ; preds = %859, %842
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #10
  br label %877

877:                                              ; preds = %876
  br label %878

878:                                              ; preds = %877
  call void @exit(i32 noundef 1) #12
  unreachable

879:                                              ; No predecessors!
  br label %880

880:                                              ; preds = %879
  br label %881

881:                                              ; preds = %880, %822
  br label %882

882:                                              ; preds = %881
  br label %883

883:                                              ; preds = %882
  %884 = load ptr, ptr %12, align 8, !tbaa !9
  %885 = getelementptr inbounds %struct.s2n_connection, ptr %884, i32 0, i32 1
  %886 = load ptr, ptr %885, align 8, !tbaa !19
  %887 = load i32, ptr %886, align 8
  %888 = and i32 %887, -8193
  %889 = or i32 %888, 8192
  store i32 %889, ptr %886, align 8
  br label %890

890:                                              ; preds = %883
  %891 = load i32, ptr @test_count, align 4, !tbaa !5
  %892 = add nsw i32 %891, 1
  store i32 %892, ptr @test_count, align 4, !tbaa !5
  %893 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_npn_extension, i32 0, i32 5), align 8, !tbaa !16
  %894 = load ptr, ptr %12, align 8, !tbaa !9
  %895 = call zeroext i1 %893(ptr noundef %894)
  br i1 %895, label %949, label %896

896:                                              ; preds = %890
  br label %897

897:                                              ; preds = %896
  br label %898

898:                                              ; preds = %897
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #10
  %899 = call ptr @__errno_location() #11
  %900 = load i32, ptr %899, align 4, !tbaa !5
  store i32 %900, ptr %22, align 4, !tbaa !5
  %901 = load ptr, ptr @stderr, align 8, !tbaa !9
  %902 = call i32 @s2n_print_stacktrace(ptr noundef %901)
  %903 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %904 = trunc i8 %903 to i1
  br i1 %904, label %905, label %927

905:                                              ; preds = %898
  %906 = load ptr, ptr @stderr, align 8, !tbaa !9
  %907 = call i32 @fileno(ptr noundef %906) #10
  %908 = call i32 @isatty(i32 noundef %907) #10
  %909 = icmp ne i32 %908, 0
  br i1 %909, label %910, label %927

910:                                              ; preds = %905
  %911 = load i32, ptr %22, align 4, !tbaa !5
  %912 = call ptr @__errno_location() #11
  store i32 %911, ptr %912, align 4, !tbaa !5
  %913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %914 = load i32, ptr @test_count, align 4, !tbaa !5
  %915 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %916 = load i32, ptr %915, align 4, !tbaa !5
  %917 = call ptr @s2n_strerror(i32 noundef %916, ptr noundef @.str.4)
  %918 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %919 = load i32, ptr %918, align 4, !tbaa !5
  %920 = call ptr @s2n_strerror_debug(i32 noundef %919, ptr noundef @.str.4)
  %921 = call ptr @__errno_location() #11
  %922 = load i32, ptr %921, align 4, !tbaa !5
  %923 = call ptr @strerror(i32 noundef %922) #10
  %924 = call ptr @__errno_location() #11
  %925 = load i32, ptr %924, align 4, !tbaa !5
  %926 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %913, ptr noundef @.str.2, i32 noundef %914, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 65, ptr noundef %917, ptr noundef %920, ptr noundef %923, i32 noundef %925) #10
  br label %944

927:                                              ; preds = %905, %898
  %928 = load i32, ptr %22, align 4, !tbaa !5
  %929 = call ptr @__errno_location() #11
  store i32 %928, ptr %929, align 4, !tbaa !5
  %930 = load ptr, ptr @stderr, align 8, !tbaa !9
  %931 = load i32, ptr @test_count, align 4, !tbaa !5
  %932 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %933 = load i32, ptr %932, align 4, !tbaa !5
  %934 = call ptr @s2n_strerror(i32 noundef %933, ptr noundef @.str.4)
  %935 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %936 = load i32, ptr %935, align 4, !tbaa !5
  %937 = call ptr @s2n_strerror_debug(i32 noundef %936, ptr noundef @.str.4)
  %938 = call ptr @__errno_location() #11
  %939 = load i32, ptr %938, align 4, !tbaa !5
  %940 = call ptr @strerror(i32 noundef %939) #10
  %941 = call ptr @__errno_location() #11
  %942 = load i32, ptr %941, align 4, !tbaa !5
  %943 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %930, ptr noundef @.str.5, i32 noundef %931, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 65, ptr noundef %934, ptr noundef %937, ptr noundef %940, i32 noundef %942) #10
  br label %944

944:                                              ; preds = %927, %910
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #10
  br label %945

945:                                              ; preds = %944
  br label %946

946:                                              ; preds = %945
  call void @exit(i32 noundef 1) #12
  unreachable

947:                                              ; No predecessors!
  br label %948

948:                                              ; preds = %947
  br label %949

949:                                              ; preds = %948, %890
  br label %950

950:                                              ; preds = %949
  br label %951

951:                                              ; preds = %950
  br label %952

952:                                              ; preds = %951
  %953 = load i32, ptr @test_count, align 4, !tbaa !5
  %954 = add nsw i32 %953, 1
  store i32 %954, ptr @test_count, align 4, !tbaa !5
  %955 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_alpn_extension, i32 0, i32 5), align 8, !tbaa !16
  %956 = load ptr, ptr %12, align 8, !tbaa !9
  %957 = call zeroext i1 %955(ptr noundef %956)
  br i1 %957, label %1011, label %958

958:                                              ; preds = %952
  br label %959

959:                                              ; preds = %958
  br label %960

960:                                              ; preds = %959
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #10
  %961 = call ptr @__errno_location() #11
  %962 = load i32, ptr %961, align 4, !tbaa !5
  store i32 %962, ptr %23, align 4, !tbaa !5
  %963 = load ptr, ptr @stderr, align 8, !tbaa !9
  %964 = call i32 @s2n_print_stacktrace(ptr noundef %963)
  %965 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %966 = trunc i8 %965 to i1
  br i1 %966, label %967, label %989

967:                                              ; preds = %960
  %968 = load ptr, ptr @stderr, align 8, !tbaa !9
  %969 = call i32 @fileno(ptr noundef %968) #10
  %970 = call i32 @isatty(i32 noundef %969) #10
  %971 = icmp ne i32 %970, 0
  br i1 %971, label %972, label %989

972:                                              ; preds = %967
  %973 = load i32, ptr %23, align 4, !tbaa !5
  %974 = call ptr @__errno_location() #11
  store i32 %973, ptr %974, align 4, !tbaa !5
  %975 = load ptr, ptr @stderr, align 8, !tbaa !9
  %976 = load i32, ptr @test_count, align 4, !tbaa !5
  %977 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %978 = load i32, ptr %977, align 4, !tbaa !5
  %979 = call ptr @s2n_strerror(i32 noundef %978, ptr noundef @.str.4)
  %980 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %981 = load i32, ptr %980, align 4, !tbaa !5
  %982 = call ptr @s2n_strerror_debug(i32 noundef %981, ptr noundef @.str.4)
  %983 = call ptr @__errno_location() #11
  %984 = load i32, ptr %983, align 4, !tbaa !5
  %985 = call ptr @strerror(i32 noundef %984) #10
  %986 = call ptr @__errno_location() #11
  %987 = load i32, ptr %986, align 4, !tbaa !5
  %988 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %975, ptr noundef @.str.2, i32 noundef %976, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 66, ptr noundef %979, ptr noundef %982, ptr noundef %985, i32 noundef %987) #10
  br label %1006

989:                                              ; preds = %967, %960
  %990 = load i32, ptr %23, align 4, !tbaa !5
  %991 = call ptr @__errno_location() #11
  store i32 %990, ptr %991, align 4, !tbaa !5
  %992 = load ptr, ptr @stderr, align 8, !tbaa !9
  %993 = load i32, ptr @test_count, align 4, !tbaa !5
  %994 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %995 = load i32, ptr %994, align 4, !tbaa !5
  %996 = call ptr @s2n_strerror(i32 noundef %995, ptr noundef @.str.4)
  %997 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %998 = load i32, ptr %997, align 4, !tbaa !5
  %999 = call ptr @s2n_strerror_debug(i32 noundef %998, ptr noundef @.str.4)
  %1000 = call ptr @__errno_location() #11
  %1001 = load i32, ptr %1000, align 4, !tbaa !5
  %1002 = call ptr @strerror(i32 noundef %1001) #10
  %1003 = call ptr @__errno_location() #11
  %1004 = load i32, ptr %1003, align 4, !tbaa !5
  %1005 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %992, ptr noundef @.str.5, i32 noundef %993, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 66, ptr noundef %996, ptr noundef %999, ptr noundef %1002, i32 noundef %1004) #10
  br label %1006

1006:                                             ; preds = %989, %972
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #10
  br label %1007

1007:                                             ; preds = %1006
  br label %1008

1008:                                             ; preds = %1007
  call void @exit(i32 noundef 1) #12
  unreachable

1009:                                             ; No predecessors!
  br label %1010

1010:                                             ; preds = %1009
  br label %1011

1011:                                             ; preds = %1010, %952
  br label %1012

1012:                                             ; preds = %1011
  br label %1013

1013:                                             ; preds = %1012
  %1014 = load ptr, ptr %12, align 8, !tbaa !9
  %1015 = getelementptr inbounds %struct.s2n_connection, ptr %1014, i32 0, i32 52
  %1016 = getelementptr inbounds %struct.s2n_handshake, ptr %1015, i32 0, i32 11
  %1017 = load i8, ptr %1016, align 8
  %1018 = and i8 %1017, -9
  %1019 = or i8 %1018, 8
  store i8 %1019, ptr %1016, align 8
  br label %1020

1020:                                             ; preds = %1013
  %1021 = load i32, ptr @test_count, align 4, !tbaa !5
  %1022 = add nsw i32 %1021, 1
  store i32 %1022, ptr @test_count, align 4, !tbaa !5
  %1023 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_npn_extension, i32 0, i32 5), align 8, !tbaa !16
  %1024 = load ptr, ptr %12, align 8, !tbaa !9
  %1025 = call zeroext i1 %1023(ptr noundef %1024)
  br i1 %1025, label %1026, label %1079

1026:                                             ; preds = %1020
  br label %1027

1027:                                             ; preds = %1026
  br label %1028

1028:                                             ; preds = %1027
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #10
  %1029 = call ptr @__errno_location() #11
  %1030 = load i32, ptr %1029, align 4, !tbaa !5
  store i32 %1030, ptr %24, align 4, !tbaa !5
  %1031 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1032 = call i32 @s2n_print_stacktrace(ptr noundef %1031)
  %1033 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1034 = trunc i8 %1033 to i1
  br i1 %1034, label %1035, label %1057

1035:                                             ; preds = %1028
  %1036 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1037 = call i32 @fileno(ptr noundef %1036) #10
  %1038 = call i32 @isatty(i32 noundef %1037) #10
  %1039 = icmp ne i32 %1038, 0
  br i1 %1039, label %1040, label %1057

1040:                                             ; preds = %1035
  %1041 = load i32, ptr %24, align 4, !tbaa !5
  %1042 = call ptr @__errno_location() #11
  store i32 %1041, ptr %1042, align 4, !tbaa !5
  %1043 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1044 = load i32, ptr @test_count, align 4, !tbaa !5
  %1045 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1046 = load i32, ptr %1045, align 4, !tbaa !5
  %1047 = call ptr @s2n_strerror(i32 noundef %1046, ptr noundef @.str.4)
  %1048 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1049 = load i32, ptr %1048, align 4, !tbaa !5
  %1050 = call ptr @s2n_strerror_debug(i32 noundef %1049, ptr noundef @.str.4)
  %1051 = call ptr @__errno_location() #11
  %1052 = load i32, ptr %1051, align 4, !tbaa !5
  %1053 = call ptr @strerror(i32 noundef %1052) #10
  %1054 = call ptr @__errno_location() #11
  %1055 = load i32, ptr %1054, align 4, !tbaa !5
  %1056 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1043, ptr noundef @.str.2, i32 noundef %1044, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 76, ptr noundef %1047, ptr noundef %1050, ptr noundef %1053, i32 noundef %1055) #10
  br label %1074

1057:                                             ; preds = %1035, %1028
  %1058 = load i32, ptr %24, align 4, !tbaa !5
  %1059 = call ptr @__errno_location() #11
  store i32 %1058, ptr %1059, align 4, !tbaa !5
  %1060 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1061 = load i32, ptr @test_count, align 4, !tbaa !5
  %1062 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1063 = load i32, ptr %1062, align 4, !tbaa !5
  %1064 = call ptr @s2n_strerror(i32 noundef %1063, ptr noundef @.str.4)
  %1065 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1066 = load i32, ptr %1065, align 4, !tbaa !5
  %1067 = call ptr @s2n_strerror_debug(i32 noundef %1066, ptr noundef @.str.4)
  %1068 = call ptr @__errno_location() #11
  %1069 = load i32, ptr %1068, align 4, !tbaa !5
  %1070 = call ptr @strerror(i32 noundef %1069) #10
  %1071 = call ptr @__errno_location() #11
  %1072 = load i32, ptr %1071, align 4, !tbaa !5
  %1073 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1060, ptr noundef @.str.5, i32 noundef %1061, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 76, ptr noundef %1064, ptr noundef %1067, ptr noundef %1070, i32 noundef %1072) #10
  br label %1074

1074:                                             ; preds = %1057, %1040
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #10
  br label %1075

1075:                                             ; preds = %1074
  br label %1076

1076:                                             ; preds = %1075
  call void @exit(i32 noundef 1) #12
  unreachable

1077:                                             ; No predecessors!
  br label %1078

1078:                                             ; preds = %1077
  br label %1079

1079:                                             ; preds = %1078, %1020
  br label %1080

1080:                                             ; preds = %1079
  br label %1081

1081:                                             ; preds = %1080
  br label %1082

1082:                                             ; preds = %1081
  %1083 = load i32, ptr @test_count, align 4, !tbaa !5
  %1084 = add nsw i32 %1083, 1
  store i32 %1084, ptr @test_count, align 4, !tbaa !5
  %1085 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_alpn_extension, i32 0, i32 5), align 8, !tbaa !16
  %1086 = load ptr, ptr %12, align 8, !tbaa !9
  %1087 = call zeroext i1 %1085(ptr noundef %1086)
  br i1 %1087, label %1141, label %1088

1088:                                             ; preds = %1082
  br label %1089

1089:                                             ; preds = %1088
  br label %1090

1090:                                             ; preds = %1089
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #10
  %1091 = call ptr @__errno_location() #11
  %1092 = load i32, ptr %1091, align 4, !tbaa !5
  store i32 %1092, ptr %25, align 4, !tbaa !5
  %1093 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1094 = call i32 @s2n_print_stacktrace(ptr noundef %1093)
  %1095 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1096 = trunc i8 %1095 to i1
  br i1 %1096, label %1097, label %1119

1097:                                             ; preds = %1090
  %1098 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1099 = call i32 @fileno(ptr noundef %1098) #10
  %1100 = call i32 @isatty(i32 noundef %1099) #10
  %1101 = icmp ne i32 %1100, 0
  br i1 %1101, label %1102, label %1119

1102:                                             ; preds = %1097
  %1103 = load i32, ptr %25, align 4, !tbaa !5
  %1104 = call ptr @__errno_location() #11
  store i32 %1103, ptr %1104, align 4, !tbaa !5
  %1105 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1106 = load i32, ptr @test_count, align 4, !tbaa !5
  %1107 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1108 = load i32, ptr %1107, align 4, !tbaa !5
  %1109 = call ptr @s2n_strerror(i32 noundef %1108, ptr noundef @.str.4)
  %1110 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1111 = load i32, ptr %1110, align 4, !tbaa !5
  %1112 = call ptr @s2n_strerror_debug(i32 noundef %1111, ptr noundef @.str.4)
  %1113 = call ptr @__errno_location() #11
  %1114 = load i32, ptr %1113, align 4, !tbaa !5
  %1115 = call ptr @strerror(i32 noundef %1114) #10
  %1116 = call ptr @__errno_location() #11
  %1117 = load i32, ptr %1116, align 4, !tbaa !5
  %1118 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1105, ptr noundef @.str.2, i32 noundef %1106, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 77, ptr noundef %1109, ptr noundef %1112, ptr noundef %1115, i32 noundef %1117) #10
  br label %1136

1119:                                             ; preds = %1097, %1090
  %1120 = load i32, ptr %25, align 4, !tbaa !5
  %1121 = call ptr @__errno_location() #11
  store i32 %1120, ptr %1121, align 4, !tbaa !5
  %1122 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1123 = load i32, ptr @test_count, align 4, !tbaa !5
  %1124 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1125 = load i32, ptr %1124, align 4, !tbaa !5
  %1126 = call ptr @s2n_strerror(i32 noundef %1125, ptr noundef @.str.4)
  %1127 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1128 = load i32, ptr %1127, align 4, !tbaa !5
  %1129 = call ptr @s2n_strerror_debug(i32 noundef %1128, ptr noundef @.str.4)
  %1130 = call ptr @__errno_location() #11
  %1131 = load i32, ptr %1130, align 4, !tbaa !5
  %1132 = call ptr @strerror(i32 noundef %1131) #10
  %1133 = call ptr @__errno_location() #11
  %1134 = load i32, ptr %1133, align 4, !tbaa !5
  %1135 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1122, ptr noundef @.str.5, i32 noundef %1123, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 77, ptr noundef %1126, ptr noundef %1129, ptr noundef %1132, i32 noundef %1134) #10
  br label %1136

1136:                                             ; preds = %1119, %1102
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #10
  br label %1137

1137:                                             ; preds = %1136
  br label %1138

1138:                                             ; preds = %1137
  call void @exit(i32 noundef 1) #12
  unreachable

1139:                                             ; No predecessors!
  br label %1140

1140:                                             ; preds = %1139
  br label %1141

1141:                                             ; preds = %1140, %1082
  br label %1142

1142:                                             ; preds = %1141
  br label %1143

1143:                                             ; preds = %1142
  %1144 = call i32 @s2n_config_ptr_free(ptr noundef %15)
  %1145 = getelementptr inbounds %struct.s2n_result, ptr %26, i32 0, i32 0
  store i32 %1144, ptr %1145, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #10
  %1146 = call i32 @s2n_connection_ptr_free(ptr noundef %12)
  %1147 = getelementptr inbounds %struct.s2n_result, ptr %27, i32 0, i32 0
  store i32 %1146, ptr %1147, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #10
  %1148 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %1148, ptr %28, align 8, !tbaa !9
  br label %1149

1149:                                             ; preds = %1143
  %1150 = load i32, ptr @test_count, align 4, !tbaa !5
  %1151 = add nsw i32 %1150, 1
  store i32 %1151, ptr @test_count, align 4, !tbaa !5
  %1152 = load ptr, ptr %28, align 8, !tbaa !9
  %1153 = icmp eq ptr %1152, null
  br i1 %1153, label %1154, label %1207

1154:                                             ; preds = %1149
  br label %1155

1155:                                             ; preds = %1154
  br label %1156

1156:                                             ; preds = %1155
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #10
  %1157 = call ptr @__errno_location() #11
  %1158 = load i32, ptr %1157, align 4, !tbaa !5
  store i32 %1158, ptr %29, align 4, !tbaa !5
  %1159 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1160 = call i32 @s2n_print_stacktrace(ptr noundef %1159)
  %1161 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1162 = trunc i8 %1161 to i1
  br i1 %1162, label %1163, label %1185

1163:                                             ; preds = %1156
  %1164 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1165 = call i32 @fileno(ptr noundef %1164) #10
  %1166 = call i32 @isatty(i32 noundef %1165) #10
  %1167 = icmp ne i32 %1166, 0
  br i1 %1167, label %1168, label %1185

1168:                                             ; preds = %1163
  %1169 = load i32, ptr %29, align 4, !tbaa !5
  %1170 = call ptr @__errno_location() #11
  store i32 %1169, ptr %1170, align 4, !tbaa !5
  %1171 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1172 = load i32, ptr @test_count, align 4, !tbaa !5
  %1173 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1174 = load i32, ptr %1173, align 4, !tbaa !5
  %1175 = call ptr @s2n_strerror(i32 noundef %1174, ptr noundef @.str.4)
  %1176 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1177 = load i32, ptr %1176, align 4, !tbaa !5
  %1178 = call ptr @s2n_strerror_debug(i32 noundef %1177, ptr noundef @.str.4)
  %1179 = call ptr @__errno_location() #11
  %1180 = load i32, ptr %1179, align 4, !tbaa !5
  %1181 = call ptr @strerror(i32 noundef %1180) #10
  %1182 = call ptr @__errno_location() #11
  %1183 = load i32, ptr %1182, align 4, !tbaa !5
  %1184 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1171, ptr noundef @.str.2, i32 noundef %1172, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 83, ptr noundef %1175, ptr noundef %1178, ptr noundef %1181, i32 noundef %1183) #10
  br label %1202

1185:                                             ; preds = %1163, %1156
  %1186 = load i32, ptr %29, align 4, !tbaa !5
  %1187 = call ptr @__errno_location() #11
  store i32 %1186, ptr %1187, align 4, !tbaa !5
  %1188 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1189 = load i32, ptr @test_count, align 4, !tbaa !5
  %1190 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1191 = load i32, ptr %1190, align 4, !tbaa !5
  %1192 = call ptr @s2n_strerror(i32 noundef %1191, ptr noundef @.str.4)
  %1193 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1194 = load i32, ptr %1193, align 4, !tbaa !5
  %1195 = call ptr @s2n_strerror_debug(i32 noundef %1194, ptr noundef @.str.4)
  %1196 = call ptr @__errno_location() #11
  %1197 = load i32, ptr %1196, align 4, !tbaa !5
  %1198 = call ptr @strerror(i32 noundef %1197) #10
  %1199 = call ptr @__errno_location() #11
  %1200 = load i32, ptr %1199, align 4, !tbaa !5
  %1201 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1188, ptr noundef @.str.5, i32 noundef %1189, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 83, ptr noundef %1192, ptr noundef %1195, ptr noundef %1198, i32 noundef %1200) #10
  br label %1202

1202:                                             ; preds = %1185, %1168
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #10
  br label %1203

1203:                                             ; preds = %1202
  br label %1204

1204:                                             ; preds = %1203
  call void @exit(i32 noundef 1) #12
  unreachable

1205:                                             ; No predecessors!
  br label %1206

1206:                                             ; preds = %1205
  br label %1207

1207:                                             ; preds = %1206, %1149
  br label %1208

1208:                                             ; preds = %1207
  br label %1209

1209:                                             ; preds = %1208
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #10
  %1210 = call ptr @s2n_config_new()
  store ptr %1210, ptr %30, align 8, !tbaa !9
  br label %1211

1211:                                             ; preds = %1209
  %1212 = load i32, ptr @test_count, align 4, !tbaa !5
  %1213 = add nsw i32 %1212, 1
  store i32 %1213, ptr @test_count, align 4, !tbaa !5
  %1214 = load ptr, ptr %30, align 8, !tbaa !9
  %1215 = icmp eq ptr %1214, null
  br i1 %1215, label %1216, label %1269

1216:                                             ; preds = %1211
  br label %1217

1217:                                             ; preds = %1216
  br label %1218

1218:                                             ; preds = %1217
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #10
  %1219 = call ptr @__errno_location() #11
  %1220 = load i32, ptr %1219, align 4, !tbaa !5
  store i32 %1220, ptr %31, align 4, !tbaa !5
  %1221 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1222 = call i32 @s2n_print_stacktrace(ptr noundef %1221)
  %1223 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1224 = trunc i8 %1223 to i1
  br i1 %1224, label %1225, label %1247

1225:                                             ; preds = %1218
  %1226 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1227 = call i32 @fileno(ptr noundef %1226) #10
  %1228 = call i32 @isatty(i32 noundef %1227) #10
  %1229 = icmp ne i32 %1228, 0
  br i1 %1229, label %1230, label %1247

1230:                                             ; preds = %1225
  %1231 = load i32, ptr %31, align 4, !tbaa !5
  %1232 = call ptr @__errno_location() #11
  store i32 %1231, ptr %1232, align 4, !tbaa !5
  %1233 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1234 = load i32, ptr @test_count, align 4, !tbaa !5
  %1235 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1236 = load i32, ptr %1235, align 4, !tbaa !5
  %1237 = call ptr @s2n_strerror(i32 noundef %1236, ptr noundef @.str.4)
  %1238 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1239 = load i32, ptr %1238, align 4, !tbaa !5
  %1240 = call ptr @s2n_strerror_debug(i32 noundef %1239, ptr noundef @.str.4)
  %1241 = call ptr @__errno_location() #11
  %1242 = load i32, ptr %1241, align 4, !tbaa !5
  %1243 = call ptr @strerror(i32 noundef %1242) #10
  %1244 = call ptr @__errno_location() #11
  %1245 = load i32, ptr %1244, align 4, !tbaa !5
  %1246 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1233, ptr noundef @.str.2, i32 noundef %1234, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 85, ptr noundef %1237, ptr noundef %1240, ptr noundef %1243, i32 noundef %1245) #10
  br label %1264

1247:                                             ; preds = %1225, %1218
  %1248 = load i32, ptr %31, align 4, !tbaa !5
  %1249 = call ptr @__errno_location() #11
  store i32 %1248, ptr %1249, align 4, !tbaa !5
  %1250 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1251 = load i32, ptr @test_count, align 4, !tbaa !5
  %1252 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1253 = load i32, ptr %1252, align 4, !tbaa !5
  %1254 = call ptr @s2n_strerror(i32 noundef %1253, ptr noundef @.str.4)
  %1255 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1256 = load i32, ptr %1255, align 4, !tbaa !5
  %1257 = call ptr @s2n_strerror_debug(i32 noundef %1256, ptr noundef @.str.4)
  %1258 = call ptr @__errno_location() #11
  %1259 = load i32, ptr %1258, align 4, !tbaa !5
  %1260 = call ptr @strerror(i32 noundef %1259) #10
  %1261 = call ptr @__errno_location() #11
  %1262 = load i32, ptr %1261, align 4, !tbaa !5
  %1263 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1250, ptr noundef @.str.5, i32 noundef %1251, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 85, ptr noundef %1254, ptr noundef %1257, ptr noundef %1260, i32 noundef %1262) #10
  br label %1264

1264:                                             ; preds = %1247, %1230
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #10
  br label %1265

1265:                                             ; preds = %1264
  br label %1266

1266:                                             ; preds = %1265
  call void @exit(i32 noundef 1) #12
  unreachable

1267:                                             ; No predecessors!
  br label %1268

1268:                                             ; preds = %1267
  br label %1269

1269:                                             ; preds = %1268, %1211
  br label %1270

1270:                                             ; preds = %1269
  br label %1271

1271:                                             ; preds = %1270
  br label %1272

1272:                                             ; preds = %1271
  %1273 = load i32, ptr @test_count, align 4, !tbaa !5
  %1274 = add nsw i32 %1273, 1
  store i32 %1274, ptr @test_count, align 4, !tbaa !5
  %1275 = load ptr, ptr %30, align 8, !tbaa !9
  %1276 = getelementptr inbounds [3 x ptr], ptr %9, i64 0, i64 0
  %1277 = call i32 @s2n_config_set_protocol_preferences(ptr noundef %1275, ptr noundef %1276, i32 noundef 3)
  %1278 = icmp eq i32 %1277, -1
  br i1 %1278, label %1279, label %1332

1279:                                             ; preds = %1272
  br label %1280

1280:                                             ; preds = %1279
  br label %1281

1281:                                             ; preds = %1280
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #10
  %1282 = call ptr @__errno_location() #11
  %1283 = load i32, ptr %1282, align 4, !tbaa !5
  store i32 %1283, ptr %32, align 4, !tbaa !5
  %1284 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1285 = call i32 @s2n_print_stacktrace(ptr noundef %1284)
  %1286 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1287 = trunc i8 %1286 to i1
  br i1 %1287, label %1288, label %1310

1288:                                             ; preds = %1281
  %1289 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1290 = call i32 @fileno(ptr noundef %1289) #10
  %1291 = call i32 @isatty(i32 noundef %1290) #10
  %1292 = icmp ne i32 %1291, 0
  br i1 %1292, label %1293, label %1310

1293:                                             ; preds = %1288
  %1294 = load i32, ptr %32, align 4, !tbaa !5
  %1295 = call ptr @__errno_location() #11
  store i32 %1294, ptr %1295, align 4, !tbaa !5
  %1296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1297 = load i32, ptr @test_count, align 4, !tbaa !5
  %1298 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1299 = load i32, ptr %1298, align 4, !tbaa !5
  %1300 = call ptr @s2n_strerror(i32 noundef %1299, ptr noundef @.str.4)
  %1301 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1302 = load i32, ptr %1301, align 4, !tbaa !5
  %1303 = call ptr @s2n_strerror_debug(i32 noundef %1302, ptr noundef @.str.4)
  %1304 = call ptr @__errno_location() #11
  %1305 = load i32, ptr %1304, align 4, !tbaa !5
  %1306 = call ptr @strerror(i32 noundef %1305) #10
  %1307 = call ptr @__errno_location() #11
  %1308 = load i32, ptr %1307, align 4, !tbaa !5
  %1309 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1296, ptr noundef @.str.2, i32 noundef %1297, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 86, ptr noundef %1300, ptr noundef %1303, ptr noundef %1306, i32 noundef %1308) #10
  br label %1327

1310:                                             ; preds = %1288, %1281
  %1311 = load i32, ptr %32, align 4, !tbaa !5
  %1312 = call ptr @__errno_location() #11
  store i32 %1311, ptr %1312, align 4, !tbaa !5
  %1313 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1314 = load i32, ptr @test_count, align 4, !tbaa !5
  %1315 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1316 = load i32, ptr %1315, align 4, !tbaa !5
  %1317 = call ptr @s2n_strerror(i32 noundef %1316, ptr noundef @.str.4)
  %1318 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1319 = load i32, ptr %1318, align 4, !tbaa !5
  %1320 = call ptr @s2n_strerror_debug(i32 noundef %1319, ptr noundef @.str.4)
  %1321 = call ptr @__errno_location() #11
  %1322 = load i32, ptr %1321, align 4, !tbaa !5
  %1323 = call ptr @strerror(i32 noundef %1322) #10
  %1324 = call ptr @__errno_location() #11
  %1325 = load i32, ptr %1324, align 4, !tbaa !5
  %1326 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1313, ptr noundef @.str.5, i32 noundef %1314, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 86, ptr noundef %1317, ptr noundef %1320, ptr noundef %1323, i32 noundef %1325) #10
  br label %1327

1327:                                             ; preds = %1310, %1293
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #10
  br label %1328

1328:                                             ; preds = %1327
  br label %1329

1329:                                             ; preds = %1328
  call void @exit(i32 noundef 1) #12
  unreachable

1330:                                             ; No predecessors!
  br label %1331

1331:                                             ; preds = %1330
  br label %1332

1332:                                             ; preds = %1331, %1272
  br label %1333

1333:                                             ; preds = %1332
  br label %1334

1334:                                             ; preds = %1333
  br label %1335

1335:                                             ; preds = %1334
  %1336 = load i32, ptr @test_count, align 4, !tbaa !5
  %1337 = add nsw i32 %1336, 1
  store i32 %1337, ptr @test_count, align 4, !tbaa !5
  %1338 = load ptr, ptr %28, align 8, !tbaa !9
  %1339 = load ptr, ptr %30, align 8, !tbaa !9
  %1340 = call i32 @s2n_connection_set_config(ptr noundef %1338, ptr noundef %1339)
  %1341 = icmp eq i32 %1340, -1
  br i1 %1341, label %1342, label %1395

1342:                                             ; preds = %1335
  br label %1343

1343:                                             ; preds = %1342
  br label %1344

1344:                                             ; preds = %1343
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #10
  %1345 = call ptr @__errno_location() #11
  %1346 = load i32, ptr %1345, align 4, !tbaa !5
  store i32 %1346, ptr %33, align 4, !tbaa !5
  %1347 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1348 = call i32 @s2n_print_stacktrace(ptr noundef %1347)
  %1349 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1350 = trunc i8 %1349 to i1
  br i1 %1350, label %1351, label %1373

1351:                                             ; preds = %1344
  %1352 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1353 = call i32 @fileno(ptr noundef %1352) #10
  %1354 = call i32 @isatty(i32 noundef %1353) #10
  %1355 = icmp ne i32 %1354, 0
  br i1 %1355, label %1356, label %1373

1356:                                             ; preds = %1351
  %1357 = load i32, ptr %33, align 4, !tbaa !5
  %1358 = call ptr @__errno_location() #11
  store i32 %1357, ptr %1358, align 4, !tbaa !5
  %1359 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1360 = load i32, ptr @test_count, align 4, !tbaa !5
  %1361 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1362 = load i32, ptr %1361, align 4, !tbaa !5
  %1363 = call ptr @s2n_strerror(i32 noundef %1362, ptr noundef @.str.4)
  %1364 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1365 = load i32, ptr %1364, align 4, !tbaa !5
  %1366 = call ptr @s2n_strerror_debug(i32 noundef %1365, ptr noundef @.str.4)
  %1367 = call ptr @__errno_location() #11
  %1368 = load i32, ptr %1367, align 4, !tbaa !5
  %1369 = call ptr @strerror(i32 noundef %1368) #10
  %1370 = call ptr @__errno_location() #11
  %1371 = load i32, ptr %1370, align 4, !tbaa !5
  %1372 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1359, ptr noundef @.str.2, i32 noundef %1360, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 87, ptr noundef %1363, ptr noundef %1366, ptr noundef %1369, i32 noundef %1371) #10
  br label %1390

1373:                                             ; preds = %1351, %1344
  %1374 = load i32, ptr %33, align 4, !tbaa !5
  %1375 = call ptr @__errno_location() #11
  store i32 %1374, ptr %1375, align 4, !tbaa !5
  %1376 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1377 = load i32, ptr @test_count, align 4, !tbaa !5
  %1378 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1379 = load i32, ptr %1378, align 4, !tbaa !5
  %1380 = call ptr @s2n_strerror(i32 noundef %1379, ptr noundef @.str.4)
  %1381 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1382 = load i32, ptr %1381, align 4, !tbaa !5
  %1383 = call ptr @s2n_strerror_debug(i32 noundef %1382, ptr noundef @.str.4)
  %1384 = call ptr @__errno_location() #11
  %1385 = load i32, ptr %1384, align 4, !tbaa !5
  %1386 = call ptr @strerror(i32 noundef %1385) #10
  %1387 = call ptr @__errno_location() #11
  %1388 = load i32, ptr %1387, align 4, !tbaa !5
  %1389 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1376, ptr noundef @.str.5, i32 noundef %1377, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 87, ptr noundef %1380, ptr noundef %1383, ptr noundef %1386, i32 noundef %1388) #10
  br label %1390

1390:                                             ; preds = %1373, %1356
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #10
  br label %1391

1391:                                             ; preds = %1390
  br label %1392

1392:                                             ; preds = %1391
  call void @exit(i32 noundef 1) #12
  unreachable

1393:                                             ; No predecessors!
  br label %1394

1394:                                             ; preds = %1393
  br label %1395

1395:                                             ; preds = %1394, %1335
  br label %1396

1396:                                             ; preds = %1395
  br label %1397

1397:                                             ; preds = %1396
  call void @llvm.lifetime.start.p0(i64 40, ptr %34) #10
  call void @llvm.memset.p0.i64(ptr align 8 %34, i8 0, i64 40, i1 false)
  br label %1398

1398:                                             ; preds = %1397
  %1399 = load i32, ptr @test_count, align 4, !tbaa !5
  %1400 = add nsw i32 %1399, 1
  store i32 %1400, ptr @test_count, align 4, !tbaa !5
  %1401 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %34, i32 noundef 0)
  %1402 = icmp eq i32 %1401, -1
  br i1 %1402, label %1403, label %1456

1403:                                             ; preds = %1398
  br label %1404

1404:                                             ; preds = %1403
  br label %1405

1405:                                             ; preds = %1404
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #10
  %1406 = call ptr @__errno_location() #11
  %1407 = load i32, ptr %1406, align 4, !tbaa !5
  store i32 %1407, ptr %35, align 4, !tbaa !5
  %1408 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1409 = call i32 @s2n_print_stacktrace(ptr noundef %1408)
  %1410 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1411 = trunc i8 %1410 to i1
  br i1 %1411, label %1412, label %1434

1412:                                             ; preds = %1405
  %1413 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1414 = call i32 @fileno(ptr noundef %1413) #10
  %1415 = call i32 @isatty(i32 noundef %1414) #10
  %1416 = icmp ne i32 %1415, 0
  br i1 %1416, label %1417, label %1434

1417:                                             ; preds = %1412
  %1418 = load i32, ptr %35, align 4, !tbaa !5
  %1419 = call ptr @__errno_location() #11
  store i32 %1418, ptr %1419, align 4, !tbaa !5
  %1420 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1421 = load i32, ptr @test_count, align 4, !tbaa !5
  %1422 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1423 = load i32, ptr %1422, align 4, !tbaa !5
  %1424 = call ptr @s2n_strerror(i32 noundef %1423, ptr noundef @.str.4)
  %1425 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1426 = load i32, ptr %1425, align 4, !tbaa !5
  %1427 = call ptr @s2n_strerror_debug(i32 noundef %1426, ptr noundef @.str.4)
  %1428 = call ptr @__errno_location() #11
  %1429 = load i32, ptr %1428, align 4, !tbaa !5
  %1430 = call ptr @strerror(i32 noundef %1429) #10
  %1431 = call ptr @__errno_location() #11
  %1432 = load i32, ptr %1431, align 4, !tbaa !5
  %1433 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1420, ptr noundef @.str.2, i32 noundef %1421, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 90, ptr noundef %1424, ptr noundef %1427, ptr noundef %1430, i32 noundef %1432) #10
  br label %1451

1434:                                             ; preds = %1412, %1405
  %1435 = load i32, ptr %35, align 4, !tbaa !5
  %1436 = call ptr @__errno_location() #11
  store i32 %1435, ptr %1436, align 4, !tbaa !5
  %1437 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1438 = load i32, ptr @test_count, align 4, !tbaa !5
  %1439 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1440 = load i32, ptr %1439, align 4, !tbaa !5
  %1441 = call ptr @s2n_strerror(i32 noundef %1440, ptr noundef @.str.4)
  %1442 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1443 = load i32, ptr %1442, align 4, !tbaa !5
  %1444 = call ptr @s2n_strerror_debug(i32 noundef %1443, ptr noundef @.str.4)
  %1445 = call ptr @__errno_location() #11
  %1446 = load i32, ptr %1445, align 4, !tbaa !5
  %1447 = call ptr @strerror(i32 noundef %1446) #10
  %1448 = call ptr @__errno_location() #11
  %1449 = load i32, ptr %1448, align 4, !tbaa !5
  %1450 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1437, ptr noundef @.str.5, i32 noundef %1438, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 90, ptr noundef %1441, ptr noundef %1444, ptr noundef %1447, i32 noundef %1449) #10
  br label %1451

1451:                                             ; preds = %1434, %1417
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #10
  br label %1452

1452:                                             ; preds = %1451
  br label %1453

1453:                                             ; preds = %1452
  call void @exit(i32 noundef 1) #12
  unreachable

1454:                                             ; No predecessors!
  br label %1455

1455:                                             ; preds = %1454
  br label %1456

1456:                                             ; preds = %1455, %1398
  br label %1457

1457:                                             ; preds = %1456
  br label %1458

1458:                                             ; preds = %1457
  br label %1459

1459:                                             ; preds = %1458
  %1460 = load i32, ptr @test_count, align 4, !tbaa !5
  %1461 = add nsw i32 %1460, 1
  store i32 %1461, ptr @test_count, align 4, !tbaa !5
  %1462 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_npn_extension, i32 0, i32 4), align 8, !tbaa !45
  %1463 = load ptr, ptr %28, align 8, !tbaa !9
  %1464 = call i32 %1462(ptr noundef %1463, ptr noundef %34)
  %1465 = icmp eq i32 %1464, -1
  br i1 %1465, label %1466, label %1519

1466:                                             ; preds = %1459
  br label %1467

1467:                                             ; preds = %1466
  br label %1468

1468:                                             ; preds = %1467
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #10
  %1469 = call ptr @__errno_location() #11
  %1470 = load i32, ptr %1469, align 4, !tbaa !5
  store i32 %1470, ptr %36, align 4, !tbaa !5
  %1471 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1472 = call i32 @s2n_print_stacktrace(ptr noundef %1471)
  %1473 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1474 = trunc i8 %1473 to i1
  br i1 %1474, label %1475, label %1497

1475:                                             ; preds = %1468
  %1476 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1477 = call i32 @fileno(ptr noundef %1476) #10
  %1478 = call i32 @isatty(i32 noundef %1477) #10
  %1479 = icmp ne i32 %1478, 0
  br i1 %1479, label %1480, label %1497

1480:                                             ; preds = %1475
  %1481 = load i32, ptr %36, align 4, !tbaa !5
  %1482 = call ptr @__errno_location() #11
  store i32 %1481, ptr %1482, align 4, !tbaa !5
  %1483 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1484 = load i32, ptr @test_count, align 4, !tbaa !5
  %1485 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1486 = load i32, ptr %1485, align 4, !tbaa !5
  %1487 = call ptr @s2n_strerror(i32 noundef %1486, ptr noundef @.str.4)
  %1488 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1489 = load i32, ptr %1488, align 4, !tbaa !5
  %1490 = call ptr @s2n_strerror_debug(i32 noundef %1489, ptr noundef @.str.4)
  %1491 = call ptr @__errno_location() #11
  %1492 = load i32, ptr %1491, align 4, !tbaa !5
  %1493 = call ptr @strerror(i32 noundef %1492) #10
  %1494 = call ptr @__errno_location() #11
  %1495 = load i32, ptr %1494, align 4, !tbaa !5
  %1496 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1483, ptr noundef @.str.2, i32 noundef %1484, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 93, ptr noundef %1487, ptr noundef %1490, ptr noundef %1493, i32 noundef %1495) #10
  br label %1514

1497:                                             ; preds = %1475, %1468
  %1498 = load i32, ptr %36, align 4, !tbaa !5
  %1499 = call ptr @__errno_location() #11
  store i32 %1498, ptr %1499, align 4, !tbaa !5
  %1500 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1501 = load i32, ptr @test_count, align 4, !tbaa !5
  %1502 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1503 = load i32, ptr %1502, align 4, !tbaa !5
  %1504 = call ptr @s2n_strerror(i32 noundef %1503, ptr noundef @.str.4)
  %1505 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1506 = load i32, ptr %1505, align 4, !tbaa !5
  %1507 = call ptr @s2n_strerror_debug(i32 noundef %1506, ptr noundef @.str.4)
  %1508 = call ptr @__errno_location() #11
  %1509 = load i32, ptr %1508, align 4, !tbaa !5
  %1510 = call ptr @strerror(i32 noundef %1509) #10
  %1511 = call ptr @__errno_location() #11
  %1512 = load i32, ptr %1511, align 4, !tbaa !5
  %1513 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1500, ptr noundef @.str.5, i32 noundef %1501, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 93, ptr noundef %1504, ptr noundef %1507, ptr noundef %1510, i32 noundef %1512) #10
  br label %1514

1514:                                             ; preds = %1497, %1480
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #10
  br label %1515

1515:                                             ; preds = %1514
  br label %1516

1516:                                             ; preds = %1515
  call void @exit(i32 noundef 1) #12
  unreachable

1517:                                             ; No predecessors!
  br label %1518

1518:                                             ; preds = %1517
  br label %1519

1519:                                             ; preds = %1518, %1459
  br label %1520

1520:                                             ; preds = %1519
  br label %1521

1521:                                             ; preds = %1520
  br label %1522

1522:                                             ; preds = %1521
  %1523 = load i32, ptr @test_count, align 4, !tbaa !5
  %1524 = add nsw i32 %1523, 1
  store i32 %1524, ptr @test_count, align 4, !tbaa !5
  %1525 = load ptr, ptr %28, align 8, !tbaa !9
  %1526 = load i32, ptr %1525, align 8
  %1527 = lshr i32 %1526, 17
  %1528 = and i32 %1527, 1
  %1529 = icmp ne i32 %1528, 0
  br i1 %1529, label %1530, label %1583

1530:                                             ; preds = %1522
  br label %1531

1531:                                             ; preds = %1530
  br label %1532

1532:                                             ; preds = %1531
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #10
  %1533 = call ptr @__errno_location() #11
  %1534 = load i32, ptr %1533, align 4, !tbaa !5
  store i32 %1534, ptr %37, align 4, !tbaa !5
  %1535 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1536 = call i32 @s2n_print_stacktrace(ptr noundef %1535)
  %1537 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1538 = trunc i8 %1537 to i1
  br i1 %1538, label %1539, label %1561

1539:                                             ; preds = %1532
  %1540 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1541 = call i32 @fileno(ptr noundef %1540) #10
  %1542 = call i32 @isatty(i32 noundef %1541) #10
  %1543 = icmp ne i32 %1542, 0
  br i1 %1543, label %1544, label %1561

1544:                                             ; preds = %1539
  %1545 = load i32, ptr %37, align 4, !tbaa !5
  %1546 = call ptr @__errno_location() #11
  store i32 %1545, ptr %1546, align 4, !tbaa !5
  %1547 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1548 = load i32, ptr @test_count, align 4, !tbaa !5
  %1549 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1550 = load i32, ptr %1549, align 4, !tbaa !5
  %1551 = call ptr @s2n_strerror(i32 noundef %1550, ptr noundef @.str.4)
  %1552 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1553 = load i32, ptr %1552, align 4, !tbaa !5
  %1554 = call ptr @s2n_strerror_debug(i32 noundef %1553, ptr noundef @.str.4)
  %1555 = call ptr @__errno_location() #11
  %1556 = load i32, ptr %1555, align 4, !tbaa !5
  %1557 = call ptr @strerror(i32 noundef %1556) #10
  %1558 = call ptr @__errno_location() #11
  %1559 = load i32, ptr %1558, align 4, !tbaa !5
  %1560 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1547, ptr noundef @.str.2, i32 noundef %1548, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 94, ptr noundef %1551, ptr noundef %1554, ptr noundef %1557, i32 noundef %1559) #10
  br label %1578

1561:                                             ; preds = %1539, %1532
  %1562 = load i32, ptr %37, align 4, !tbaa !5
  %1563 = call ptr @__errno_location() #11
  store i32 %1562, ptr %1563, align 4, !tbaa !5
  %1564 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1565 = load i32, ptr @test_count, align 4, !tbaa !5
  %1566 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1567 = load i32, ptr %1566, align 4, !tbaa !5
  %1568 = call ptr @s2n_strerror(i32 noundef %1567, ptr noundef @.str.4)
  %1569 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1570 = load i32, ptr %1569, align 4, !tbaa !5
  %1571 = call ptr @s2n_strerror_debug(i32 noundef %1570, ptr noundef @.str.4)
  %1572 = call ptr @__errno_location() #11
  %1573 = load i32, ptr %1572, align 4, !tbaa !5
  %1574 = call ptr @strerror(i32 noundef %1573) #10
  %1575 = call ptr @__errno_location() #11
  %1576 = load i32, ptr %1575, align 4, !tbaa !5
  %1577 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1564, ptr noundef @.str.5, i32 noundef %1565, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 94, ptr noundef %1568, ptr noundef %1571, ptr noundef %1574, i32 noundef %1576) #10
  br label %1578

1578:                                             ; preds = %1561, %1544
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #10
  br label %1579

1579:                                             ; preds = %1578
  br label %1580

1580:                                             ; preds = %1579
  call void @exit(i32 noundef 1) #12
  unreachable

1581:                                             ; No predecessors!
  br label %1582

1582:                                             ; preds = %1581
  br label %1583

1583:                                             ; preds = %1582, %1522
  br label %1584

1584:                                             ; preds = %1583
  br label %1585

1585:                                             ; preds = %1584
  %1586 = load ptr, ptr %28, align 8, !tbaa !9
  %1587 = getelementptr inbounds %struct.s2n_connection, ptr %1586, i32 0, i32 1
  %1588 = load ptr, ptr %1587, align 8, !tbaa !19
  %1589 = load i32, ptr %1588, align 8
  %1590 = and i32 %1589, -8193
  %1591 = or i32 %1590, 8192
  store i32 %1591, ptr %1588, align 8
  br label %1592

1592:                                             ; preds = %1585
  %1593 = load i32, ptr @test_count, align 4, !tbaa !5
  %1594 = add nsw i32 %1593, 1
  store i32 %1594, ptr @test_count, align 4, !tbaa !5
  %1595 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_npn_extension, i32 0, i32 4), align 8, !tbaa !45
  %1596 = load ptr, ptr %28, align 8, !tbaa !9
  %1597 = call i32 %1595(ptr noundef %1596, ptr noundef %34)
  %1598 = icmp eq i32 %1597, -1
  br i1 %1598, label %1599, label %1652

1599:                                             ; preds = %1592
  br label %1600

1600:                                             ; preds = %1599
  br label %1601

1601:                                             ; preds = %1600
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #10
  %1602 = call ptr @__errno_location() #11
  %1603 = load i32, ptr %1602, align 4, !tbaa !5
  store i32 %1603, ptr %38, align 4, !tbaa !5
  %1604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1605 = call i32 @s2n_print_stacktrace(ptr noundef %1604)
  %1606 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1607 = trunc i8 %1606 to i1
  br i1 %1607, label %1608, label %1630

1608:                                             ; preds = %1601
  %1609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1610 = call i32 @fileno(ptr noundef %1609) #10
  %1611 = call i32 @isatty(i32 noundef %1610) #10
  %1612 = icmp ne i32 %1611, 0
  br i1 %1612, label %1613, label %1630

1613:                                             ; preds = %1608
  %1614 = load i32, ptr %38, align 4, !tbaa !5
  %1615 = call ptr @__errno_location() #11
  store i32 %1614, ptr %1615, align 4, !tbaa !5
  %1616 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1617 = load i32, ptr @test_count, align 4, !tbaa !5
  %1618 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1619 = load i32, ptr %1618, align 4, !tbaa !5
  %1620 = call ptr @s2n_strerror(i32 noundef %1619, ptr noundef @.str.4)
  %1621 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1622 = load i32, ptr %1621, align 4, !tbaa !5
  %1623 = call ptr @s2n_strerror_debug(i32 noundef %1622, ptr noundef @.str.4)
  %1624 = call ptr @__errno_location() #11
  %1625 = load i32, ptr %1624, align 4, !tbaa !5
  %1626 = call ptr @strerror(i32 noundef %1625) #10
  %1627 = call ptr @__errno_location() #11
  %1628 = load i32, ptr %1627, align 4, !tbaa !5
  %1629 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1616, ptr noundef @.str.2, i32 noundef %1617, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 98, ptr noundef %1620, ptr noundef %1623, ptr noundef %1626, i32 noundef %1628) #10
  br label %1647

1630:                                             ; preds = %1608, %1601
  %1631 = load i32, ptr %38, align 4, !tbaa !5
  %1632 = call ptr @__errno_location() #11
  store i32 %1631, ptr %1632, align 4, !tbaa !5
  %1633 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1634 = load i32, ptr @test_count, align 4, !tbaa !5
  %1635 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1636 = load i32, ptr %1635, align 4, !tbaa !5
  %1637 = call ptr @s2n_strerror(i32 noundef %1636, ptr noundef @.str.4)
  %1638 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1639 = load i32, ptr %1638, align 4, !tbaa !5
  %1640 = call ptr @s2n_strerror_debug(i32 noundef %1639, ptr noundef @.str.4)
  %1641 = call ptr @__errno_location() #11
  %1642 = load i32, ptr %1641, align 4, !tbaa !5
  %1643 = call ptr @strerror(i32 noundef %1642) #10
  %1644 = call ptr @__errno_location() #11
  %1645 = load i32, ptr %1644, align 4, !tbaa !5
  %1646 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1633, ptr noundef @.str.5, i32 noundef %1634, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 98, ptr noundef %1637, ptr noundef %1640, ptr noundef %1643, i32 noundef %1645) #10
  br label %1647

1647:                                             ; preds = %1630, %1613
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #10
  br label %1648

1648:                                             ; preds = %1647
  br label %1649

1649:                                             ; preds = %1648
  call void @exit(i32 noundef 1) #12
  unreachable

1650:                                             ; No predecessors!
  br label %1651

1651:                                             ; preds = %1650
  br label %1652

1652:                                             ; preds = %1651, %1592
  br label %1653

1653:                                             ; preds = %1652
  br label %1654

1654:                                             ; preds = %1653
  br label %1655

1655:                                             ; preds = %1654
  %1656 = load i32, ptr @test_count, align 4, !tbaa !5
  %1657 = add nsw i32 %1656, 1
  store i32 %1657, ptr @test_count, align 4, !tbaa !5
  %1658 = load ptr, ptr %28, align 8, !tbaa !9
  %1659 = load i32, ptr %1658, align 8
  %1660 = lshr i32 %1659, 17
  %1661 = and i32 %1660, 1
  %1662 = icmp ne i32 %1661, 0
  br i1 %1662, label %1716, label %1663

1663:                                             ; preds = %1655
  br label %1664

1664:                                             ; preds = %1663
  br label %1665

1665:                                             ; preds = %1664
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #10
  %1666 = call ptr @__errno_location() #11
  %1667 = load i32, ptr %1666, align 4, !tbaa !5
  store i32 %1667, ptr %39, align 4, !tbaa !5
  %1668 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1669 = call i32 @s2n_print_stacktrace(ptr noundef %1668)
  %1670 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1671 = trunc i8 %1670 to i1
  br i1 %1671, label %1672, label %1694

1672:                                             ; preds = %1665
  %1673 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1674 = call i32 @fileno(ptr noundef %1673) #10
  %1675 = call i32 @isatty(i32 noundef %1674) #10
  %1676 = icmp ne i32 %1675, 0
  br i1 %1676, label %1677, label %1694

1677:                                             ; preds = %1672
  %1678 = load i32, ptr %39, align 4, !tbaa !5
  %1679 = call ptr @__errno_location() #11
  store i32 %1678, ptr %1679, align 4, !tbaa !5
  %1680 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1681 = load i32, ptr @test_count, align 4, !tbaa !5
  %1682 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1683 = load i32, ptr %1682, align 4, !tbaa !5
  %1684 = call ptr @s2n_strerror(i32 noundef %1683, ptr noundef @.str.4)
  %1685 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1686 = load i32, ptr %1685, align 4, !tbaa !5
  %1687 = call ptr @s2n_strerror_debug(i32 noundef %1686, ptr noundef @.str.4)
  %1688 = call ptr @__errno_location() #11
  %1689 = load i32, ptr %1688, align 4, !tbaa !5
  %1690 = call ptr @strerror(i32 noundef %1689) #10
  %1691 = call ptr @__errno_location() #11
  %1692 = load i32, ptr %1691, align 4, !tbaa !5
  %1693 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1680, ptr noundef @.str.2, i32 noundef %1681, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 99, ptr noundef %1684, ptr noundef %1687, ptr noundef %1690, i32 noundef %1692) #10
  br label %1711

1694:                                             ; preds = %1672, %1665
  %1695 = load i32, ptr %39, align 4, !tbaa !5
  %1696 = call ptr @__errno_location() #11
  store i32 %1695, ptr %1696, align 4, !tbaa !5
  %1697 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1698 = load i32, ptr @test_count, align 4, !tbaa !5
  %1699 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1700 = load i32, ptr %1699, align 4, !tbaa !5
  %1701 = call ptr @s2n_strerror(i32 noundef %1700, ptr noundef @.str.4)
  %1702 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1703 = load i32, ptr %1702, align 4, !tbaa !5
  %1704 = call ptr @s2n_strerror_debug(i32 noundef %1703, ptr noundef @.str.4)
  %1705 = call ptr @__errno_location() #11
  %1706 = load i32, ptr %1705, align 4, !tbaa !5
  %1707 = call ptr @strerror(i32 noundef %1706) #10
  %1708 = call ptr @__errno_location() #11
  %1709 = load i32, ptr %1708, align 4, !tbaa !5
  %1710 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1697, ptr noundef @.str.5, i32 noundef %1698, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 99, ptr noundef %1701, ptr noundef %1704, ptr noundef %1707, i32 noundef %1709) #10
  br label %1711

1711:                                             ; preds = %1694, %1677
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #10
  br label %1712

1712:                                             ; preds = %1711
  br label %1713

1713:                                             ; preds = %1712
  call void @exit(i32 noundef 1) #12
  unreachable

1714:                                             ; No predecessors!
  br label %1715

1715:                                             ; preds = %1714
  br label %1716

1716:                                             ; preds = %1715, %1655
  br label %1717

1717:                                             ; preds = %1716
  br label %1718

1718:                                             ; preds = %1717
  call void @llvm.lifetime.start.p0(i64 1, ptr %40) #10
  %1719 = getelementptr inbounds [3 x ptr], ptr %9, i64 0, i64 0
  %1720 = load ptr, ptr %1719, align 16, !tbaa !9
  %1721 = call i64 @strlen(ptr noundef %1720) #13
  %1722 = trunc i64 %1721 to i8
  store i8 %1722, ptr %40, align 1, !tbaa !15
  br label %1723

1723:                                             ; preds = %1718
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #10
  %1724 = load i8, ptr %40, align 1, !tbaa !15
  %1725 = zext i8 %1724 to i32
  %1726 = add nsw i32 %1725, 1
  store i32 %1726, ptr %41, align 4, !tbaa !5
  %1727 = load i32, ptr %41, align 4, !tbaa !5
  %1728 = icmp ne i32 %1727, 0
  br i1 %1728, label %1729, label %1792

1729:                                             ; preds = %1723
  %1730 = load ptr, ptr %28, align 8, !tbaa !9
  %1731 = getelementptr inbounds %struct.s2n_connection, ptr %1730, i32 0, i32 64
  %1732 = getelementptr inbounds [256 x i8], ptr %1731, i64 0, i64 0
  %1733 = getelementptr inbounds [3 x ptr], ptr %9, i64 0, i64 0
  %1734 = load ptr, ptr %1733, align 16, !tbaa !9
  %1735 = load i32, ptr %41, align 4, !tbaa !5
  %1736 = sext i32 %1735 to i64
  call void @llvm.memmove.p0.p0.i64(ptr align 8 %1732, ptr align 1 %1734, i64 %1736, i1 false)
  %1737 = icmp eq ptr %1732, null
  br i1 %1737, label %1738, label %1791

1738:                                             ; preds = %1729
  br label %1739

1739:                                             ; preds = %1738
  br label %1740

1740:                                             ; preds = %1739
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #10
  %1741 = call ptr @__errno_location() #11
  %1742 = load i32, ptr %1741, align 4, !tbaa !5
  store i32 %1742, ptr %42, align 4, !tbaa !5
  %1743 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1744 = call i32 @s2n_print_stacktrace(ptr noundef %1743)
  %1745 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1746 = trunc i8 %1745 to i1
  br i1 %1746, label %1747, label %1769

1747:                                             ; preds = %1740
  %1748 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1749 = call i32 @fileno(ptr noundef %1748) #10
  %1750 = call i32 @isatty(i32 noundef %1749) #10
  %1751 = icmp ne i32 %1750, 0
  br i1 %1751, label %1752, label %1769

1752:                                             ; preds = %1747
  %1753 = load i32, ptr %42, align 4, !tbaa !5
  %1754 = call ptr @__errno_location() #11
  store i32 %1753, ptr %1754, align 4, !tbaa !5
  %1755 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1756 = load i32, ptr @test_count, align 4, !tbaa !5
  %1757 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1758 = load i32, ptr %1757, align 4, !tbaa !5
  %1759 = call ptr @s2n_strerror(i32 noundef %1758, ptr noundef @.str.4)
  %1760 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1761 = load i32, ptr %1760, align 4, !tbaa !5
  %1762 = call ptr @s2n_strerror_debug(i32 noundef %1761, ptr noundef @.str.4)
  %1763 = call ptr @__errno_location() #11
  %1764 = load i32, ptr %1763, align 4, !tbaa !5
  %1765 = call ptr @strerror(i32 noundef %1764) #10
  %1766 = call ptr @__errno_location() #11
  %1767 = load i32, ptr %1766, align 4, !tbaa !5
  %1768 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1755, ptr noundef @.str.2, i32 noundef %1756, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 103, ptr noundef %1759, ptr noundef %1762, ptr noundef %1765, i32 noundef %1767) #10
  br label %1786

1769:                                             ; preds = %1747, %1740
  %1770 = load i32, ptr %42, align 4, !tbaa !5
  %1771 = call ptr @__errno_location() #11
  store i32 %1770, ptr %1771, align 4, !tbaa !5
  %1772 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1773 = load i32, ptr @test_count, align 4, !tbaa !5
  %1774 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1775 = load i32, ptr %1774, align 4, !tbaa !5
  %1776 = call ptr @s2n_strerror(i32 noundef %1775, ptr noundef @.str.4)
  %1777 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1778 = load i32, ptr %1777, align 4, !tbaa !5
  %1779 = call ptr @s2n_strerror_debug(i32 noundef %1778, ptr noundef @.str.4)
  %1780 = call ptr @__errno_location() #11
  %1781 = load i32, ptr %1780, align 4, !tbaa !5
  %1782 = call ptr @strerror(i32 noundef %1781) #10
  %1783 = call ptr @__errno_location() #11
  %1784 = load i32, ptr %1783, align 4, !tbaa !5
  %1785 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1772, ptr noundef @.str.5, i32 noundef %1773, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 103, ptr noundef %1776, ptr noundef %1779, ptr noundef %1782, i32 noundef %1784) #10
  br label %1786

1786:                                             ; preds = %1769, %1752
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #10
  br label %1787

1787:                                             ; preds = %1786
  br label %1788

1788:                                             ; preds = %1787
  call void @exit(i32 noundef 1) #12
  unreachable

1789:                                             ; No predecessors!
  br label %1790

1790:                                             ; preds = %1789
  br label %1791

1791:                                             ; preds = %1790, %1729
  br label %1792

1792:                                             ; preds = %1791, %1723
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #10
  br label %1793

1793:                                             ; preds = %1792
  br label %1794

1794:                                             ; preds = %1793
  %1795 = load ptr, ptr %28, align 8, !tbaa !9
  %1796 = load i32, ptr %1795, align 8
  %1797 = and i32 %1796, -131073
  %1798 = or i32 %1797, 0
  store i32 %1798, ptr %1795, align 8
  br label %1799

1799:                                             ; preds = %1794
  %1800 = load i32, ptr @test_count, align 4, !tbaa !5
  %1801 = add nsw i32 %1800, 1
  store i32 %1801, ptr @test_count, align 4, !tbaa !5
  %1802 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_npn_extension, i32 0, i32 4), align 8, !tbaa !45
  %1803 = load ptr, ptr %28, align 8, !tbaa !9
  %1804 = call i32 %1802(ptr noundef %1803, ptr noundef %34)
  %1805 = icmp eq i32 %1804, -1
  br i1 %1805, label %1806, label %1859

1806:                                             ; preds = %1799
  br label %1807

1807:                                             ; preds = %1806
  br label %1808

1808:                                             ; preds = %1807
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #10
  %1809 = call ptr @__errno_location() #11
  %1810 = load i32, ptr %1809, align 4, !tbaa !5
  store i32 %1810, ptr %43, align 4, !tbaa !5
  %1811 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1812 = call i32 @s2n_print_stacktrace(ptr noundef %1811)
  %1813 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1814 = trunc i8 %1813 to i1
  br i1 %1814, label %1815, label %1837

1815:                                             ; preds = %1808
  %1816 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1817 = call i32 @fileno(ptr noundef %1816) #10
  %1818 = call i32 @isatty(i32 noundef %1817) #10
  %1819 = icmp ne i32 %1818, 0
  br i1 %1819, label %1820, label %1837

1820:                                             ; preds = %1815
  %1821 = load i32, ptr %43, align 4, !tbaa !5
  %1822 = call ptr @__errno_location() #11
  store i32 %1821, ptr %1822, align 4, !tbaa !5
  %1823 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1824 = load i32, ptr @test_count, align 4, !tbaa !5
  %1825 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1826 = load i32, ptr %1825, align 4, !tbaa !5
  %1827 = call ptr @s2n_strerror(i32 noundef %1826, ptr noundef @.str.4)
  %1828 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1829 = load i32, ptr %1828, align 4, !tbaa !5
  %1830 = call ptr @s2n_strerror_debug(i32 noundef %1829, ptr noundef @.str.4)
  %1831 = call ptr @__errno_location() #11
  %1832 = load i32, ptr %1831, align 4, !tbaa !5
  %1833 = call ptr @strerror(i32 noundef %1832) #10
  %1834 = call ptr @__errno_location() #11
  %1835 = load i32, ptr %1834, align 4, !tbaa !5
  %1836 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1823, ptr noundef @.str.2, i32 noundef %1824, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 105, ptr noundef %1827, ptr noundef %1830, ptr noundef %1833, i32 noundef %1835) #10
  br label %1854

1837:                                             ; preds = %1815, %1808
  %1838 = load i32, ptr %43, align 4, !tbaa !5
  %1839 = call ptr @__errno_location() #11
  store i32 %1838, ptr %1839, align 4, !tbaa !5
  %1840 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1841 = load i32, ptr @test_count, align 4, !tbaa !5
  %1842 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1843 = load i32, ptr %1842, align 4, !tbaa !5
  %1844 = call ptr @s2n_strerror(i32 noundef %1843, ptr noundef @.str.4)
  %1845 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1846 = load i32, ptr %1845, align 4, !tbaa !5
  %1847 = call ptr @s2n_strerror_debug(i32 noundef %1846, ptr noundef @.str.4)
  %1848 = call ptr @__errno_location() #11
  %1849 = load i32, ptr %1848, align 4, !tbaa !5
  %1850 = call ptr @strerror(i32 noundef %1849) #10
  %1851 = call ptr @__errno_location() #11
  %1852 = load i32, ptr %1851, align 4, !tbaa !5
  %1853 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1840, ptr noundef @.str.5, i32 noundef %1841, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 105, ptr noundef %1844, ptr noundef %1847, ptr noundef %1850, i32 noundef %1852) #10
  br label %1854

1854:                                             ; preds = %1837, %1820
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #10
  br label %1855

1855:                                             ; preds = %1854
  br label %1856

1856:                                             ; preds = %1855
  call void @exit(i32 noundef 1) #12
  unreachable

1857:                                             ; No predecessors!
  br label %1858

1858:                                             ; preds = %1857
  br label %1859

1859:                                             ; preds = %1858, %1799
  br label %1860

1860:                                             ; preds = %1859
  br label %1861

1861:                                             ; preds = %1860
  br label %1862

1862:                                             ; preds = %1861
  %1863 = load i32, ptr @test_count, align 4, !tbaa !5
  %1864 = add nsw i32 %1863, 1
  store i32 %1864, ptr @test_count, align 4, !tbaa !5
  %1865 = load ptr, ptr %28, align 8, !tbaa !9
  %1866 = load i32, ptr %1865, align 8
  %1867 = lshr i32 %1866, 17
  %1868 = and i32 %1867, 1
  %1869 = icmp ne i32 %1868, 0
  br i1 %1869, label %1870, label %1923

1870:                                             ; preds = %1862
  br label %1871

1871:                                             ; preds = %1870
  br label %1872

1872:                                             ; preds = %1871
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #10
  %1873 = call ptr @__errno_location() #11
  %1874 = load i32, ptr %1873, align 4, !tbaa !5
  store i32 %1874, ptr %44, align 4, !tbaa !5
  %1875 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1876 = call i32 @s2n_print_stacktrace(ptr noundef %1875)
  %1877 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1878 = trunc i8 %1877 to i1
  br i1 %1878, label %1879, label %1901

1879:                                             ; preds = %1872
  %1880 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1881 = call i32 @fileno(ptr noundef %1880) #10
  %1882 = call i32 @isatty(i32 noundef %1881) #10
  %1883 = icmp ne i32 %1882, 0
  br i1 %1883, label %1884, label %1901

1884:                                             ; preds = %1879
  %1885 = load i32, ptr %44, align 4, !tbaa !5
  %1886 = call ptr @__errno_location() #11
  store i32 %1885, ptr %1886, align 4, !tbaa !5
  %1887 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1888 = load i32, ptr @test_count, align 4, !tbaa !5
  %1889 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1890 = load i32, ptr %1889, align 4, !tbaa !5
  %1891 = call ptr @s2n_strerror(i32 noundef %1890, ptr noundef @.str.4)
  %1892 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1893 = load i32, ptr %1892, align 4, !tbaa !5
  %1894 = call ptr @s2n_strerror_debug(i32 noundef %1893, ptr noundef @.str.4)
  %1895 = call ptr @__errno_location() #11
  %1896 = load i32, ptr %1895, align 4, !tbaa !5
  %1897 = call ptr @strerror(i32 noundef %1896) #10
  %1898 = call ptr @__errno_location() #11
  %1899 = load i32, ptr %1898, align 4, !tbaa !5
  %1900 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1887, ptr noundef @.str.2, i32 noundef %1888, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 106, ptr noundef %1891, ptr noundef %1894, ptr noundef %1897, i32 noundef %1899) #10
  br label %1918

1901:                                             ; preds = %1879, %1872
  %1902 = load i32, ptr %44, align 4, !tbaa !5
  %1903 = call ptr @__errno_location() #11
  store i32 %1902, ptr %1903, align 4, !tbaa !5
  %1904 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1905 = load i32, ptr @test_count, align 4, !tbaa !5
  %1906 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1907 = load i32, ptr %1906, align 4, !tbaa !5
  %1908 = call ptr @s2n_strerror(i32 noundef %1907, ptr noundef @.str.4)
  %1909 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1910 = load i32, ptr %1909, align 4, !tbaa !5
  %1911 = call ptr @s2n_strerror_debug(i32 noundef %1910, ptr noundef @.str.4)
  %1912 = call ptr @__errno_location() #11
  %1913 = load i32, ptr %1912, align 4, !tbaa !5
  %1914 = call ptr @strerror(i32 noundef %1913) #10
  %1915 = call ptr @__errno_location() #11
  %1916 = load i32, ptr %1915, align 4, !tbaa !5
  %1917 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1904, ptr noundef @.str.5, i32 noundef %1905, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 106, ptr noundef %1908, ptr noundef %1911, ptr noundef %1914, i32 noundef %1916) #10
  br label %1918

1918:                                             ; preds = %1901, %1884
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #10
  br label %1919

1919:                                             ; preds = %1918
  br label %1920

1920:                                             ; preds = %1919
  call void @exit(i32 noundef 1) #12
  unreachable

1921:                                             ; No predecessors!
  br label %1922

1922:                                             ; preds = %1921
  br label %1923

1923:                                             ; preds = %1922, %1862
  br label %1924

1924:                                             ; preds = %1923
  br label %1925

1925:                                             ; preds = %1924
  call void @llvm.lifetime.end.p0(i64 1, ptr %40) #10
  %1926 = call i32 @s2n_stuffer_free(ptr noundef %34)
  call void @llvm.lifetime.end.p0(i64 40, ptr %34) #10
  %1927 = call i32 @s2n_config_ptr_free(ptr noundef %30)
  %1928 = getelementptr inbounds %struct.s2n_result, ptr %45, i32 0, i32 0
  store i32 %1927, ptr %1928, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #10
  %1929 = call i32 @s2n_connection_ptr_free(ptr noundef %28)
  %1930 = getelementptr inbounds %struct.s2n_result, ptr %46, i32 0, i32 0
  store i32 %1929, ptr %1930, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #10
  %1931 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %1931, ptr %47, align 8, !tbaa !9
  br label %1932

1932:                                             ; preds = %1925
  %1933 = load i32, ptr @test_count, align 4, !tbaa !5
  %1934 = add nsw i32 %1933, 1
  store i32 %1934, ptr @test_count, align 4, !tbaa !5
  %1935 = load ptr, ptr %47, align 8, !tbaa !9
  %1936 = icmp eq ptr %1935, null
  br i1 %1936, label %1937, label %1990

1937:                                             ; preds = %1932
  br label %1938

1938:                                             ; preds = %1937
  br label %1939

1939:                                             ; preds = %1938
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #10
  %1940 = call ptr @__errno_location() #11
  %1941 = load i32, ptr %1940, align 4, !tbaa !5
  store i32 %1941, ptr %48, align 4, !tbaa !5
  %1942 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1943 = call i32 @s2n_print_stacktrace(ptr noundef %1942)
  %1944 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1945 = trunc i8 %1944 to i1
  br i1 %1945, label %1946, label %1968

1946:                                             ; preds = %1939
  %1947 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1948 = call i32 @fileno(ptr noundef %1947) #10
  %1949 = call i32 @isatty(i32 noundef %1948) #10
  %1950 = icmp ne i32 %1949, 0
  br i1 %1950, label %1951, label %1968

1951:                                             ; preds = %1946
  %1952 = load i32, ptr %48, align 4, !tbaa !5
  %1953 = call ptr @__errno_location() #11
  store i32 %1952, ptr %1953, align 4, !tbaa !5
  %1954 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1955 = load i32, ptr @test_count, align 4, !tbaa !5
  %1956 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1957 = load i32, ptr %1956, align 4, !tbaa !5
  %1958 = call ptr @s2n_strerror(i32 noundef %1957, ptr noundef @.str.4)
  %1959 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1960 = load i32, ptr %1959, align 4, !tbaa !5
  %1961 = call ptr @s2n_strerror_debug(i32 noundef %1960, ptr noundef @.str.4)
  %1962 = call ptr @__errno_location() #11
  %1963 = load i32, ptr %1962, align 4, !tbaa !5
  %1964 = call ptr @strerror(i32 noundef %1963) #10
  %1965 = call ptr @__errno_location() #11
  %1966 = load i32, ptr %1965, align 4, !tbaa !5
  %1967 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1954, ptr noundef @.str.2, i32 noundef %1955, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 112, ptr noundef %1958, ptr noundef %1961, ptr noundef %1964, i32 noundef %1966) #10
  br label %1985

1968:                                             ; preds = %1946, %1939
  %1969 = load i32, ptr %48, align 4, !tbaa !5
  %1970 = call ptr @__errno_location() #11
  store i32 %1969, ptr %1970, align 4, !tbaa !5
  %1971 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1972 = load i32, ptr @test_count, align 4, !tbaa !5
  %1973 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1974 = load i32, ptr %1973, align 4, !tbaa !5
  %1975 = call ptr @s2n_strerror(i32 noundef %1974, ptr noundef @.str.4)
  %1976 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1977 = load i32, ptr %1976, align 4, !tbaa !5
  %1978 = call ptr @s2n_strerror_debug(i32 noundef %1977, ptr noundef @.str.4)
  %1979 = call ptr @__errno_location() #11
  %1980 = load i32, ptr %1979, align 4, !tbaa !5
  %1981 = call ptr @strerror(i32 noundef %1980) #10
  %1982 = call ptr @__errno_location() #11
  %1983 = load i32, ptr %1982, align 4, !tbaa !5
  %1984 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1971, ptr noundef @.str.5, i32 noundef %1972, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 112, ptr noundef %1975, ptr noundef %1978, ptr noundef %1981, i32 noundef %1983) #10
  br label %1985

1985:                                             ; preds = %1968, %1951
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #10
  br label %1986

1986:                                             ; preds = %1985
  br label %1987

1987:                                             ; preds = %1986
  call void @exit(i32 noundef 1) #12
  unreachable

1988:                                             ; No predecessors!
  br label %1989

1989:                                             ; preds = %1988
  br label %1990

1990:                                             ; preds = %1989, %1932
  br label %1991

1991:                                             ; preds = %1990
  br label %1992

1992:                                             ; preds = %1991
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #10
  %1993 = call ptr @s2n_config_new()
  store ptr %1993, ptr %49, align 8, !tbaa !9
  br label %1994

1994:                                             ; preds = %1992
  %1995 = load i32, ptr @test_count, align 4, !tbaa !5
  %1996 = add nsw i32 %1995, 1
  store i32 %1996, ptr @test_count, align 4, !tbaa !5
  %1997 = load ptr, ptr %49, align 8, !tbaa !9
  %1998 = icmp eq ptr %1997, null
  br i1 %1998, label %1999, label %2052

1999:                                             ; preds = %1994
  br label %2000

2000:                                             ; preds = %1999
  br label %2001

2001:                                             ; preds = %2000
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #10
  %2002 = call ptr @__errno_location() #11
  %2003 = load i32, ptr %2002, align 4, !tbaa !5
  store i32 %2003, ptr %50, align 4, !tbaa !5
  %2004 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2005 = call i32 @s2n_print_stacktrace(ptr noundef %2004)
  %2006 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2007 = trunc i8 %2006 to i1
  br i1 %2007, label %2008, label %2030

2008:                                             ; preds = %2001
  %2009 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2010 = call i32 @fileno(ptr noundef %2009) #10
  %2011 = call i32 @isatty(i32 noundef %2010) #10
  %2012 = icmp ne i32 %2011, 0
  br i1 %2012, label %2013, label %2030

2013:                                             ; preds = %2008
  %2014 = load i32, ptr %50, align 4, !tbaa !5
  %2015 = call ptr @__errno_location() #11
  store i32 %2014, ptr %2015, align 4, !tbaa !5
  %2016 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2017 = load i32, ptr @test_count, align 4, !tbaa !5
  %2018 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2019 = load i32, ptr %2018, align 4, !tbaa !5
  %2020 = call ptr @s2n_strerror(i32 noundef %2019, ptr noundef @.str.4)
  %2021 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2022 = load i32, ptr %2021, align 4, !tbaa !5
  %2023 = call ptr @s2n_strerror_debug(i32 noundef %2022, ptr noundef @.str.4)
  %2024 = call ptr @__errno_location() #11
  %2025 = load i32, ptr %2024, align 4, !tbaa !5
  %2026 = call ptr @strerror(i32 noundef %2025) #10
  %2027 = call ptr @__errno_location() #11
  %2028 = load i32, ptr %2027, align 4, !tbaa !5
  %2029 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2016, ptr noundef @.str.2, i32 noundef %2017, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 114, ptr noundef %2020, ptr noundef %2023, ptr noundef %2026, i32 noundef %2028) #10
  br label %2047

2030:                                             ; preds = %2008, %2001
  %2031 = load i32, ptr %50, align 4, !tbaa !5
  %2032 = call ptr @__errno_location() #11
  store i32 %2031, ptr %2032, align 4, !tbaa !5
  %2033 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2034 = load i32, ptr @test_count, align 4, !tbaa !5
  %2035 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2036 = load i32, ptr %2035, align 4, !tbaa !5
  %2037 = call ptr @s2n_strerror(i32 noundef %2036, ptr noundef @.str.4)
  %2038 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2039 = load i32, ptr %2038, align 4, !tbaa !5
  %2040 = call ptr @s2n_strerror_debug(i32 noundef %2039, ptr noundef @.str.4)
  %2041 = call ptr @__errno_location() #11
  %2042 = load i32, ptr %2041, align 4, !tbaa !5
  %2043 = call ptr @strerror(i32 noundef %2042) #10
  %2044 = call ptr @__errno_location() #11
  %2045 = load i32, ptr %2044, align 4, !tbaa !5
  %2046 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2033, ptr noundef @.str.5, i32 noundef %2034, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 114, ptr noundef %2037, ptr noundef %2040, ptr noundef %2043, i32 noundef %2045) #10
  br label %2047

2047:                                             ; preds = %2030, %2013
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #10
  br label %2048

2048:                                             ; preds = %2047
  br label %2049

2049:                                             ; preds = %2048
  call void @exit(i32 noundef 1) #12
  unreachable

2050:                                             ; No predecessors!
  br label %2051

2051:                                             ; preds = %2050
  br label %2052

2052:                                             ; preds = %2051, %1994
  br label %2053

2053:                                             ; preds = %2052
  br label %2054

2054:                                             ; preds = %2053
  br label %2055

2055:                                             ; preds = %2054
  %2056 = load i32, ptr @test_count, align 4, !tbaa !5
  %2057 = add nsw i32 %2056, 1
  store i32 %2057, ptr @test_count, align 4, !tbaa !5
  %2058 = load ptr, ptr %49, align 8, !tbaa !9
  %2059 = getelementptr inbounds [3 x ptr], ptr %9, i64 0, i64 0
  %2060 = call i32 @s2n_config_set_protocol_preferences(ptr noundef %2058, ptr noundef %2059, i32 noundef 3)
  %2061 = icmp eq i32 %2060, -1
  br i1 %2061, label %2062, label %2115

2062:                                             ; preds = %2055
  br label %2063

2063:                                             ; preds = %2062
  br label %2064

2064:                                             ; preds = %2063
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #10
  %2065 = call ptr @__errno_location() #11
  %2066 = load i32, ptr %2065, align 4, !tbaa !5
  store i32 %2066, ptr %51, align 4, !tbaa !5
  %2067 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2068 = call i32 @s2n_print_stacktrace(ptr noundef %2067)
  %2069 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2070 = trunc i8 %2069 to i1
  br i1 %2070, label %2071, label %2093

2071:                                             ; preds = %2064
  %2072 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2073 = call i32 @fileno(ptr noundef %2072) #10
  %2074 = call i32 @isatty(i32 noundef %2073) #10
  %2075 = icmp ne i32 %2074, 0
  br i1 %2075, label %2076, label %2093

2076:                                             ; preds = %2071
  %2077 = load i32, ptr %51, align 4, !tbaa !5
  %2078 = call ptr @__errno_location() #11
  store i32 %2077, ptr %2078, align 4, !tbaa !5
  %2079 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2080 = load i32, ptr @test_count, align 4, !tbaa !5
  %2081 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2082 = load i32, ptr %2081, align 4, !tbaa !5
  %2083 = call ptr @s2n_strerror(i32 noundef %2082, ptr noundef @.str.4)
  %2084 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2085 = load i32, ptr %2084, align 4, !tbaa !5
  %2086 = call ptr @s2n_strerror_debug(i32 noundef %2085, ptr noundef @.str.4)
  %2087 = call ptr @__errno_location() #11
  %2088 = load i32, ptr %2087, align 4, !tbaa !5
  %2089 = call ptr @strerror(i32 noundef %2088) #10
  %2090 = call ptr @__errno_location() #11
  %2091 = load i32, ptr %2090, align 4, !tbaa !5
  %2092 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2079, ptr noundef @.str.2, i32 noundef %2080, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 115, ptr noundef %2083, ptr noundef %2086, ptr noundef %2089, i32 noundef %2091) #10
  br label %2110

2093:                                             ; preds = %2071, %2064
  %2094 = load i32, ptr %51, align 4, !tbaa !5
  %2095 = call ptr @__errno_location() #11
  store i32 %2094, ptr %2095, align 4, !tbaa !5
  %2096 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2097 = load i32, ptr @test_count, align 4, !tbaa !5
  %2098 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2099 = load i32, ptr %2098, align 4, !tbaa !5
  %2100 = call ptr @s2n_strerror(i32 noundef %2099, ptr noundef @.str.4)
  %2101 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2102 = load i32, ptr %2101, align 4, !tbaa !5
  %2103 = call ptr @s2n_strerror_debug(i32 noundef %2102, ptr noundef @.str.4)
  %2104 = call ptr @__errno_location() #11
  %2105 = load i32, ptr %2104, align 4, !tbaa !5
  %2106 = call ptr @strerror(i32 noundef %2105) #10
  %2107 = call ptr @__errno_location() #11
  %2108 = load i32, ptr %2107, align 4, !tbaa !5
  %2109 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2096, ptr noundef @.str.5, i32 noundef %2097, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 115, ptr noundef %2100, ptr noundef %2103, ptr noundef %2106, i32 noundef %2108) #10
  br label %2110

2110:                                             ; preds = %2093, %2076
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #10
  br label %2111

2111:                                             ; preds = %2110
  br label %2112

2112:                                             ; preds = %2111
  call void @exit(i32 noundef 1) #12
  unreachable

2113:                                             ; No predecessors!
  br label %2114

2114:                                             ; preds = %2113
  br label %2115

2115:                                             ; preds = %2114, %2055
  br label %2116

2116:                                             ; preds = %2115
  br label %2117

2117:                                             ; preds = %2116
  br label %2118

2118:                                             ; preds = %2117
  %2119 = load i32, ptr @test_count, align 4, !tbaa !5
  %2120 = add nsw i32 %2119, 1
  store i32 %2120, ptr @test_count, align 4, !tbaa !5
  %2121 = load ptr, ptr %47, align 8, !tbaa !9
  %2122 = load ptr, ptr %49, align 8, !tbaa !9
  %2123 = call i32 @s2n_connection_set_config(ptr noundef %2121, ptr noundef %2122)
  %2124 = icmp eq i32 %2123, -1
  br i1 %2124, label %2125, label %2178

2125:                                             ; preds = %2118
  br label %2126

2126:                                             ; preds = %2125
  br label %2127

2127:                                             ; preds = %2126
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #10
  %2128 = call ptr @__errno_location() #11
  %2129 = load i32, ptr %2128, align 4, !tbaa !5
  store i32 %2129, ptr %52, align 4, !tbaa !5
  %2130 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2131 = call i32 @s2n_print_stacktrace(ptr noundef %2130)
  %2132 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2133 = trunc i8 %2132 to i1
  br i1 %2133, label %2134, label %2156

2134:                                             ; preds = %2127
  %2135 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2136 = call i32 @fileno(ptr noundef %2135) #10
  %2137 = call i32 @isatty(i32 noundef %2136) #10
  %2138 = icmp ne i32 %2137, 0
  br i1 %2138, label %2139, label %2156

2139:                                             ; preds = %2134
  %2140 = load i32, ptr %52, align 4, !tbaa !5
  %2141 = call ptr @__errno_location() #11
  store i32 %2140, ptr %2141, align 4, !tbaa !5
  %2142 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2143 = load i32, ptr @test_count, align 4, !tbaa !5
  %2144 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2145 = load i32, ptr %2144, align 4, !tbaa !5
  %2146 = call ptr @s2n_strerror(i32 noundef %2145, ptr noundef @.str.4)
  %2147 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2148 = load i32, ptr %2147, align 4, !tbaa !5
  %2149 = call ptr @s2n_strerror_debug(i32 noundef %2148, ptr noundef @.str.4)
  %2150 = call ptr @__errno_location() #11
  %2151 = load i32, ptr %2150, align 4, !tbaa !5
  %2152 = call ptr @strerror(i32 noundef %2151) #10
  %2153 = call ptr @__errno_location() #11
  %2154 = load i32, ptr %2153, align 4, !tbaa !5
  %2155 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2142, ptr noundef @.str.2, i32 noundef %2143, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 116, ptr noundef %2146, ptr noundef %2149, ptr noundef %2152, i32 noundef %2154) #10
  br label %2173

2156:                                             ; preds = %2134, %2127
  %2157 = load i32, ptr %52, align 4, !tbaa !5
  %2158 = call ptr @__errno_location() #11
  store i32 %2157, ptr %2158, align 4, !tbaa !5
  %2159 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2160 = load i32, ptr @test_count, align 4, !tbaa !5
  %2161 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2162 = load i32, ptr %2161, align 4, !tbaa !5
  %2163 = call ptr @s2n_strerror(i32 noundef %2162, ptr noundef @.str.4)
  %2164 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2165 = load i32, ptr %2164, align 4, !tbaa !5
  %2166 = call ptr @s2n_strerror_debug(i32 noundef %2165, ptr noundef @.str.4)
  %2167 = call ptr @__errno_location() #11
  %2168 = load i32, ptr %2167, align 4, !tbaa !5
  %2169 = call ptr @strerror(i32 noundef %2168) #10
  %2170 = call ptr @__errno_location() #11
  %2171 = load i32, ptr %2170, align 4, !tbaa !5
  %2172 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2159, ptr noundef @.str.5, i32 noundef %2160, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 116, ptr noundef %2163, ptr noundef %2166, ptr noundef %2169, i32 noundef %2171) #10
  br label %2173

2173:                                             ; preds = %2156, %2139
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #10
  br label %2174

2174:                                             ; preds = %2173
  br label %2175

2175:                                             ; preds = %2174
  call void @exit(i32 noundef 1) #12
  unreachable

2176:                                             ; No predecessors!
  br label %2177

2177:                                             ; preds = %2176
  br label %2178

2178:                                             ; preds = %2177, %2118
  br label %2179

2179:                                             ; preds = %2178
  br label %2180

2180:                                             ; preds = %2179
  br label %2181

2181:                                             ; preds = %2180
  %2182 = load i32, ptr @test_count, align 4, !tbaa !5
  %2183 = add nsw i32 %2182, 1
  store i32 %2183, ptr @test_count, align 4, !tbaa !5
  %2184 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_npn_extension, i32 0, i32 5), align 8, !tbaa !16
  %2185 = load ptr, ptr %47, align 8, !tbaa !9
  %2186 = call zeroext i1 %2184(ptr noundef %2185)
  br i1 %2186, label %2187, label %2240

2187:                                             ; preds = %2181
  br label %2188

2188:                                             ; preds = %2187
  br label %2189

2189:                                             ; preds = %2188
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #10
  %2190 = call ptr @__errno_location() #11
  %2191 = load i32, ptr %2190, align 4, !tbaa !5
  store i32 %2191, ptr %53, align 4, !tbaa !5
  %2192 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2193 = call i32 @s2n_print_stacktrace(ptr noundef %2192)
  %2194 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2195 = trunc i8 %2194 to i1
  br i1 %2195, label %2196, label %2218

2196:                                             ; preds = %2189
  %2197 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2198 = call i32 @fileno(ptr noundef %2197) #10
  %2199 = call i32 @isatty(i32 noundef %2198) #10
  %2200 = icmp ne i32 %2199, 0
  br i1 %2200, label %2201, label %2218

2201:                                             ; preds = %2196
  %2202 = load i32, ptr %53, align 4, !tbaa !5
  %2203 = call ptr @__errno_location() #11
  store i32 %2202, ptr %2203, align 4, !tbaa !5
  %2204 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2205 = load i32, ptr @test_count, align 4, !tbaa !5
  %2206 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2207 = load i32, ptr %2206, align 4, !tbaa !5
  %2208 = call ptr @s2n_strerror(i32 noundef %2207, ptr noundef @.str.4)
  %2209 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2210 = load i32, ptr %2209, align 4, !tbaa !5
  %2211 = call ptr @s2n_strerror_debug(i32 noundef %2210, ptr noundef @.str.4)
  %2212 = call ptr @__errno_location() #11
  %2213 = load i32, ptr %2212, align 4, !tbaa !5
  %2214 = call ptr @strerror(i32 noundef %2213) #10
  %2215 = call ptr @__errno_location() #11
  %2216 = load i32, ptr %2215, align 4, !tbaa !5
  %2217 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2204, ptr noundef @.str.2, i32 noundef %2205, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 119, ptr noundef %2208, ptr noundef %2211, ptr noundef %2214, i32 noundef %2216) #10
  br label %2235

2218:                                             ; preds = %2196, %2189
  %2219 = load i32, ptr %53, align 4, !tbaa !5
  %2220 = call ptr @__errno_location() #11
  store i32 %2219, ptr %2220, align 4, !tbaa !5
  %2221 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2222 = load i32, ptr @test_count, align 4, !tbaa !5
  %2223 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2224 = load i32, ptr %2223, align 4, !tbaa !5
  %2225 = call ptr @s2n_strerror(i32 noundef %2224, ptr noundef @.str.4)
  %2226 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2227 = load i32, ptr %2226, align 4, !tbaa !5
  %2228 = call ptr @s2n_strerror_debug(i32 noundef %2227, ptr noundef @.str.4)
  %2229 = call ptr @__errno_location() #11
  %2230 = load i32, ptr %2229, align 4, !tbaa !5
  %2231 = call ptr @strerror(i32 noundef %2230) #10
  %2232 = call ptr @__errno_location() #11
  %2233 = load i32, ptr %2232, align 4, !tbaa !5
  %2234 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2221, ptr noundef @.str.5, i32 noundef %2222, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 119, ptr noundef %2225, ptr noundef %2228, ptr noundef %2231, i32 noundef %2233) #10
  br label %2235

2235:                                             ; preds = %2218, %2201
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #10
  br label %2236

2236:                                             ; preds = %2235
  br label %2237

2237:                                             ; preds = %2236
  call void @exit(i32 noundef 1) #12
  unreachable

2238:                                             ; No predecessors!
  br label %2239

2239:                                             ; preds = %2238
  br label %2240

2240:                                             ; preds = %2239, %2181
  br label %2241

2241:                                             ; preds = %2240
  br label %2242

2242:                                             ; preds = %2241
  %2243 = load ptr, ptr %47, align 8, !tbaa !9
  %2244 = load i32, ptr %2243, align 8
  %2245 = and i32 %2244, -131073
  %2246 = or i32 %2245, 131072
  store i32 %2246, ptr %2243, align 8
  br label %2247

2247:                                             ; preds = %2242
  %2248 = load i32, ptr @test_count, align 4, !tbaa !5
  %2249 = add nsw i32 %2248, 1
  store i32 %2249, ptr @test_count, align 4, !tbaa !5
  %2250 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_npn_extension, i32 0, i32 5), align 8, !tbaa !16
  %2251 = load ptr, ptr %47, align 8, !tbaa !9
  %2252 = call zeroext i1 %2250(ptr noundef %2251)
  br i1 %2252, label %2306, label %2253

2253:                                             ; preds = %2247
  br label %2254

2254:                                             ; preds = %2253
  br label %2255

2255:                                             ; preds = %2254
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #10
  %2256 = call ptr @__errno_location() #11
  %2257 = load i32, ptr %2256, align 4, !tbaa !5
  store i32 %2257, ptr %54, align 4, !tbaa !5
  %2258 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2259 = call i32 @s2n_print_stacktrace(ptr noundef %2258)
  %2260 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2261 = trunc i8 %2260 to i1
  br i1 %2261, label %2262, label %2284

2262:                                             ; preds = %2255
  %2263 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2264 = call i32 @fileno(ptr noundef %2263) #10
  %2265 = call i32 @isatty(i32 noundef %2264) #10
  %2266 = icmp ne i32 %2265, 0
  br i1 %2266, label %2267, label %2284

2267:                                             ; preds = %2262
  %2268 = load i32, ptr %54, align 4, !tbaa !5
  %2269 = call ptr @__errno_location() #11
  store i32 %2268, ptr %2269, align 4, !tbaa !5
  %2270 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2271 = load i32, ptr @test_count, align 4, !tbaa !5
  %2272 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2273 = load i32, ptr %2272, align 4, !tbaa !5
  %2274 = call ptr @s2n_strerror(i32 noundef %2273, ptr noundef @.str.4)
  %2275 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2276 = load i32, ptr %2275, align 4, !tbaa !5
  %2277 = call ptr @s2n_strerror_debug(i32 noundef %2276, ptr noundef @.str.4)
  %2278 = call ptr @__errno_location() #11
  %2279 = load i32, ptr %2278, align 4, !tbaa !5
  %2280 = call ptr @strerror(i32 noundef %2279) #10
  %2281 = call ptr @__errno_location() #11
  %2282 = load i32, ptr %2281, align 4, !tbaa !5
  %2283 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2270, ptr noundef @.str.2, i32 noundef %2271, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 123, ptr noundef %2274, ptr noundef %2277, ptr noundef %2280, i32 noundef %2282) #10
  br label %2301

2284:                                             ; preds = %2262, %2255
  %2285 = load i32, ptr %54, align 4, !tbaa !5
  %2286 = call ptr @__errno_location() #11
  store i32 %2285, ptr %2286, align 4, !tbaa !5
  %2287 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2288 = load i32, ptr @test_count, align 4, !tbaa !5
  %2289 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2290 = load i32, ptr %2289, align 4, !tbaa !5
  %2291 = call ptr @s2n_strerror(i32 noundef %2290, ptr noundef @.str.4)
  %2292 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2293 = load i32, ptr %2292, align 4, !tbaa !5
  %2294 = call ptr @s2n_strerror_debug(i32 noundef %2293, ptr noundef @.str.4)
  %2295 = call ptr @__errno_location() #11
  %2296 = load i32, ptr %2295, align 4, !tbaa !5
  %2297 = call ptr @strerror(i32 noundef %2296) #10
  %2298 = call ptr @__errno_location() #11
  %2299 = load i32, ptr %2298, align 4, !tbaa !5
  %2300 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2287, ptr noundef @.str.5, i32 noundef %2288, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 123, ptr noundef %2291, ptr noundef %2294, ptr noundef %2297, i32 noundef %2299) #10
  br label %2301

2301:                                             ; preds = %2284, %2267
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #10
  br label %2302

2302:                                             ; preds = %2301
  br label %2303

2303:                                             ; preds = %2302
  call void @exit(i32 noundef 1) #12
  unreachable

2304:                                             ; No predecessors!
  br label %2305

2305:                                             ; preds = %2304
  br label %2306

2306:                                             ; preds = %2305, %2247
  br label %2307

2307:                                             ; preds = %2306
  br label %2308

2308:                                             ; preds = %2307
  %2309 = call i32 @s2n_config_ptr_free(ptr noundef %49)
  %2310 = getelementptr inbounds %struct.s2n_result, ptr %55, i32 0, i32 0
  store i32 %2309, ptr %2310, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #10
  %2311 = call i32 @s2n_connection_ptr_free(ptr noundef %47)
  %2312 = getelementptr inbounds %struct.s2n_result, ptr %56, i32 0, i32 0
  store i32 %2311, ptr %2312, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #10
  %2313 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %2313, ptr %57, align 8, !tbaa !9
  br label %2314

2314:                                             ; preds = %2308
  %2315 = load i32, ptr @test_count, align 4, !tbaa !5
  %2316 = add nsw i32 %2315, 1
  store i32 %2316, ptr @test_count, align 4, !tbaa !5
  %2317 = load ptr, ptr %57, align 8, !tbaa !9
  %2318 = icmp eq ptr %2317, null
  br i1 %2318, label %2319, label %2372

2319:                                             ; preds = %2314
  br label %2320

2320:                                             ; preds = %2319
  br label %2321

2321:                                             ; preds = %2320
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #10
  %2322 = call ptr @__errno_location() #11
  %2323 = load i32, ptr %2322, align 4, !tbaa !5
  store i32 %2323, ptr %58, align 4, !tbaa !5
  %2324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2325 = call i32 @s2n_print_stacktrace(ptr noundef %2324)
  %2326 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2327 = trunc i8 %2326 to i1
  br i1 %2327, label %2328, label %2350

2328:                                             ; preds = %2321
  %2329 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2330 = call i32 @fileno(ptr noundef %2329) #10
  %2331 = call i32 @isatty(i32 noundef %2330) #10
  %2332 = icmp ne i32 %2331, 0
  br i1 %2332, label %2333, label %2350

2333:                                             ; preds = %2328
  %2334 = load i32, ptr %58, align 4, !tbaa !5
  %2335 = call ptr @__errno_location() #11
  store i32 %2334, ptr %2335, align 4, !tbaa !5
  %2336 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2337 = load i32, ptr @test_count, align 4, !tbaa !5
  %2338 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2339 = load i32, ptr %2338, align 4, !tbaa !5
  %2340 = call ptr @s2n_strerror(i32 noundef %2339, ptr noundef @.str.4)
  %2341 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2342 = load i32, ptr %2341, align 4, !tbaa !5
  %2343 = call ptr @s2n_strerror_debug(i32 noundef %2342, ptr noundef @.str.4)
  %2344 = call ptr @__errno_location() #11
  %2345 = load i32, ptr %2344, align 4, !tbaa !5
  %2346 = call ptr @strerror(i32 noundef %2345) #10
  %2347 = call ptr @__errno_location() #11
  %2348 = load i32, ptr %2347, align 4, !tbaa !5
  %2349 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2336, ptr noundef @.str.2, i32 noundef %2337, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 129, ptr noundef %2340, ptr noundef %2343, ptr noundef %2346, i32 noundef %2348) #10
  br label %2367

2350:                                             ; preds = %2328, %2321
  %2351 = load i32, ptr %58, align 4, !tbaa !5
  %2352 = call ptr @__errno_location() #11
  store i32 %2351, ptr %2352, align 4, !tbaa !5
  %2353 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2354 = load i32, ptr @test_count, align 4, !tbaa !5
  %2355 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2356 = load i32, ptr %2355, align 4, !tbaa !5
  %2357 = call ptr @s2n_strerror(i32 noundef %2356, ptr noundef @.str.4)
  %2358 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2359 = load i32, ptr %2358, align 4, !tbaa !5
  %2360 = call ptr @s2n_strerror_debug(i32 noundef %2359, ptr noundef @.str.4)
  %2361 = call ptr @__errno_location() #11
  %2362 = load i32, ptr %2361, align 4, !tbaa !5
  %2363 = call ptr @strerror(i32 noundef %2362) #10
  %2364 = call ptr @__errno_location() #11
  %2365 = load i32, ptr %2364, align 4, !tbaa !5
  %2366 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2353, ptr noundef @.str.5, i32 noundef %2354, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 129, ptr noundef %2357, ptr noundef %2360, ptr noundef %2363, i32 noundef %2365) #10
  br label %2367

2367:                                             ; preds = %2350, %2333
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #10
  br label %2368

2368:                                             ; preds = %2367
  br label %2369

2369:                                             ; preds = %2368
  call void @exit(i32 noundef 1) #12
  unreachable

2370:                                             ; No predecessors!
  br label %2371

2371:                                             ; preds = %2370
  br label %2372

2372:                                             ; preds = %2371, %2314
  br label %2373

2373:                                             ; preds = %2372
  br label %2374

2374:                                             ; preds = %2373
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #10
  %2375 = call ptr @s2n_config_new()
  store ptr %2375, ptr %59, align 8, !tbaa !9
  br label %2376

2376:                                             ; preds = %2374
  %2377 = load i32, ptr @test_count, align 4, !tbaa !5
  %2378 = add nsw i32 %2377, 1
  store i32 %2378, ptr @test_count, align 4, !tbaa !5
  %2379 = load ptr, ptr %59, align 8, !tbaa !9
  %2380 = icmp eq ptr %2379, null
  br i1 %2380, label %2381, label %2434

2381:                                             ; preds = %2376
  br label %2382

2382:                                             ; preds = %2381
  br label %2383

2383:                                             ; preds = %2382
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #10
  %2384 = call ptr @__errno_location() #11
  %2385 = load i32, ptr %2384, align 4, !tbaa !5
  store i32 %2385, ptr %60, align 4, !tbaa !5
  %2386 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2387 = call i32 @s2n_print_stacktrace(ptr noundef %2386)
  %2388 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2389 = trunc i8 %2388 to i1
  br i1 %2389, label %2390, label %2412

2390:                                             ; preds = %2383
  %2391 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2392 = call i32 @fileno(ptr noundef %2391) #10
  %2393 = call i32 @isatty(i32 noundef %2392) #10
  %2394 = icmp ne i32 %2393, 0
  br i1 %2394, label %2395, label %2412

2395:                                             ; preds = %2390
  %2396 = load i32, ptr %60, align 4, !tbaa !5
  %2397 = call ptr @__errno_location() #11
  store i32 %2396, ptr %2397, align 4, !tbaa !5
  %2398 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2399 = load i32, ptr @test_count, align 4, !tbaa !5
  %2400 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2401 = load i32, ptr %2400, align 4, !tbaa !5
  %2402 = call ptr @s2n_strerror(i32 noundef %2401, ptr noundef @.str.4)
  %2403 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2404 = load i32, ptr %2403, align 4, !tbaa !5
  %2405 = call ptr @s2n_strerror_debug(i32 noundef %2404, ptr noundef @.str.4)
  %2406 = call ptr @__errno_location() #11
  %2407 = load i32, ptr %2406, align 4, !tbaa !5
  %2408 = call ptr @strerror(i32 noundef %2407) #10
  %2409 = call ptr @__errno_location() #11
  %2410 = load i32, ptr %2409, align 4, !tbaa !5
  %2411 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2398, ptr noundef @.str.2, i32 noundef %2399, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 131, ptr noundef %2402, ptr noundef %2405, ptr noundef %2408, i32 noundef %2410) #10
  br label %2429

2412:                                             ; preds = %2390, %2383
  %2413 = load i32, ptr %60, align 4, !tbaa !5
  %2414 = call ptr @__errno_location() #11
  store i32 %2413, ptr %2414, align 4, !tbaa !5
  %2415 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2416 = load i32, ptr @test_count, align 4, !tbaa !5
  %2417 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2418 = load i32, ptr %2417, align 4, !tbaa !5
  %2419 = call ptr @s2n_strerror(i32 noundef %2418, ptr noundef @.str.4)
  %2420 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2421 = load i32, ptr %2420, align 4, !tbaa !5
  %2422 = call ptr @s2n_strerror_debug(i32 noundef %2421, ptr noundef @.str.4)
  %2423 = call ptr @__errno_location() #11
  %2424 = load i32, ptr %2423, align 4, !tbaa !5
  %2425 = call ptr @strerror(i32 noundef %2424) #10
  %2426 = call ptr @__errno_location() #11
  %2427 = load i32, ptr %2426, align 4, !tbaa !5
  %2428 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2415, ptr noundef @.str.5, i32 noundef %2416, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 131, ptr noundef %2419, ptr noundef %2422, ptr noundef %2425, i32 noundef %2427) #10
  br label %2429

2429:                                             ; preds = %2412, %2395
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #10
  br label %2430

2430:                                             ; preds = %2429
  br label %2431

2431:                                             ; preds = %2430
  call void @exit(i32 noundef 1) #12
  unreachable

2432:                                             ; No predecessors!
  br label %2433

2433:                                             ; preds = %2432
  br label %2434

2434:                                             ; preds = %2433, %2376
  br label %2435

2435:                                             ; preds = %2434
  br label %2436

2436:                                             ; preds = %2435
  br label %2437

2437:                                             ; preds = %2436
  %2438 = load i32, ptr @test_count, align 4, !tbaa !5
  %2439 = add nsw i32 %2438, 1
  store i32 %2439, ptr @test_count, align 4, !tbaa !5
  %2440 = load ptr, ptr %59, align 8, !tbaa !9
  %2441 = getelementptr inbounds [3 x ptr], ptr %9, i64 0, i64 0
  %2442 = call i32 @s2n_config_set_protocol_preferences(ptr noundef %2440, ptr noundef %2441, i32 noundef 3)
  %2443 = icmp eq i32 %2442, -1
  br i1 %2443, label %2444, label %2497

2444:                                             ; preds = %2437
  br label %2445

2445:                                             ; preds = %2444
  br label %2446

2446:                                             ; preds = %2445
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #10
  %2447 = call ptr @__errno_location() #11
  %2448 = load i32, ptr %2447, align 4, !tbaa !5
  store i32 %2448, ptr %61, align 4, !tbaa !5
  %2449 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2450 = call i32 @s2n_print_stacktrace(ptr noundef %2449)
  %2451 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2452 = trunc i8 %2451 to i1
  br i1 %2452, label %2453, label %2475

2453:                                             ; preds = %2446
  %2454 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2455 = call i32 @fileno(ptr noundef %2454) #10
  %2456 = call i32 @isatty(i32 noundef %2455) #10
  %2457 = icmp ne i32 %2456, 0
  br i1 %2457, label %2458, label %2475

2458:                                             ; preds = %2453
  %2459 = load i32, ptr %61, align 4, !tbaa !5
  %2460 = call ptr @__errno_location() #11
  store i32 %2459, ptr %2460, align 4, !tbaa !5
  %2461 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2462 = load i32, ptr @test_count, align 4, !tbaa !5
  %2463 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2464 = load i32, ptr %2463, align 4, !tbaa !5
  %2465 = call ptr @s2n_strerror(i32 noundef %2464, ptr noundef @.str.4)
  %2466 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2467 = load i32, ptr %2466, align 4, !tbaa !5
  %2468 = call ptr @s2n_strerror_debug(i32 noundef %2467, ptr noundef @.str.4)
  %2469 = call ptr @__errno_location() #11
  %2470 = load i32, ptr %2469, align 4, !tbaa !5
  %2471 = call ptr @strerror(i32 noundef %2470) #10
  %2472 = call ptr @__errno_location() #11
  %2473 = load i32, ptr %2472, align 4, !tbaa !5
  %2474 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2461, ptr noundef @.str.2, i32 noundef %2462, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 132, ptr noundef %2465, ptr noundef %2468, ptr noundef %2471, i32 noundef %2473) #10
  br label %2492

2475:                                             ; preds = %2453, %2446
  %2476 = load i32, ptr %61, align 4, !tbaa !5
  %2477 = call ptr @__errno_location() #11
  store i32 %2476, ptr %2477, align 4, !tbaa !5
  %2478 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2479 = load i32, ptr @test_count, align 4, !tbaa !5
  %2480 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2481 = load i32, ptr %2480, align 4, !tbaa !5
  %2482 = call ptr @s2n_strerror(i32 noundef %2481, ptr noundef @.str.4)
  %2483 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2484 = load i32, ptr %2483, align 4, !tbaa !5
  %2485 = call ptr @s2n_strerror_debug(i32 noundef %2484, ptr noundef @.str.4)
  %2486 = call ptr @__errno_location() #11
  %2487 = load i32, ptr %2486, align 4, !tbaa !5
  %2488 = call ptr @strerror(i32 noundef %2487) #10
  %2489 = call ptr @__errno_location() #11
  %2490 = load i32, ptr %2489, align 4, !tbaa !5
  %2491 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2478, ptr noundef @.str.5, i32 noundef %2479, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 132, ptr noundef %2482, ptr noundef %2485, ptr noundef %2488, i32 noundef %2490) #10
  br label %2492

2492:                                             ; preds = %2475, %2458
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #10
  br label %2493

2493:                                             ; preds = %2492
  br label %2494

2494:                                             ; preds = %2493
  call void @exit(i32 noundef 1) #12
  unreachable

2495:                                             ; No predecessors!
  br label %2496

2496:                                             ; preds = %2495
  br label %2497

2497:                                             ; preds = %2496, %2437
  br label %2498

2498:                                             ; preds = %2497
  br label %2499

2499:                                             ; preds = %2498
  br label %2500

2500:                                             ; preds = %2499
  %2501 = load i32, ptr @test_count, align 4, !tbaa !5
  %2502 = add nsw i32 %2501, 1
  store i32 %2502, ptr @test_count, align 4, !tbaa !5
  %2503 = load ptr, ptr %57, align 8, !tbaa !9
  %2504 = load ptr, ptr %59, align 8, !tbaa !9
  %2505 = call i32 @s2n_connection_set_config(ptr noundef %2503, ptr noundef %2504)
  %2506 = icmp eq i32 %2505, -1
  br i1 %2506, label %2507, label %2560

2507:                                             ; preds = %2500
  br label %2508

2508:                                             ; preds = %2507
  br label %2509

2509:                                             ; preds = %2508
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #10
  %2510 = call ptr @__errno_location() #11
  %2511 = load i32, ptr %2510, align 4, !tbaa !5
  store i32 %2511, ptr %62, align 4, !tbaa !5
  %2512 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2513 = call i32 @s2n_print_stacktrace(ptr noundef %2512)
  %2514 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2515 = trunc i8 %2514 to i1
  br i1 %2515, label %2516, label %2538

2516:                                             ; preds = %2509
  %2517 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2518 = call i32 @fileno(ptr noundef %2517) #10
  %2519 = call i32 @isatty(i32 noundef %2518) #10
  %2520 = icmp ne i32 %2519, 0
  br i1 %2520, label %2521, label %2538

2521:                                             ; preds = %2516
  %2522 = load i32, ptr %62, align 4, !tbaa !5
  %2523 = call ptr @__errno_location() #11
  store i32 %2522, ptr %2523, align 4, !tbaa !5
  %2524 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2525 = load i32, ptr @test_count, align 4, !tbaa !5
  %2526 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2527 = load i32, ptr %2526, align 4, !tbaa !5
  %2528 = call ptr @s2n_strerror(i32 noundef %2527, ptr noundef @.str.4)
  %2529 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2530 = load i32, ptr %2529, align 4, !tbaa !5
  %2531 = call ptr @s2n_strerror_debug(i32 noundef %2530, ptr noundef @.str.4)
  %2532 = call ptr @__errno_location() #11
  %2533 = load i32, ptr %2532, align 4, !tbaa !5
  %2534 = call ptr @strerror(i32 noundef %2533) #10
  %2535 = call ptr @__errno_location() #11
  %2536 = load i32, ptr %2535, align 4, !tbaa !5
  %2537 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2524, ptr noundef @.str.2, i32 noundef %2525, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 133, ptr noundef %2528, ptr noundef %2531, ptr noundef %2534, i32 noundef %2536) #10
  br label %2555

2538:                                             ; preds = %2516, %2509
  %2539 = load i32, ptr %62, align 4, !tbaa !5
  %2540 = call ptr @__errno_location() #11
  store i32 %2539, ptr %2540, align 4, !tbaa !5
  %2541 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2542 = load i32, ptr @test_count, align 4, !tbaa !5
  %2543 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2544 = load i32, ptr %2543, align 4, !tbaa !5
  %2545 = call ptr @s2n_strerror(i32 noundef %2544, ptr noundef @.str.4)
  %2546 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2547 = load i32, ptr %2546, align 4, !tbaa !5
  %2548 = call ptr @s2n_strerror_debug(i32 noundef %2547, ptr noundef @.str.4)
  %2549 = call ptr @__errno_location() #11
  %2550 = load i32, ptr %2549, align 4, !tbaa !5
  %2551 = call ptr @strerror(i32 noundef %2550) #10
  %2552 = call ptr @__errno_location() #11
  %2553 = load i32, ptr %2552, align 4, !tbaa !5
  %2554 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2541, ptr noundef @.str.5, i32 noundef %2542, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 133, ptr noundef %2545, ptr noundef %2548, ptr noundef %2551, i32 noundef %2553) #10
  br label %2555

2555:                                             ; preds = %2538, %2521
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #10
  br label %2556

2556:                                             ; preds = %2555
  br label %2557

2557:                                             ; preds = %2556
  call void @exit(i32 noundef 1) #12
  unreachable

2558:                                             ; No predecessors!
  br label %2559

2559:                                             ; preds = %2558
  br label %2560

2560:                                             ; preds = %2559, %2500
  br label %2561

2561:                                             ; preds = %2560
  br label %2562

2562:                                             ; preds = %2561
  call void @llvm.lifetime.start.p0(i64 40, ptr %63) #10
  call void @llvm.memset.p0.i64(ptr align 8 %63, i8 0, i64 40, i1 false)
  br label %2563

2563:                                             ; preds = %2562
  %2564 = load i32, ptr @test_count, align 4, !tbaa !5
  %2565 = add nsw i32 %2564, 1
  store i32 %2565, ptr @test_count, align 4, !tbaa !5
  %2566 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %63, i32 noundef 0)
  %2567 = icmp eq i32 %2566, -1
  br i1 %2567, label %2568, label %2621

2568:                                             ; preds = %2563
  br label %2569

2569:                                             ; preds = %2568
  br label %2570

2570:                                             ; preds = %2569
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #10
  %2571 = call ptr @__errno_location() #11
  %2572 = load i32, ptr %2571, align 4, !tbaa !5
  store i32 %2572, ptr %64, align 4, !tbaa !5
  %2573 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2574 = call i32 @s2n_print_stacktrace(ptr noundef %2573)
  %2575 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2576 = trunc i8 %2575 to i1
  br i1 %2576, label %2577, label %2599

2577:                                             ; preds = %2570
  %2578 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2579 = call i32 @fileno(ptr noundef %2578) #10
  %2580 = call i32 @isatty(i32 noundef %2579) #10
  %2581 = icmp ne i32 %2580, 0
  br i1 %2581, label %2582, label %2599

2582:                                             ; preds = %2577
  %2583 = load i32, ptr %64, align 4, !tbaa !5
  %2584 = call ptr @__errno_location() #11
  store i32 %2583, ptr %2584, align 4, !tbaa !5
  %2585 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2586 = load i32, ptr @test_count, align 4, !tbaa !5
  %2587 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2588 = load i32, ptr %2587, align 4, !tbaa !5
  %2589 = call ptr @s2n_strerror(i32 noundef %2588, ptr noundef @.str.4)
  %2590 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2591 = load i32, ptr %2590, align 4, !tbaa !5
  %2592 = call ptr @s2n_strerror_debug(i32 noundef %2591, ptr noundef @.str.4)
  %2593 = call ptr @__errno_location() #11
  %2594 = load i32, ptr %2593, align 4, !tbaa !5
  %2595 = call ptr @strerror(i32 noundef %2594) #10
  %2596 = call ptr @__errno_location() #11
  %2597 = load i32, ptr %2596, align 4, !tbaa !5
  %2598 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2585, ptr noundef @.str.2, i32 noundef %2586, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 135, ptr noundef %2589, ptr noundef %2592, ptr noundef %2595, i32 noundef %2597) #10
  br label %2616

2599:                                             ; preds = %2577, %2570
  %2600 = load i32, ptr %64, align 4, !tbaa !5
  %2601 = call ptr @__errno_location() #11
  store i32 %2600, ptr %2601, align 4, !tbaa !5
  %2602 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2603 = load i32, ptr @test_count, align 4, !tbaa !5
  %2604 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2605 = load i32, ptr %2604, align 4, !tbaa !5
  %2606 = call ptr @s2n_strerror(i32 noundef %2605, ptr noundef @.str.4)
  %2607 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2608 = load i32, ptr %2607, align 4, !tbaa !5
  %2609 = call ptr @s2n_strerror_debug(i32 noundef %2608, ptr noundef @.str.4)
  %2610 = call ptr @__errno_location() #11
  %2611 = load i32, ptr %2610, align 4, !tbaa !5
  %2612 = call ptr @strerror(i32 noundef %2611) #10
  %2613 = call ptr @__errno_location() #11
  %2614 = load i32, ptr %2613, align 4, !tbaa !5
  %2615 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2602, ptr noundef @.str.5, i32 noundef %2603, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 135, ptr noundef %2606, ptr noundef %2609, ptr noundef %2612, i32 noundef %2614) #10
  br label %2616

2616:                                             ; preds = %2599, %2582
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #10
  br label %2617

2617:                                             ; preds = %2616
  br label %2618

2618:                                             ; preds = %2617
  call void @exit(i32 noundef 1) #12
  unreachable

2619:                                             ; No predecessors!
  br label %2620

2620:                                             ; preds = %2619
  br label %2621

2621:                                             ; preds = %2620, %2563
  br label %2622

2622:                                             ; preds = %2621
  br label %2623

2623:                                             ; preds = %2622
  br label %2624

2624:                                             ; preds = %2623
  %2625 = load i32, ptr @test_count, align 4, !tbaa !5
  %2626 = add nsw i32 %2625, 1
  store i32 %2626, ptr @test_count, align 4, !tbaa !5
  %2627 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_npn_extension, i32 0, i32 3), align 8, !tbaa !46
  %2628 = load ptr, ptr %57, align 8, !tbaa !9
  %2629 = call i32 %2627(ptr noundef %2628, ptr noundef %63)
  %2630 = icmp eq i32 %2629, -1
  br i1 %2630, label %2631, label %2684

2631:                                             ; preds = %2624
  br label %2632

2632:                                             ; preds = %2631
  br label %2633

2633:                                             ; preds = %2632
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #10
  %2634 = call ptr @__errno_location() #11
  %2635 = load i32, ptr %2634, align 4, !tbaa !5
  store i32 %2635, ptr %65, align 4, !tbaa !5
  %2636 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2637 = call i32 @s2n_print_stacktrace(ptr noundef %2636)
  %2638 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2639 = trunc i8 %2638 to i1
  br i1 %2639, label %2640, label %2662

2640:                                             ; preds = %2633
  %2641 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2642 = call i32 @fileno(ptr noundef %2641) #10
  %2643 = call i32 @isatty(i32 noundef %2642) #10
  %2644 = icmp ne i32 %2643, 0
  br i1 %2644, label %2645, label %2662

2645:                                             ; preds = %2640
  %2646 = load i32, ptr %65, align 4, !tbaa !5
  %2647 = call ptr @__errno_location() #11
  store i32 %2646, ptr %2647, align 4, !tbaa !5
  %2648 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2649 = load i32, ptr @test_count, align 4, !tbaa !5
  %2650 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2651 = load i32, ptr %2650, align 4, !tbaa !5
  %2652 = call ptr @s2n_strerror(i32 noundef %2651, ptr noundef @.str.4)
  %2653 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2654 = load i32, ptr %2653, align 4, !tbaa !5
  %2655 = call ptr @s2n_strerror_debug(i32 noundef %2654, ptr noundef @.str.4)
  %2656 = call ptr @__errno_location() #11
  %2657 = load i32, ptr %2656, align 4, !tbaa !5
  %2658 = call ptr @strerror(i32 noundef %2657) #10
  %2659 = call ptr @__errno_location() #11
  %2660 = load i32, ptr %2659, align 4, !tbaa !5
  %2661 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2648, ptr noundef @.str.2, i32 noundef %2649, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 137, ptr noundef %2652, ptr noundef %2655, ptr noundef %2658, i32 noundef %2660) #10
  br label %2679

2662:                                             ; preds = %2640, %2633
  %2663 = load i32, ptr %65, align 4, !tbaa !5
  %2664 = call ptr @__errno_location() #11
  store i32 %2663, ptr %2664, align 4, !tbaa !5
  %2665 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2666 = load i32, ptr @test_count, align 4, !tbaa !5
  %2667 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2668 = load i32, ptr %2667, align 4, !tbaa !5
  %2669 = call ptr @s2n_strerror(i32 noundef %2668, ptr noundef @.str.4)
  %2670 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2671 = load i32, ptr %2670, align 4, !tbaa !5
  %2672 = call ptr @s2n_strerror_debug(i32 noundef %2671, ptr noundef @.str.4)
  %2673 = call ptr @__errno_location() #11
  %2674 = load i32, ptr %2673, align 4, !tbaa !5
  %2675 = call ptr @strerror(i32 noundef %2674) #10
  %2676 = call ptr @__errno_location() #11
  %2677 = load i32, ptr %2676, align 4, !tbaa !5
  %2678 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2665, ptr noundef @.str.5, i32 noundef %2666, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 137, ptr noundef %2669, ptr noundef %2672, ptr noundef %2675, i32 noundef %2677) #10
  br label %2679

2679:                                             ; preds = %2662, %2645
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #10
  br label %2680

2680:                                             ; preds = %2679
  br label %2681

2681:                                             ; preds = %2680
  call void @exit(i32 noundef 1) #12
  unreachable

2682:                                             ; No predecessors!
  br label %2683

2683:                                             ; preds = %2682
  br label %2684

2684:                                             ; preds = %2683, %2624
  br label %2685

2685:                                             ; preds = %2684
  br label %2686

2686:                                             ; preds = %2685
  call void @llvm.lifetime.start.p0(i64 1, ptr %66) #10
  store i8 0, ptr %66, align 1, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 255, ptr %67) #10
  call void @llvm.memset.p0.i64(ptr align 16 %67, i8 0, i64 255, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #10
  store i64 0, ptr %68, align 8, !tbaa !47
  br label %2687

2687:                                             ; preds = %2958, %2686
  %2688 = load i64, ptr %68, align 8, !tbaa !47
  %2689 = icmp ult i64 %2688, 3
  br i1 %2689, label %2691, label %2690

2690:                                             ; preds = %2687
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #10
  br label %2961

2691:                                             ; preds = %2687
  br label %2692

2692:                                             ; preds = %2691
  %2693 = load i32, ptr @test_count, align 4, !tbaa !5
  %2694 = add nsw i32 %2693, 1
  store i32 %2694, ptr @test_count, align 4, !tbaa !5
  %2695 = call i32 @s2n_stuffer_read_uint8(ptr noundef %63, ptr noundef %66)
  %2696 = icmp eq i32 %2695, -1
  br i1 %2696, label %2697, label %2750

2697:                                             ; preds = %2692
  br label %2698

2698:                                             ; preds = %2697
  br label %2699

2699:                                             ; preds = %2698
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #10
  %2700 = call ptr @__errno_location() #11
  %2701 = load i32, ptr %2700, align 4, !tbaa !5
  store i32 %2701, ptr %69, align 4, !tbaa !5
  %2702 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2703 = call i32 @s2n_print_stacktrace(ptr noundef %2702)
  %2704 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2705 = trunc i8 %2704 to i1
  br i1 %2705, label %2706, label %2728

2706:                                             ; preds = %2699
  %2707 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2708 = call i32 @fileno(ptr noundef %2707) #10
  %2709 = call i32 @isatty(i32 noundef %2708) #10
  %2710 = icmp ne i32 %2709, 0
  br i1 %2710, label %2711, label %2728

2711:                                             ; preds = %2706
  %2712 = load i32, ptr %69, align 4, !tbaa !5
  %2713 = call ptr @__errno_location() #11
  store i32 %2712, ptr %2713, align 4, !tbaa !5
  %2714 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2715 = load i32, ptr @test_count, align 4, !tbaa !5
  %2716 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2717 = load i32, ptr %2716, align 4, !tbaa !5
  %2718 = call ptr @s2n_strerror(i32 noundef %2717, ptr noundef @.str.4)
  %2719 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2720 = load i32, ptr %2719, align 4, !tbaa !5
  %2721 = call ptr @s2n_strerror_debug(i32 noundef %2720, ptr noundef @.str.4)
  %2722 = call ptr @__errno_location() #11
  %2723 = load i32, ptr %2722, align 4, !tbaa !5
  %2724 = call ptr @strerror(i32 noundef %2723) #10
  %2725 = call ptr @__errno_location() #11
  %2726 = load i32, ptr %2725, align 4, !tbaa !5
  %2727 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2714, ptr noundef @.str.2, i32 noundef %2715, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 142, ptr noundef %2718, ptr noundef %2721, ptr noundef %2724, i32 noundef %2726) #10
  br label %2745

2728:                                             ; preds = %2706, %2699
  %2729 = load i32, ptr %69, align 4, !tbaa !5
  %2730 = call ptr @__errno_location() #11
  store i32 %2729, ptr %2730, align 4, !tbaa !5
  %2731 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2732 = load i32, ptr @test_count, align 4, !tbaa !5
  %2733 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2734 = load i32, ptr %2733, align 4, !tbaa !5
  %2735 = call ptr @s2n_strerror(i32 noundef %2734, ptr noundef @.str.4)
  %2736 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2737 = load i32, ptr %2736, align 4, !tbaa !5
  %2738 = call ptr @s2n_strerror_debug(i32 noundef %2737, ptr noundef @.str.4)
  %2739 = call ptr @__errno_location() #11
  %2740 = load i32, ptr %2739, align 4, !tbaa !5
  %2741 = call ptr @strerror(i32 noundef %2740) #10
  %2742 = call ptr @__errno_location() #11
  %2743 = load i32, ptr %2742, align 4, !tbaa !5
  %2744 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2731, ptr noundef @.str.5, i32 noundef %2732, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 142, ptr noundef %2735, ptr noundef %2738, ptr noundef %2741, i32 noundef %2743) #10
  br label %2745

2745:                                             ; preds = %2728, %2711
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #10
  br label %2746

2746:                                             ; preds = %2745
  br label %2747

2747:                                             ; preds = %2746
  call void @exit(i32 noundef 1) #12
  unreachable

2748:                                             ; No predecessors!
  br label %2749

2749:                                             ; preds = %2748
  br label %2750

2750:                                             ; preds = %2749, %2692
  br label %2751

2751:                                             ; preds = %2750
  br label %2752

2752:                                             ; preds = %2751
  br label %2753

2753:                                             ; preds = %2752
  %2754 = load i32, ptr @test_count, align 4, !tbaa !5
  %2755 = add nsw i32 %2754, 1
  store i32 %2755, ptr @test_count, align 4, !tbaa !5
  %2756 = load i8, ptr %66, align 1, !tbaa !15
  %2757 = zext i8 %2756 to i64
  %2758 = load i64, ptr %68, align 8, !tbaa !47
  %2759 = getelementptr inbounds [3 x ptr], ptr %9, i64 0, i64 %2758
  %2760 = load ptr, ptr %2759, align 8, !tbaa !9
  %2761 = call i64 @strlen(ptr noundef %2760) #13
  %2762 = icmp eq i64 %2757, %2761
  br i1 %2762, label %2816, label %2763

2763:                                             ; preds = %2753
  br label %2764

2764:                                             ; preds = %2763
  br label %2765

2765:                                             ; preds = %2764
  call void @llvm.lifetime.start.p0(i64 4, ptr %70) #10
  %2766 = call ptr @__errno_location() #11
  %2767 = load i32, ptr %2766, align 4, !tbaa !5
  store i32 %2767, ptr %70, align 4, !tbaa !5
  %2768 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2769 = call i32 @s2n_print_stacktrace(ptr noundef %2768)
  %2770 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2771 = trunc i8 %2770 to i1
  br i1 %2771, label %2772, label %2794

2772:                                             ; preds = %2765
  %2773 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2774 = call i32 @fileno(ptr noundef %2773) #10
  %2775 = call i32 @isatty(i32 noundef %2774) #10
  %2776 = icmp ne i32 %2775, 0
  br i1 %2776, label %2777, label %2794

2777:                                             ; preds = %2772
  %2778 = load i32, ptr %70, align 4, !tbaa !5
  %2779 = call ptr @__errno_location() #11
  store i32 %2778, ptr %2779, align 4, !tbaa !5
  %2780 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2781 = load i32, ptr @test_count, align 4, !tbaa !5
  %2782 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2783 = load i32, ptr %2782, align 4, !tbaa !5
  %2784 = call ptr @s2n_strerror(i32 noundef %2783, ptr noundef @.str.4)
  %2785 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2786 = load i32, ptr %2785, align 4, !tbaa !5
  %2787 = call ptr @s2n_strerror_debug(i32 noundef %2786, ptr noundef @.str.4)
  %2788 = call ptr @__errno_location() #11
  %2789 = load i32, ptr %2788, align 4, !tbaa !5
  %2790 = call ptr @strerror(i32 noundef %2789) #10
  %2791 = call ptr @__errno_location() #11
  %2792 = load i32, ptr %2791, align 4, !tbaa !5
  %2793 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2780, ptr noundef @.str.2, i32 noundef %2781, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 143, ptr noundef %2784, ptr noundef %2787, ptr noundef %2790, i32 noundef %2792) #10
  br label %2811

2794:                                             ; preds = %2772, %2765
  %2795 = load i32, ptr %70, align 4, !tbaa !5
  %2796 = call ptr @__errno_location() #11
  store i32 %2795, ptr %2796, align 4, !tbaa !5
  %2797 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2798 = load i32, ptr @test_count, align 4, !tbaa !5
  %2799 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2800 = load i32, ptr %2799, align 4, !tbaa !5
  %2801 = call ptr @s2n_strerror(i32 noundef %2800, ptr noundef @.str.4)
  %2802 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2803 = load i32, ptr %2802, align 4, !tbaa !5
  %2804 = call ptr @s2n_strerror_debug(i32 noundef %2803, ptr noundef @.str.4)
  %2805 = call ptr @__errno_location() #11
  %2806 = load i32, ptr %2805, align 4, !tbaa !5
  %2807 = call ptr @strerror(i32 noundef %2806) #10
  %2808 = call ptr @__errno_location() #11
  %2809 = load i32, ptr %2808, align 4, !tbaa !5
  %2810 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2797, ptr noundef @.str.5, i32 noundef %2798, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 143, ptr noundef %2801, ptr noundef %2804, ptr noundef %2807, i32 noundef %2809) #10
  br label %2811

2811:                                             ; preds = %2794, %2777
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #10
  br label %2812

2812:                                             ; preds = %2811
  br label %2813

2813:                                             ; preds = %2812
  call void @exit(i32 noundef 1) #12
  unreachable

2814:                                             ; No predecessors!
  br label %2815

2815:                                             ; preds = %2814
  br label %2816

2816:                                             ; preds = %2815, %2753
  br label %2817

2817:                                             ; preds = %2816
  br label %2818

2818:                                             ; preds = %2817
  br label %2819

2819:                                             ; preds = %2818
  %2820 = load i32, ptr @test_count, align 4, !tbaa !5
  %2821 = add nsw i32 %2820, 1
  store i32 %2821, ptr @test_count, align 4, !tbaa !5
  %2822 = getelementptr inbounds [255 x i8], ptr %67, i64 0, i64 0
  %2823 = load i8, ptr %66, align 1, !tbaa !15
  %2824 = zext i8 %2823 to i32
  %2825 = call i32 @s2n_stuffer_read_bytes(ptr noundef %63, ptr noundef %2822, i32 noundef %2824)
  %2826 = icmp eq i32 %2825, -1
  br i1 %2826, label %2827, label %2880

2827:                                             ; preds = %2819
  br label %2828

2828:                                             ; preds = %2827
  br label %2829

2829:                                             ; preds = %2828
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #10
  %2830 = call ptr @__errno_location() #11
  %2831 = load i32, ptr %2830, align 4, !tbaa !5
  store i32 %2831, ptr %71, align 4, !tbaa !5
  %2832 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2833 = call i32 @s2n_print_stacktrace(ptr noundef %2832)
  %2834 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2835 = trunc i8 %2834 to i1
  br i1 %2835, label %2836, label %2858

2836:                                             ; preds = %2829
  %2837 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2838 = call i32 @fileno(ptr noundef %2837) #10
  %2839 = call i32 @isatty(i32 noundef %2838) #10
  %2840 = icmp ne i32 %2839, 0
  br i1 %2840, label %2841, label %2858

2841:                                             ; preds = %2836
  %2842 = load i32, ptr %71, align 4, !tbaa !5
  %2843 = call ptr @__errno_location() #11
  store i32 %2842, ptr %2843, align 4, !tbaa !5
  %2844 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2845 = load i32, ptr @test_count, align 4, !tbaa !5
  %2846 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2847 = load i32, ptr %2846, align 4, !tbaa !5
  %2848 = call ptr @s2n_strerror(i32 noundef %2847, ptr noundef @.str.4)
  %2849 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2850 = load i32, ptr %2849, align 4, !tbaa !5
  %2851 = call ptr @s2n_strerror_debug(i32 noundef %2850, ptr noundef @.str.4)
  %2852 = call ptr @__errno_location() #11
  %2853 = load i32, ptr %2852, align 4, !tbaa !5
  %2854 = call ptr @strerror(i32 noundef %2853) #10
  %2855 = call ptr @__errno_location() #11
  %2856 = load i32, ptr %2855, align 4, !tbaa !5
  %2857 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2844, ptr noundef @.str.2, i32 noundef %2845, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 145, ptr noundef %2848, ptr noundef %2851, ptr noundef %2854, i32 noundef %2856) #10
  br label %2875

2858:                                             ; preds = %2836, %2829
  %2859 = load i32, ptr %71, align 4, !tbaa !5
  %2860 = call ptr @__errno_location() #11
  store i32 %2859, ptr %2860, align 4, !tbaa !5
  %2861 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2862 = load i32, ptr @test_count, align 4, !tbaa !5
  %2863 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2864 = load i32, ptr %2863, align 4, !tbaa !5
  %2865 = call ptr @s2n_strerror(i32 noundef %2864, ptr noundef @.str.4)
  %2866 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2867 = load i32, ptr %2866, align 4, !tbaa !5
  %2868 = call ptr @s2n_strerror_debug(i32 noundef %2867, ptr noundef @.str.4)
  %2869 = call ptr @__errno_location() #11
  %2870 = load i32, ptr %2869, align 4, !tbaa !5
  %2871 = call ptr @strerror(i32 noundef %2870) #10
  %2872 = call ptr @__errno_location() #11
  %2873 = load i32, ptr %2872, align 4, !tbaa !5
  %2874 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2861, ptr noundef @.str.5, i32 noundef %2862, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 145, ptr noundef %2865, ptr noundef %2868, ptr noundef %2871, i32 noundef %2873) #10
  br label %2875

2875:                                             ; preds = %2858, %2841
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #10
  br label %2876

2876:                                             ; preds = %2875
  br label %2877

2877:                                             ; preds = %2876
  call void @exit(i32 noundef 1) #12
  unreachable

2878:                                             ; No predecessors!
  br label %2879

2879:                                             ; preds = %2878
  br label %2880

2880:                                             ; preds = %2879, %2819
  br label %2881

2881:                                             ; preds = %2880
  br label %2882

2882:                                             ; preds = %2881
  br label %2883

2883:                                             ; preds = %2882
  %2884 = load i8, ptr %66, align 1, !tbaa !15
  %2885 = zext i8 %2884 to i32
  %2886 = icmp ne i32 %2885, 0
  br i1 %2886, label %2887, label %2955

2887:                                             ; preds = %2883
  br label %2888

2888:                                             ; preds = %2887
  %2889 = load i32, ptr @test_count, align 4, !tbaa !5
  %2890 = add nsw i32 %2889, 1
  store i32 %2890, ptr @test_count, align 4, !tbaa !5
  %2891 = getelementptr inbounds [255 x i8], ptr %67, i64 0, i64 0
  %2892 = load i64, ptr %68, align 8, !tbaa !47
  %2893 = getelementptr inbounds [3 x ptr], ptr %9, i64 0, i64 %2892
  %2894 = load ptr, ptr %2893, align 8, !tbaa !9
  %2895 = load i8, ptr %66, align 1, !tbaa !15
  %2896 = zext i8 %2895 to i64
  %2897 = call i32 @memcmp(ptr noundef %2891, ptr noundef %2894, i64 noundef %2896) #13
  %2898 = icmp eq i32 %2897, 0
  br i1 %2898, label %2952, label %2899

2899:                                             ; preds = %2888
  br label %2900

2900:                                             ; preds = %2899
  br label %2901

2901:                                             ; preds = %2900
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #10
  %2902 = call ptr @__errno_location() #11
  %2903 = load i32, ptr %2902, align 4, !tbaa !5
  store i32 %2903, ptr %72, align 4, !tbaa !5
  %2904 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2905 = call i32 @s2n_print_stacktrace(ptr noundef %2904)
  %2906 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2907 = trunc i8 %2906 to i1
  br i1 %2907, label %2908, label %2930

2908:                                             ; preds = %2901
  %2909 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2910 = call i32 @fileno(ptr noundef %2909) #10
  %2911 = call i32 @isatty(i32 noundef %2910) #10
  %2912 = icmp ne i32 %2911, 0
  br i1 %2912, label %2913, label %2930

2913:                                             ; preds = %2908
  %2914 = load i32, ptr %72, align 4, !tbaa !5
  %2915 = call ptr @__errno_location() #11
  store i32 %2914, ptr %2915, align 4, !tbaa !5
  %2916 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2917 = load i32, ptr @test_count, align 4, !tbaa !5
  %2918 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2919 = load i32, ptr %2918, align 4, !tbaa !5
  %2920 = call ptr @s2n_strerror(i32 noundef %2919, ptr noundef @.str.4)
  %2921 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2922 = load i32, ptr %2921, align 4, !tbaa !5
  %2923 = call ptr @s2n_strerror_debug(i32 noundef %2922, ptr noundef @.str.4)
  %2924 = call ptr @__errno_location() #11
  %2925 = load i32, ptr %2924, align 4, !tbaa !5
  %2926 = call ptr @strerror(i32 noundef %2925) #10
  %2927 = call ptr @__errno_location() #11
  %2928 = load i32, ptr %2927, align 4, !tbaa !5
  %2929 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2916, ptr noundef @.str.2, i32 noundef %2917, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 146, ptr noundef %2920, ptr noundef %2923, ptr noundef %2926, i32 noundef %2928) #10
  br label %2947

2930:                                             ; preds = %2908, %2901
  %2931 = load i32, ptr %72, align 4, !tbaa !5
  %2932 = call ptr @__errno_location() #11
  store i32 %2931, ptr %2932, align 4, !tbaa !5
  %2933 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2934 = load i32, ptr @test_count, align 4, !tbaa !5
  %2935 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2936 = load i32, ptr %2935, align 4, !tbaa !5
  %2937 = call ptr @s2n_strerror(i32 noundef %2936, ptr noundef @.str.4)
  %2938 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2939 = load i32, ptr %2938, align 4, !tbaa !5
  %2940 = call ptr @s2n_strerror_debug(i32 noundef %2939, ptr noundef @.str.4)
  %2941 = call ptr @__errno_location() #11
  %2942 = load i32, ptr %2941, align 4, !tbaa !5
  %2943 = call ptr @strerror(i32 noundef %2942) #10
  %2944 = call ptr @__errno_location() #11
  %2945 = load i32, ptr %2944, align 4, !tbaa !5
  %2946 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2933, ptr noundef @.str.5, i32 noundef %2934, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 146, ptr noundef %2937, ptr noundef %2940, ptr noundef %2943, i32 noundef %2945) #10
  br label %2947

2947:                                             ; preds = %2930, %2913
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #10
  br label %2948

2948:                                             ; preds = %2947
  br label %2949

2949:                                             ; preds = %2948
  call void @exit(i32 noundef 1) #12
  unreachable

2950:                                             ; No predecessors!
  br label %2951

2951:                                             ; preds = %2950
  br label %2952

2952:                                             ; preds = %2951, %2888
  br label %2953

2953:                                             ; preds = %2952
  br label %2954

2954:                                             ; preds = %2953
  br label %2955

2955:                                             ; preds = %2954, %2883
  br label %2956

2956:                                             ; preds = %2955
  br label %2957

2957:                                             ; preds = %2956
  br label %2958

2958:                                             ; preds = %2957
  %2959 = load i64, ptr %68, align 8, !tbaa !47
  %2960 = add i64 %2959, 1
  store i64 %2960, ptr %68, align 8, !tbaa !47
  br label %2687, !llvm.loop !48

2961:                                             ; preds = %2690
  br label %2962

2962:                                             ; preds = %2961
  %2963 = load i32, ptr @test_count, align 4, !tbaa !5
  %2964 = add nsw i32 %2963, 1
  store i32 %2964, ptr @test_count, align 4, !tbaa !5
  %2965 = getelementptr inbounds %struct.s2n_stuffer, ptr %63, i32 0, i32 2
  %2966 = load i32, ptr %2965, align 4, !tbaa !50
  %2967 = getelementptr inbounds %struct.s2n_stuffer, ptr %63, i32 0, i32 1
  %2968 = load i32, ptr %2967, align 8, !tbaa !51
  %2969 = sub i32 %2966, %2968
  %2970 = icmp eq i32 %2969, 0
  br i1 %2970, label %3024, label %2971

2971:                                             ; preds = %2962
  br label %2972

2972:                                             ; preds = %2971
  br label %2973

2973:                                             ; preds = %2972
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #10
  %2974 = call ptr @__errno_location() #11
  %2975 = load i32, ptr %2974, align 4, !tbaa !5
  store i32 %2975, ptr %73, align 4, !tbaa !5
  %2976 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2977 = call i32 @s2n_print_stacktrace(ptr noundef %2976)
  %2978 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2979 = trunc i8 %2978 to i1
  br i1 %2979, label %2980, label %3002

2980:                                             ; preds = %2973
  %2981 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2982 = call i32 @fileno(ptr noundef %2981) #10
  %2983 = call i32 @isatty(i32 noundef %2982) #10
  %2984 = icmp ne i32 %2983, 0
  br i1 %2984, label %2985, label %3002

2985:                                             ; preds = %2980
  %2986 = load i32, ptr %73, align 4, !tbaa !5
  %2987 = call ptr @__errno_location() #11
  store i32 %2986, ptr %2987, align 4, !tbaa !5
  %2988 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2989 = load i32, ptr @test_count, align 4, !tbaa !5
  %2990 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2991 = load i32, ptr %2990, align 4, !tbaa !5
  %2992 = call ptr @s2n_strerror(i32 noundef %2991, ptr noundef @.str.4)
  %2993 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2994 = load i32, ptr %2993, align 4, !tbaa !5
  %2995 = call ptr @s2n_strerror_debug(i32 noundef %2994, ptr noundef @.str.4)
  %2996 = call ptr @__errno_location() #11
  %2997 = load i32, ptr %2996, align 4, !tbaa !5
  %2998 = call ptr @strerror(i32 noundef %2997) #10
  %2999 = call ptr @__errno_location() #11
  %3000 = load i32, ptr %2999, align 4, !tbaa !5
  %3001 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2988, ptr noundef @.str.2, i32 noundef %2989, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 149, ptr noundef %2992, ptr noundef %2995, ptr noundef %2998, i32 noundef %3000) #10
  br label %3019

3002:                                             ; preds = %2980, %2973
  %3003 = load i32, ptr %73, align 4, !tbaa !5
  %3004 = call ptr @__errno_location() #11
  store i32 %3003, ptr %3004, align 4, !tbaa !5
  %3005 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3006 = load i32, ptr @test_count, align 4, !tbaa !5
  %3007 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3008 = load i32, ptr %3007, align 4, !tbaa !5
  %3009 = call ptr @s2n_strerror(i32 noundef %3008, ptr noundef @.str.4)
  %3010 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3011 = load i32, ptr %3010, align 4, !tbaa !5
  %3012 = call ptr @s2n_strerror_debug(i32 noundef %3011, ptr noundef @.str.4)
  %3013 = call ptr @__errno_location() #11
  %3014 = load i32, ptr %3013, align 4, !tbaa !5
  %3015 = call ptr @strerror(i32 noundef %3014) #10
  %3016 = call ptr @__errno_location() #11
  %3017 = load i32, ptr %3016, align 4, !tbaa !5
  %3018 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3005, ptr noundef @.str.5, i32 noundef %3006, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 149, ptr noundef %3009, ptr noundef %3012, ptr noundef %3015, i32 noundef %3017) #10
  br label %3019

3019:                                             ; preds = %3002, %2985
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #10
  br label %3020

3020:                                             ; preds = %3019
  br label %3021

3021:                                             ; preds = %3020
  call void @exit(i32 noundef 1) #12
  unreachable

3022:                                             ; No predecessors!
  br label %3023

3023:                                             ; preds = %3022
  br label %3024

3024:                                             ; preds = %3023, %2962
  br label %3025

3025:                                             ; preds = %3024
  br label %3026

3026:                                             ; preds = %3025
  call void @llvm.lifetime.end.p0(i64 255, ptr %67) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %66) #10
  %3027 = call i32 @s2n_stuffer_free(ptr noundef %63)
  call void @llvm.lifetime.end.p0(i64 40, ptr %63) #10
  %3028 = call i32 @s2n_config_ptr_free(ptr noundef %59)
  %3029 = getelementptr inbounds %struct.s2n_result, ptr %74, i32 0, i32 0
  store i32 %3028, ptr %3029, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #10
  %3030 = call i32 @s2n_connection_ptr_free(ptr noundef %57)
  %3031 = getelementptr inbounds %struct.s2n_result, ptr %75, i32 0, i32 0
  store i32 %3030, ptr %3031, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %76) #10
  %3032 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %3032, ptr %76, align 8, !tbaa !9
  br label %3033

3033:                                             ; preds = %3026
  %3034 = load i32, ptr @test_count, align 4, !tbaa !5
  %3035 = add nsw i32 %3034, 1
  store i32 %3035, ptr @test_count, align 4, !tbaa !5
  %3036 = load ptr, ptr %76, align 8, !tbaa !9
  %3037 = icmp eq ptr %3036, null
  br i1 %3037, label %3038, label %3091

3038:                                             ; preds = %3033
  br label %3039

3039:                                             ; preds = %3038
  br label %3040

3040:                                             ; preds = %3039
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #10
  %3041 = call ptr @__errno_location() #11
  %3042 = load i32, ptr %3041, align 4, !tbaa !5
  store i32 %3042, ptr %77, align 4, !tbaa !5
  %3043 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3044 = call i32 @s2n_print_stacktrace(ptr noundef %3043)
  %3045 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3046 = trunc i8 %3045 to i1
  br i1 %3046, label %3047, label %3069

3047:                                             ; preds = %3040
  %3048 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3049 = call i32 @fileno(ptr noundef %3048) #10
  %3050 = call i32 @isatty(i32 noundef %3049) #10
  %3051 = icmp ne i32 %3050, 0
  br i1 %3051, label %3052, label %3069

3052:                                             ; preds = %3047
  %3053 = load i32, ptr %77, align 4, !tbaa !5
  %3054 = call ptr @__errno_location() #11
  store i32 %3053, ptr %3054, align 4, !tbaa !5
  %3055 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3056 = load i32, ptr @test_count, align 4, !tbaa !5
  %3057 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3058 = load i32, ptr %3057, align 4, !tbaa !5
  %3059 = call ptr @s2n_strerror(i32 noundef %3058, ptr noundef @.str.4)
  %3060 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3061 = load i32, ptr %3060, align 4, !tbaa !5
  %3062 = call ptr @s2n_strerror_debug(i32 noundef %3061, ptr noundef @.str.4)
  %3063 = call ptr @__errno_location() #11
  %3064 = load i32, ptr %3063, align 4, !tbaa !5
  %3065 = call ptr @strerror(i32 noundef %3064) #10
  %3066 = call ptr @__errno_location() #11
  %3067 = load i32, ptr %3066, align 4, !tbaa !5
  %3068 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3055, ptr noundef @.str.2, i32 noundef %3056, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 158, ptr noundef %3059, ptr noundef %3062, ptr noundef %3065, i32 noundef %3067) #10
  br label %3086

3069:                                             ; preds = %3047, %3040
  %3070 = load i32, ptr %77, align 4, !tbaa !5
  %3071 = call ptr @__errno_location() #11
  store i32 %3070, ptr %3071, align 4, !tbaa !5
  %3072 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3073 = load i32, ptr @test_count, align 4, !tbaa !5
  %3074 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3075 = load i32, ptr %3074, align 4, !tbaa !5
  %3076 = call ptr @s2n_strerror(i32 noundef %3075, ptr noundef @.str.4)
  %3077 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3078 = load i32, ptr %3077, align 4, !tbaa !5
  %3079 = call ptr @s2n_strerror_debug(i32 noundef %3078, ptr noundef @.str.4)
  %3080 = call ptr @__errno_location() #11
  %3081 = load i32, ptr %3080, align 4, !tbaa !5
  %3082 = call ptr @strerror(i32 noundef %3081) #10
  %3083 = call ptr @__errno_location() #11
  %3084 = load i32, ptr %3083, align 4, !tbaa !5
  %3085 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3072, ptr noundef @.str.5, i32 noundef %3073, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 158, ptr noundef %3076, ptr noundef %3079, ptr noundef %3082, i32 noundef %3084) #10
  br label %3086

3086:                                             ; preds = %3069, %3052
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #10
  br label %3087

3087:                                             ; preds = %3086
  br label %3088

3088:                                             ; preds = %3087
  call void @exit(i32 noundef 1) #12
  unreachable

3089:                                             ; No predecessors!
  br label %3090

3090:                                             ; preds = %3089
  br label %3091

3091:                                             ; preds = %3090, %3033
  br label %3092

3092:                                             ; preds = %3091
  br label %3093

3093:                                             ; preds = %3092
  call void @llvm.lifetime.start.p0(i64 40, ptr %78) #10
  call void @llvm.memset.p0.i64(ptr align 8 %78, i8 0, i64 40, i1 false)
  br label %3094

3094:                                             ; preds = %3093
  %3095 = load i32, ptr @test_count, align 4, !tbaa !5
  %3096 = add nsw i32 %3095, 1
  store i32 %3096, ptr @test_count, align 4, !tbaa !5
  %3097 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %78, i32 noundef 0)
  %3098 = icmp eq i32 %3097, -1
  br i1 %3098, label %3099, label %3152

3099:                                             ; preds = %3094
  br label %3100

3100:                                             ; preds = %3099
  br label %3101

3101:                                             ; preds = %3100
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #10
  %3102 = call ptr @__errno_location() #11
  %3103 = load i32, ptr %3102, align 4, !tbaa !5
  store i32 %3103, ptr %79, align 4, !tbaa !5
  %3104 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3105 = call i32 @s2n_print_stacktrace(ptr noundef %3104)
  %3106 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3107 = trunc i8 %3106 to i1
  br i1 %3107, label %3108, label %3130

3108:                                             ; preds = %3101
  %3109 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3110 = call i32 @fileno(ptr noundef %3109) #10
  %3111 = call i32 @isatty(i32 noundef %3110) #10
  %3112 = icmp ne i32 %3111, 0
  br i1 %3112, label %3113, label %3130

3113:                                             ; preds = %3108
  %3114 = load i32, ptr %79, align 4, !tbaa !5
  %3115 = call ptr @__errno_location() #11
  store i32 %3114, ptr %3115, align 4, !tbaa !5
  %3116 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3117 = load i32, ptr @test_count, align 4, !tbaa !5
  %3118 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3119 = load i32, ptr %3118, align 4, !tbaa !5
  %3120 = call ptr @s2n_strerror(i32 noundef %3119, ptr noundef @.str.4)
  %3121 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3122 = load i32, ptr %3121, align 4, !tbaa !5
  %3123 = call ptr @s2n_strerror_debug(i32 noundef %3122, ptr noundef @.str.4)
  %3124 = call ptr @__errno_location() #11
  %3125 = load i32, ptr %3124, align 4, !tbaa !5
  %3126 = call ptr @strerror(i32 noundef %3125) #10
  %3127 = call ptr @__errno_location() #11
  %3128 = load i32, ptr %3127, align 4, !tbaa !5
  %3129 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3116, ptr noundef @.str.2, i32 noundef %3117, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 160, ptr noundef %3120, ptr noundef %3123, ptr noundef %3126, i32 noundef %3128) #10
  br label %3147

3130:                                             ; preds = %3108, %3101
  %3131 = load i32, ptr %79, align 4, !tbaa !5
  %3132 = call ptr @__errno_location() #11
  store i32 %3131, ptr %3132, align 4, !tbaa !5
  %3133 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3134 = load i32, ptr @test_count, align 4, !tbaa !5
  %3135 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3136 = load i32, ptr %3135, align 4, !tbaa !5
  %3137 = call ptr @s2n_strerror(i32 noundef %3136, ptr noundef @.str.4)
  %3138 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3139 = load i32, ptr %3138, align 4, !tbaa !5
  %3140 = call ptr @s2n_strerror_debug(i32 noundef %3139, ptr noundef @.str.4)
  %3141 = call ptr @__errno_location() #11
  %3142 = load i32, ptr %3141, align 4, !tbaa !5
  %3143 = call ptr @strerror(i32 noundef %3142) #10
  %3144 = call ptr @__errno_location() #11
  %3145 = load i32, ptr %3144, align 4, !tbaa !5
  %3146 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3133, ptr noundef @.str.5, i32 noundef %3134, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 160, ptr noundef %3137, ptr noundef %3140, ptr noundef %3143, i32 noundef %3145) #10
  br label %3147

3147:                                             ; preds = %3130, %3113
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #10
  br label %3148

3148:                                             ; preds = %3147
  br label %3149

3149:                                             ; preds = %3148
  call void @exit(i32 noundef 1) #12
  unreachable

3150:                                             ; No predecessors!
  br label %3151

3151:                                             ; preds = %3150
  br label %3152

3152:                                             ; preds = %3151, %3094
  br label %3153

3153:                                             ; preds = %3152
  br label %3154

3154:                                             ; preds = %3153
  br label %3155

3155:                                             ; preds = %3154
  %3156 = load i32, ptr @test_count, align 4, !tbaa !5
  %3157 = add nsw i32 %3156, 1
  store i32 %3157, ptr @test_count, align 4, !tbaa !5
  %3158 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_npn_extension, i32 0, i32 4), align 8, !tbaa !45
  %3159 = load ptr, ptr %76, align 8, !tbaa !9
  %3160 = call i32 %3158(ptr noundef %3159, ptr noundef %78)
  %3161 = icmp eq i32 %3160, -1
  br i1 %3161, label %3162, label %3215

3162:                                             ; preds = %3155
  br label %3163

3163:                                             ; preds = %3162
  br label %3164

3164:                                             ; preds = %3163
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #10
  %3165 = call ptr @__errno_location() #11
  %3166 = load i32, ptr %3165, align 4, !tbaa !5
  store i32 %3166, ptr %80, align 4, !tbaa !5
  %3167 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3168 = call i32 @s2n_print_stacktrace(ptr noundef %3167)
  %3169 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3170 = trunc i8 %3169 to i1
  br i1 %3170, label %3171, label %3193

3171:                                             ; preds = %3164
  %3172 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3173 = call i32 @fileno(ptr noundef %3172) #10
  %3174 = call i32 @isatty(i32 noundef %3173) #10
  %3175 = icmp ne i32 %3174, 0
  br i1 %3175, label %3176, label %3193

3176:                                             ; preds = %3171
  %3177 = load i32, ptr %80, align 4, !tbaa !5
  %3178 = call ptr @__errno_location() #11
  store i32 %3177, ptr %3178, align 4, !tbaa !5
  %3179 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3180 = load i32, ptr @test_count, align 4, !tbaa !5
  %3181 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3182 = load i32, ptr %3181, align 4, !tbaa !5
  %3183 = call ptr @s2n_strerror(i32 noundef %3182, ptr noundef @.str.4)
  %3184 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3185 = load i32, ptr %3184, align 4, !tbaa !5
  %3186 = call ptr @s2n_strerror_debug(i32 noundef %3185, ptr noundef @.str.4)
  %3187 = call ptr @__errno_location() #11
  %3188 = load i32, ptr %3187, align 4, !tbaa !5
  %3189 = call ptr @strerror(i32 noundef %3188) #10
  %3190 = call ptr @__errno_location() #11
  %3191 = load i32, ptr %3190, align 4, !tbaa !5
  %3192 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3179, ptr noundef @.str.2, i32 noundef %3180, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 162, ptr noundef %3183, ptr noundef %3186, ptr noundef %3189, i32 noundef %3191) #10
  br label %3210

3193:                                             ; preds = %3171, %3164
  %3194 = load i32, ptr %80, align 4, !tbaa !5
  %3195 = call ptr @__errno_location() #11
  store i32 %3194, ptr %3195, align 4, !tbaa !5
  %3196 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3197 = load i32, ptr @test_count, align 4, !tbaa !5
  %3198 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3199 = load i32, ptr %3198, align 4, !tbaa !5
  %3200 = call ptr @s2n_strerror(i32 noundef %3199, ptr noundef @.str.4)
  %3201 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3202 = load i32, ptr %3201, align 4, !tbaa !5
  %3203 = call ptr @s2n_strerror_debug(i32 noundef %3202, ptr noundef @.str.4)
  %3204 = call ptr @__errno_location() #11
  %3205 = load i32, ptr %3204, align 4, !tbaa !5
  %3206 = call ptr @strerror(i32 noundef %3205) #10
  %3207 = call ptr @__errno_location() #11
  %3208 = load i32, ptr %3207, align 4, !tbaa !5
  %3209 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3196, ptr noundef @.str.5, i32 noundef %3197, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 162, ptr noundef %3200, ptr noundef %3203, ptr noundef %3206, i32 noundef %3208) #10
  br label %3210

3210:                                             ; preds = %3193, %3176
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #10
  br label %3211

3211:                                             ; preds = %3210
  br label %3212

3212:                                             ; preds = %3211
  call void @exit(i32 noundef 1) #12
  unreachable

3213:                                             ; No predecessors!
  br label %3214

3214:                                             ; preds = %3213
  br label %3215

3215:                                             ; preds = %3214, %3155
  br label %3216

3216:                                             ; preds = %3215
  br label %3217

3217:                                             ; preds = %3216
  br label %3218

3218:                                             ; preds = %3217
  %3219 = load i32, ptr @test_count, align 4, !tbaa !5
  %3220 = add nsw i32 %3219, 1
  store i32 %3220, ptr @test_count, align 4, !tbaa !5
  %3221 = load ptr, ptr %76, align 8, !tbaa !9
  %3222 = call ptr @s2n_get_application_protocol(ptr noundef %3221)
  %3223 = icmp eq ptr %3222, null
  br i1 %3223, label %3277, label %3224

3224:                                             ; preds = %3218
  br label %3225

3225:                                             ; preds = %3224
  br label %3226

3226:                                             ; preds = %3225
  call void @llvm.lifetime.start.p0(i64 4, ptr %81) #10
  %3227 = call ptr @__errno_location() #11
  %3228 = load i32, ptr %3227, align 4, !tbaa !5
  store i32 %3228, ptr %81, align 4, !tbaa !5
  %3229 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3230 = call i32 @s2n_print_stacktrace(ptr noundef %3229)
  %3231 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3232 = trunc i8 %3231 to i1
  br i1 %3232, label %3233, label %3255

3233:                                             ; preds = %3226
  %3234 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3235 = call i32 @fileno(ptr noundef %3234) #10
  %3236 = call i32 @isatty(i32 noundef %3235) #10
  %3237 = icmp ne i32 %3236, 0
  br i1 %3237, label %3238, label %3255

3238:                                             ; preds = %3233
  %3239 = load i32, ptr %81, align 4, !tbaa !5
  %3240 = call ptr @__errno_location() #11
  store i32 %3239, ptr %3240, align 4, !tbaa !5
  %3241 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3242 = load i32, ptr @test_count, align 4, !tbaa !5
  %3243 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3244 = load i32, ptr %3243, align 4, !tbaa !5
  %3245 = call ptr @s2n_strerror(i32 noundef %3244, ptr noundef @.str.4)
  %3246 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3247 = load i32, ptr %3246, align 4, !tbaa !5
  %3248 = call ptr @s2n_strerror_debug(i32 noundef %3247, ptr noundef @.str.4)
  %3249 = call ptr @__errno_location() #11
  %3250 = load i32, ptr %3249, align 4, !tbaa !5
  %3251 = call ptr @strerror(i32 noundef %3250) #10
  %3252 = call ptr @__errno_location() #11
  %3253 = load i32, ptr %3252, align 4, !tbaa !5
  %3254 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3241, ptr noundef @.str.2, i32 noundef %3242, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 163, ptr noundef %3245, ptr noundef %3248, ptr noundef %3251, i32 noundef %3253) #10
  br label %3272

3255:                                             ; preds = %3233, %3226
  %3256 = load i32, ptr %81, align 4, !tbaa !5
  %3257 = call ptr @__errno_location() #11
  store i32 %3256, ptr %3257, align 4, !tbaa !5
  %3258 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3259 = load i32, ptr @test_count, align 4, !tbaa !5
  %3260 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3261 = load i32, ptr %3260, align 4, !tbaa !5
  %3262 = call ptr @s2n_strerror(i32 noundef %3261, ptr noundef @.str.4)
  %3263 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3264 = load i32, ptr %3263, align 4, !tbaa !5
  %3265 = call ptr @s2n_strerror_debug(i32 noundef %3264, ptr noundef @.str.4)
  %3266 = call ptr @__errno_location() #11
  %3267 = load i32, ptr %3266, align 4, !tbaa !5
  %3268 = call ptr @strerror(i32 noundef %3267) #10
  %3269 = call ptr @__errno_location() #11
  %3270 = load i32, ptr %3269, align 4, !tbaa !5
  %3271 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3258, ptr noundef @.str.5, i32 noundef %3259, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 163, ptr noundef %3262, ptr noundef %3265, ptr noundef %3268, i32 noundef %3270) #10
  br label %3272

3272:                                             ; preds = %3255, %3238
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #10
  br label %3273

3273:                                             ; preds = %3272
  br label %3274

3274:                                             ; preds = %3273
  call void @exit(i32 noundef 1) #12
  unreachable

3275:                                             ; No predecessors!
  br label %3276

3276:                                             ; preds = %3275
  br label %3277

3277:                                             ; preds = %3276, %3218
  br label %3278

3278:                                             ; preds = %3277
  br label %3279

3279:                                             ; preds = %3278
  %3280 = call i32 @s2n_stuffer_free(ptr noundef %78)
  call void @llvm.lifetime.end.p0(i64 40, ptr %78) #10
  %3281 = call i32 @s2n_connection_ptr_free(ptr noundef %76)
  %3282 = getelementptr inbounds %struct.s2n_result, ptr %82, i32 0, i32 0
  store i32 %3281, ptr %3282, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %83) #10
  %3283 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %3283, ptr %83, align 8, !tbaa !9
  br label %3284

3284:                                             ; preds = %3279
  %3285 = load i32, ptr @test_count, align 4, !tbaa !5
  %3286 = add nsw i32 %3285, 1
  store i32 %3286, ptr @test_count, align 4, !tbaa !5
  %3287 = load ptr, ptr %83, align 8, !tbaa !9
  %3288 = icmp eq ptr %3287, null
  br i1 %3288, label %3289, label %3342

3289:                                             ; preds = %3284
  br label %3290

3290:                                             ; preds = %3289
  br label %3291

3291:                                             ; preds = %3290
  call void @llvm.lifetime.start.p0(i64 4, ptr %84) #10
  %3292 = call ptr @__errno_location() #11
  %3293 = load i32, ptr %3292, align 4, !tbaa !5
  store i32 %3293, ptr %84, align 4, !tbaa !5
  %3294 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3295 = call i32 @s2n_print_stacktrace(ptr noundef %3294)
  %3296 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3297 = trunc i8 %3296 to i1
  br i1 %3297, label %3298, label %3320

3298:                                             ; preds = %3291
  %3299 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3300 = call i32 @fileno(ptr noundef %3299) #10
  %3301 = call i32 @isatty(i32 noundef %3300) #10
  %3302 = icmp ne i32 %3301, 0
  br i1 %3302, label %3303, label %3320

3303:                                             ; preds = %3298
  %3304 = load i32, ptr %84, align 4, !tbaa !5
  %3305 = call ptr @__errno_location() #11
  store i32 %3304, ptr %3305, align 4, !tbaa !5
  %3306 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3307 = load i32, ptr @test_count, align 4, !tbaa !5
  %3308 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3309 = load i32, ptr %3308, align 4, !tbaa !5
  %3310 = call ptr @s2n_strerror(i32 noundef %3309, ptr noundef @.str.4)
  %3311 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3312 = load i32, ptr %3311, align 4, !tbaa !5
  %3313 = call ptr @s2n_strerror_debug(i32 noundef %3312, ptr noundef @.str.4)
  %3314 = call ptr @__errno_location() #11
  %3315 = load i32, ptr %3314, align 4, !tbaa !5
  %3316 = call ptr @strerror(i32 noundef %3315) #10
  %3317 = call ptr @__errno_location() #11
  %3318 = load i32, ptr %3317, align 4, !tbaa !5
  %3319 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3306, ptr noundef @.str.2, i32 noundef %3307, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 169, ptr noundef %3310, ptr noundef %3313, ptr noundef %3316, i32 noundef %3318) #10
  br label %3337

3320:                                             ; preds = %3298, %3291
  %3321 = load i32, ptr %84, align 4, !tbaa !5
  %3322 = call ptr @__errno_location() #11
  store i32 %3321, ptr %3322, align 4, !tbaa !5
  %3323 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3324 = load i32, ptr @test_count, align 4, !tbaa !5
  %3325 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3326 = load i32, ptr %3325, align 4, !tbaa !5
  %3327 = call ptr @s2n_strerror(i32 noundef %3326, ptr noundef @.str.4)
  %3328 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3329 = load i32, ptr %3328, align 4, !tbaa !5
  %3330 = call ptr @s2n_strerror_debug(i32 noundef %3329, ptr noundef @.str.4)
  %3331 = call ptr @__errno_location() #11
  %3332 = load i32, ptr %3331, align 4, !tbaa !5
  %3333 = call ptr @strerror(i32 noundef %3332) #10
  %3334 = call ptr @__errno_location() #11
  %3335 = load i32, ptr %3334, align 4, !tbaa !5
  %3336 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3323, ptr noundef @.str.5, i32 noundef %3324, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 169, ptr noundef %3327, ptr noundef %3330, ptr noundef %3333, i32 noundef %3335) #10
  br label %3337

3337:                                             ; preds = %3320, %3303
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #10
  br label %3338

3338:                                             ; preds = %3337
  br label %3339

3339:                                             ; preds = %3338
  call void @exit(i32 noundef 1) #12
  unreachable

3340:                                             ; No predecessors!
  br label %3341

3341:                                             ; preds = %3340
  br label %3342

3342:                                             ; preds = %3341, %3284
  br label %3343

3343:                                             ; preds = %3342
  br label %3344

3344:                                             ; preds = %3343
  call void @llvm.lifetime.start.p0(i64 8, ptr %85) #10
  %3345 = call ptr @s2n_config_new()
  store ptr %3345, ptr %85, align 8, !tbaa !9
  br label %3346

3346:                                             ; preds = %3344
  %3347 = load i32, ptr @test_count, align 4, !tbaa !5
  %3348 = add nsw i32 %3347, 1
  store i32 %3348, ptr @test_count, align 4, !tbaa !5
  %3349 = load ptr, ptr %85, align 8, !tbaa !9
  %3350 = icmp eq ptr %3349, null
  br i1 %3350, label %3351, label %3404

3351:                                             ; preds = %3346
  br label %3352

3352:                                             ; preds = %3351
  br label %3353

3353:                                             ; preds = %3352
  call void @llvm.lifetime.start.p0(i64 4, ptr %86) #10
  %3354 = call ptr @__errno_location() #11
  %3355 = load i32, ptr %3354, align 4, !tbaa !5
  store i32 %3355, ptr %86, align 4, !tbaa !5
  %3356 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3357 = call i32 @s2n_print_stacktrace(ptr noundef %3356)
  %3358 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3359 = trunc i8 %3358 to i1
  br i1 %3359, label %3360, label %3382

3360:                                             ; preds = %3353
  %3361 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3362 = call i32 @fileno(ptr noundef %3361) #10
  %3363 = call i32 @isatty(i32 noundef %3362) #10
  %3364 = icmp ne i32 %3363, 0
  br i1 %3364, label %3365, label %3382

3365:                                             ; preds = %3360
  %3366 = load i32, ptr %86, align 4, !tbaa !5
  %3367 = call ptr @__errno_location() #11
  store i32 %3366, ptr %3367, align 4, !tbaa !5
  %3368 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3369 = load i32, ptr @test_count, align 4, !tbaa !5
  %3370 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3371 = load i32, ptr %3370, align 4, !tbaa !5
  %3372 = call ptr @s2n_strerror(i32 noundef %3371, ptr noundef @.str.4)
  %3373 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3374 = load i32, ptr %3373, align 4, !tbaa !5
  %3375 = call ptr @s2n_strerror_debug(i32 noundef %3374, ptr noundef @.str.4)
  %3376 = call ptr @__errno_location() #11
  %3377 = load i32, ptr %3376, align 4, !tbaa !5
  %3378 = call ptr @strerror(i32 noundef %3377) #10
  %3379 = call ptr @__errno_location() #11
  %3380 = load i32, ptr %3379, align 4, !tbaa !5
  %3381 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3368, ptr noundef @.str.2, i32 noundef %3369, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 171, ptr noundef %3372, ptr noundef %3375, ptr noundef %3378, i32 noundef %3380) #10
  br label %3399

3382:                                             ; preds = %3360, %3353
  %3383 = load i32, ptr %86, align 4, !tbaa !5
  %3384 = call ptr @__errno_location() #11
  store i32 %3383, ptr %3384, align 4, !tbaa !5
  %3385 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3386 = load i32, ptr @test_count, align 4, !tbaa !5
  %3387 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3388 = load i32, ptr %3387, align 4, !tbaa !5
  %3389 = call ptr @s2n_strerror(i32 noundef %3388, ptr noundef @.str.4)
  %3390 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3391 = load i32, ptr %3390, align 4, !tbaa !5
  %3392 = call ptr @s2n_strerror_debug(i32 noundef %3391, ptr noundef @.str.4)
  %3393 = call ptr @__errno_location() #11
  %3394 = load i32, ptr %3393, align 4, !tbaa !5
  %3395 = call ptr @strerror(i32 noundef %3394) #10
  %3396 = call ptr @__errno_location() #11
  %3397 = load i32, ptr %3396, align 4, !tbaa !5
  %3398 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3385, ptr noundef @.str.5, i32 noundef %3386, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 171, ptr noundef %3389, ptr noundef %3392, ptr noundef %3395, i32 noundef %3397) #10
  br label %3399

3399:                                             ; preds = %3382, %3365
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #10
  br label %3400

3400:                                             ; preds = %3399
  br label %3401

3401:                                             ; preds = %3400
  call void @exit(i32 noundef 1) #12
  unreachable

3402:                                             ; No predecessors!
  br label %3403

3403:                                             ; preds = %3402
  br label %3404

3404:                                             ; preds = %3403, %3346
  br label %3405

3405:                                             ; preds = %3404
  br label %3406

3406:                                             ; preds = %3405
  br label %3407

3407:                                             ; preds = %3406
  %3408 = load i32, ptr @test_count, align 4, !tbaa !5
  %3409 = add nsw i32 %3408, 1
  store i32 %3409, ptr @test_count, align 4, !tbaa !5
  %3410 = load ptr, ptr %85, align 8, !tbaa !9
  %3411 = getelementptr inbounds [3 x ptr], ptr %9, i64 0, i64 0
  %3412 = call i32 @s2n_config_set_protocol_preferences(ptr noundef %3410, ptr noundef %3411, i32 noundef 3)
  %3413 = icmp eq i32 %3412, -1
  br i1 %3413, label %3414, label %3467

3414:                                             ; preds = %3407
  br label %3415

3415:                                             ; preds = %3414
  br label %3416

3416:                                             ; preds = %3415
  call void @llvm.lifetime.start.p0(i64 4, ptr %87) #10
  %3417 = call ptr @__errno_location() #11
  %3418 = load i32, ptr %3417, align 4, !tbaa !5
  store i32 %3418, ptr %87, align 4, !tbaa !5
  %3419 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3420 = call i32 @s2n_print_stacktrace(ptr noundef %3419)
  %3421 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3422 = trunc i8 %3421 to i1
  br i1 %3422, label %3423, label %3445

3423:                                             ; preds = %3416
  %3424 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3425 = call i32 @fileno(ptr noundef %3424) #10
  %3426 = call i32 @isatty(i32 noundef %3425) #10
  %3427 = icmp ne i32 %3426, 0
  br i1 %3427, label %3428, label %3445

3428:                                             ; preds = %3423
  %3429 = load i32, ptr %87, align 4, !tbaa !5
  %3430 = call ptr @__errno_location() #11
  store i32 %3429, ptr %3430, align 4, !tbaa !5
  %3431 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3432 = load i32, ptr @test_count, align 4, !tbaa !5
  %3433 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3434 = load i32, ptr %3433, align 4, !tbaa !5
  %3435 = call ptr @s2n_strerror(i32 noundef %3434, ptr noundef @.str.4)
  %3436 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3437 = load i32, ptr %3436, align 4, !tbaa !5
  %3438 = call ptr @s2n_strerror_debug(i32 noundef %3437, ptr noundef @.str.4)
  %3439 = call ptr @__errno_location() #11
  %3440 = load i32, ptr %3439, align 4, !tbaa !5
  %3441 = call ptr @strerror(i32 noundef %3440) #10
  %3442 = call ptr @__errno_location() #11
  %3443 = load i32, ptr %3442, align 4, !tbaa !5
  %3444 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3431, ptr noundef @.str.2, i32 noundef %3432, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 172, ptr noundef %3435, ptr noundef %3438, ptr noundef %3441, i32 noundef %3443) #10
  br label %3462

3445:                                             ; preds = %3423, %3416
  %3446 = load i32, ptr %87, align 4, !tbaa !5
  %3447 = call ptr @__errno_location() #11
  store i32 %3446, ptr %3447, align 4, !tbaa !5
  %3448 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3449 = load i32, ptr @test_count, align 4, !tbaa !5
  %3450 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3451 = load i32, ptr %3450, align 4, !tbaa !5
  %3452 = call ptr @s2n_strerror(i32 noundef %3451, ptr noundef @.str.4)
  %3453 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3454 = load i32, ptr %3453, align 4, !tbaa !5
  %3455 = call ptr @s2n_strerror_debug(i32 noundef %3454, ptr noundef @.str.4)
  %3456 = call ptr @__errno_location() #11
  %3457 = load i32, ptr %3456, align 4, !tbaa !5
  %3458 = call ptr @strerror(i32 noundef %3457) #10
  %3459 = call ptr @__errno_location() #11
  %3460 = load i32, ptr %3459, align 4, !tbaa !5
  %3461 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3448, ptr noundef @.str.5, i32 noundef %3449, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 172, ptr noundef %3452, ptr noundef %3455, ptr noundef %3458, i32 noundef %3460) #10
  br label %3462

3462:                                             ; preds = %3445, %3428
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #10
  br label %3463

3463:                                             ; preds = %3462
  br label %3464

3464:                                             ; preds = %3463
  call void @exit(i32 noundef 1) #12
  unreachable

3465:                                             ; No predecessors!
  br label %3466

3466:                                             ; preds = %3465
  br label %3467

3467:                                             ; preds = %3466, %3407
  br label %3468

3468:                                             ; preds = %3467
  br label %3469

3469:                                             ; preds = %3468
  br label %3470

3470:                                             ; preds = %3469
  %3471 = load i32, ptr @test_count, align 4, !tbaa !5
  %3472 = add nsw i32 %3471, 1
  store i32 %3472, ptr @test_count, align 4, !tbaa !5
  %3473 = load ptr, ptr %83, align 8, !tbaa !9
  %3474 = load ptr, ptr %85, align 8, !tbaa !9
  %3475 = call i32 @s2n_connection_set_config(ptr noundef %3473, ptr noundef %3474)
  %3476 = icmp eq i32 %3475, -1
  br i1 %3476, label %3477, label %3530

3477:                                             ; preds = %3470
  br label %3478

3478:                                             ; preds = %3477
  br label %3479

3479:                                             ; preds = %3478
  call void @llvm.lifetime.start.p0(i64 4, ptr %88) #10
  %3480 = call ptr @__errno_location() #11
  %3481 = load i32, ptr %3480, align 4, !tbaa !5
  store i32 %3481, ptr %88, align 4, !tbaa !5
  %3482 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3483 = call i32 @s2n_print_stacktrace(ptr noundef %3482)
  %3484 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3485 = trunc i8 %3484 to i1
  br i1 %3485, label %3486, label %3508

3486:                                             ; preds = %3479
  %3487 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3488 = call i32 @fileno(ptr noundef %3487) #10
  %3489 = call i32 @isatty(i32 noundef %3488) #10
  %3490 = icmp ne i32 %3489, 0
  br i1 %3490, label %3491, label %3508

3491:                                             ; preds = %3486
  %3492 = load i32, ptr %88, align 4, !tbaa !5
  %3493 = call ptr @__errno_location() #11
  store i32 %3492, ptr %3493, align 4, !tbaa !5
  %3494 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3495 = load i32, ptr @test_count, align 4, !tbaa !5
  %3496 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3497 = load i32, ptr %3496, align 4, !tbaa !5
  %3498 = call ptr @s2n_strerror(i32 noundef %3497, ptr noundef @.str.4)
  %3499 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3500 = load i32, ptr %3499, align 4, !tbaa !5
  %3501 = call ptr @s2n_strerror_debug(i32 noundef %3500, ptr noundef @.str.4)
  %3502 = call ptr @__errno_location() #11
  %3503 = load i32, ptr %3502, align 4, !tbaa !5
  %3504 = call ptr @strerror(i32 noundef %3503) #10
  %3505 = call ptr @__errno_location() #11
  %3506 = load i32, ptr %3505, align 4, !tbaa !5
  %3507 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3494, ptr noundef @.str.2, i32 noundef %3495, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 173, ptr noundef %3498, ptr noundef %3501, ptr noundef %3504, i32 noundef %3506) #10
  br label %3525

3508:                                             ; preds = %3486, %3479
  %3509 = load i32, ptr %88, align 4, !tbaa !5
  %3510 = call ptr @__errno_location() #11
  store i32 %3509, ptr %3510, align 4, !tbaa !5
  %3511 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3512 = load i32, ptr @test_count, align 4, !tbaa !5
  %3513 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3514 = load i32, ptr %3513, align 4, !tbaa !5
  %3515 = call ptr @s2n_strerror(i32 noundef %3514, ptr noundef @.str.4)
  %3516 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3517 = load i32, ptr %3516, align 4, !tbaa !5
  %3518 = call ptr @s2n_strerror_debug(i32 noundef %3517, ptr noundef @.str.4)
  %3519 = call ptr @__errno_location() #11
  %3520 = load i32, ptr %3519, align 4, !tbaa !5
  %3521 = call ptr @strerror(i32 noundef %3520) #10
  %3522 = call ptr @__errno_location() #11
  %3523 = load i32, ptr %3522, align 4, !tbaa !5
  %3524 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3511, ptr noundef @.str.5, i32 noundef %3512, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 173, ptr noundef %3515, ptr noundef %3518, ptr noundef %3521, i32 noundef %3523) #10
  br label %3525

3525:                                             ; preds = %3508, %3491
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #10
  br label %3526

3526:                                             ; preds = %3525
  br label %3527

3527:                                             ; preds = %3526
  call void @exit(i32 noundef 1) #12
  unreachable

3528:                                             ; No predecessors!
  br label %3529

3529:                                             ; preds = %3528
  br label %3530

3530:                                             ; preds = %3529, %3470
  br label %3531

3531:                                             ; preds = %3530
  br label %3532

3532:                                             ; preds = %3531
  call void @llvm.lifetime.start.p0(i64 40, ptr %89) #10
  call void @llvm.memset.p0.i64(ptr align 8 %89, i8 0, i64 40, i1 false)
  br label %3533

3533:                                             ; preds = %3532
  %3534 = load i32, ptr @test_count, align 4, !tbaa !5
  %3535 = add nsw i32 %3534, 1
  store i32 %3535, ptr @test_count, align 4, !tbaa !5
  %3536 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %89, i32 noundef 0)
  %3537 = icmp eq i32 %3536, -1
  br i1 %3537, label %3538, label %3591

3538:                                             ; preds = %3533
  br label %3539

3539:                                             ; preds = %3538
  br label %3540

3540:                                             ; preds = %3539
  call void @llvm.lifetime.start.p0(i64 4, ptr %90) #10
  %3541 = call ptr @__errno_location() #11
  %3542 = load i32, ptr %3541, align 4, !tbaa !5
  store i32 %3542, ptr %90, align 4, !tbaa !5
  %3543 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3544 = call i32 @s2n_print_stacktrace(ptr noundef %3543)
  %3545 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3546 = trunc i8 %3545 to i1
  br i1 %3546, label %3547, label %3569

3547:                                             ; preds = %3540
  %3548 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3549 = call i32 @fileno(ptr noundef %3548) #10
  %3550 = call i32 @isatty(i32 noundef %3549) #10
  %3551 = icmp ne i32 %3550, 0
  br i1 %3551, label %3552, label %3569

3552:                                             ; preds = %3547
  %3553 = load i32, ptr %90, align 4, !tbaa !5
  %3554 = call ptr @__errno_location() #11
  store i32 %3553, ptr %3554, align 4, !tbaa !5
  %3555 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3556 = load i32, ptr @test_count, align 4, !tbaa !5
  %3557 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3558 = load i32, ptr %3557, align 4, !tbaa !5
  %3559 = call ptr @s2n_strerror(i32 noundef %3558, ptr noundef @.str.4)
  %3560 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3561 = load i32, ptr %3560, align 4, !tbaa !5
  %3562 = call ptr @s2n_strerror_debug(i32 noundef %3561, ptr noundef @.str.4)
  %3563 = call ptr @__errno_location() #11
  %3564 = load i32, ptr %3563, align 4, !tbaa !5
  %3565 = call ptr @strerror(i32 noundef %3564) #10
  %3566 = call ptr @__errno_location() #11
  %3567 = load i32, ptr %3566, align 4, !tbaa !5
  %3568 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3555, ptr noundef @.str.2, i32 noundef %3556, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 176, ptr noundef %3559, ptr noundef %3562, ptr noundef %3565, i32 noundef %3567) #10
  br label %3586

3569:                                             ; preds = %3547, %3540
  %3570 = load i32, ptr %90, align 4, !tbaa !5
  %3571 = call ptr @__errno_location() #11
  store i32 %3570, ptr %3571, align 4, !tbaa !5
  %3572 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3573 = load i32, ptr @test_count, align 4, !tbaa !5
  %3574 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3575 = load i32, ptr %3574, align 4, !tbaa !5
  %3576 = call ptr @s2n_strerror(i32 noundef %3575, ptr noundef @.str.4)
  %3577 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3578 = load i32, ptr %3577, align 4, !tbaa !5
  %3579 = call ptr @s2n_strerror_debug(i32 noundef %3578, ptr noundef @.str.4)
  %3580 = call ptr @__errno_location() #11
  %3581 = load i32, ptr %3580, align 4, !tbaa !5
  %3582 = call ptr @strerror(i32 noundef %3581) #10
  %3583 = call ptr @__errno_location() #11
  %3584 = load i32, ptr %3583, align 4, !tbaa !5
  %3585 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3572, ptr noundef @.str.5, i32 noundef %3573, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 176, ptr noundef %3576, ptr noundef %3579, ptr noundef %3582, i32 noundef %3584) #10
  br label %3586

3586:                                             ; preds = %3569, %3552
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #10
  br label %3587

3587:                                             ; preds = %3586
  br label %3588

3588:                                             ; preds = %3587
  call void @exit(i32 noundef 1) #12
  unreachable

3589:                                             ; No predecessors!
  br label %3590

3590:                                             ; preds = %3589
  br label %3591

3591:                                             ; preds = %3590, %3533
  br label %3592

3592:                                             ; preds = %3591
  br label %3593

3593:                                             ; preds = %3592
  br label %3594

3594:                                             ; preds = %3593
  %3595 = load i32, ptr @test_count, align 4, !tbaa !5
  %3596 = add nsw i32 %3595, 1
  store i32 %3596, ptr @test_count, align 4, !tbaa !5
  %3597 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_npn_extension, i32 0, i32 3), align 8, !tbaa !46
  %3598 = load ptr, ptr %83, align 8, !tbaa !9
  %3599 = call i32 %3597(ptr noundef %3598, ptr noundef %89)
  %3600 = icmp eq i32 %3599, -1
  br i1 %3600, label %3601, label %3654

3601:                                             ; preds = %3594
  br label %3602

3602:                                             ; preds = %3601
  br label %3603

3603:                                             ; preds = %3602
  call void @llvm.lifetime.start.p0(i64 4, ptr %91) #10
  %3604 = call ptr @__errno_location() #11
  %3605 = load i32, ptr %3604, align 4, !tbaa !5
  store i32 %3605, ptr %91, align 4, !tbaa !5
  %3606 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3607 = call i32 @s2n_print_stacktrace(ptr noundef %3606)
  %3608 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3609 = trunc i8 %3608 to i1
  br i1 %3609, label %3610, label %3632

3610:                                             ; preds = %3603
  %3611 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3612 = call i32 @fileno(ptr noundef %3611) #10
  %3613 = call i32 @isatty(i32 noundef %3612) #10
  %3614 = icmp ne i32 %3613, 0
  br i1 %3614, label %3615, label %3632

3615:                                             ; preds = %3610
  %3616 = load i32, ptr %91, align 4, !tbaa !5
  %3617 = call ptr @__errno_location() #11
  store i32 %3616, ptr %3617, align 4, !tbaa !5
  %3618 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3619 = load i32, ptr @test_count, align 4, !tbaa !5
  %3620 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3621 = load i32, ptr %3620, align 4, !tbaa !5
  %3622 = call ptr @s2n_strerror(i32 noundef %3621, ptr noundef @.str.4)
  %3623 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3624 = load i32, ptr %3623, align 4, !tbaa !5
  %3625 = call ptr @s2n_strerror_debug(i32 noundef %3624, ptr noundef @.str.4)
  %3626 = call ptr @__errno_location() #11
  %3627 = load i32, ptr %3626, align 4, !tbaa !5
  %3628 = call ptr @strerror(i32 noundef %3627) #10
  %3629 = call ptr @__errno_location() #11
  %3630 = load i32, ptr %3629, align 4, !tbaa !5
  %3631 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3618, ptr noundef @.str.2, i32 noundef %3619, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 178, ptr noundef %3622, ptr noundef %3625, ptr noundef %3628, i32 noundef %3630) #10
  br label %3649

3632:                                             ; preds = %3610, %3603
  %3633 = load i32, ptr %91, align 4, !tbaa !5
  %3634 = call ptr @__errno_location() #11
  store i32 %3633, ptr %3634, align 4, !tbaa !5
  %3635 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3636 = load i32, ptr @test_count, align 4, !tbaa !5
  %3637 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3638 = load i32, ptr %3637, align 4, !tbaa !5
  %3639 = call ptr @s2n_strerror(i32 noundef %3638, ptr noundef @.str.4)
  %3640 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3641 = load i32, ptr %3640, align 4, !tbaa !5
  %3642 = call ptr @s2n_strerror_debug(i32 noundef %3641, ptr noundef @.str.4)
  %3643 = call ptr @__errno_location() #11
  %3644 = load i32, ptr %3643, align 4, !tbaa !5
  %3645 = call ptr @strerror(i32 noundef %3644) #10
  %3646 = call ptr @__errno_location() #11
  %3647 = load i32, ptr %3646, align 4, !tbaa !5
  %3648 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3635, ptr noundef @.str.5, i32 noundef %3636, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 178, ptr noundef %3639, ptr noundef %3642, ptr noundef %3645, i32 noundef %3647) #10
  br label %3649

3649:                                             ; preds = %3632, %3615
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #10
  br label %3650

3650:                                             ; preds = %3649
  br label %3651

3651:                                             ; preds = %3650
  call void @exit(i32 noundef 1) #12
  unreachable

3652:                                             ; No predecessors!
  br label %3653

3653:                                             ; preds = %3652
  br label %3654

3654:                                             ; preds = %3653, %3594
  br label %3655

3655:                                             ; preds = %3654
  br label %3656

3656:                                             ; preds = %3655
  br label %3657

3657:                                             ; preds = %3656
  %3658 = load i32, ptr @test_count, align 4, !tbaa !5
  %3659 = add nsw i32 %3658, 1
  store i32 %3659, ptr @test_count, align 4, !tbaa !5
  %3660 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_npn_extension, i32 0, i32 4), align 8, !tbaa !45
  %3661 = load ptr, ptr %83, align 8, !tbaa !9
  %3662 = call i32 %3660(ptr noundef %3661, ptr noundef %89)
  %3663 = icmp eq i32 %3662, -1
  br i1 %3663, label %3664, label %3717

3664:                                             ; preds = %3657
  br label %3665

3665:                                             ; preds = %3664
  br label %3666

3666:                                             ; preds = %3665
  call void @llvm.lifetime.start.p0(i64 4, ptr %92) #10
  %3667 = call ptr @__errno_location() #11
  %3668 = load i32, ptr %3667, align 4, !tbaa !5
  store i32 %3668, ptr %92, align 4, !tbaa !5
  %3669 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3670 = call i32 @s2n_print_stacktrace(ptr noundef %3669)
  %3671 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3672 = trunc i8 %3671 to i1
  br i1 %3672, label %3673, label %3695

3673:                                             ; preds = %3666
  %3674 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3675 = call i32 @fileno(ptr noundef %3674) #10
  %3676 = call i32 @isatty(i32 noundef %3675) #10
  %3677 = icmp ne i32 %3676, 0
  br i1 %3677, label %3678, label %3695

3678:                                             ; preds = %3673
  %3679 = load i32, ptr %92, align 4, !tbaa !5
  %3680 = call ptr @__errno_location() #11
  store i32 %3679, ptr %3680, align 4, !tbaa !5
  %3681 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3682 = load i32, ptr @test_count, align 4, !tbaa !5
  %3683 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3684 = load i32, ptr %3683, align 4, !tbaa !5
  %3685 = call ptr @s2n_strerror(i32 noundef %3684, ptr noundef @.str.4)
  %3686 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3687 = load i32, ptr %3686, align 4, !tbaa !5
  %3688 = call ptr @s2n_strerror_debug(i32 noundef %3687, ptr noundef @.str.4)
  %3689 = call ptr @__errno_location() #11
  %3690 = load i32, ptr %3689, align 4, !tbaa !5
  %3691 = call ptr @strerror(i32 noundef %3690) #10
  %3692 = call ptr @__errno_location() #11
  %3693 = load i32, ptr %3692, align 4, !tbaa !5
  %3694 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3681, ptr noundef @.str.2, i32 noundef %3682, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 179, ptr noundef %3685, ptr noundef %3688, ptr noundef %3691, i32 noundef %3693) #10
  br label %3712

3695:                                             ; preds = %3673, %3666
  %3696 = load i32, ptr %92, align 4, !tbaa !5
  %3697 = call ptr @__errno_location() #11
  store i32 %3696, ptr %3697, align 4, !tbaa !5
  %3698 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3699 = load i32, ptr @test_count, align 4, !tbaa !5
  %3700 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3701 = load i32, ptr %3700, align 4, !tbaa !5
  %3702 = call ptr @s2n_strerror(i32 noundef %3701, ptr noundef @.str.4)
  %3703 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3704 = load i32, ptr %3703, align 4, !tbaa !5
  %3705 = call ptr @s2n_strerror_debug(i32 noundef %3704, ptr noundef @.str.4)
  %3706 = call ptr @__errno_location() #11
  %3707 = load i32, ptr %3706, align 4, !tbaa !5
  %3708 = call ptr @strerror(i32 noundef %3707) #10
  %3709 = call ptr @__errno_location() #11
  %3710 = load i32, ptr %3709, align 4, !tbaa !5
  %3711 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3698, ptr noundef @.str.5, i32 noundef %3699, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 179, ptr noundef %3702, ptr noundef %3705, ptr noundef %3708, i32 noundef %3710) #10
  br label %3712

3712:                                             ; preds = %3695, %3678
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #10
  br label %3713

3713:                                             ; preds = %3712
  br label %3714

3714:                                             ; preds = %3713
  call void @exit(i32 noundef 1) #12
  unreachable

3715:                                             ; No predecessors!
  br label %3716

3716:                                             ; preds = %3715
  br label %3717

3717:                                             ; preds = %3716, %3657
  br label %3718

3718:                                             ; preds = %3717
  br label %3719

3719:                                             ; preds = %3718
  br label %3720

3720:                                             ; preds = %3719
  %3721 = load i32, ptr @test_count, align 4, !tbaa !5
  %3722 = add nsw i32 %3721, 1
  store i32 %3722, ptr @test_count, align 4, !tbaa !5
  %3723 = load ptr, ptr %83, align 8, !tbaa !9
  %3724 = call ptr @s2n_get_application_protocol(ptr noundef %3723)
  %3725 = icmp eq ptr %3724, null
  br i1 %3725, label %3726, label %3779

3726:                                             ; preds = %3720
  br label %3727

3727:                                             ; preds = %3726
  br label %3728

3728:                                             ; preds = %3727
  call void @llvm.lifetime.start.p0(i64 4, ptr %93) #10
  %3729 = call ptr @__errno_location() #11
  %3730 = load i32, ptr %3729, align 4, !tbaa !5
  store i32 %3730, ptr %93, align 4, !tbaa !5
  %3731 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3732 = call i32 @s2n_print_stacktrace(ptr noundef %3731)
  %3733 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3734 = trunc i8 %3733 to i1
  br i1 %3734, label %3735, label %3757

3735:                                             ; preds = %3728
  %3736 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3737 = call i32 @fileno(ptr noundef %3736) #10
  %3738 = call i32 @isatty(i32 noundef %3737) #10
  %3739 = icmp ne i32 %3738, 0
  br i1 %3739, label %3740, label %3757

3740:                                             ; preds = %3735
  %3741 = load i32, ptr %93, align 4, !tbaa !5
  %3742 = call ptr @__errno_location() #11
  store i32 %3741, ptr %3742, align 4, !tbaa !5
  %3743 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3744 = load i32, ptr @test_count, align 4, !tbaa !5
  %3745 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3746 = load i32, ptr %3745, align 4, !tbaa !5
  %3747 = call ptr @s2n_strerror(i32 noundef %3746, ptr noundef @.str.4)
  %3748 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3749 = load i32, ptr %3748, align 4, !tbaa !5
  %3750 = call ptr @s2n_strerror_debug(i32 noundef %3749, ptr noundef @.str.4)
  %3751 = call ptr @__errno_location() #11
  %3752 = load i32, ptr %3751, align 4, !tbaa !5
  %3753 = call ptr @strerror(i32 noundef %3752) #10
  %3754 = call ptr @__errno_location() #11
  %3755 = load i32, ptr %3754, align 4, !tbaa !5
  %3756 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3743, ptr noundef @.str.2, i32 noundef %3744, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 182, ptr noundef %3747, ptr noundef %3750, ptr noundef %3753, i32 noundef %3755) #10
  br label %3774

3757:                                             ; preds = %3735, %3728
  %3758 = load i32, ptr %93, align 4, !tbaa !5
  %3759 = call ptr @__errno_location() #11
  store i32 %3758, ptr %3759, align 4, !tbaa !5
  %3760 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3761 = load i32, ptr @test_count, align 4, !tbaa !5
  %3762 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3763 = load i32, ptr %3762, align 4, !tbaa !5
  %3764 = call ptr @s2n_strerror(i32 noundef %3763, ptr noundef @.str.4)
  %3765 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3766 = load i32, ptr %3765, align 4, !tbaa !5
  %3767 = call ptr @s2n_strerror_debug(i32 noundef %3766, ptr noundef @.str.4)
  %3768 = call ptr @__errno_location() #11
  %3769 = load i32, ptr %3768, align 4, !tbaa !5
  %3770 = call ptr @strerror(i32 noundef %3769) #10
  %3771 = call ptr @__errno_location() #11
  %3772 = load i32, ptr %3771, align 4, !tbaa !5
  %3773 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3760, ptr noundef @.str.5, i32 noundef %3761, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 182, ptr noundef %3764, ptr noundef %3767, ptr noundef %3770, i32 noundef %3772) #10
  br label %3774

3774:                                             ; preds = %3757, %3740
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #10
  br label %3775

3775:                                             ; preds = %3774
  br label %3776

3776:                                             ; preds = %3775
  call void @exit(i32 noundef 1) #12
  unreachable

3777:                                             ; No predecessors!
  br label %3778

3778:                                             ; preds = %3777
  br label %3779

3779:                                             ; preds = %3778, %3720
  br label %3780

3780:                                             ; preds = %3779
  br label %3781

3781:                                             ; preds = %3780
  br label %3782

3782:                                             ; preds = %3781
  %3783 = getelementptr inbounds [3 x ptr], ptr %9, i64 0, i64 0
  %3784 = load ptr, ptr %3783, align 16, !tbaa !9
  %3785 = call i64 @strlen(ptr noundef %3784) #13
  %3786 = icmp ne i64 %3785, 0
  br i1 %3786, label %3787, label %3856

3787:                                             ; preds = %3782
  br label %3788

3788:                                             ; preds = %3787
  %3789 = load i32, ptr @test_count, align 4, !tbaa !5
  %3790 = add nsw i32 %3789, 1
  store i32 %3790, ptr @test_count, align 4, !tbaa !5
  %3791 = load ptr, ptr %83, align 8, !tbaa !9
  %3792 = call ptr @s2n_get_application_protocol(ptr noundef %3791)
  %3793 = getelementptr inbounds [3 x ptr], ptr %9, i64 0, i64 0
  %3794 = load ptr, ptr %3793, align 16, !tbaa !9
  %3795 = getelementptr inbounds [3 x ptr], ptr %9, i64 0, i64 0
  %3796 = load ptr, ptr %3795, align 16, !tbaa !9
  %3797 = call i64 @strlen(ptr noundef %3796) #13
  %3798 = call i32 @memcmp(ptr noundef %3792, ptr noundef %3794, i64 noundef %3797) #13
  %3799 = icmp eq i32 %3798, 0
  br i1 %3799, label %3853, label %3800

3800:                                             ; preds = %3788
  br label %3801

3801:                                             ; preds = %3800
  br label %3802

3802:                                             ; preds = %3801
  call void @llvm.lifetime.start.p0(i64 4, ptr %94) #10
  %3803 = call ptr @__errno_location() #11
  %3804 = load i32, ptr %3803, align 4, !tbaa !5
  store i32 %3804, ptr %94, align 4, !tbaa !5
  %3805 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3806 = call i32 @s2n_print_stacktrace(ptr noundef %3805)
  %3807 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3808 = trunc i8 %3807 to i1
  br i1 %3808, label %3809, label %3831

3809:                                             ; preds = %3802
  %3810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3811 = call i32 @fileno(ptr noundef %3810) #10
  %3812 = call i32 @isatty(i32 noundef %3811) #10
  %3813 = icmp ne i32 %3812, 0
  br i1 %3813, label %3814, label %3831

3814:                                             ; preds = %3809
  %3815 = load i32, ptr %94, align 4, !tbaa !5
  %3816 = call ptr @__errno_location() #11
  store i32 %3815, ptr %3816, align 4, !tbaa !5
  %3817 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3818 = load i32, ptr @test_count, align 4, !tbaa !5
  %3819 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3820 = load i32, ptr %3819, align 4, !tbaa !5
  %3821 = call ptr @s2n_strerror(i32 noundef %3820, ptr noundef @.str.4)
  %3822 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3823 = load i32, ptr %3822, align 4, !tbaa !5
  %3824 = call ptr @s2n_strerror_debug(i32 noundef %3823, ptr noundef @.str.4)
  %3825 = call ptr @__errno_location() #11
  %3826 = load i32, ptr %3825, align 4, !tbaa !5
  %3827 = call ptr @strerror(i32 noundef %3826) #10
  %3828 = call ptr @__errno_location() #11
  %3829 = load i32, ptr %3828, align 4, !tbaa !5
  %3830 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3817, ptr noundef @.str.2, i32 noundef %3818, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 183, ptr noundef %3821, ptr noundef %3824, ptr noundef %3827, i32 noundef %3829) #10
  br label %3848

3831:                                             ; preds = %3809, %3802
  %3832 = load i32, ptr %94, align 4, !tbaa !5
  %3833 = call ptr @__errno_location() #11
  store i32 %3832, ptr %3833, align 4, !tbaa !5
  %3834 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3835 = load i32, ptr @test_count, align 4, !tbaa !5
  %3836 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3837 = load i32, ptr %3836, align 4, !tbaa !5
  %3838 = call ptr @s2n_strerror(i32 noundef %3837, ptr noundef @.str.4)
  %3839 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3840 = load i32, ptr %3839, align 4, !tbaa !5
  %3841 = call ptr @s2n_strerror_debug(i32 noundef %3840, ptr noundef @.str.4)
  %3842 = call ptr @__errno_location() #11
  %3843 = load i32, ptr %3842, align 4, !tbaa !5
  %3844 = call ptr @strerror(i32 noundef %3843) #10
  %3845 = call ptr @__errno_location() #11
  %3846 = load i32, ptr %3845, align 4, !tbaa !5
  %3847 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3834, ptr noundef @.str.5, i32 noundef %3835, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 183, ptr noundef %3838, ptr noundef %3841, ptr noundef %3844, i32 noundef %3846) #10
  br label %3848

3848:                                             ; preds = %3831, %3814
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #10
  br label %3849

3849:                                             ; preds = %3848
  br label %3850

3850:                                             ; preds = %3849
  call void @exit(i32 noundef 1) #12
  unreachable

3851:                                             ; No predecessors!
  br label %3852

3852:                                             ; preds = %3851
  br label %3853

3853:                                             ; preds = %3852, %3788
  br label %3854

3854:                                             ; preds = %3853
  br label %3855

3855:                                             ; preds = %3854
  br label %3856

3856:                                             ; preds = %3855, %3782
  br label %3857

3857:                                             ; preds = %3856
  br label %3858

3858:                                             ; preds = %3857
  %3859 = call i32 @s2n_stuffer_free(ptr noundef %89)
  call void @llvm.lifetime.end.p0(i64 40, ptr %89) #10
  %3860 = call i32 @s2n_config_ptr_free(ptr noundef %85)
  %3861 = getelementptr inbounds %struct.s2n_result, ptr %95, i32 0, i32 0
  store i32 %3860, ptr %3861, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #10
  %3862 = call i32 @s2n_connection_ptr_free(ptr noundef %83)
  %3863 = getelementptr inbounds %struct.s2n_result, ptr %96, i32 0, i32 0
  store i32 %3862, ptr %3863, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %97) #10
  %3864 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %3864, ptr %97, align 8, !tbaa !9
  br label %3865

3865:                                             ; preds = %3858
  %3866 = load i32, ptr @test_count, align 4, !tbaa !5
  %3867 = add nsw i32 %3866, 1
  store i32 %3867, ptr @test_count, align 4, !tbaa !5
  %3868 = load ptr, ptr %97, align 8, !tbaa !9
  %3869 = icmp eq ptr %3868, null
  br i1 %3869, label %3870, label %3923

3870:                                             ; preds = %3865
  br label %3871

3871:                                             ; preds = %3870
  br label %3872

3872:                                             ; preds = %3871
  call void @llvm.lifetime.start.p0(i64 4, ptr %98) #10
  %3873 = call ptr @__errno_location() #11
  %3874 = load i32, ptr %3873, align 4, !tbaa !5
  store i32 %3874, ptr %98, align 4, !tbaa !5
  %3875 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3876 = call i32 @s2n_print_stacktrace(ptr noundef %3875)
  %3877 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3878 = trunc i8 %3877 to i1
  br i1 %3878, label %3879, label %3901

3879:                                             ; preds = %3872
  %3880 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3881 = call i32 @fileno(ptr noundef %3880) #10
  %3882 = call i32 @isatty(i32 noundef %3881) #10
  %3883 = icmp ne i32 %3882, 0
  br i1 %3883, label %3884, label %3901

3884:                                             ; preds = %3879
  %3885 = load i32, ptr %98, align 4, !tbaa !5
  %3886 = call ptr @__errno_location() #11
  store i32 %3885, ptr %3886, align 4, !tbaa !5
  %3887 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3888 = load i32, ptr @test_count, align 4, !tbaa !5
  %3889 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3890 = load i32, ptr %3889, align 4, !tbaa !5
  %3891 = call ptr @s2n_strerror(i32 noundef %3890, ptr noundef @.str.4)
  %3892 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3893 = load i32, ptr %3892, align 4, !tbaa !5
  %3894 = call ptr @s2n_strerror_debug(i32 noundef %3893, ptr noundef @.str.4)
  %3895 = call ptr @__errno_location() #11
  %3896 = load i32, ptr %3895, align 4, !tbaa !5
  %3897 = call ptr @strerror(i32 noundef %3896) #10
  %3898 = call ptr @__errno_location() #11
  %3899 = load i32, ptr %3898, align 4, !tbaa !5
  %3900 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3887, ptr noundef @.str.2, i32 noundef %3888, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 189, ptr noundef %3891, ptr noundef %3894, ptr noundef %3897, i32 noundef %3899) #10
  br label %3918

3901:                                             ; preds = %3879, %3872
  %3902 = load i32, ptr %98, align 4, !tbaa !5
  %3903 = call ptr @__errno_location() #11
  store i32 %3902, ptr %3903, align 4, !tbaa !5
  %3904 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3905 = load i32, ptr @test_count, align 4, !tbaa !5
  %3906 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3907 = load i32, ptr %3906, align 4, !tbaa !5
  %3908 = call ptr @s2n_strerror(i32 noundef %3907, ptr noundef @.str.4)
  %3909 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3910 = load i32, ptr %3909, align 4, !tbaa !5
  %3911 = call ptr @s2n_strerror_debug(i32 noundef %3910, ptr noundef @.str.4)
  %3912 = call ptr @__errno_location() #11
  %3913 = load i32, ptr %3912, align 4, !tbaa !5
  %3914 = call ptr @strerror(i32 noundef %3913) #10
  %3915 = call ptr @__errno_location() #11
  %3916 = load i32, ptr %3915, align 4, !tbaa !5
  %3917 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3904, ptr noundef @.str.5, i32 noundef %3905, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 189, ptr noundef %3908, ptr noundef %3911, ptr noundef %3914, i32 noundef %3916) #10
  br label %3918

3918:                                             ; preds = %3901, %3884
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #10
  br label %3919

3919:                                             ; preds = %3918
  br label %3920

3920:                                             ; preds = %3919
  call void @exit(i32 noundef 1) #12
  unreachable

3921:                                             ; No predecessors!
  br label %3922

3922:                                             ; preds = %3921
  br label %3923

3923:                                             ; preds = %3922, %3865
  br label %3924

3924:                                             ; preds = %3923
  br label %3925

3925:                                             ; preds = %3924
  call void @llvm.lifetime.start.p0(i64 8, ptr %99) #10
  %3926 = call ptr @s2n_config_new()
  store ptr %3926, ptr %99, align 8, !tbaa !9
  br label %3927

3927:                                             ; preds = %3925
  %3928 = load i32, ptr @test_count, align 4, !tbaa !5
  %3929 = add nsw i32 %3928, 1
  store i32 %3929, ptr @test_count, align 4, !tbaa !5
  %3930 = load ptr, ptr %99, align 8, !tbaa !9
  %3931 = icmp eq ptr %3930, null
  br i1 %3931, label %3932, label %3985

3932:                                             ; preds = %3927
  br label %3933

3933:                                             ; preds = %3932
  br label %3934

3934:                                             ; preds = %3933
  call void @llvm.lifetime.start.p0(i64 4, ptr %100) #10
  %3935 = call ptr @__errno_location() #11
  %3936 = load i32, ptr %3935, align 4, !tbaa !5
  store i32 %3936, ptr %100, align 4, !tbaa !5
  %3937 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3938 = call i32 @s2n_print_stacktrace(ptr noundef %3937)
  %3939 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3940 = trunc i8 %3939 to i1
  br i1 %3940, label %3941, label %3963

3941:                                             ; preds = %3934
  %3942 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3943 = call i32 @fileno(ptr noundef %3942) #10
  %3944 = call i32 @isatty(i32 noundef %3943) #10
  %3945 = icmp ne i32 %3944, 0
  br i1 %3945, label %3946, label %3963

3946:                                             ; preds = %3941
  %3947 = load i32, ptr %100, align 4, !tbaa !5
  %3948 = call ptr @__errno_location() #11
  store i32 %3947, ptr %3948, align 4, !tbaa !5
  %3949 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3950 = load i32, ptr @test_count, align 4, !tbaa !5
  %3951 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3952 = load i32, ptr %3951, align 4, !tbaa !5
  %3953 = call ptr @s2n_strerror(i32 noundef %3952, ptr noundef @.str.4)
  %3954 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3955 = load i32, ptr %3954, align 4, !tbaa !5
  %3956 = call ptr @s2n_strerror_debug(i32 noundef %3955, ptr noundef @.str.4)
  %3957 = call ptr @__errno_location() #11
  %3958 = load i32, ptr %3957, align 4, !tbaa !5
  %3959 = call ptr @strerror(i32 noundef %3958) #10
  %3960 = call ptr @__errno_location() #11
  %3961 = load i32, ptr %3960, align 4, !tbaa !5
  %3962 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3949, ptr noundef @.str.2, i32 noundef %3950, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 191, ptr noundef %3953, ptr noundef %3956, ptr noundef %3959, i32 noundef %3961) #10
  br label %3980

3963:                                             ; preds = %3941, %3934
  %3964 = load i32, ptr %100, align 4, !tbaa !5
  %3965 = call ptr @__errno_location() #11
  store i32 %3964, ptr %3965, align 4, !tbaa !5
  %3966 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3967 = load i32, ptr @test_count, align 4, !tbaa !5
  %3968 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3969 = load i32, ptr %3968, align 4, !tbaa !5
  %3970 = call ptr @s2n_strerror(i32 noundef %3969, ptr noundef @.str.4)
  %3971 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3972 = load i32, ptr %3971, align 4, !tbaa !5
  %3973 = call ptr @s2n_strerror_debug(i32 noundef %3972, ptr noundef @.str.4)
  %3974 = call ptr @__errno_location() #11
  %3975 = load i32, ptr %3974, align 4, !tbaa !5
  %3976 = call ptr @strerror(i32 noundef %3975) #10
  %3977 = call ptr @__errno_location() #11
  %3978 = load i32, ptr %3977, align 4, !tbaa !5
  %3979 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3966, ptr noundef @.str.5, i32 noundef %3967, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 191, ptr noundef %3970, ptr noundef %3973, ptr noundef %3976, i32 noundef %3978) #10
  br label %3980

3980:                                             ; preds = %3963, %3946
  call void @llvm.lifetime.end.p0(i64 4, ptr %100) #10
  br label %3981

3981:                                             ; preds = %3980
  br label %3982

3982:                                             ; preds = %3981
  call void @exit(i32 noundef 1) #12
  unreachable

3983:                                             ; No predecessors!
  br label %3984

3984:                                             ; preds = %3983
  br label %3985

3985:                                             ; preds = %3984, %3927
  br label %3986

3986:                                             ; preds = %3985
  br label %3987

3987:                                             ; preds = %3986
  br label %3988

3988:                                             ; preds = %3987
  %3989 = load i32, ptr @test_count, align 4, !tbaa !5
  %3990 = add nsw i32 %3989, 1
  store i32 %3990, ptr @test_count, align 4, !tbaa !5
  %3991 = load ptr, ptr %99, align 8, !tbaa !9
  %3992 = getelementptr inbounds [3 x ptr], ptr %9, i64 0, i64 0
  %3993 = call i32 @s2n_config_set_protocol_preferences(ptr noundef %3991, ptr noundef %3992, i32 noundef 3)
  %3994 = icmp eq i32 %3993, -1
  br i1 %3994, label %3995, label %4048

3995:                                             ; preds = %3988
  br label %3996

3996:                                             ; preds = %3995
  br label %3997

3997:                                             ; preds = %3996
  call void @llvm.lifetime.start.p0(i64 4, ptr %101) #10
  %3998 = call ptr @__errno_location() #11
  %3999 = load i32, ptr %3998, align 4, !tbaa !5
  store i32 %3999, ptr %101, align 4, !tbaa !5
  %4000 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4001 = call i32 @s2n_print_stacktrace(ptr noundef %4000)
  %4002 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4003 = trunc i8 %4002 to i1
  br i1 %4003, label %4004, label %4026

4004:                                             ; preds = %3997
  %4005 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4006 = call i32 @fileno(ptr noundef %4005) #10
  %4007 = call i32 @isatty(i32 noundef %4006) #10
  %4008 = icmp ne i32 %4007, 0
  br i1 %4008, label %4009, label %4026

4009:                                             ; preds = %4004
  %4010 = load i32, ptr %101, align 4, !tbaa !5
  %4011 = call ptr @__errno_location() #11
  store i32 %4010, ptr %4011, align 4, !tbaa !5
  %4012 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4013 = load i32, ptr @test_count, align 4, !tbaa !5
  %4014 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4015 = load i32, ptr %4014, align 4, !tbaa !5
  %4016 = call ptr @s2n_strerror(i32 noundef %4015, ptr noundef @.str.4)
  %4017 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4018 = load i32, ptr %4017, align 4, !tbaa !5
  %4019 = call ptr @s2n_strerror_debug(i32 noundef %4018, ptr noundef @.str.4)
  %4020 = call ptr @__errno_location() #11
  %4021 = load i32, ptr %4020, align 4, !tbaa !5
  %4022 = call ptr @strerror(i32 noundef %4021) #10
  %4023 = call ptr @__errno_location() #11
  %4024 = load i32, ptr %4023, align 4, !tbaa !5
  %4025 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4012, ptr noundef @.str.2, i32 noundef %4013, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 192, ptr noundef %4016, ptr noundef %4019, ptr noundef %4022, i32 noundef %4024) #10
  br label %4043

4026:                                             ; preds = %4004, %3997
  %4027 = load i32, ptr %101, align 4, !tbaa !5
  %4028 = call ptr @__errno_location() #11
  store i32 %4027, ptr %4028, align 4, !tbaa !5
  %4029 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4030 = load i32, ptr @test_count, align 4, !tbaa !5
  %4031 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4032 = load i32, ptr %4031, align 4, !tbaa !5
  %4033 = call ptr @s2n_strerror(i32 noundef %4032, ptr noundef @.str.4)
  %4034 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4035 = load i32, ptr %4034, align 4, !tbaa !5
  %4036 = call ptr @s2n_strerror_debug(i32 noundef %4035, ptr noundef @.str.4)
  %4037 = call ptr @__errno_location() #11
  %4038 = load i32, ptr %4037, align 4, !tbaa !5
  %4039 = call ptr @strerror(i32 noundef %4038) #10
  %4040 = call ptr @__errno_location() #11
  %4041 = load i32, ptr %4040, align 4, !tbaa !5
  %4042 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4029, ptr noundef @.str.5, i32 noundef %4030, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 192, ptr noundef %4033, ptr noundef %4036, ptr noundef %4039, i32 noundef %4041) #10
  br label %4043

4043:                                             ; preds = %4026, %4009
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #10
  br label %4044

4044:                                             ; preds = %4043
  br label %4045

4045:                                             ; preds = %4044
  call void @exit(i32 noundef 1) #12
  unreachable

4046:                                             ; No predecessors!
  br label %4047

4047:                                             ; preds = %4046
  br label %4048

4048:                                             ; preds = %4047, %3988
  br label %4049

4049:                                             ; preds = %4048
  br label %4050

4050:                                             ; preds = %4049
  br label %4051

4051:                                             ; preds = %4050
  %4052 = load i32, ptr @test_count, align 4, !tbaa !5
  %4053 = add nsw i32 %4052, 1
  store i32 %4053, ptr @test_count, align 4, !tbaa !5
  %4054 = load ptr, ptr %97, align 8, !tbaa !9
  %4055 = load ptr, ptr %99, align 8, !tbaa !9
  %4056 = call i32 @s2n_connection_set_config(ptr noundef %4054, ptr noundef %4055)
  %4057 = icmp eq i32 %4056, -1
  br i1 %4057, label %4058, label %4111

4058:                                             ; preds = %4051
  br label %4059

4059:                                             ; preds = %4058
  br label %4060

4060:                                             ; preds = %4059
  call void @llvm.lifetime.start.p0(i64 4, ptr %102) #10
  %4061 = call ptr @__errno_location() #11
  %4062 = load i32, ptr %4061, align 4, !tbaa !5
  store i32 %4062, ptr %102, align 4, !tbaa !5
  %4063 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4064 = call i32 @s2n_print_stacktrace(ptr noundef %4063)
  %4065 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4066 = trunc i8 %4065 to i1
  br i1 %4066, label %4067, label %4089

4067:                                             ; preds = %4060
  %4068 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4069 = call i32 @fileno(ptr noundef %4068) #10
  %4070 = call i32 @isatty(i32 noundef %4069) #10
  %4071 = icmp ne i32 %4070, 0
  br i1 %4071, label %4072, label %4089

4072:                                             ; preds = %4067
  %4073 = load i32, ptr %102, align 4, !tbaa !5
  %4074 = call ptr @__errno_location() #11
  store i32 %4073, ptr %4074, align 4, !tbaa !5
  %4075 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4076 = load i32, ptr @test_count, align 4, !tbaa !5
  %4077 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4078 = load i32, ptr %4077, align 4, !tbaa !5
  %4079 = call ptr @s2n_strerror(i32 noundef %4078, ptr noundef @.str.4)
  %4080 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4081 = load i32, ptr %4080, align 4, !tbaa !5
  %4082 = call ptr @s2n_strerror_debug(i32 noundef %4081, ptr noundef @.str.4)
  %4083 = call ptr @__errno_location() #11
  %4084 = load i32, ptr %4083, align 4, !tbaa !5
  %4085 = call ptr @strerror(i32 noundef %4084) #10
  %4086 = call ptr @__errno_location() #11
  %4087 = load i32, ptr %4086, align 4, !tbaa !5
  %4088 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4075, ptr noundef @.str.2, i32 noundef %4076, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 193, ptr noundef %4079, ptr noundef %4082, ptr noundef %4085, i32 noundef %4087) #10
  br label %4106

4089:                                             ; preds = %4067, %4060
  %4090 = load i32, ptr %102, align 4, !tbaa !5
  %4091 = call ptr @__errno_location() #11
  store i32 %4090, ptr %4091, align 4, !tbaa !5
  %4092 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4093 = load i32, ptr @test_count, align 4, !tbaa !5
  %4094 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4095 = load i32, ptr %4094, align 4, !tbaa !5
  %4096 = call ptr @s2n_strerror(i32 noundef %4095, ptr noundef @.str.4)
  %4097 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4098 = load i32, ptr %4097, align 4, !tbaa !5
  %4099 = call ptr @s2n_strerror_debug(i32 noundef %4098, ptr noundef @.str.4)
  %4100 = call ptr @__errno_location() #11
  %4101 = load i32, ptr %4100, align 4, !tbaa !5
  %4102 = call ptr @strerror(i32 noundef %4101) #10
  %4103 = call ptr @__errno_location() #11
  %4104 = load i32, ptr %4103, align 4, !tbaa !5
  %4105 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4092, ptr noundef @.str.5, i32 noundef %4093, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 193, ptr noundef %4096, ptr noundef %4099, ptr noundef %4102, i32 noundef %4104) #10
  br label %4106

4106:                                             ; preds = %4089, %4072
  call void @llvm.lifetime.end.p0(i64 4, ptr %102) #10
  br label %4107

4107:                                             ; preds = %4106
  br label %4108

4108:                                             ; preds = %4107
  call void @exit(i32 noundef 1) #12
  unreachable

4109:                                             ; No predecessors!
  br label %4110

4110:                                             ; preds = %4109
  br label %4111

4111:                                             ; preds = %4110, %4051
  br label %4112

4112:                                             ; preds = %4111
  br label %4113

4113:                                             ; preds = %4112
  call void @llvm.lifetime.start.p0(i64 40, ptr %103) #10
  call void @llvm.memset.p0.i64(ptr align 8 %103, i8 0, i64 40, i1 false)
  br label %4114

4114:                                             ; preds = %4113
  %4115 = load i32, ptr @test_count, align 4, !tbaa !5
  %4116 = add nsw i32 %4115, 1
  store i32 %4116, ptr @test_count, align 4, !tbaa !5
  %4117 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %103, i32 noundef 0)
  %4118 = icmp eq i32 %4117, -1
  br i1 %4118, label %4119, label %4172

4119:                                             ; preds = %4114
  br label %4120

4120:                                             ; preds = %4119
  br label %4121

4121:                                             ; preds = %4120
  call void @llvm.lifetime.start.p0(i64 4, ptr %104) #10
  %4122 = call ptr @__errno_location() #11
  %4123 = load i32, ptr %4122, align 4, !tbaa !5
  store i32 %4123, ptr %104, align 4, !tbaa !5
  %4124 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4125 = call i32 @s2n_print_stacktrace(ptr noundef %4124)
  %4126 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4127 = trunc i8 %4126 to i1
  br i1 %4127, label %4128, label %4150

4128:                                             ; preds = %4121
  %4129 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4130 = call i32 @fileno(ptr noundef %4129) #10
  %4131 = call i32 @isatty(i32 noundef %4130) #10
  %4132 = icmp ne i32 %4131, 0
  br i1 %4132, label %4133, label %4150

4133:                                             ; preds = %4128
  %4134 = load i32, ptr %104, align 4, !tbaa !5
  %4135 = call ptr @__errno_location() #11
  store i32 %4134, ptr %4135, align 4, !tbaa !5
  %4136 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4137 = load i32, ptr @test_count, align 4, !tbaa !5
  %4138 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4139 = load i32, ptr %4138, align 4, !tbaa !5
  %4140 = call ptr @s2n_strerror(i32 noundef %4139, ptr noundef @.str.4)
  %4141 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4142 = load i32, ptr %4141, align 4, !tbaa !5
  %4143 = call ptr @s2n_strerror_debug(i32 noundef %4142, ptr noundef @.str.4)
  %4144 = call ptr @__errno_location() #11
  %4145 = load i32, ptr %4144, align 4, !tbaa !5
  %4146 = call ptr @strerror(i32 noundef %4145) #10
  %4147 = call ptr @__errno_location() #11
  %4148 = load i32, ptr %4147, align 4, !tbaa !5
  %4149 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4136, ptr noundef @.str.2, i32 noundef %4137, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 196, ptr noundef %4140, ptr noundef %4143, ptr noundef %4146, i32 noundef %4148) #10
  br label %4167

4150:                                             ; preds = %4128, %4121
  %4151 = load i32, ptr %104, align 4, !tbaa !5
  %4152 = call ptr @__errno_location() #11
  store i32 %4151, ptr %4152, align 4, !tbaa !5
  %4153 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4154 = load i32, ptr @test_count, align 4, !tbaa !5
  %4155 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4156 = load i32, ptr %4155, align 4, !tbaa !5
  %4157 = call ptr @s2n_strerror(i32 noundef %4156, ptr noundef @.str.4)
  %4158 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4159 = load i32, ptr %4158, align 4, !tbaa !5
  %4160 = call ptr @s2n_strerror_debug(i32 noundef %4159, ptr noundef @.str.4)
  %4161 = call ptr @__errno_location() #11
  %4162 = load i32, ptr %4161, align 4, !tbaa !5
  %4163 = call ptr @strerror(i32 noundef %4162) #10
  %4164 = call ptr @__errno_location() #11
  %4165 = load i32, ptr %4164, align 4, !tbaa !5
  %4166 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4153, ptr noundef @.str.5, i32 noundef %4154, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 196, ptr noundef %4157, ptr noundef %4160, ptr noundef %4163, i32 noundef %4165) #10
  br label %4167

4167:                                             ; preds = %4150, %4133
  call void @llvm.lifetime.end.p0(i64 4, ptr %104) #10
  br label %4168

4168:                                             ; preds = %4167
  br label %4169

4169:                                             ; preds = %4168
  call void @exit(i32 noundef 1) #12
  unreachable

4170:                                             ; No predecessors!
  br label %4171

4171:                                             ; preds = %4170
  br label %4172

4172:                                             ; preds = %4171, %4114
  br label %4173

4173:                                             ; preds = %4172
  br label %4174

4174:                                             ; preds = %4173
  call void @llvm.lifetime.start.p0(i64 6, ptr %105) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %105, ptr align 1 @__const.main.protocol, i64 6, i1 false)
  br label %4175

4175:                                             ; preds = %4174
  %4176 = load i32, ptr @test_count, align 4, !tbaa !5
  %4177 = add nsw i32 %4176, 1
  store i32 %4177, ptr @test_count, align 4, !tbaa !5
  %4178 = call i32 @s2n_stuffer_write_uint8(ptr noundef %103, i8 noundef zeroext 6)
  %4179 = icmp eq i32 %4178, -1
  br i1 %4179, label %4180, label %4233

4180:                                             ; preds = %4175
  br label %4181

4181:                                             ; preds = %4180
  br label %4182

4182:                                             ; preds = %4181
  call void @llvm.lifetime.start.p0(i64 4, ptr %106) #10
  %4183 = call ptr @__errno_location() #11
  %4184 = load i32, ptr %4183, align 4, !tbaa !5
  store i32 %4184, ptr %106, align 4, !tbaa !5
  %4185 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4186 = call i32 @s2n_print_stacktrace(ptr noundef %4185)
  %4187 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4188 = trunc i8 %4187 to i1
  br i1 %4188, label %4189, label %4211

4189:                                             ; preds = %4182
  %4190 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4191 = call i32 @fileno(ptr noundef %4190) #10
  %4192 = call i32 @isatty(i32 noundef %4191) #10
  %4193 = icmp ne i32 %4192, 0
  br i1 %4193, label %4194, label %4211

4194:                                             ; preds = %4189
  %4195 = load i32, ptr %106, align 4, !tbaa !5
  %4196 = call ptr @__errno_location() #11
  store i32 %4195, ptr %4196, align 4, !tbaa !5
  %4197 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4198 = load i32, ptr @test_count, align 4, !tbaa !5
  %4199 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4200 = load i32, ptr %4199, align 4, !tbaa !5
  %4201 = call ptr @s2n_strerror(i32 noundef %4200, ptr noundef @.str.4)
  %4202 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4203 = load i32, ptr %4202, align 4, !tbaa !5
  %4204 = call ptr @s2n_strerror_debug(i32 noundef %4203, ptr noundef @.str.4)
  %4205 = call ptr @__errno_location() #11
  %4206 = load i32, ptr %4205, align 4, !tbaa !5
  %4207 = call ptr @strerror(i32 noundef %4206) #10
  %4208 = call ptr @__errno_location() #11
  %4209 = load i32, ptr %4208, align 4, !tbaa !5
  %4210 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4197, ptr noundef @.str.2, i32 noundef %4198, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 199, ptr noundef %4201, ptr noundef %4204, ptr noundef %4207, i32 noundef %4209) #10
  br label %4228

4211:                                             ; preds = %4189, %4182
  %4212 = load i32, ptr %106, align 4, !tbaa !5
  %4213 = call ptr @__errno_location() #11
  store i32 %4212, ptr %4213, align 4, !tbaa !5
  %4214 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4215 = load i32, ptr @test_count, align 4, !tbaa !5
  %4216 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4217 = load i32, ptr %4216, align 4, !tbaa !5
  %4218 = call ptr @s2n_strerror(i32 noundef %4217, ptr noundef @.str.4)
  %4219 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4220 = load i32, ptr %4219, align 4, !tbaa !5
  %4221 = call ptr @s2n_strerror_debug(i32 noundef %4220, ptr noundef @.str.4)
  %4222 = call ptr @__errno_location() #11
  %4223 = load i32, ptr %4222, align 4, !tbaa !5
  %4224 = call ptr @strerror(i32 noundef %4223) #10
  %4225 = call ptr @__errno_location() #11
  %4226 = load i32, ptr %4225, align 4, !tbaa !5
  %4227 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4214, ptr noundef @.str.5, i32 noundef %4215, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 199, ptr noundef %4218, ptr noundef %4221, ptr noundef %4224, i32 noundef %4226) #10
  br label %4228

4228:                                             ; preds = %4211, %4194
  call void @llvm.lifetime.end.p0(i64 4, ptr %106) #10
  br label %4229

4229:                                             ; preds = %4228
  br label %4230

4230:                                             ; preds = %4229
  call void @exit(i32 noundef 1) #12
  unreachable

4231:                                             ; No predecessors!
  br label %4232

4232:                                             ; preds = %4231
  br label %4233

4233:                                             ; preds = %4232, %4175
  br label %4234

4234:                                             ; preds = %4233
  br label %4235

4235:                                             ; preds = %4234
  br label %4236

4236:                                             ; preds = %4235
  %4237 = load i32, ptr @test_count, align 4, !tbaa !5
  %4238 = add nsw i32 %4237, 1
  store i32 %4238, ptr @test_count, align 4, !tbaa !5
  %4239 = getelementptr inbounds [6 x i8], ptr %105, i64 0, i64 0
  %4240 = call i32 @s2n_stuffer_write_bytes(ptr noundef %103, ptr noundef %4239, i32 noundef 6)
  %4241 = icmp eq i32 %4240, -1
  br i1 %4241, label %4242, label %4295

4242:                                             ; preds = %4236
  br label %4243

4243:                                             ; preds = %4242
  br label %4244

4244:                                             ; preds = %4243
  call void @llvm.lifetime.start.p0(i64 4, ptr %107) #10
  %4245 = call ptr @__errno_location() #11
  %4246 = load i32, ptr %4245, align 4, !tbaa !5
  store i32 %4246, ptr %107, align 4, !tbaa !5
  %4247 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4248 = call i32 @s2n_print_stacktrace(ptr noundef %4247)
  %4249 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4250 = trunc i8 %4249 to i1
  br i1 %4250, label %4251, label %4273

4251:                                             ; preds = %4244
  %4252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4253 = call i32 @fileno(ptr noundef %4252) #10
  %4254 = call i32 @isatty(i32 noundef %4253) #10
  %4255 = icmp ne i32 %4254, 0
  br i1 %4255, label %4256, label %4273

4256:                                             ; preds = %4251
  %4257 = load i32, ptr %107, align 4, !tbaa !5
  %4258 = call ptr @__errno_location() #11
  store i32 %4257, ptr %4258, align 4, !tbaa !5
  %4259 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4260 = load i32, ptr @test_count, align 4, !tbaa !5
  %4261 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4262 = load i32, ptr %4261, align 4, !tbaa !5
  %4263 = call ptr @s2n_strerror(i32 noundef %4262, ptr noundef @.str.4)
  %4264 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4265 = load i32, ptr %4264, align 4, !tbaa !5
  %4266 = call ptr @s2n_strerror_debug(i32 noundef %4265, ptr noundef @.str.4)
  %4267 = call ptr @__errno_location() #11
  %4268 = load i32, ptr %4267, align 4, !tbaa !5
  %4269 = call ptr @strerror(i32 noundef %4268) #10
  %4270 = call ptr @__errno_location() #11
  %4271 = load i32, ptr %4270, align 4, !tbaa !5
  %4272 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4259, ptr noundef @.str.2, i32 noundef %4260, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 200, ptr noundef %4263, ptr noundef %4266, ptr noundef %4269, i32 noundef %4271) #10
  br label %4290

4273:                                             ; preds = %4251, %4244
  %4274 = load i32, ptr %107, align 4, !tbaa !5
  %4275 = call ptr @__errno_location() #11
  store i32 %4274, ptr %4275, align 4, !tbaa !5
  %4276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4277 = load i32, ptr @test_count, align 4, !tbaa !5
  %4278 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4279 = load i32, ptr %4278, align 4, !tbaa !5
  %4280 = call ptr @s2n_strerror(i32 noundef %4279, ptr noundef @.str.4)
  %4281 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4282 = load i32, ptr %4281, align 4, !tbaa !5
  %4283 = call ptr @s2n_strerror_debug(i32 noundef %4282, ptr noundef @.str.4)
  %4284 = call ptr @__errno_location() #11
  %4285 = load i32, ptr %4284, align 4, !tbaa !5
  %4286 = call ptr @strerror(i32 noundef %4285) #10
  %4287 = call ptr @__errno_location() #11
  %4288 = load i32, ptr %4287, align 4, !tbaa !5
  %4289 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4276, ptr noundef @.str.5, i32 noundef %4277, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 200, ptr noundef %4280, ptr noundef %4283, ptr noundef %4286, i32 noundef %4288) #10
  br label %4290

4290:                                             ; preds = %4273, %4256
  call void @llvm.lifetime.end.p0(i64 4, ptr %107) #10
  br label %4291

4291:                                             ; preds = %4290
  br label %4292

4292:                                             ; preds = %4291
  call void @exit(i32 noundef 1) #12
  unreachable

4293:                                             ; No predecessors!
  br label %4294

4294:                                             ; preds = %4293
  br label %4295

4295:                                             ; preds = %4294, %4236
  br label %4296

4296:                                             ; preds = %4295
  br label %4297

4297:                                             ; preds = %4296
  br label %4298

4298:                                             ; preds = %4297
  %4299 = load i32, ptr @test_count, align 4, !tbaa !5
  %4300 = add nsw i32 %4299, 1
  store i32 %4300, ptr @test_count, align 4, !tbaa !5
  %4301 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_npn_extension, i32 0, i32 4), align 8, !tbaa !45
  %4302 = load ptr, ptr %97, align 8, !tbaa !9
  %4303 = call i32 %4301(ptr noundef %4302, ptr noundef %103)
  %4304 = icmp eq i32 %4303, -1
  br i1 %4304, label %4305, label %4358

4305:                                             ; preds = %4298
  br label %4306

4306:                                             ; preds = %4305
  br label %4307

4307:                                             ; preds = %4306
  call void @llvm.lifetime.start.p0(i64 4, ptr %108) #10
  %4308 = call ptr @__errno_location() #11
  %4309 = load i32, ptr %4308, align 4, !tbaa !5
  store i32 %4309, ptr %108, align 4, !tbaa !5
  %4310 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4311 = call i32 @s2n_print_stacktrace(ptr noundef %4310)
  %4312 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4313 = trunc i8 %4312 to i1
  br i1 %4313, label %4314, label %4336

4314:                                             ; preds = %4307
  %4315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4316 = call i32 @fileno(ptr noundef %4315) #10
  %4317 = call i32 @isatty(i32 noundef %4316) #10
  %4318 = icmp ne i32 %4317, 0
  br i1 %4318, label %4319, label %4336

4319:                                             ; preds = %4314
  %4320 = load i32, ptr %108, align 4, !tbaa !5
  %4321 = call ptr @__errno_location() #11
  store i32 %4320, ptr %4321, align 4, !tbaa !5
  %4322 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4323 = load i32, ptr @test_count, align 4, !tbaa !5
  %4324 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4325 = load i32, ptr %4324, align 4, !tbaa !5
  %4326 = call ptr @s2n_strerror(i32 noundef %4325, ptr noundef @.str.4)
  %4327 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4328 = load i32, ptr %4327, align 4, !tbaa !5
  %4329 = call ptr @s2n_strerror_debug(i32 noundef %4328, ptr noundef @.str.4)
  %4330 = call ptr @__errno_location() #11
  %4331 = load i32, ptr %4330, align 4, !tbaa !5
  %4332 = call ptr @strerror(i32 noundef %4331) #10
  %4333 = call ptr @__errno_location() #11
  %4334 = load i32, ptr %4333, align 4, !tbaa !5
  %4335 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4322, ptr noundef @.str.2, i32 noundef %4323, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 209, ptr noundef %4326, ptr noundef %4329, ptr noundef %4332, i32 noundef %4334) #10
  br label %4353

4336:                                             ; preds = %4314, %4307
  %4337 = load i32, ptr %108, align 4, !tbaa !5
  %4338 = call ptr @__errno_location() #11
  store i32 %4337, ptr %4338, align 4, !tbaa !5
  %4339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4340 = load i32, ptr @test_count, align 4, !tbaa !5
  %4341 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4342 = load i32, ptr %4341, align 4, !tbaa !5
  %4343 = call ptr @s2n_strerror(i32 noundef %4342, ptr noundef @.str.4)
  %4344 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4345 = load i32, ptr %4344, align 4, !tbaa !5
  %4346 = call ptr @s2n_strerror_debug(i32 noundef %4345, ptr noundef @.str.4)
  %4347 = call ptr @__errno_location() #11
  %4348 = load i32, ptr %4347, align 4, !tbaa !5
  %4349 = call ptr @strerror(i32 noundef %4348) #10
  %4350 = call ptr @__errno_location() #11
  %4351 = load i32, ptr %4350, align 4, !tbaa !5
  %4352 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4339, ptr noundef @.str.5, i32 noundef %4340, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 209, ptr noundef %4343, ptr noundef %4346, ptr noundef %4349, i32 noundef %4351) #10
  br label %4353

4353:                                             ; preds = %4336, %4319
  call void @llvm.lifetime.end.p0(i64 4, ptr %108) #10
  br label %4354

4354:                                             ; preds = %4353
  br label %4355

4355:                                             ; preds = %4354
  call void @exit(i32 noundef 1) #12
  unreachable

4356:                                             ; No predecessors!
  br label %4357

4357:                                             ; preds = %4356
  br label %4358

4358:                                             ; preds = %4357, %4298
  br label %4359

4359:                                             ; preds = %4358
  br label %4360

4360:                                             ; preds = %4359
  br label %4361

4361:                                             ; preds = %4360
  %4362 = load i32, ptr @test_count, align 4, !tbaa !5
  %4363 = add nsw i32 %4362, 1
  store i32 %4363, ptr @test_count, align 4, !tbaa !5
  %4364 = load ptr, ptr %97, align 8, !tbaa !9
  %4365 = call ptr @s2n_get_application_protocol(ptr noundef %4364)
  %4366 = icmp eq ptr %4365, null
  br i1 %4366, label %4367, label %4420

4367:                                             ; preds = %4361
  br label %4368

4368:                                             ; preds = %4367
  br label %4369

4369:                                             ; preds = %4368
  call void @llvm.lifetime.start.p0(i64 4, ptr %109) #10
  %4370 = call ptr @__errno_location() #11
  %4371 = load i32, ptr %4370, align 4, !tbaa !5
  store i32 %4371, ptr %109, align 4, !tbaa !5
  %4372 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4373 = call i32 @s2n_print_stacktrace(ptr noundef %4372)
  %4374 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4375 = trunc i8 %4374 to i1
  br i1 %4375, label %4376, label %4398

4376:                                             ; preds = %4369
  %4377 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4378 = call i32 @fileno(ptr noundef %4377) #10
  %4379 = call i32 @isatty(i32 noundef %4378) #10
  %4380 = icmp ne i32 %4379, 0
  br i1 %4380, label %4381, label %4398

4381:                                             ; preds = %4376
  %4382 = load i32, ptr %109, align 4, !tbaa !5
  %4383 = call ptr @__errno_location() #11
  store i32 %4382, ptr %4383, align 4, !tbaa !5
  %4384 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4385 = load i32, ptr @test_count, align 4, !tbaa !5
  %4386 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4387 = load i32, ptr %4386, align 4, !tbaa !5
  %4388 = call ptr @s2n_strerror(i32 noundef %4387, ptr noundef @.str.4)
  %4389 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4390 = load i32, ptr %4389, align 4, !tbaa !5
  %4391 = call ptr @s2n_strerror_debug(i32 noundef %4390, ptr noundef @.str.4)
  %4392 = call ptr @__errno_location() #11
  %4393 = load i32, ptr %4392, align 4, !tbaa !5
  %4394 = call ptr @strerror(i32 noundef %4393) #10
  %4395 = call ptr @__errno_location() #11
  %4396 = load i32, ptr %4395, align 4, !tbaa !5
  %4397 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4384, ptr noundef @.str.2, i32 noundef %4385, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 210, ptr noundef %4388, ptr noundef %4391, ptr noundef %4394, i32 noundef %4396) #10
  br label %4415

4398:                                             ; preds = %4376, %4369
  %4399 = load i32, ptr %109, align 4, !tbaa !5
  %4400 = call ptr @__errno_location() #11
  store i32 %4399, ptr %4400, align 4, !tbaa !5
  %4401 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4402 = load i32, ptr @test_count, align 4, !tbaa !5
  %4403 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4404 = load i32, ptr %4403, align 4, !tbaa !5
  %4405 = call ptr @s2n_strerror(i32 noundef %4404, ptr noundef @.str.4)
  %4406 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4407 = load i32, ptr %4406, align 4, !tbaa !5
  %4408 = call ptr @s2n_strerror_debug(i32 noundef %4407, ptr noundef @.str.4)
  %4409 = call ptr @__errno_location() #11
  %4410 = load i32, ptr %4409, align 4, !tbaa !5
  %4411 = call ptr @strerror(i32 noundef %4410) #10
  %4412 = call ptr @__errno_location() #11
  %4413 = load i32, ptr %4412, align 4, !tbaa !5
  %4414 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4401, ptr noundef @.str.5, i32 noundef %4402, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 210, ptr noundef %4405, ptr noundef %4408, ptr noundef %4411, i32 noundef %4413) #10
  br label %4415

4415:                                             ; preds = %4398, %4381
  call void @llvm.lifetime.end.p0(i64 4, ptr %109) #10
  br label %4416

4416:                                             ; preds = %4415
  br label %4417

4417:                                             ; preds = %4416
  call void @exit(i32 noundef 1) #12
  unreachable

4418:                                             ; No predecessors!
  br label %4419

4419:                                             ; preds = %4418
  br label %4420

4420:                                             ; preds = %4419, %4361
  br label %4421

4421:                                             ; preds = %4420
  br label %4422

4422:                                             ; preds = %4421
  br label %4423

4423:                                             ; preds = %4422
  %4424 = getelementptr inbounds [3 x ptr], ptr %9, i64 0, i64 0
  %4425 = load ptr, ptr %4424, align 16, !tbaa !9
  %4426 = call i64 @strlen(ptr noundef %4425) #13
  %4427 = icmp ne i64 %4426, 0
  br i1 %4427, label %4428, label %4497

4428:                                             ; preds = %4423
  br label %4429

4429:                                             ; preds = %4428
  %4430 = load i32, ptr @test_count, align 4, !tbaa !5
  %4431 = add nsw i32 %4430, 1
  store i32 %4431, ptr @test_count, align 4, !tbaa !5
  %4432 = load ptr, ptr %97, align 8, !tbaa !9
  %4433 = call ptr @s2n_get_application_protocol(ptr noundef %4432)
  %4434 = getelementptr inbounds [3 x ptr], ptr %9, i64 0, i64 0
  %4435 = load ptr, ptr %4434, align 16, !tbaa !9
  %4436 = getelementptr inbounds [3 x ptr], ptr %9, i64 0, i64 0
  %4437 = load ptr, ptr %4436, align 16, !tbaa !9
  %4438 = call i64 @strlen(ptr noundef %4437) #13
  %4439 = call i32 @memcmp(ptr noundef %4433, ptr noundef %4435, i64 noundef %4438) #13
  %4440 = icmp eq i32 %4439, 0
  br i1 %4440, label %4494, label %4441

4441:                                             ; preds = %4429
  br label %4442

4442:                                             ; preds = %4441
  br label %4443

4443:                                             ; preds = %4442
  call void @llvm.lifetime.start.p0(i64 4, ptr %110) #10
  %4444 = call ptr @__errno_location() #11
  %4445 = load i32, ptr %4444, align 4, !tbaa !5
  store i32 %4445, ptr %110, align 4, !tbaa !5
  %4446 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4447 = call i32 @s2n_print_stacktrace(ptr noundef %4446)
  %4448 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4449 = trunc i8 %4448 to i1
  br i1 %4449, label %4450, label %4472

4450:                                             ; preds = %4443
  %4451 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4452 = call i32 @fileno(ptr noundef %4451) #10
  %4453 = call i32 @isatty(i32 noundef %4452) #10
  %4454 = icmp ne i32 %4453, 0
  br i1 %4454, label %4455, label %4472

4455:                                             ; preds = %4450
  %4456 = load i32, ptr %110, align 4, !tbaa !5
  %4457 = call ptr @__errno_location() #11
  store i32 %4456, ptr %4457, align 4, !tbaa !5
  %4458 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4459 = load i32, ptr @test_count, align 4, !tbaa !5
  %4460 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4461 = load i32, ptr %4460, align 4, !tbaa !5
  %4462 = call ptr @s2n_strerror(i32 noundef %4461, ptr noundef @.str.4)
  %4463 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4464 = load i32, ptr %4463, align 4, !tbaa !5
  %4465 = call ptr @s2n_strerror_debug(i32 noundef %4464, ptr noundef @.str.4)
  %4466 = call ptr @__errno_location() #11
  %4467 = load i32, ptr %4466, align 4, !tbaa !5
  %4468 = call ptr @strerror(i32 noundef %4467) #10
  %4469 = call ptr @__errno_location() #11
  %4470 = load i32, ptr %4469, align 4, !tbaa !5
  %4471 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4458, ptr noundef @.str.2, i32 noundef %4459, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 211, ptr noundef %4462, ptr noundef %4465, ptr noundef %4468, i32 noundef %4470) #10
  br label %4489

4472:                                             ; preds = %4450, %4443
  %4473 = load i32, ptr %110, align 4, !tbaa !5
  %4474 = call ptr @__errno_location() #11
  store i32 %4473, ptr %4474, align 4, !tbaa !5
  %4475 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4476 = load i32, ptr @test_count, align 4, !tbaa !5
  %4477 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4478 = load i32, ptr %4477, align 4, !tbaa !5
  %4479 = call ptr @s2n_strerror(i32 noundef %4478, ptr noundef @.str.4)
  %4480 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4481 = load i32, ptr %4480, align 4, !tbaa !5
  %4482 = call ptr @s2n_strerror_debug(i32 noundef %4481, ptr noundef @.str.4)
  %4483 = call ptr @__errno_location() #11
  %4484 = load i32, ptr %4483, align 4, !tbaa !5
  %4485 = call ptr @strerror(i32 noundef %4484) #10
  %4486 = call ptr @__errno_location() #11
  %4487 = load i32, ptr %4486, align 4, !tbaa !5
  %4488 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4475, ptr noundef @.str.5, i32 noundef %4476, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 211, ptr noundef %4479, ptr noundef %4482, ptr noundef %4485, i32 noundef %4487) #10
  br label %4489

4489:                                             ; preds = %4472, %4455
  call void @llvm.lifetime.end.p0(i64 4, ptr %110) #10
  br label %4490

4490:                                             ; preds = %4489
  br label %4491

4491:                                             ; preds = %4490
  call void @exit(i32 noundef 1) #12
  unreachable

4492:                                             ; No predecessors!
  br label %4493

4493:                                             ; preds = %4492
  br label %4494

4494:                                             ; preds = %4493, %4429
  br label %4495

4495:                                             ; preds = %4494
  br label %4496

4496:                                             ; preds = %4495
  br label %4497

4497:                                             ; preds = %4496, %4423
  br label %4498

4498:                                             ; preds = %4497
  br label %4499

4499:                                             ; preds = %4498
  call void @llvm.lifetime.end.p0(i64 6, ptr %105) #10
  %4500 = call i32 @s2n_stuffer_free(ptr noundef %103)
  call void @llvm.lifetime.end.p0(i64 40, ptr %103) #10
  %4501 = call i32 @s2n_config_ptr_free(ptr noundef %99)
  %4502 = getelementptr inbounds %struct.s2n_result, ptr %111, i32 0, i32 0
  store i32 %4501, ptr %4502, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %99) #10
  %4503 = call i32 @s2n_connection_ptr_free(ptr noundef %97)
  %4504 = getelementptr inbounds %struct.s2n_result, ptr %112, i32 0, i32 0
  store i32 %4503, ptr %4504, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %113) #10
  %4505 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %4505, ptr %113, align 8, !tbaa !9
  br label %4506

4506:                                             ; preds = %4499
  %4507 = load i32, ptr @test_count, align 4, !tbaa !5
  %4508 = add nsw i32 %4507, 1
  store i32 %4508, ptr @test_count, align 4, !tbaa !5
  %4509 = load ptr, ptr %113, align 8, !tbaa !9
  %4510 = icmp eq ptr %4509, null
  br i1 %4510, label %4511, label %4564

4511:                                             ; preds = %4506
  br label %4512

4512:                                             ; preds = %4511
  br label %4513

4513:                                             ; preds = %4512
  call void @llvm.lifetime.start.p0(i64 4, ptr %114) #10
  %4514 = call ptr @__errno_location() #11
  %4515 = load i32, ptr %4514, align 4, !tbaa !5
  store i32 %4515, ptr %114, align 4, !tbaa !5
  %4516 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4517 = call i32 @s2n_print_stacktrace(ptr noundef %4516)
  %4518 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4519 = trunc i8 %4518 to i1
  br i1 %4519, label %4520, label %4542

4520:                                             ; preds = %4513
  %4521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4522 = call i32 @fileno(ptr noundef %4521) #10
  %4523 = call i32 @isatty(i32 noundef %4522) #10
  %4524 = icmp ne i32 %4523, 0
  br i1 %4524, label %4525, label %4542

4525:                                             ; preds = %4520
  %4526 = load i32, ptr %114, align 4, !tbaa !5
  %4527 = call ptr @__errno_location() #11
  store i32 %4526, ptr %4527, align 4, !tbaa !5
  %4528 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4529 = load i32, ptr @test_count, align 4, !tbaa !5
  %4530 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4531 = load i32, ptr %4530, align 4, !tbaa !5
  %4532 = call ptr @s2n_strerror(i32 noundef %4531, ptr noundef @.str.4)
  %4533 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4534 = load i32, ptr %4533, align 4, !tbaa !5
  %4535 = call ptr @s2n_strerror_debug(i32 noundef %4534, ptr noundef @.str.4)
  %4536 = call ptr @__errno_location() #11
  %4537 = load i32, ptr %4536, align 4, !tbaa !5
  %4538 = call ptr @strerror(i32 noundef %4537) #10
  %4539 = call ptr @__errno_location() #11
  %4540 = load i32, ptr %4539, align 4, !tbaa !5
  %4541 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4528, ptr noundef @.str.2, i32 noundef %4529, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 217, ptr noundef %4532, ptr noundef %4535, ptr noundef %4538, i32 noundef %4540) #10
  br label %4559

4542:                                             ; preds = %4520, %4513
  %4543 = load i32, ptr %114, align 4, !tbaa !5
  %4544 = call ptr @__errno_location() #11
  store i32 %4543, ptr %4544, align 4, !tbaa !5
  %4545 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4546 = load i32, ptr @test_count, align 4, !tbaa !5
  %4547 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4548 = load i32, ptr %4547, align 4, !tbaa !5
  %4549 = call ptr @s2n_strerror(i32 noundef %4548, ptr noundef @.str.4)
  %4550 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4551 = load i32, ptr %4550, align 4, !tbaa !5
  %4552 = call ptr @s2n_strerror_debug(i32 noundef %4551, ptr noundef @.str.4)
  %4553 = call ptr @__errno_location() #11
  %4554 = load i32, ptr %4553, align 4, !tbaa !5
  %4555 = call ptr @strerror(i32 noundef %4554) #10
  %4556 = call ptr @__errno_location() #11
  %4557 = load i32, ptr %4556, align 4, !tbaa !5
  %4558 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4545, ptr noundef @.str.5, i32 noundef %4546, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 217, ptr noundef %4549, ptr noundef %4552, ptr noundef %4555, i32 noundef %4557) #10
  br label %4559

4559:                                             ; preds = %4542, %4525
  call void @llvm.lifetime.end.p0(i64 4, ptr %114) #10
  br label %4560

4560:                                             ; preds = %4559
  br label %4561

4561:                                             ; preds = %4560
  call void @exit(i32 noundef 1) #12
  unreachable

4562:                                             ; No predecessors!
  br label %4563

4563:                                             ; preds = %4562
  br label %4564

4564:                                             ; preds = %4563, %4506
  br label %4565

4565:                                             ; preds = %4564
  br label %4566

4566:                                             ; preds = %4565
  call void @llvm.lifetime.start.p0(i64 8, ptr %115) #10
  %4567 = call ptr @s2n_config_new()
  store ptr %4567, ptr %115, align 8, !tbaa !9
  br label %4568

4568:                                             ; preds = %4566
  %4569 = load i32, ptr @test_count, align 4, !tbaa !5
  %4570 = add nsw i32 %4569, 1
  store i32 %4570, ptr @test_count, align 4, !tbaa !5
  %4571 = load ptr, ptr %115, align 8, !tbaa !9
  %4572 = icmp eq ptr %4571, null
  br i1 %4572, label %4573, label %4626

4573:                                             ; preds = %4568
  br label %4574

4574:                                             ; preds = %4573
  br label %4575

4575:                                             ; preds = %4574
  call void @llvm.lifetime.start.p0(i64 4, ptr %116) #10
  %4576 = call ptr @__errno_location() #11
  %4577 = load i32, ptr %4576, align 4, !tbaa !5
  store i32 %4577, ptr %116, align 4, !tbaa !5
  %4578 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4579 = call i32 @s2n_print_stacktrace(ptr noundef %4578)
  %4580 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4581 = trunc i8 %4580 to i1
  br i1 %4581, label %4582, label %4604

4582:                                             ; preds = %4575
  %4583 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4584 = call i32 @fileno(ptr noundef %4583) #10
  %4585 = call i32 @isatty(i32 noundef %4584) #10
  %4586 = icmp ne i32 %4585, 0
  br i1 %4586, label %4587, label %4604

4587:                                             ; preds = %4582
  %4588 = load i32, ptr %116, align 4, !tbaa !5
  %4589 = call ptr @__errno_location() #11
  store i32 %4588, ptr %4589, align 4, !tbaa !5
  %4590 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4591 = load i32, ptr @test_count, align 4, !tbaa !5
  %4592 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4593 = load i32, ptr %4592, align 4, !tbaa !5
  %4594 = call ptr @s2n_strerror(i32 noundef %4593, ptr noundef @.str.4)
  %4595 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4596 = load i32, ptr %4595, align 4, !tbaa !5
  %4597 = call ptr @s2n_strerror_debug(i32 noundef %4596, ptr noundef @.str.4)
  %4598 = call ptr @__errno_location() #11
  %4599 = load i32, ptr %4598, align 4, !tbaa !5
  %4600 = call ptr @strerror(i32 noundef %4599) #10
  %4601 = call ptr @__errno_location() #11
  %4602 = load i32, ptr %4601, align 4, !tbaa !5
  %4603 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4590, ptr noundef @.str.2, i32 noundef %4591, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 219, ptr noundef %4594, ptr noundef %4597, ptr noundef %4600, i32 noundef %4602) #10
  br label %4621

4604:                                             ; preds = %4582, %4575
  %4605 = load i32, ptr %116, align 4, !tbaa !5
  %4606 = call ptr @__errno_location() #11
  store i32 %4605, ptr %4606, align 4, !tbaa !5
  %4607 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4608 = load i32, ptr @test_count, align 4, !tbaa !5
  %4609 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4610 = load i32, ptr %4609, align 4, !tbaa !5
  %4611 = call ptr @s2n_strerror(i32 noundef %4610, ptr noundef @.str.4)
  %4612 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4613 = load i32, ptr %4612, align 4, !tbaa !5
  %4614 = call ptr @s2n_strerror_debug(i32 noundef %4613, ptr noundef @.str.4)
  %4615 = call ptr @__errno_location() #11
  %4616 = load i32, ptr %4615, align 4, !tbaa !5
  %4617 = call ptr @strerror(i32 noundef %4616) #10
  %4618 = call ptr @__errno_location() #11
  %4619 = load i32, ptr %4618, align 4, !tbaa !5
  %4620 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4607, ptr noundef @.str.5, i32 noundef %4608, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 219, ptr noundef %4611, ptr noundef %4614, ptr noundef %4617, i32 noundef %4619) #10
  br label %4621

4621:                                             ; preds = %4604, %4587
  call void @llvm.lifetime.end.p0(i64 4, ptr %116) #10
  br label %4622

4622:                                             ; preds = %4621
  br label %4623

4623:                                             ; preds = %4622
  call void @exit(i32 noundef 1) #12
  unreachable

4624:                                             ; No predecessors!
  br label %4625

4625:                                             ; preds = %4624
  br label %4626

4626:                                             ; preds = %4625, %4568
  br label %4627

4627:                                             ; preds = %4626
  br label %4628

4628:                                             ; preds = %4627
  br label %4629

4629:                                             ; preds = %4628
  %4630 = load i32, ptr @test_count, align 4, !tbaa !5
  %4631 = add nsw i32 %4630, 1
  store i32 %4631, ptr @test_count, align 4, !tbaa !5
  %4632 = load ptr, ptr %115, align 8, !tbaa !9
  %4633 = getelementptr inbounds [3 x ptr], ptr %9, i64 0, i64 0
  %4634 = call i32 @s2n_config_set_protocol_preferences(ptr noundef %4632, ptr noundef %4633, i32 noundef 3)
  %4635 = icmp eq i32 %4634, -1
  br i1 %4635, label %4636, label %4689

4636:                                             ; preds = %4629
  br label %4637

4637:                                             ; preds = %4636
  br label %4638

4638:                                             ; preds = %4637
  call void @llvm.lifetime.start.p0(i64 4, ptr %117) #10
  %4639 = call ptr @__errno_location() #11
  %4640 = load i32, ptr %4639, align 4, !tbaa !5
  store i32 %4640, ptr %117, align 4, !tbaa !5
  %4641 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4642 = call i32 @s2n_print_stacktrace(ptr noundef %4641)
  %4643 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4644 = trunc i8 %4643 to i1
  br i1 %4644, label %4645, label %4667

4645:                                             ; preds = %4638
  %4646 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4647 = call i32 @fileno(ptr noundef %4646) #10
  %4648 = call i32 @isatty(i32 noundef %4647) #10
  %4649 = icmp ne i32 %4648, 0
  br i1 %4649, label %4650, label %4667

4650:                                             ; preds = %4645
  %4651 = load i32, ptr %117, align 4, !tbaa !5
  %4652 = call ptr @__errno_location() #11
  store i32 %4651, ptr %4652, align 4, !tbaa !5
  %4653 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4654 = load i32, ptr @test_count, align 4, !tbaa !5
  %4655 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4656 = load i32, ptr %4655, align 4, !tbaa !5
  %4657 = call ptr @s2n_strerror(i32 noundef %4656, ptr noundef @.str.4)
  %4658 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4659 = load i32, ptr %4658, align 4, !tbaa !5
  %4660 = call ptr @s2n_strerror_debug(i32 noundef %4659, ptr noundef @.str.4)
  %4661 = call ptr @__errno_location() #11
  %4662 = load i32, ptr %4661, align 4, !tbaa !5
  %4663 = call ptr @strerror(i32 noundef %4662) #10
  %4664 = call ptr @__errno_location() #11
  %4665 = load i32, ptr %4664, align 4, !tbaa !5
  %4666 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4653, ptr noundef @.str.2, i32 noundef %4654, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 220, ptr noundef %4657, ptr noundef %4660, ptr noundef %4663, i32 noundef %4665) #10
  br label %4684

4667:                                             ; preds = %4645, %4638
  %4668 = load i32, ptr %117, align 4, !tbaa !5
  %4669 = call ptr @__errno_location() #11
  store i32 %4668, ptr %4669, align 4, !tbaa !5
  %4670 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4671 = load i32, ptr @test_count, align 4, !tbaa !5
  %4672 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4673 = load i32, ptr %4672, align 4, !tbaa !5
  %4674 = call ptr @s2n_strerror(i32 noundef %4673, ptr noundef @.str.4)
  %4675 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4676 = load i32, ptr %4675, align 4, !tbaa !5
  %4677 = call ptr @s2n_strerror_debug(i32 noundef %4676, ptr noundef @.str.4)
  %4678 = call ptr @__errno_location() #11
  %4679 = load i32, ptr %4678, align 4, !tbaa !5
  %4680 = call ptr @strerror(i32 noundef %4679) #10
  %4681 = call ptr @__errno_location() #11
  %4682 = load i32, ptr %4681, align 4, !tbaa !5
  %4683 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4670, ptr noundef @.str.5, i32 noundef %4671, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 220, ptr noundef %4674, ptr noundef %4677, ptr noundef %4680, i32 noundef %4682) #10
  br label %4684

4684:                                             ; preds = %4667, %4650
  call void @llvm.lifetime.end.p0(i64 4, ptr %117) #10
  br label %4685

4685:                                             ; preds = %4684
  br label %4686

4686:                                             ; preds = %4685
  call void @exit(i32 noundef 1) #12
  unreachable

4687:                                             ; No predecessors!
  br label %4688

4688:                                             ; preds = %4687
  br label %4689

4689:                                             ; preds = %4688, %4629
  br label %4690

4690:                                             ; preds = %4689
  br label %4691

4691:                                             ; preds = %4690
  br label %4692

4692:                                             ; preds = %4691
  %4693 = load i32, ptr @test_count, align 4, !tbaa !5
  %4694 = add nsw i32 %4693, 1
  store i32 %4694, ptr @test_count, align 4, !tbaa !5
  %4695 = load ptr, ptr %113, align 8, !tbaa !9
  %4696 = load ptr, ptr %115, align 8, !tbaa !9
  %4697 = call i32 @s2n_connection_set_config(ptr noundef %4695, ptr noundef %4696)
  %4698 = icmp eq i32 %4697, -1
  br i1 %4698, label %4699, label %4752

4699:                                             ; preds = %4692
  br label %4700

4700:                                             ; preds = %4699
  br label %4701

4701:                                             ; preds = %4700
  call void @llvm.lifetime.start.p0(i64 4, ptr %118) #10
  %4702 = call ptr @__errno_location() #11
  %4703 = load i32, ptr %4702, align 4, !tbaa !5
  store i32 %4703, ptr %118, align 4, !tbaa !5
  %4704 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4705 = call i32 @s2n_print_stacktrace(ptr noundef %4704)
  %4706 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4707 = trunc i8 %4706 to i1
  br i1 %4707, label %4708, label %4730

4708:                                             ; preds = %4701
  %4709 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4710 = call i32 @fileno(ptr noundef %4709) #10
  %4711 = call i32 @isatty(i32 noundef %4710) #10
  %4712 = icmp ne i32 %4711, 0
  br i1 %4712, label %4713, label %4730

4713:                                             ; preds = %4708
  %4714 = load i32, ptr %118, align 4, !tbaa !5
  %4715 = call ptr @__errno_location() #11
  store i32 %4714, ptr %4715, align 4, !tbaa !5
  %4716 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4717 = load i32, ptr @test_count, align 4, !tbaa !5
  %4718 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4719 = load i32, ptr %4718, align 4, !tbaa !5
  %4720 = call ptr @s2n_strerror(i32 noundef %4719, ptr noundef @.str.4)
  %4721 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4722 = load i32, ptr %4721, align 4, !tbaa !5
  %4723 = call ptr @s2n_strerror_debug(i32 noundef %4722, ptr noundef @.str.4)
  %4724 = call ptr @__errno_location() #11
  %4725 = load i32, ptr %4724, align 4, !tbaa !5
  %4726 = call ptr @strerror(i32 noundef %4725) #10
  %4727 = call ptr @__errno_location() #11
  %4728 = load i32, ptr %4727, align 4, !tbaa !5
  %4729 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4716, ptr noundef @.str.2, i32 noundef %4717, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 221, ptr noundef %4720, ptr noundef %4723, ptr noundef %4726, i32 noundef %4728) #10
  br label %4747

4730:                                             ; preds = %4708, %4701
  %4731 = load i32, ptr %118, align 4, !tbaa !5
  %4732 = call ptr @__errno_location() #11
  store i32 %4731, ptr %4732, align 4, !tbaa !5
  %4733 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4734 = load i32, ptr @test_count, align 4, !tbaa !5
  %4735 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4736 = load i32, ptr %4735, align 4, !tbaa !5
  %4737 = call ptr @s2n_strerror(i32 noundef %4736, ptr noundef @.str.4)
  %4738 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4739 = load i32, ptr %4738, align 4, !tbaa !5
  %4740 = call ptr @s2n_strerror_debug(i32 noundef %4739, ptr noundef @.str.4)
  %4741 = call ptr @__errno_location() #11
  %4742 = load i32, ptr %4741, align 4, !tbaa !5
  %4743 = call ptr @strerror(i32 noundef %4742) #10
  %4744 = call ptr @__errno_location() #11
  %4745 = load i32, ptr %4744, align 4, !tbaa !5
  %4746 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4733, ptr noundef @.str.5, i32 noundef %4734, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 221, ptr noundef %4737, ptr noundef %4740, ptr noundef %4743, i32 noundef %4745) #10
  br label %4747

4747:                                             ; preds = %4730, %4713
  call void @llvm.lifetime.end.p0(i64 4, ptr %118) #10
  br label %4748

4748:                                             ; preds = %4747
  br label %4749

4749:                                             ; preds = %4748
  call void @exit(i32 noundef 1) #12
  unreachable

4750:                                             ; No predecessors!
  br label %4751

4751:                                             ; preds = %4750
  br label %4752

4752:                                             ; preds = %4751, %4692
  br label %4753

4753:                                             ; preds = %4752
  br label %4754

4754:                                             ; preds = %4753
  call void @llvm.lifetime.start.p0(i64 40, ptr %119) #10
  call void @llvm.memset.p0.i64(ptr align 8 %119, i8 0, i64 40, i1 false)
  br label %4755

4755:                                             ; preds = %4754
  %4756 = load i32, ptr @test_count, align 4, !tbaa !5
  %4757 = add nsw i32 %4756, 1
  store i32 %4757, ptr @test_count, align 4, !tbaa !5
  %4758 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %119, i32 noundef 0)
  %4759 = icmp eq i32 %4758, -1
  br i1 %4759, label %4760, label %4813

4760:                                             ; preds = %4755
  br label %4761

4761:                                             ; preds = %4760
  br label %4762

4762:                                             ; preds = %4761
  call void @llvm.lifetime.start.p0(i64 4, ptr %120) #10
  %4763 = call ptr @__errno_location() #11
  %4764 = load i32, ptr %4763, align 4, !tbaa !5
  store i32 %4764, ptr %120, align 4, !tbaa !5
  %4765 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4766 = call i32 @s2n_print_stacktrace(ptr noundef %4765)
  %4767 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4768 = trunc i8 %4767 to i1
  br i1 %4768, label %4769, label %4791

4769:                                             ; preds = %4762
  %4770 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4771 = call i32 @fileno(ptr noundef %4770) #10
  %4772 = call i32 @isatty(i32 noundef %4771) #10
  %4773 = icmp ne i32 %4772, 0
  br i1 %4773, label %4774, label %4791

4774:                                             ; preds = %4769
  %4775 = load i32, ptr %120, align 4, !tbaa !5
  %4776 = call ptr @__errno_location() #11
  store i32 %4775, ptr %4776, align 4, !tbaa !5
  %4777 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4778 = load i32, ptr @test_count, align 4, !tbaa !5
  %4779 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4780 = load i32, ptr %4779, align 4, !tbaa !5
  %4781 = call ptr @s2n_strerror(i32 noundef %4780, ptr noundef @.str.4)
  %4782 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4783 = load i32, ptr %4782, align 4, !tbaa !5
  %4784 = call ptr @s2n_strerror_debug(i32 noundef %4783, ptr noundef @.str.4)
  %4785 = call ptr @__errno_location() #11
  %4786 = load i32, ptr %4785, align 4, !tbaa !5
  %4787 = call ptr @strerror(i32 noundef %4786) #10
  %4788 = call ptr @__errno_location() #11
  %4789 = load i32, ptr %4788, align 4, !tbaa !5
  %4790 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4777, ptr noundef @.str.2, i32 noundef %4778, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 224, ptr noundef %4781, ptr noundef %4784, ptr noundef %4787, i32 noundef %4789) #10
  br label %4808

4791:                                             ; preds = %4769, %4762
  %4792 = load i32, ptr %120, align 4, !tbaa !5
  %4793 = call ptr @__errno_location() #11
  store i32 %4792, ptr %4793, align 4, !tbaa !5
  %4794 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4795 = load i32, ptr @test_count, align 4, !tbaa !5
  %4796 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4797 = load i32, ptr %4796, align 4, !tbaa !5
  %4798 = call ptr @s2n_strerror(i32 noundef %4797, ptr noundef @.str.4)
  %4799 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4800 = load i32, ptr %4799, align 4, !tbaa !5
  %4801 = call ptr @s2n_strerror_debug(i32 noundef %4800, ptr noundef @.str.4)
  %4802 = call ptr @__errno_location() #11
  %4803 = load i32, ptr %4802, align 4, !tbaa !5
  %4804 = call ptr @strerror(i32 noundef %4803) #10
  %4805 = call ptr @__errno_location() #11
  %4806 = load i32, ptr %4805, align 4, !tbaa !5
  %4807 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4794, ptr noundef @.str.5, i32 noundef %4795, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 224, ptr noundef %4798, ptr noundef %4801, ptr noundef %4804, i32 noundef %4806) #10
  br label %4808

4808:                                             ; preds = %4791, %4774
  call void @llvm.lifetime.end.p0(i64 4, ptr %120) #10
  br label %4809

4809:                                             ; preds = %4808
  br label %4810

4810:                                             ; preds = %4809
  call void @exit(i32 noundef 1) #12
  unreachable

4811:                                             ; No predecessors!
  br label %4812

4812:                                             ; preds = %4811
  br label %4813

4813:                                             ; preds = %4812, %4755
  br label %4814

4814:                                             ; preds = %4813
  br label %4815

4815:                                             ; preds = %4814
  br label %4816

4816:                                             ; preds = %4815
  %4817 = load i32, ptr @test_count, align 4, !tbaa !5
  %4818 = add nsw i32 %4817, 1
  store i32 %4818, ptr @test_count, align 4, !tbaa !5
  %4819 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_npn_extension, i32 0, i32 4), align 8, !tbaa !45
  %4820 = load ptr, ptr %113, align 8, !tbaa !9
  %4821 = call i32 %4819(ptr noundef %4820, ptr noundef %119)
  %4822 = icmp eq i32 %4821, -1
  br i1 %4822, label %4823, label %4876

4823:                                             ; preds = %4816
  br label %4824

4824:                                             ; preds = %4823
  br label %4825

4825:                                             ; preds = %4824
  call void @llvm.lifetime.start.p0(i64 4, ptr %121) #10
  %4826 = call ptr @__errno_location() #11
  %4827 = load i32, ptr %4826, align 4, !tbaa !5
  store i32 %4827, ptr %121, align 4, !tbaa !5
  %4828 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4829 = call i32 @s2n_print_stacktrace(ptr noundef %4828)
  %4830 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4831 = trunc i8 %4830 to i1
  br i1 %4831, label %4832, label %4854

4832:                                             ; preds = %4825
  %4833 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4834 = call i32 @fileno(ptr noundef %4833) #10
  %4835 = call i32 @isatty(i32 noundef %4834) #10
  %4836 = icmp ne i32 %4835, 0
  br i1 %4836, label %4837, label %4854

4837:                                             ; preds = %4832
  %4838 = load i32, ptr %121, align 4, !tbaa !5
  %4839 = call ptr @__errno_location() #11
  store i32 %4838, ptr %4839, align 4, !tbaa !5
  %4840 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4841 = load i32, ptr @test_count, align 4, !tbaa !5
  %4842 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4843 = load i32, ptr %4842, align 4, !tbaa !5
  %4844 = call ptr @s2n_strerror(i32 noundef %4843, ptr noundef @.str.4)
  %4845 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4846 = load i32, ptr %4845, align 4, !tbaa !5
  %4847 = call ptr @s2n_strerror_debug(i32 noundef %4846, ptr noundef @.str.4)
  %4848 = call ptr @__errno_location() #11
  %4849 = load i32, ptr %4848, align 4, !tbaa !5
  %4850 = call ptr @strerror(i32 noundef %4849) #10
  %4851 = call ptr @__errno_location() #11
  %4852 = load i32, ptr %4851, align 4, !tbaa !5
  %4853 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4840, ptr noundef @.str.2, i32 noundef %4841, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 233, ptr noundef %4844, ptr noundef %4847, ptr noundef %4850, i32 noundef %4852) #10
  br label %4871

4854:                                             ; preds = %4832, %4825
  %4855 = load i32, ptr %121, align 4, !tbaa !5
  %4856 = call ptr @__errno_location() #11
  store i32 %4855, ptr %4856, align 4, !tbaa !5
  %4857 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4858 = load i32, ptr @test_count, align 4, !tbaa !5
  %4859 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4860 = load i32, ptr %4859, align 4, !tbaa !5
  %4861 = call ptr @s2n_strerror(i32 noundef %4860, ptr noundef @.str.4)
  %4862 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4863 = load i32, ptr %4862, align 4, !tbaa !5
  %4864 = call ptr @s2n_strerror_debug(i32 noundef %4863, ptr noundef @.str.4)
  %4865 = call ptr @__errno_location() #11
  %4866 = load i32, ptr %4865, align 4, !tbaa !5
  %4867 = call ptr @strerror(i32 noundef %4866) #10
  %4868 = call ptr @__errno_location() #11
  %4869 = load i32, ptr %4868, align 4, !tbaa !5
  %4870 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4857, ptr noundef @.str.5, i32 noundef %4858, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 233, ptr noundef %4861, ptr noundef %4864, ptr noundef %4867, i32 noundef %4869) #10
  br label %4871

4871:                                             ; preds = %4854, %4837
  call void @llvm.lifetime.end.p0(i64 4, ptr %121) #10
  br label %4872

4872:                                             ; preds = %4871
  br label %4873

4873:                                             ; preds = %4872
  call void @exit(i32 noundef 1) #12
  unreachable

4874:                                             ; No predecessors!
  br label %4875

4875:                                             ; preds = %4874
  br label %4876

4876:                                             ; preds = %4875, %4816
  br label %4877

4877:                                             ; preds = %4876
  br label %4878

4878:                                             ; preds = %4877
  br label %4879

4879:                                             ; preds = %4878
  %4880 = load i32, ptr @test_count, align 4, !tbaa !5
  %4881 = add nsw i32 %4880, 1
  store i32 %4881, ptr @test_count, align 4, !tbaa !5
  %4882 = load ptr, ptr %113, align 8, !tbaa !9
  %4883 = call ptr @s2n_get_application_protocol(ptr noundef %4882)
  %4884 = icmp eq ptr %4883, null
  br i1 %4884, label %4885, label %4938

4885:                                             ; preds = %4879
  br label %4886

4886:                                             ; preds = %4885
  br label %4887

4887:                                             ; preds = %4886
  call void @llvm.lifetime.start.p0(i64 4, ptr %122) #10
  %4888 = call ptr @__errno_location() #11
  %4889 = load i32, ptr %4888, align 4, !tbaa !5
  store i32 %4889, ptr %122, align 4, !tbaa !5
  %4890 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4891 = call i32 @s2n_print_stacktrace(ptr noundef %4890)
  %4892 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4893 = trunc i8 %4892 to i1
  br i1 %4893, label %4894, label %4916

4894:                                             ; preds = %4887
  %4895 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4896 = call i32 @fileno(ptr noundef %4895) #10
  %4897 = call i32 @isatty(i32 noundef %4896) #10
  %4898 = icmp ne i32 %4897, 0
  br i1 %4898, label %4899, label %4916

4899:                                             ; preds = %4894
  %4900 = load i32, ptr %122, align 4, !tbaa !5
  %4901 = call ptr @__errno_location() #11
  store i32 %4900, ptr %4901, align 4, !tbaa !5
  %4902 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4903 = load i32, ptr @test_count, align 4, !tbaa !5
  %4904 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4905 = load i32, ptr %4904, align 4, !tbaa !5
  %4906 = call ptr @s2n_strerror(i32 noundef %4905, ptr noundef @.str.4)
  %4907 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4908 = load i32, ptr %4907, align 4, !tbaa !5
  %4909 = call ptr @s2n_strerror_debug(i32 noundef %4908, ptr noundef @.str.4)
  %4910 = call ptr @__errno_location() #11
  %4911 = load i32, ptr %4910, align 4, !tbaa !5
  %4912 = call ptr @strerror(i32 noundef %4911) #10
  %4913 = call ptr @__errno_location() #11
  %4914 = load i32, ptr %4913, align 4, !tbaa !5
  %4915 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4902, ptr noundef @.str.2, i32 noundef %4903, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 234, ptr noundef %4906, ptr noundef %4909, ptr noundef %4912, i32 noundef %4914) #10
  br label %4933

4916:                                             ; preds = %4894, %4887
  %4917 = load i32, ptr %122, align 4, !tbaa !5
  %4918 = call ptr @__errno_location() #11
  store i32 %4917, ptr %4918, align 4, !tbaa !5
  %4919 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4920 = load i32, ptr @test_count, align 4, !tbaa !5
  %4921 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4922 = load i32, ptr %4921, align 4, !tbaa !5
  %4923 = call ptr @s2n_strerror(i32 noundef %4922, ptr noundef @.str.4)
  %4924 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4925 = load i32, ptr %4924, align 4, !tbaa !5
  %4926 = call ptr @s2n_strerror_debug(i32 noundef %4925, ptr noundef @.str.4)
  %4927 = call ptr @__errno_location() #11
  %4928 = load i32, ptr %4927, align 4, !tbaa !5
  %4929 = call ptr @strerror(i32 noundef %4928) #10
  %4930 = call ptr @__errno_location() #11
  %4931 = load i32, ptr %4930, align 4, !tbaa !5
  %4932 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4919, ptr noundef @.str.5, i32 noundef %4920, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 234, ptr noundef %4923, ptr noundef %4926, ptr noundef %4929, i32 noundef %4931) #10
  br label %4933

4933:                                             ; preds = %4916, %4899
  call void @llvm.lifetime.end.p0(i64 4, ptr %122) #10
  br label %4934

4934:                                             ; preds = %4933
  br label %4935

4935:                                             ; preds = %4934
  call void @exit(i32 noundef 1) #12
  unreachable

4936:                                             ; No predecessors!
  br label %4937

4937:                                             ; preds = %4936
  br label %4938

4938:                                             ; preds = %4937, %4879
  br label %4939

4939:                                             ; preds = %4938
  br label %4940

4940:                                             ; preds = %4939
  br label %4941

4941:                                             ; preds = %4940
  %4942 = getelementptr inbounds [3 x ptr], ptr %9, i64 0, i64 0
  %4943 = load ptr, ptr %4942, align 16, !tbaa !9
  %4944 = call i64 @strlen(ptr noundef %4943) #13
  %4945 = icmp ne i64 %4944, 0
  br i1 %4945, label %4946, label %5015

4946:                                             ; preds = %4941
  br label %4947

4947:                                             ; preds = %4946
  %4948 = load i32, ptr @test_count, align 4, !tbaa !5
  %4949 = add nsw i32 %4948, 1
  store i32 %4949, ptr @test_count, align 4, !tbaa !5
  %4950 = load ptr, ptr %113, align 8, !tbaa !9
  %4951 = call ptr @s2n_get_application_protocol(ptr noundef %4950)
  %4952 = getelementptr inbounds [3 x ptr], ptr %9, i64 0, i64 0
  %4953 = load ptr, ptr %4952, align 16, !tbaa !9
  %4954 = getelementptr inbounds [3 x ptr], ptr %9, i64 0, i64 0
  %4955 = load ptr, ptr %4954, align 16, !tbaa !9
  %4956 = call i64 @strlen(ptr noundef %4955) #13
  %4957 = call i32 @memcmp(ptr noundef %4951, ptr noundef %4953, i64 noundef %4956) #13
  %4958 = icmp eq i32 %4957, 0
  br i1 %4958, label %5012, label %4959

4959:                                             ; preds = %4947
  br label %4960

4960:                                             ; preds = %4959
  br label %4961

4961:                                             ; preds = %4960
  call void @llvm.lifetime.start.p0(i64 4, ptr %123) #10
  %4962 = call ptr @__errno_location() #11
  %4963 = load i32, ptr %4962, align 4, !tbaa !5
  store i32 %4963, ptr %123, align 4, !tbaa !5
  %4964 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4965 = call i32 @s2n_print_stacktrace(ptr noundef %4964)
  %4966 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4967 = trunc i8 %4966 to i1
  br i1 %4967, label %4968, label %4990

4968:                                             ; preds = %4961
  %4969 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4970 = call i32 @fileno(ptr noundef %4969) #10
  %4971 = call i32 @isatty(i32 noundef %4970) #10
  %4972 = icmp ne i32 %4971, 0
  br i1 %4972, label %4973, label %4990

4973:                                             ; preds = %4968
  %4974 = load i32, ptr %123, align 4, !tbaa !5
  %4975 = call ptr @__errno_location() #11
  store i32 %4974, ptr %4975, align 4, !tbaa !5
  %4976 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4977 = load i32, ptr @test_count, align 4, !tbaa !5
  %4978 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4979 = load i32, ptr %4978, align 4, !tbaa !5
  %4980 = call ptr @s2n_strerror(i32 noundef %4979, ptr noundef @.str.4)
  %4981 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4982 = load i32, ptr %4981, align 4, !tbaa !5
  %4983 = call ptr @s2n_strerror_debug(i32 noundef %4982, ptr noundef @.str.4)
  %4984 = call ptr @__errno_location() #11
  %4985 = load i32, ptr %4984, align 4, !tbaa !5
  %4986 = call ptr @strerror(i32 noundef %4985) #10
  %4987 = call ptr @__errno_location() #11
  %4988 = load i32, ptr %4987, align 4, !tbaa !5
  %4989 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4976, ptr noundef @.str.2, i32 noundef %4977, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 235, ptr noundef %4980, ptr noundef %4983, ptr noundef %4986, i32 noundef %4988) #10
  br label %5007

4990:                                             ; preds = %4968, %4961
  %4991 = load i32, ptr %123, align 4, !tbaa !5
  %4992 = call ptr @__errno_location() #11
  store i32 %4991, ptr %4992, align 4, !tbaa !5
  %4993 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4994 = load i32, ptr @test_count, align 4, !tbaa !5
  %4995 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4996 = load i32, ptr %4995, align 4, !tbaa !5
  %4997 = call ptr @s2n_strerror(i32 noundef %4996, ptr noundef @.str.4)
  %4998 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4999 = load i32, ptr %4998, align 4, !tbaa !5
  %5000 = call ptr @s2n_strerror_debug(i32 noundef %4999, ptr noundef @.str.4)
  %5001 = call ptr @__errno_location() #11
  %5002 = load i32, ptr %5001, align 4, !tbaa !5
  %5003 = call ptr @strerror(i32 noundef %5002) #10
  %5004 = call ptr @__errno_location() #11
  %5005 = load i32, ptr %5004, align 4, !tbaa !5
  %5006 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4993, ptr noundef @.str.5, i32 noundef %4994, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 235, ptr noundef %4997, ptr noundef %5000, ptr noundef %5003, i32 noundef %5005) #10
  br label %5007

5007:                                             ; preds = %4990, %4973
  call void @llvm.lifetime.end.p0(i64 4, ptr %123) #10
  br label %5008

5008:                                             ; preds = %5007
  br label %5009

5009:                                             ; preds = %5008
  call void @exit(i32 noundef 1) #12
  unreachable

5010:                                             ; No predecessors!
  br label %5011

5011:                                             ; preds = %5010
  br label %5012

5012:                                             ; preds = %5011, %4947
  br label %5013

5013:                                             ; preds = %5012
  br label %5014

5014:                                             ; preds = %5013
  br label %5015

5015:                                             ; preds = %5014, %4941
  br label %5016

5016:                                             ; preds = %5015
  br label %5017

5017:                                             ; preds = %5016
  %5018 = call i32 @s2n_stuffer_free(ptr noundef %119)
  call void @llvm.lifetime.end.p0(i64 40, ptr %119) #10
  %5019 = call i32 @s2n_config_ptr_free(ptr noundef %115)
  %5020 = getelementptr inbounds %struct.s2n_result, ptr %124, i32 0, i32 0
  store i32 %5019, ptr %5020, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %115) #10
  %5021 = call i32 @s2n_connection_ptr_free(ptr noundef %113)
  %5022 = getelementptr inbounds %struct.s2n_result, ptr %125, i32 0, i32 0
  store i32 %5021, ptr %5022, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %113) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %126) #10
  %5023 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %5023, ptr %126, align 8, !tbaa !9
  br label %5024

5024:                                             ; preds = %5017
  %5025 = load i32, ptr @test_count, align 4, !tbaa !5
  %5026 = add nsw i32 %5025, 1
  store i32 %5026, ptr @test_count, align 4, !tbaa !5
  %5027 = load ptr, ptr %126, align 8, !tbaa !9
  %5028 = icmp eq ptr %5027, null
  br i1 %5028, label %5029, label %5082

5029:                                             ; preds = %5024
  br label %5030

5030:                                             ; preds = %5029
  br label %5031

5031:                                             ; preds = %5030
  call void @llvm.lifetime.start.p0(i64 4, ptr %127) #10
  %5032 = call ptr @__errno_location() #11
  %5033 = load i32, ptr %5032, align 4, !tbaa !5
  store i32 %5033, ptr %127, align 4, !tbaa !5
  %5034 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5035 = call i32 @s2n_print_stacktrace(ptr noundef %5034)
  %5036 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5037 = trunc i8 %5036 to i1
  br i1 %5037, label %5038, label %5060

5038:                                             ; preds = %5031
  %5039 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5040 = call i32 @fileno(ptr noundef %5039) #10
  %5041 = call i32 @isatty(i32 noundef %5040) #10
  %5042 = icmp ne i32 %5041, 0
  br i1 %5042, label %5043, label %5060

5043:                                             ; preds = %5038
  %5044 = load i32, ptr %127, align 4, !tbaa !5
  %5045 = call ptr @__errno_location() #11
  store i32 %5044, ptr %5045, align 4, !tbaa !5
  %5046 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5047 = load i32, ptr @test_count, align 4, !tbaa !5
  %5048 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5049 = load i32, ptr %5048, align 4, !tbaa !5
  %5050 = call ptr @s2n_strerror(i32 noundef %5049, ptr noundef @.str.4)
  %5051 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5052 = load i32, ptr %5051, align 4, !tbaa !5
  %5053 = call ptr @s2n_strerror_debug(i32 noundef %5052, ptr noundef @.str.4)
  %5054 = call ptr @__errno_location() #11
  %5055 = load i32, ptr %5054, align 4, !tbaa !5
  %5056 = call ptr @strerror(i32 noundef %5055) #10
  %5057 = call ptr @__errno_location() #11
  %5058 = load i32, ptr %5057, align 4, !tbaa !5
  %5059 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5046, ptr noundef @.str.2, i32 noundef %5047, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 241, ptr noundef %5050, ptr noundef %5053, ptr noundef %5056, i32 noundef %5058) #10
  br label %5077

5060:                                             ; preds = %5038, %5031
  %5061 = load i32, ptr %127, align 4, !tbaa !5
  %5062 = call ptr @__errno_location() #11
  store i32 %5061, ptr %5062, align 4, !tbaa !5
  %5063 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5064 = load i32, ptr @test_count, align 4, !tbaa !5
  %5065 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5066 = load i32, ptr %5065, align 4, !tbaa !5
  %5067 = call ptr @s2n_strerror(i32 noundef %5066, ptr noundef @.str.4)
  %5068 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5069 = load i32, ptr %5068, align 4, !tbaa !5
  %5070 = call ptr @s2n_strerror_debug(i32 noundef %5069, ptr noundef @.str.4)
  %5071 = call ptr @__errno_location() #11
  %5072 = load i32, ptr %5071, align 4, !tbaa !5
  %5073 = call ptr @strerror(i32 noundef %5072) #10
  %5074 = call ptr @__errno_location() #11
  %5075 = load i32, ptr %5074, align 4, !tbaa !5
  %5076 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5063, ptr noundef @.str.5, i32 noundef %5064, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 241, ptr noundef %5067, ptr noundef %5070, ptr noundef %5073, i32 noundef %5075) #10
  br label %5077

5077:                                             ; preds = %5060, %5043
  call void @llvm.lifetime.end.p0(i64 4, ptr %127) #10
  br label %5078

5078:                                             ; preds = %5077
  br label %5079

5079:                                             ; preds = %5078
  call void @exit(i32 noundef 1) #12
  unreachable

5080:                                             ; No predecessors!
  br label %5081

5081:                                             ; preds = %5080
  br label %5082

5082:                                             ; preds = %5081, %5024
  br label %5083

5083:                                             ; preds = %5082
  br label %5084

5084:                                             ; preds = %5083
  call void @llvm.lifetime.start.p0(i64 8, ptr %128) #10
  %5085 = call ptr @s2n_config_new()
  store ptr %5085, ptr %128, align 8, !tbaa !9
  br label %5086

5086:                                             ; preds = %5084
  %5087 = load i32, ptr @test_count, align 4, !tbaa !5
  %5088 = add nsw i32 %5087, 1
  store i32 %5088, ptr @test_count, align 4, !tbaa !5
  %5089 = load ptr, ptr %128, align 8, !tbaa !9
  %5090 = icmp eq ptr %5089, null
  br i1 %5090, label %5091, label %5144

5091:                                             ; preds = %5086
  br label %5092

5092:                                             ; preds = %5091
  br label %5093

5093:                                             ; preds = %5092
  call void @llvm.lifetime.start.p0(i64 4, ptr %129) #10
  %5094 = call ptr @__errno_location() #11
  %5095 = load i32, ptr %5094, align 4, !tbaa !5
  store i32 %5095, ptr %129, align 4, !tbaa !5
  %5096 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5097 = call i32 @s2n_print_stacktrace(ptr noundef %5096)
  %5098 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5099 = trunc i8 %5098 to i1
  br i1 %5099, label %5100, label %5122

5100:                                             ; preds = %5093
  %5101 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5102 = call i32 @fileno(ptr noundef %5101) #10
  %5103 = call i32 @isatty(i32 noundef %5102) #10
  %5104 = icmp ne i32 %5103, 0
  br i1 %5104, label %5105, label %5122

5105:                                             ; preds = %5100
  %5106 = load i32, ptr %129, align 4, !tbaa !5
  %5107 = call ptr @__errno_location() #11
  store i32 %5106, ptr %5107, align 4, !tbaa !5
  %5108 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5109 = load i32, ptr @test_count, align 4, !tbaa !5
  %5110 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5111 = load i32, ptr %5110, align 4, !tbaa !5
  %5112 = call ptr @s2n_strerror(i32 noundef %5111, ptr noundef @.str.4)
  %5113 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5114 = load i32, ptr %5113, align 4, !tbaa !5
  %5115 = call ptr @s2n_strerror_debug(i32 noundef %5114, ptr noundef @.str.4)
  %5116 = call ptr @__errno_location() #11
  %5117 = load i32, ptr %5116, align 4, !tbaa !5
  %5118 = call ptr @strerror(i32 noundef %5117) #10
  %5119 = call ptr @__errno_location() #11
  %5120 = load i32, ptr %5119, align 4, !tbaa !5
  %5121 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5108, ptr noundef @.str.2, i32 noundef %5109, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 243, ptr noundef %5112, ptr noundef %5115, ptr noundef %5118, i32 noundef %5120) #10
  br label %5139

5122:                                             ; preds = %5100, %5093
  %5123 = load i32, ptr %129, align 4, !tbaa !5
  %5124 = call ptr @__errno_location() #11
  store i32 %5123, ptr %5124, align 4, !tbaa !5
  %5125 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5126 = load i32, ptr @test_count, align 4, !tbaa !5
  %5127 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5128 = load i32, ptr %5127, align 4, !tbaa !5
  %5129 = call ptr @s2n_strerror(i32 noundef %5128, ptr noundef @.str.4)
  %5130 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5131 = load i32, ptr %5130, align 4, !tbaa !5
  %5132 = call ptr @s2n_strerror_debug(i32 noundef %5131, ptr noundef @.str.4)
  %5133 = call ptr @__errno_location() #11
  %5134 = load i32, ptr %5133, align 4, !tbaa !5
  %5135 = call ptr @strerror(i32 noundef %5134) #10
  %5136 = call ptr @__errno_location() #11
  %5137 = load i32, ptr %5136, align 4, !tbaa !5
  %5138 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5125, ptr noundef @.str.5, i32 noundef %5126, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 243, ptr noundef %5129, ptr noundef %5132, ptr noundef %5135, i32 noundef %5137) #10
  br label %5139

5139:                                             ; preds = %5122, %5105
  call void @llvm.lifetime.end.p0(i64 4, ptr %129) #10
  br label %5140

5140:                                             ; preds = %5139
  br label %5141

5141:                                             ; preds = %5140
  call void @exit(i32 noundef 1) #12
  unreachable

5142:                                             ; No predecessors!
  br label %5143

5143:                                             ; preds = %5142
  br label %5144

5144:                                             ; preds = %5143, %5086
  br label %5145

5145:                                             ; preds = %5144
  br label %5146

5146:                                             ; preds = %5145
  br label %5147

5147:                                             ; preds = %5146
  %5148 = load i32, ptr @test_count, align 4, !tbaa !5
  %5149 = add nsw i32 %5148, 1
  store i32 %5149, ptr @test_count, align 4, !tbaa !5
  %5150 = load ptr, ptr %128, align 8, !tbaa !9
  %5151 = getelementptr inbounds [3 x ptr], ptr %9, i64 0, i64 0
  %5152 = call i32 @s2n_config_set_protocol_preferences(ptr noundef %5150, ptr noundef %5151, i32 noundef 3)
  %5153 = icmp eq i32 %5152, -1
  br i1 %5153, label %5154, label %5207

5154:                                             ; preds = %5147
  br label %5155

5155:                                             ; preds = %5154
  br label %5156

5156:                                             ; preds = %5155
  call void @llvm.lifetime.start.p0(i64 4, ptr %130) #10
  %5157 = call ptr @__errno_location() #11
  %5158 = load i32, ptr %5157, align 4, !tbaa !5
  store i32 %5158, ptr %130, align 4, !tbaa !5
  %5159 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5160 = call i32 @s2n_print_stacktrace(ptr noundef %5159)
  %5161 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5162 = trunc i8 %5161 to i1
  br i1 %5162, label %5163, label %5185

5163:                                             ; preds = %5156
  %5164 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5165 = call i32 @fileno(ptr noundef %5164) #10
  %5166 = call i32 @isatty(i32 noundef %5165) #10
  %5167 = icmp ne i32 %5166, 0
  br i1 %5167, label %5168, label %5185

5168:                                             ; preds = %5163
  %5169 = load i32, ptr %130, align 4, !tbaa !5
  %5170 = call ptr @__errno_location() #11
  store i32 %5169, ptr %5170, align 4, !tbaa !5
  %5171 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5172 = load i32, ptr @test_count, align 4, !tbaa !5
  %5173 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5174 = load i32, ptr %5173, align 4, !tbaa !5
  %5175 = call ptr @s2n_strerror(i32 noundef %5174, ptr noundef @.str.4)
  %5176 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5177 = load i32, ptr %5176, align 4, !tbaa !5
  %5178 = call ptr @s2n_strerror_debug(i32 noundef %5177, ptr noundef @.str.4)
  %5179 = call ptr @__errno_location() #11
  %5180 = load i32, ptr %5179, align 4, !tbaa !5
  %5181 = call ptr @strerror(i32 noundef %5180) #10
  %5182 = call ptr @__errno_location() #11
  %5183 = load i32, ptr %5182, align 4, !tbaa !5
  %5184 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5171, ptr noundef @.str.2, i32 noundef %5172, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 244, ptr noundef %5175, ptr noundef %5178, ptr noundef %5181, i32 noundef %5183) #10
  br label %5202

5185:                                             ; preds = %5163, %5156
  %5186 = load i32, ptr %130, align 4, !tbaa !5
  %5187 = call ptr @__errno_location() #11
  store i32 %5186, ptr %5187, align 4, !tbaa !5
  %5188 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5189 = load i32, ptr @test_count, align 4, !tbaa !5
  %5190 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5191 = load i32, ptr %5190, align 4, !tbaa !5
  %5192 = call ptr @s2n_strerror(i32 noundef %5191, ptr noundef @.str.4)
  %5193 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5194 = load i32, ptr %5193, align 4, !tbaa !5
  %5195 = call ptr @s2n_strerror_debug(i32 noundef %5194, ptr noundef @.str.4)
  %5196 = call ptr @__errno_location() #11
  %5197 = load i32, ptr %5196, align 4, !tbaa !5
  %5198 = call ptr @strerror(i32 noundef %5197) #10
  %5199 = call ptr @__errno_location() #11
  %5200 = load i32, ptr %5199, align 4, !tbaa !5
  %5201 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5188, ptr noundef @.str.5, i32 noundef %5189, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 244, ptr noundef %5192, ptr noundef %5195, ptr noundef %5198, i32 noundef %5200) #10
  br label %5202

5202:                                             ; preds = %5185, %5168
  call void @llvm.lifetime.end.p0(i64 4, ptr %130) #10
  br label %5203

5203:                                             ; preds = %5202
  br label %5204

5204:                                             ; preds = %5203
  call void @exit(i32 noundef 1) #12
  unreachable

5205:                                             ; No predecessors!
  br label %5206

5206:                                             ; preds = %5205
  br label %5207

5207:                                             ; preds = %5206, %5147
  br label %5208

5208:                                             ; preds = %5207
  br label %5209

5209:                                             ; preds = %5208
  br label %5210

5210:                                             ; preds = %5209
  %5211 = load i32, ptr @test_count, align 4, !tbaa !5
  %5212 = add nsw i32 %5211, 1
  store i32 %5212, ptr @test_count, align 4, !tbaa !5
  %5213 = load ptr, ptr %126, align 8, !tbaa !9
  %5214 = load ptr, ptr %128, align 8, !tbaa !9
  %5215 = call i32 @s2n_connection_set_config(ptr noundef %5213, ptr noundef %5214)
  %5216 = icmp eq i32 %5215, -1
  br i1 %5216, label %5217, label %5270

5217:                                             ; preds = %5210
  br label %5218

5218:                                             ; preds = %5217
  br label %5219

5219:                                             ; preds = %5218
  call void @llvm.lifetime.start.p0(i64 4, ptr %131) #10
  %5220 = call ptr @__errno_location() #11
  %5221 = load i32, ptr %5220, align 4, !tbaa !5
  store i32 %5221, ptr %131, align 4, !tbaa !5
  %5222 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5223 = call i32 @s2n_print_stacktrace(ptr noundef %5222)
  %5224 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5225 = trunc i8 %5224 to i1
  br i1 %5225, label %5226, label %5248

5226:                                             ; preds = %5219
  %5227 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5228 = call i32 @fileno(ptr noundef %5227) #10
  %5229 = call i32 @isatty(i32 noundef %5228) #10
  %5230 = icmp ne i32 %5229, 0
  br i1 %5230, label %5231, label %5248

5231:                                             ; preds = %5226
  %5232 = load i32, ptr %131, align 4, !tbaa !5
  %5233 = call ptr @__errno_location() #11
  store i32 %5232, ptr %5233, align 4, !tbaa !5
  %5234 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5235 = load i32, ptr @test_count, align 4, !tbaa !5
  %5236 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5237 = load i32, ptr %5236, align 4, !tbaa !5
  %5238 = call ptr @s2n_strerror(i32 noundef %5237, ptr noundef @.str.4)
  %5239 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5240 = load i32, ptr %5239, align 4, !tbaa !5
  %5241 = call ptr @s2n_strerror_debug(i32 noundef %5240, ptr noundef @.str.4)
  %5242 = call ptr @__errno_location() #11
  %5243 = load i32, ptr %5242, align 4, !tbaa !5
  %5244 = call ptr @strerror(i32 noundef %5243) #10
  %5245 = call ptr @__errno_location() #11
  %5246 = load i32, ptr %5245, align 4, !tbaa !5
  %5247 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5234, ptr noundef @.str.2, i32 noundef %5235, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 245, ptr noundef %5238, ptr noundef %5241, ptr noundef %5244, i32 noundef %5246) #10
  br label %5265

5248:                                             ; preds = %5226, %5219
  %5249 = load i32, ptr %131, align 4, !tbaa !5
  %5250 = call ptr @__errno_location() #11
  store i32 %5249, ptr %5250, align 4, !tbaa !5
  %5251 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5252 = load i32, ptr @test_count, align 4, !tbaa !5
  %5253 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5254 = load i32, ptr %5253, align 4, !tbaa !5
  %5255 = call ptr @s2n_strerror(i32 noundef %5254, ptr noundef @.str.4)
  %5256 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5257 = load i32, ptr %5256, align 4, !tbaa !5
  %5258 = call ptr @s2n_strerror_debug(i32 noundef %5257, ptr noundef @.str.4)
  %5259 = call ptr @__errno_location() #11
  %5260 = load i32, ptr %5259, align 4, !tbaa !5
  %5261 = call ptr @strerror(i32 noundef %5260) #10
  %5262 = call ptr @__errno_location() #11
  %5263 = load i32, ptr %5262, align 4, !tbaa !5
  %5264 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5251, ptr noundef @.str.5, i32 noundef %5252, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 245, ptr noundef %5255, ptr noundef %5258, ptr noundef %5261, i32 noundef %5263) #10
  br label %5265

5265:                                             ; preds = %5248, %5231
  call void @llvm.lifetime.end.p0(i64 4, ptr %131) #10
  br label %5266

5266:                                             ; preds = %5265
  br label %5267

5267:                                             ; preds = %5266
  call void @exit(i32 noundef 1) #12
  unreachable

5268:                                             ; No predecessors!
  br label %5269

5269:                                             ; preds = %5268
  br label %5270

5270:                                             ; preds = %5269, %5210
  br label %5271

5271:                                             ; preds = %5270
  br label %5272

5272:                                             ; preds = %5271
  call void @llvm.lifetime.start.p0(i64 40, ptr %132) #10
  call void @llvm.memset.p0.i64(ptr align 8 %132, i8 0, i64 40, i1 false)
  br label %5273

5273:                                             ; preds = %5272
  %5274 = load i32, ptr @test_count, align 4, !tbaa !5
  %5275 = add nsw i32 %5274, 1
  store i32 %5275, ptr @test_count, align 4, !tbaa !5
  %5276 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %132, i32 noundef 0)
  %5277 = icmp eq i32 %5276, -1
  br i1 %5277, label %5278, label %5331

5278:                                             ; preds = %5273
  br label %5279

5279:                                             ; preds = %5278
  br label %5280

5280:                                             ; preds = %5279
  call void @llvm.lifetime.start.p0(i64 4, ptr %133) #10
  %5281 = call ptr @__errno_location() #11
  %5282 = load i32, ptr %5281, align 4, !tbaa !5
  store i32 %5282, ptr %133, align 4, !tbaa !5
  %5283 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5284 = call i32 @s2n_print_stacktrace(ptr noundef %5283)
  %5285 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5286 = trunc i8 %5285 to i1
  br i1 %5286, label %5287, label %5309

5287:                                             ; preds = %5280
  %5288 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5289 = call i32 @fileno(ptr noundef %5288) #10
  %5290 = call i32 @isatty(i32 noundef %5289) #10
  %5291 = icmp ne i32 %5290, 0
  br i1 %5291, label %5292, label %5309

5292:                                             ; preds = %5287
  %5293 = load i32, ptr %133, align 4, !tbaa !5
  %5294 = call ptr @__errno_location() #11
  store i32 %5293, ptr %5294, align 4, !tbaa !5
  %5295 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5296 = load i32, ptr @test_count, align 4, !tbaa !5
  %5297 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5298 = load i32, ptr %5297, align 4, !tbaa !5
  %5299 = call ptr @s2n_strerror(i32 noundef %5298, ptr noundef @.str.4)
  %5300 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5301 = load i32, ptr %5300, align 4, !tbaa !5
  %5302 = call ptr @s2n_strerror_debug(i32 noundef %5301, ptr noundef @.str.4)
  %5303 = call ptr @__errno_location() #11
  %5304 = load i32, ptr %5303, align 4, !tbaa !5
  %5305 = call ptr @strerror(i32 noundef %5304) #10
  %5306 = call ptr @__errno_location() #11
  %5307 = load i32, ptr %5306, align 4, !tbaa !5
  %5308 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5295, ptr noundef @.str.2, i32 noundef %5296, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 248, ptr noundef %5299, ptr noundef %5302, ptr noundef %5305, i32 noundef %5307) #10
  br label %5326

5309:                                             ; preds = %5287, %5280
  %5310 = load i32, ptr %133, align 4, !tbaa !5
  %5311 = call ptr @__errno_location() #11
  store i32 %5310, ptr %5311, align 4, !tbaa !5
  %5312 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5313 = load i32, ptr @test_count, align 4, !tbaa !5
  %5314 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5315 = load i32, ptr %5314, align 4, !tbaa !5
  %5316 = call ptr @s2n_strerror(i32 noundef %5315, ptr noundef @.str.4)
  %5317 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5318 = load i32, ptr %5317, align 4, !tbaa !5
  %5319 = call ptr @s2n_strerror_debug(i32 noundef %5318, ptr noundef @.str.4)
  %5320 = call ptr @__errno_location() #11
  %5321 = load i32, ptr %5320, align 4, !tbaa !5
  %5322 = call ptr @strerror(i32 noundef %5321) #10
  %5323 = call ptr @__errno_location() #11
  %5324 = load i32, ptr %5323, align 4, !tbaa !5
  %5325 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5312, ptr noundef @.str.5, i32 noundef %5313, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 248, ptr noundef %5316, ptr noundef %5319, ptr noundef %5322, i32 noundef %5324) #10
  br label %5326

5326:                                             ; preds = %5309, %5292
  call void @llvm.lifetime.end.p0(i64 4, ptr %133) #10
  br label %5327

5327:                                             ; preds = %5326
  br label %5328

5328:                                             ; preds = %5327
  call void @exit(i32 noundef 1) #12
  unreachable

5329:                                             ; No predecessors!
  br label %5330

5330:                                             ; preds = %5329
  br label %5331

5331:                                             ; preds = %5330, %5273
  br label %5332

5332:                                             ; preds = %5331
  br label %5333

5333:                                             ; preds = %5332
  call void @llvm.lifetime.start.p0(i64 23, ptr %134) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %134, ptr align 16 @__const.main.wire_bytes, i64 23, i1 false)
  br label %5334

5334:                                             ; preds = %5333
  %5335 = load i32, ptr @test_count, align 4, !tbaa !5
  %5336 = add nsw i32 %5335, 1
  store i32 %5336, ptr @test_count, align 4, !tbaa !5
  %5337 = getelementptr inbounds [23 x i8], ptr %134, i64 0, i64 0
  %5338 = call i32 @s2n_stuffer_write_bytes(ptr noundef %132, ptr noundef %5337, i32 noundef 23)
  %5339 = icmp eq i32 %5338, -1
  br i1 %5339, label %5340, label %5393

5340:                                             ; preds = %5334
  br label %5341

5341:                                             ; preds = %5340
  br label %5342

5342:                                             ; preds = %5341
  call void @llvm.lifetime.start.p0(i64 4, ptr %135) #10
  %5343 = call ptr @__errno_location() #11
  %5344 = load i32, ptr %5343, align 4, !tbaa !5
  store i32 %5344, ptr %135, align 4, !tbaa !5
  %5345 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5346 = call i32 @s2n_print_stacktrace(ptr noundef %5345)
  %5347 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5348 = trunc i8 %5347 to i1
  br i1 %5348, label %5349, label %5371

5349:                                             ; preds = %5342
  %5350 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5351 = call i32 @fileno(ptr noundef %5350) #10
  %5352 = call i32 @isatty(i32 noundef %5351) #10
  %5353 = icmp ne i32 %5352, 0
  br i1 %5353, label %5354, label %5371

5354:                                             ; preds = %5349
  %5355 = load i32, ptr %135, align 4, !tbaa !5
  %5356 = call ptr @__errno_location() #11
  store i32 %5355, ptr %5356, align 4, !tbaa !5
  %5357 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5358 = load i32, ptr @test_count, align 4, !tbaa !5
  %5359 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5360 = load i32, ptr %5359, align 4, !tbaa !5
  %5361 = call ptr @s2n_strerror(i32 noundef %5360, ptr noundef @.str.4)
  %5362 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5363 = load i32, ptr %5362, align 4, !tbaa !5
  %5364 = call ptr @s2n_strerror_debug(i32 noundef %5363, ptr noundef @.str.4)
  %5365 = call ptr @__errno_location() #11
  %5366 = load i32, ptr %5365, align 4, !tbaa !5
  %5367 = call ptr @strerror(i32 noundef %5366) #10
  %5368 = call ptr @__errno_location() #11
  %5369 = load i32, ptr %5368, align 4, !tbaa !5
  %5370 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5357, ptr noundef @.str.2, i32 noundef %5358, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 262, ptr noundef %5361, ptr noundef %5364, ptr noundef %5367, i32 noundef %5369) #10
  br label %5388

5371:                                             ; preds = %5349, %5342
  %5372 = load i32, ptr %135, align 4, !tbaa !5
  %5373 = call ptr @__errno_location() #11
  store i32 %5372, ptr %5373, align 4, !tbaa !5
  %5374 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5375 = load i32, ptr @test_count, align 4, !tbaa !5
  %5376 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5377 = load i32, ptr %5376, align 4, !tbaa !5
  %5378 = call ptr @s2n_strerror(i32 noundef %5377, ptr noundef @.str.4)
  %5379 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5380 = load i32, ptr %5379, align 4, !tbaa !5
  %5381 = call ptr @s2n_strerror_debug(i32 noundef %5380, ptr noundef @.str.4)
  %5382 = call ptr @__errno_location() #11
  %5383 = load i32, ptr %5382, align 4, !tbaa !5
  %5384 = call ptr @strerror(i32 noundef %5383) #10
  %5385 = call ptr @__errno_location() #11
  %5386 = load i32, ptr %5385, align 4, !tbaa !5
  %5387 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5374, ptr noundef @.str.5, i32 noundef %5375, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 262, ptr noundef %5378, ptr noundef %5381, ptr noundef %5384, i32 noundef %5386) #10
  br label %5388

5388:                                             ; preds = %5371, %5354
  call void @llvm.lifetime.end.p0(i64 4, ptr %135) #10
  br label %5389

5389:                                             ; preds = %5388
  br label %5390

5390:                                             ; preds = %5389
  call void @exit(i32 noundef 1) #12
  unreachable

5391:                                             ; No predecessors!
  br label %5392

5392:                                             ; preds = %5391
  br label %5393

5393:                                             ; preds = %5392, %5334
  br label %5394

5394:                                             ; preds = %5393
  br label %5395

5395:                                             ; preds = %5394
  br label %5396

5396:                                             ; preds = %5395
  %5397 = load i32, ptr @test_count, align 4, !tbaa !5
  %5398 = add nsw i32 %5397, 1
  store i32 %5398, ptr @test_count, align 4, !tbaa !5
  %5399 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_npn_extension, i32 0, i32 4), align 8, !tbaa !45
  %5400 = load ptr, ptr %126, align 8, !tbaa !9
  %5401 = call i32 %5399(ptr noundef %5400, ptr noundef %132)
  %5402 = icmp eq i32 %5401, -1
  br i1 %5402, label %5403, label %5456

5403:                                             ; preds = %5396
  br label %5404

5404:                                             ; preds = %5403
  br label %5405

5405:                                             ; preds = %5404
  call void @llvm.lifetime.start.p0(i64 4, ptr %136) #10
  %5406 = call ptr @__errno_location() #11
  %5407 = load i32, ptr %5406, align 4, !tbaa !5
  store i32 %5407, ptr %136, align 4, !tbaa !5
  %5408 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5409 = call i32 @s2n_print_stacktrace(ptr noundef %5408)
  %5410 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5411 = trunc i8 %5410 to i1
  br i1 %5411, label %5412, label %5434

5412:                                             ; preds = %5405
  %5413 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5414 = call i32 @fileno(ptr noundef %5413) #10
  %5415 = call i32 @isatty(i32 noundef %5414) #10
  %5416 = icmp ne i32 %5415, 0
  br i1 %5416, label %5417, label %5434

5417:                                             ; preds = %5412
  %5418 = load i32, ptr %136, align 4, !tbaa !5
  %5419 = call ptr @__errno_location() #11
  store i32 %5418, ptr %5419, align 4, !tbaa !5
  %5420 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5421 = load i32, ptr @test_count, align 4, !tbaa !5
  %5422 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5423 = load i32, ptr %5422, align 4, !tbaa !5
  %5424 = call ptr @s2n_strerror(i32 noundef %5423, ptr noundef @.str.4)
  %5425 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5426 = load i32, ptr %5425, align 4, !tbaa !5
  %5427 = call ptr @s2n_strerror_debug(i32 noundef %5426, ptr noundef @.str.4)
  %5428 = call ptr @__errno_location() #11
  %5429 = load i32, ptr %5428, align 4, !tbaa !5
  %5430 = call ptr @strerror(i32 noundef %5429) #10
  %5431 = call ptr @__errno_location() #11
  %5432 = load i32, ptr %5431, align 4, !tbaa !5
  %5433 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5420, ptr noundef @.str.2, i32 noundef %5421, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 263, ptr noundef %5424, ptr noundef %5427, ptr noundef %5430, i32 noundef %5432) #10
  br label %5451

5434:                                             ; preds = %5412, %5405
  %5435 = load i32, ptr %136, align 4, !tbaa !5
  %5436 = call ptr @__errno_location() #11
  store i32 %5435, ptr %5436, align 4, !tbaa !5
  %5437 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5438 = load i32, ptr @test_count, align 4, !tbaa !5
  %5439 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5440 = load i32, ptr %5439, align 4, !tbaa !5
  %5441 = call ptr @s2n_strerror(i32 noundef %5440, ptr noundef @.str.4)
  %5442 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5443 = load i32, ptr %5442, align 4, !tbaa !5
  %5444 = call ptr @s2n_strerror_debug(i32 noundef %5443, ptr noundef @.str.4)
  %5445 = call ptr @__errno_location() #11
  %5446 = load i32, ptr %5445, align 4, !tbaa !5
  %5447 = call ptr @strerror(i32 noundef %5446) #10
  %5448 = call ptr @__errno_location() #11
  %5449 = load i32, ptr %5448, align 4, !tbaa !5
  %5450 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5437, ptr noundef @.str.5, i32 noundef %5438, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 263, ptr noundef %5441, ptr noundef %5444, ptr noundef %5447, i32 noundef %5449) #10
  br label %5451

5451:                                             ; preds = %5434, %5417
  call void @llvm.lifetime.end.p0(i64 4, ptr %136) #10
  br label %5452

5452:                                             ; preds = %5451
  br label %5453

5453:                                             ; preds = %5452
  call void @exit(i32 noundef 1) #12
  unreachable

5454:                                             ; No predecessors!
  br label %5455

5455:                                             ; preds = %5454
  br label %5456

5456:                                             ; preds = %5455, %5396
  br label %5457

5457:                                             ; preds = %5456
  br label %5458

5458:                                             ; preds = %5457
  br label %5459

5459:                                             ; preds = %5458
  %5460 = load i32, ptr @test_count, align 4, !tbaa !5
  %5461 = add nsw i32 %5460, 1
  store i32 %5461, ptr @test_count, align 4, !tbaa !5
  %5462 = load ptr, ptr %126, align 8, !tbaa !9
  %5463 = call ptr @s2n_get_application_protocol(ptr noundef %5462)
  %5464 = icmp eq ptr %5463, null
  br i1 %5464, label %5465, label %5518

5465:                                             ; preds = %5459
  br label %5466

5466:                                             ; preds = %5465
  br label %5467

5467:                                             ; preds = %5466
  call void @llvm.lifetime.start.p0(i64 4, ptr %137) #10
  %5468 = call ptr @__errno_location() #11
  %5469 = load i32, ptr %5468, align 4, !tbaa !5
  store i32 %5469, ptr %137, align 4, !tbaa !5
  %5470 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5471 = call i32 @s2n_print_stacktrace(ptr noundef %5470)
  %5472 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5473 = trunc i8 %5472 to i1
  br i1 %5473, label %5474, label %5496

5474:                                             ; preds = %5467
  %5475 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5476 = call i32 @fileno(ptr noundef %5475) #10
  %5477 = call i32 @isatty(i32 noundef %5476) #10
  %5478 = icmp ne i32 %5477, 0
  br i1 %5478, label %5479, label %5496

5479:                                             ; preds = %5474
  %5480 = load i32, ptr %137, align 4, !tbaa !5
  %5481 = call ptr @__errno_location() #11
  store i32 %5480, ptr %5481, align 4, !tbaa !5
  %5482 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5483 = load i32, ptr @test_count, align 4, !tbaa !5
  %5484 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5485 = load i32, ptr %5484, align 4, !tbaa !5
  %5486 = call ptr @s2n_strerror(i32 noundef %5485, ptr noundef @.str.4)
  %5487 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5488 = load i32, ptr %5487, align 4, !tbaa !5
  %5489 = call ptr @s2n_strerror_debug(i32 noundef %5488, ptr noundef @.str.4)
  %5490 = call ptr @__errno_location() #11
  %5491 = load i32, ptr %5490, align 4, !tbaa !5
  %5492 = call ptr @strerror(i32 noundef %5491) #10
  %5493 = call ptr @__errno_location() #11
  %5494 = load i32, ptr %5493, align 4, !tbaa !5
  %5495 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5482, ptr noundef @.str.2, i32 noundef %5483, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 265, ptr noundef %5486, ptr noundef %5489, ptr noundef %5492, i32 noundef %5494) #10
  br label %5513

5496:                                             ; preds = %5474, %5467
  %5497 = load i32, ptr %137, align 4, !tbaa !5
  %5498 = call ptr @__errno_location() #11
  store i32 %5497, ptr %5498, align 4, !tbaa !5
  %5499 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5500 = load i32, ptr @test_count, align 4, !tbaa !5
  %5501 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5502 = load i32, ptr %5501, align 4, !tbaa !5
  %5503 = call ptr @s2n_strerror(i32 noundef %5502, ptr noundef @.str.4)
  %5504 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5505 = load i32, ptr %5504, align 4, !tbaa !5
  %5506 = call ptr @s2n_strerror_debug(i32 noundef %5505, ptr noundef @.str.4)
  %5507 = call ptr @__errno_location() #11
  %5508 = load i32, ptr %5507, align 4, !tbaa !5
  %5509 = call ptr @strerror(i32 noundef %5508) #10
  %5510 = call ptr @__errno_location() #11
  %5511 = load i32, ptr %5510, align 4, !tbaa !5
  %5512 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5499, ptr noundef @.str.5, i32 noundef %5500, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 265, ptr noundef %5503, ptr noundef %5506, ptr noundef %5509, i32 noundef %5511) #10
  br label %5513

5513:                                             ; preds = %5496, %5479
  call void @llvm.lifetime.end.p0(i64 4, ptr %137) #10
  br label %5514

5514:                                             ; preds = %5513
  br label %5515

5515:                                             ; preds = %5514
  call void @exit(i32 noundef 1) #12
  unreachable

5516:                                             ; No predecessors!
  br label %5517

5517:                                             ; preds = %5516
  br label %5518

5518:                                             ; preds = %5517, %5459
  br label %5519

5519:                                             ; preds = %5518
  br label %5520

5520:                                             ; preds = %5519
  br label %5521

5521:                                             ; preds = %5520
  %5522 = getelementptr inbounds [3 x ptr], ptr %9, i64 0, i64 1
  %5523 = load ptr, ptr %5522, align 8, !tbaa !9
  %5524 = call i64 @strlen(ptr noundef %5523) #13
  %5525 = icmp ne i64 %5524, 0
  br i1 %5525, label %5526, label %5595

5526:                                             ; preds = %5521
  br label %5527

5527:                                             ; preds = %5526
  %5528 = load i32, ptr @test_count, align 4, !tbaa !5
  %5529 = add nsw i32 %5528, 1
  store i32 %5529, ptr @test_count, align 4, !tbaa !5
  %5530 = load ptr, ptr %126, align 8, !tbaa !9
  %5531 = call ptr @s2n_get_application_protocol(ptr noundef %5530)
  %5532 = getelementptr inbounds [3 x ptr], ptr %9, i64 0, i64 1
  %5533 = load ptr, ptr %5532, align 8, !tbaa !9
  %5534 = getelementptr inbounds [3 x ptr], ptr %9, i64 0, i64 1
  %5535 = load ptr, ptr %5534, align 8, !tbaa !9
  %5536 = call i64 @strlen(ptr noundef %5535) #13
  %5537 = call i32 @memcmp(ptr noundef %5531, ptr noundef %5533, i64 noundef %5536) #13
  %5538 = icmp eq i32 %5537, 0
  br i1 %5538, label %5592, label %5539

5539:                                             ; preds = %5527
  br label %5540

5540:                                             ; preds = %5539
  br label %5541

5541:                                             ; preds = %5540
  call void @llvm.lifetime.start.p0(i64 4, ptr %138) #10
  %5542 = call ptr @__errno_location() #11
  %5543 = load i32, ptr %5542, align 4, !tbaa !5
  store i32 %5543, ptr %138, align 4, !tbaa !5
  %5544 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5545 = call i32 @s2n_print_stacktrace(ptr noundef %5544)
  %5546 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5547 = trunc i8 %5546 to i1
  br i1 %5547, label %5548, label %5570

5548:                                             ; preds = %5541
  %5549 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5550 = call i32 @fileno(ptr noundef %5549) #10
  %5551 = call i32 @isatty(i32 noundef %5550) #10
  %5552 = icmp ne i32 %5551, 0
  br i1 %5552, label %5553, label %5570

5553:                                             ; preds = %5548
  %5554 = load i32, ptr %138, align 4, !tbaa !5
  %5555 = call ptr @__errno_location() #11
  store i32 %5554, ptr %5555, align 4, !tbaa !5
  %5556 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5557 = load i32, ptr @test_count, align 4, !tbaa !5
  %5558 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5559 = load i32, ptr %5558, align 4, !tbaa !5
  %5560 = call ptr @s2n_strerror(i32 noundef %5559, ptr noundef @.str.4)
  %5561 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5562 = load i32, ptr %5561, align 4, !tbaa !5
  %5563 = call ptr @s2n_strerror_debug(i32 noundef %5562, ptr noundef @.str.4)
  %5564 = call ptr @__errno_location() #11
  %5565 = load i32, ptr %5564, align 4, !tbaa !5
  %5566 = call ptr @strerror(i32 noundef %5565) #10
  %5567 = call ptr @__errno_location() #11
  %5568 = load i32, ptr %5567, align 4, !tbaa !5
  %5569 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5556, ptr noundef @.str.2, i32 noundef %5557, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 268, ptr noundef %5560, ptr noundef %5563, ptr noundef %5566, i32 noundef %5568) #10
  br label %5587

5570:                                             ; preds = %5548, %5541
  %5571 = load i32, ptr %138, align 4, !tbaa !5
  %5572 = call ptr @__errno_location() #11
  store i32 %5571, ptr %5572, align 4, !tbaa !5
  %5573 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5574 = load i32, ptr @test_count, align 4, !tbaa !5
  %5575 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5576 = load i32, ptr %5575, align 4, !tbaa !5
  %5577 = call ptr @s2n_strerror(i32 noundef %5576, ptr noundef @.str.4)
  %5578 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5579 = load i32, ptr %5578, align 4, !tbaa !5
  %5580 = call ptr @s2n_strerror_debug(i32 noundef %5579, ptr noundef @.str.4)
  %5581 = call ptr @__errno_location() #11
  %5582 = load i32, ptr %5581, align 4, !tbaa !5
  %5583 = call ptr @strerror(i32 noundef %5582) #10
  %5584 = call ptr @__errno_location() #11
  %5585 = load i32, ptr %5584, align 4, !tbaa !5
  %5586 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5573, ptr noundef @.str.5, i32 noundef %5574, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 268, ptr noundef %5577, ptr noundef %5580, ptr noundef %5583, i32 noundef %5585) #10
  br label %5587

5587:                                             ; preds = %5570, %5553
  call void @llvm.lifetime.end.p0(i64 4, ptr %138) #10
  br label %5588

5588:                                             ; preds = %5587
  br label %5589

5589:                                             ; preds = %5588
  call void @exit(i32 noundef 1) #12
  unreachable

5590:                                             ; No predecessors!
  br label %5591

5591:                                             ; preds = %5590
  br label %5592

5592:                                             ; preds = %5591, %5527
  br label %5593

5593:                                             ; preds = %5592
  br label %5594

5594:                                             ; preds = %5593
  br label %5595

5595:                                             ; preds = %5594, %5521
  br label %5596

5596:                                             ; preds = %5595
  br label %5597

5597:                                             ; preds = %5596
  call void @llvm.lifetime.end.p0(i64 23, ptr %134) #10
  %5598 = call i32 @s2n_stuffer_free(ptr noundef %132)
  call void @llvm.lifetime.end.p0(i64 40, ptr %132) #10
  %5599 = call i32 @s2n_config_ptr_free(ptr noundef %128)
  %5600 = getelementptr inbounds %struct.s2n_result, ptr %139, i32 0, i32 0
  store i32 %5599, ptr %5600, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %128) #10
  %5601 = call i32 @s2n_connection_ptr_free(ptr noundef %126)
  %5602 = getelementptr inbounds %struct.s2n_result, ptr %140, i32 0, i32 0
  store i32 %5601, ptr %5602, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %126) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %141) #10
  %5603 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %5603, ptr %141, align 8, !tbaa !9
  br label %5604

5604:                                             ; preds = %5597
  %5605 = load i32, ptr @test_count, align 4, !tbaa !5
  %5606 = add nsw i32 %5605, 1
  store i32 %5606, ptr @test_count, align 4, !tbaa !5
  %5607 = load ptr, ptr %141, align 8, !tbaa !9
  %5608 = icmp eq ptr %5607, null
  br i1 %5608, label %5609, label %5662

5609:                                             ; preds = %5604
  br label %5610

5610:                                             ; preds = %5609
  br label %5611

5611:                                             ; preds = %5610
  call void @llvm.lifetime.start.p0(i64 4, ptr %142) #10
  %5612 = call ptr @__errno_location() #11
  %5613 = load i32, ptr %5612, align 4, !tbaa !5
  store i32 %5613, ptr %142, align 4, !tbaa !5
  %5614 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5615 = call i32 @s2n_print_stacktrace(ptr noundef %5614)
  %5616 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5617 = trunc i8 %5616 to i1
  br i1 %5617, label %5618, label %5640

5618:                                             ; preds = %5611
  %5619 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5620 = call i32 @fileno(ptr noundef %5619) #10
  %5621 = call i32 @isatty(i32 noundef %5620) #10
  %5622 = icmp ne i32 %5621, 0
  br i1 %5622, label %5623, label %5640

5623:                                             ; preds = %5618
  %5624 = load i32, ptr %142, align 4, !tbaa !5
  %5625 = call ptr @__errno_location() #11
  store i32 %5624, ptr %5625, align 4, !tbaa !5
  %5626 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5627 = load i32, ptr @test_count, align 4, !tbaa !5
  %5628 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5629 = load i32, ptr %5628, align 4, !tbaa !5
  %5630 = call ptr @s2n_strerror(i32 noundef %5629, ptr noundef @.str.4)
  %5631 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5632 = load i32, ptr %5631, align 4, !tbaa !5
  %5633 = call ptr @s2n_strerror_debug(i32 noundef %5632, ptr noundef @.str.4)
  %5634 = call ptr @__errno_location() #11
  %5635 = load i32, ptr %5634, align 4, !tbaa !5
  %5636 = call ptr @strerror(i32 noundef %5635) #10
  %5637 = call ptr @__errno_location() #11
  %5638 = load i32, ptr %5637, align 4, !tbaa !5
  %5639 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5626, ptr noundef @.str.2, i32 noundef %5627, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 282, ptr noundef %5630, ptr noundef %5633, ptr noundef %5636, i32 noundef %5638) #10
  br label %5657

5640:                                             ; preds = %5618, %5611
  %5641 = load i32, ptr %142, align 4, !tbaa !5
  %5642 = call ptr @__errno_location() #11
  store i32 %5641, ptr %5642, align 4, !tbaa !5
  %5643 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5644 = load i32, ptr @test_count, align 4, !tbaa !5
  %5645 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5646 = load i32, ptr %5645, align 4, !tbaa !5
  %5647 = call ptr @s2n_strerror(i32 noundef %5646, ptr noundef @.str.4)
  %5648 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5649 = load i32, ptr %5648, align 4, !tbaa !5
  %5650 = call ptr @s2n_strerror_debug(i32 noundef %5649, ptr noundef @.str.4)
  %5651 = call ptr @__errno_location() #11
  %5652 = load i32, ptr %5651, align 4, !tbaa !5
  %5653 = call ptr @strerror(i32 noundef %5652) #10
  %5654 = call ptr @__errno_location() #11
  %5655 = load i32, ptr %5654, align 4, !tbaa !5
  %5656 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5643, ptr noundef @.str.5, i32 noundef %5644, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 282, ptr noundef %5647, ptr noundef %5650, ptr noundef %5653, i32 noundef %5655) #10
  br label %5657

5657:                                             ; preds = %5640, %5623
  call void @llvm.lifetime.end.p0(i64 4, ptr %142) #10
  br label %5658

5658:                                             ; preds = %5657
  br label %5659

5659:                                             ; preds = %5658
  call void @exit(i32 noundef 1) #12
  unreachable

5660:                                             ; No predecessors!
  br label %5661

5661:                                             ; preds = %5660
  br label %5662

5662:                                             ; preds = %5661, %5604
  br label %5663

5663:                                             ; preds = %5662
  br label %5664

5664:                                             ; preds = %5663
  br label %5665

5665:                                             ; preds = %5664
  %5666 = load i32, ptr @test_count, align 4, !tbaa !5
  %5667 = add nsw i32 %5666, 1
  store i32 %5667, ptr @test_count, align 4, !tbaa !5
  br label %5668

5668:                                             ; preds = %5665
  br label %5669

5669:                                             ; preds = %5668
  %5670 = call i32 @s2n_connection_ptr_free(ptr noundef %141)
  %5671 = getelementptr inbounds %struct.s2n_result, ptr %143, i32 0, i32 0
  store i32 %5670, ptr %5671, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %141) #10
  br label %5672

5672:                                             ; preds = %5669
  br label %5673

5673:                                             ; preds = %5672
  %5674 = call i32 @s2n_cleanup()
  %5675 = icmp eq i32 %5674, -1
  br i1 %5675, label %5676, label %5729

5676:                                             ; preds = %5673
  br label %5677

5677:                                             ; preds = %5676
  br label %5678

5678:                                             ; preds = %5677
  call void @llvm.lifetime.start.p0(i64 4, ptr %144) #10
  %5679 = call ptr @__errno_location() #11
  %5680 = load i32, ptr %5679, align 4, !tbaa !5
  store i32 %5680, ptr %144, align 4, !tbaa !5
  %5681 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5682 = call i32 @s2n_print_stacktrace(ptr noundef %5681)
  %5683 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5684 = trunc i8 %5683 to i1
  br i1 %5684, label %5685, label %5707

5685:                                             ; preds = %5678
  %5686 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5687 = call i32 @fileno(ptr noundef %5686) #10
  %5688 = call i32 @isatty(i32 noundef %5687) #10
  %5689 = icmp ne i32 %5688, 0
  br i1 %5689, label %5690, label %5707

5690:                                             ; preds = %5685
  %5691 = load i32, ptr %144, align 4, !tbaa !5
  %5692 = call ptr @__errno_location() #11
  store i32 %5691, ptr %5692, align 4, !tbaa !5
  %5693 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5694 = load i32, ptr @test_count, align 4, !tbaa !5
  %5695 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5696 = load i32, ptr %5695, align 4, !tbaa !5
  %5697 = call ptr @s2n_strerror(i32 noundef %5696, ptr noundef @.str.4)
  %5698 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5699 = load i32, ptr %5698, align 4, !tbaa !5
  %5700 = call ptr @s2n_strerror_debug(i32 noundef %5699, ptr noundef @.str.4)
  %5701 = call ptr @__errno_location() #11
  %5702 = load i32, ptr %5701, align 4, !tbaa !5
  %5703 = call ptr @strerror(i32 noundef %5702) #10
  %5704 = call ptr @__errno_location() #11
  %5705 = load i32, ptr %5704, align 4, !tbaa !5
  %5706 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5693, ptr noundef @.str.2, i32 noundef %5694, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 288, ptr noundef %5697, ptr noundef %5700, ptr noundef %5703, i32 noundef %5705) #10
  br label %5724

5707:                                             ; preds = %5685, %5678
  %5708 = load i32, ptr %144, align 4, !tbaa !5
  %5709 = call ptr @__errno_location() #11
  store i32 %5708, ptr %5709, align 4, !tbaa !5
  %5710 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5711 = load i32, ptr @test_count, align 4, !tbaa !5
  %5712 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5713 = load i32, ptr %5712, align 4, !tbaa !5
  %5714 = call ptr @s2n_strerror(i32 noundef %5713, ptr noundef @.str.4)
  %5715 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5716 = load i32, ptr %5715, align 4, !tbaa !5
  %5717 = call ptr @s2n_strerror_debug(i32 noundef %5716, ptr noundef @.str.4)
  %5718 = call ptr @__errno_location() #11
  %5719 = load i32, ptr %5718, align 4, !tbaa !5
  %5720 = call ptr @strerror(i32 noundef %5719) #10
  %5721 = call ptr @__errno_location() #11
  %5722 = load i32, ptr %5721, align 4, !tbaa !5
  %5723 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5710, ptr noundef @.str.5, i32 noundef %5711, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 288, ptr noundef %5714, ptr noundef %5717, ptr noundef %5720, i32 noundef %5722) #10
  br label %5724

5724:                                             ; preds = %5707, %5690
  call void @llvm.lifetime.end.p0(i64 4, ptr %144) #10
  br label %5725

5725:                                             ; preds = %5724
  br label %5726

5726:                                             ; preds = %5725
  call void @exit(i32 noundef 1) #12
  unreachable

5727:                                             ; No predecessors!
  br label %5728

5728:                                             ; preds = %5727
  br label %5729

5729:                                             ; preds = %5728, %5673
  br label %5730

5730:                                             ; preds = %5729
  br label %5731

5731:                                             ; preds = %5730
  br label %5732

5732:                                             ; preds = %5731
  br label %5733

5733:                                             ; preds = %5732
  %5734 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %5735 = icmp eq i32 %5734, -1
  br i1 %5735, label %5736, label %5789

5736:                                             ; preds = %5733
  br label %5737

5737:                                             ; preds = %5736
  br label %5738

5738:                                             ; preds = %5737
  call void @llvm.lifetime.start.p0(i64 4, ptr %145) #10
  %5739 = call ptr @__errno_location() #11
  %5740 = load i32, ptr %5739, align 4, !tbaa !5
  store i32 %5740, ptr %145, align 4, !tbaa !5
  %5741 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5742 = call i32 @s2n_print_stacktrace(ptr noundef %5741)
  %5743 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5744 = trunc i8 %5743 to i1
  br i1 %5744, label %5745, label %5767

5745:                                             ; preds = %5738
  %5746 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5747 = call i32 @fileno(ptr noundef %5746) #10
  %5748 = call i32 @isatty(i32 noundef %5747) #10
  %5749 = icmp ne i32 %5748, 0
  br i1 %5749, label %5750, label %5767

5750:                                             ; preds = %5745
  %5751 = load i32, ptr %145, align 4, !tbaa !5
  %5752 = call ptr @__errno_location() #11
  store i32 %5751, ptr %5752, align 4, !tbaa !5
  %5753 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5754 = load i32, ptr @test_count, align 4, !tbaa !5
  %5755 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5756 = load i32, ptr %5755, align 4, !tbaa !5
  %5757 = call ptr @s2n_strerror(i32 noundef %5756, ptr noundef @.str.4)
  %5758 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5759 = load i32, ptr %5758, align 4, !tbaa !5
  %5760 = call ptr @s2n_strerror_debug(i32 noundef %5759, ptr noundef @.str.4)
  %5761 = call ptr @__errno_location() #11
  %5762 = load i32, ptr %5761, align 4, !tbaa !5
  %5763 = call ptr @strerror(i32 noundef %5762) #10
  %5764 = call ptr @__errno_location() #11
  %5765 = load i32, ptr %5764, align 4, !tbaa !5
  %5766 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5753, ptr noundef @.str.2, i32 noundef %5754, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 288, ptr noundef %5757, ptr noundef %5760, ptr noundef %5763, i32 noundef %5765) #10
  br label %5784

5767:                                             ; preds = %5745, %5738
  %5768 = load i32, ptr %145, align 4, !tbaa !5
  %5769 = call ptr @__errno_location() #11
  store i32 %5768, ptr %5769, align 4, !tbaa !5
  %5770 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5771 = load i32, ptr @test_count, align 4, !tbaa !5
  %5772 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5773 = load i32, ptr %5772, align 4, !tbaa !5
  %5774 = call ptr @s2n_strerror(i32 noundef %5773, ptr noundef @.str.4)
  %5775 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5776 = load i32, ptr %5775, align 4, !tbaa !5
  %5777 = call ptr @s2n_strerror_debug(i32 noundef %5776, ptr noundef @.str.4)
  %5778 = call ptr @__errno_location() #11
  %5779 = load i32, ptr %5778, align 4, !tbaa !5
  %5780 = call ptr @strerror(i32 noundef %5779) #10
  %5781 = call ptr @__errno_location() #11
  %5782 = load i32, ptr %5781, align 4, !tbaa !5
  %5783 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5770, ptr noundef @.str.5, i32 noundef %5771, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 288, ptr noundef %5774, ptr noundef %5777, ptr noundef %5780, i32 noundef %5782) #10
  br label %5784

5784:                                             ; preds = %5767, %5750
  call void @llvm.lifetime.end.p0(i64 4, ptr %145) #10
  br label %5785

5785:                                             ; preds = %5784
  br label %5786

5786:                                             ; preds = %5785
  call void @exit(i32 noundef 1) #12
  unreachable

5787:                                             ; No predecessors!
  br label %5788

5788:                                             ; preds = %5787
  br label %5789

5789:                                             ; preds = %5788, %5733
  br label %5790

5790:                                             ; preds = %5789
  br label %5791

5791:                                             ; preds = %5790
  %5792 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5793 = trunc i8 %5792 to i1
  br i1 %5793, label %5794, label %5810

5794:                                             ; preds = %5791
  %5795 = load ptr, ptr @stdout, align 8, !tbaa !9
  %5796 = call i32 @fileno(ptr noundef %5795) #10
  %5797 = call i32 @isatty(i32 noundef %5796) #10
  %5798 = icmp ne i32 %5797, 0
  br i1 %5798, label %5799, label %5810

5799:                                             ; preds = %5794
  %5800 = load i32, ptr @test_count, align 4, !tbaa !5
  %5801 = icmp ne i32 %5800, 0
  br i1 %5801, label %5802, label %5806

5802:                                             ; preds = %5799
  %5803 = load ptr, ptr @stdout, align 8, !tbaa !9
  %5804 = load i32, ptr @test_count, align 4, !tbaa !5
  %5805 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5803, ptr noundef @.str.46, i32 noundef %5804) #10
  br label %5809

5806:                                             ; preds = %5799
  %5807 = load ptr, ptr @stdout, align 8, !tbaa !9
  %5808 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5807, ptr noundef @.str.47) #10
  br label %5809

5809:                                             ; preds = %5806, %5802
  br label %5821

5810:                                             ; preds = %5794, %5791
  %5811 = load i32, ptr @test_count, align 4, !tbaa !5
  %5812 = icmp ne i32 %5811, 0
  br i1 %5812, label %5813, label %5817

5813:                                             ; preds = %5810
  %5814 = load ptr, ptr @stdout, align 8, !tbaa !9
  %5815 = load i32, ptr @test_count, align 4, !tbaa !5
  %5816 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5814, ptr noundef @.str.48, i32 noundef %5815) #10
  br label %5820

5817:                                             ; preds = %5810
  %5818 = load ptr, ptr @stdout, align 8, !tbaa !9
  %5819 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5818, ptr noundef @.str.49) #10
  br label %5820

5820:                                             ; preds = %5817, %5813
  br label %5821

5821:                                             ; preds = %5820, %5809
  store i32 0, ptr %3, align 4
  store i32 1, ptr %146, align 4
  br label %5826

5822:                                             ; No predecessors!
  br label %5823

5823:                                             ; preds = %5822
  br label %5824

5824:                                             ; preds = %5823
  br label %5825

5825:                                             ; preds = %5824
  store i32 0, ptr %146, align 4
  br label %5826

5826:                                             ; preds = %5825, %5821
  call void @llvm.lifetime.end.p0(i64 1, ptr %10) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %9) #10
  %5827 = load i32, ptr %146, align 4
  switch i32 %5827, label %5830 [
    i32 0, label %5828
    i32 1, label %5828
  ]

5828:                                             ; preds = %5826, %5826
  %5829 = load i32, ptr %3, align 4
  ret i32 %5829

5830:                                             ; preds = %5826
  unreachable
}

; Function Attrs: nounwind
declare i32 @fprintf(ptr noundef, ptr noundef, ...) #1

declare i32 @fflush(ptr noundef) #2

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) #2

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

; Function Attrs: nounwind willreturn memory(none)
declare ptr @__errno_location() #4

declare i32 @s2n_print_stacktrace(ptr noundef) #2

; Function Attrs: nounwind
declare i32 @isatty(i32 noundef) #1

; Function Attrs: nounwind
declare i32 @fileno(ptr noundef) #1

declare ptr @s2n_strerror(i32 noundef, ptr noundef) #2

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare nonnull ptr @llvm.threadlocal.address.p0(ptr nonnull) #5

declare ptr @s2n_strerror_debug(i32 noundef, ptr noundef) #2

; Function Attrs: nounwind
declare ptr @strerror(i32 noundef) #1

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

; Function Attrs: noreturn nounwind
declare void @exit(i32 noundef) #6

declare i32 @s2n_enable_atexit() #2

declare i32 @s2n_init() #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) #7

declare ptr @s2n_connection_new(i32 noundef) #2

declare i32 @s2n_connection_ptr_free(ptr noundef) #2

declare ptr @s2n_config_new() #2

declare i32 @s2n_config_ptr_free(ptr noundef) #2

declare i32 @s2n_connection_set_config(ptr noundef, ptr noundef) #2

declare i32 @s2n_config_set_protocol_preferences(ptr noundef, ptr noundef, i32 noundef) #2

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

declare i32 @s2n_stuffer_free(ptr noundef) #2

declare i32 @s2n_stuffer_growable_alloc(ptr noundef, i32 noundef) #2

; Function Attrs: nounwind willreturn memory(read)
declare i64 @strlen(ptr noundef) #9

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

declare i32 @s2n_stuffer_read_uint8(ptr noundef, ptr noundef) #2

declare i32 @s2n_stuffer_read_bytes(ptr noundef, ptr noundef, i32 noundef) #2

; Function Attrs: nounwind willreturn memory(read)
declare i32 @memcmp(ptr noundef, ptr noundef, i64 noundef) #9

declare ptr @s2n_get_application_protocol(ptr noundef) #2

declare i32 @s2n_stuffer_write_uint8(ptr noundef, i8 noundef zeroext) #2

declare i32 @s2n_stuffer_write_bytes(ptr noundef, ptr noundef, i32 noundef) #2

declare i32 @s2n_cleanup() #2

attributes #0 = { 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 #1 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #4 = { nounwind willreturn memory(none) "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 nosync nounwind speculatable willreturn memory(none) }
attributes #6 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #8 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #9 = { nounwind willreturn memory(read) "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 #10 = { nounwind }
attributes #11 = { nounwind willreturn memory(none) }
attributes #12 = { noreturn nounwind }
attributes #13 = { nounwind willreturn memory(read) }

!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 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_Bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!7, !7, i64 0}
!16 = !{!17, !10, i64 24}
!17 = !{!"", !18, i64 0, !6, i64 2, !18, i64 4, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32}
!18 = !{!"short", !7, i64 0}
!19 = !{!20, !10, i64 8}
!20 = !{!"s2n_connection", !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40, !10, i64 48, !10, i64 56, !10, i64 64, !10, i64 72, !7, i64 80, !7, i64 102, !7, i64 124, !6, i64 148, !6, i64 152, !21, i64 160, !22, i64 168, !22, i64 176, !7, i64 184, !7, i64 216, !7, i64 217, !7, i64 218, !7, i64 219, !7, i64 220, !7, i64 221, !7, i64 222, !10, i64 224, !10, i64 232, !23, i64 240, !10, i64 632, !10, i64 640, !24, i64 648, !30, i64 1144, !33, i64 1688, !10, i64 1752, !7, i64 1760, !6, i64 1764, !7, i64 1768, !35, i64 1776, !35, i64 1816, !35, i64 1856, !35, i64 1896, !6, i64 1936, !22, i64 1944, !7, i64 1952, !35, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !36, i64 2004, !36, i64 2008, !37, i64 2016, !18, i64 2208, !6, i64 2212, !18, i64 2216, !22, i64 2224, !7, i64 2232, !22, i64 2240, !22, i64 2248, !22, i64 2256, !36, i64 2264, !36, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !29, i64 2792, !6, i64 2816, !29, i64 2824, !29, i64 2848, !29, i64 2872, !39, i64 2896, !41, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !29, i64 3784, !6, i64 3808, !43, i64 3816, !7, i64 3848, !35, i64 3992, !29, i64 4032, !29, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !18, i64 4084, !18, i64 4086, !6, i64 4088, !6, i64 4092, !29, i64 4096, !6, i64 4120, !44, i64 4128, !36, i64 4176, !7, i64 4180, !7, i64 4181}
!21 = !{!"s2n_timer", !22, i64 0}
!22 = !{!"long", !7, i64 0}
!23 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!24 = !{!"s2n_kex_parameters", !25, i64 0, !26, i64 8, !7, i64 24, !26, i64 56, !27, i64 72, !27, i64 184, !7, i64 296, !28, i64 360, !29, i64 448, !29, i64 472}
!25 = !{!"s2n_dh_params", !10, i64 0}
!26 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!27 = !{!"s2n_kem_group_params", !10, i64 0, !28, i64 8, !26, i64 96}
!28 = !{!"s2n_kem_params", !10, i64 0, !29, i64 8, !29, i64 32, !29, i64 56, !12, i64 80}
!29 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!30 = !{!"s2n_handshake_parameters", !31, i64 0, !31, i64 48, !29, i64 96, !6, i64 120, !32, i64 124, !10, i64 384, !10, i64 392, !10, i64 400, !7, i64 408, !7, i64 440, !7, i64 472, !7, i64 473, !7, i64 474, !7, i64 506}
!31 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!32 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!33 = !{!"s2n_psk_parameters", !6, i64 0, !34, i64 8, !18, i64 40, !18, i64 42, !10, i64 48, !6, i64 56}
!34 = !{!"s2n_array", !29, i64 0, !6, i64 24, !6, i64 28}
!35 = !{!"s2n_stuffer", !29, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!36 = !{!"", !6, i64 0}
!37 = !{!"s2n_handshake", !35, i64 0, !10, i64 40, !7, i64 48, !7, i64 56, !7, i64 104, !7, i64 152, !6, i64 156, !6, i64 160, !6, i64 164, !6, i64 168, !38, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!38 = !{!"s2n_offered_early_data", !10, i64 0}
!39 = !{!"s2n_client_hello", !29, i64 0, !40, i64 24, !29, i64 728, !29, i64 752, !29, i64 776, !7, i64 800, !7, i64 801, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802}
!40 = !{!"", !7, i64 0, !29, i64 672, !18, i64 696}
!41 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !18, i64 18, !10, i64 24, !6, i64 32, !10, i64 40, !42, i64 48, !12, i64 52}
!42 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!43 = !{!"s2n_ticket_fields", !29, i64 0, !6, i64 24}
!44 = !{!"s2n_post_handshake", !35, i64 0, !7, i64 40}
!45 = !{!17, !10, i64 16}
!46 = !{!17, !10, i64 8}
!47 = !{!22, !22, i64 0}
!48 = distinct !{!48, !49}
!49 = !{!"llvm.loop.mustprogress"}
!50 = !{!35, !6, i64 28}
!51 = !{!35, !6, i64 24}


; 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.s2n_extension_type = type { i16, i8, i16, ptr, ptr, ptr, ptr }
%struct.s2n_stuffer = type { %struct.s2n_blob, i32, i32, i32, i8 }
%struct.s2n_blob = type { ptr, i32, i32, i8 }

@s2n_use_color_in_output = external dso_local local_unnamed_addr global i8, align 1
@test_count = external dso_local local_unnamed_addr global i32, align 4
@stdout = external local_unnamed_addr global ptr, align 8
@.str = external hidden unnamed_addr constant [19 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [81 x i8], align 1
@stderr = external local_unnamed_addr global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [52 x i8], align 1
@s2n_errno = external thread_local local_unnamed_addr global i32, align 4
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [39 x i8], align 1
@__const.main.protocols = external hidden unnamed_addr constant [3 x ptr], align 16
@s2n_client_npn_extension = external local_unnamed_addr constant %struct.s2n_extension_type, align 8
@.str.11 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [100 x i8], align 1
@s2n_client_alpn_extension = external local_unnamed_addr constant %struct.s2n_extension_type, align 8
@.str.17 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [41 x i8], align 1
@s2n_server_npn_extension = external local_unnamed_addr constant %struct.s2n_extension_type, align 8
@.str.26 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [116 x i8], align 1
@__const.main.protocol = external hidden unnamed_addr constant [6 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [92 x i8], align 1
@__const.main.wire_bytes = external hidden unnamed_addr constant [23 x i8], align 16
@.str.42 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [116 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [25 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local noundef i32 @main(i32 noundef %0, ptr nocapture noundef readnone %1) local_unnamed_addr #0 {
  %3 = alloca [3 x ptr], align 16
  %4 = alloca ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca %struct.s2n_stuffer, align 8
  %9 = alloca ptr, align 8
  %10 = alloca ptr, align 8
  %11 = alloca ptr, align 8
  %12 = alloca ptr, align 8
  %13 = alloca %struct.s2n_stuffer, align 8
  %14 = alloca i8, align 1
  %15 = alloca [255 x i8], align 16
  %16 = alloca ptr, align 8
  %17 = alloca %struct.s2n_stuffer, align 8
  %18 = alloca ptr, align 8
  %19 = alloca ptr, align 8
  %20 = alloca %struct.s2n_stuffer, align 8
  %21 = alloca ptr, align 8
  %22 = alloca ptr, align 8
  %23 = alloca %struct.s2n_stuffer, align 8
  %24 = alloca [6 x i8], align 1
  %25 = alloca ptr, align 8
  %26 = alloca ptr, align 8
  %27 = alloca %struct.s2n_stuffer, align 8
  %28 = alloca ptr, align 8
  %29 = alloca ptr, align 8
  %30 = alloca %struct.s2n_stuffer, align 8
  %31 = alloca [23 x i8], align 16
  %32 = alloca ptr, align 8
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %33 = load ptr, ptr @stdout, align 8, !tbaa !9
  %34 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %33, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1) #12
  %35 = load ptr, ptr @stdout, align 8, !tbaa !9
  %36 = tail call i32 @fflush(ptr noundef %35)
  %37 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext true) #12
  %38 = icmp eq i32 %37, -1
  br i1 %38, label %39, label %63

39:                                               ; preds = %2
  %40 = tail call ptr @__errno_location() #13
  %41 = load i32, ptr %40, align 4, !tbaa !5
  %42 = load ptr, ptr @stderr, align 8, !tbaa !9
  %43 = tail call i32 @s2n_print_stacktrace(ptr noundef %42) #12
  %44 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %45 = trunc nuw i8 %44 to i1
  br i1 %45, label %46, label %50

46:                                               ; preds = %39
  %47 = load ptr, ptr @stderr, align 8, !tbaa !9
  %48 = tail call i32 @fileno(ptr noundef %47) #12
  %49 = tail call i32 @isatty(i32 noundef %48) #12
  %.not306 = icmp eq i32 %49, 0
  br i1 %.not306, label %50, label %51

50:                                               ; preds = %46, %39
  br label %51

51:                                               ; preds = %46, %50
  %.str.5.sink = phi ptr [ @.str.5, %50 ], [ @.str.2, %46 ]
  store i32 %41, ptr %40, align 4, !tbaa !5
  %52 = load ptr, ptr @stderr, align 8, !tbaa !9
  %53 = load i32, ptr @test_count, align 4, !tbaa !5
  %54 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %55 = load i32, ptr %54, align 4, !tbaa !5
  %56 = tail call ptr @s2n_strerror(i32 noundef %55, ptr noundef nonnull @.str.4) #12
  %57 = load i32, ptr %54, align 4, !tbaa !5
  %58 = tail call ptr @s2n_strerror_debug(i32 noundef %57, ptr noundef nonnull @.str.4) #12
  %59 = load i32, ptr %40, align 4, !tbaa !5
  %60 = tail call ptr @strerror(i32 noundef %59) #12
  %61 = load i32, ptr %40, align 4, !tbaa !5
  %62 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %52, ptr noundef nonnull %.str.5.sink, i32 noundef %53, ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.1, i32 noundef 37, ptr noundef %56, ptr noundef %58, ptr noundef %60, i32 noundef %61) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

63:                                               ; preds = %2
  %64 = load i32, ptr @test_count, align 4, !tbaa !5
  %65 = add nsw i32 %64, 1
  store i32 %65, ptr @test_count, align 4, !tbaa !5
  %66 = tail call i32 @s2n_enable_atexit() #12
  %67 = icmp eq i32 %66, -1
  br i1 %67, label %68, label %92

68:                                               ; preds = %63
  %69 = tail call ptr @__errno_location() #13
  %70 = load i32, ptr %69, align 4, !tbaa !5
  %71 = load ptr, ptr @stderr, align 8, !tbaa !9
  %72 = tail call i32 @s2n_print_stacktrace(ptr noundef %71) #12
  %73 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %74 = trunc nuw i8 %73 to i1
  br i1 %74, label %75, label %79

75:                                               ; preds = %68
  %76 = load ptr, ptr @stderr, align 8, !tbaa !9
  %77 = tail call i32 @fileno(ptr noundef %76) #12
  %78 = tail call i32 @isatty(i32 noundef %77) #12
  %.not305 = icmp eq i32 %78, 0
  br i1 %.not305, label %79, label %80

79:                                               ; preds = %75, %68
  br label %80

80:                                               ; preds = %75, %79
  %.str.5.sink320 = phi ptr [ @.str.5, %79 ], [ @.str.2, %75 ]
  store i32 %70, ptr %69, align 4, !tbaa !5
  %81 = load ptr, ptr @stderr, align 8, !tbaa !9
  %82 = load i32, ptr @test_count, align 4, !tbaa !5
  %83 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %84 = load i32, ptr %83, align 4, !tbaa !5
  %85 = tail call ptr @s2n_strerror(i32 noundef %84, ptr noundef nonnull @.str.4) #12
  %86 = load i32, ptr %83, align 4, !tbaa !5
  %87 = tail call ptr @s2n_strerror_debug(i32 noundef %86, ptr noundef nonnull @.str.4) #12
  %88 = load i32, ptr %69, align 4, !tbaa !5
  %89 = tail call ptr @strerror(i32 noundef %88) #12
  %90 = load i32, ptr %69, align 4, !tbaa !5
  %91 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %81, ptr noundef nonnull %.str.5.sink320, i32 noundef %82, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.1, i32 noundef 37, ptr noundef %85, ptr noundef %87, ptr noundef %89, i32 noundef %90) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

92:                                               ; preds = %63
  %93 = tail call i32 @s2n_init() #12
  %94 = icmp eq i32 %93, -1
  br i1 %94, label %95, label %119

95:                                               ; preds = %92
  %96 = tail call ptr @__errno_location() #13
  %97 = load i32, ptr %96, align 4, !tbaa !5
  %98 = load ptr, ptr @stderr, align 8, !tbaa !9
  %99 = tail call i32 @s2n_print_stacktrace(ptr noundef %98) #12
  %100 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %101 = trunc nuw i8 %100 to i1
  br i1 %101, label %102, label %106

102:                                              ; preds = %95
  %103 = load ptr, ptr @stderr, align 8, !tbaa !9
  %104 = tail call i32 @fileno(ptr noundef %103) #12
  %105 = tail call i32 @isatty(i32 noundef %104) #12
  %.not304 = icmp eq i32 %105, 0
  br i1 %.not304, label %106, label %107

106:                                              ; preds = %102, %95
  br label %107

107:                                              ; preds = %102, %106
  %.str.5.sink331 = phi ptr [ @.str.5, %106 ], [ @.str.2, %102 ]
  store i32 %97, ptr %96, align 4, !tbaa !5
  %108 = load ptr, ptr @stderr, align 8, !tbaa !9
  %109 = load i32, ptr @test_count, align 4, !tbaa !5
  %110 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %111 = load i32, ptr %110, align 4, !tbaa !5
  %112 = tail call ptr @s2n_strerror(i32 noundef %111, ptr noundef nonnull @.str.4) #12
  %113 = load i32, ptr %110, align 4, !tbaa !5
  %114 = tail call ptr @s2n_strerror_debug(i32 noundef %113, ptr noundef nonnull @.str.4) #12
  %115 = load i32, ptr %96, align 4, !tbaa !5
  %116 = tail call ptr @strerror(i32 noundef %115) #12
  %117 = load i32, ptr %96, align 4, !tbaa !5
  %118 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %108, ptr noundef nonnull %.str.5.sink331, i32 noundef %109, ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.1, i32 noundef 37, ptr noundef %112, ptr noundef %114, ptr noundef %116, i32 noundef %117) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

119:                                              ; preds = %92
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %3) #12
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(24) %3, ptr noundef nonnull align 16 dereferenceable(24) @__const.main.protocols, i64 24, i1 false)
  %120 = load i32, ptr @test_count, align 4, !tbaa !5
  %121 = add nsw i32 %120, 1
  store i32 %121, ptr @test_count, align 4, !tbaa !5
  %122 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_client_npn_extension, i64 24), align 8, !tbaa !15
  %123 = tail call zeroext i1 %122(ptr noundef null) #12
  br i1 %123, label %124, label %148

124:                                              ; preds = %119
  %125 = tail call ptr @__errno_location() #13
  %126 = load i32, ptr %125, align 4, !tbaa !5
  %127 = load ptr, ptr @stderr, align 8, !tbaa !9
  %128 = tail call i32 @s2n_print_stacktrace(ptr noundef %127) #12
  %129 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %130 = trunc nuw i8 %129 to i1
  br i1 %130, label %131, label %135

131:                                              ; preds = %124
  %132 = load ptr, ptr @stderr, align 8, !tbaa !9
  %133 = tail call i32 @fileno(ptr noundef %132) #12
  %134 = tail call i32 @isatty(i32 noundef %133) #12
  %.not303 = icmp eq i32 %134, 0
  br i1 %.not303, label %135, label %136

135:                                              ; preds = %131, %124
  br label %136

136:                                              ; preds = %131, %135
  %.str.5.sink342 = phi ptr [ @.str.5, %135 ], [ @.str.2, %131 ]
  store i32 %126, ptr %125, align 4, !tbaa !5
  %137 = load ptr, ptr @stderr, align 8, !tbaa !9
  %138 = load i32, ptr @test_count, align 4, !tbaa !5
  %139 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %140 = load i32, ptr %139, align 4, !tbaa !5
  %141 = tail call ptr @s2n_strerror(i32 noundef %140, ptr noundef nonnull @.str.4) #12
  %142 = load i32, ptr %139, align 4, !tbaa !5
  %143 = tail call ptr @s2n_strerror_debug(i32 noundef %142, ptr noundef nonnull @.str.4) #12
  %144 = load i32, ptr %125, align 4, !tbaa !5
  %145 = tail call ptr @strerror(i32 noundef %144) #12
  %146 = load i32, ptr %125, align 4, !tbaa !5
  %147 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %137, ptr noundef nonnull %.str.5.sink342, i32 noundef %138, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 45, ptr noundef %141, ptr noundef %143, ptr noundef %145, i32 noundef %146) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

148:                                              ; preds = %119
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4) #12
  %149 = tail call ptr @s2n_connection_new(i32 noundef 1) #12
  store ptr %149, ptr %4, align 8, !tbaa !9
  %150 = load i32, ptr @test_count, align 4, !tbaa !5
  %151 = add nsw i32 %150, 1
  store i32 %151, ptr @test_count, align 4, !tbaa !5
  %152 = icmp eq ptr %149, null
  br i1 %152, label %153, label %177

153:                                              ; preds = %148
  %154 = tail call ptr @__errno_location() #13
  %155 = load i32, ptr %154, align 4, !tbaa !5
  %156 = load ptr, ptr @stderr, align 8, !tbaa !9
  %157 = tail call i32 @s2n_print_stacktrace(ptr noundef %156) #12
  %158 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %159 = trunc nuw i8 %158 to i1
  br i1 %159, label %160, label %164

160:                                              ; preds = %153
  %161 = load ptr, ptr @stderr, align 8, !tbaa !9
  %162 = tail call i32 @fileno(ptr noundef %161) #12
  %163 = tail call i32 @isatty(i32 noundef %162) #12
  %.not302 = icmp eq i32 %163, 0
  br i1 %.not302, label %164, label %165

164:                                              ; preds = %160, %153
  br label %165

165:                                              ; preds = %160, %164
  %.str.5.sink353 = phi ptr [ @.str.5, %164 ], [ @.str.2, %160 ]
  store i32 %155, ptr %154, align 4, !tbaa !5
  %166 = load ptr, ptr @stderr, align 8, !tbaa !9
  %167 = load i32, ptr @test_count, align 4, !tbaa !5
  %168 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %169 = load i32, ptr %168, align 4, !tbaa !5
  %170 = tail call ptr @s2n_strerror(i32 noundef %169, ptr noundef nonnull @.str.4) #12
  %171 = load i32, ptr %168, align 4, !tbaa !5
  %172 = tail call ptr @s2n_strerror_debug(i32 noundef %171, ptr noundef nonnull @.str.4) #12
  %173 = load i32, ptr %154, align 4, !tbaa !5
  %174 = tail call ptr @strerror(i32 noundef %173) #12
  %175 = load i32, ptr %154, align 4, !tbaa !5
  %176 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %166, ptr noundef nonnull %.str.5.sink353, i32 noundef %167, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 49, ptr noundef %170, ptr noundef %172, ptr noundef %174, i32 noundef %175) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

177:                                              ; preds = %148
  %178 = add nsw i32 %150, 2
  store i32 %178, ptr @test_count, align 4, !tbaa !5
  %179 = tail call zeroext i1 %122(ptr noundef nonnull %149) #12
  br i1 %179, label %180, label %204

180:                                              ; preds = %177
  %181 = tail call ptr @__errno_location() #13
  %182 = load i32, ptr %181, align 4, !tbaa !5
  %183 = load ptr, ptr @stderr, align 8, !tbaa !9
  %184 = tail call i32 @s2n_print_stacktrace(ptr noundef %183) #12
  %185 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %186 = trunc nuw i8 %185 to i1
  br i1 %186, label %187, label %191

187:                                              ; preds = %180
  %188 = load ptr, ptr @stderr, align 8, !tbaa !9
  %189 = tail call i32 @fileno(ptr noundef %188) #12
  %190 = tail call i32 @isatty(i32 noundef %189) #12
  %.not301 = icmp eq i32 %190, 0
  br i1 %.not301, label %191, label %192

191:                                              ; preds = %187, %180
  br label %192

192:                                              ; preds = %187, %191
  %.str.5.sink364 = phi ptr [ @.str.5, %191 ], [ @.str.2, %187 ]
  store i32 %182, ptr %181, align 4, !tbaa !5
  %193 = load ptr, ptr @stderr, align 8, !tbaa !9
  %194 = load i32, ptr @test_count, align 4, !tbaa !5
  %195 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %196 = load i32, ptr %195, align 4, !tbaa !5
  %197 = tail call ptr @s2n_strerror(i32 noundef %196, ptr noundef nonnull @.str.4) #12
  %198 = load i32, ptr %195, align 4, !tbaa !5
  %199 = tail call ptr @s2n_strerror_debug(i32 noundef %198, ptr noundef nonnull @.str.4) #12
  %200 = load i32, ptr %181, align 4, !tbaa !5
  %201 = tail call ptr @strerror(i32 noundef %200) #12
  %202 = load i32, ptr %181, align 4, !tbaa !5
  %203 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %193, ptr noundef nonnull %.str.5.sink364, i32 noundef %194, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 50, ptr noundef %197, ptr noundef %199, ptr noundef %201, i32 noundef %202) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

204:                                              ; preds = %177
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #12
  %205 = tail call ptr @s2n_config_new() #12
  store ptr %205, ptr %5, align 8, !tbaa !9
  %206 = load i32, ptr @test_count, align 4, !tbaa !5
  %207 = add nsw i32 %206, 1
  store i32 %207, ptr @test_count, align 4, !tbaa !5
  %208 = icmp eq ptr %205, null
  br i1 %208, label %209, label %233

209:                                              ; preds = %204
  %210 = tail call ptr @__errno_location() #13
  %211 = load i32, ptr %210, align 4, !tbaa !5
  %212 = load ptr, ptr @stderr, align 8, !tbaa !9
  %213 = tail call i32 @s2n_print_stacktrace(ptr noundef %212) #12
  %214 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %215 = trunc nuw i8 %214 to i1
  br i1 %215, label %216, label %220

216:                                              ; preds = %209
  %217 = load ptr, ptr @stderr, align 8, !tbaa !9
  %218 = tail call i32 @fileno(ptr noundef %217) #12
  %219 = tail call i32 @isatty(i32 noundef %218) #12
  %.not300 = icmp eq i32 %219, 0
  br i1 %.not300, label %220, label %221

220:                                              ; preds = %216, %209
  br label %221

221:                                              ; preds = %216, %220
  %.str.5.sink375 = phi ptr [ @.str.5, %220 ], [ @.str.2, %216 ]
  store i32 %211, ptr %210, align 4, !tbaa !5
  %222 = load ptr, ptr @stderr, align 8, !tbaa !9
  %223 = load i32, ptr @test_count, align 4, !tbaa !5
  %224 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %225 = load i32, ptr %224, align 4, !tbaa !5
  %226 = tail call ptr @s2n_strerror(i32 noundef %225, ptr noundef nonnull @.str.4) #12
  %227 = load i32, ptr %224, align 4, !tbaa !5
  %228 = tail call ptr @s2n_strerror_debug(i32 noundef %227, ptr noundef nonnull @.str.4) #12
  %229 = load i32, ptr %210, align 4, !tbaa !5
  %230 = tail call ptr @strerror(i32 noundef %229) #12
  %231 = load i32, ptr %210, align 4, !tbaa !5
  %232 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %222, ptr noundef nonnull %.str.5.sink375, i32 noundef %223, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 54, ptr noundef %226, ptr noundef %228, ptr noundef %230, i32 noundef %231) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

233:                                              ; preds = %204
  %234 = add nsw i32 %206, 2
  store i32 %234, ptr @test_count, align 4, !tbaa !5
  %235 = tail call i32 @s2n_connection_set_config(ptr noundef nonnull %149, ptr noundef nonnull %205) #12
  %236 = icmp eq i32 %235, -1
  br i1 %236, label %237, label %261

237:                                              ; preds = %233
  %238 = tail call ptr @__errno_location() #13
  %239 = load i32, ptr %238, align 4, !tbaa !5
  %240 = load ptr, ptr @stderr, align 8, !tbaa !9
  %241 = tail call i32 @s2n_print_stacktrace(ptr noundef %240) #12
  %242 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %243 = trunc nuw i8 %242 to i1
  br i1 %243, label %244, label %248

244:                                              ; preds = %237
  %245 = load ptr, ptr @stderr, align 8, !tbaa !9
  %246 = tail call i32 @fileno(ptr noundef %245) #12
  %247 = tail call i32 @isatty(i32 noundef %246) #12
  %.not299 = icmp eq i32 %247, 0
  br i1 %.not299, label %248, label %249

248:                                              ; preds = %244, %237
  br label %249

249:                                              ; preds = %244, %248
  %.str.5.sink386 = phi ptr [ @.str.5, %248 ], [ @.str.2, %244 ]
  store i32 %239, ptr %238, align 4, !tbaa !5
  %250 = load ptr, ptr @stderr, align 8, !tbaa !9
  %251 = load i32, ptr @test_count, align 4, !tbaa !5
  %252 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %253 = load i32, ptr %252, align 4, !tbaa !5
  %254 = tail call ptr @s2n_strerror(i32 noundef %253, ptr noundef nonnull @.str.4) #12
  %255 = load i32, ptr %252, align 4, !tbaa !5
  %256 = tail call ptr @s2n_strerror_debug(i32 noundef %255, ptr noundef nonnull @.str.4) #12
  %257 = load i32, ptr %238, align 4, !tbaa !5
  %258 = tail call ptr @strerror(i32 noundef %257) #12
  %259 = load i32, ptr %238, align 4, !tbaa !5
  %260 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %250, ptr noundef nonnull %.str.5.sink386, i32 noundef %251, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 55, ptr noundef %254, ptr noundef %256, ptr noundef %258, i32 noundef %259) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

261:                                              ; preds = %233
  %262 = load i32, ptr @test_count, align 4, !tbaa !5
  %263 = add nsw i32 %262, 1
  store i32 %263, ptr @test_count, align 4, !tbaa !5
  %264 = tail call zeroext i1 %122(ptr noundef nonnull %149) #12
  br i1 %264, label %265, label %289

265:                                              ; preds = %261
  %266 = tail call ptr @__errno_location() #13
  %267 = load i32, ptr %266, align 4, !tbaa !5
  %268 = load ptr, ptr @stderr, align 8, !tbaa !9
  %269 = tail call i32 @s2n_print_stacktrace(ptr noundef %268) #12
  %270 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %271 = trunc nuw i8 %270 to i1
  br i1 %271, label %272, label %276

272:                                              ; preds = %265
  %273 = load ptr, ptr @stderr, align 8, !tbaa !9
  %274 = tail call i32 @fileno(ptr noundef %273) #12
  %275 = tail call i32 @isatty(i32 noundef %274) #12
  %.not298 = icmp eq i32 %275, 0
  br i1 %.not298, label %276, label %277

276:                                              ; preds = %272, %265
  br label %277

277:                                              ; preds = %272, %276
  %.str.5.sink397 = phi ptr [ @.str.5, %276 ], [ @.str.2, %272 ]
  store i32 %267, ptr %266, align 4, !tbaa !5
  %278 = load ptr, ptr @stderr, align 8, !tbaa !9
  %279 = load i32, ptr @test_count, align 4, !tbaa !5
  %280 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %281 = load i32, ptr %280, align 4, !tbaa !5
  %282 = tail call ptr @s2n_strerror(i32 noundef %281, ptr noundef nonnull @.str.4) #12
  %283 = load i32, ptr %280, align 4, !tbaa !5
  %284 = tail call ptr @s2n_strerror_debug(i32 noundef %283, ptr noundef nonnull @.str.4) #12
  %285 = load i32, ptr %266, align 4, !tbaa !5
  %286 = tail call ptr @strerror(i32 noundef %285) #12
  %287 = load i32, ptr %266, align 4, !tbaa !5
  %288 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %278, ptr noundef nonnull %.str.5.sink397, i32 noundef %279, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 56, ptr noundef %282, ptr noundef %284, ptr noundef %286, i32 noundef %287) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

289:                                              ; preds = %261
  %290 = load i32, ptr @test_count, align 4, !tbaa !5
  %291 = add nsw i32 %290, 1
  store i32 %291, ptr @test_count, align 4, !tbaa !5
  %292 = call i32 @s2n_config_set_protocol_preferences(ptr noundef nonnull %205, ptr noundef nonnull %3, i32 noundef 3) #12
  %293 = icmp eq i32 %292, -1
  br i1 %293, label %294, label %318

294:                                              ; preds = %289
  %295 = tail call ptr @__errno_location() #13
  %296 = load i32, ptr %295, align 4, !tbaa !5
  %297 = load ptr, ptr @stderr, align 8, !tbaa !9
  %298 = call i32 @s2n_print_stacktrace(ptr noundef %297) #12
  %299 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %300 = trunc nuw i8 %299 to i1
  br i1 %300, label %301, label %305

301:                                              ; preds = %294
  %302 = load ptr, ptr @stderr, align 8, !tbaa !9
  %303 = call i32 @fileno(ptr noundef %302) #12
  %304 = call i32 @isatty(i32 noundef %303) #12
  %.not297 = icmp eq i32 %304, 0
  br i1 %.not297, label %305, label %306

305:                                              ; preds = %301, %294
  br label %306

306:                                              ; preds = %301, %305
  %.str.5.sink408 = phi ptr [ @.str.5, %305 ], [ @.str.2, %301 ]
  store i32 %296, ptr %295, align 4, !tbaa !5
  %307 = load ptr, ptr @stderr, align 8, !tbaa !9
  %308 = load i32, ptr @test_count, align 4, !tbaa !5
  %309 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %310 = load i32, ptr %309, align 4, !tbaa !5
  %311 = call ptr @s2n_strerror(i32 noundef %310, ptr noundef nonnull @.str.4) #12
  %312 = load i32, ptr %309, align 4, !tbaa !5
  %313 = call ptr @s2n_strerror_debug(i32 noundef %312, ptr noundef nonnull @.str.4) #12
  %314 = load i32, ptr %295, align 4, !tbaa !5
  %315 = call ptr @strerror(i32 noundef %314) #12
  %316 = load i32, ptr %295, align 4, !tbaa !5
  %317 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %307, ptr noundef nonnull %.str.5.sink408, i32 noundef %308, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 59, ptr noundef %311, ptr noundef %313, ptr noundef %315, i32 noundef %316) #14
  call void @exit(i32 noundef 1) #15
  unreachable

318:                                              ; preds = %289
  %319 = load i32, ptr @test_count, align 4, !tbaa !5
  %320 = add nsw i32 %319, 1
  store i32 %320, ptr @test_count, align 4, !tbaa !5
  %321 = load ptr, ptr %4, align 8, !tbaa !9
  %322 = call zeroext i1 %122(ptr noundef %321) #12
  br i1 %322, label %323, label %347

323:                                              ; preds = %318
  %324 = tail call ptr @__errno_location() #13
  %325 = load i32, ptr %324, align 4, !tbaa !5
  %326 = load ptr, ptr @stderr, align 8, !tbaa !9
  %327 = call i32 @s2n_print_stacktrace(ptr noundef %326) #12
  %328 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %329 = trunc nuw i8 %328 to i1
  br i1 %329, label %330, label %334

330:                                              ; preds = %323
  %331 = load ptr, ptr @stderr, align 8, !tbaa !9
  %332 = call i32 @fileno(ptr noundef %331) #12
  %333 = call i32 @isatty(i32 noundef %332) #12
  %.not296 = icmp eq i32 %333, 0
  br i1 %.not296, label %334, label %335

334:                                              ; preds = %330, %323
  br label %335

335:                                              ; preds = %330, %334
  %.str.5.sink419 = phi ptr [ @.str.5, %334 ], [ @.str.2, %330 ]
  store i32 %325, ptr %324, align 4, !tbaa !5
  %336 = load ptr, ptr @stderr, align 8, !tbaa !9
  %337 = load i32, ptr @test_count, align 4, !tbaa !5
  %338 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %339 = load i32, ptr %338, align 4, !tbaa !5
  %340 = call ptr @s2n_strerror(i32 noundef %339, ptr noundef nonnull @.str.4) #12
  %341 = load i32, ptr %338, align 4, !tbaa !5
  %342 = call ptr @s2n_strerror_debug(i32 noundef %341, ptr noundef nonnull @.str.4) #12
  %343 = load i32, ptr %324, align 4, !tbaa !5
  %344 = call ptr @strerror(i32 noundef %343) #12
  %345 = load i32, ptr %324, align 4, !tbaa !5
  %346 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %336, ptr noundef nonnull %.str.5.sink419, i32 noundef %337, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 60, ptr noundef %340, ptr noundef %342, ptr noundef %344, i32 noundef %345) #14
  call void @exit(i32 noundef 1) #15
  unreachable

347:                                              ; preds = %318
  %348 = load i32, ptr @test_count, align 4, !tbaa !5
  %349 = add nsw i32 %348, 1
  store i32 %349, ptr @test_count, align 4, !tbaa !5
  %350 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_client_alpn_extension, i64 24), align 8, !tbaa !15
  %351 = load ptr, ptr %4, align 8, !tbaa !9
  %352 = call zeroext i1 %350(ptr noundef %351) #12
  br i1 %352, label %377, label %353

353:                                              ; preds = %347
  %354 = tail call ptr @__errno_location() #13
  %355 = load i32, ptr %354, align 4, !tbaa !5
  %356 = load ptr, ptr @stderr, align 8, !tbaa !9
  %357 = call i32 @s2n_print_stacktrace(ptr noundef %356) #12
  %358 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %359 = trunc nuw i8 %358 to i1
  br i1 %359, label %360, label %364

360:                                              ; preds = %353
  %361 = load ptr, ptr @stderr, align 8, !tbaa !9
  %362 = call i32 @fileno(ptr noundef %361) #12
  %363 = call i32 @isatty(i32 noundef %362) #12
  %.not = icmp eq i32 %363, 0
  br i1 %.not, label %364, label %365

364:                                              ; preds = %360, %353
  br label %365

365:                                              ; preds = %360, %364
  %.str.5.sink430 = phi ptr [ @.str.5, %364 ], [ @.str.2, %360 ]
  store i32 %355, ptr %354, align 4, !tbaa !5
  %366 = load ptr, ptr @stderr, align 8, !tbaa !9
  %367 = load i32, ptr @test_count, align 4, !tbaa !5
  %368 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %369 = load i32, ptr %368, align 4, !tbaa !5
  %370 = call ptr @s2n_strerror(i32 noundef %369, ptr noundef nonnull @.str.4) #12
  %371 = load i32, ptr %368, align 4, !tbaa !5
  %372 = call ptr @s2n_strerror_debug(i32 noundef %371, ptr noundef nonnull @.str.4) #12
  %373 = load i32, ptr %354, align 4, !tbaa !5
  %374 = call ptr @strerror(i32 noundef %373) #12
  %375 = load i32, ptr %354, align 4, !tbaa !5
  %376 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %366, ptr noundef nonnull %.str.5.sink430, i32 noundef %367, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 61, ptr noundef %370, ptr noundef %372, ptr noundef %374, i32 noundef %375) #14
  call void @exit(i32 noundef 1) #15
  unreachable

377:                                              ; preds = %347
  %378 = load ptr, ptr %4, align 8, !tbaa !9
  %379 = getelementptr inbounds i8, ptr %378, i64 8
  %380 = load ptr, ptr %379, align 8, !tbaa !18
  %381 = load i32, ptr %380, align 8
  %382 = or i32 %381, 8192
  store i32 %382, ptr %380, align 8
  %383 = load i32, ptr @test_count, align 4, !tbaa !5
  %384 = add nsw i32 %383, 1
  store i32 %384, ptr @test_count, align 4, !tbaa !5
  %385 = load ptr, ptr %4, align 8, !tbaa !9
  %386 = call zeroext i1 %122(ptr noundef %385) #12
  br i1 %386, label %411, label %387

387:                                              ; preds = %377
  %388 = tail call ptr @__errno_location() #13
  %389 = load i32, ptr %388, align 4, !tbaa !5
  %390 = load ptr, ptr @stderr, align 8, !tbaa !9
  %391 = call i32 @s2n_print_stacktrace(ptr noundef %390) #12
  %392 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %393 = trunc nuw i8 %392 to i1
  br i1 %393, label %394, label %398

394:                                              ; preds = %387
  %395 = load ptr, ptr @stderr, align 8, !tbaa !9
  %396 = call i32 @fileno(ptr noundef %395) #12
  %397 = call i32 @isatty(i32 noundef %396) #12
  %.not203 = icmp eq i32 %397, 0
  br i1 %.not203, label %398, label %399

398:                                              ; preds = %394, %387
  br label %399

399:                                              ; preds = %394, %398
  %.str.5.sink441 = phi ptr [ @.str.5, %398 ], [ @.str.2, %394 ]
  store i32 %389, ptr %388, align 4, !tbaa !5
  %400 = load ptr, ptr @stderr, align 8, !tbaa !9
  %401 = load i32, ptr @test_count, align 4, !tbaa !5
  %402 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %403 = load i32, ptr %402, align 4, !tbaa !5
  %404 = call ptr @s2n_strerror(i32 noundef %403, ptr noundef nonnull @.str.4) #12
  %405 = load i32, ptr %402, align 4, !tbaa !5
  %406 = call ptr @s2n_strerror_debug(i32 noundef %405, ptr noundef nonnull @.str.4) #12
  %407 = load i32, ptr %388, align 4, !tbaa !5
  %408 = call ptr @strerror(i32 noundef %407) #12
  %409 = load i32, ptr %388, align 4, !tbaa !5
  %410 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %400, ptr noundef nonnull %.str.5.sink441, i32 noundef %401, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 65, ptr noundef %404, ptr noundef %406, ptr noundef %408, i32 noundef %409) #14
  call void @exit(i32 noundef 1) #15
  unreachable

411:                                              ; preds = %377
  %412 = load i32, ptr @test_count, align 4, !tbaa !5
  %413 = add nsw i32 %412, 1
  store i32 %413, ptr @test_count, align 4, !tbaa !5
  %414 = load ptr, ptr %4, align 8, !tbaa !9
  %415 = call zeroext i1 %350(ptr noundef %414) #12
  br i1 %415, label %440, label %416

416:                                              ; preds = %411
  %417 = tail call ptr @__errno_location() #13
  %418 = load i32, ptr %417, align 4, !tbaa !5
  %419 = load ptr, ptr @stderr, align 8, !tbaa !9
  %420 = call i32 @s2n_print_stacktrace(ptr noundef %419) #12
  %421 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %422 = trunc nuw i8 %421 to i1
  br i1 %422, label %423, label %427

423:                                              ; preds = %416
  %424 = load ptr, ptr @stderr, align 8, !tbaa !9
  %425 = call i32 @fileno(ptr noundef %424) #12
  %426 = call i32 @isatty(i32 noundef %425) #12
  %.not204 = icmp eq i32 %426, 0
  br i1 %.not204, label %427, label %428

427:                                              ; preds = %423, %416
  br label %428

428:                                              ; preds = %423, %427
  %.str.5.sink452 = phi ptr [ @.str.5, %427 ], [ @.str.2, %423 ]
  store i32 %418, ptr %417, align 4, !tbaa !5
  %429 = load ptr, ptr @stderr, align 8, !tbaa !9
  %430 = load i32, ptr @test_count, align 4, !tbaa !5
  %431 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %432 = load i32, ptr %431, align 4, !tbaa !5
  %433 = call ptr @s2n_strerror(i32 noundef %432, ptr noundef nonnull @.str.4) #12
  %434 = load i32, ptr %431, align 4, !tbaa !5
  %435 = call ptr @s2n_strerror_debug(i32 noundef %434, ptr noundef nonnull @.str.4) #12
  %436 = load i32, ptr %417, align 4, !tbaa !5
  %437 = call ptr @strerror(i32 noundef %436) #12
  %438 = load i32, ptr %417, align 4, !tbaa !5
  %439 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %429, ptr noundef nonnull %.str.5.sink452, i32 noundef %430, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 66, ptr noundef %433, ptr noundef %435, ptr noundef %437, i32 noundef %438) #14
  call void @exit(i32 noundef 1) #15
  unreachable

440:                                              ; preds = %411
  %441 = load ptr, ptr %4, align 8, !tbaa !9
  %442 = getelementptr inbounds i8, ptr %441, i64 2200
  %443 = load i8, ptr %442, align 8
  %444 = or i8 %443, 8
  store i8 %444, ptr %442, align 8
  %445 = load i32, ptr @test_count, align 4, !tbaa !5
  %446 = add nsw i32 %445, 1
  store i32 %446, ptr @test_count, align 4, !tbaa !5
  %447 = call zeroext i1 %122(ptr noundef %441) #12
  br i1 %447, label %448, label %472

448:                                              ; preds = %440
  %449 = tail call ptr @__errno_location() #13
  %450 = load i32, ptr %449, align 4, !tbaa !5
  %451 = load ptr, ptr @stderr, align 8, !tbaa !9
  %452 = call i32 @s2n_print_stacktrace(ptr noundef %451) #12
  %453 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %454 = trunc nuw i8 %453 to i1
  br i1 %454, label %455, label %459

455:                                              ; preds = %448
  %456 = load ptr, ptr @stderr, align 8, !tbaa !9
  %457 = call i32 @fileno(ptr noundef %456) #12
  %458 = call i32 @isatty(i32 noundef %457) #12
  %.not295 = icmp eq i32 %458, 0
  br i1 %.not295, label %459, label %460

459:                                              ; preds = %455, %448
  br label %460

460:                                              ; preds = %455, %459
  %.str.5.sink463 = phi ptr [ @.str.5, %459 ], [ @.str.2, %455 ]
  store i32 %450, ptr %449, align 4, !tbaa !5
  %461 = load ptr, ptr @stderr, align 8, !tbaa !9
  %462 = load i32, ptr @test_count, align 4, !tbaa !5
  %463 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %464 = load i32, ptr %463, align 4, !tbaa !5
  %465 = call ptr @s2n_strerror(i32 noundef %464, ptr noundef nonnull @.str.4) #12
  %466 = load i32, ptr %463, align 4, !tbaa !5
  %467 = call ptr @s2n_strerror_debug(i32 noundef %466, ptr noundef nonnull @.str.4) #12
  %468 = load i32, ptr %449, align 4, !tbaa !5
  %469 = call ptr @strerror(i32 noundef %468) #12
  %470 = load i32, ptr %449, align 4, !tbaa !5
  %471 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %461, ptr noundef nonnull %.str.5.sink463, i32 noundef %462, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 76, ptr noundef %465, ptr noundef %467, ptr noundef %469, i32 noundef %470) #14
  call void @exit(i32 noundef 1) #15
  unreachable

472:                                              ; preds = %440
  %473 = load i32, ptr @test_count, align 4, !tbaa !5
  %474 = add nsw i32 %473, 1
  store i32 %474, ptr @test_count, align 4, !tbaa !5
  %475 = load ptr, ptr %4, align 8, !tbaa !9
  %476 = call zeroext i1 %350(ptr noundef %475) #12
  br i1 %476, label %501, label %477

477:                                              ; preds = %472
  %478 = tail call ptr @__errno_location() #13
  %479 = load i32, ptr %478, align 4, !tbaa !5
  %480 = load ptr, ptr @stderr, align 8, !tbaa !9
  %481 = call i32 @s2n_print_stacktrace(ptr noundef %480) #12
  %482 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %483 = trunc nuw i8 %482 to i1
  br i1 %483, label %484, label %488

484:                                              ; preds = %477
  %485 = load ptr, ptr @stderr, align 8, !tbaa !9
  %486 = call i32 @fileno(ptr noundef %485) #12
  %487 = call i32 @isatty(i32 noundef %486) #12
  %.not205 = icmp eq i32 %487, 0
  br i1 %.not205, label %488, label %489

488:                                              ; preds = %484, %477
  br label %489

489:                                              ; preds = %484, %488
  %.str.5.sink474 = phi ptr [ @.str.5, %488 ], [ @.str.2, %484 ]
  store i32 %479, ptr %478, align 4, !tbaa !5
  %490 = load ptr, ptr @stderr, align 8, !tbaa !9
  %491 = load i32, ptr @test_count, align 4, !tbaa !5
  %492 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %493 = load i32, ptr %492, align 4, !tbaa !5
  %494 = call ptr @s2n_strerror(i32 noundef %493, ptr noundef nonnull @.str.4) #12
  %495 = load i32, ptr %492, align 4, !tbaa !5
  %496 = call ptr @s2n_strerror_debug(i32 noundef %495, ptr noundef nonnull @.str.4) #12
  %497 = load i32, ptr %478, align 4, !tbaa !5
  %498 = call ptr @strerror(i32 noundef %497) #12
  %499 = load i32, ptr %478, align 4, !tbaa !5
  %500 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %490, ptr noundef nonnull %.str.5.sink474, i32 noundef %491, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 77, ptr noundef %494, ptr noundef %496, ptr noundef %498, i32 noundef %499) #14
  call void @exit(i32 noundef 1) #15
  unreachable

501:                                              ; preds = %472
  %502 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %5) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #12
  %503 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %4) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #12
  %504 = call ptr @s2n_connection_new(i32 noundef 0) #12
  store ptr %504, ptr %6, align 8, !tbaa !9
  %505 = load i32, ptr @test_count, align 4, !tbaa !5
  %506 = add nsw i32 %505, 1
  store i32 %506, ptr @test_count, align 4, !tbaa !5
  %507 = icmp eq ptr %504, null
  br i1 %507, label %508, label %532

508:                                              ; preds = %501
  %509 = tail call ptr @__errno_location() #13
  %510 = load i32, ptr %509, align 4, !tbaa !5
  %511 = load ptr, ptr @stderr, align 8, !tbaa !9
  %512 = call i32 @s2n_print_stacktrace(ptr noundef %511) #12
  %513 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %514 = trunc nuw i8 %513 to i1
  br i1 %514, label %515, label %519

515:                                              ; preds = %508
  %516 = load ptr, ptr @stderr, align 8, !tbaa !9
  %517 = call i32 @fileno(ptr noundef %516) #12
  %518 = call i32 @isatty(i32 noundef %517) #12
  %.not294 = icmp eq i32 %518, 0
  br i1 %.not294, label %519, label %520

519:                                              ; preds = %515, %508
  br label %520

520:                                              ; preds = %515, %519
  %.str.5.sink485 = phi ptr [ @.str.5, %519 ], [ @.str.2, %515 ]
  store i32 %510, ptr %509, align 4, !tbaa !5
  %521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %522 = load i32, ptr @test_count, align 4, !tbaa !5
  %523 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %524 = load i32, ptr %523, align 4, !tbaa !5
  %525 = call ptr @s2n_strerror(i32 noundef %524, ptr noundef nonnull @.str.4) #12
  %526 = load i32, ptr %523, align 4, !tbaa !5
  %527 = call ptr @s2n_strerror_debug(i32 noundef %526, ptr noundef nonnull @.str.4) #12
  %528 = load i32, ptr %509, align 4, !tbaa !5
  %529 = call ptr @strerror(i32 noundef %528) #12
  %530 = load i32, ptr %509, align 4, !tbaa !5
  %531 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %521, ptr noundef nonnull %.str.5.sink485, i32 noundef %522, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 83, ptr noundef %525, ptr noundef %527, ptr noundef %529, i32 noundef %530) #14
  call void @exit(i32 noundef 1) #15
  unreachable

532:                                              ; preds = %501
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #12
  %533 = call ptr @s2n_config_new() #12
  store ptr %533, ptr %7, align 8, !tbaa !9
  %534 = load i32, ptr @test_count, align 4, !tbaa !5
  %535 = add nsw i32 %534, 1
  store i32 %535, ptr @test_count, align 4, !tbaa !5
  %536 = icmp eq ptr %533, null
  br i1 %536, label %537, label %561

537:                                              ; preds = %532
  %538 = tail call ptr @__errno_location() #13
  %539 = load i32, ptr %538, align 4, !tbaa !5
  %540 = load ptr, ptr @stderr, align 8, !tbaa !9
  %541 = call i32 @s2n_print_stacktrace(ptr noundef %540) #12
  %542 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %543 = trunc nuw i8 %542 to i1
  br i1 %543, label %544, label %548

544:                                              ; preds = %537
  %545 = load ptr, ptr @stderr, align 8, !tbaa !9
  %546 = call i32 @fileno(ptr noundef %545) #12
  %547 = call i32 @isatty(i32 noundef %546) #12
  %.not293 = icmp eq i32 %547, 0
  br i1 %.not293, label %548, label %549

548:                                              ; preds = %544, %537
  br label %549

549:                                              ; preds = %544, %548
  %.str.5.sink496 = phi ptr [ @.str.5, %548 ], [ @.str.2, %544 ]
  store i32 %539, ptr %538, align 4, !tbaa !5
  %550 = load ptr, ptr @stderr, align 8, !tbaa !9
  %551 = load i32, ptr @test_count, align 4, !tbaa !5
  %552 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %553 = load i32, ptr %552, align 4, !tbaa !5
  %554 = call ptr @s2n_strerror(i32 noundef %553, ptr noundef nonnull @.str.4) #12
  %555 = load i32, ptr %552, align 4, !tbaa !5
  %556 = call ptr @s2n_strerror_debug(i32 noundef %555, ptr noundef nonnull @.str.4) #12
  %557 = load i32, ptr %538, align 4, !tbaa !5
  %558 = call ptr @strerror(i32 noundef %557) #12
  %559 = load i32, ptr %538, align 4, !tbaa !5
  %560 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %550, ptr noundef nonnull %.str.5.sink496, i32 noundef %551, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 85, ptr noundef %554, ptr noundef %556, ptr noundef %558, i32 noundef %559) #14
  call void @exit(i32 noundef 1) #15
  unreachable

561:                                              ; preds = %532
  %562 = add nsw i32 %534, 2
  store i32 %562, ptr @test_count, align 4, !tbaa !5
  %563 = call i32 @s2n_config_set_protocol_preferences(ptr noundef nonnull %533, ptr noundef nonnull %3, i32 noundef 3) #12
  %564 = icmp eq i32 %563, -1
  br i1 %564, label %565, label %589

565:                                              ; preds = %561
  %566 = tail call ptr @__errno_location() #13
  %567 = load i32, ptr %566, align 4, !tbaa !5
  %568 = load ptr, ptr @stderr, align 8, !tbaa !9
  %569 = call i32 @s2n_print_stacktrace(ptr noundef %568) #12
  %570 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %571 = trunc nuw i8 %570 to i1
  br i1 %571, label %572, label %576

572:                                              ; preds = %565
  %573 = load ptr, ptr @stderr, align 8, !tbaa !9
  %574 = call i32 @fileno(ptr noundef %573) #12
  %575 = call i32 @isatty(i32 noundef %574) #12
  %.not292 = icmp eq i32 %575, 0
  br i1 %.not292, label %576, label %577

576:                                              ; preds = %572, %565
  br label %577

577:                                              ; preds = %572, %576
  %.str.5.sink507 = phi ptr [ @.str.5, %576 ], [ @.str.2, %572 ]
  store i32 %567, ptr %566, align 4, !tbaa !5
  %578 = load ptr, ptr @stderr, align 8, !tbaa !9
  %579 = load i32, ptr @test_count, align 4, !tbaa !5
  %580 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %581 = load i32, ptr %580, align 4, !tbaa !5
  %582 = call ptr @s2n_strerror(i32 noundef %581, ptr noundef nonnull @.str.4) #12
  %583 = load i32, ptr %580, align 4, !tbaa !5
  %584 = call ptr @s2n_strerror_debug(i32 noundef %583, ptr noundef nonnull @.str.4) #12
  %585 = load i32, ptr %566, align 4, !tbaa !5
  %586 = call ptr @strerror(i32 noundef %585) #12
  %587 = load i32, ptr %566, align 4, !tbaa !5
  %588 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %578, ptr noundef nonnull %.str.5.sink507, i32 noundef %579, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 86, ptr noundef %582, ptr noundef %584, ptr noundef %586, i32 noundef %587) #14
  call void @exit(i32 noundef 1) #15
  unreachable

589:                                              ; preds = %561
  %590 = load i32, ptr @test_count, align 4, !tbaa !5
  %591 = add nsw i32 %590, 1
  store i32 %591, ptr @test_count, align 4, !tbaa !5
  %592 = load ptr, ptr %6, align 8, !tbaa !9
  %593 = load ptr, ptr %7, align 8, !tbaa !9
  %594 = call i32 @s2n_connection_set_config(ptr noundef %592, ptr noundef %593) #12
  %595 = icmp eq i32 %594, -1
  br i1 %595, label %596, label %620

596:                                              ; preds = %589
  %597 = tail call ptr @__errno_location() #13
  %598 = load i32, ptr %597, align 4, !tbaa !5
  %599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %600 = call i32 @s2n_print_stacktrace(ptr noundef %599) #12
  %601 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %602 = trunc nuw i8 %601 to i1
  br i1 %602, label %603, label %607

603:                                              ; preds = %596
  %604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %605 = call i32 @fileno(ptr noundef %604) #12
  %606 = call i32 @isatty(i32 noundef %605) #12
  %.not291 = icmp eq i32 %606, 0
  br i1 %.not291, label %607, label %608

607:                                              ; preds = %603, %596
  br label %608

608:                                              ; preds = %603, %607
  %.str.5.sink518 = phi ptr [ @.str.5, %607 ], [ @.str.2, %603 ]
  store i32 %598, ptr %597, align 4, !tbaa !5
  %609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %610 = load i32, ptr @test_count, align 4, !tbaa !5
  %611 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %612 = load i32, ptr %611, align 4, !tbaa !5
  %613 = call ptr @s2n_strerror(i32 noundef %612, ptr noundef nonnull @.str.4) #12
  %614 = load i32, ptr %611, align 4, !tbaa !5
  %615 = call ptr @s2n_strerror_debug(i32 noundef %614, ptr noundef nonnull @.str.4) #12
  %616 = load i32, ptr %597, align 4, !tbaa !5
  %617 = call ptr @strerror(i32 noundef %616) #12
  %618 = load i32, ptr %597, align 4, !tbaa !5
  %619 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %609, ptr noundef nonnull %.str.5.sink518, i32 noundef %610, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 87, ptr noundef %613, ptr noundef %615, ptr noundef %617, i32 noundef %618) #14
  call void @exit(i32 noundef 1) #15
  unreachable

620:                                              ; preds = %589
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %8) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %8, i8 0, i64 40, i1 false)
  %621 = load i32, ptr @test_count, align 4, !tbaa !5
  %622 = add nsw i32 %621, 1
  store i32 %622, ptr @test_count, align 4, !tbaa !5
  %623 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %8, i32 noundef 0) #12
  %624 = icmp eq i32 %623, -1
  br i1 %624, label %625, label %649

625:                                              ; preds = %620
  %626 = tail call ptr @__errno_location() #13
  %627 = load i32, ptr %626, align 4, !tbaa !5
  %628 = load ptr, ptr @stderr, align 8, !tbaa !9
  %629 = call i32 @s2n_print_stacktrace(ptr noundef %628) #12
  %630 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %631 = trunc nuw i8 %630 to i1
  br i1 %631, label %632, label %636

632:                                              ; preds = %625
  %633 = load ptr, ptr @stderr, align 8, !tbaa !9
  %634 = call i32 @fileno(ptr noundef %633) #12
  %635 = call i32 @isatty(i32 noundef %634) #12
  %.not290 = icmp eq i32 %635, 0
  br i1 %.not290, label %636, label %637

636:                                              ; preds = %632, %625
  br label %637

637:                                              ; preds = %632, %636
  %.str.5.sink529 = phi ptr [ @.str.5, %636 ], [ @.str.2, %632 ]
  store i32 %627, ptr %626, align 4, !tbaa !5
  %638 = load ptr, ptr @stderr, align 8, !tbaa !9
  %639 = load i32, ptr @test_count, align 4, !tbaa !5
  %640 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %641 = load i32, ptr %640, align 4, !tbaa !5
  %642 = call ptr @s2n_strerror(i32 noundef %641, ptr noundef nonnull @.str.4) #12
  %643 = load i32, ptr %640, align 4, !tbaa !5
  %644 = call ptr @s2n_strerror_debug(i32 noundef %643, ptr noundef nonnull @.str.4) #12
  %645 = load i32, ptr %626, align 4, !tbaa !5
  %646 = call ptr @strerror(i32 noundef %645) #12
  %647 = load i32, ptr %626, align 4, !tbaa !5
  %648 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %638, ptr noundef nonnull %.str.5.sink529, i32 noundef %639, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 90, ptr noundef %642, ptr noundef %644, ptr noundef %646, i32 noundef %647) #14
  call void @exit(i32 noundef 1) #15
  unreachable

649:                                              ; preds = %620
  %650 = load i32, ptr @test_count, align 4, !tbaa !5
  %651 = add nsw i32 %650, 1
  store i32 %651, ptr @test_count, align 4, !tbaa !5
  %652 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_client_npn_extension, i64 16), align 8, !tbaa !44
  %653 = load ptr, ptr %6, align 8, !tbaa !9
  %654 = call i32 %652(ptr noundef %653, ptr noundef nonnull %8) #12
  %655 = icmp eq i32 %654, -1
  br i1 %655, label %656, label %680

656:                                              ; preds = %649
  %657 = tail call ptr @__errno_location() #13
  %658 = load i32, ptr %657, align 4, !tbaa !5
  %659 = load ptr, ptr @stderr, align 8, !tbaa !9
  %660 = call i32 @s2n_print_stacktrace(ptr noundef %659) #12
  %661 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %662 = trunc nuw i8 %661 to i1
  br i1 %662, label %663, label %667

663:                                              ; preds = %656
  %664 = load ptr, ptr @stderr, align 8, !tbaa !9
  %665 = call i32 @fileno(ptr noundef %664) #12
  %666 = call i32 @isatty(i32 noundef %665) #12
  %.not289 = icmp eq i32 %666, 0
  br i1 %.not289, label %667, label %668

667:                                              ; preds = %663, %656
  br label %668

668:                                              ; preds = %663, %667
  %.str.5.sink540 = phi ptr [ @.str.5, %667 ], [ @.str.2, %663 ]
  store i32 %658, ptr %657, align 4, !tbaa !5
  %669 = load ptr, ptr @stderr, align 8, !tbaa !9
  %670 = load i32, ptr @test_count, align 4, !tbaa !5
  %671 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %672 = load i32, ptr %671, align 4, !tbaa !5
  %673 = call ptr @s2n_strerror(i32 noundef %672, ptr noundef nonnull @.str.4) #12
  %674 = load i32, ptr %671, align 4, !tbaa !5
  %675 = call ptr @s2n_strerror_debug(i32 noundef %674, ptr noundef nonnull @.str.4) #12
  %676 = load i32, ptr %657, align 4, !tbaa !5
  %677 = call ptr @strerror(i32 noundef %676) #12
  %678 = load i32, ptr %657, align 4, !tbaa !5
  %679 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %669, ptr noundef nonnull %.str.5.sink540, i32 noundef %670, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 93, ptr noundef %673, ptr noundef %675, ptr noundef %677, i32 noundef %678) #14
  call void @exit(i32 noundef 1) #15
  unreachable

680:                                              ; preds = %649
  %681 = load i32, ptr @test_count, align 4, !tbaa !5
  %682 = add nsw i32 %681, 1
  store i32 %682, ptr @test_count, align 4, !tbaa !5
  %683 = load ptr, ptr %6, align 8, !tbaa !9
  %684 = load i32, ptr %683, align 8
  %685 = and i32 %684, 131072
  %.not206 = icmp eq i32 %685, 0
  br i1 %.not206, label %710, label %686

686:                                              ; preds = %680
  %687 = tail call ptr @__errno_location() #13
  %688 = load i32, ptr %687, align 4, !tbaa !5
  %689 = load ptr, ptr @stderr, align 8, !tbaa !9
  %690 = call i32 @s2n_print_stacktrace(ptr noundef %689) #12
  %691 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %692 = trunc nuw i8 %691 to i1
  br i1 %692, label %693, label %697

693:                                              ; preds = %686
  %694 = load ptr, ptr @stderr, align 8, !tbaa !9
  %695 = call i32 @fileno(ptr noundef %694) #12
  %696 = call i32 @isatty(i32 noundef %695) #12
  %.not288 = icmp eq i32 %696, 0
  br i1 %.not288, label %697, label %698

697:                                              ; preds = %693, %686
  br label %698

698:                                              ; preds = %693, %697
  %.str.5.sink551 = phi ptr [ @.str.5, %697 ], [ @.str.2, %693 ]
  store i32 %688, ptr %687, align 4, !tbaa !5
  %699 = load ptr, ptr @stderr, align 8, !tbaa !9
  %700 = load i32, ptr @test_count, align 4, !tbaa !5
  %701 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %702 = load i32, ptr %701, align 4, !tbaa !5
  %703 = call ptr @s2n_strerror(i32 noundef %702, ptr noundef nonnull @.str.4) #12
  %704 = load i32, ptr %701, align 4, !tbaa !5
  %705 = call ptr @s2n_strerror_debug(i32 noundef %704, ptr noundef nonnull @.str.4) #12
  %706 = load i32, ptr %687, align 4, !tbaa !5
  %707 = call ptr @strerror(i32 noundef %706) #12
  %708 = load i32, ptr %687, align 4, !tbaa !5
  %709 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %699, ptr noundef nonnull %.str.5.sink551, i32 noundef %700, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 94, ptr noundef %703, ptr noundef %705, ptr noundef %707, i32 noundef %708) #14
  call void @exit(i32 noundef 1) #15
  unreachable

710:                                              ; preds = %680
  %711 = getelementptr inbounds i8, ptr %683, i64 8
  %712 = load ptr, ptr %711, align 8, !tbaa !18
  %713 = load i32, ptr %712, align 8
  %714 = or i32 %713, 8192
  store i32 %714, ptr %712, align 8
  %715 = load i32, ptr @test_count, align 4, !tbaa !5
  %716 = add nsw i32 %715, 1
  store i32 %716, ptr @test_count, align 4, !tbaa !5
  %717 = load ptr, ptr %6, align 8, !tbaa !9
  %718 = call i32 %652(ptr noundef %717, ptr noundef nonnull %8) #12
  %719 = icmp eq i32 %718, -1
  br i1 %719, label %720, label %744

720:                                              ; preds = %710
  %721 = tail call ptr @__errno_location() #13
  %722 = load i32, ptr %721, align 4, !tbaa !5
  %723 = load ptr, ptr @stderr, align 8, !tbaa !9
  %724 = call i32 @s2n_print_stacktrace(ptr noundef %723) #12
  %725 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %726 = trunc nuw i8 %725 to i1
  br i1 %726, label %727, label %731

727:                                              ; preds = %720
  %728 = load ptr, ptr @stderr, align 8, !tbaa !9
  %729 = call i32 @fileno(ptr noundef %728) #12
  %730 = call i32 @isatty(i32 noundef %729) #12
  %.not287 = icmp eq i32 %730, 0
  br i1 %.not287, label %731, label %732

731:                                              ; preds = %727, %720
  br label %732

732:                                              ; preds = %727, %731
  %.str.5.sink562 = phi ptr [ @.str.5, %731 ], [ @.str.2, %727 ]
  store i32 %722, ptr %721, align 4, !tbaa !5
  %733 = load ptr, ptr @stderr, align 8, !tbaa !9
  %734 = load i32, ptr @test_count, align 4, !tbaa !5
  %735 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %736 = load i32, ptr %735, align 4, !tbaa !5
  %737 = call ptr @s2n_strerror(i32 noundef %736, ptr noundef nonnull @.str.4) #12
  %738 = load i32, ptr %735, align 4, !tbaa !5
  %739 = call ptr @s2n_strerror_debug(i32 noundef %738, ptr noundef nonnull @.str.4) #12
  %740 = load i32, ptr %721, align 4, !tbaa !5
  %741 = call ptr @strerror(i32 noundef %740) #12
  %742 = load i32, ptr %721, align 4, !tbaa !5
  %743 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %733, ptr noundef nonnull %.str.5.sink562, i32 noundef %734, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 98, ptr noundef %737, ptr noundef %739, ptr noundef %741, i32 noundef %742) #14
  call void @exit(i32 noundef 1) #15
  unreachable

744:                                              ; preds = %710
  %745 = load i32, ptr @test_count, align 4, !tbaa !5
  %746 = add nsw i32 %745, 1
  store i32 %746, ptr @test_count, align 4, !tbaa !5
  %747 = load ptr, ptr %6, align 8, !tbaa !9
  %748 = load i32, ptr %747, align 8
  %749 = and i32 %748, 131072
  %.not207 = icmp eq i32 %749, 0
  br i1 %.not207, label %750, label %774

750:                                              ; preds = %744
  %751 = tail call ptr @__errno_location() #13
  %752 = load i32, ptr %751, align 4, !tbaa !5
  %753 = load ptr, ptr @stderr, align 8, !tbaa !9
  %754 = call i32 @s2n_print_stacktrace(ptr noundef %753) #12
  %755 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %756 = trunc nuw i8 %755 to i1
  br i1 %756, label %757, label %761

757:                                              ; preds = %750
  %758 = load ptr, ptr @stderr, align 8, !tbaa !9
  %759 = call i32 @fileno(ptr noundef %758) #12
  %760 = call i32 @isatty(i32 noundef %759) #12
  %.not208 = icmp eq i32 %760, 0
  br i1 %.not208, label %761, label %762

761:                                              ; preds = %757, %750
  br label %762

762:                                              ; preds = %757, %761
  %.str.5.sink573 = phi ptr [ @.str.5, %761 ], [ @.str.2, %757 ]
  store i32 %752, ptr %751, align 4, !tbaa !5
  %763 = load ptr, ptr @stderr, align 8, !tbaa !9
  %764 = load i32, ptr @test_count, align 4, !tbaa !5
  %765 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %766 = load i32, ptr %765, align 4, !tbaa !5
  %767 = call ptr @s2n_strerror(i32 noundef %766, ptr noundef nonnull @.str.4) #12
  %768 = load i32, ptr %765, align 4, !tbaa !5
  %769 = call ptr @s2n_strerror_debug(i32 noundef %768, ptr noundef nonnull @.str.4) #12
  %770 = load i32, ptr %751, align 4, !tbaa !5
  %771 = call ptr @strerror(i32 noundef %770) #12
  %772 = load i32, ptr %751, align 4, !tbaa !5
  %773 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %763, ptr noundef nonnull %.str.5.sink573, i32 noundef %764, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 99, ptr noundef %767, ptr noundef %769, ptr noundef %771, i32 noundef %772) #14
  call void @exit(i32 noundef 1) #15
  unreachable

774:                                              ; preds = %744
  %775 = load ptr, ptr %3, align 16, !tbaa !9
  %776 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %775) #16
  %777 = and i64 %776, 255
  %778 = add nuw nsw i64 %777, 1
  %779 = getelementptr inbounds i8, ptr %747, i64 2528
  call void @llvm.memmove.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(1) %779, ptr noundef nonnull align 1 dereferenceable(1) %775, i64 %778, i1 false)
  %780 = and i32 %748, -131073
  store i32 %780, ptr %747, align 8
  %781 = load i32, ptr @test_count, align 4, !tbaa !5
  %782 = add nsw i32 %781, 1
  store i32 %782, ptr @test_count, align 4, !tbaa !5
  %783 = load ptr, ptr %6, align 8, !tbaa !9
  %784 = call i32 %652(ptr noundef %783, ptr noundef nonnull %8) #12
  %785 = icmp eq i32 %784, -1
  br i1 %785, label %786, label %810

786:                                              ; preds = %774
  %787 = tail call ptr @__errno_location() #13
  %788 = load i32, ptr %787, align 4, !tbaa !5
  %789 = load ptr, ptr @stderr, align 8, !tbaa !9
  %790 = call i32 @s2n_print_stacktrace(ptr noundef %789) #12
  %791 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %792 = trunc nuw i8 %791 to i1
  br i1 %792, label %793, label %797

793:                                              ; preds = %786
  %794 = load ptr, ptr @stderr, align 8, !tbaa !9
  %795 = call i32 @fileno(ptr noundef %794) #12
  %796 = call i32 @isatty(i32 noundef %795) #12
  %.not286 = icmp eq i32 %796, 0
  br i1 %.not286, label %797, label %798

797:                                              ; preds = %793, %786
  br label %798

798:                                              ; preds = %793, %797
  %.str.5.sink584 = phi ptr [ @.str.5, %797 ], [ @.str.2, %793 ]
  store i32 %788, ptr %787, align 4, !tbaa !5
  %799 = load ptr, ptr @stderr, align 8, !tbaa !9
  %800 = load i32, ptr @test_count, align 4, !tbaa !5
  %801 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %802 = load i32, ptr %801, align 4, !tbaa !5
  %803 = call ptr @s2n_strerror(i32 noundef %802, ptr noundef nonnull @.str.4) #12
  %804 = load i32, ptr %801, align 4, !tbaa !5
  %805 = call ptr @s2n_strerror_debug(i32 noundef %804, ptr noundef nonnull @.str.4) #12
  %806 = load i32, ptr %787, align 4, !tbaa !5
  %807 = call ptr @strerror(i32 noundef %806) #12
  %808 = load i32, ptr %787, align 4, !tbaa !5
  %809 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %799, ptr noundef nonnull %.str.5.sink584, i32 noundef %800, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 105, ptr noundef %803, ptr noundef %805, ptr noundef %807, i32 noundef %808) #14
  call void @exit(i32 noundef 1) #15
  unreachable

810:                                              ; preds = %774
  %811 = load i32, ptr @test_count, align 4, !tbaa !5
  %812 = add nsw i32 %811, 1
  store i32 %812, ptr @test_count, align 4, !tbaa !5
  %813 = load ptr, ptr %6, align 8, !tbaa !9
  %814 = load i32, ptr %813, align 8
  %815 = and i32 %814, 131072
  %.not209 = icmp eq i32 %815, 0
  br i1 %.not209, label %840, label %816

816:                                              ; preds = %810
  %817 = tail call ptr @__errno_location() #13
  %818 = load i32, ptr %817, align 4, !tbaa !5
  %819 = load ptr, ptr @stderr, align 8, !tbaa !9
  %820 = call i32 @s2n_print_stacktrace(ptr noundef %819) #12
  %821 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %822 = trunc nuw i8 %821 to i1
  br i1 %822, label %823, label %827

823:                                              ; preds = %816
  %824 = load ptr, ptr @stderr, align 8, !tbaa !9
  %825 = call i32 @fileno(ptr noundef %824) #12
  %826 = call i32 @isatty(i32 noundef %825) #12
  %.not285 = icmp eq i32 %826, 0
  br i1 %.not285, label %827, label %828

827:                                              ; preds = %823, %816
  br label %828

828:                                              ; preds = %823, %827
  %.str.5.sink595 = phi ptr [ @.str.5, %827 ], [ @.str.2, %823 ]
  store i32 %818, ptr %817, align 4, !tbaa !5
  %829 = load ptr, ptr @stderr, align 8, !tbaa !9
  %830 = load i32, ptr @test_count, align 4, !tbaa !5
  %831 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %832 = load i32, ptr %831, align 4, !tbaa !5
  %833 = call ptr @s2n_strerror(i32 noundef %832, ptr noundef nonnull @.str.4) #12
  %834 = load i32, ptr %831, align 4, !tbaa !5
  %835 = call ptr @s2n_strerror_debug(i32 noundef %834, ptr noundef nonnull @.str.4) #12
  %836 = load i32, ptr %817, align 4, !tbaa !5
  %837 = call ptr @strerror(i32 noundef %836) #12
  %838 = load i32, ptr %817, align 4, !tbaa !5
  %839 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %829, ptr noundef nonnull %.str.5.sink595, i32 noundef %830, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 106, ptr noundef %833, ptr noundef %835, ptr noundef %837, i32 noundef %838) #14
  call void @exit(i32 noundef 1) #15
  unreachable

840:                                              ; preds = %810
  %841 = call i32 @s2n_stuffer_free(ptr noundef nonnull %8) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %8) #12
  %842 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %7) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #12
  %843 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %6) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #12
  %844 = call ptr @s2n_connection_new(i32 noundef 0) #12
  store ptr %844, ptr %9, align 8, !tbaa !9
  %845 = load i32, ptr @test_count, align 4, !tbaa !5
  %846 = add nsw i32 %845, 1
  store i32 %846, ptr @test_count, align 4, !tbaa !5
  %847 = icmp eq ptr %844, null
  br i1 %847, label %848, label %872

848:                                              ; preds = %840
  %849 = tail call ptr @__errno_location() #13
  %850 = load i32, ptr %849, align 4, !tbaa !5
  %851 = load ptr, ptr @stderr, align 8, !tbaa !9
  %852 = call i32 @s2n_print_stacktrace(ptr noundef %851) #12
  %853 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %854 = trunc nuw i8 %853 to i1
  br i1 %854, label %855, label %859

855:                                              ; preds = %848
  %856 = load ptr, ptr @stderr, align 8, !tbaa !9
  %857 = call i32 @fileno(ptr noundef %856) #12
  %858 = call i32 @isatty(i32 noundef %857) #12
  %.not284 = icmp eq i32 %858, 0
  br i1 %.not284, label %859, label %860

859:                                              ; preds = %855, %848
  br label %860

860:                                              ; preds = %855, %859
  %.str.5.sink606 = phi ptr [ @.str.5, %859 ], [ @.str.2, %855 ]
  store i32 %850, ptr %849, align 4, !tbaa !5
  %861 = load ptr, ptr @stderr, align 8, !tbaa !9
  %862 = load i32, ptr @test_count, align 4, !tbaa !5
  %863 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %864 = load i32, ptr %863, align 4, !tbaa !5
  %865 = call ptr @s2n_strerror(i32 noundef %864, ptr noundef nonnull @.str.4) #12
  %866 = load i32, ptr %863, align 4, !tbaa !5
  %867 = call ptr @s2n_strerror_debug(i32 noundef %866, ptr noundef nonnull @.str.4) #12
  %868 = load i32, ptr %849, align 4, !tbaa !5
  %869 = call ptr @strerror(i32 noundef %868) #12
  %870 = load i32, ptr %849, align 4, !tbaa !5
  %871 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %861, ptr noundef nonnull %.str.5.sink606, i32 noundef %862, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 112, ptr noundef %865, ptr noundef %867, ptr noundef %869, i32 noundef %870) #14
  call void @exit(i32 noundef 1) #15
  unreachable

872:                                              ; preds = %840
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #12
  %873 = call ptr @s2n_config_new() #12
  store ptr %873, ptr %10, align 8, !tbaa !9
  %874 = load i32, ptr @test_count, align 4, !tbaa !5
  %875 = add nsw i32 %874, 1
  store i32 %875, ptr @test_count, align 4, !tbaa !5
  %876 = icmp eq ptr %873, null
  br i1 %876, label %877, label %901

877:                                              ; preds = %872
  %878 = tail call ptr @__errno_location() #13
  %879 = load i32, ptr %878, align 4, !tbaa !5
  %880 = load ptr, ptr @stderr, align 8, !tbaa !9
  %881 = call i32 @s2n_print_stacktrace(ptr noundef %880) #12
  %882 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %883 = trunc nuw i8 %882 to i1
  br i1 %883, label %884, label %888

884:                                              ; preds = %877
  %885 = load ptr, ptr @stderr, align 8, !tbaa !9
  %886 = call i32 @fileno(ptr noundef %885) #12
  %887 = call i32 @isatty(i32 noundef %886) #12
  %.not283 = icmp eq i32 %887, 0
  br i1 %.not283, label %888, label %889

888:                                              ; preds = %884, %877
  br label %889

889:                                              ; preds = %884, %888
  %.str.5.sink617 = phi ptr [ @.str.5, %888 ], [ @.str.2, %884 ]
  store i32 %879, ptr %878, align 4, !tbaa !5
  %890 = load ptr, ptr @stderr, align 8, !tbaa !9
  %891 = load i32, ptr @test_count, align 4, !tbaa !5
  %892 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %893 = load i32, ptr %892, align 4, !tbaa !5
  %894 = call ptr @s2n_strerror(i32 noundef %893, ptr noundef nonnull @.str.4) #12
  %895 = load i32, ptr %892, align 4, !tbaa !5
  %896 = call ptr @s2n_strerror_debug(i32 noundef %895, ptr noundef nonnull @.str.4) #12
  %897 = load i32, ptr %878, align 4, !tbaa !5
  %898 = call ptr @strerror(i32 noundef %897) #12
  %899 = load i32, ptr %878, align 4, !tbaa !5
  %900 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %890, ptr noundef nonnull %.str.5.sink617, i32 noundef %891, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 114, ptr noundef %894, ptr noundef %896, ptr noundef %898, i32 noundef %899) #14
  call void @exit(i32 noundef 1) #15
  unreachable

901:                                              ; preds = %872
  %902 = add nsw i32 %874, 2
  store i32 %902, ptr @test_count, align 4, !tbaa !5
  %903 = call i32 @s2n_config_set_protocol_preferences(ptr noundef nonnull %873, ptr noundef nonnull %3, i32 noundef 3) #12
  %904 = icmp eq i32 %903, -1
  br i1 %904, label %905, label %929

905:                                              ; preds = %901
  %906 = tail call ptr @__errno_location() #13
  %907 = load i32, ptr %906, align 4, !tbaa !5
  %908 = load ptr, ptr @stderr, align 8, !tbaa !9
  %909 = call i32 @s2n_print_stacktrace(ptr noundef %908) #12
  %910 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %911 = trunc nuw i8 %910 to i1
  br i1 %911, label %912, label %916

912:                                              ; preds = %905
  %913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %914 = call i32 @fileno(ptr noundef %913) #12
  %915 = call i32 @isatty(i32 noundef %914) #12
  %.not282 = icmp eq i32 %915, 0
  br i1 %.not282, label %916, label %917

916:                                              ; preds = %912, %905
  br label %917

917:                                              ; preds = %912, %916
  %.str.5.sink628 = phi ptr [ @.str.5, %916 ], [ @.str.2, %912 ]
  store i32 %907, ptr %906, align 4, !tbaa !5
  %918 = load ptr, ptr @stderr, align 8, !tbaa !9
  %919 = load i32, ptr @test_count, align 4, !tbaa !5
  %920 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %921 = load i32, ptr %920, align 4, !tbaa !5
  %922 = call ptr @s2n_strerror(i32 noundef %921, ptr noundef nonnull @.str.4) #12
  %923 = load i32, ptr %920, align 4, !tbaa !5
  %924 = call ptr @s2n_strerror_debug(i32 noundef %923, ptr noundef nonnull @.str.4) #12
  %925 = load i32, ptr %906, align 4, !tbaa !5
  %926 = call ptr @strerror(i32 noundef %925) #12
  %927 = load i32, ptr %906, align 4, !tbaa !5
  %928 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %918, ptr noundef nonnull %.str.5.sink628, i32 noundef %919, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 115, ptr noundef %922, ptr noundef %924, ptr noundef %926, i32 noundef %927) #14
  call void @exit(i32 noundef 1) #15
  unreachable

929:                                              ; preds = %901
  %930 = load i32, ptr @test_count, align 4, !tbaa !5
  %931 = add nsw i32 %930, 1
  store i32 %931, ptr @test_count, align 4, !tbaa !5
  %932 = load ptr, ptr %9, align 8, !tbaa !9
  %933 = load ptr, ptr %10, align 8, !tbaa !9
  %934 = call i32 @s2n_connection_set_config(ptr noundef %932, ptr noundef %933) #12
  %935 = icmp eq i32 %934, -1
  br i1 %935, label %936, label %960

936:                                              ; preds = %929
  %937 = tail call ptr @__errno_location() #13
  %938 = load i32, ptr %937, align 4, !tbaa !5
  %939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %940 = call i32 @s2n_print_stacktrace(ptr noundef %939) #12
  %941 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %942 = trunc nuw i8 %941 to i1
  br i1 %942, label %943, label %947

943:                                              ; preds = %936
  %944 = load ptr, ptr @stderr, align 8, !tbaa !9
  %945 = call i32 @fileno(ptr noundef %944) #12
  %946 = call i32 @isatty(i32 noundef %945) #12
  %.not281 = icmp eq i32 %946, 0
  br i1 %.not281, label %947, label %948

947:                                              ; preds = %943, %936
  br label %948

948:                                              ; preds = %943, %947
  %.str.5.sink639 = phi ptr [ @.str.5, %947 ], [ @.str.2, %943 ]
  store i32 %938, ptr %937, align 4, !tbaa !5
  %949 = load ptr, ptr @stderr, align 8, !tbaa !9
  %950 = load i32, ptr @test_count, align 4, !tbaa !5
  %951 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %952 = load i32, ptr %951, align 4, !tbaa !5
  %953 = call ptr @s2n_strerror(i32 noundef %952, ptr noundef nonnull @.str.4) #12
  %954 = load i32, ptr %951, align 4, !tbaa !5
  %955 = call ptr @s2n_strerror_debug(i32 noundef %954, ptr noundef nonnull @.str.4) #12
  %956 = load i32, ptr %937, align 4, !tbaa !5
  %957 = call ptr @strerror(i32 noundef %956) #12
  %958 = load i32, ptr %937, align 4, !tbaa !5
  %959 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %949, ptr noundef nonnull %.str.5.sink639, i32 noundef %950, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 116, ptr noundef %953, ptr noundef %955, ptr noundef %957, i32 noundef %958) #14
  call void @exit(i32 noundef 1) #15
  unreachable

960:                                              ; preds = %929
  %961 = load i32, ptr @test_count, align 4, !tbaa !5
  %962 = add nsw i32 %961, 1
  store i32 %962, ptr @test_count, align 4, !tbaa !5
  %963 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_server_npn_extension, i64 24), align 8, !tbaa !15
  %964 = load ptr, ptr %9, align 8, !tbaa !9
  %965 = call zeroext i1 %963(ptr noundef %964) #12
  br i1 %965, label %966, label %990

966:                                              ; preds = %960
  %967 = tail call ptr @__errno_location() #13
  %968 = load i32, ptr %967, align 4, !tbaa !5
  %969 = load ptr, ptr @stderr, align 8, !tbaa !9
  %970 = call i32 @s2n_print_stacktrace(ptr noundef %969) #12
  %971 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %972 = trunc nuw i8 %971 to i1
  br i1 %972, label %973, label %977

973:                                              ; preds = %966
  %974 = load ptr, ptr @stderr, align 8, !tbaa !9
  %975 = call i32 @fileno(ptr noundef %974) #12
  %976 = call i32 @isatty(i32 noundef %975) #12
  %.not280 = icmp eq i32 %976, 0
  br i1 %.not280, label %977, label %978

977:                                              ; preds = %973, %966
  br label %978

978:                                              ; preds = %973, %977
  %.str.5.sink650 = phi ptr [ @.str.5, %977 ], [ @.str.2, %973 ]
  store i32 %968, ptr %967, align 4, !tbaa !5
  %979 = load ptr, ptr @stderr, align 8, !tbaa !9
  %980 = load i32, ptr @test_count, align 4, !tbaa !5
  %981 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %982 = load i32, ptr %981, align 4, !tbaa !5
  %983 = call ptr @s2n_strerror(i32 noundef %982, ptr noundef nonnull @.str.4) #12
  %984 = load i32, ptr %981, align 4, !tbaa !5
  %985 = call ptr @s2n_strerror_debug(i32 noundef %984, ptr noundef nonnull @.str.4) #12
  %986 = load i32, ptr %967, align 4, !tbaa !5
  %987 = call ptr @strerror(i32 noundef %986) #12
  %988 = load i32, ptr %967, align 4, !tbaa !5
  %989 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %979, ptr noundef nonnull %.str.5.sink650, i32 noundef %980, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 119, ptr noundef %983, ptr noundef %985, ptr noundef %987, i32 noundef %988) #14
  call void @exit(i32 noundef 1) #15
  unreachable

990:                                              ; preds = %960
  %991 = load ptr, ptr %9, align 8, !tbaa !9
  %992 = load i32, ptr %991, align 8
  %993 = or i32 %992, 131072
  store i32 %993, ptr %991, align 8
  %994 = load i32, ptr @test_count, align 4, !tbaa !5
  %995 = add nsw i32 %994, 1
  store i32 %995, ptr @test_count, align 4, !tbaa !5
  %996 = load ptr, ptr %9, align 8, !tbaa !9
  %997 = call zeroext i1 %963(ptr noundef %996) #12
  br i1 %997, label %1022, label %998

998:                                              ; preds = %990
  %999 = tail call ptr @__errno_location() #13
  %1000 = load i32, ptr %999, align 4, !tbaa !5
  %1001 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1002 = call i32 @s2n_print_stacktrace(ptr noundef %1001) #12
  %1003 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1004 = trunc nuw i8 %1003 to i1
  br i1 %1004, label %1005, label %1009

1005:                                             ; preds = %998
  %1006 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1007 = call i32 @fileno(ptr noundef %1006) #12
  %1008 = call i32 @isatty(i32 noundef %1007) #12
  %.not210 = icmp eq i32 %1008, 0
  br i1 %.not210, label %1009, label %1010

1009:                                             ; preds = %1005, %998
  br label %1010

1010:                                             ; preds = %1005, %1009
  %.str.5.sink661 = phi ptr [ @.str.5, %1009 ], [ @.str.2, %1005 ]
  store i32 %1000, ptr %999, align 4, !tbaa !5
  %1011 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1012 = load i32, ptr @test_count, align 4, !tbaa !5
  %1013 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1014 = load i32, ptr %1013, align 4, !tbaa !5
  %1015 = call ptr @s2n_strerror(i32 noundef %1014, ptr noundef nonnull @.str.4) #12
  %1016 = load i32, ptr %1013, align 4, !tbaa !5
  %1017 = call ptr @s2n_strerror_debug(i32 noundef %1016, ptr noundef nonnull @.str.4) #12
  %1018 = load i32, ptr %999, align 4, !tbaa !5
  %1019 = call ptr @strerror(i32 noundef %1018) #12
  %1020 = load i32, ptr %999, align 4, !tbaa !5
  %1021 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1011, ptr noundef nonnull %.str.5.sink661, i32 noundef %1012, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 123, ptr noundef %1015, ptr noundef %1017, ptr noundef %1019, i32 noundef %1020) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1022:                                             ; preds = %990
  %1023 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %10) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #12
  %1024 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %9) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #12
  %1025 = call ptr @s2n_connection_new(i32 noundef 0) #12
  store ptr %1025, ptr %11, align 8, !tbaa !9
  %1026 = load i32, ptr @test_count, align 4, !tbaa !5
  %1027 = add nsw i32 %1026, 1
  store i32 %1027, ptr @test_count, align 4, !tbaa !5
  %1028 = icmp eq ptr %1025, null
  br i1 %1028, label %1029, label %1053

1029:                                             ; preds = %1022
  %1030 = tail call ptr @__errno_location() #13
  %1031 = load i32, ptr %1030, align 4, !tbaa !5
  %1032 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1033 = call i32 @s2n_print_stacktrace(ptr noundef %1032) #12
  %1034 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1035 = trunc nuw i8 %1034 to i1
  br i1 %1035, label %1036, label %1040

1036:                                             ; preds = %1029
  %1037 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1038 = call i32 @fileno(ptr noundef %1037) #12
  %1039 = call i32 @isatty(i32 noundef %1038) #12
  %.not279 = icmp eq i32 %1039, 0
  br i1 %.not279, label %1040, label %1041

1040:                                             ; preds = %1036, %1029
  br label %1041

1041:                                             ; preds = %1036, %1040
  %.str.5.sink672 = phi ptr [ @.str.5, %1040 ], [ @.str.2, %1036 ]
  store i32 %1031, ptr %1030, align 4, !tbaa !5
  %1042 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1043 = load i32, ptr @test_count, align 4, !tbaa !5
  %1044 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1045 = load i32, ptr %1044, align 4, !tbaa !5
  %1046 = call ptr @s2n_strerror(i32 noundef %1045, ptr noundef nonnull @.str.4) #12
  %1047 = load i32, ptr %1044, align 4, !tbaa !5
  %1048 = call ptr @s2n_strerror_debug(i32 noundef %1047, ptr noundef nonnull @.str.4) #12
  %1049 = load i32, ptr %1030, align 4, !tbaa !5
  %1050 = call ptr @strerror(i32 noundef %1049) #12
  %1051 = load i32, ptr %1030, align 4, !tbaa !5
  %1052 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1042, ptr noundef nonnull %.str.5.sink672, i32 noundef %1043, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 129, ptr noundef %1046, ptr noundef %1048, ptr noundef %1050, i32 noundef %1051) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1053:                                             ; preds = %1022
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #12
  %1054 = call ptr @s2n_config_new() #12
  store ptr %1054, ptr %12, align 8, !tbaa !9
  %1055 = load i32, ptr @test_count, align 4, !tbaa !5
  %1056 = add nsw i32 %1055, 1
  store i32 %1056, ptr @test_count, align 4, !tbaa !5
  %1057 = icmp eq ptr %1054, null
  br i1 %1057, label %1058, label %1082

1058:                                             ; preds = %1053
  %1059 = tail call ptr @__errno_location() #13
  %1060 = load i32, ptr %1059, align 4, !tbaa !5
  %1061 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1062 = call i32 @s2n_print_stacktrace(ptr noundef %1061) #12
  %1063 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1064 = trunc nuw i8 %1063 to i1
  br i1 %1064, label %1065, label %1069

1065:                                             ; preds = %1058
  %1066 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1067 = call i32 @fileno(ptr noundef %1066) #12
  %1068 = call i32 @isatty(i32 noundef %1067) #12
  %.not278 = icmp eq i32 %1068, 0
  br i1 %.not278, label %1069, label %1070

1069:                                             ; preds = %1065, %1058
  br label %1070

1070:                                             ; preds = %1065, %1069
  %.str.5.sink683 = phi ptr [ @.str.5, %1069 ], [ @.str.2, %1065 ]
  store i32 %1060, ptr %1059, align 4, !tbaa !5
  %1071 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1072 = load i32, ptr @test_count, align 4, !tbaa !5
  %1073 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1074 = load i32, ptr %1073, align 4, !tbaa !5
  %1075 = call ptr @s2n_strerror(i32 noundef %1074, ptr noundef nonnull @.str.4) #12
  %1076 = load i32, ptr %1073, align 4, !tbaa !5
  %1077 = call ptr @s2n_strerror_debug(i32 noundef %1076, ptr noundef nonnull @.str.4) #12
  %1078 = load i32, ptr %1059, align 4, !tbaa !5
  %1079 = call ptr @strerror(i32 noundef %1078) #12
  %1080 = load i32, ptr %1059, align 4, !tbaa !5
  %1081 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1071, ptr noundef nonnull %.str.5.sink683, i32 noundef %1072, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 131, ptr noundef %1075, ptr noundef %1077, ptr noundef %1079, i32 noundef %1080) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1082:                                             ; preds = %1053
  %1083 = add nsw i32 %1055, 2
  store i32 %1083, ptr @test_count, align 4, !tbaa !5
  %1084 = call i32 @s2n_config_set_protocol_preferences(ptr noundef nonnull %1054, ptr noundef nonnull %3, i32 noundef 3) #12
  %1085 = icmp eq i32 %1084, -1
  br i1 %1085, label %1086, label %1110

1086:                                             ; preds = %1082
  %1087 = tail call ptr @__errno_location() #13
  %1088 = load i32, ptr %1087, align 4, !tbaa !5
  %1089 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1090 = call i32 @s2n_print_stacktrace(ptr noundef %1089) #12
  %1091 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1092 = trunc nuw i8 %1091 to i1
  br i1 %1092, label %1093, label %1097

1093:                                             ; preds = %1086
  %1094 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1095 = call i32 @fileno(ptr noundef %1094) #12
  %1096 = call i32 @isatty(i32 noundef %1095) #12
  %.not277 = icmp eq i32 %1096, 0
  br i1 %.not277, label %1097, label %1098

1097:                                             ; preds = %1093, %1086
  br label %1098

1098:                                             ; preds = %1093, %1097
  %.str.5.sink694 = phi ptr [ @.str.5, %1097 ], [ @.str.2, %1093 ]
  store i32 %1088, ptr %1087, align 4, !tbaa !5
  %1099 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1100 = load i32, ptr @test_count, align 4, !tbaa !5
  %1101 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1102 = load i32, ptr %1101, align 4, !tbaa !5
  %1103 = call ptr @s2n_strerror(i32 noundef %1102, ptr noundef nonnull @.str.4) #12
  %1104 = load i32, ptr %1101, align 4, !tbaa !5
  %1105 = call ptr @s2n_strerror_debug(i32 noundef %1104, ptr noundef nonnull @.str.4) #12
  %1106 = load i32, ptr %1087, align 4, !tbaa !5
  %1107 = call ptr @strerror(i32 noundef %1106) #12
  %1108 = load i32, ptr %1087, align 4, !tbaa !5
  %1109 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1099, ptr noundef nonnull %.str.5.sink694, i32 noundef %1100, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 132, ptr noundef %1103, ptr noundef %1105, ptr noundef %1107, i32 noundef %1108) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1110:                                             ; preds = %1082
  %1111 = load i32, ptr @test_count, align 4, !tbaa !5
  %1112 = add nsw i32 %1111, 1
  store i32 %1112, ptr @test_count, align 4, !tbaa !5
  %1113 = load ptr, ptr %11, align 8, !tbaa !9
  %1114 = load ptr, ptr %12, align 8, !tbaa !9
  %1115 = call i32 @s2n_connection_set_config(ptr noundef %1113, ptr noundef %1114) #12
  %1116 = icmp eq i32 %1115, -1
  br i1 %1116, label %1117, label %1141

1117:                                             ; preds = %1110
  %1118 = tail call ptr @__errno_location() #13
  %1119 = load i32, ptr %1118, align 4, !tbaa !5
  %1120 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1121 = call i32 @s2n_print_stacktrace(ptr noundef %1120) #12
  %1122 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1123 = trunc nuw i8 %1122 to i1
  br i1 %1123, label %1124, label %1128

1124:                                             ; preds = %1117
  %1125 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1126 = call i32 @fileno(ptr noundef %1125) #12
  %1127 = call i32 @isatty(i32 noundef %1126) #12
  %.not276 = icmp eq i32 %1127, 0
  br i1 %.not276, label %1128, label %1129

1128:                                             ; preds = %1124, %1117
  br label %1129

1129:                                             ; preds = %1124, %1128
  %.str.5.sink705 = phi ptr [ @.str.5, %1128 ], [ @.str.2, %1124 ]
  store i32 %1119, ptr %1118, align 4, !tbaa !5
  %1130 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1131 = load i32, ptr @test_count, align 4, !tbaa !5
  %1132 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1133 = load i32, ptr %1132, align 4, !tbaa !5
  %1134 = call ptr @s2n_strerror(i32 noundef %1133, ptr noundef nonnull @.str.4) #12
  %1135 = load i32, ptr %1132, align 4, !tbaa !5
  %1136 = call ptr @s2n_strerror_debug(i32 noundef %1135, ptr noundef nonnull @.str.4) #12
  %1137 = load i32, ptr %1118, align 4, !tbaa !5
  %1138 = call ptr @strerror(i32 noundef %1137) #12
  %1139 = load i32, ptr %1118, align 4, !tbaa !5
  %1140 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1130, ptr noundef nonnull %.str.5.sink705, i32 noundef %1131, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 133, ptr noundef %1134, ptr noundef %1136, ptr noundef %1138, i32 noundef %1139) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1141:                                             ; preds = %1110
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %13) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %13, i8 0, i64 40, i1 false)
  %1142 = load i32, ptr @test_count, align 4, !tbaa !5
  %1143 = add nsw i32 %1142, 1
  store i32 %1143, ptr @test_count, align 4, !tbaa !5
  %1144 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %13, i32 noundef 0) #12
  %1145 = icmp eq i32 %1144, -1
  br i1 %1145, label %1146, label %1170

1146:                                             ; preds = %1141
  %1147 = tail call ptr @__errno_location() #13
  %1148 = load i32, ptr %1147, align 4, !tbaa !5
  %1149 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1150 = call i32 @s2n_print_stacktrace(ptr noundef %1149) #12
  %1151 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1152 = trunc nuw i8 %1151 to i1
  br i1 %1152, label %1153, label %1157

1153:                                             ; preds = %1146
  %1154 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1155 = call i32 @fileno(ptr noundef %1154) #12
  %1156 = call i32 @isatty(i32 noundef %1155) #12
  %.not275 = icmp eq i32 %1156, 0
  br i1 %.not275, label %1157, label %1158

1157:                                             ; preds = %1153, %1146
  br label %1158

1158:                                             ; preds = %1153, %1157
  %.str.5.sink716 = phi ptr [ @.str.5, %1157 ], [ @.str.2, %1153 ]
  store i32 %1148, ptr %1147, align 4, !tbaa !5
  %1159 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1160 = load i32, ptr @test_count, align 4, !tbaa !5
  %1161 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1162 = load i32, ptr %1161, align 4, !tbaa !5
  %1163 = call ptr @s2n_strerror(i32 noundef %1162, ptr noundef nonnull @.str.4) #12
  %1164 = load i32, ptr %1161, align 4, !tbaa !5
  %1165 = call ptr @s2n_strerror_debug(i32 noundef %1164, ptr noundef nonnull @.str.4) #12
  %1166 = load i32, ptr %1147, align 4, !tbaa !5
  %1167 = call ptr @strerror(i32 noundef %1166) #12
  %1168 = load i32, ptr %1147, align 4, !tbaa !5
  %1169 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1159, ptr noundef nonnull %.str.5.sink716, i32 noundef %1160, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 135, ptr noundef %1163, ptr noundef %1165, ptr noundef %1167, i32 noundef %1168) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1170:                                             ; preds = %1141
  %1171 = load i32, ptr @test_count, align 4, !tbaa !5
  %1172 = add nsw i32 %1171, 1
  store i32 %1172, ptr @test_count, align 4, !tbaa !5
  %1173 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_server_npn_extension, i64 8), align 8, !tbaa !45
  %1174 = load ptr, ptr %11, align 8, !tbaa !9
  %1175 = call i32 %1173(ptr noundef %1174, ptr noundef nonnull %13) #12
  %1176 = icmp eq i32 %1175, -1
  br i1 %1176, label %1177, label %1201

1177:                                             ; preds = %1170
  %1178 = tail call ptr @__errno_location() #13
  %1179 = load i32, ptr %1178, align 4, !tbaa !5
  %1180 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1181 = call i32 @s2n_print_stacktrace(ptr noundef %1180) #12
  %1182 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1183 = trunc nuw i8 %1182 to i1
  br i1 %1183, label %1184, label %1188

1184:                                             ; preds = %1177
  %1185 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1186 = call i32 @fileno(ptr noundef %1185) #12
  %1187 = call i32 @isatty(i32 noundef %1186) #12
  %.not274 = icmp eq i32 %1187, 0
  br i1 %.not274, label %1188, label %1189

1188:                                             ; preds = %1184, %1177
  br label %1189

1189:                                             ; preds = %1184, %1188
  %.str.5.sink727 = phi ptr [ @.str.5, %1188 ], [ @.str.2, %1184 ]
  store i32 %1179, ptr %1178, align 4, !tbaa !5
  %1190 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1191 = load i32, ptr @test_count, align 4, !tbaa !5
  %1192 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1193 = load i32, ptr %1192, align 4, !tbaa !5
  %1194 = call ptr @s2n_strerror(i32 noundef %1193, ptr noundef nonnull @.str.4) #12
  %1195 = load i32, ptr %1192, align 4, !tbaa !5
  %1196 = call ptr @s2n_strerror_debug(i32 noundef %1195, ptr noundef nonnull @.str.4) #12
  %1197 = load i32, ptr %1178, align 4, !tbaa !5
  %1198 = call ptr @strerror(i32 noundef %1197) #12
  %1199 = load i32, ptr %1178, align 4, !tbaa !5
  %1200 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1190, ptr noundef nonnull %.str.5.sink727, i32 noundef %1191, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 137, ptr noundef %1194, ptr noundef %1196, ptr noundef %1198, i32 noundef %1199) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1201:                                             ; preds = %1170
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %14) #12
  store i8 0, ptr %14, align 1, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 255, ptr nonnull %15) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(255) %15, i8 0, i64 255, i1 false)
  %1202 = load i32, ptr @test_count, align 4, !tbaa !5
  %1203 = add nsw i32 %1202, 1
  store i32 %1203, ptr @test_count, align 4, !tbaa !5
  %1204 = call i32 @s2n_stuffer_read_uint8(ptr noundef nonnull %13, ptr noundef nonnull %14) #12
  %1205 = icmp eq i32 %1204, -1
  br i1 %1205, label %1206, label %1230

1206:                                             ; preds = %1348, %1322, %1201
  %1207 = tail call ptr @__errno_location() #13
  %1208 = load i32, ptr %1207, align 4, !tbaa !5
  %1209 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1210 = call i32 @s2n_print_stacktrace(ptr noundef %1209) #12
  %1211 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1212 = trunc nuw i8 %1211 to i1
  br i1 %1212, label %1213, label %1217

1213:                                             ; preds = %1206
  %1214 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1215 = call i32 @fileno(ptr noundef %1214) #12
  %1216 = call i32 @isatty(i32 noundef %1215) #12
  %.not273 = icmp eq i32 %1216, 0
  br i1 %.not273, label %1217, label %1218

1217:                                             ; preds = %1213, %1206
  br label %1218

1218:                                             ; preds = %1213, %1217
  %.str.5.sink738 = phi ptr [ @.str.5, %1217 ], [ @.str.2, %1213 ]
  store i32 %1208, ptr %1207, align 4, !tbaa !5
  %1219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1220 = load i32, ptr @test_count, align 4, !tbaa !5
  %1221 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1222 = load i32, ptr %1221, align 4, !tbaa !5
  %1223 = call ptr @s2n_strerror(i32 noundef %1222, ptr noundef nonnull @.str.4) #12
  %1224 = load i32, ptr %1221, align 4, !tbaa !5
  %1225 = call ptr @s2n_strerror_debug(i32 noundef %1224, ptr noundef nonnull @.str.4) #12
  %1226 = load i32, ptr %1207, align 4, !tbaa !5
  %1227 = call ptr @strerror(i32 noundef %1226) #12
  %1228 = load i32, ptr %1207, align 4, !tbaa !5
  %1229 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1219, ptr noundef nonnull %.str.5.sink738, i32 noundef %1220, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 142, ptr noundef %1223, ptr noundef %1225, ptr noundef %1227, i32 noundef %1228) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1230:                                             ; preds = %1201
  %1231 = load i32, ptr @test_count, align 4, !tbaa !5
  %1232 = add nsw i32 %1231, 1
  store i32 %1232, ptr @test_count, align 4, !tbaa !5
  %1233 = load i8, ptr %14, align 1, !tbaa !46
  %1234 = zext i8 %1233 to i64
  %1235 = load ptr, ptr %3, align 16, !tbaa !9
  %1236 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %1235) #16
  %1237 = icmp eq i64 %1236, %1234
  br i1 %1237, label %1262, label %1238

1238:                                             ; preds = %1353, %1327, %1230
  %1239 = tail call ptr @__errno_location() #13
  %1240 = load i32, ptr %1239, align 4, !tbaa !5
  %1241 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1242 = call i32 @s2n_print_stacktrace(ptr noundef %1241) #12
  %1243 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1244 = trunc nuw i8 %1243 to i1
  br i1 %1244, label %1245, label %1249

1245:                                             ; preds = %1238
  %1246 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1247 = call i32 @fileno(ptr noundef %1246) #12
  %1248 = call i32 @isatty(i32 noundef %1247) #12
  %.not268 = icmp eq i32 %1248, 0
  br i1 %.not268, label %1249, label %1250

1249:                                             ; preds = %1245, %1238
  br label %1250

1250:                                             ; preds = %1245, %1249
  %.str.5.sink749 = phi ptr [ @.str.5, %1249 ], [ @.str.2, %1245 ]
  store i32 %1240, ptr %1239, align 4, !tbaa !5
  %1251 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1252 = load i32, ptr @test_count, align 4, !tbaa !5
  %1253 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1254 = load i32, ptr %1253, align 4, !tbaa !5
  %1255 = call ptr @s2n_strerror(i32 noundef %1254, ptr noundef nonnull @.str.4) #12
  %1256 = load i32, ptr %1253, align 4, !tbaa !5
  %1257 = call ptr @s2n_strerror_debug(i32 noundef %1256, ptr noundef nonnull @.str.4) #12
  %1258 = load i32, ptr %1239, align 4, !tbaa !5
  %1259 = call ptr @strerror(i32 noundef %1258) #12
  %1260 = load i32, ptr %1239, align 4, !tbaa !5
  %1261 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1251, ptr noundef nonnull %.str.5.sink749, i32 noundef %1252, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 143, ptr noundef %1255, ptr noundef %1257, ptr noundef %1259, i32 noundef %1260) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1262:                                             ; preds = %1230
  %1263 = add nsw i32 %1231, 2
  store i32 %1263, ptr @test_count, align 4, !tbaa !5
  %1264 = zext i8 %1233 to i32
  %1265 = call i32 @s2n_stuffer_read_bytes(ptr noundef nonnull %13, ptr noundef nonnull %15, i32 noundef %1264) #12
  %1266 = icmp eq i32 %1265, -1
  br i1 %1266, label %1267, label %1291

1267:                                             ; preds = %1362, %1336, %1262
  %1268 = tail call ptr @__errno_location() #13
  %1269 = load i32, ptr %1268, align 4, !tbaa !5
  %1270 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1271 = call i32 @s2n_print_stacktrace(ptr noundef %1270) #12
  %1272 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1273 = trunc nuw i8 %1272 to i1
  br i1 %1273, label %1274, label %1278

1274:                                             ; preds = %1267
  %1275 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1276 = call i32 @fileno(ptr noundef %1275) #12
  %1277 = call i32 @isatty(i32 noundef %1276) #12
  %.not272 = icmp eq i32 %1277, 0
  br i1 %.not272, label %1278, label %1279

1278:                                             ; preds = %1274, %1267
  br label %1279

1279:                                             ; preds = %1274, %1278
  %.str.5.sink760 = phi ptr [ @.str.5, %1278 ], [ @.str.2, %1274 ]
  store i32 %1269, ptr %1268, align 4, !tbaa !5
  %1280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1281 = load i32, ptr @test_count, align 4, !tbaa !5
  %1282 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1283 = load i32, ptr %1282, align 4, !tbaa !5
  %1284 = call ptr @s2n_strerror(i32 noundef %1283, ptr noundef nonnull @.str.4) #12
  %1285 = load i32, ptr %1282, align 4, !tbaa !5
  %1286 = call ptr @s2n_strerror_debug(i32 noundef %1285, ptr noundef nonnull @.str.4) #12
  %1287 = load i32, ptr %1268, align 4, !tbaa !5
  %1288 = call ptr @strerror(i32 noundef %1287) #12
  %1289 = load i32, ptr %1268, align 4, !tbaa !5
  %1290 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1280, ptr noundef nonnull %.str.5.sink760, i32 noundef %1281, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 145, ptr noundef %1284, ptr noundef %1286, ptr noundef %1288, i32 noundef %1289) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1291:                                             ; preds = %1262
  %1292 = load i8, ptr %14, align 1, !tbaa !46
  %.not269 = icmp eq i8 %1292, 0
  %.pre = load i32, ptr @test_count, align 4, !tbaa !5
  br i1 %.not269, label %1322, label %1293

1293:                                             ; preds = %1291
  %1294 = add nsw i32 %.pre, 1
  store i32 %1294, ptr @test_count, align 4, !tbaa !5
  %1295 = load ptr, ptr %3, align 16, !tbaa !9
  %1296 = zext i8 %1292 to i64
  %bcmp270 = call i32 @bcmp(ptr nonnull %15, ptr %1295, i64 %1296)
  %1297 = icmp eq i32 %bcmp270, 0
  br i1 %1297, label %1322, label %1298

1298:                                             ; preds = %1369, %1343, %1293
  %1299 = tail call ptr @__errno_location() #13
  %1300 = load i32, ptr %1299, align 4, !tbaa !5
  %1301 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1302 = call i32 @s2n_print_stacktrace(ptr noundef %1301) #12
  %1303 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1304 = trunc nuw i8 %1303 to i1
  br i1 %1304, label %1305, label %1309

1305:                                             ; preds = %1298
  %1306 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1307 = call i32 @fileno(ptr noundef %1306) #12
  %1308 = call i32 @isatty(i32 noundef %1307) #12
  %.not271 = icmp eq i32 %1308, 0
  br i1 %.not271, label %1309, label %1310

1309:                                             ; preds = %1305, %1298
  br label %1310

1310:                                             ; preds = %1305, %1309
  %.str.5.sink771 = phi ptr [ @.str.5, %1309 ], [ @.str.2, %1305 ]
  store i32 %1300, ptr %1299, align 4, !tbaa !5
  %1311 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1312 = load i32, ptr @test_count, align 4, !tbaa !5
  %1313 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1314 = load i32, ptr %1313, align 4, !tbaa !5
  %1315 = call ptr @s2n_strerror(i32 noundef %1314, ptr noundef nonnull @.str.4) #12
  %1316 = load i32, ptr %1313, align 4, !tbaa !5
  %1317 = call ptr @s2n_strerror_debug(i32 noundef %1316, ptr noundef nonnull @.str.4) #12
  %1318 = load i32, ptr %1299, align 4, !tbaa !5
  %1319 = call ptr @strerror(i32 noundef %1318) #12
  %1320 = load i32, ptr %1299, align 4, !tbaa !5
  %1321 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1311, ptr noundef nonnull %.str.5.sink771, i32 noundef %1312, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 146, ptr noundef %1315, ptr noundef %1317, ptr noundef %1319, i32 noundef %1320) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1322:                                             ; preds = %1291, %1293
  %1323 = phi i32 [ %.pre, %1291 ], [ %1294, %1293 ]
  %1324 = add nsw i32 %1323, 1
  store i32 %1324, ptr @test_count, align 4, !tbaa !5
  %1325 = call i32 @s2n_stuffer_read_uint8(ptr noundef nonnull %13, ptr noundef nonnull %14) #12
  %1326 = icmp eq i32 %1325, -1
  br i1 %1326, label %1206, label %1327

1327:                                             ; preds = %1322
  %1328 = load i32, ptr @test_count, align 4, !tbaa !5
  %1329 = add nsw i32 %1328, 1
  store i32 %1329, ptr @test_count, align 4, !tbaa !5
  %1330 = load i8, ptr %14, align 1, !tbaa !46
  %1331 = zext i8 %1330 to i64
  %1332 = getelementptr inbounds i8, ptr %3, i64 8
  %1333 = load ptr, ptr %1332, align 8, !tbaa !9
  %1334 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %1333) #16
  %1335 = icmp eq i64 %1334, %1331
  br i1 %1335, label %1336, label %1238

1336:                                             ; preds = %1327
  %1337 = add nsw i32 %1328, 2
  store i32 %1337, ptr @test_count, align 4, !tbaa !5
  %1338 = zext i8 %1330 to i32
  %1339 = call i32 @s2n_stuffer_read_bytes(ptr noundef nonnull %13, ptr noundef nonnull %15, i32 noundef %1338) #12
  %1340 = icmp eq i32 %1339, -1
  br i1 %1340, label %1267, label %1341

1341:                                             ; preds = %1336
  %1342 = load i8, ptr %14, align 1, !tbaa !46
  %.not269.1 = icmp eq i8 %1342, 0
  %.pre308 = load i32, ptr @test_count, align 4, !tbaa !5
  br i1 %.not269.1, label %1348, label %1343

1343:                                             ; preds = %1341
  %1344 = add nsw i32 %.pre308, 1
  store i32 %1344, ptr @test_count, align 4, !tbaa !5
  %1345 = load ptr, ptr %1332, align 8, !tbaa !9
  %1346 = zext i8 %1342 to i64
  %bcmp270.1 = call i32 @bcmp(ptr nonnull %15, ptr %1345, i64 %1346)
  %1347 = icmp eq i32 %bcmp270.1, 0
  br i1 %1347, label %1348, label %1298

1348:                                             ; preds = %1343, %1341
  %1349 = phi i32 [ %1344, %1343 ], [ %.pre308, %1341 ]
  %1350 = add nsw i32 %1349, 1
  store i32 %1350, ptr @test_count, align 4, !tbaa !5
  %1351 = call i32 @s2n_stuffer_read_uint8(ptr noundef nonnull %13, ptr noundef nonnull %14) #12
  %1352 = icmp eq i32 %1351, -1
  br i1 %1352, label %1206, label %1353

1353:                                             ; preds = %1348
  %1354 = load i32, ptr @test_count, align 4, !tbaa !5
  %1355 = add nsw i32 %1354, 1
  store i32 %1355, ptr @test_count, align 4, !tbaa !5
  %1356 = load i8, ptr %14, align 1, !tbaa !46
  %1357 = zext i8 %1356 to i64
  %1358 = getelementptr inbounds i8, ptr %3, i64 16
  %1359 = load ptr, ptr %1358, align 16, !tbaa !9
  %1360 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %1359) #16
  %1361 = icmp eq i64 %1360, %1357
  br i1 %1361, label %1362, label %1238

1362:                                             ; preds = %1353
  %1363 = add nsw i32 %1354, 2
  store i32 %1363, ptr @test_count, align 4, !tbaa !5
  %1364 = zext i8 %1356 to i32
  %1365 = call i32 @s2n_stuffer_read_bytes(ptr noundef nonnull %13, ptr noundef nonnull %15, i32 noundef %1364) #12
  %1366 = icmp eq i32 %1365, -1
  br i1 %1366, label %1267, label %1367

1367:                                             ; preds = %1362
  %1368 = load i8, ptr %14, align 1, !tbaa !46
  %.not269.2 = icmp eq i8 %1368, 0
  %.pre309 = load i32, ptr @test_count, align 4, !tbaa !5
  br i1 %.not269.2, label %1374, label %1369

1369:                                             ; preds = %1367
  %1370 = add nsw i32 %.pre309, 1
  store i32 %1370, ptr @test_count, align 4, !tbaa !5
  %1371 = load ptr, ptr %1358, align 16, !tbaa !9
  %1372 = zext i8 %1368 to i64
  %bcmp270.2 = call i32 @bcmp(ptr nonnull %15, ptr %1371, i64 %1372)
  %1373 = icmp eq i32 %bcmp270.2, 0
  br i1 %1373, label %1374, label %1298

1374:                                             ; preds = %1369, %1367
  %1375 = phi i32 [ %1370, %1369 ], [ %.pre309, %1367 ]
  %1376 = add nsw i32 %1375, 1
  store i32 %1376, ptr @test_count, align 4, !tbaa !5
  %1377 = getelementptr inbounds i8, ptr %13, i64 28
  %1378 = load i32, ptr %1377, align 4, !tbaa !47
  %1379 = getelementptr inbounds i8, ptr %13, i64 24
  %1380 = load i32, ptr %1379, align 8, !tbaa !48
  %1381 = icmp eq i32 %1378, %1380
  br i1 %1381, label %1406, label %1382

1382:                                             ; preds = %1374
  %1383 = tail call ptr @__errno_location() #13
  %1384 = load i32, ptr %1383, align 4, !tbaa !5
  %1385 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1386 = call i32 @s2n_print_stacktrace(ptr noundef %1385) #12
  %1387 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1388 = trunc nuw i8 %1387 to i1
  br i1 %1388, label %1389, label %1393

1389:                                             ; preds = %1382
  %1390 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1391 = call i32 @fileno(ptr noundef %1390) #12
  %1392 = call i32 @isatty(i32 noundef %1391) #12
  %.not211 = icmp eq i32 %1392, 0
  br i1 %.not211, label %1393, label %1394

1393:                                             ; preds = %1389, %1382
  br label %1394

1394:                                             ; preds = %1389, %1393
  %.str.5.sink782 = phi ptr [ @.str.5, %1393 ], [ @.str.2, %1389 ]
  store i32 %1384, ptr %1383, align 4, !tbaa !5
  %1395 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1396 = load i32, ptr @test_count, align 4, !tbaa !5
  %1397 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1398 = load i32, ptr %1397, align 4, !tbaa !5
  %1399 = call ptr @s2n_strerror(i32 noundef %1398, ptr noundef nonnull @.str.4) #12
  %1400 = load i32, ptr %1397, align 4, !tbaa !5
  %1401 = call ptr @s2n_strerror_debug(i32 noundef %1400, ptr noundef nonnull @.str.4) #12
  %1402 = load i32, ptr %1383, align 4, !tbaa !5
  %1403 = call ptr @strerror(i32 noundef %1402) #12
  %1404 = load i32, ptr %1383, align 4, !tbaa !5
  %1405 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1395, ptr noundef nonnull %.str.5.sink782, i32 noundef %1396, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 149, ptr noundef %1399, ptr noundef %1401, ptr noundef %1403, i32 noundef %1404) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1406:                                             ; preds = %1374
  call void @llvm.lifetime.end.p0(i64 255, ptr nonnull %15) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %14) #12
  %1407 = call i32 @s2n_stuffer_free(ptr noundef nonnull %13) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %13) #12
  %1408 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %12) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #12
  %1409 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %11) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #12
  %1410 = call ptr @s2n_connection_new(i32 noundef 1) #12
  store ptr %1410, ptr %16, align 8, !tbaa !9
  %1411 = load i32, ptr @test_count, align 4, !tbaa !5
  %1412 = add nsw i32 %1411, 1
  store i32 %1412, ptr @test_count, align 4, !tbaa !5
  %1413 = icmp eq ptr %1410, null
  br i1 %1413, label %1414, label %1438

1414:                                             ; preds = %1406
  %1415 = tail call ptr @__errno_location() #13
  %1416 = load i32, ptr %1415, align 4, !tbaa !5
  %1417 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1418 = call i32 @s2n_print_stacktrace(ptr noundef %1417) #12
  %1419 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1420 = trunc nuw i8 %1419 to i1
  br i1 %1420, label %1421, label %1425

1421:                                             ; preds = %1414
  %1422 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1423 = call i32 @fileno(ptr noundef %1422) #12
  %1424 = call i32 @isatty(i32 noundef %1423) #12
  %.not267 = icmp eq i32 %1424, 0
  br i1 %.not267, label %1425, label %1426

1425:                                             ; preds = %1421, %1414
  br label %1426

1426:                                             ; preds = %1421, %1425
  %.str.5.sink793 = phi ptr [ @.str.5, %1425 ], [ @.str.2, %1421 ]
  store i32 %1416, ptr %1415, align 4, !tbaa !5
  %1427 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1428 = load i32, ptr @test_count, align 4, !tbaa !5
  %1429 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1430 = load i32, ptr %1429, align 4, !tbaa !5
  %1431 = call ptr @s2n_strerror(i32 noundef %1430, ptr noundef nonnull @.str.4) #12
  %1432 = load i32, ptr %1429, align 4, !tbaa !5
  %1433 = call ptr @s2n_strerror_debug(i32 noundef %1432, ptr noundef nonnull @.str.4) #12
  %1434 = load i32, ptr %1415, align 4, !tbaa !5
  %1435 = call ptr @strerror(i32 noundef %1434) #12
  %1436 = load i32, ptr %1415, align 4, !tbaa !5
  %1437 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1427, ptr noundef nonnull %.str.5.sink793, i32 noundef %1428, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 158, ptr noundef %1431, ptr noundef %1433, ptr noundef %1435, i32 noundef %1436) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1438:                                             ; preds = %1406
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %17) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %17, i8 0, i64 40, i1 false)
  %1439 = add nsw i32 %1411, 2
  store i32 %1439, ptr @test_count, align 4, !tbaa !5
  %1440 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %17, i32 noundef 0) #12
  %1441 = icmp eq i32 %1440, -1
  br i1 %1441, label %1442, label %1466

1442:                                             ; preds = %1438
  %1443 = tail call ptr @__errno_location() #13
  %1444 = load i32, ptr %1443, align 4, !tbaa !5
  %1445 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1446 = call i32 @s2n_print_stacktrace(ptr noundef %1445) #12
  %1447 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1448 = trunc nuw i8 %1447 to i1
  br i1 %1448, label %1449, label %1453

1449:                                             ; preds = %1442
  %1450 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1451 = call i32 @fileno(ptr noundef %1450) #12
  %1452 = call i32 @isatty(i32 noundef %1451) #12
  %.not266 = icmp eq i32 %1452, 0
  br i1 %.not266, label %1453, label %1454

1453:                                             ; preds = %1449, %1442
  br label %1454

1454:                                             ; preds = %1449, %1453
  %.str.5.sink804 = phi ptr [ @.str.5, %1453 ], [ @.str.2, %1449 ]
  store i32 %1444, ptr %1443, align 4, !tbaa !5
  %1455 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1456 = load i32, ptr @test_count, align 4, !tbaa !5
  %1457 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1458 = load i32, ptr %1457, align 4, !tbaa !5
  %1459 = call ptr @s2n_strerror(i32 noundef %1458, ptr noundef nonnull @.str.4) #12
  %1460 = load i32, ptr %1457, align 4, !tbaa !5
  %1461 = call ptr @s2n_strerror_debug(i32 noundef %1460, ptr noundef nonnull @.str.4) #12
  %1462 = load i32, ptr %1443, align 4, !tbaa !5
  %1463 = call ptr @strerror(i32 noundef %1462) #12
  %1464 = load i32, ptr %1443, align 4, !tbaa !5
  %1465 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1455, ptr noundef nonnull %.str.5.sink804, i32 noundef %1456, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 160, ptr noundef %1459, ptr noundef %1461, ptr noundef %1463, i32 noundef %1464) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1466:                                             ; preds = %1438
  %1467 = load i32, ptr @test_count, align 4, !tbaa !5
  %1468 = add nsw i32 %1467, 1
  store i32 %1468, ptr @test_count, align 4, !tbaa !5
  %1469 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_server_npn_extension, i64 16), align 8, !tbaa !44
  %1470 = load ptr, ptr %16, align 8, !tbaa !9
  %1471 = call i32 %1469(ptr noundef %1470, ptr noundef nonnull %17) #12
  %1472 = icmp eq i32 %1471, -1
  br i1 %1472, label %1473, label %1497

1473:                                             ; preds = %1466
  %1474 = tail call ptr @__errno_location() #13
  %1475 = load i32, ptr %1474, align 4, !tbaa !5
  %1476 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1477 = call i32 @s2n_print_stacktrace(ptr noundef %1476) #12
  %1478 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1479 = trunc nuw i8 %1478 to i1
  br i1 %1479, label %1480, label %1484

1480:                                             ; preds = %1473
  %1481 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1482 = call i32 @fileno(ptr noundef %1481) #12
  %1483 = call i32 @isatty(i32 noundef %1482) #12
  %.not265 = icmp eq i32 %1483, 0
  br i1 %.not265, label %1484, label %1485

1484:                                             ; preds = %1480, %1473
  br label %1485

1485:                                             ; preds = %1480, %1484
  %.str.5.sink815 = phi ptr [ @.str.5, %1484 ], [ @.str.2, %1480 ]
  store i32 %1475, ptr %1474, align 4, !tbaa !5
  %1486 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1487 = load i32, ptr @test_count, align 4, !tbaa !5
  %1488 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1489 = load i32, ptr %1488, align 4, !tbaa !5
  %1490 = call ptr @s2n_strerror(i32 noundef %1489, ptr noundef nonnull @.str.4) #12
  %1491 = load i32, ptr %1488, align 4, !tbaa !5
  %1492 = call ptr @s2n_strerror_debug(i32 noundef %1491, ptr noundef nonnull @.str.4) #12
  %1493 = load i32, ptr %1474, align 4, !tbaa !5
  %1494 = call ptr @strerror(i32 noundef %1493) #12
  %1495 = load i32, ptr %1474, align 4, !tbaa !5
  %1496 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1486, ptr noundef nonnull %.str.5.sink815, i32 noundef %1487, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 162, ptr noundef %1490, ptr noundef %1492, ptr noundef %1494, i32 noundef %1495) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1497:                                             ; preds = %1466
  %1498 = load i32, ptr @test_count, align 4, !tbaa !5
  %1499 = add nsw i32 %1498, 1
  store i32 %1499, ptr @test_count, align 4, !tbaa !5
  %1500 = load ptr, ptr %16, align 8, !tbaa !9
  %1501 = call ptr @s2n_get_application_protocol(ptr noundef %1500) #12
  %1502 = icmp eq ptr %1501, null
  br i1 %1502, label %1527, label %1503

1503:                                             ; preds = %1497
  %1504 = tail call ptr @__errno_location() #13
  %1505 = load i32, ptr %1504, align 4, !tbaa !5
  %1506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1507 = call i32 @s2n_print_stacktrace(ptr noundef %1506) #12
  %1508 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1509 = trunc nuw i8 %1508 to i1
  br i1 %1509, label %1510, label %1514

1510:                                             ; preds = %1503
  %1511 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1512 = call i32 @fileno(ptr noundef %1511) #12
  %1513 = call i32 @isatty(i32 noundef %1512) #12
  %.not212 = icmp eq i32 %1513, 0
  br i1 %.not212, label %1514, label %1515

1514:                                             ; preds = %1510, %1503
  br label %1515

1515:                                             ; preds = %1510, %1514
  %.str.5.sink826 = phi ptr [ @.str.5, %1514 ], [ @.str.2, %1510 ]
  store i32 %1505, ptr %1504, align 4, !tbaa !5
  %1516 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1517 = load i32, ptr @test_count, align 4, !tbaa !5
  %1518 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1519 = load i32, ptr %1518, align 4, !tbaa !5
  %1520 = call ptr @s2n_strerror(i32 noundef %1519, ptr noundef nonnull @.str.4) #12
  %1521 = load i32, ptr %1518, align 4, !tbaa !5
  %1522 = call ptr @s2n_strerror_debug(i32 noundef %1521, ptr noundef nonnull @.str.4) #12
  %1523 = load i32, ptr %1504, align 4, !tbaa !5
  %1524 = call ptr @strerror(i32 noundef %1523) #12
  %1525 = load i32, ptr %1504, align 4, !tbaa !5
  %1526 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1516, ptr noundef nonnull %.str.5.sink826, i32 noundef %1517, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 163, ptr noundef %1520, ptr noundef %1522, ptr noundef %1524, i32 noundef %1525) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1527:                                             ; preds = %1497
  %1528 = call i32 @s2n_stuffer_free(ptr noundef nonnull %17) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %17) #12
  %1529 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %16) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #12
  %1530 = call ptr @s2n_connection_new(i32 noundef 1) #12
  store ptr %1530, ptr %18, align 8, !tbaa !9
  %1531 = load i32, ptr @test_count, align 4, !tbaa !5
  %1532 = add nsw i32 %1531, 1
  store i32 %1532, ptr @test_count, align 4, !tbaa !5
  %1533 = icmp eq ptr %1530, null
  br i1 %1533, label %1534, label %1558

1534:                                             ; preds = %1527
  %1535 = tail call ptr @__errno_location() #13
  %1536 = load i32, ptr %1535, align 4, !tbaa !5
  %1537 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1538 = call i32 @s2n_print_stacktrace(ptr noundef %1537) #12
  %1539 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1540 = trunc nuw i8 %1539 to i1
  br i1 %1540, label %1541, label %1545

1541:                                             ; preds = %1534
  %1542 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1543 = call i32 @fileno(ptr noundef %1542) #12
  %1544 = call i32 @isatty(i32 noundef %1543) #12
  %.not264 = icmp eq i32 %1544, 0
  br i1 %.not264, label %1545, label %1546

1545:                                             ; preds = %1541, %1534
  br label %1546

1546:                                             ; preds = %1541, %1545
  %.str.5.sink837 = phi ptr [ @.str.5, %1545 ], [ @.str.2, %1541 ]
  store i32 %1536, ptr %1535, align 4, !tbaa !5
  %1547 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1548 = load i32, ptr @test_count, align 4, !tbaa !5
  %1549 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1550 = load i32, ptr %1549, align 4, !tbaa !5
  %1551 = call ptr @s2n_strerror(i32 noundef %1550, ptr noundef nonnull @.str.4) #12
  %1552 = load i32, ptr %1549, align 4, !tbaa !5
  %1553 = call ptr @s2n_strerror_debug(i32 noundef %1552, ptr noundef nonnull @.str.4) #12
  %1554 = load i32, ptr %1535, align 4, !tbaa !5
  %1555 = call ptr @strerror(i32 noundef %1554) #12
  %1556 = load i32, ptr %1535, align 4, !tbaa !5
  %1557 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1547, ptr noundef nonnull %.str.5.sink837, i32 noundef %1548, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 169, ptr noundef %1551, ptr noundef %1553, ptr noundef %1555, i32 noundef %1556) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1558:                                             ; preds = %1527
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #12
  %1559 = call ptr @s2n_config_new() #12
  store ptr %1559, ptr %19, align 8, !tbaa !9
  %1560 = load i32, ptr @test_count, align 4, !tbaa !5
  %1561 = add nsw i32 %1560, 1
  store i32 %1561, ptr @test_count, align 4, !tbaa !5
  %1562 = icmp eq ptr %1559, null
  br i1 %1562, label %1563, label %1587

1563:                                             ; preds = %1558
  %1564 = tail call ptr @__errno_location() #13
  %1565 = load i32, ptr %1564, align 4, !tbaa !5
  %1566 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1567 = call i32 @s2n_print_stacktrace(ptr noundef %1566) #12
  %1568 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1569 = trunc nuw i8 %1568 to i1
  br i1 %1569, label %1570, label %1574

1570:                                             ; preds = %1563
  %1571 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1572 = call i32 @fileno(ptr noundef %1571) #12
  %1573 = call i32 @isatty(i32 noundef %1572) #12
  %.not263 = icmp eq i32 %1573, 0
  br i1 %.not263, label %1574, label %1575

1574:                                             ; preds = %1570, %1563
  br label %1575

1575:                                             ; preds = %1570, %1574
  %.str.5.sink848 = phi ptr [ @.str.5, %1574 ], [ @.str.2, %1570 ]
  store i32 %1565, ptr %1564, align 4, !tbaa !5
  %1576 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1577 = load i32, ptr @test_count, align 4, !tbaa !5
  %1578 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1579 = load i32, ptr %1578, align 4, !tbaa !5
  %1580 = call ptr @s2n_strerror(i32 noundef %1579, ptr noundef nonnull @.str.4) #12
  %1581 = load i32, ptr %1578, align 4, !tbaa !5
  %1582 = call ptr @s2n_strerror_debug(i32 noundef %1581, ptr noundef nonnull @.str.4) #12
  %1583 = load i32, ptr %1564, align 4, !tbaa !5
  %1584 = call ptr @strerror(i32 noundef %1583) #12
  %1585 = load i32, ptr %1564, align 4, !tbaa !5
  %1586 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1576, ptr noundef nonnull %.str.5.sink848, i32 noundef %1577, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 171, ptr noundef %1580, ptr noundef %1582, ptr noundef %1584, i32 noundef %1585) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1587:                                             ; preds = %1558
  %1588 = add nsw i32 %1560, 2
  store i32 %1588, ptr @test_count, align 4, !tbaa !5
  %1589 = call i32 @s2n_config_set_protocol_preferences(ptr noundef nonnull %1559, ptr noundef nonnull %3, i32 noundef 3) #12
  %1590 = icmp eq i32 %1589, -1
  br i1 %1590, label %1591, label %1615

1591:                                             ; preds = %1587
  %1592 = tail call ptr @__errno_location() #13
  %1593 = load i32, ptr %1592, align 4, !tbaa !5
  %1594 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1595 = call i32 @s2n_print_stacktrace(ptr noundef %1594) #12
  %1596 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1597 = trunc nuw i8 %1596 to i1
  br i1 %1597, label %1598, label %1602

1598:                                             ; preds = %1591
  %1599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1600 = call i32 @fileno(ptr noundef %1599) #12
  %1601 = call i32 @isatty(i32 noundef %1600) #12
  %.not262 = icmp eq i32 %1601, 0
  br i1 %.not262, label %1602, label %1603

1602:                                             ; preds = %1598, %1591
  br label %1603

1603:                                             ; preds = %1598, %1602
  %.str.5.sink859 = phi ptr [ @.str.5, %1602 ], [ @.str.2, %1598 ]
  store i32 %1593, ptr %1592, align 4, !tbaa !5
  %1604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1605 = load i32, ptr @test_count, align 4, !tbaa !5
  %1606 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1607 = load i32, ptr %1606, align 4, !tbaa !5
  %1608 = call ptr @s2n_strerror(i32 noundef %1607, ptr noundef nonnull @.str.4) #12
  %1609 = load i32, ptr %1606, align 4, !tbaa !5
  %1610 = call ptr @s2n_strerror_debug(i32 noundef %1609, ptr noundef nonnull @.str.4) #12
  %1611 = load i32, ptr %1592, align 4, !tbaa !5
  %1612 = call ptr @strerror(i32 noundef %1611) #12
  %1613 = load i32, ptr %1592, align 4, !tbaa !5
  %1614 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1604, ptr noundef nonnull %.str.5.sink859, i32 noundef %1605, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 172, ptr noundef %1608, ptr noundef %1610, ptr noundef %1612, i32 noundef %1613) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1615:                                             ; preds = %1587
  %1616 = load i32, ptr @test_count, align 4, !tbaa !5
  %1617 = add nsw i32 %1616, 1
  store i32 %1617, ptr @test_count, align 4, !tbaa !5
  %1618 = load ptr, ptr %18, align 8, !tbaa !9
  %1619 = load ptr, ptr %19, align 8, !tbaa !9
  %1620 = call i32 @s2n_connection_set_config(ptr noundef %1618, ptr noundef %1619) #12
  %1621 = icmp eq i32 %1620, -1
  br i1 %1621, label %1622, label %1646

1622:                                             ; preds = %1615
  %1623 = tail call ptr @__errno_location() #13
  %1624 = load i32, ptr %1623, align 4, !tbaa !5
  %1625 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1626 = call i32 @s2n_print_stacktrace(ptr noundef %1625) #12
  %1627 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1628 = trunc nuw i8 %1627 to i1
  br i1 %1628, label %1629, label %1633

1629:                                             ; preds = %1622
  %1630 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1631 = call i32 @fileno(ptr noundef %1630) #12
  %1632 = call i32 @isatty(i32 noundef %1631) #12
  %.not261 = icmp eq i32 %1632, 0
  br i1 %.not261, label %1633, label %1634

1633:                                             ; preds = %1629, %1622
  br label %1634

1634:                                             ; preds = %1629, %1633
  %.str.5.sink870 = phi ptr [ @.str.5, %1633 ], [ @.str.2, %1629 ]
  store i32 %1624, ptr %1623, align 4, !tbaa !5
  %1635 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1636 = load i32, ptr @test_count, align 4, !tbaa !5
  %1637 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1638 = load i32, ptr %1637, align 4, !tbaa !5
  %1639 = call ptr @s2n_strerror(i32 noundef %1638, ptr noundef nonnull @.str.4) #12
  %1640 = load i32, ptr %1637, align 4, !tbaa !5
  %1641 = call ptr @s2n_strerror_debug(i32 noundef %1640, ptr noundef nonnull @.str.4) #12
  %1642 = load i32, ptr %1623, align 4, !tbaa !5
  %1643 = call ptr @strerror(i32 noundef %1642) #12
  %1644 = load i32, ptr %1623, align 4, !tbaa !5
  %1645 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1635, ptr noundef nonnull %.str.5.sink870, i32 noundef %1636, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 173, ptr noundef %1639, ptr noundef %1641, ptr noundef %1643, i32 noundef %1644) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1646:                                             ; preds = %1615
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %20) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %20, i8 0, i64 40, i1 false)
  %1647 = load i32, ptr @test_count, align 4, !tbaa !5
  %1648 = add nsw i32 %1647, 1
  store i32 %1648, ptr @test_count, align 4, !tbaa !5
  %1649 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %20, i32 noundef 0) #12
  %1650 = icmp eq i32 %1649, -1
  br i1 %1650, label %1651, label %1675

1651:                                             ; preds = %1646
  %1652 = tail call ptr @__errno_location() #13
  %1653 = load i32, ptr %1652, align 4, !tbaa !5
  %1654 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1655 = call i32 @s2n_print_stacktrace(ptr noundef %1654) #12
  %1656 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1657 = trunc nuw i8 %1656 to i1
  br i1 %1657, label %1658, label %1662

1658:                                             ; preds = %1651
  %1659 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1660 = call i32 @fileno(ptr noundef %1659) #12
  %1661 = call i32 @isatty(i32 noundef %1660) #12
  %.not260 = icmp eq i32 %1661, 0
  br i1 %.not260, label %1662, label %1663

1662:                                             ; preds = %1658, %1651
  br label %1663

1663:                                             ; preds = %1658, %1662
  %.str.5.sink881 = phi ptr [ @.str.5, %1662 ], [ @.str.2, %1658 ]
  store i32 %1653, ptr %1652, align 4, !tbaa !5
  %1664 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1665 = load i32, ptr @test_count, align 4, !tbaa !5
  %1666 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1667 = load i32, ptr %1666, align 4, !tbaa !5
  %1668 = call ptr @s2n_strerror(i32 noundef %1667, ptr noundef nonnull @.str.4) #12
  %1669 = load i32, ptr %1666, align 4, !tbaa !5
  %1670 = call ptr @s2n_strerror_debug(i32 noundef %1669, ptr noundef nonnull @.str.4) #12
  %1671 = load i32, ptr %1652, align 4, !tbaa !5
  %1672 = call ptr @strerror(i32 noundef %1671) #12
  %1673 = load i32, ptr %1652, align 4, !tbaa !5
  %1674 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1664, ptr noundef nonnull %.str.5.sink881, i32 noundef %1665, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 176, ptr noundef %1668, ptr noundef %1670, ptr noundef %1672, i32 noundef %1673) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1675:                                             ; preds = %1646
  %1676 = load i32, ptr @test_count, align 4, !tbaa !5
  %1677 = add nsw i32 %1676, 1
  store i32 %1677, ptr @test_count, align 4, !tbaa !5
  %1678 = load ptr, ptr %18, align 8, !tbaa !9
  %1679 = call i32 %1173(ptr noundef %1678, ptr noundef nonnull %20) #12
  %1680 = icmp eq i32 %1679, -1
  br i1 %1680, label %1681, label %1705

1681:                                             ; preds = %1675
  %1682 = tail call ptr @__errno_location() #13
  %1683 = load i32, ptr %1682, align 4, !tbaa !5
  %1684 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1685 = call i32 @s2n_print_stacktrace(ptr noundef %1684) #12
  %1686 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1687 = trunc nuw i8 %1686 to i1
  br i1 %1687, label %1688, label %1692

1688:                                             ; preds = %1681
  %1689 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1690 = call i32 @fileno(ptr noundef %1689) #12
  %1691 = call i32 @isatty(i32 noundef %1690) #12
  %.not259 = icmp eq i32 %1691, 0
  br i1 %.not259, label %1692, label %1693

1692:                                             ; preds = %1688, %1681
  br label %1693

1693:                                             ; preds = %1688, %1692
  %.str.5.sink892 = phi ptr [ @.str.5, %1692 ], [ @.str.2, %1688 ]
  store i32 %1683, ptr %1682, align 4, !tbaa !5
  %1694 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1695 = load i32, ptr @test_count, align 4, !tbaa !5
  %1696 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1697 = load i32, ptr %1696, align 4, !tbaa !5
  %1698 = call ptr @s2n_strerror(i32 noundef %1697, ptr noundef nonnull @.str.4) #12
  %1699 = load i32, ptr %1696, align 4, !tbaa !5
  %1700 = call ptr @s2n_strerror_debug(i32 noundef %1699, ptr noundef nonnull @.str.4) #12
  %1701 = load i32, ptr %1682, align 4, !tbaa !5
  %1702 = call ptr @strerror(i32 noundef %1701) #12
  %1703 = load i32, ptr %1682, align 4, !tbaa !5
  %1704 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1694, ptr noundef nonnull %.str.5.sink892, i32 noundef %1695, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 178, ptr noundef %1698, ptr noundef %1700, ptr noundef %1702, i32 noundef %1703) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1705:                                             ; preds = %1675
  %1706 = load i32, ptr @test_count, align 4, !tbaa !5
  %1707 = add nsw i32 %1706, 1
  store i32 %1707, ptr @test_count, align 4, !tbaa !5
  %1708 = load ptr, ptr %18, align 8, !tbaa !9
  %1709 = call i32 %1469(ptr noundef %1708, ptr noundef nonnull %20) #12
  %1710 = icmp eq i32 %1709, -1
  br i1 %1710, label %1711, label %1735

1711:                                             ; preds = %1705
  %1712 = tail call ptr @__errno_location() #13
  %1713 = load i32, ptr %1712, align 4, !tbaa !5
  %1714 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1715 = call i32 @s2n_print_stacktrace(ptr noundef %1714) #12
  %1716 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1717 = trunc nuw i8 %1716 to i1
  br i1 %1717, label %1718, label %1722

1718:                                             ; preds = %1711
  %1719 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1720 = call i32 @fileno(ptr noundef %1719) #12
  %1721 = call i32 @isatty(i32 noundef %1720) #12
  %.not258 = icmp eq i32 %1721, 0
  br i1 %.not258, label %1722, label %1723

1722:                                             ; preds = %1718, %1711
  br label %1723

1723:                                             ; preds = %1718, %1722
  %.str.5.sink903 = phi ptr [ @.str.5, %1722 ], [ @.str.2, %1718 ]
  store i32 %1713, ptr %1712, align 4, !tbaa !5
  %1724 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1725 = load i32, ptr @test_count, align 4, !tbaa !5
  %1726 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1727 = load i32, ptr %1726, align 4, !tbaa !5
  %1728 = call ptr @s2n_strerror(i32 noundef %1727, ptr noundef nonnull @.str.4) #12
  %1729 = load i32, ptr %1726, align 4, !tbaa !5
  %1730 = call ptr @s2n_strerror_debug(i32 noundef %1729, ptr noundef nonnull @.str.4) #12
  %1731 = load i32, ptr %1712, align 4, !tbaa !5
  %1732 = call ptr @strerror(i32 noundef %1731) #12
  %1733 = load i32, ptr %1712, align 4, !tbaa !5
  %1734 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1724, ptr noundef nonnull %.str.5.sink903, i32 noundef %1725, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 179, ptr noundef %1728, ptr noundef %1730, ptr noundef %1732, i32 noundef %1733) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1735:                                             ; preds = %1705
  %1736 = load i32, ptr @test_count, align 4, !tbaa !5
  %1737 = add nsw i32 %1736, 1
  store i32 %1737, ptr @test_count, align 4, !tbaa !5
  %1738 = load ptr, ptr %18, align 8, !tbaa !9
  %1739 = call ptr @s2n_get_application_protocol(ptr noundef %1738) #12
  %1740 = icmp eq ptr %1739, null
  br i1 %1740, label %1741, label %1765

1741:                                             ; preds = %1735
  %1742 = tail call ptr @__errno_location() #13
  %1743 = load i32, ptr %1742, align 4, !tbaa !5
  %1744 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1745 = call i32 @s2n_print_stacktrace(ptr noundef %1744) #12
  %1746 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1747 = trunc nuw i8 %1746 to i1
  br i1 %1747, label %1748, label %1752

1748:                                             ; preds = %1741
  %1749 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1750 = call i32 @fileno(ptr noundef %1749) #12
  %1751 = call i32 @isatty(i32 noundef %1750) #12
  %.not257 = icmp eq i32 %1751, 0
  br i1 %.not257, label %1752, label %1753

1752:                                             ; preds = %1748, %1741
  br label %1753

1753:                                             ; preds = %1748, %1752
  %.str.5.sink914 = phi ptr [ @.str.5, %1752 ], [ @.str.2, %1748 ]
  store i32 %1743, ptr %1742, align 4, !tbaa !5
  %1754 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1755 = load i32, ptr @test_count, align 4, !tbaa !5
  %1756 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1757 = load i32, ptr %1756, align 4, !tbaa !5
  %1758 = call ptr @s2n_strerror(i32 noundef %1757, ptr noundef nonnull @.str.4) #12
  %1759 = load i32, ptr %1756, align 4, !tbaa !5
  %1760 = call ptr @s2n_strerror_debug(i32 noundef %1759, ptr noundef nonnull @.str.4) #12
  %1761 = load i32, ptr %1742, align 4, !tbaa !5
  %1762 = call ptr @strerror(i32 noundef %1761) #12
  %1763 = load i32, ptr %1742, align 4, !tbaa !5
  %1764 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1754, ptr noundef nonnull %.str.5.sink914, i32 noundef %1755, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 182, ptr noundef %1758, ptr noundef %1760, ptr noundef %1762, i32 noundef %1763) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1765:                                             ; preds = %1735
  %1766 = load ptr, ptr %3, align 16, !tbaa !9
  %char0 = load i8, ptr %1766, align 1
  %.not213 = icmp eq i8 %char0, 0
  br i1 %.not213, label %1799, label %1767

1767:                                             ; preds = %1765
  %1768 = load i32, ptr @test_count, align 4, !tbaa !5
  %1769 = add nsw i32 %1768, 1
  store i32 %1769, ptr @test_count, align 4, !tbaa !5
  %1770 = load ptr, ptr %18, align 8, !tbaa !9
  %1771 = call ptr @s2n_get_application_protocol(ptr noundef %1770) #12
  %1772 = load ptr, ptr %3, align 16, !tbaa !9
  %1773 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %1772) #16
  %bcmp = call i32 @bcmp(ptr %1771, ptr %1772, i64 %1773)
  %1774 = icmp eq i32 %bcmp, 0
  br i1 %1774, label %1799, label %1775

1775:                                             ; preds = %1767
  %1776 = tail call ptr @__errno_location() #13
  %1777 = load i32, ptr %1776, align 4, !tbaa !5
  %1778 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1779 = call i32 @s2n_print_stacktrace(ptr noundef %1778) #12
  %1780 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1781 = trunc nuw i8 %1780 to i1
  br i1 %1781, label %1782, label %1786

1782:                                             ; preds = %1775
  %1783 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1784 = call i32 @fileno(ptr noundef %1783) #12
  %1785 = call i32 @isatty(i32 noundef %1784) #12
  %.not214 = icmp eq i32 %1785, 0
  br i1 %.not214, label %1786, label %1787

1786:                                             ; preds = %1782, %1775
  br label %1787

1787:                                             ; preds = %1782, %1786
  %.str.5.sink925 = phi ptr [ @.str.5, %1786 ], [ @.str.2, %1782 ]
  store i32 %1777, ptr %1776, align 4, !tbaa !5
  %1788 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1789 = load i32, ptr @test_count, align 4, !tbaa !5
  %1790 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1791 = load i32, ptr %1790, align 4, !tbaa !5
  %1792 = call ptr @s2n_strerror(i32 noundef %1791, ptr noundef nonnull @.str.4) #12
  %1793 = load i32, ptr %1790, align 4, !tbaa !5
  %1794 = call ptr @s2n_strerror_debug(i32 noundef %1793, ptr noundef nonnull @.str.4) #12
  %1795 = load i32, ptr %1776, align 4, !tbaa !5
  %1796 = call ptr @strerror(i32 noundef %1795) #12
  %1797 = load i32, ptr %1776, align 4, !tbaa !5
  %1798 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1788, ptr noundef nonnull %.str.5.sink925, i32 noundef %1789, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 183, ptr noundef %1792, ptr noundef %1794, ptr noundef %1796, i32 noundef %1797) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1799:                                             ; preds = %1767, %1765
  %1800 = call i32 @s2n_stuffer_free(ptr noundef nonnull %20) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %20) #12
  %1801 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %19) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #12
  %1802 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %18) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #12
  %1803 = call ptr @s2n_connection_new(i32 noundef 1) #12
  store ptr %1803, ptr %21, align 8, !tbaa !9
  %1804 = load i32, ptr @test_count, align 4, !tbaa !5
  %1805 = add nsw i32 %1804, 1
  store i32 %1805, ptr @test_count, align 4, !tbaa !5
  %1806 = icmp eq ptr %1803, null
  br i1 %1806, label %1807, label %1831

1807:                                             ; preds = %1799
  %1808 = tail call ptr @__errno_location() #13
  %1809 = load i32, ptr %1808, align 4, !tbaa !5
  %1810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1811 = call i32 @s2n_print_stacktrace(ptr noundef %1810) #12
  %1812 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1813 = trunc nuw i8 %1812 to i1
  br i1 %1813, label %1814, label %1818

1814:                                             ; preds = %1807
  %1815 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1816 = call i32 @fileno(ptr noundef %1815) #12
  %1817 = call i32 @isatty(i32 noundef %1816) #12
  %.not256 = icmp eq i32 %1817, 0
  br i1 %.not256, label %1818, label %1819

1818:                                             ; preds = %1814, %1807
  br label %1819

1819:                                             ; preds = %1814, %1818
  %.str.5.sink936 = phi ptr [ @.str.5, %1818 ], [ @.str.2, %1814 ]
  store i32 %1809, ptr %1808, align 4, !tbaa !5
  %1820 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1821 = load i32, ptr @test_count, align 4, !tbaa !5
  %1822 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1823 = load i32, ptr %1822, align 4, !tbaa !5
  %1824 = call ptr @s2n_strerror(i32 noundef %1823, ptr noundef nonnull @.str.4) #12
  %1825 = load i32, ptr %1822, align 4, !tbaa !5
  %1826 = call ptr @s2n_strerror_debug(i32 noundef %1825, ptr noundef nonnull @.str.4) #12
  %1827 = load i32, ptr %1808, align 4, !tbaa !5
  %1828 = call ptr @strerror(i32 noundef %1827) #12
  %1829 = load i32, ptr %1808, align 4, !tbaa !5
  %1830 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1820, ptr noundef nonnull %.str.5.sink936, i32 noundef %1821, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 189, ptr noundef %1824, ptr noundef %1826, ptr noundef %1828, i32 noundef %1829) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1831:                                             ; preds = %1799
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %22) #12
  %1832 = call ptr @s2n_config_new() #12
  store ptr %1832, ptr %22, align 8, !tbaa !9
  %1833 = load i32, ptr @test_count, align 4, !tbaa !5
  %1834 = add nsw i32 %1833, 1
  store i32 %1834, ptr @test_count, align 4, !tbaa !5
  %1835 = icmp eq ptr %1832, null
  br i1 %1835, label %1836, label %1860

1836:                                             ; preds = %1831
  %1837 = tail call ptr @__errno_location() #13
  %1838 = load i32, ptr %1837, align 4, !tbaa !5
  %1839 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1840 = call i32 @s2n_print_stacktrace(ptr noundef %1839) #12
  %1841 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1842 = trunc nuw i8 %1841 to i1
  br i1 %1842, label %1843, label %1847

1843:                                             ; preds = %1836
  %1844 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1845 = call i32 @fileno(ptr noundef %1844) #12
  %1846 = call i32 @isatty(i32 noundef %1845) #12
  %.not255 = icmp eq i32 %1846, 0
  br i1 %.not255, label %1847, label %1848

1847:                                             ; preds = %1843, %1836
  br label %1848

1848:                                             ; preds = %1843, %1847
  %.str.5.sink947 = phi ptr [ @.str.5, %1847 ], [ @.str.2, %1843 ]
  store i32 %1838, ptr %1837, align 4, !tbaa !5
  %1849 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1850 = load i32, ptr @test_count, align 4, !tbaa !5
  %1851 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1852 = load i32, ptr %1851, align 4, !tbaa !5
  %1853 = call ptr @s2n_strerror(i32 noundef %1852, ptr noundef nonnull @.str.4) #12
  %1854 = load i32, ptr %1851, align 4, !tbaa !5
  %1855 = call ptr @s2n_strerror_debug(i32 noundef %1854, ptr noundef nonnull @.str.4) #12
  %1856 = load i32, ptr %1837, align 4, !tbaa !5
  %1857 = call ptr @strerror(i32 noundef %1856) #12
  %1858 = load i32, ptr %1837, align 4, !tbaa !5
  %1859 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1849, ptr noundef nonnull %.str.5.sink947, i32 noundef %1850, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 191, ptr noundef %1853, ptr noundef %1855, ptr noundef %1857, i32 noundef %1858) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1860:                                             ; preds = %1831
  %1861 = add nsw i32 %1833, 2
  store i32 %1861, ptr @test_count, align 4, !tbaa !5
  %1862 = call i32 @s2n_config_set_protocol_preferences(ptr noundef nonnull %1832, ptr noundef nonnull %3, i32 noundef 3) #12
  %1863 = icmp eq i32 %1862, -1
  br i1 %1863, label %1864, label %1888

1864:                                             ; preds = %1860
  %1865 = tail call ptr @__errno_location() #13
  %1866 = load i32, ptr %1865, align 4, !tbaa !5
  %1867 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1868 = call i32 @s2n_print_stacktrace(ptr noundef %1867) #12
  %1869 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1870 = trunc nuw i8 %1869 to i1
  br i1 %1870, label %1871, label %1875

1871:                                             ; preds = %1864
  %1872 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1873 = call i32 @fileno(ptr noundef %1872) #12
  %1874 = call i32 @isatty(i32 noundef %1873) #12
  %.not254 = icmp eq i32 %1874, 0
  br i1 %.not254, label %1875, label %1876

1875:                                             ; preds = %1871, %1864
  br label %1876

1876:                                             ; preds = %1871, %1875
  %.str.5.sink958 = phi ptr [ @.str.5, %1875 ], [ @.str.2, %1871 ]
  store i32 %1866, ptr %1865, align 4, !tbaa !5
  %1877 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1878 = load i32, ptr @test_count, align 4, !tbaa !5
  %1879 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1880 = load i32, ptr %1879, align 4, !tbaa !5
  %1881 = call ptr @s2n_strerror(i32 noundef %1880, ptr noundef nonnull @.str.4) #12
  %1882 = load i32, ptr %1879, align 4, !tbaa !5
  %1883 = call ptr @s2n_strerror_debug(i32 noundef %1882, ptr noundef nonnull @.str.4) #12
  %1884 = load i32, ptr %1865, align 4, !tbaa !5
  %1885 = call ptr @strerror(i32 noundef %1884) #12
  %1886 = load i32, ptr %1865, align 4, !tbaa !5
  %1887 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1877, ptr noundef nonnull %.str.5.sink958, i32 noundef %1878, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 192, ptr noundef %1881, ptr noundef %1883, ptr noundef %1885, i32 noundef %1886) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1888:                                             ; preds = %1860
  %1889 = load i32, ptr @test_count, align 4, !tbaa !5
  %1890 = add nsw i32 %1889, 1
  store i32 %1890, ptr @test_count, align 4, !tbaa !5
  %1891 = load ptr, ptr %21, align 8, !tbaa !9
  %1892 = load ptr, ptr %22, align 8, !tbaa !9
  %1893 = call i32 @s2n_connection_set_config(ptr noundef %1891, ptr noundef %1892) #12
  %1894 = icmp eq i32 %1893, -1
  br i1 %1894, label %1895, label %1919

1895:                                             ; preds = %1888
  %1896 = tail call ptr @__errno_location() #13
  %1897 = load i32, ptr %1896, align 4, !tbaa !5
  %1898 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1899 = call i32 @s2n_print_stacktrace(ptr noundef %1898) #12
  %1900 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1901 = trunc nuw i8 %1900 to i1
  br i1 %1901, label %1902, label %1906

1902:                                             ; preds = %1895
  %1903 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1904 = call i32 @fileno(ptr noundef %1903) #12
  %1905 = call i32 @isatty(i32 noundef %1904) #12
  %.not253 = icmp eq i32 %1905, 0
  br i1 %.not253, label %1906, label %1907

1906:                                             ; preds = %1902, %1895
  br label %1907

1907:                                             ; preds = %1902, %1906
  %.str.5.sink969 = phi ptr [ @.str.5, %1906 ], [ @.str.2, %1902 ]
  store i32 %1897, ptr %1896, align 4, !tbaa !5
  %1908 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1909 = load i32, ptr @test_count, align 4, !tbaa !5
  %1910 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1911 = load i32, ptr %1910, align 4, !tbaa !5
  %1912 = call ptr @s2n_strerror(i32 noundef %1911, ptr noundef nonnull @.str.4) #12
  %1913 = load i32, ptr %1910, align 4, !tbaa !5
  %1914 = call ptr @s2n_strerror_debug(i32 noundef %1913, ptr noundef nonnull @.str.4) #12
  %1915 = load i32, ptr %1896, align 4, !tbaa !5
  %1916 = call ptr @strerror(i32 noundef %1915) #12
  %1917 = load i32, ptr %1896, align 4, !tbaa !5
  %1918 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1908, ptr noundef nonnull %.str.5.sink969, i32 noundef %1909, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 193, ptr noundef %1912, ptr noundef %1914, ptr noundef %1916, i32 noundef %1917) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1919:                                             ; preds = %1888
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %23) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %23, i8 0, i64 40, i1 false)
  %1920 = load i32, ptr @test_count, align 4, !tbaa !5
  %1921 = add nsw i32 %1920, 1
  store i32 %1921, ptr @test_count, align 4, !tbaa !5
  %1922 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %23, i32 noundef 0) #12
  %1923 = icmp eq i32 %1922, -1
  br i1 %1923, label %1924, label %1948

1924:                                             ; preds = %1919
  %1925 = tail call ptr @__errno_location() #13
  %1926 = load i32, ptr %1925, align 4, !tbaa !5
  %1927 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1928 = call i32 @s2n_print_stacktrace(ptr noundef %1927) #12
  %1929 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1930 = trunc nuw i8 %1929 to i1
  br i1 %1930, label %1931, label %1935

1931:                                             ; preds = %1924
  %1932 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1933 = call i32 @fileno(ptr noundef %1932) #12
  %1934 = call i32 @isatty(i32 noundef %1933) #12
  %.not252 = icmp eq i32 %1934, 0
  br i1 %.not252, label %1935, label %1936

1935:                                             ; preds = %1931, %1924
  br label %1936

1936:                                             ; preds = %1931, %1935
  %.str.5.sink980 = phi ptr [ @.str.5, %1935 ], [ @.str.2, %1931 ]
  store i32 %1926, ptr %1925, align 4, !tbaa !5
  %1937 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1938 = load i32, ptr @test_count, align 4, !tbaa !5
  %1939 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1940 = load i32, ptr %1939, align 4, !tbaa !5
  %1941 = call ptr @s2n_strerror(i32 noundef %1940, ptr noundef nonnull @.str.4) #12
  %1942 = load i32, ptr %1939, align 4, !tbaa !5
  %1943 = call ptr @s2n_strerror_debug(i32 noundef %1942, ptr noundef nonnull @.str.4) #12
  %1944 = load i32, ptr %1925, align 4, !tbaa !5
  %1945 = call ptr @strerror(i32 noundef %1944) #12
  %1946 = load i32, ptr %1925, align 4, !tbaa !5
  %1947 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1937, ptr noundef nonnull %.str.5.sink980, i32 noundef %1938, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 196, ptr noundef %1941, ptr noundef %1943, ptr noundef %1945, i32 noundef %1946) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1948:                                             ; preds = %1919
  call void @llvm.lifetime.start.p0(i64 6, ptr nonnull %24) #12
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(6) %24, ptr noundef nonnull align 1 dereferenceable(6) @__const.main.protocol, i64 6, i1 false)
  %1949 = load i32, ptr @test_count, align 4, !tbaa !5
  %1950 = add nsw i32 %1949, 1
  store i32 %1950, ptr @test_count, align 4, !tbaa !5
  %1951 = call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %23, i8 noundef zeroext 6) #12
  %1952 = icmp eq i32 %1951, -1
  br i1 %1952, label %1953, label %1977

1953:                                             ; preds = %1948
  %1954 = tail call ptr @__errno_location() #13
  %1955 = load i32, ptr %1954, align 4, !tbaa !5
  %1956 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1957 = call i32 @s2n_print_stacktrace(ptr noundef %1956) #12
  %1958 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1959 = trunc nuw i8 %1958 to i1
  br i1 %1959, label %1960, label %1964

1960:                                             ; preds = %1953
  %1961 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1962 = call i32 @fileno(ptr noundef %1961) #12
  %1963 = call i32 @isatty(i32 noundef %1962) #12
  %.not251 = icmp eq i32 %1963, 0
  br i1 %.not251, label %1964, label %1965

1964:                                             ; preds = %1960, %1953
  br label %1965

1965:                                             ; preds = %1960, %1964
  %.str.5.sink991 = phi ptr [ @.str.5, %1964 ], [ @.str.2, %1960 ]
  store i32 %1955, ptr %1954, align 4, !tbaa !5
  %1966 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1967 = load i32, ptr @test_count, align 4, !tbaa !5
  %1968 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1969 = load i32, ptr %1968, align 4, !tbaa !5
  %1970 = call ptr @s2n_strerror(i32 noundef %1969, ptr noundef nonnull @.str.4) #12
  %1971 = load i32, ptr %1968, align 4, !tbaa !5
  %1972 = call ptr @s2n_strerror_debug(i32 noundef %1971, ptr noundef nonnull @.str.4) #12
  %1973 = load i32, ptr %1954, align 4, !tbaa !5
  %1974 = call ptr @strerror(i32 noundef %1973) #12
  %1975 = load i32, ptr %1954, align 4, !tbaa !5
  %1976 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1966, ptr noundef nonnull %.str.5.sink991, i32 noundef %1967, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 199, ptr noundef %1970, ptr noundef %1972, ptr noundef %1974, i32 noundef %1975) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1977:                                             ; preds = %1948
  %1978 = load i32, ptr @test_count, align 4, !tbaa !5
  %1979 = add nsw i32 %1978, 1
  store i32 %1979, ptr @test_count, align 4, !tbaa !5
  %1980 = call i32 @s2n_stuffer_write_bytes(ptr noundef nonnull %23, ptr noundef nonnull %24, i32 noundef 6) #12
  %1981 = icmp eq i32 %1980, -1
  br i1 %1981, label %1982, label %2006

1982:                                             ; preds = %1977
  %1983 = tail call ptr @__errno_location() #13
  %1984 = load i32, ptr %1983, align 4, !tbaa !5
  %1985 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1986 = call i32 @s2n_print_stacktrace(ptr noundef %1985) #12
  %1987 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1988 = trunc nuw i8 %1987 to i1
  br i1 %1988, label %1989, label %1993

1989:                                             ; preds = %1982
  %1990 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1991 = call i32 @fileno(ptr noundef %1990) #12
  %1992 = call i32 @isatty(i32 noundef %1991) #12
  %.not250 = icmp eq i32 %1992, 0
  br i1 %.not250, label %1993, label %1994

1993:                                             ; preds = %1989, %1982
  br label %1994

1994:                                             ; preds = %1989, %1993
  %.str.5.sink1002 = phi ptr [ @.str.5, %1993 ], [ @.str.2, %1989 ]
  store i32 %1984, ptr %1983, align 4, !tbaa !5
  %1995 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1996 = load i32, ptr @test_count, align 4, !tbaa !5
  %1997 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1998 = load i32, ptr %1997, align 4, !tbaa !5
  %1999 = call ptr @s2n_strerror(i32 noundef %1998, ptr noundef nonnull @.str.4) #12
  %2000 = load i32, ptr %1997, align 4, !tbaa !5
  %2001 = call ptr @s2n_strerror_debug(i32 noundef %2000, ptr noundef nonnull @.str.4) #12
  %2002 = load i32, ptr %1983, align 4, !tbaa !5
  %2003 = call ptr @strerror(i32 noundef %2002) #12
  %2004 = load i32, ptr %1983, align 4, !tbaa !5
  %2005 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1995, ptr noundef nonnull %.str.5.sink1002, i32 noundef %1996, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 200, ptr noundef %1999, ptr noundef %2001, ptr noundef %2003, i32 noundef %2004) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2006:                                             ; preds = %1977
  %2007 = load i32, ptr @test_count, align 4, !tbaa !5
  %2008 = add nsw i32 %2007, 1
  store i32 %2008, ptr @test_count, align 4, !tbaa !5
  %2009 = load ptr, ptr %21, align 8, !tbaa !9
  %2010 = call i32 %1469(ptr noundef %2009, ptr noundef nonnull %23) #12
  %2011 = icmp eq i32 %2010, -1
  br i1 %2011, label %2012, label %2036

2012:                                             ; preds = %2006
  %2013 = tail call ptr @__errno_location() #13
  %2014 = load i32, ptr %2013, align 4, !tbaa !5
  %2015 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2016 = call i32 @s2n_print_stacktrace(ptr noundef %2015) #12
  %2017 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2018 = trunc nuw i8 %2017 to i1
  br i1 %2018, label %2019, label %2023

2019:                                             ; preds = %2012
  %2020 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2021 = call i32 @fileno(ptr noundef %2020) #12
  %2022 = call i32 @isatty(i32 noundef %2021) #12
  %.not249 = icmp eq i32 %2022, 0
  br i1 %.not249, label %2023, label %2024

2023:                                             ; preds = %2019, %2012
  br label %2024

2024:                                             ; preds = %2019, %2023
  %.str.5.sink1013 = phi ptr [ @.str.5, %2023 ], [ @.str.2, %2019 ]
  store i32 %2014, ptr %2013, align 4, !tbaa !5
  %2025 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2026 = load i32, ptr @test_count, align 4, !tbaa !5
  %2027 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2028 = load i32, ptr %2027, align 4, !tbaa !5
  %2029 = call ptr @s2n_strerror(i32 noundef %2028, ptr noundef nonnull @.str.4) #12
  %2030 = load i32, ptr %2027, align 4, !tbaa !5
  %2031 = call ptr @s2n_strerror_debug(i32 noundef %2030, ptr noundef nonnull @.str.4) #12
  %2032 = load i32, ptr %2013, align 4, !tbaa !5
  %2033 = call ptr @strerror(i32 noundef %2032) #12
  %2034 = load i32, ptr %2013, align 4, !tbaa !5
  %2035 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2025, ptr noundef nonnull %.str.5.sink1013, i32 noundef %2026, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 209, ptr noundef %2029, ptr noundef %2031, ptr noundef %2033, i32 noundef %2034) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2036:                                             ; preds = %2006
  %2037 = load i32, ptr @test_count, align 4, !tbaa !5
  %2038 = add nsw i32 %2037, 1
  store i32 %2038, ptr @test_count, align 4, !tbaa !5
  %2039 = load ptr, ptr %21, align 8, !tbaa !9
  %2040 = call ptr @s2n_get_application_protocol(ptr noundef %2039) #12
  %2041 = icmp eq ptr %2040, null
  br i1 %2041, label %2042, label %2066

2042:                                             ; preds = %2036
  %2043 = tail call ptr @__errno_location() #13
  %2044 = load i32, ptr %2043, align 4, !tbaa !5
  %2045 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2046 = call i32 @s2n_print_stacktrace(ptr noundef %2045) #12
  %2047 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2048 = trunc nuw i8 %2047 to i1
  br i1 %2048, label %2049, label %2053

2049:                                             ; preds = %2042
  %2050 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2051 = call i32 @fileno(ptr noundef %2050) #12
  %2052 = call i32 @isatty(i32 noundef %2051) #12
  %.not248 = icmp eq i32 %2052, 0
  br i1 %.not248, label %2053, label %2054

2053:                                             ; preds = %2049, %2042
  br label %2054

2054:                                             ; preds = %2049, %2053
  %.str.5.sink1024 = phi ptr [ @.str.5, %2053 ], [ @.str.2, %2049 ]
  store i32 %2044, ptr %2043, align 4, !tbaa !5
  %2055 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2056 = load i32, ptr @test_count, align 4, !tbaa !5
  %2057 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2058 = load i32, ptr %2057, align 4, !tbaa !5
  %2059 = call ptr @s2n_strerror(i32 noundef %2058, ptr noundef nonnull @.str.4) #12
  %2060 = load i32, ptr %2057, align 4, !tbaa !5
  %2061 = call ptr @s2n_strerror_debug(i32 noundef %2060, ptr noundef nonnull @.str.4) #12
  %2062 = load i32, ptr %2043, align 4, !tbaa !5
  %2063 = call ptr @strerror(i32 noundef %2062) #12
  %2064 = load i32, ptr %2043, align 4, !tbaa !5
  %2065 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2055, ptr noundef nonnull %.str.5.sink1024, i32 noundef %2056, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 210, ptr noundef %2059, ptr noundef %2061, ptr noundef %2063, i32 noundef %2064) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2066:                                             ; preds = %2036
  %2067 = load ptr, ptr %3, align 16, !tbaa !9
  %char0215 = load i8, ptr %2067, align 1
  %.not216 = icmp eq i8 %char0215, 0
  br i1 %.not216, label %2100, label %2068

2068:                                             ; preds = %2066
  %2069 = load i32, ptr @test_count, align 4, !tbaa !5
  %2070 = add nsw i32 %2069, 1
  store i32 %2070, ptr @test_count, align 4, !tbaa !5
  %2071 = load ptr, ptr %21, align 8, !tbaa !9
  %2072 = call ptr @s2n_get_application_protocol(ptr noundef %2071) #12
  %2073 = load ptr, ptr %3, align 16, !tbaa !9
  %2074 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %2073) #16
  %bcmp217 = call i32 @bcmp(ptr %2072, ptr %2073, i64 %2074)
  %2075 = icmp eq i32 %bcmp217, 0
  br i1 %2075, label %2100, label %2076

2076:                                             ; preds = %2068
  %2077 = tail call ptr @__errno_location() #13
  %2078 = load i32, ptr %2077, align 4, !tbaa !5
  %2079 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2080 = call i32 @s2n_print_stacktrace(ptr noundef %2079) #12
  %2081 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2082 = trunc nuw i8 %2081 to i1
  br i1 %2082, label %2083, label %2087

2083:                                             ; preds = %2076
  %2084 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2085 = call i32 @fileno(ptr noundef %2084) #12
  %2086 = call i32 @isatty(i32 noundef %2085) #12
  %.not218 = icmp eq i32 %2086, 0
  br i1 %.not218, label %2087, label %2088

2087:                                             ; preds = %2083, %2076
  br label %2088

2088:                                             ; preds = %2083, %2087
  %.str.5.sink1035 = phi ptr [ @.str.5, %2087 ], [ @.str.2, %2083 ]
  store i32 %2078, ptr %2077, align 4, !tbaa !5
  %2089 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2090 = load i32, ptr @test_count, align 4, !tbaa !5
  %2091 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2092 = load i32, ptr %2091, align 4, !tbaa !5
  %2093 = call ptr @s2n_strerror(i32 noundef %2092, ptr noundef nonnull @.str.4) #12
  %2094 = load i32, ptr %2091, align 4, !tbaa !5
  %2095 = call ptr @s2n_strerror_debug(i32 noundef %2094, ptr noundef nonnull @.str.4) #12
  %2096 = load i32, ptr %2077, align 4, !tbaa !5
  %2097 = call ptr @strerror(i32 noundef %2096) #12
  %2098 = load i32, ptr %2077, align 4, !tbaa !5
  %2099 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2089, ptr noundef nonnull %.str.5.sink1035, i32 noundef %2090, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 211, ptr noundef %2093, ptr noundef %2095, ptr noundef %2097, i32 noundef %2098) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2100:                                             ; preds = %2068, %2066
  call void @llvm.lifetime.end.p0(i64 6, ptr nonnull %24) #12
  %2101 = call i32 @s2n_stuffer_free(ptr noundef nonnull %23) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %23) #12
  %2102 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %22) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #12
  %2103 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %21) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %25) #12
  %2104 = call ptr @s2n_connection_new(i32 noundef 1) #12
  store ptr %2104, ptr %25, align 8, !tbaa !9
  %2105 = load i32, ptr @test_count, align 4, !tbaa !5
  %2106 = add nsw i32 %2105, 1
  store i32 %2106, ptr @test_count, align 4, !tbaa !5
  %2107 = icmp eq ptr %2104, null
  br i1 %2107, label %2108, label %2132

2108:                                             ; preds = %2100
  %2109 = tail call ptr @__errno_location() #13
  %2110 = load i32, ptr %2109, align 4, !tbaa !5
  %2111 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2112 = call i32 @s2n_print_stacktrace(ptr noundef %2111) #12
  %2113 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2114 = trunc nuw i8 %2113 to i1
  br i1 %2114, label %2115, label %2119

2115:                                             ; preds = %2108
  %2116 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2117 = call i32 @fileno(ptr noundef %2116) #12
  %2118 = call i32 @isatty(i32 noundef %2117) #12
  %.not247 = icmp eq i32 %2118, 0
  br i1 %.not247, label %2119, label %2120

2119:                                             ; preds = %2115, %2108
  br label %2120

2120:                                             ; preds = %2115, %2119
  %.str.5.sink1046 = phi ptr [ @.str.5, %2119 ], [ @.str.2, %2115 ]
  store i32 %2110, ptr %2109, align 4, !tbaa !5
  %2121 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2122 = load i32, ptr @test_count, align 4, !tbaa !5
  %2123 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2124 = load i32, ptr %2123, align 4, !tbaa !5
  %2125 = call ptr @s2n_strerror(i32 noundef %2124, ptr noundef nonnull @.str.4) #12
  %2126 = load i32, ptr %2123, align 4, !tbaa !5
  %2127 = call ptr @s2n_strerror_debug(i32 noundef %2126, ptr noundef nonnull @.str.4) #12
  %2128 = load i32, ptr %2109, align 4, !tbaa !5
  %2129 = call ptr @strerror(i32 noundef %2128) #12
  %2130 = load i32, ptr %2109, align 4, !tbaa !5
  %2131 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2121, ptr noundef nonnull %.str.5.sink1046, i32 noundef %2122, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 217, ptr noundef %2125, ptr noundef %2127, ptr noundef %2129, i32 noundef %2130) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2132:                                             ; preds = %2100
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %26) #12
  %2133 = call ptr @s2n_config_new() #12
  store ptr %2133, ptr %26, align 8, !tbaa !9
  %2134 = load i32, ptr @test_count, align 4, !tbaa !5
  %2135 = add nsw i32 %2134, 1
  store i32 %2135, ptr @test_count, align 4, !tbaa !5
  %2136 = icmp eq ptr %2133, null
  br i1 %2136, label %2137, label %2161

2137:                                             ; preds = %2132
  %2138 = tail call ptr @__errno_location() #13
  %2139 = load i32, ptr %2138, align 4, !tbaa !5
  %2140 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2141 = call i32 @s2n_print_stacktrace(ptr noundef %2140) #12
  %2142 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2143 = trunc nuw i8 %2142 to i1
  br i1 %2143, label %2144, label %2148

2144:                                             ; preds = %2137
  %2145 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2146 = call i32 @fileno(ptr noundef %2145) #12
  %2147 = call i32 @isatty(i32 noundef %2146) #12
  %.not246 = icmp eq i32 %2147, 0
  br i1 %.not246, label %2148, label %2149

2148:                                             ; preds = %2144, %2137
  br label %2149

2149:                                             ; preds = %2144, %2148
  %.str.5.sink1057 = phi ptr [ @.str.5, %2148 ], [ @.str.2, %2144 ]
  store i32 %2139, ptr %2138, align 4, !tbaa !5
  %2150 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2151 = load i32, ptr @test_count, align 4, !tbaa !5
  %2152 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2153 = load i32, ptr %2152, align 4, !tbaa !5
  %2154 = call ptr @s2n_strerror(i32 noundef %2153, ptr noundef nonnull @.str.4) #12
  %2155 = load i32, ptr %2152, align 4, !tbaa !5
  %2156 = call ptr @s2n_strerror_debug(i32 noundef %2155, ptr noundef nonnull @.str.4) #12
  %2157 = load i32, ptr %2138, align 4, !tbaa !5
  %2158 = call ptr @strerror(i32 noundef %2157) #12
  %2159 = load i32, ptr %2138, align 4, !tbaa !5
  %2160 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2150, ptr noundef nonnull %.str.5.sink1057, i32 noundef %2151, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 219, ptr noundef %2154, ptr noundef %2156, ptr noundef %2158, i32 noundef %2159) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2161:                                             ; preds = %2132
  %2162 = add nsw i32 %2134, 2
  store i32 %2162, ptr @test_count, align 4, !tbaa !5
  %2163 = call i32 @s2n_config_set_protocol_preferences(ptr noundef nonnull %2133, ptr noundef nonnull %3, i32 noundef 3) #12
  %2164 = icmp eq i32 %2163, -1
  br i1 %2164, label %2165, label %2189

2165:                                             ; preds = %2161
  %2166 = tail call ptr @__errno_location() #13
  %2167 = load i32, ptr %2166, align 4, !tbaa !5
  %2168 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2169 = call i32 @s2n_print_stacktrace(ptr noundef %2168) #12
  %2170 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2171 = trunc nuw i8 %2170 to i1
  br i1 %2171, label %2172, label %2176

2172:                                             ; preds = %2165
  %2173 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2174 = call i32 @fileno(ptr noundef %2173) #12
  %2175 = call i32 @isatty(i32 noundef %2174) #12
  %.not245 = icmp eq i32 %2175, 0
  br i1 %.not245, label %2176, label %2177

2176:                                             ; preds = %2172, %2165
  br label %2177

2177:                                             ; preds = %2172, %2176
  %.str.5.sink1068 = phi ptr [ @.str.5, %2176 ], [ @.str.2, %2172 ]
  store i32 %2167, ptr %2166, align 4, !tbaa !5
  %2178 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2179 = load i32, ptr @test_count, align 4, !tbaa !5
  %2180 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2181 = load i32, ptr %2180, align 4, !tbaa !5
  %2182 = call ptr @s2n_strerror(i32 noundef %2181, ptr noundef nonnull @.str.4) #12
  %2183 = load i32, ptr %2180, align 4, !tbaa !5
  %2184 = call ptr @s2n_strerror_debug(i32 noundef %2183, ptr noundef nonnull @.str.4) #12
  %2185 = load i32, ptr %2166, align 4, !tbaa !5
  %2186 = call ptr @strerror(i32 noundef %2185) #12
  %2187 = load i32, ptr %2166, align 4, !tbaa !5
  %2188 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2178, ptr noundef nonnull %.str.5.sink1068, i32 noundef %2179, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 220, ptr noundef %2182, ptr noundef %2184, ptr noundef %2186, i32 noundef %2187) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2189:                                             ; preds = %2161
  %2190 = load i32, ptr @test_count, align 4, !tbaa !5
  %2191 = add nsw i32 %2190, 1
  store i32 %2191, ptr @test_count, align 4, !tbaa !5
  %2192 = load ptr, ptr %25, align 8, !tbaa !9
  %2193 = load ptr, ptr %26, align 8, !tbaa !9
  %2194 = call i32 @s2n_connection_set_config(ptr noundef %2192, ptr noundef %2193) #12
  %2195 = icmp eq i32 %2194, -1
  br i1 %2195, label %2196, label %2220

2196:                                             ; preds = %2189
  %2197 = tail call ptr @__errno_location() #13
  %2198 = load i32, ptr %2197, align 4, !tbaa !5
  %2199 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2200 = call i32 @s2n_print_stacktrace(ptr noundef %2199) #12
  %2201 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2202 = trunc nuw i8 %2201 to i1
  br i1 %2202, label %2203, label %2207

2203:                                             ; preds = %2196
  %2204 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2205 = call i32 @fileno(ptr noundef %2204) #12
  %2206 = call i32 @isatty(i32 noundef %2205) #12
  %.not244 = icmp eq i32 %2206, 0
  br i1 %.not244, label %2207, label %2208

2207:                                             ; preds = %2203, %2196
  br label %2208

2208:                                             ; preds = %2203, %2207
  %.str.5.sink1079 = phi ptr [ @.str.5, %2207 ], [ @.str.2, %2203 ]
  store i32 %2198, ptr %2197, align 4, !tbaa !5
  %2209 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2210 = load i32, ptr @test_count, align 4, !tbaa !5
  %2211 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2212 = load i32, ptr %2211, align 4, !tbaa !5
  %2213 = call ptr @s2n_strerror(i32 noundef %2212, ptr noundef nonnull @.str.4) #12
  %2214 = load i32, ptr %2211, align 4, !tbaa !5
  %2215 = call ptr @s2n_strerror_debug(i32 noundef %2214, ptr noundef nonnull @.str.4) #12
  %2216 = load i32, ptr %2197, align 4, !tbaa !5
  %2217 = call ptr @strerror(i32 noundef %2216) #12
  %2218 = load i32, ptr %2197, align 4, !tbaa !5
  %2219 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2209, ptr noundef nonnull %.str.5.sink1079, i32 noundef %2210, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 221, ptr noundef %2213, ptr noundef %2215, ptr noundef %2217, i32 noundef %2218) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2220:                                             ; preds = %2189
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %27) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %27, i8 0, i64 40, i1 false)
  %2221 = load i32, ptr @test_count, align 4, !tbaa !5
  %2222 = add nsw i32 %2221, 1
  store i32 %2222, ptr @test_count, align 4, !tbaa !5
  %2223 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %27, i32 noundef 0) #12
  %2224 = icmp eq i32 %2223, -1
  br i1 %2224, label %2225, label %2249

2225:                                             ; preds = %2220
  %2226 = tail call ptr @__errno_location() #13
  %2227 = load i32, ptr %2226, align 4, !tbaa !5
  %2228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2229 = call i32 @s2n_print_stacktrace(ptr noundef %2228) #12
  %2230 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2231 = trunc nuw i8 %2230 to i1
  br i1 %2231, label %2232, label %2236

2232:                                             ; preds = %2225
  %2233 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2234 = call i32 @fileno(ptr noundef %2233) #12
  %2235 = call i32 @isatty(i32 noundef %2234) #12
  %.not243 = icmp eq i32 %2235, 0
  br i1 %.not243, label %2236, label %2237

2236:                                             ; preds = %2232, %2225
  br label %2237

2237:                                             ; preds = %2232, %2236
  %.str.5.sink1090 = phi ptr [ @.str.5, %2236 ], [ @.str.2, %2232 ]
  store i32 %2227, ptr %2226, align 4, !tbaa !5
  %2238 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2239 = load i32, ptr @test_count, align 4, !tbaa !5
  %2240 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2241 = load i32, ptr %2240, align 4, !tbaa !5
  %2242 = call ptr @s2n_strerror(i32 noundef %2241, ptr noundef nonnull @.str.4) #12
  %2243 = load i32, ptr %2240, align 4, !tbaa !5
  %2244 = call ptr @s2n_strerror_debug(i32 noundef %2243, ptr noundef nonnull @.str.4) #12
  %2245 = load i32, ptr %2226, align 4, !tbaa !5
  %2246 = call ptr @strerror(i32 noundef %2245) #12
  %2247 = load i32, ptr %2226, align 4, !tbaa !5
  %2248 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2238, ptr noundef nonnull %.str.5.sink1090, i32 noundef %2239, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 224, ptr noundef %2242, ptr noundef %2244, ptr noundef %2246, i32 noundef %2247) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2249:                                             ; preds = %2220
  %2250 = load i32, ptr @test_count, align 4, !tbaa !5
  %2251 = add nsw i32 %2250, 1
  store i32 %2251, ptr @test_count, align 4, !tbaa !5
  %2252 = load ptr, ptr %25, align 8, !tbaa !9
  %2253 = call i32 %1469(ptr noundef %2252, ptr noundef nonnull %27) #12
  %2254 = icmp eq i32 %2253, -1
  br i1 %2254, label %2255, label %2279

2255:                                             ; preds = %2249
  %2256 = tail call ptr @__errno_location() #13
  %2257 = load i32, ptr %2256, align 4, !tbaa !5
  %2258 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2259 = call i32 @s2n_print_stacktrace(ptr noundef %2258) #12
  %2260 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2261 = trunc nuw i8 %2260 to i1
  br i1 %2261, label %2262, label %2266

2262:                                             ; preds = %2255
  %2263 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2264 = call i32 @fileno(ptr noundef %2263) #12
  %2265 = call i32 @isatty(i32 noundef %2264) #12
  %.not242 = icmp eq i32 %2265, 0
  br i1 %.not242, label %2266, label %2267

2266:                                             ; preds = %2262, %2255
  br label %2267

2267:                                             ; preds = %2262, %2266
  %.str.5.sink1101 = phi ptr [ @.str.5, %2266 ], [ @.str.2, %2262 ]
  store i32 %2257, ptr %2256, align 4, !tbaa !5
  %2268 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2269 = load i32, ptr @test_count, align 4, !tbaa !5
  %2270 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2271 = load i32, ptr %2270, align 4, !tbaa !5
  %2272 = call ptr @s2n_strerror(i32 noundef %2271, ptr noundef nonnull @.str.4) #12
  %2273 = load i32, ptr %2270, align 4, !tbaa !5
  %2274 = call ptr @s2n_strerror_debug(i32 noundef %2273, ptr noundef nonnull @.str.4) #12
  %2275 = load i32, ptr %2256, align 4, !tbaa !5
  %2276 = call ptr @strerror(i32 noundef %2275) #12
  %2277 = load i32, ptr %2256, align 4, !tbaa !5
  %2278 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2268, ptr noundef nonnull %.str.5.sink1101, i32 noundef %2269, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 233, ptr noundef %2272, ptr noundef %2274, ptr noundef %2276, i32 noundef %2277) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2279:                                             ; preds = %2249
  %2280 = load i32, ptr @test_count, align 4, !tbaa !5
  %2281 = add nsw i32 %2280, 1
  store i32 %2281, ptr @test_count, align 4, !tbaa !5
  %2282 = load ptr, ptr %25, align 8, !tbaa !9
  %2283 = call ptr @s2n_get_application_protocol(ptr noundef %2282) #12
  %2284 = icmp eq ptr %2283, null
  br i1 %2284, label %2285, label %2309

2285:                                             ; preds = %2279
  %2286 = tail call ptr @__errno_location() #13
  %2287 = load i32, ptr %2286, align 4, !tbaa !5
  %2288 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2289 = call i32 @s2n_print_stacktrace(ptr noundef %2288) #12
  %2290 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2291 = trunc nuw i8 %2290 to i1
  br i1 %2291, label %2292, label %2296

2292:                                             ; preds = %2285
  %2293 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2294 = call i32 @fileno(ptr noundef %2293) #12
  %2295 = call i32 @isatty(i32 noundef %2294) #12
  %.not241 = icmp eq i32 %2295, 0
  br i1 %.not241, label %2296, label %2297

2296:                                             ; preds = %2292, %2285
  br label %2297

2297:                                             ; preds = %2292, %2296
  %.str.5.sink1112 = phi ptr [ @.str.5, %2296 ], [ @.str.2, %2292 ]
  store i32 %2287, ptr %2286, align 4, !tbaa !5
  %2298 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2299 = load i32, ptr @test_count, align 4, !tbaa !5
  %2300 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2301 = load i32, ptr %2300, align 4, !tbaa !5
  %2302 = call ptr @s2n_strerror(i32 noundef %2301, ptr noundef nonnull @.str.4) #12
  %2303 = load i32, ptr %2300, align 4, !tbaa !5
  %2304 = call ptr @s2n_strerror_debug(i32 noundef %2303, ptr noundef nonnull @.str.4) #12
  %2305 = load i32, ptr %2286, align 4, !tbaa !5
  %2306 = call ptr @strerror(i32 noundef %2305) #12
  %2307 = load i32, ptr %2286, align 4, !tbaa !5
  %2308 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2298, ptr noundef nonnull %.str.5.sink1112, i32 noundef %2299, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 234, ptr noundef %2302, ptr noundef %2304, ptr noundef %2306, i32 noundef %2307) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2309:                                             ; preds = %2279
  %2310 = load ptr, ptr %3, align 16, !tbaa !9
  %char0219 = load i8, ptr %2310, align 1
  %.not220 = icmp eq i8 %char0219, 0
  br i1 %.not220, label %2343, label %2311

2311:                                             ; preds = %2309
  %2312 = load i32, ptr @test_count, align 4, !tbaa !5
  %2313 = add nsw i32 %2312, 1
  store i32 %2313, ptr @test_count, align 4, !tbaa !5
  %2314 = load ptr, ptr %25, align 8, !tbaa !9
  %2315 = call ptr @s2n_get_application_protocol(ptr noundef %2314) #12
  %2316 = load ptr, ptr %3, align 16, !tbaa !9
  %2317 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %2316) #16
  %bcmp221 = call i32 @bcmp(ptr %2315, ptr %2316, i64 %2317)
  %2318 = icmp eq i32 %bcmp221, 0
  br i1 %2318, label %2343, label %2319

2319:                                             ; preds = %2311
  %2320 = tail call ptr @__errno_location() #13
  %2321 = load i32, ptr %2320, align 4, !tbaa !5
  %2322 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2323 = call i32 @s2n_print_stacktrace(ptr noundef %2322) #12
  %2324 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2325 = trunc nuw i8 %2324 to i1
  br i1 %2325, label %2326, label %2330

2326:                                             ; preds = %2319
  %2327 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2328 = call i32 @fileno(ptr noundef %2327) #12
  %2329 = call i32 @isatty(i32 noundef %2328) #12
  %.not222 = icmp eq i32 %2329, 0
  br i1 %.not222, label %2330, label %2331

2330:                                             ; preds = %2326, %2319
  br label %2331

2331:                                             ; preds = %2326, %2330
  %.str.5.sink1123 = phi ptr [ @.str.5, %2330 ], [ @.str.2, %2326 ]
  store i32 %2321, ptr %2320, align 4, !tbaa !5
  %2332 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2333 = load i32, ptr @test_count, align 4, !tbaa !5
  %2334 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2335 = load i32, ptr %2334, align 4, !tbaa !5
  %2336 = call ptr @s2n_strerror(i32 noundef %2335, ptr noundef nonnull @.str.4) #12
  %2337 = load i32, ptr %2334, align 4, !tbaa !5
  %2338 = call ptr @s2n_strerror_debug(i32 noundef %2337, ptr noundef nonnull @.str.4) #12
  %2339 = load i32, ptr %2320, align 4, !tbaa !5
  %2340 = call ptr @strerror(i32 noundef %2339) #12
  %2341 = load i32, ptr %2320, align 4, !tbaa !5
  %2342 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2332, ptr noundef nonnull %.str.5.sink1123, i32 noundef %2333, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 235, ptr noundef %2336, ptr noundef %2338, ptr noundef %2340, i32 noundef %2341) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2343:                                             ; preds = %2311, %2309
  %2344 = call i32 @s2n_stuffer_free(ptr noundef nonnull %27) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %27) #12
  %2345 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %26) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #12
  %2346 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %25) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #12
  %2347 = call ptr @s2n_connection_new(i32 noundef 1) #12
  store ptr %2347, ptr %28, align 8, !tbaa !9
  %2348 = load i32, ptr @test_count, align 4, !tbaa !5
  %2349 = add nsw i32 %2348, 1
  store i32 %2349, ptr @test_count, align 4, !tbaa !5
  %2350 = icmp eq ptr %2347, null
  br i1 %2350, label %2351, label %2375

2351:                                             ; preds = %2343
  %2352 = tail call ptr @__errno_location() #13
  %2353 = load i32, ptr %2352, align 4, !tbaa !5
  %2354 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2355 = call i32 @s2n_print_stacktrace(ptr noundef %2354) #12
  %2356 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2357 = trunc nuw i8 %2356 to i1
  br i1 %2357, label %2358, label %2362

2358:                                             ; preds = %2351
  %2359 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2360 = call i32 @fileno(ptr noundef %2359) #12
  %2361 = call i32 @isatty(i32 noundef %2360) #12
  %.not240 = icmp eq i32 %2361, 0
  br i1 %.not240, label %2362, label %2363

2362:                                             ; preds = %2358, %2351
  br label %2363

2363:                                             ; preds = %2358, %2362
  %.str.5.sink1134 = phi ptr [ @.str.5, %2362 ], [ @.str.2, %2358 ]
  store i32 %2353, ptr %2352, align 4, !tbaa !5
  %2364 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2365 = load i32, ptr @test_count, align 4, !tbaa !5
  %2366 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2367 = load i32, ptr %2366, align 4, !tbaa !5
  %2368 = call ptr @s2n_strerror(i32 noundef %2367, ptr noundef nonnull @.str.4) #12
  %2369 = load i32, ptr %2366, align 4, !tbaa !5
  %2370 = call ptr @s2n_strerror_debug(i32 noundef %2369, ptr noundef nonnull @.str.4) #12
  %2371 = load i32, ptr %2352, align 4, !tbaa !5
  %2372 = call ptr @strerror(i32 noundef %2371) #12
  %2373 = load i32, ptr %2352, align 4, !tbaa !5
  %2374 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2364, ptr noundef nonnull %.str.5.sink1134, i32 noundef %2365, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 241, ptr noundef %2368, ptr noundef %2370, ptr noundef %2372, i32 noundef %2373) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2375:                                             ; preds = %2343
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #12
  %2376 = call ptr @s2n_config_new() #12
  store ptr %2376, ptr %29, align 8, !tbaa !9
  %2377 = load i32, ptr @test_count, align 4, !tbaa !5
  %2378 = add nsw i32 %2377, 1
  store i32 %2378, ptr @test_count, align 4, !tbaa !5
  %2379 = icmp eq ptr %2376, null
  br i1 %2379, label %2380, label %2404

2380:                                             ; preds = %2375
  %2381 = tail call ptr @__errno_location() #13
  %2382 = load i32, ptr %2381, align 4, !tbaa !5
  %2383 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2384 = call i32 @s2n_print_stacktrace(ptr noundef %2383) #12
  %2385 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2386 = trunc nuw i8 %2385 to i1
  br i1 %2386, label %2387, label %2391

2387:                                             ; preds = %2380
  %2388 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2389 = call i32 @fileno(ptr noundef %2388) #12
  %2390 = call i32 @isatty(i32 noundef %2389) #12
  %.not239 = icmp eq i32 %2390, 0
  br i1 %.not239, label %2391, label %2392

2391:                                             ; preds = %2387, %2380
  br label %2392

2392:                                             ; preds = %2387, %2391
  %.str.5.sink1145 = phi ptr [ @.str.5, %2391 ], [ @.str.2, %2387 ]
  store i32 %2382, ptr %2381, align 4, !tbaa !5
  %2393 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2394 = load i32, ptr @test_count, align 4, !tbaa !5
  %2395 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2396 = load i32, ptr %2395, align 4, !tbaa !5
  %2397 = call ptr @s2n_strerror(i32 noundef %2396, ptr noundef nonnull @.str.4) #12
  %2398 = load i32, ptr %2395, align 4, !tbaa !5
  %2399 = call ptr @s2n_strerror_debug(i32 noundef %2398, ptr noundef nonnull @.str.4) #12
  %2400 = load i32, ptr %2381, align 4, !tbaa !5
  %2401 = call ptr @strerror(i32 noundef %2400) #12
  %2402 = load i32, ptr %2381, align 4, !tbaa !5
  %2403 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2393, ptr noundef nonnull %.str.5.sink1145, i32 noundef %2394, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 243, ptr noundef %2397, ptr noundef %2399, ptr noundef %2401, i32 noundef %2402) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2404:                                             ; preds = %2375
  %2405 = add nsw i32 %2377, 2
  store i32 %2405, ptr @test_count, align 4, !tbaa !5
  %2406 = call i32 @s2n_config_set_protocol_preferences(ptr noundef nonnull %2376, ptr noundef nonnull %3, i32 noundef 3) #12
  %2407 = icmp eq i32 %2406, -1
  br i1 %2407, label %2408, label %2432

2408:                                             ; preds = %2404
  %2409 = tail call ptr @__errno_location() #13
  %2410 = load i32, ptr %2409, align 4, !tbaa !5
  %2411 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2412 = call i32 @s2n_print_stacktrace(ptr noundef %2411) #12
  %2413 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2414 = trunc nuw i8 %2413 to i1
  br i1 %2414, label %2415, label %2419

2415:                                             ; preds = %2408
  %2416 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2417 = call i32 @fileno(ptr noundef %2416) #12
  %2418 = call i32 @isatty(i32 noundef %2417) #12
  %.not238 = icmp eq i32 %2418, 0
  br i1 %.not238, label %2419, label %2420

2419:                                             ; preds = %2415, %2408
  br label %2420

2420:                                             ; preds = %2415, %2419
  %.str.5.sink1156 = phi ptr [ @.str.5, %2419 ], [ @.str.2, %2415 ]
  store i32 %2410, ptr %2409, align 4, !tbaa !5
  %2421 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2422 = load i32, ptr @test_count, align 4, !tbaa !5
  %2423 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2424 = load i32, ptr %2423, align 4, !tbaa !5
  %2425 = call ptr @s2n_strerror(i32 noundef %2424, ptr noundef nonnull @.str.4) #12
  %2426 = load i32, ptr %2423, align 4, !tbaa !5
  %2427 = call ptr @s2n_strerror_debug(i32 noundef %2426, ptr noundef nonnull @.str.4) #12
  %2428 = load i32, ptr %2409, align 4, !tbaa !5
  %2429 = call ptr @strerror(i32 noundef %2428) #12
  %2430 = load i32, ptr %2409, align 4, !tbaa !5
  %2431 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2421, ptr noundef nonnull %.str.5.sink1156, i32 noundef %2422, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 244, ptr noundef %2425, ptr noundef %2427, ptr noundef %2429, i32 noundef %2430) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2432:                                             ; preds = %2404
  %2433 = load i32, ptr @test_count, align 4, !tbaa !5
  %2434 = add nsw i32 %2433, 1
  store i32 %2434, ptr @test_count, align 4, !tbaa !5
  %2435 = call i32 @s2n_connection_set_config(ptr noundef nonnull %2347, ptr noundef nonnull %2376) #12
  %2436 = icmp eq i32 %2435, -1
  br i1 %2436, label %2437, label %2461

2437:                                             ; preds = %2432
  %2438 = tail call ptr @__errno_location() #13
  %2439 = load i32, ptr %2438, align 4, !tbaa !5
  %2440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2441 = call i32 @s2n_print_stacktrace(ptr noundef %2440) #12
  %2442 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2443 = trunc nuw i8 %2442 to i1
  br i1 %2443, label %2444, label %2448

2444:                                             ; preds = %2437
  %2445 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2446 = call i32 @fileno(ptr noundef %2445) #12
  %2447 = call i32 @isatty(i32 noundef %2446) #12
  %.not237 = icmp eq i32 %2447, 0
  br i1 %.not237, label %2448, label %2449

2448:                                             ; preds = %2444, %2437
  br label %2449

2449:                                             ; preds = %2444, %2448
  %.str.5.sink1167 = phi ptr [ @.str.5, %2448 ], [ @.str.2, %2444 ]
  store i32 %2439, ptr %2438, align 4, !tbaa !5
  %2450 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2451 = load i32, ptr @test_count, align 4, !tbaa !5
  %2452 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2453 = load i32, ptr %2452, align 4, !tbaa !5
  %2454 = call ptr @s2n_strerror(i32 noundef %2453, ptr noundef nonnull @.str.4) #12
  %2455 = load i32, ptr %2452, align 4, !tbaa !5
  %2456 = call ptr @s2n_strerror_debug(i32 noundef %2455, ptr noundef nonnull @.str.4) #12
  %2457 = load i32, ptr %2438, align 4, !tbaa !5
  %2458 = call ptr @strerror(i32 noundef %2457) #12
  %2459 = load i32, ptr %2438, align 4, !tbaa !5
  %2460 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2450, ptr noundef nonnull %.str.5.sink1167, i32 noundef %2451, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 245, ptr noundef %2454, ptr noundef %2456, ptr noundef %2458, i32 noundef %2459) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2461:                                             ; preds = %2432
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %30) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %30, i8 0, i64 40, i1 false)
  %2462 = load i32, ptr @test_count, align 4, !tbaa !5
  %2463 = add nsw i32 %2462, 1
  store i32 %2463, ptr @test_count, align 4, !tbaa !5
  %2464 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %30, i32 noundef 0) #12
  %2465 = icmp eq i32 %2464, -1
  br i1 %2465, label %2466, label %2490

2466:                                             ; preds = %2461
  %2467 = tail call ptr @__errno_location() #13
  %2468 = load i32, ptr %2467, align 4, !tbaa !5
  %2469 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2470 = call i32 @s2n_print_stacktrace(ptr noundef %2469) #12
  %2471 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2472 = trunc nuw i8 %2471 to i1
  br i1 %2472, label %2473, label %2477

2473:                                             ; preds = %2466
  %2474 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2475 = call i32 @fileno(ptr noundef %2474) #12
  %2476 = call i32 @isatty(i32 noundef %2475) #12
  %.not236 = icmp eq i32 %2476, 0
  br i1 %.not236, label %2477, label %2478

2477:                                             ; preds = %2473, %2466
  br label %2478

2478:                                             ; preds = %2473, %2477
  %.str.5.sink1178 = phi ptr [ @.str.5, %2477 ], [ @.str.2, %2473 ]
  store i32 %2468, ptr %2467, align 4, !tbaa !5
  %2479 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2480 = load i32, ptr @test_count, align 4, !tbaa !5
  %2481 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2482 = load i32, ptr %2481, align 4, !tbaa !5
  %2483 = call ptr @s2n_strerror(i32 noundef %2482, ptr noundef nonnull @.str.4) #12
  %2484 = load i32, ptr %2481, align 4, !tbaa !5
  %2485 = call ptr @s2n_strerror_debug(i32 noundef %2484, ptr noundef nonnull @.str.4) #12
  %2486 = load i32, ptr %2467, align 4, !tbaa !5
  %2487 = call ptr @strerror(i32 noundef %2486) #12
  %2488 = load i32, ptr %2467, align 4, !tbaa !5
  %2489 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2479, ptr noundef nonnull %.str.5.sink1178, i32 noundef %2480, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 248, ptr noundef %2483, ptr noundef %2485, ptr noundef %2487, i32 noundef %2488) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2490:                                             ; preds = %2461
  call void @llvm.lifetime.start.p0(i64 23, ptr nonnull %31) #12
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(23) %31, ptr noundef nonnull align 16 dereferenceable(23) @__const.main.wire_bytes, i64 23, i1 false)
  %2491 = load i32, ptr @test_count, align 4, !tbaa !5
  %2492 = add nsw i32 %2491, 1
  store i32 %2492, ptr @test_count, align 4, !tbaa !5
  %2493 = call i32 @s2n_stuffer_write_bytes(ptr noundef nonnull %30, ptr noundef nonnull %31, i32 noundef 23) #12
  %2494 = icmp eq i32 %2493, -1
  br i1 %2494, label %2495, label %2519

2495:                                             ; preds = %2490
  %2496 = tail call ptr @__errno_location() #13
  %2497 = load i32, ptr %2496, align 4, !tbaa !5
  %2498 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2499 = call i32 @s2n_print_stacktrace(ptr noundef %2498) #12
  %2500 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2501 = trunc nuw i8 %2500 to i1
  br i1 %2501, label %2502, label %2506

2502:                                             ; preds = %2495
  %2503 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2504 = call i32 @fileno(ptr noundef %2503) #12
  %2505 = call i32 @isatty(i32 noundef %2504) #12
  %.not235 = icmp eq i32 %2505, 0
  br i1 %.not235, label %2506, label %2507

2506:                                             ; preds = %2502, %2495
  br label %2507

2507:                                             ; preds = %2502, %2506
  %.str.5.sink1189 = phi ptr [ @.str.5, %2506 ], [ @.str.2, %2502 ]
  store i32 %2497, ptr %2496, align 4, !tbaa !5
  %2508 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2509 = load i32, ptr @test_count, align 4, !tbaa !5
  %2510 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2511 = load i32, ptr %2510, align 4, !tbaa !5
  %2512 = call ptr @s2n_strerror(i32 noundef %2511, ptr noundef nonnull @.str.4) #12
  %2513 = load i32, ptr %2510, align 4, !tbaa !5
  %2514 = call ptr @s2n_strerror_debug(i32 noundef %2513, ptr noundef nonnull @.str.4) #12
  %2515 = load i32, ptr %2496, align 4, !tbaa !5
  %2516 = call ptr @strerror(i32 noundef %2515) #12
  %2517 = load i32, ptr %2496, align 4, !tbaa !5
  %2518 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2508, ptr noundef nonnull %.str.5.sink1189, i32 noundef %2509, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 262, ptr noundef %2512, ptr noundef %2514, ptr noundef %2516, i32 noundef %2517) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2519:                                             ; preds = %2490
  %2520 = load i32, ptr @test_count, align 4, !tbaa !5
  %2521 = add nsw i32 %2520, 1
  store i32 %2521, ptr @test_count, align 4, !tbaa !5
  %2522 = call i32 %1469(ptr noundef nonnull %2347, ptr noundef nonnull %30) #12
  %2523 = icmp eq i32 %2522, -1
  br i1 %2523, label %2524, label %2548

2524:                                             ; preds = %2519
  %2525 = tail call ptr @__errno_location() #13
  %2526 = load i32, ptr %2525, align 4, !tbaa !5
  %2527 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2528 = call i32 @s2n_print_stacktrace(ptr noundef %2527) #12
  %2529 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2530 = trunc nuw i8 %2529 to i1
  br i1 %2530, label %2531, label %2535

2531:                                             ; preds = %2524
  %2532 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2533 = call i32 @fileno(ptr noundef %2532) #12
  %2534 = call i32 @isatty(i32 noundef %2533) #12
  %.not234 = icmp eq i32 %2534, 0
  br i1 %.not234, label %2535, label %2536

2535:                                             ; preds = %2531, %2524
  br label %2536

2536:                                             ; preds = %2531, %2535
  %.str.5.sink1200 = phi ptr [ @.str.5, %2535 ], [ @.str.2, %2531 ]
  store i32 %2526, ptr %2525, align 4, !tbaa !5
  %2537 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2538 = load i32, ptr @test_count, align 4, !tbaa !5
  %2539 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2540 = load i32, ptr %2539, align 4, !tbaa !5
  %2541 = call ptr @s2n_strerror(i32 noundef %2540, ptr noundef nonnull @.str.4) #12
  %2542 = load i32, ptr %2539, align 4, !tbaa !5
  %2543 = call ptr @s2n_strerror_debug(i32 noundef %2542, ptr noundef nonnull @.str.4) #12
  %2544 = load i32, ptr %2525, align 4, !tbaa !5
  %2545 = call ptr @strerror(i32 noundef %2544) #12
  %2546 = load i32, ptr %2525, align 4, !tbaa !5
  %2547 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2537, ptr noundef nonnull %.str.5.sink1200, i32 noundef %2538, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 263, ptr noundef %2541, ptr noundef %2543, ptr noundef %2545, i32 noundef %2546) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2548:                                             ; preds = %2519
  %2549 = load i32, ptr @test_count, align 4, !tbaa !5
  %2550 = add nsw i32 %2549, 1
  store i32 %2550, ptr @test_count, align 4, !tbaa !5
  %2551 = call ptr @s2n_get_application_protocol(ptr noundef nonnull %2347) #12
  %2552 = icmp eq ptr %2551, null
  br i1 %2552, label %2553, label %2577

2553:                                             ; preds = %2548
  %2554 = tail call ptr @__errno_location() #13
  %2555 = load i32, ptr %2554, align 4, !tbaa !5
  %2556 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2557 = call i32 @s2n_print_stacktrace(ptr noundef %2556) #12
  %2558 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2559 = trunc nuw i8 %2558 to i1
  br i1 %2559, label %2560, label %2564

2560:                                             ; preds = %2553
  %2561 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2562 = call i32 @fileno(ptr noundef %2561) #12
  %2563 = call i32 @isatty(i32 noundef %2562) #12
  %.not233 = icmp eq i32 %2563, 0
  br i1 %.not233, label %2564, label %2565

2564:                                             ; preds = %2560, %2553
  br label %2565

2565:                                             ; preds = %2560, %2564
  %.str.5.sink1211 = phi ptr [ @.str.5, %2564 ], [ @.str.2, %2560 ]
  store i32 %2555, ptr %2554, align 4, !tbaa !5
  %2566 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2567 = load i32, ptr @test_count, align 4, !tbaa !5
  %2568 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2569 = load i32, ptr %2568, align 4, !tbaa !5
  %2570 = call ptr @s2n_strerror(i32 noundef %2569, ptr noundef nonnull @.str.4) #12
  %2571 = load i32, ptr %2568, align 4, !tbaa !5
  %2572 = call ptr @s2n_strerror_debug(i32 noundef %2571, ptr noundef nonnull @.str.4) #12
  %2573 = load i32, ptr %2554, align 4, !tbaa !5
  %2574 = call ptr @strerror(i32 noundef %2573) #12
  %2575 = load i32, ptr %2554, align 4, !tbaa !5
  %2576 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2566, ptr noundef nonnull %.str.5.sink1211, i32 noundef %2567, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 265, ptr noundef %2570, ptr noundef %2572, ptr noundef %2574, i32 noundef %2575) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2577:                                             ; preds = %2548
  %2578 = load ptr, ptr %1332, align 8, !tbaa !9
  %char0223 = load i8, ptr %2578, align 1
  %.not224 = icmp eq i8 %char0223, 0
  br i1 %.not224, label %2610, label %2579

2579:                                             ; preds = %2577
  %2580 = load i32, ptr @test_count, align 4, !tbaa !5
  %2581 = add nsw i32 %2580, 1
  store i32 %2581, ptr @test_count, align 4, !tbaa !5
  %2582 = call ptr @s2n_get_application_protocol(ptr noundef nonnull %2347) #12
  %2583 = load ptr, ptr %1332, align 8, !tbaa !9
  %2584 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %2583) #16
  %bcmp225 = call i32 @bcmp(ptr %2582, ptr %2583, i64 %2584)
  %2585 = icmp eq i32 %bcmp225, 0
  br i1 %2585, label %2610, label %2586

2586:                                             ; preds = %2579
  %2587 = tail call ptr @__errno_location() #13
  %2588 = load i32, ptr %2587, align 4, !tbaa !5
  %2589 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2590 = call i32 @s2n_print_stacktrace(ptr noundef %2589) #12
  %2591 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2592 = trunc nuw i8 %2591 to i1
  br i1 %2592, label %2593, label %2597

2593:                                             ; preds = %2586
  %2594 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2595 = call i32 @fileno(ptr noundef %2594) #12
  %2596 = call i32 @isatty(i32 noundef %2595) #12
  %.not226 = icmp eq i32 %2596, 0
  br i1 %.not226, label %2597, label %2598

2597:                                             ; preds = %2593, %2586
  br label %2598

2598:                                             ; preds = %2593, %2597
  %.str.5.sink1222 = phi ptr [ @.str.5, %2597 ], [ @.str.2, %2593 ]
  store i32 %2588, ptr %2587, align 4, !tbaa !5
  %2599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2600 = load i32, ptr @test_count, align 4, !tbaa !5
  %2601 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2602 = load i32, ptr %2601, align 4, !tbaa !5
  %2603 = call ptr @s2n_strerror(i32 noundef %2602, ptr noundef nonnull @.str.4) #12
  %2604 = load i32, ptr %2601, align 4, !tbaa !5
  %2605 = call ptr @s2n_strerror_debug(i32 noundef %2604, ptr noundef nonnull @.str.4) #12
  %2606 = load i32, ptr %2587, align 4, !tbaa !5
  %2607 = call ptr @strerror(i32 noundef %2606) #12
  %2608 = load i32, ptr %2587, align 4, !tbaa !5
  %2609 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2599, ptr noundef nonnull %.str.5.sink1222, i32 noundef %2600, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 268, ptr noundef %2603, ptr noundef %2605, ptr noundef %2607, i32 noundef %2608) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2610:                                             ; preds = %2579, %2577
  call void @llvm.lifetime.end.p0(i64 23, ptr nonnull %31) #12
  %2611 = call i32 @s2n_stuffer_free(ptr noundef nonnull %30) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %30) #12
  %2612 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %29) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #12
  %2613 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %28) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %32) #12
  %2614 = call ptr @s2n_connection_new(i32 noundef 0) #12
  store ptr %2614, ptr %32, align 8, !tbaa !9
  %2615 = load i32, ptr @test_count, align 4, !tbaa !5
  %2616 = add nsw i32 %2615, 1
  store i32 %2616, ptr @test_count, align 4, !tbaa !5
  %2617 = icmp eq ptr %2614, null
  br i1 %2617, label %2618, label %2642

2618:                                             ; preds = %2610
  %2619 = tail call ptr @__errno_location() #13
  %2620 = load i32, ptr %2619, align 4, !tbaa !5
  %2621 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2622 = call i32 @s2n_print_stacktrace(ptr noundef %2621) #12
  %2623 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2624 = trunc nuw i8 %2623 to i1
  br i1 %2624, label %2625, label %2629

2625:                                             ; preds = %2618
  %2626 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2627 = call i32 @fileno(ptr noundef %2626) #12
  %2628 = call i32 @isatty(i32 noundef %2627) #12
  %.not232 = icmp eq i32 %2628, 0
  br i1 %.not232, label %2629, label %2630

2629:                                             ; preds = %2625, %2618
  br label %2630

2630:                                             ; preds = %2625, %2629
  %.str.5.sink1233 = phi ptr [ @.str.5, %2629 ], [ @.str.2, %2625 ]
  store i32 %2620, ptr %2619, align 4, !tbaa !5
  %2631 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2632 = load i32, ptr @test_count, align 4, !tbaa !5
  %2633 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2634 = load i32, ptr %2633, align 4, !tbaa !5
  %2635 = call ptr @s2n_strerror(i32 noundef %2634, ptr noundef nonnull @.str.4) #12
  %2636 = load i32, ptr %2633, align 4, !tbaa !5
  %2637 = call ptr @s2n_strerror_debug(i32 noundef %2636, ptr noundef nonnull @.str.4) #12
  %2638 = load i32, ptr %2619, align 4, !tbaa !5
  %2639 = call ptr @strerror(i32 noundef %2638) #12
  %2640 = load i32, ptr %2619, align 4, !tbaa !5
  %2641 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2631, ptr noundef nonnull %.str.5.sink1233, i32 noundef %2632, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 282, ptr noundef %2635, ptr noundef %2637, ptr noundef %2639, i32 noundef %2640) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2642:                                             ; preds = %2610
  %2643 = add nsw i32 %2615, 2
  store i32 %2643, ptr @test_count, align 4, !tbaa !5
  %2644 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %32) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #12
  %2645 = call i32 @s2n_cleanup() #12
  %2646 = icmp eq i32 %2645, -1
  br i1 %2646, label %2647, label %2671

2647:                                             ; preds = %2642
  %2648 = tail call ptr @__errno_location() #13
  %2649 = load i32, ptr %2648, align 4, !tbaa !5
  %2650 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2651 = call i32 @s2n_print_stacktrace(ptr noundef %2650) #12
  %2652 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2653 = trunc nuw i8 %2652 to i1
  br i1 %2653, label %2654, label %2658

2654:                                             ; preds = %2647
  %2655 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2656 = call i32 @fileno(ptr noundef %2655) #12
  %2657 = call i32 @isatty(i32 noundef %2656) #12
  %.not231 = icmp eq i32 %2657, 0
  br i1 %.not231, label %2658, label %2659

2658:                                             ; preds = %2654, %2647
  br label %2659

2659:                                             ; preds = %2654, %2658
  %.str.5.sink1244 = phi ptr [ @.str.5, %2658 ], [ @.str.2, %2654 ]
  store i32 %2649, ptr %2648, align 4, !tbaa !5
  %2660 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2661 = load i32, ptr @test_count, align 4, !tbaa !5
  %2662 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2663 = load i32, ptr %2662, align 4, !tbaa !5
  %2664 = call ptr @s2n_strerror(i32 noundef %2663, ptr noundef nonnull @.str.4) #12
  %2665 = load i32, ptr %2662, align 4, !tbaa !5
  %2666 = call ptr @s2n_strerror_debug(i32 noundef %2665, ptr noundef nonnull @.str.4) #12
  %2667 = load i32, ptr %2648, align 4, !tbaa !5
  %2668 = call ptr @strerror(i32 noundef %2667) #12
  %2669 = load i32, ptr %2648, align 4, !tbaa !5
  %2670 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2660, ptr noundef nonnull %.str.5.sink1244, i32 noundef %2661, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 288, ptr noundef %2664, ptr noundef %2666, ptr noundef %2668, i32 noundef %2669) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2671:                                             ; preds = %2642
  %2672 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #12
  %2673 = icmp eq i32 %2672, -1
  br i1 %2673, label %2674, label %2698

2674:                                             ; preds = %2671
  %2675 = tail call ptr @__errno_location() #13
  %2676 = load i32, ptr %2675, align 4, !tbaa !5
  %2677 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2678 = call i32 @s2n_print_stacktrace(ptr noundef %2677) #12
  %2679 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2680 = trunc nuw i8 %2679 to i1
  br i1 %2680, label %2681, label %2685

2681:                                             ; preds = %2674
  %2682 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2683 = call i32 @fileno(ptr noundef %2682) #12
  %2684 = call i32 @isatty(i32 noundef %2683) #12
  %.not230 = icmp eq i32 %2684, 0
  br i1 %.not230, label %2685, label %2686

2685:                                             ; preds = %2681, %2674
  br label %2686

2686:                                             ; preds = %2681, %2685
  %.str.5.sink1255 = phi ptr [ @.str.5, %2685 ], [ @.str.2, %2681 ]
  store i32 %2676, ptr %2675, align 4, !tbaa !5
  %2687 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2688 = load i32, ptr @test_count, align 4, !tbaa !5
  %2689 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2690 = load i32, ptr %2689, align 4, !tbaa !5
  %2691 = call ptr @s2n_strerror(i32 noundef %2690, ptr noundef nonnull @.str.4) #12
  %2692 = load i32, ptr %2689, align 4, !tbaa !5
  %2693 = call ptr @s2n_strerror_debug(i32 noundef %2692, ptr noundef nonnull @.str.4) #12
  %2694 = load i32, ptr %2675, align 4, !tbaa !5
  %2695 = call ptr @strerror(i32 noundef %2694) #12
  %2696 = load i32, ptr %2675, align 4, !tbaa !5
  %2697 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2687, ptr noundef nonnull %.str.5.sink1255, i32 noundef %2688, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.1, i32 noundef 288, ptr noundef %2691, ptr noundef %2693, ptr noundef %2695, i32 noundef %2696) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2698:                                             ; preds = %2671
  %2699 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2700 = trunc nuw i8 %2699 to i1
  br i1 %2700, label %2701, label %2712

2701:                                             ; preds = %2698
  %2702 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2703 = call i32 @fileno(ptr noundef %2702) #12
  %2704 = call i32 @isatty(i32 noundef %2703) #12
  %.not227 = icmp eq i32 %2704, 0
  br i1 %.not227, label %2712, label %2705

2705:                                             ; preds = %2701
  %2706 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not229 = icmp eq i32 %2706, 0
  %2707 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not229, label %2710, label %2708

2708:                                             ; preds = %2705
  %2709 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2707, ptr noundef nonnull @.str.46, i32 noundef %2706) #12
  br label %2719

2710:                                             ; preds = %2705
  %2711 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2707, ptr noundef nonnull @.str.47) #12
  br label %2719

2712:                                             ; preds = %2701, %2698
  %2713 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not228 = icmp eq i32 %2713, 0
  %2714 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not228, label %2717, label %2715

2715:                                             ; preds = %2712
  %2716 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2714, ptr noundef nonnull @.str.48, i32 noundef %2713) #12
  br label %2719

2717:                                             ; preds = %2712
  %2718 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2714, ptr noundef nonnull @.str.49) #12
  br label %2719

2719:                                             ; preds = %2715, %2717, %2708, %2710
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %3) #12
  ret i32 0
}

; Function Attrs: nofree nounwind
declare noundef i32 @fprintf(ptr nocapture noundef, ptr nocapture noundef readonly, ...) local_unnamed_addr #1

; Function Attrs: nofree nounwind
declare noundef i32 @fflush(ptr nocapture noundef) local_unnamed_addr #1

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) local_unnamed_addr #2

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

; Function Attrs: mustprogress nofree nosync nounwind willreturn memory(none)
declare ptr @__errno_location() local_unnamed_addr #4

declare i32 @s2n_print_stacktrace(ptr noundef) local_unnamed_addr #2

; Function Attrs: nounwind
declare i32 @isatty(i32 noundef) local_unnamed_addr #5

; Function Attrs: nofree nounwind
declare noundef i32 @fileno(ptr nocapture noundef) local_unnamed_addr #1

declare ptr @s2n_strerror(i32 noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare nonnull ptr @llvm.threadlocal.address.p0(ptr nonnull) #6

declare ptr @s2n_strerror_debug(i32 noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: nounwind
declare ptr @strerror(i32 noundef) local_unnamed_addr #5

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

; Function Attrs: noreturn nounwind
declare void @exit(i32 noundef) local_unnamed_addr #7

declare i32 @s2n_enable_atexit() local_unnamed_addr #2

declare i32 @s2n_init() local_unnamed_addr #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) #8

declare ptr @s2n_connection_new(i32 noundef) local_unnamed_addr #2

declare i32 @s2n_connection_ptr_free(ptr noundef) local_unnamed_addr #2

declare ptr @s2n_config_new() local_unnamed_addr #2

declare i32 @s2n_config_ptr_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_connection_set_config(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_config_set_protocol_preferences(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #2

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

declare i32 @s2n_stuffer_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_growable_alloc(ptr noundef, i32 noundef) local_unnamed_addr #2

; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: read)
declare i64 @strlen(ptr nocapture noundef) local_unnamed_addr #10

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

declare i32 @s2n_stuffer_read_uint8(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_read_bytes(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #2

declare ptr @s2n_get_application_protocol(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_write_uint8(ptr noundef, i8 noundef zeroext) local_unnamed_addr #2

declare i32 @s2n_stuffer_write_bytes(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @s2n_cleanup() local_unnamed_addr #2

; Function Attrs: nofree nounwind willreturn memory(argmem: read)
declare i32 @bcmp(ptr nocapture, ptr nocapture, i64) local_unnamed_addr #11

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

!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 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_Bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!16, !10, i64 24}
!16 = !{!"", !17, i64 0, !6, i64 2, !17, i64 4, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32}
!17 = !{!"short", !7, i64 0}
!18 = !{!19, !10, i64 8}
!19 = !{!"s2n_connection", !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40, !10, i64 48, !10, i64 56, !10, i64 64, !10, i64 72, !7, i64 80, !7, i64 102, !7, i64 124, !6, i64 148, !6, i64 152, !20, i64 160, !21, i64 168, !21, i64 176, !7, i64 184, !7, i64 216, !7, i64 217, !7, i64 218, !7, i64 219, !7, i64 220, !7, i64 221, !7, i64 222, !10, i64 224, !10, i64 232, !22, i64 240, !10, i64 632, !10, i64 640, !23, i64 648, !29, i64 1144, !32, i64 1688, !10, i64 1752, !7, i64 1760, !6, i64 1764, !7, i64 1768, !34, i64 1776, !34, i64 1816, !34, i64 1856, !34, i64 1896, !6, i64 1936, !21, i64 1944, !7, i64 1952, !34, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !35, i64 2004, !35, i64 2008, !36, i64 2016, !17, i64 2208, !6, i64 2212, !17, i64 2216, !21, i64 2224, !7, i64 2232, !21, i64 2240, !21, i64 2248, !21, i64 2256, !35, i64 2264, !35, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !28, i64 2792, !6, i64 2816, !28, i64 2824, !28, i64 2848, !28, i64 2872, !38, i64 2896, !40, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !28, i64 3784, !6, i64 3808, !42, i64 3816, !7, i64 3848, !34, i64 3992, !28, i64 4032, !28, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !17, i64 4084, !17, i64 4086, !6, i64 4088, !6, i64 4092, !28, i64 4096, !6, i64 4120, !43, i64 4128, !35, i64 4176, !7, i64 4180, !7, i64 4181}
!20 = !{!"s2n_timer", !21, i64 0}
!21 = !{!"long", !7, i64 0}
!22 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!23 = !{!"s2n_kex_parameters", !24, i64 0, !25, i64 8, !7, i64 24, !25, i64 56, !26, i64 72, !26, i64 184, !7, i64 296, !27, i64 360, !28, i64 448, !28, i64 472}
!24 = !{!"s2n_dh_params", !10, i64 0}
!25 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!26 = !{!"s2n_kem_group_params", !10, i64 0, !27, i64 8, !25, i64 96}
!27 = !{!"s2n_kem_params", !10, i64 0, !28, i64 8, !28, i64 32, !28, i64 56, !12, i64 80}
!28 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!29 = !{!"s2n_handshake_parameters", !30, i64 0, !30, i64 48, !28, i64 96, !6, i64 120, !31, i64 124, !10, i64 384, !10, i64 392, !10, i64 400, !7, i64 408, !7, i64 440, !7, i64 472, !7, i64 473, !7, i64 474, !7, i64 506}
!30 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!31 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!32 = !{!"s2n_psk_parameters", !6, i64 0, !33, i64 8, !17, i64 40, !17, i64 42, !10, i64 48, !6, i64 56}
!33 = !{!"s2n_array", !28, i64 0, !6, i64 24, !6, i64 28}
!34 = !{!"s2n_stuffer", !28, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!35 = !{!"", !6, i64 0}
!36 = !{!"s2n_handshake", !34, i64 0, !10, i64 40, !7, i64 48, !7, i64 56, !7, i64 104, !7, i64 152, !6, i64 156, !6, i64 160, !6, i64 164, !6, i64 168, !37, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!37 = !{!"s2n_offered_early_data", !10, i64 0}
!38 = !{!"s2n_client_hello", !28, i64 0, !39, i64 24, !28, i64 728, !28, i64 752, !28, i64 776, !7, i64 800, !7, i64 801, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802}
!39 = !{!"", !7, i64 0, !28, i64 672, !17, i64 696}
!40 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !17, i64 18, !10, i64 24, !6, i64 32, !10, i64 40, !41, i64 48, !12, i64 52}
!41 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!42 = !{!"s2n_ticket_fields", !28, i64 0, !6, i64 24}
!43 = !{!"s2n_post_handshake", !34, i64 0, !7, i64 40}
!44 = !{!16, !10, i64 16}
!45 = !{!16, !10, i64 8}
!46 = !{!7, !7, i64 0}
!47 = !{!34, !6, i64 28}
!48 = !{!34, !6, i64 24}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,LoopRotatePass,PostOrderFunctionAttrsPass,SROAPass,SimplifyCFGPass,TailCallElimPass