; LLVM IR from aws/s2n-tls :: tests/unit (s2n_client_cert_verify_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_signature_scheme = type { i16, ptr, i32, i32, i8, i8, i16, ptr }
%struct.s2n_test_io_pair = type { i32, i32 }
%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_stuffer = type { %struct.s2n_blob, i32, i32, i32, i8 }
%struct.s2n_blob = type { ptr, i32, i32, i8 }
%struct.s2n_post_handshake = type { %struct.s2n_stuffer, [4 x i8] }
%struct.s2n_atomic_flag = type { i32 }
%struct.s2n_cert_chain_and_key = type { ptr, ptr, %struct.s2n_blob, %struct.s2n_blob, ptr, ptr, ptr }

@s2n_use_color_in_output = external dso_local global i8, align 1
@test_signature_data = external dso_local constant [14 x i8], align 1
@test_count = external dso_local global i32, align 4
@stderr = external global ptr, align 8
@.str = external hidden unnamed_addr constant [101 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [86 x i8], align 1
@s2n_errno = external thread_local global i32, align 4
@.str.3 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [90 x i8], align 1
@async_callback_invoked = external hidden global i8, align 1
@stdout = external global ptr, align 8
@.str.6 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [39 x i8], align 1
@s2n_rsa_pkcs1_md5_sha1 = external constant %struct.s2n_signature_scheme, align 8
@.str.10 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [149 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [110 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [200 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [119 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [138 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [138 x i8], align 1
@async_sign_operation_called_s2n_client = external hidden global i8, align 1
@.str.58 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [25 x i8], align 1

; Function Attrs: nounwind uwtable
declare dso_local i32 @s2n_async_pkey_store_op(ptr noundef, ptr noundef) #0

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

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

declare i32 @s2n_print_stacktrace(ptr noundef) #3

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

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

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

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

; 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) #3

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

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

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

; 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 ptr, align 8
  %10 = alloca i32, align 4
  %11 = alloca ptr, align 8
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %14 = alloca i16, align 2
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca i16, align 2
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca ptr, align 8
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca ptr, align 8
  %28 = alloca i32, align 4
  %29 = alloca ptr, align 8
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca ptr, align 8
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca ptr, align 8
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca ptr, align 8
  %45 = alloca i32, align 4
  %46 = alloca i32, align 4
  %47 = alloca i32, align 4
  %48 = alloca %struct.s2n_test_io_pair, align 4
  %49 = alloca i32, align 4
  %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 i32, align 4
  %56 = alloca i32, align 4
  %57 = alloca i32, align 4
  %58 = alloca i32, align 4
  %59 = alloca i32, align 4
  %60 = alloca i32, align 4
  %61 = alloca i32, align 4
  %62 = alloca i32, align 4
  %63 = alloca i32, align 4
  %64 = alloca ptr, align 8
  %65 = alloca i32, align 4
  %66 = alloca ptr, align 8
  %67 = alloca i32, align 4
  %68 = alloca i32, align 4
  %69 = alloca i32, align 4
  %70 = alloca i32, align 4
  %71 = alloca i32, align 4
  %72 = alloca i32, align 4
  %73 = alloca ptr, align 8
  %74 = alloca i32, align 4
  %75 = alloca i32, align 4
  %76 = alloca i32, align 4
  %77 = alloca ptr, align 8
  %78 = alloca i32, align 4
  %79 = alloca i32, align 4
  %80 = alloca i32, align 4
  %81 = alloca ptr, align 8
  %82 = alloca i32, align 4
  %83 = alloca i32, align 4
  %84 = alloca i32, align 4
  %85 = alloca %struct.s2n_test_io_pair, align 4
  %86 = alloca i32, align 4
  %87 = alloca i32, align 4
  %88 = alloca i32, align 4
  %89 = alloca i32, align 4
  %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 i32, align 4
  %96 = alloca i32, align 4
  %97 = alloca i32, align 4
  %98 = alloca i32, align 4
  %99 = alloca i32, align 4
  %100 = alloca i32, align 4
  %101 = alloca i32, align 4
  %102 = alloca i32, align 4
  %103 = 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 %104

104:                                              ; preds = %2
  br label %105

105:                                              ; preds = %104
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %106 = load ptr, ptr @stdout, align 8, !tbaa !9
  %107 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %106, ptr noundef @.str.6, ptr noundef @.str.2) #9
  %108 = load ptr, ptr @stdout, align 8, !tbaa !9
  %109 = call i32 @fflush(ptr noundef %108)
  br label %110

110:                                              ; preds = %105
  %111 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %112 = icmp eq i32 %111, -1
  br i1 %112, label %113, label %164

113:                                              ; preds = %110
  br label %114

114:                                              ; preds = %113
  br label %115

115:                                              ; preds = %114
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #9
  %116 = call ptr @__errno_location() #10
  %117 = load i32, ptr %116, align 4, !tbaa !5
  store i32 %117, ptr %6, align 4, !tbaa !5
  %118 = load ptr, ptr @stderr, align 8, !tbaa !9
  %119 = call i32 @s2n_print_stacktrace(ptr noundef %118)
  %120 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %121 = trunc i8 %120 to i1
  br i1 %121, label %122, label %144

122:                                              ; preds = %115
  %123 = load ptr, ptr @stderr, align 8, !tbaa !9
  %124 = call i32 @fileno(ptr noundef %123) #9
  %125 = call i32 @isatty(i32 noundef %124) #9
  %126 = icmp ne i32 %125, 0
  br i1 %126, label %127, label %144

127:                                              ; preds = %122
  %128 = load i32, ptr %6, align 4, !tbaa !5
  %129 = call ptr @__errno_location() #10
  store i32 %128, ptr %129, align 4, !tbaa !5
  %130 = load ptr, ptr @stderr, align 8, !tbaa !9
  %131 = load i32, ptr @test_count, align 4, !tbaa !5
  %132 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %133 = load i32, ptr %132, align 4, !tbaa !5
  %134 = call ptr @s2n_strerror(i32 noundef %133, ptr noundef @.str.3)
  %135 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %136 = load i32, ptr %135, align 4, !tbaa !5
  %137 = call ptr @s2n_strerror_debug(i32 noundef %136, ptr noundef @.str.3)
  %138 = call ptr @__errno_location() #10
  %139 = load i32, ptr %138, align 4, !tbaa !5
  %140 = call ptr @strerror(i32 noundef %139) #9
  %141 = call ptr @__errno_location() #10
  %142 = load i32, ptr %141, align 4, !tbaa !5
  %143 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %130, ptr noundef @.str, i32 noundef %131, ptr noundef @.str.7, ptr noundef @.str.2, i32 noundef 164, ptr noundef %134, ptr noundef %137, ptr noundef %140, i32 noundef %142) #9
  br label %161

144:                                              ; preds = %122, %115
  %145 = load i32, ptr %6, align 4, !tbaa !5
  %146 = call ptr @__errno_location() #10
  store i32 %145, ptr %146, align 4, !tbaa !5
  %147 = load ptr, ptr @stderr, align 8, !tbaa !9
  %148 = load i32, ptr @test_count, align 4, !tbaa !5
  %149 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %150 = load i32, ptr %149, align 4, !tbaa !5
  %151 = call ptr @s2n_strerror(i32 noundef %150, ptr noundef @.str.3)
  %152 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %153 = load i32, ptr %152, align 4, !tbaa !5
  %154 = call ptr @s2n_strerror_debug(i32 noundef %153, ptr noundef @.str.3)
  %155 = call ptr @__errno_location() #10
  %156 = load i32, ptr %155, align 4, !tbaa !5
  %157 = call ptr @strerror(i32 noundef %156) #9
  %158 = call ptr @__errno_location() #10
  %159 = load i32, ptr %158, align 4, !tbaa !5
  %160 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %147, ptr noundef @.str.4, i32 noundef %148, ptr noundef @.str.7, ptr noundef @.str.2, i32 noundef 164, ptr noundef %151, ptr noundef %154, ptr noundef %157, i32 noundef %159) #9
  br label %161

161:                                              ; preds = %144, %127
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #9
  br label %162

162:                                              ; preds = %161
  call void @exit(i32 noundef 1) #11
  unreachable

163:                                              ; No predecessors!
  br label %164

164:                                              ; preds = %163, %110
  br label %165

165:                                              ; preds = %164
  br label %166

166:                                              ; preds = %165
  %167 = load i32, ptr @test_count, align 4, !tbaa !5
  %168 = add nsw i32 %167, 1
  store i32 %168, ptr @test_count, align 4, !tbaa !5
  %169 = call i32 @s2n_enable_atexit()
  %170 = icmp eq i32 %169, -1
  br i1 %170, label %171, label %222

171:                                              ; preds = %166
  br label %172

172:                                              ; preds = %171
  br label %173

173:                                              ; preds = %172
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #9
  %174 = call ptr @__errno_location() #10
  %175 = load i32, ptr %174, align 4, !tbaa !5
  store i32 %175, ptr %7, align 4, !tbaa !5
  %176 = load ptr, ptr @stderr, align 8, !tbaa !9
  %177 = call i32 @s2n_print_stacktrace(ptr noundef %176)
  %178 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %179 = trunc i8 %178 to i1
  br i1 %179, label %180, label %202

180:                                              ; preds = %173
  %181 = load ptr, ptr @stderr, align 8, !tbaa !9
  %182 = call i32 @fileno(ptr noundef %181) #9
  %183 = call i32 @isatty(i32 noundef %182) #9
  %184 = icmp ne i32 %183, 0
  br i1 %184, label %185, label %202

185:                                              ; preds = %180
  %186 = load i32, ptr %7, align 4, !tbaa !5
  %187 = call ptr @__errno_location() #10
  store i32 %186, ptr %187, align 4, !tbaa !5
  %188 = load ptr, ptr @stderr, align 8, !tbaa !9
  %189 = load i32, ptr @test_count, align 4, !tbaa !5
  %190 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %191 = load i32, ptr %190, align 4, !tbaa !5
  %192 = call ptr @s2n_strerror(i32 noundef %191, ptr noundef @.str.3)
  %193 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %194 = load i32, ptr %193, align 4, !tbaa !5
  %195 = call ptr @s2n_strerror_debug(i32 noundef %194, ptr noundef @.str.3)
  %196 = call ptr @__errno_location() #10
  %197 = load i32, ptr %196, align 4, !tbaa !5
  %198 = call ptr @strerror(i32 noundef %197) #9
  %199 = call ptr @__errno_location() #10
  %200 = load i32, ptr %199, align 4, !tbaa !5
  %201 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %188, ptr noundef @.str, i32 noundef %189, ptr noundef @.str.8, ptr noundef @.str.2, i32 noundef 164, ptr noundef %192, ptr noundef %195, ptr noundef %198, i32 noundef %200) #9
  br label %219

202:                                              ; preds = %180, %173
  %203 = load i32, ptr %7, align 4, !tbaa !5
  %204 = call ptr @__errno_location() #10
  store i32 %203, ptr %204, align 4, !tbaa !5
  %205 = load ptr, ptr @stderr, align 8, !tbaa !9
  %206 = load i32, ptr @test_count, align 4, !tbaa !5
  %207 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %208 = load i32, ptr %207, align 4, !tbaa !5
  %209 = call ptr @s2n_strerror(i32 noundef %208, ptr noundef @.str.3)
  %210 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %211 = load i32, ptr %210, align 4, !tbaa !5
  %212 = call ptr @s2n_strerror_debug(i32 noundef %211, ptr noundef @.str.3)
  %213 = call ptr @__errno_location() #10
  %214 = load i32, ptr %213, align 4, !tbaa !5
  %215 = call ptr @strerror(i32 noundef %214) #9
  %216 = call ptr @__errno_location() #10
  %217 = load i32, ptr %216, align 4, !tbaa !5
  %218 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %205, ptr noundef @.str.4, i32 noundef %206, ptr noundef @.str.8, ptr noundef @.str.2, i32 noundef 164, ptr noundef %209, ptr noundef %212, ptr noundef %215, i32 noundef %217) #9
  br label %219

219:                                              ; preds = %202, %185
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #9
  br label %220

220:                                              ; preds = %219
  call void @exit(i32 noundef 1) #11
  unreachable

221:                                              ; No predecessors!
  br label %222

222:                                              ; preds = %221, %166
  br label %223

223:                                              ; preds = %222
  br label %224

224:                                              ; preds = %223
  br label %225

225:                                              ; preds = %224
  %226 = call i32 @s2n_init()
  %227 = icmp eq i32 %226, -1
  br i1 %227, label %228, label %279

228:                                              ; preds = %225
  br label %229

229:                                              ; preds = %228
  br label %230

230:                                              ; preds = %229
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #9
  %231 = call ptr @__errno_location() #10
  %232 = load i32, ptr %231, align 4, !tbaa !5
  store i32 %232, ptr %8, align 4, !tbaa !5
  %233 = load ptr, ptr @stderr, align 8, !tbaa !9
  %234 = call i32 @s2n_print_stacktrace(ptr noundef %233)
  %235 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %236 = trunc i8 %235 to i1
  br i1 %236, label %237, label %259

237:                                              ; preds = %230
  %238 = load ptr, ptr @stderr, align 8, !tbaa !9
  %239 = call i32 @fileno(ptr noundef %238) #9
  %240 = call i32 @isatty(i32 noundef %239) #9
  %241 = icmp ne i32 %240, 0
  br i1 %241, label %242, label %259

242:                                              ; preds = %237
  %243 = load i32, ptr %8, align 4, !tbaa !5
  %244 = call ptr @__errno_location() #10
  store i32 %243, ptr %244, align 4, !tbaa !5
  %245 = load ptr, ptr @stderr, align 8, !tbaa !9
  %246 = load i32, ptr @test_count, align 4, !tbaa !5
  %247 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %248 = load i32, ptr %247, align 4, !tbaa !5
  %249 = call ptr @s2n_strerror(i32 noundef %248, ptr noundef @.str.3)
  %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_debug(i32 noundef %251, ptr noundef @.str.3)
  %253 = call ptr @__errno_location() #10
  %254 = load i32, ptr %253, align 4, !tbaa !5
  %255 = call ptr @strerror(i32 noundef %254) #9
  %256 = call ptr @__errno_location() #10
  %257 = load i32, ptr %256, align 4, !tbaa !5
  %258 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %245, ptr noundef @.str, i32 noundef %246, ptr noundef @.str.9, ptr noundef @.str.2, i32 noundef 164, ptr noundef %249, ptr noundef %252, ptr noundef %255, i32 noundef %257) #9
  br label %276

259:                                              ; preds = %237, %230
  %260 = load i32, ptr %8, align 4, !tbaa !5
  %261 = call ptr @__errno_location() #10
  store i32 %260, ptr %261, align 4, !tbaa !5
  %262 = load ptr, ptr @stderr, align 8, !tbaa !9
  %263 = load i32, ptr @test_count, align 4, !tbaa !5
  %264 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %265 = load i32, ptr %264, align 4, !tbaa !5
  %266 = call ptr @s2n_strerror(i32 noundef %265, ptr noundef @.str.3)
  %267 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %268 = load i32, ptr %267, align 4, !tbaa !5
  %269 = call ptr @s2n_strerror_debug(i32 noundef %268, ptr noundef @.str.3)
  %270 = call ptr @__errno_location() #10
  %271 = load i32, ptr %270, align 4, !tbaa !5
  %272 = call ptr @strerror(i32 noundef %271) #9
  %273 = call ptr @__errno_location() #10
  %274 = load i32, ptr %273, align 4, !tbaa !5
  %275 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %262, ptr noundef @.str.4, i32 noundef %263, ptr noundef @.str.9, ptr noundef @.str.2, i32 noundef 164, ptr noundef %266, ptr noundef %269, ptr noundef %272, i32 noundef %274) #9
  br label %276

276:                                              ; preds = %259, %242
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #9
  br label %277

277:                                              ; preds = %276
  call void @exit(i32 noundef 1) #11
  unreachable

278:                                              ; No predecessors!
  br label %279

279:                                              ; preds = %278, %225
  br label %280

280:                                              ; preds = %279
  br label %281

281:                                              ; preds = %280
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #9
  %282 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %282, ptr %9, align 8, !tbaa !9
  br label %283

283:                                              ; preds = %281
  %284 = load i32, ptr @test_count, align 4, !tbaa !5
  %285 = add nsw i32 %284, 1
  store i32 %285, ptr @test_count, align 4, !tbaa !5
  %286 = load ptr, ptr %9, align 8, !tbaa !9
  %287 = icmp eq ptr %286, null
  br i1 %287, label %288, label %341

288:                                              ; preds = %283
  br label %289

289:                                              ; preds = %288
  br label %290

290:                                              ; preds = %289
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #9
  %291 = call ptr @__errno_location() #10
  %292 = load i32, ptr %291, align 4, !tbaa !5
  store i32 %292, ptr %10, align 4, !tbaa !5
  %293 = load ptr, ptr @stderr, align 8, !tbaa !9
  %294 = call i32 @s2n_print_stacktrace(ptr noundef %293)
  %295 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %296 = trunc i8 %295 to i1
  br i1 %296, label %297, label %319

297:                                              ; preds = %290
  %298 = load ptr, ptr @stderr, align 8, !tbaa !9
  %299 = call i32 @fileno(ptr noundef %298) #9
  %300 = call i32 @isatty(i32 noundef %299) #9
  %301 = icmp ne i32 %300, 0
  br i1 %301, label %302, label %319

302:                                              ; preds = %297
  %303 = load i32, ptr %10, align 4, !tbaa !5
  %304 = call ptr @__errno_location() #10
  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.3)
  %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.3)
  %313 = call ptr @__errno_location() #10
  %314 = load i32, ptr %313, align 4, !tbaa !5
  %315 = call ptr @strerror(i32 noundef %314) #9
  %316 = call ptr @__errno_location() #10
  %317 = load i32, ptr %316, align 4, !tbaa !5
  %318 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %305, ptr noundef @.str, i32 noundef %306, ptr noundef @.str.1, ptr noundef @.str.2, i32 noundef 169, ptr noundef %309, ptr noundef %312, ptr noundef %315, i32 noundef %317) #9
  br label %336

319:                                              ; preds = %297, %290
  %320 = load i32, ptr %10, align 4, !tbaa !5
  %321 = call ptr @__errno_location() #10
  store i32 %320, ptr %321, align 4, !tbaa !5
  %322 = load ptr, ptr @stderr, align 8, !tbaa !9
  %323 = load i32, ptr @test_count, align 4, !tbaa !5
  %324 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %325 = load i32, ptr %324, align 4, !tbaa !5
  %326 = call ptr @s2n_strerror(i32 noundef %325, ptr noundef @.str.3)
  %327 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %328 = load i32, ptr %327, align 4, !tbaa !5
  %329 = call ptr @s2n_strerror_debug(i32 noundef %328, ptr noundef @.str.3)
  %330 = call ptr @__errno_location() #10
  %331 = load i32, ptr %330, align 4, !tbaa !5
  %332 = call ptr @strerror(i32 noundef %331) #9
  %333 = call ptr @__errno_location() #10
  %334 = load i32, ptr %333, align 4, !tbaa !5
  %335 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %322, ptr noundef @.str.4, i32 noundef %323, ptr noundef @.str.1, ptr noundef @.str.2, i32 noundef 169, ptr noundef %326, ptr noundef %329, ptr noundef %332, i32 noundef %334) #9
  br label %336

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

337:                                              ; preds = %336
  br label %338

338:                                              ; preds = %337
  call void @exit(i32 noundef 1) #11
  unreachable

339:                                              ; No predecessors!
  br label %340

340:                                              ; preds = %339
  br label %341

341:                                              ; preds = %340, %283
  br label %342

342:                                              ; preds = %341
  br label %343

343:                                              ; preds = %342
  %344 = load ptr, ptr %9, align 8, !tbaa !9
  %345 = getelementptr inbounds %struct.s2n_connection, ptr %344, i32 0, i32 32
  %346 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %345, i32 0, i32 6
  store ptr @s2n_rsa_pkcs1_md5_sha1, ptr %346, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #9
  store ptr null, ptr %11, align 8, !tbaa !9
  br label %347

347:                                              ; preds = %343
  %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 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef %11, ptr noundef @.str.10, ptr noundef @.str.11)
  %351 = icmp eq i32 %350, -1
  br i1 %351, label %352, label %405

352:                                              ; preds = %347
  br label %353

353:                                              ; preds = %352
  br label %354

354:                                              ; preds = %353
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #9
  %355 = call ptr @__errno_location() #10
  %356 = load i32, ptr %355, align 4, !tbaa !5
  store i32 %356, ptr %12, align 4, !tbaa !5
  %357 = load ptr, ptr @stderr, align 8, !tbaa !9
  %358 = call i32 @s2n_print_stacktrace(ptr noundef %357)
  %359 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %360 = trunc i8 %359 to i1
  br i1 %360, label %361, label %383

361:                                              ; preds = %354
  %362 = load ptr, ptr @stderr, align 8, !tbaa !9
  %363 = call i32 @fileno(ptr noundef %362) #9
  %364 = call i32 @isatty(i32 noundef %363) #9
  %365 = icmp ne i32 %364, 0
  br i1 %365, label %366, label %383

366:                                              ; preds = %361
  %367 = load i32, ptr %12, align 4, !tbaa !5
  %368 = call ptr @__errno_location() #10
  store i32 %367, ptr %368, align 4, !tbaa !5
  %369 = load ptr, ptr @stderr, align 8, !tbaa !9
  %370 = load i32, ptr @test_count, align 4, !tbaa !5
  %371 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %372 = load i32, ptr %371, align 4, !tbaa !5
  %373 = call ptr @s2n_strerror(i32 noundef %372, ptr noundef @.str.3)
  %374 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %375 = load i32, ptr %374, align 4, !tbaa !5
  %376 = call ptr @s2n_strerror_debug(i32 noundef %375, ptr noundef @.str.3)
  %377 = call ptr @__errno_location() #10
  %378 = load i32, ptr %377, align 4, !tbaa !5
  %379 = call ptr @strerror(i32 noundef %378) #9
  %380 = call ptr @__errno_location() #10
  %381 = load i32, ptr %380, align 4, !tbaa !5
  %382 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %369, ptr noundef @.str, i32 noundef %370, ptr noundef @.str.12, ptr noundef @.str.2, i32 noundef 176, ptr noundef %373, ptr noundef %376, ptr noundef %379, i32 noundef %381) #9
  br label %400

383:                                              ; preds = %361, %354
  %384 = load i32, ptr %12, align 4, !tbaa !5
  %385 = call ptr @__errno_location() #10
  store i32 %384, ptr %385, align 4, !tbaa !5
  %386 = load ptr, ptr @stderr, align 8, !tbaa !9
  %387 = load i32, ptr @test_count, align 4, !tbaa !5
  %388 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %389 = load i32, ptr %388, align 4, !tbaa !5
  %390 = call ptr @s2n_strerror(i32 noundef %389, ptr noundef @.str.3)
  %391 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %392 = load i32, ptr %391, align 4, !tbaa !5
  %393 = call ptr @s2n_strerror_debug(i32 noundef %392, ptr noundef @.str.3)
  %394 = call ptr @__errno_location() #10
  %395 = load i32, ptr %394, align 4, !tbaa !5
  %396 = call ptr @strerror(i32 noundef %395) #9
  %397 = call ptr @__errno_location() #10
  %398 = load i32, ptr %397, align 4, !tbaa !5
  %399 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %386, ptr noundef @.str.4, i32 noundef %387, ptr noundef @.str.12, ptr noundef @.str.2, i32 noundef 176, ptr noundef %390, ptr noundef %393, ptr noundef %396, i32 noundef %398) #9
  br label %400

400:                                              ; preds = %383, %366
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #9
  br label %401

401:                                              ; preds = %400
  br label %402

402:                                              ; preds = %401
  call void @exit(i32 noundef 1) #11
  unreachable

403:                                              ; No predecessors!
  br label %404

404:                                              ; preds = %403
  br label %405

405:                                              ; preds = %404, %347
  br label %406

406:                                              ; preds = %405
  br label %407

407:                                              ; preds = %406
  %408 = load ptr, ptr %11, align 8, !tbaa !9
  %409 = getelementptr inbounds %struct.s2n_cert_chain_and_key, ptr %408, i32 0, i32 1
  %410 = load ptr, ptr %409, align 8, !tbaa !42
  %411 = getelementptr inbounds %struct.s2n_pkey, ptr %410, i32 0, i32 1
  store ptr @test_size, ptr %411, align 8, !tbaa !44
  %412 = load ptr, ptr %11, align 8, !tbaa !9
  %413 = getelementptr inbounds %struct.s2n_cert_chain_and_key, ptr %412, i32 0, i32 1
  %414 = load ptr, ptr %413, align 8, !tbaa !42
  %415 = getelementptr inbounds %struct.s2n_pkey, ptr %414, i32 0, i32 2
  store ptr @test_sign, ptr %415, align 8, !tbaa !45
  %416 = load ptr, ptr %11, align 8, !tbaa !9
  %417 = load ptr, ptr %9, align 8, !tbaa !9
  %418 = getelementptr inbounds %struct.s2n_connection, ptr %417, i32 0, i32 32
  %419 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %418, i32 0, i32 7
  store ptr %416, ptr %419, align 8, !tbaa !46
  br label %420

420:                                              ; preds = %407
  %421 = load i32, ptr @test_count, align 4, !tbaa !5
  %422 = add nsw i32 %421, 1
  store i32 %422, ptr @test_count, align 4, !tbaa !5
  %423 = load ptr, ptr %9, align 8, !tbaa !9
  %424 = call i32 @s2n_client_cert_verify_send(ptr noundef %423)
  %425 = icmp eq i32 %424, -1
  br i1 %425, label %426, label %479

426:                                              ; preds = %420
  br label %427

427:                                              ; preds = %426
  br label %428

428:                                              ; preds = %427
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #9
  %429 = call ptr @__errno_location() #10
  %430 = load i32, ptr %429, align 4, !tbaa !5
  store i32 %430, ptr %13, align 4, !tbaa !5
  %431 = load ptr, ptr @stderr, align 8, !tbaa !9
  %432 = call i32 @s2n_print_stacktrace(ptr noundef %431)
  %433 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %434 = trunc i8 %433 to i1
  br i1 %434, label %435, label %457

435:                                              ; preds = %428
  %436 = load ptr, ptr @stderr, align 8, !tbaa !9
  %437 = call i32 @fileno(ptr noundef %436) #9
  %438 = call i32 @isatty(i32 noundef %437) #9
  %439 = icmp ne i32 %438, 0
  br i1 %439, label %440, label %457

440:                                              ; preds = %435
  %441 = load i32, ptr %13, align 4, !tbaa !5
  %442 = call ptr @__errno_location() #10
  store i32 %441, ptr %442, align 4, !tbaa !5
  %443 = load ptr, ptr @stderr, align 8, !tbaa !9
  %444 = load i32, ptr @test_count, align 4, !tbaa !5
  %445 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %446 = load i32, ptr %445, align 4, !tbaa !5
  %447 = call ptr @s2n_strerror(i32 noundef %446, ptr noundef @.str.3)
  %448 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %449 = load i32, ptr %448, align 4, !tbaa !5
  %450 = call ptr @s2n_strerror_debug(i32 noundef %449, ptr noundef @.str.3)
  %451 = call ptr @__errno_location() #10
  %452 = load i32, ptr %451, align 4, !tbaa !5
  %453 = call ptr @strerror(i32 noundef %452) #9
  %454 = call ptr @__errno_location() #10
  %455 = load i32, ptr %454, align 4, !tbaa !5
  %456 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %443, ptr noundef @.str, i32 noundef %444, ptr noundef @.str.13, ptr noundef @.str.2, i32 noundef 181, ptr noundef %447, ptr noundef %450, ptr noundef %453, i32 noundef %455) #9
  br label %474

457:                                              ; preds = %435, %428
  %458 = load i32, ptr %13, align 4, !tbaa !5
  %459 = call ptr @__errno_location() #10
  store i32 %458, ptr %459, align 4, !tbaa !5
  %460 = load ptr, ptr @stderr, align 8, !tbaa !9
  %461 = load i32, ptr @test_count, align 4, !tbaa !5
  %462 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %463 = load i32, ptr %462, align 4, !tbaa !5
  %464 = call ptr @s2n_strerror(i32 noundef %463, ptr noundef @.str.3)
  %465 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %466 = load i32, ptr %465, align 4, !tbaa !5
  %467 = call ptr @s2n_strerror_debug(i32 noundef %466, ptr noundef @.str.3)
  %468 = call ptr @__errno_location() #10
  %469 = load i32, ptr %468, align 4, !tbaa !5
  %470 = call ptr @strerror(i32 noundef %469) #9
  %471 = call ptr @__errno_location() #10
  %472 = load i32, ptr %471, align 4, !tbaa !5
  %473 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %460, ptr noundef @.str.4, i32 noundef %461, ptr noundef @.str.13, ptr noundef @.str.2, i32 noundef 181, ptr noundef %464, ptr noundef %467, ptr noundef %470, i32 noundef %472) #9
  br label %474

474:                                              ; preds = %457, %440
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #9
  br label %475

475:                                              ; preds = %474
  br label %476

476:                                              ; preds = %475
  call void @exit(i32 noundef 1) #11
  unreachable

477:                                              ; No predecessors!
  br label %478

478:                                              ; preds = %477
  br label %479

479:                                              ; preds = %478, %420
  br label %480

480:                                              ; preds = %479
  br label %481

481:                                              ; preds = %480
  call void @llvm.lifetime.start.p0(i64 2, ptr %14) #9
  store i16 0, ptr %14, align 2, !tbaa !47
  br label %482

482:                                              ; preds = %481
  %483 = load i32, ptr @test_count, align 4, !tbaa !5
  %484 = add nsw i32 %483, 1
  store i32 %484, ptr @test_count, align 4, !tbaa !5
  %485 = load ptr, ptr %9, align 8, !tbaa !9
  %486 = getelementptr inbounds %struct.s2n_connection, ptr %485, i32 0, i32 52
  %487 = getelementptr inbounds %struct.s2n_handshake, ptr %486, i32 0, i32 0
  %488 = call i32 @s2n_stuffer_read_uint16(ptr noundef %487, ptr noundef %14)
  %489 = icmp eq i32 %488, -1
  br i1 %489, label %490, label %543

490:                                              ; preds = %482
  br label %491

491:                                              ; preds = %490
  br label %492

492:                                              ; preds = %491
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #9
  %493 = call ptr @__errno_location() #10
  %494 = load i32, ptr %493, align 4, !tbaa !5
  store i32 %494, ptr %15, align 4, !tbaa !5
  %495 = load ptr, ptr @stderr, align 8, !tbaa !9
  %496 = call i32 @s2n_print_stacktrace(ptr noundef %495)
  %497 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %498 = trunc i8 %497 to i1
  br i1 %498, label %499, label %521

499:                                              ; preds = %492
  %500 = load ptr, ptr @stderr, align 8, !tbaa !9
  %501 = call i32 @fileno(ptr noundef %500) #9
  %502 = call i32 @isatty(i32 noundef %501) #9
  %503 = icmp ne i32 %502, 0
  br i1 %503, label %504, label %521

504:                                              ; preds = %499
  %505 = load i32, ptr %15, align 4, !tbaa !5
  %506 = call ptr @__errno_location() #10
  store i32 %505, ptr %506, align 4, !tbaa !5
  %507 = load ptr, ptr @stderr, align 8, !tbaa !9
  %508 = load i32, ptr @test_count, align 4, !tbaa !5
  %509 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %510 = load i32, ptr %509, align 4, !tbaa !5
  %511 = call ptr @s2n_strerror(i32 noundef %510, ptr noundef @.str.3)
  %512 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %513 = load i32, ptr %512, align 4, !tbaa !5
  %514 = call ptr @s2n_strerror_debug(i32 noundef %513, ptr noundef @.str.3)
  %515 = call ptr @__errno_location() #10
  %516 = load i32, ptr %515, align 4, !tbaa !5
  %517 = call ptr @strerror(i32 noundef %516) #9
  %518 = call ptr @__errno_location() #10
  %519 = load i32, ptr %518, align 4, !tbaa !5
  %520 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %507, ptr noundef @.str, i32 noundef %508, ptr noundef @.str.14, ptr noundef @.str.2, i32 noundef 184, ptr noundef %511, ptr noundef %514, ptr noundef %517, i32 noundef %519) #9
  br label %538

521:                                              ; preds = %499, %492
  %522 = load i32, ptr %15, align 4, !tbaa !5
  %523 = call ptr @__errno_location() #10
  store i32 %522, ptr %523, align 4, !tbaa !5
  %524 = load ptr, ptr @stderr, align 8, !tbaa !9
  %525 = load i32, ptr @test_count, align 4, !tbaa !5
  %526 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %527 = load i32, ptr %526, align 4, !tbaa !5
  %528 = call ptr @s2n_strerror(i32 noundef %527, ptr noundef @.str.3)
  %529 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %530 = load i32, ptr %529, align 4, !tbaa !5
  %531 = call ptr @s2n_strerror_debug(i32 noundef %530, ptr noundef @.str.3)
  %532 = call ptr @__errno_location() #10
  %533 = load i32, ptr %532, align 4, !tbaa !5
  %534 = call ptr @strerror(i32 noundef %533) #9
  %535 = call ptr @__errno_location() #10
  %536 = load i32, ptr %535, align 4, !tbaa !5
  %537 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %524, ptr noundef @.str.4, i32 noundef %525, ptr noundef @.str.14, ptr noundef @.str.2, i32 noundef 184, ptr noundef %528, ptr noundef %531, ptr noundef %534, i32 noundef %536) #9
  br label %538

538:                                              ; preds = %521, %504
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #9
  br label %539

539:                                              ; preds = %538
  br label %540

540:                                              ; preds = %539
  call void @exit(i32 noundef 1) #11
  unreachable

541:                                              ; No predecessors!
  br label %542

542:                                              ; preds = %541
  br label %543

543:                                              ; preds = %542, %482
  br label %544

544:                                              ; preds = %543
  br label %545

545:                                              ; preds = %544
  br label %546

546:                                              ; preds = %545
  %547 = load i32, ptr @test_count, align 4, !tbaa !5
  %548 = add nsw i32 %547, 1
  store i32 %548, ptr @test_count, align 4, !tbaa !5
  %549 = load i16, ptr %14, align 2, !tbaa !47
  %550 = zext i16 %549 to i32
  %551 = load i16, ptr @s2n_rsa_pkcs1_md5_sha1, align 8, !tbaa !48
  %552 = zext i16 %551 to i32
  %553 = icmp eq i32 %550, %552
  br i1 %553, label %607, label %554

554:                                              ; preds = %546
  br label %555

555:                                              ; preds = %554
  br label %556

556:                                              ; preds = %555
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #9
  %557 = call ptr @__errno_location() #10
  %558 = load i32, ptr %557, align 4, !tbaa !5
  store i32 %558, ptr %16, align 4, !tbaa !5
  %559 = load ptr, ptr @stderr, align 8, !tbaa !9
  %560 = call i32 @s2n_print_stacktrace(ptr noundef %559)
  %561 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %562 = trunc i8 %561 to i1
  br i1 %562, label %563, label %585

563:                                              ; preds = %556
  %564 = load ptr, ptr @stderr, align 8, !tbaa !9
  %565 = call i32 @fileno(ptr noundef %564) #9
  %566 = call i32 @isatty(i32 noundef %565) #9
  %567 = icmp ne i32 %566, 0
  br i1 %567, label %568, label %585

568:                                              ; preds = %563
  %569 = load i32, ptr %16, align 4, !tbaa !5
  %570 = call ptr @__errno_location() #10
  store i32 %569, ptr %570, align 4, !tbaa !5
  %571 = load ptr, ptr @stderr, align 8, !tbaa !9
  %572 = load i32, ptr @test_count, align 4, !tbaa !5
  %573 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %574 = load i32, ptr %573, align 4, !tbaa !5
  %575 = call ptr @s2n_strerror(i32 noundef %574, ptr noundef @.str.3)
  %576 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %577 = load i32, ptr %576, align 4, !tbaa !5
  %578 = call ptr @s2n_strerror_debug(i32 noundef %577, ptr noundef @.str.3)
  %579 = call ptr @__errno_location() #10
  %580 = load i32, ptr %579, align 4, !tbaa !5
  %581 = call ptr @strerror(i32 noundef %580) #9
  %582 = call ptr @__errno_location() #10
  %583 = load i32, ptr %582, align 4, !tbaa !5
  %584 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %571, ptr noundef @.str, i32 noundef %572, ptr noundef @.str.15, ptr noundef @.str.2, i32 noundef 185, ptr noundef %575, ptr noundef %578, ptr noundef %581, i32 noundef %583) #9
  br label %602

585:                                              ; preds = %563, %556
  %586 = load i32, ptr %16, align 4, !tbaa !5
  %587 = call ptr @__errno_location() #10
  store i32 %586, ptr %587, align 4, !tbaa !5
  %588 = load ptr, ptr @stderr, align 8, !tbaa !9
  %589 = load i32, ptr @test_count, align 4, !tbaa !5
  %590 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %591 = load i32, ptr %590, align 4, !tbaa !5
  %592 = call ptr @s2n_strerror(i32 noundef %591, ptr noundef @.str.3)
  %593 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %594 = load i32, ptr %593, align 4, !tbaa !5
  %595 = call ptr @s2n_strerror_debug(i32 noundef %594, ptr noundef @.str.3)
  %596 = call ptr @__errno_location() #10
  %597 = load i32, ptr %596, align 4, !tbaa !5
  %598 = call ptr @strerror(i32 noundef %597) #9
  %599 = call ptr @__errno_location() #10
  %600 = load i32, ptr %599, align 4, !tbaa !5
  %601 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %588, ptr noundef @.str.4, i32 noundef %589, ptr noundef @.str.15, ptr noundef @.str.2, i32 noundef 185, ptr noundef %592, ptr noundef %595, ptr noundef %598, i32 noundef %600) #9
  br label %602

602:                                              ; preds = %585, %568
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #9
  br label %603

603:                                              ; preds = %602
  br label %604

604:                                              ; preds = %603
  call void @exit(i32 noundef 1) #11
  unreachable

605:                                              ; No predecessors!
  br label %606

606:                                              ; preds = %605
  br label %607

607:                                              ; preds = %606, %546
  br label %608

608:                                              ; preds = %607
  br label %609

609:                                              ; preds = %608
  call void @llvm.lifetime.start.p0(i64 2, ptr %17) #9
  store i16 0, ptr %17, align 2, !tbaa !47
  br label %610

610:                                              ; preds = %609
  %611 = load i32, ptr @test_count, align 4, !tbaa !5
  %612 = add nsw i32 %611, 1
  store i32 %612, ptr @test_count, align 4, !tbaa !5
  %613 = load ptr, ptr %9, align 8, !tbaa !9
  %614 = getelementptr inbounds %struct.s2n_connection, ptr %613, i32 0, i32 52
  %615 = getelementptr inbounds %struct.s2n_handshake, ptr %614, i32 0, i32 0
  %616 = call i32 @s2n_stuffer_read_uint16(ptr noundef %615, ptr noundef %17)
  %617 = icmp eq i32 %616, -1
  br i1 %617, label %618, label %671

618:                                              ; preds = %610
  br label %619

619:                                              ; preds = %618
  br label %620

620:                                              ; preds = %619
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #9
  %621 = call ptr @__errno_location() #10
  %622 = load i32, ptr %621, align 4, !tbaa !5
  store i32 %622, ptr %18, align 4, !tbaa !5
  %623 = load ptr, ptr @stderr, align 8, !tbaa !9
  %624 = call i32 @s2n_print_stacktrace(ptr noundef %623)
  %625 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %626 = trunc i8 %625 to i1
  br i1 %626, label %627, label %649

627:                                              ; preds = %620
  %628 = load ptr, ptr @stderr, align 8, !tbaa !9
  %629 = call i32 @fileno(ptr noundef %628) #9
  %630 = call i32 @isatty(i32 noundef %629) #9
  %631 = icmp ne i32 %630, 0
  br i1 %631, label %632, label %649

632:                                              ; preds = %627
  %633 = load i32, ptr %18, align 4, !tbaa !5
  %634 = call ptr @__errno_location() #10
  store i32 %633, ptr %634, align 4, !tbaa !5
  %635 = load ptr, ptr @stderr, align 8, !tbaa !9
  %636 = load i32, ptr @test_count, align 4, !tbaa !5
  %637 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %638 = load i32, ptr %637, align 4, !tbaa !5
  %639 = call ptr @s2n_strerror(i32 noundef %638, ptr noundef @.str.3)
  %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_debug(i32 noundef %641, ptr noundef @.str.3)
  %643 = call ptr @__errno_location() #10
  %644 = load i32, ptr %643, align 4, !tbaa !5
  %645 = call ptr @strerror(i32 noundef %644) #9
  %646 = call ptr @__errno_location() #10
  %647 = load i32, ptr %646, align 4, !tbaa !5
  %648 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %635, ptr noundef @.str, i32 noundef %636, ptr noundef @.str.16, ptr noundef @.str.2, i32 noundef 188, ptr noundef %639, ptr noundef %642, ptr noundef %645, i32 noundef %647) #9
  br label %666

649:                                              ; preds = %627, %620
  %650 = load i32, ptr %18, align 4, !tbaa !5
  %651 = call ptr @__errno_location() #10
  store i32 %650, ptr %651, align 4, !tbaa !5
  %652 = load ptr, ptr @stderr, align 8, !tbaa !9
  %653 = load i32, ptr @test_count, align 4, !tbaa !5
  %654 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %655 = load i32, ptr %654, align 4, !tbaa !5
  %656 = call ptr @s2n_strerror(i32 noundef %655, ptr noundef @.str.3)
  %657 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %658 = load i32, ptr %657, align 4, !tbaa !5
  %659 = call ptr @s2n_strerror_debug(i32 noundef %658, ptr noundef @.str.3)
  %660 = call ptr @__errno_location() #10
  %661 = load i32, ptr %660, align 4, !tbaa !5
  %662 = call ptr @strerror(i32 noundef %661) #9
  %663 = call ptr @__errno_location() #10
  %664 = load i32, ptr %663, align 4, !tbaa !5
  %665 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %652, ptr noundef @.str.4, i32 noundef %653, ptr noundef @.str.16, ptr noundef @.str.2, i32 noundef 188, ptr noundef %656, ptr noundef %659, ptr noundef %662, i32 noundef %664) #9
  br label %666

666:                                              ; preds = %649, %632
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #9
  br label %667

667:                                              ; preds = %666
  br label %668

668:                                              ; preds = %667
  call void @exit(i32 noundef 1) #11
  unreachable

669:                                              ; No predecessors!
  br label %670

670:                                              ; preds = %669
  br label %671

671:                                              ; preds = %670, %610
  br label %672

672:                                              ; preds = %671
  br label %673

673:                                              ; preds = %672
  br label %674

674:                                              ; preds = %673
  %675 = load i32, ptr @test_count, align 4, !tbaa !5
  %676 = add nsw i32 %675, 1
  store i32 %676, ptr @test_count, align 4, !tbaa !5
  %677 = load i16, ptr %17, align 2, !tbaa !47
  %678 = zext i16 %677 to i32
  %679 = icmp eq i32 %678, 28
  br i1 %679, label %680, label %733

680:                                              ; preds = %674
  br label %681

681:                                              ; preds = %680
  br label %682

682:                                              ; preds = %681
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #9
  %683 = call ptr @__errno_location() #10
  %684 = load i32, ptr %683, align 4, !tbaa !5
  store i32 %684, ptr %19, align 4, !tbaa !5
  %685 = load ptr, ptr @stderr, align 8, !tbaa !9
  %686 = call i32 @s2n_print_stacktrace(ptr noundef %685)
  %687 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %688 = trunc i8 %687 to i1
  br i1 %688, label %689, label %711

689:                                              ; preds = %682
  %690 = load ptr, ptr @stderr, align 8, !tbaa !9
  %691 = call i32 @fileno(ptr noundef %690) #9
  %692 = call i32 @isatty(i32 noundef %691) #9
  %693 = icmp ne i32 %692, 0
  br i1 %693, label %694, label %711

694:                                              ; preds = %689
  %695 = load i32, ptr %19, align 4, !tbaa !5
  %696 = call ptr @__errno_location() #10
  store i32 %695, ptr %696, align 4, !tbaa !5
  %697 = load ptr, ptr @stderr, align 8, !tbaa !9
  %698 = load i32, ptr @test_count, align 4, !tbaa !5
  %699 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %700 = load i32, ptr %699, align 4, !tbaa !5
  %701 = call ptr @s2n_strerror(i32 noundef %700, ptr noundef @.str.3)
  %702 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %703 = load i32, ptr %702, align 4, !tbaa !5
  %704 = call ptr @s2n_strerror_debug(i32 noundef %703, ptr noundef @.str.3)
  %705 = call ptr @__errno_location() #10
  %706 = load i32, ptr %705, align 4, !tbaa !5
  %707 = call ptr @strerror(i32 noundef %706) #9
  %708 = call ptr @__errno_location() #10
  %709 = load i32, ptr %708, align 4, !tbaa !5
  %710 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %697, ptr noundef @.str, i32 noundef %698, ptr noundef @.str.17, ptr noundef @.str.2, i32 noundef 189, ptr noundef %701, ptr noundef %704, ptr noundef %707, i32 noundef %709) #9
  br label %728

711:                                              ; preds = %689, %682
  %712 = load i32, ptr %19, align 4, !tbaa !5
  %713 = call ptr @__errno_location() #10
  store i32 %712, ptr %713, align 4, !tbaa !5
  %714 = load ptr, ptr @stderr, align 8, !tbaa !9
  %715 = load i32, ptr @test_count, align 4, !tbaa !5
  %716 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %717 = load i32, ptr %716, align 4, !tbaa !5
  %718 = call ptr @s2n_strerror(i32 noundef %717, ptr noundef @.str.3)
  %719 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %720 = load i32, ptr %719, align 4, !tbaa !5
  %721 = call ptr @s2n_strerror_debug(i32 noundef %720, ptr noundef @.str.3)
  %722 = call ptr @__errno_location() #10
  %723 = load i32, ptr %722, align 4, !tbaa !5
  %724 = call ptr @strerror(i32 noundef %723) #9
  %725 = call ptr @__errno_location() #10
  %726 = load i32, ptr %725, align 4, !tbaa !5
  %727 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %714, ptr noundef @.str.4, i32 noundef %715, ptr noundef @.str.17, ptr noundef @.str.2, i32 noundef 189, ptr noundef %718, ptr noundef %721, ptr noundef %724, i32 noundef %726) #9
  br label %728

728:                                              ; preds = %711, %694
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #9
  br label %729

729:                                              ; preds = %728
  br label %730

730:                                              ; preds = %729
  call void @exit(i32 noundef 1) #11
  unreachable

731:                                              ; No predecessors!
  br label %732

732:                                              ; preds = %731
  br label %733

733:                                              ; preds = %732, %674
  br label %734

734:                                              ; preds = %733
  br label %735

735:                                              ; preds = %734
  br label %736

736:                                              ; preds = %735
  %737 = load i32, ptr @test_count, align 4, !tbaa !5
  %738 = add nsw i32 %737, 1
  store i32 %738, ptr @test_count, align 4, !tbaa !5
  %739 = load i16, ptr %17, align 2, !tbaa !47
  %740 = zext i16 %739 to i32
  %741 = icmp eq i32 %740, 14
  br i1 %741, label %795, label %742

742:                                              ; preds = %736
  br label %743

743:                                              ; preds = %742
  br label %744

744:                                              ; preds = %743
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #9
  %745 = call ptr @__errno_location() #10
  %746 = load i32, ptr %745, align 4, !tbaa !5
  store i32 %746, ptr %20, align 4, !tbaa !5
  %747 = load ptr, ptr @stderr, align 8, !tbaa !9
  %748 = call i32 @s2n_print_stacktrace(ptr noundef %747)
  %749 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %750 = trunc i8 %749 to i1
  br i1 %750, label %751, label %773

751:                                              ; preds = %744
  %752 = load ptr, ptr @stderr, align 8, !tbaa !9
  %753 = call i32 @fileno(ptr noundef %752) #9
  %754 = call i32 @isatty(i32 noundef %753) #9
  %755 = icmp ne i32 %754, 0
  br i1 %755, label %756, label %773

756:                                              ; preds = %751
  %757 = load i32, ptr %20, align 4, !tbaa !5
  %758 = call ptr @__errno_location() #10
  store i32 %757, ptr %758, align 4, !tbaa !5
  %759 = load ptr, ptr @stderr, align 8, !tbaa !9
  %760 = load i32, ptr @test_count, align 4, !tbaa !5
  %761 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %762 = load i32, ptr %761, align 4, !tbaa !5
  %763 = call ptr @s2n_strerror(i32 noundef %762, ptr noundef @.str.3)
  %764 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %765 = load i32, ptr %764, align 4, !tbaa !5
  %766 = call ptr @s2n_strerror_debug(i32 noundef %765, ptr noundef @.str.3)
  %767 = call ptr @__errno_location() #10
  %768 = load i32, ptr %767, align 4, !tbaa !5
  %769 = call ptr @strerror(i32 noundef %768) #9
  %770 = call ptr @__errno_location() #10
  %771 = load i32, ptr %770, align 4, !tbaa !5
  %772 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %759, ptr noundef @.str, i32 noundef %760, ptr noundef @.str.18, ptr noundef @.str.2, i32 noundef 190, ptr noundef %763, ptr noundef %766, ptr noundef %769, i32 noundef %771) #9
  br label %790

773:                                              ; preds = %751, %744
  %774 = load i32, ptr %20, align 4, !tbaa !5
  %775 = call ptr @__errno_location() #10
  store i32 %774, ptr %775, align 4, !tbaa !5
  %776 = load ptr, ptr @stderr, align 8, !tbaa !9
  %777 = load i32, ptr @test_count, align 4, !tbaa !5
  %778 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %779 = load i32, ptr %778, align 4, !tbaa !5
  %780 = call ptr @s2n_strerror(i32 noundef %779, ptr noundef @.str.3)
  %781 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %782 = load i32, ptr %781, align 4, !tbaa !5
  %783 = call ptr @s2n_strerror_debug(i32 noundef %782, ptr noundef @.str.3)
  %784 = call ptr @__errno_location() #10
  %785 = load i32, ptr %784, align 4, !tbaa !5
  %786 = call ptr @strerror(i32 noundef %785) #9
  %787 = call ptr @__errno_location() #10
  %788 = load i32, ptr %787, align 4, !tbaa !5
  %789 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %776, ptr noundef @.str.4, i32 noundef %777, ptr noundef @.str.18, ptr noundef @.str.2, i32 noundef 190, ptr noundef %780, ptr noundef %783, ptr noundef %786, i32 noundef %788) #9
  br label %790

790:                                              ; preds = %773, %756
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #9
  br label %791

791:                                              ; preds = %790
  br label %792

792:                                              ; preds = %791
  call void @exit(i32 noundef 1) #11
  unreachable

793:                                              ; No predecessors!
  br label %794

794:                                              ; preds = %793
  br label %795

795:                                              ; preds = %794, %736
  br label %796

796:                                              ; preds = %795
  br label %797

797:                                              ; preds = %796
  br label %798

798:                                              ; preds = %797
  %799 = load i32, ptr @test_count, align 4, !tbaa !5
  %800 = add nsw i32 %799, 1
  store i32 %800, ptr @test_count, align 4, !tbaa !5
  %801 = load i16, ptr %17, align 2, !tbaa !47
  %802 = zext i16 %801 to i32
  %803 = load ptr, ptr %9, align 8, !tbaa !9
  %804 = getelementptr inbounds %struct.s2n_connection, ptr %803, i32 0, i32 52
  %805 = getelementptr inbounds %struct.s2n_handshake, ptr %804, i32 0, i32 0
  %806 = getelementptr inbounds %struct.s2n_stuffer, ptr %805, i32 0, i32 2
  %807 = load i32, ptr %806, align 4, !tbaa !50
  %808 = load ptr, ptr %9, align 8, !tbaa !9
  %809 = getelementptr inbounds %struct.s2n_connection, ptr %808, i32 0, i32 52
  %810 = getelementptr inbounds %struct.s2n_handshake, ptr %809, i32 0, i32 0
  %811 = getelementptr inbounds %struct.s2n_stuffer, ptr %810, i32 0, i32 1
  %812 = load i32, ptr %811, align 8, !tbaa !51
  %813 = sub i32 %807, %812
  %814 = icmp eq i32 %802, %813
  br i1 %814, label %868, label %815

815:                                              ; preds = %798
  br label %816

816:                                              ; preds = %815
  br label %817

817:                                              ; preds = %816
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #9
  %818 = call ptr @__errno_location() #10
  %819 = load i32, ptr %818, align 4, !tbaa !5
  store i32 %819, ptr %21, align 4, !tbaa !5
  %820 = load ptr, ptr @stderr, align 8, !tbaa !9
  %821 = call i32 @s2n_print_stacktrace(ptr noundef %820)
  %822 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %823 = trunc i8 %822 to i1
  br i1 %823, label %824, label %846

824:                                              ; preds = %817
  %825 = load ptr, ptr @stderr, align 8, !tbaa !9
  %826 = call i32 @fileno(ptr noundef %825) #9
  %827 = call i32 @isatty(i32 noundef %826) #9
  %828 = icmp ne i32 %827, 0
  br i1 %828, label %829, label %846

829:                                              ; preds = %824
  %830 = load i32, ptr %21, align 4, !tbaa !5
  %831 = call ptr @__errno_location() #10
  store i32 %830, ptr %831, align 4, !tbaa !5
  %832 = load ptr, ptr @stderr, align 8, !tbaa !9
  %833 = load i32, ptr @test_count, align 4, !tbaa !5
  %834 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %835 = load i32, ptr %834, align 4, !tbaa !5
  %836 = call ptr @s2n_strerror(i32 noundef %835, ptr noundef @.str.3)
  %837 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %838 = load i32, ptr %837, align 4, !tbaa !5
  %839 = call ptr @s2n_strerror_debug(i32 noundef %838, ptr noundef @.str.3)
  %840 = call ptr @__errno_location() #10
  %841 = load i32, ptr %840, align 4, !tbaa !5
  %842 = call ptr @strerror(i32 noundef %841) #9
  %843 = call ptr @__errno_location() #10
  %844 = load i32, ptr %843, align 4, !tbaa !5
  %845 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %832, ptr noundef @.str, i32 noundef %833, ptr noundef @.str.19, ptr noundef @.str.2, i32 noundef 191, ptr noundef %836, ptr noundef %839, ptr noundef %842, i32 noundef %844) #9
  br label %863

846:                                              ; preds = %824, %817
  %847 = load i32, ptr %21, align 4, !tbaa !5
  %848 = call ptr @__errno_location() #10
  store i32 %847, ptr %848, align 4, !tbaa !5
  %849 = load ptr, ptr @stderr, align 8, !tbaa !9
  %850 = load i32, ptr @test_count, align 4, !tbaa !5
  %851 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %852 = load i32, ptr %851, align 4, !tbaa !5
  %853 = call ptr @s2n_strerror(i32 noundef %852, ptr noundef @.str.3)
  %854 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %855 = load i32, ptr %854, align 4, !tbaa !5
  %856 = call ptr @s2n_strerror_debug(i32 noundef %855, ptr noundef @.str.3)
  %857 = call ptr @__errno_location() #10
  %858 = load i32, ptr %857, align 4, !tbaa !5
  %859 = call ptr @strerror(i32 noundef %858) #9
  %860 = call ptr @__errno_location() #10
  %861 = load i32, ptr %860, align 4, !tbaa !5
  %862 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %849, ptr noundef @.str.4, i32 noundef %850, ptr noundef @.str.19, ptr noundef @.str.2, i32 noundef 191, ptr noundef %853, ptr noundef %856, ptr noundef %859, i32 noundef %861) #9
  br label %863

863:                                              ; preds = %846, %829
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #9
  br label %864

864:                                              ; preds = %863
  br label %865

865:                                              ; preds = %864
  call void @exit(i32 noundef 1) #11
  unreachable

866:                                              ; No predecessors!
  br label %867

867:                                              ; preds = %866
  br label %868

868:                                              ; preds = %867, %798
  br label %869

869:                                              ; preds = %868
  br label %870

870:                                              ; preds = %869
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #9
  %871 = load ptr, ptr %9, align 8, !tbaa !9
  %872 = getelementptr inbounds %struct.s2n_connection, ptr %871, i32 0, i32 52
  %873 = getelementptr inbounds %struct.s2n_handshake, ptr %872, i32 0, i32 0
  %874 = call ptr @s2n_stuffer_raw_read(ptr noundef %873, i32 noundef 14)
  store ptr %874, ptr %22, align 8, !tbaa !9
  br label %875

875:                                              ; preds = %870
  %876 = load i32, ptr @test_count, align 4, !tbaa !5
  %877 = add nsw i32 %876, 1
  store i32 %877, ptr @test_count, align 4, !tbaa !5
  %878 = load ptr, ptr %22, align 8, !tbaa !9
  %879 = icmp eq ptr %878, null
  br i1 %879, label %880, label %933

880:                                              ; preds = %875
  br label %881

881:                                              ; preds = %880
  br label %882

882:                                              ; preds = %881
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #9
  %883 = call ptr @__errno_location() #10
  %884 = load i32, ptr %883, align 4, !tbaa !5
  store i32 %884, ptr %23, align 4, !tbaa !5
  %885 = load ptr, ptr @stderr, align 8, !tbaa !9
  %886 = call i32 @s2n_print_stacktrace(ptr noundef %885)
  %887 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %888 = trunc i8 %887 to i1
  br i1 %888, label %889, label %911

889:                                              ; preds = %882
  %890 = load ptr, ptr @stderr, align 8, !tbaa !9
  %891 = call i32 @fileno(ptr noundef %890) #9
  %892 = call i32 @isatty(i32 noundef %891) #9
  %893 = icmp ne i32 %892, 0
  br i1 %893, label %894, label %911

894:                                              ; preds = %889
  %895 = load i32, ptr %23, align 4, !tbaa !5
  %896 = call ptr @__errno_location() #10
  store i32 %895, ptr %896, align 4, !tbaa !5
  %897 = load ptr, ptr @stderr, align 8, !tbaa !9
  %898 = load i32, ptr @test_count, align 4, !tbaa !5
  %899 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %900 = load i32, ptr %899, align 4, !tbaa !5
  %901 = call ptr @s2n_strerror(i32 noundef %900, ptr noundef @.str.3)
  %902 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %903 = load i32, ptr %902, align 4, !tbaa !5
  %904 = call ptr @s2n_strerror_debug(i32 noundef %903, ptr noundef @.str.3)
  %905 = call ptr @__errno_location() #10
  %906 = load i32, ptr %905, align 4, !tbaa !5
  %907 = call ptr @strerror(i32 noundef %906) #9
  %908 = call ptr @__errno_location() #10
  %909 = load i32, ptr %908, align 4, !tbaa !5
  %910 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %897, ptr noundef @.str, i32 noundef %898, ptr noundef @.str.20, ptr noundef @.str.2, i32 noundef 194, ptr noundef %901, ptr noundef %904, ptr noundef %907, i32 noundef %909) #9
  br label %928

911:                                              ; preds = %889, %882
  %912 = load i32, ptr %23, align 4, !tbaa !5
  %913 = call ptr @__errno_location() #10
  store i32 %912, ptr %913, align 4, !tbaa !5
  %914 = load ptr, ptr @stderr, align 8, !tbaa !9
  %915 = load i32, ptr @test_count, align 4, !tbaa !5
  %916 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %917 = load i32, ptr %916, align 4, !tbaa !5
  %918 = call ptr @s2n_strerror(i32 noundef %917, ptr noundef @.str.3)
  %919 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %920 = load i32, ptr %919, align 4, !tbaa !5
  %921 = call ptr @s2n_strerror_debug(i32 noundef %920, ptr noundef @.str.3)
  %922 = call ptr @__errno_location() #10
  %923 = load i32, ptr %922, align 4, !tbaa !5
  %924 = call ptr @strerror(i32 noundef %923) #9
  %925 = call ptr @__errno_location() #10
  %926 = load i32, ptr %925, align 4, !tbaa !5
  %927 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %914, ptr noundef @.str.4, i32 noundef %915, ptr noundef @.str.20, ptr noundef @.str.2, i32 noundef 194, ptr noundef %918, ptr noundef %921, ptr noundef %924, i32 noundef %926) #9
  br label %928

928:                                              ; preds = %911, %894
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #9
  br label %929

929:                                              ; preds = %928
  br label %930

930:                                              ; preds = %929
  call void @exit(i32 noundef 1) #11
  unreachable

931:                                              ; No predecessors!
  br label %932

932:                                              ; preds = %931
  br label %933

933:                                              ; preds = %932, %875
  br label %934

934:                                              ; preds = %933
  br label %935

935:                                              ; preds = %934
  br label %936

936:                                              ; preds = %935
  br label %937

937:                                              ; preds = %936
  %938 = load i32, ptr @test_count, align 4, !tbaa !5
  %939 = add nsw i32 %938, 1
  store i32 %939, ptr @test_count, align 4, !tbaa !5
  %940 = load ptr, ptr %22, align 8, !tbaa !9
  %941 = call i32 @memcmp(ptr noundef %940, ptr noundef @test_signature_data, i64 noundef 14) #12
  %942 = icmp eq i32 %941, 0
  br i1 %942, label %996, label %943

943:                                              ; preds = %937
  br label %944

944:                                              ; preds = %943
  br label %945

945:                                              ; preds = %944
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #9
  %946 = call ptr @__errno_location() #10
  %947 = load i32, ptr %946, align 4, !tbaa !5
  store i32 %947, ptr %24, align 4, !tbaa !5
  %948 = load ptr, ptr @stderr, align 8, !tbaa !9
  %949 = call i32 @s2n_print_stacktrace(ptr noundef %948)
  %950 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %951 = trunc i8 %950 to i1
  br i1 %951, label %952, label %974

952:                                              ; preds = %945
  %953 = load ptr, ptr @stderr, align 8, !tbaa !9
  %954 = call i32 @fileno(ptr noundef %953) #9
  %955 = call i32 @isatty(i32 noundef %954) #9
  %956 = icmp ne i32 %955, 0
  br i1 %956, label %957, label %974

957:                                              ; preds = %952
  %958 = load i32, ptr %24, align 4, !tbaa !5
  %959 = call ptr @__errno_location() #10
  store i32 %958, ptr %959, align 4, !tbaa !5
  %960 = load ptr, ptr @stderr, align 8, !tbaa !9
  %961 = load i32, ptr @test_count, align 4, !tbaa !5
  %962 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %963 = load i32, ptr %962, align 4, !tbaa !5
  %964 = call ptr @s2n_strerror(i32 noundef %963, ptr noundef @.str.3)
  %965 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %966 = load i32, ptr %965, align 4, !tbaa !5
  %967 = call ptr @s2n_strerror_debug(i32 noundef %966, ptr noundef @.str.3)
  %968 = call ptr @__errno_location() #10
  %969 = load i32, ptr %968, align 4, !tbaa !5
  %970 = call ptr @strerror(i32 noundef %969) #9
  %971 = call ptr @__errno_location() #10
  %972 = load i32, ptr %971, align 4, !tbaa !5
  %973 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %960, ptr noundef @.str, i32 noundef %961, ptr noundef @.str.21, ptr noundef @.str.2, i32 noundef 195, ptr noundef %964, ptr noundef %967, ptr noundef %970, i32 noundef %972) #9
  br label %991

974:                                              ; preds = %952, %945
  %975 = load i32, ptr %24, align 4, !tbaa !5
  %976 = call ptr @__errno_location() #10
  store i32 %975, ptr %976, align 4, !tbaa !5
  %977 = load ptr, ptr @stderr, align 8, !tbaa !9
  %978 = load i32, ptr @test_count, align 4, !tbaa !5
  %979 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %980 = load i32, ptr %979, align 4, !tbaa !5
  %981 = call ptr @s2n_strerror(i32 noundef %980, ptr noundef @.str.3)
  %982 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %983 = load i32, ptr %982, align 4, !tbaa !5
  %984 = call ptr @s2n_strerror_debug(i32 noundef %983, ptr noundef @.str.3)
  %985 = call ptr @__errno_location() #10
  %986 = load i32, ptr %985, align 4, !tbaa !5
  %987 = call ptr @strerror(i32 noundef %986) #9
  %988 = call ptr @__errno_location() #10
  %989 = load i32, ptr %988, align 4, !tbaa !5
  %990 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %977, ptr noundef @.str.4, i32 noundef %978, ptr noundef @.str.21, ptr noundef @.str.2, i32 noundef 195, ptr noundef %981, ptr noundef %984, ptr noundef %987, i32 noundef %989) #9
  br label %991

991:                                              ; preds = %974, %957
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #9
  br label %992

992:                                              ; preds = %991
  br label %993

993:                                              ; preds = %992
  call void @exit(i32 noundef 1) #11
  unreachable

994:                                              ; No predecessors!
  br label %995

995:                                              ; preds = %994
  br label %996

996:                                              ; preds = %995, %937
  br label %997

997:                                              ; preds = %996
  br label %998

998:                                              ; preds = %997
  br label %999

999:                                              ; preds = %998
  br label %1000

1000:                                             ; preds = %999
  br label %1001

1001:                                             ; preds = %1000
  %1002 = load i32, ptr @test_count, align 4, !tbaa !5
  %1003 = add nsw i32 %1002, 1
  store i32 %1003, ptr @test_count, align 4, !tbaa !5
  %1004 = load ptr, ptr %9, align 8, !tbaa !9
  %1005 = call i32 @s2n_connection_free(ptr noundef %1004)
  %1006 = icmp eq i32 %1005, -1
  br i1 %1006, label %1007, label %1060

1007:                                             ; preds = %1001
  br label %1008

1008:                                             ; preds = %1007
  br label %1009

1009:                                             ; preds = %1008
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #9
  %1010 = call ptr @__errno_location() #10
  %1011 = load i32, ptr %1010, align 4, !tbaa !5
  store i32 %1011, ptr %25, align 4, !tbaa !5
  %1012 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1013 = call i32 @s2n_print_stacktrace(ptr noundef %1012)
  %1014 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1015 = trunc i8 %1014 to i1
  br i1 %1015, label %1016, label %1038

1016:                                             ; preds = %1009
  %1017 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1018 = call i32 @fileno(ptr noundef %1017) #9
  %1019 = call i32 @isatty(i32 noundef %1018) #9
  %1020 = icmp ne i32 %1019, 0
  br i1 %1020, label %1021, label %1038

1021:                                             ; preds = %1016
  %1022 = load i32, ptr %25, align 4, !tbaa !5
  %1023 = call ptr @__errno_location() #10
  store i32 %1022, ptr %1023, align 4, !tbaa !5
  %1024 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1025 = load i32, ptr @test_count, align 4, !tbaa !5
  %1026 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1027 = load i32, ptr %1026, align 4, !tbaa !5
  %1028 = call ptr @s2n_strerror(i32 noundef %1027, ptr noundef @.str.3)
  %1029 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1030 = load i32, ptr %1029, align 4, !tbaa !5
  %1031 = call ptr @s2n_strerror_debug(i32 noundef %1030, ptr noundef @.str.3)
  %1032 = call ptr @__errno_location() #10
  %1033 = load i32, ptr %1032, align 4, !tbaa !5
  %1034 = call ptr @strerror(i32 noundef %1033) #9
  %1035 = call ptr @__errno_location() #10
  %1036 = load i32, ptr %1035, align 4, !tbaa !5
  %1037 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1024, ptr noundef @.str, i32 noundef %1025, ptr noundef @.str.22, ptr noundef @.str.2, i32 noundef 197, ptr noundef %1028, ptr noundef %1031, ptr noundef %1034, i32 noundef %1036) #9
  br label %1055

1038:                                             ; preds = %1016, %1009
  %1039 = load i32, ptr %25, align 4, !tbaa !5
  %1040 = call ptr @__errno_location() #10
  store i32 %1039, ptr %1040, align 4, !tbaa !5
  %1041 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1042 = load i32, ptr @test_count, align 4, !tbaa !5
  %1043 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1044 = load i32, ptr %1043, align 4, !tbaa !5
  %1045 = call ptr @s2n_strerror(i32 noundef %1044, ptr noundef @.str.3)
  %1046 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1047 = load i32, ptr %1046, align 4, !tbaa !5
  %1048 = call ptr @s2n_strerror_debug(i32 noundef %1047, ptr noundef @.str.3)
  %1049 = call ptr @__errno_location() #10
  %1050 = load i32, ptr %1049, align 4, !tbaa !5
  %1051 = call ptr @strerror(i32 noundef %1050) #9
  %1052 = call ptr @__errno_location() #10
  %1053 = load i32, ptr %1052, align 4, !tbaa !5
  %1054 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1041, ptr noundef @.str.4, i32 noundef %1042, ptr noundef @.str.22, ptr noundef @.str.2, i32 noundef 197, ptr noundef %1045, ptr noundef %1048, ptr noundef %1051, i32 noundef %1053) #9
  br label %1055

1055:                                             ; preds = %1038, %1021
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #9
  br label %1056

1056:                                             ; preds = %1055
  br label %1057

1057:                                             ; preds = %1056
  call void @exit(i32 noundef 1) #11
  unreachable

1058:                                             ; No predecessors!
  br label %1059

1059:                                             ; preds = %1058
  br label %1060

1060:                                             ; preds = %1059, %1001
  br label %1061

1061:                                             ; preds = %1060
  br label %1062

1062:                                             ; preds = %1061
  br label %1063

1063:                                             ; preds = %1062
  %1064 = load i32, ptr @test_count, align 4, !tbaa !5
  %1065 = add nsw i32 %1064, 1
  store i32 %1065, ptr @test_count, align 4, !tbaa !5
  %1066 = load ptr, ptr %11, align 8, !tbaa !9
  %1067 = call i32 @s2n_cert_chain_and_key_free(ptr noundef %1066)
  %1068 = icmp eq i32 %1067, -1
  br i1 %1068, label %1069, label %1122

1069:                                             ; preds = %1063
  br label %1070

1070:                                             ; preds = %1069
  br label %1071

1071:                                             ; preds = %1070
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #9
  %1072 = call ptr @__errno_location() #10
  %1073 = load i32, ptr %1072, align 4, !tbaa !5
  store i32 %1073, ptr %26, align 4, !tbaa !5
  %1074 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1075 = call i32 @s2n_print_stacktrace(ptr noundef %1074)
  %1076 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1077 = trunc i8 %1076 to i1
  br i1 %1077, label %1078, label %1100

1078:                                             ; preds = %1071
  %1079 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1080 = call i32 @fileno(ptr noundef %1079) #9
  %1081 = call i32 @isatty(i32 noundef %1080) #9
  %1082 = icmp ne i32 %1081, 0
  br i1 %1082, label %1083, label %1100

1083:                                             ; preds = %1078
  %1084 = load i32, ptr %26, align 4, !tbaa !5
  %1085 = call ptr @__errno_location() #10
  store i32 %1084, ptr %1085, align 4, !tbaa !5
  %1086 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1087 = load i32, ptr @test_count, align 4, !tbaa !5
  %1088 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1089 = load i32, ptr %1088, align 4, !tbaa !5
  %1090 = call ptr @s2n_strerror(i32 noundef %1089, ptr noundef @.str.3)
  %1091 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1092 = load i32, ptr %1091, align 4, !tbaa !5
  %1093 = call ptr @s2n_strerror_debug(i32 noundef %1092, ptr noundef @.str.3)
  %1094 = call ptr @__errno_location() #10
  %1095 = load i32, ptr %1094, align 4, !tbaa !5
  %1096 = call ptr @strerror(i32 noundef %1095) #9
  %1097 = call ptr @__errno_location() #10
  %1098 = load i32, ptr %1097, align 4, !tbaa !5
  %1099 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1086, ptr noundef @.str, i32 noundef %1087, ptr noundef @.str.23, ptr noundef @.str.2, i32 noundef 198, ptr noundef %1090, ptr noundef %1093, ptr noundef %1096, i32 noundef %1098) #9
  br label %1117

1100:                                             ; preds = %1078, %1071
  %1101 = load i32, ptr %26, align 4, !tbaa !5
  %1102 = call ptr @__errno_location() #10
  store i32 %1101, ptr %1102, align 4, !tbaa !5
  %1103 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1104 = load i32, ptr @test_count, align 4, !tbaa !5
  %1105 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1106 = load i32, ptr %1105, align 4, !tbaa !5
  %1107 = call ptr @s2n_strerror(i32 noundef %1106, ptr noundef @.str.3)
  %1108 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1109 = load i32, ptr %1108, align 4, !tbaa !5
  %1110 = call ptr @s2n_strerror_debug(i32 noundef %1109, ptr noundef @.str.3)
  %1111 = call ptr @__errno_location() #10
  %1112 = load i32, ptr %1111, align 4, !tbaa !5
  %1113 = call ptr @strerror(i32 noundef %1112) #9
  %1114 = call ptr @__errno_location() #10
  %1115 = load i32, ptr %1114, align 4, !tbaa !5
  %1116 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1103, ptr noundef @.str.4, i32 noundef %1104, ptr noundef @.str.23, ptr noundef @.str.2, i32 noundef 198, ptr noundef %1107, ptr noundef %1110, ptr noundef %1113, i32 noundef %1115) #9
  br label %1117

1117:                                             ; preds = %1100, %1083
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #9
  br label %1118

1118:                                             ; preds = %1117
  br label %1119

1119:                                             ; preds = %1118
  call void @exit(i32 noundef 1) #11
  unreachable

1120:                                             ; No predecessors!
  br label %1121

1121:                                             ; preds = %1120
  br label %1122

1122:                                             ; preds = %1121, %1063
  br label %1123

1123:                                             ; preds = %1122
  br label %1124

1124:                                             ; preds = %1123
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #9
  call void @llvm.lifetime.end.p0(i64 2, ptr %17) #9
  call void @llvm.lifetime.end.p0(i64 2, ptr %14) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #9
  store ptr null, ptr %27, align 8, !tbaa !9
  br label %1125

1125:                                             ; preds = %1124
  %1126 = load i32, ptr @test_count, align 4, !tbaa !5
  %1127 = add nsw i32 %1126, 1
  store i32 %1127, ptr @test_count, align 4, !tbaa !5
  %1128 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef %27, ptr noundef @.str.24, ptr noundef @.str.25)
  %1129 = icmp eq i32 %1128, -1
  br i1 %1129, label %1130, label %1183

1130:                                             ; preds = %1125
  br label %1131

1131:                                             ; preds = %1130
  br label %1132

1132:                                             ; preds = %1131
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #9
  %1133 = call ptr @__errno_location() #10
  %1134 = load i32, ptr %1133, align 4, !tbaa !5
  store i32 %1134, ptr %28, align 4, !tbaa !5
  %1135 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1136 = call i32 @s2n_print_stacktrace(ptr noundef %1135)
  %1137 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1138 = trunc i8 %1137 to i1
  br i1 %1138, label %1139, label %1161

1139:                                             ; preds = %1132
  %1140 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1141 = call i32 @fileno(ptr noundef %1140) #9
  %1142 = call i32 @isatty(i32 noundef %1141) #9
  %1143 = icmp ne i32 %1142, 0
  br i1 %1143, label %1144, label %1161

1144:                                             ; preds = %1139
  %1145 = load i32, ptr %28, align 4, !tbaa !5
  %1146 = call ptr @__errno_location() #10
  store i32 %1145, ptr %1146, align 4, !tbaa !5
  %1147 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1148 = load i32, ptr @test_count, align 4, !tbaa !5
  %1149 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1150 = load i32, ptr %1149, align 4, !tbaa !5
  %1151 = call ptr @s2n_strerror(i32 noundef %1150, ptr noundef @.str.3)
  %1152 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1153 = load i32, ptr %1152, align 4, !tbaa !5
  %1154 = call ptr @s2n_strerror_debug(i32 noundef %1153, ptr noundef @.str.3)
  %1155 = call ptr @__errno_location() #10
  %1156 = load i32, ptr %1155, align 4, !tbaa !5
  %1157 = call ptr @strerror(i32 noundef %1156) #9
  %1158 = call ptr @__errno_location() #10
  %1159 = load i32, ptr %1158, align 4, !tbaa !5
  %1160 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1147, ptr noundef @.str, i32 noundef %1148, ptr noundef @.str.26, ptr noundef @.str.2, i32 noundef 205, ptr noundef %1151, ptr noundef %1154, ptr noundef %1157, i32 noundef %1159) #9
  br label %1178

1161:                                             ; preds = %1139, %1132
  %1162 = load i32, ptr %28, align 4, !tbaa !5
  %1163 = call ptr @__errno_location() #10
  store i32 %1162, ptr %1163, align 4, !tbaa !5
  %1164 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1165 = load i32, ptr @test_count, align 4, !tbaa !5
  %1166 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1167 = load i32, ptr %1166, align 4, !tbaa !5
  %1168 = call ptr @s2n_strerror(i32 noundef %1167, ptr noundef @.str.3)
  %1169 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1170 = load i32, ptr %1169, align 4, !tbaa !5
  %1171 = call ptr @s2n_strerror_debug(i32 noundef %1170, ptr noundef @.str.3)
  %1172 = call ptr @__errno_location() #10
  %1173 = load i32, ptr %1172, align 4, !tbaa !5
  %1174 = call ptr @strerror(i32 noundef %1173) #9
  %1175 = call ptr @__errno_location() #10
  %1176 = load i32, ptr %1175, align 4, !tbaa !5
  %1177 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1164, ptr noundef @.str.4, i32 noundef %1165, ptr noundef @.str.26, ptr noundef @.str.2, i32 noundef 205, ptr noundef %1168, ptr noundef %1171, ptr noundef %1174, i32 noundef %1176) #9
  br label %1178

1178:                                             ; preds = %1161, %1144
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #9
  br label %1179

1179:                                             ; preds = %1178
  br label %1180

1180:                                             ; preds = %1179
  call void @exit(i32 noundef 1) #11
  unreachable

1181:                                             ; No predecessors!
  br label %1182

1182:                                             ; preds = %1181
  br label %1183

1183:                                             ; preds = %1182, %1125
  br label %1184

1184:                                             ; preds = %1183
  br label %1185

1185:                                             ; preds = %1184
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #9
  store ptr null, ptr %29, align 8, !tbaa !9
  br label %1186

1186:                                             ; preds = %1185
  %1187 = load i32, ptr @test_count, align 4, !tbaa !5
  %1188 = add nsw i32 %1187, 1
  store i32 %1188, ptr @test_count, align 4, !tbaa !5
  %1189 = call ptr @s2n_config_new()
  store ptr %1189, ptr %29, align 8, !tbaa !9
  %1190 = icmp eq ptr %1189, null
  br i1 %1190, label %1191, label %1244

1191:                                             ; preds = %1186
  br label %1192

1192:                                             ; preds = %1191
  br label %1193

1193:                                             ; preds = %1192
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #9
  %1194 = call ptr @__errno_location() #10
  %1195 = load i32, ptr %1194, align 4, !tbaa !5
  store i32 %1195, ptr %30, align 4, !tbaa !5
  %1196 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1197 = call i32 @s2n_print_stacktrace(ptr noundef %1196)
  %1198 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1199 = trunc i8 %1198 to i1
  br i1 %1199, label %1200, label %1222

1200:                                             ; preds = %1193
  %1201 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1202 = call i32 @fileno(ptr noundef %1201) #9
  %1203 = call i32 @isatty(i32 noundef %1202) #9
  %1204 = icmp ne i32 %1203, 0
  br i1 %1204, label %1205, label %1222

1205:                                             ; preds = %1200
  %1206 = load i32, ptr %30, align 4, !tbaa !5
  %1207 = call ptr @__errno_location() #10
  store i32 %1206, ptr %1207, align 4, !tbaa !5
  %1208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1209 = load i32, ptr @test_count, align 4, !tbaa !5
  %1210 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1211 = load i32, ptr %1210, align 4, !tbaa !5
  %1212 = call ptr @s2n_strerror(i32 noundef %1211, ptr noundef @.str.3)
  %1213 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1214 = load i32, ptr %1213, align 4, !tbaa !5
  %1215 = call ptr @s2n_strerror_debug(i32 noundef %1214, ptr noundef @.str.3)
  %1216 = call ptr @__errno_location() #10
  %1217 = load i32, ptr %1216, align 4, !tbaa !5
  %1218 = call ptr @strerror(i32 noundef %1217) #9
  %1219 = call ptr @__errno_location() #10
  %1220 = load i32, ptr %1219, align 4, !tbaa !5
  %1221 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1208, ptr noundef @.str, i32 noundef %1209, ptr noundef @.str.27, ptr noundef @.str.2, i32 noundef 208, ptr noundef %1212, ptr noundef %1215, ptr noundef %1218, i32 noundef %1220) #9
  br label %1239

1222:                                             ; preds = %1200, %1193
  %1223 = load i32, ptr %30, align 4, !tbaa !5
  %1224 = call ptr @__errno_location() #10
  store i32 %1223, ptr %1224, align 4, !tbaa !5
  %1225 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1226 = load i32, ptr @test_count, align 4, !tbaa !5
  %1227 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1228 = load i32, ptr %1227, align 4, !tbaa !5
  %1229 = call ptr @s2n_strerror(i32 noundef %1228, ptr noundef @.str.3)
  %1230 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1231 = load i32, ptr %1230, align 4, !tbaa !5
  %1232 = call ptr @s2n_strerror_debug(i32 noundef %1231, ptr noundef @.str.3)
  %1233 = call ptr @__errno_location() #10
  %1234 = load i32, ptr %1233, align 4, !tbaa !5
  %1235 = call ptr @strerror(i32 noundef %1234) #9
  %1236 = call ptr @__errno_location() #10
  %1237 = load i32, ptr %1236, align 4, !tbaa !5
  %1238 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1225, ptr noundef @.str.4, i32 noundef %1226, ptr noundef @.str.27, ptr noundef @.str.2, i32 noundef 208, ptr noundef %1229, ptr noundef %1232, ptr noundef %1235, i32 noundef %1237) #9
  br label %1239

1239:                                             ; preds = %1222, %1205
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #9
  br label %1240

1240:                                             ; preds = %1239
  br label %1241

1241:                                             ; preds = %1240
  call void @exit(i32 noundef 1) #11
  unreachable

1242:                                             ; No predecessors!
  br label %1243

1243:                                             ; preds = %1242
  br label %1244

1244:                                             ; preds = %1243, %1186
  br label %1245

1245:                                             ; preds = %1244
  br label %1246

1246:                                             ; preds = %1245
  br label %1247

1247:                                             ; preds = %1246
  %1248 = load i32, ptr @test_count, align 4, !tbaa !5
  %1249 = add nsw i32 %1248, 1
  store i32 %1249, ptr @test_count, align 4, !tbaa !5
  %1250 = load ptr, ptr %29, align 8, !tbaa !9
  %1251 = load ptr, ptr %27, align 8, !tbaa !9
  %1252 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %1250, ptr noundef %1251)
  %1253 = icmp eq i32 %1252, -1
  br i1 %1253, label %1254, label %1307

1254:                                             ; preds = %1247
  br label %1255

1255:                                             ; preds = %1254
  br label %1256

1256:                                             ; preds = %1255
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #9
  %1257 = call ptr @__errno_location() #10
  %1258 = load i32, ptr %1257, align 4, !tbaa !5
  store i32 %1258, ptr %31, align 4, !tbaa !5
  %1259 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1260 = call i32 @s2n_print_stacktrace(ptr noundef %1259)
  %1261 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1262 = trunc i8 %1261 to i1
  br i1 %1262, label %1263, label %1285

1263:                                             ; preds = %1256
  %1264 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1265 = call i32 @fileno(ptr noundef %1264) #9
  %1266 = call i32 @isatty(i32 noundef %1265) #9
  %1267 = icmp ne i32 %1266, 0
  br i1 %1267, label %1268, label %1285

1268:                                             ; preds = %1263
  %1269 = load i32, ptr %31, align 4, !tbaa !5
  %1270 = call ptr @__errno_location() #10
  store i32 %1269, ptr %1270, align 4, !tbaa !5
  %1271 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1272 = load i32, ptr @test_count, align 4, !tbaa !5
  %1273 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1274 = load i32, ptr %1273, align 4, !tbaa !5
  %1275 = call ptr @s2n_strerror(i32 noundef %1274, ptr noundef @.str.3)
  %1276 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1277 = load i32, ptr %1276, align 4, !tbaa !5
  %1278 = call ptr @s2n_strerror_debug(i32 noundef %1277, ptr noundef @.str.3)
  %1279 = call ptr @__errno_location() #10
  %1280 = load i32, ptr %1279, align 4, !tbaa !5
  %1281 = call ptr @strerror(i32 noundef %1280) #9
  %1282 = call ptr @__errno_location() #10
  %1283 = load i32, ptr %1282, align 4, !tbaa !5
  %1284 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1271, ptr noundef @.str, i32 noundef %1272, ptr noundef @.str.28, ptr noundef @.str.2, i32 noundef 209, ptr noundef %1275, ptr noundef %1278, ptr noundef %1281, i32 noundef %1283) #9
  br label %1302

1285:                                             ; preds = %1263, %1256
  %1286 = load i32, ptr %31, align 4, !tbaa !5
  %1287 = call ptr @__errno_location() #10
  store i32 %1286, ptr %1287, align 4, !tbaa !5
  %1288 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1289 = load i32, ptr @test_count, align 4, !tbaa !5
  %1290 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1291 = load i32, ptr %1290, align 4, !tbaa !5
  %1292 = call ptr @s2n_strerror(i32 noundef %1291, ptr noundef @.str.3)
  %1293 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1294 = load i32, ptr %1293, align 4, !tbaa !5
  %1295 = call ptr @s2n_strerror_debug(i32 noundef %1294, ptr noundef @.str.3)
  %1296 = call ptr @__errno_location() #10
  %1297 = load i32, ptr %1296, align 4, !tbaa !5
  %1298 = call ptr @strerror(i32 noundef %1297) #9
  %1299 = call ptr @__errno_location() #10
  %1300 = load i32, ptr %1299, align 4, !tbaa !5
  %1301 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1288, ptr noundef @.str.4, i32 noundef %1289, ptr noundef @.str.28, ptr noundef @.str.2, i32 noundef 209, ptr noundef %1292, ptr noundef %1295, ptr noundef %1298, i32 noundef %1300) #9
  br label %1302

1302:                                             ; preds = %1285, %1268
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #9
  br label %1303

1303:                                             ; preds = %1302
  br label %1304

1304:                                             ; preds = %1303
  call void @exit(i32 noundef 1) #11
  unreachable

1305:                                             ; No predecessors!
  br label %1306

1306:                                             ; preds = %1305
  br label %1307

1307:                                             ; preds = %1306, %1247
  br label %1308

1308:                                             ; preds = %1307
  br label %1309

1309:                                             ; preds = %1308
  br label %1310

1310:                                             ; preds = %1309
  %1311 = load i32, ptr @test_count, align 4, !tbaa !5
  %1312 = add nsw i32 %1311, 1
  store i32 %1312, ptr @test_count, align 4, !tbaa !5
  %1313 = load ptr, ptr %29, align 8, !tbaa !9
  %1314 = call i32 @s2n_config_set_async_pkey_callback(ptr noundef %1313, ptr noundef @s2n_async_pkey_store_op)
  %1315 = icmp eq i32 %1314, -1
  br i1 %1315, label %1316, label %1369

1316:                                             ; preds = %1310
  br label %1317

1317:                                             ; preds = %1316
  br label %1318

1318:                                             ; preds = %1317
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #9
  %1319 = call ptr @__errno_location() #10
  %1320 = load i32, ptr %1319, align 4, !tbaa !5
  store i32 %1320, ptr %32, align 4, !tbaa !5
  %1321 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1322 = call i32 @s2n_print_stacktrace(ptr noundef %1321)
  %1323 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1324 = trunc i8 %1323 to i1
  br i1 %1324, label %1325, label %1347

1325:                                             ; preds = %1318
  %1326 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1327 = call i32 @fileno(ptr noundef %1326) #9
  %1328 = call i32 @isatty(i32 noundef %1327) #9
  %1329 = icmp ne i32 %1328, 0
  br i1 %1329, label %1330, label %1347

1330:                                             ; preds = %1325
  %1331 = load i32, ptr %32, align 4, !tbaa !5
  %1332 = call ptr @__errno_location() #10
  store i32 %1331, ptr %1332, align 4, !tbaa !5
  %1333 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1334 = load i32, ptr @test_count, align 4, !tbaa !5
  %1335 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1336 = load i32, ptr %1335, align 4, !tbaa !5
  %1337 = call ptr @s2n_strerror(i32 noundef %1336, ptr noundef @.str.3)
  %1338 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1339 = load i32, ptr %1338, align 4, !tbaa !5
  %1340 = call ptr @s2n_strerror_debug(i32 noundef %1339, ptr noundef @.str.3)
  %1341 = call ptr @__errno_location() #10
  %1342 = load i32, ptr %1341, align 4, !tbaa !5
  %1343 = call ptr @strerror(i32 noundef %1342) #9
  %1344 = call ptr @__errno_location() #10
  %1345 = load i32, ptr %1344, align 4, !tbaa !5
  %1346 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1333, ptr noundef @.str, i32 noundef %1334, ptr noundef @.str.29, ptr noundef @.str.2, i32 noundef 210, ptr noundef %1337, ptr noundef %1340, ptr noundef %1343, i32 noundef %1345) #9
  br label %1364

1347:                                             ; preds = %1325, %1318
  %1348 = load i32, ptr %32, align 4, !tbaa !5
  %1349 = call ptr @__errno_location() #10
  store i32 %1348, ptr %1349, align 4, !tbaa !5
  %1350 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1351 = load i32, ptr @test_count, align 4, !tbaa !5
  %1352 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1353 = load i32, ptr %1352, align 4, !tbaa !5
  %1354 = call ptr @s2n_strerror(i32 noundef %1353, ptr noundef @.str.3)
  %1355 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1356 = load i32, ptr %1355, align 4, !tbaa !5
  %1357 = call ptr @s2n_strerror_debug(i32 noundef %1356, ptr noundef @.str.3)
  %1358 = call ptr @__errno_location() #10
  %1359 = load i32, ptr %1358, align 4, !tbaa !5
  %1360 = call ptr @strerror(i32 noundef %1359) #9
  %1361 = call ptr @__errno_location() #10
  %1362 = load i32, ptr %1361, align 4, !tbaa !5
  %1363 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1350, ptr noundef @.str.4, i32 noundef %1351, ptr noundef @.str.29, ptr noundef @.str.2, i32 noundef 210, ptr noundef %1354, ptr noundef %1357, ptr noundef %1360, i32 noundef %1362) #9
  br label %1364

1364:                                             ; preds = %1347, %1330
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #9
  br label %1365

1365:                                             ; preds = %1364
  br label %1366

1366:                                             ; preds = %1365
  call void @exit(i32 noundef 1) #11
  unreachable

1367:                                             ; No predecessors!
  br label %1368

1368:                                             ; preds = %1367
  br label %1369

1369:                                             ; preds = %1368, %1310
  br label %1370

1370:                                             ; preds = %1369
  br label %1371

1371:                                             ; preds = %1370
  br label %1372

1372:                                             ; preds = %1371
  %1373 = load i32, ptr @test_count, align 4, !tbaa !5
  %1374 = add nsw i32 %1373, 1
  store i32 %1374, ptr @test_count, align 4, !tbaa !5
  %1375 = load ptr, ptr %29, align 8, !tbaa !9
  %1376 = call i32 @s2n_config_set_unsafe_for_testing(ptr noundef %1375)
  %1377 = icmp eq i32 %1376, -1
  br i1 %1377, label %1378, label %1431

1378:                                             ; preds = %1372
  br label %1379

1379:                                             ; preds = %1378
  br label %1380

1380:                                             ; preds = %1379
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #9
  %1381 = call ptr @__errno_location() #10
  %1382 = load i32, ptr %1381, align 4, !tbaa !5
  store i32 %1382, ptr %33, align 4, !tbaa !5
  %1383 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1384 = call i32 @s2n_print_stacktrace(ptr noundef %1383)
  %1385 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1386 = trunc i8 %1385 to i1
  br i1 %1386, label %1387, label %1409

1387:                                             ; preds = %1380
  %1388 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1389 = call i32 @fileno(ptr noundef %1388) #9
  %1390 = call i32 @isatty(i32 noundef %1389) #9
  %1391 = icmp ne i32 %1390, 0
  br i1 %1391, label %1392, label %1409

1392:                                             ; preds = %1387
  %1393 = load i32, ptr %33, align 4, !tbaa !5
  %1394 = call ptr @__errno_location() #10
  store i32 %1393, ptr %1394, 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 @.str.3)
  %1400 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1401 = load i32, ptr %1400, align 4, !tbaa !5
  %1402 = call ptr @s2n_strerror_debug(i32 noundef %1401, ptr noundef @.str.3)
  %1403 = call ptr @__errno_location() #10
  %1404 = load i32, ptr %1403, align 4, !tbaa !5
  %1405 = call ptr @strerror(i32 noundef %1404) #9
  %1406 = call ptr @__errno_location() #10
  %1407 = load i32, ptr %1406, align 4, !tbaa !5
  %1408 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1395, ptr noundef @.str, i32 noundef %1396, ptr noundef @.str.30, ptr noundef @.str.2, i32 noundef 211, ptr noundef %1399, ptr noundef %1402, ptr noundef %1405, i32 noundef %1407) #9
  br label %1426

1409:                                             ; preds = %1387, %1380
  %1410 = load i32, ptr %33, align 4, !tbaa !5
  %1411 = call ptr @__errno_location() #10
  store i32 %1410, ptr %1411, align 4, !tbaa !5
  %1412 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1413 = load i32, ptr @test_count, align 4, !tbaa !5
  %1414 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1415 = load i32, ptr %1414, align 4, !tbaa !5
  %1416 = call ptr @s2n_strerror(i32 noundef %1415, ptr noundef @.str.3)
  %1417 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1418 = load i32, ptr %1417, align 4, !tbaa !5
  %1419 = call ptr @s2n_strerror_debug(i32 noundef %1418, ptr noundef @.str.3)
  %1420 = call ptr @__errno_location() #10
  %1421 = load i32, ptr %1420, align 4, !tbaa !5
  %1422 = call ptr @strerror(i32 noundef %1421) #9
  %1423 = call ptr @__errno_location() #10
  %1424 = load i32, ptr %1423, align 4, !tbaa !5
  %1425 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1412, ptr noundef @.str.4, i32 noundef %1413, ptr noundef @.str.30, ptr noundef @.str.2, i32 noundef 211, ptr noundef %1416, ptr noundef %1419, ptr noundef %1422, i32 noundef %1424) #9
  br label %1426

1426:                                             ; preds = %1409, %1392
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #9
  br label %1427

1427:                                             ; preds = %1426
  br label %1428

1428:                                             ; preds = %1427
  call void @exit(i32 noundef 1) #11
  unreachable

1429:                                             ; No predecessors!
  br label %1430

1430:                                             ; preds = %1429
  br label %1431

1431:                                             ; preds = %1430, %1372
  br label %1432

1432:                                             ; preds = %1431
  br label %1433

1433:                                             ; preds = %1432
  br label %1434

1434:                                             ; preds = %1433
  %1435 = load i32, ptr @test_count, align 4, !tbaa !5
  %1436 = add nsw i32 %1435, 1
  store i32 %1436, ptr @test_count, align 4, !tbaa !5
  %1437 = load ptr, ptr %29, align 8, !tbaa !9
  %1438 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %1437, ptr noundef @.str.31)
  %1439 = icmp eq i32 %1438, -1
  br i1 %1439, label %1440, label %1493

1440:                                             ; preds = %1434
  br label %1441

1441:                                             ; preds = %1440
  br label %1442

1442:                                             ; preds = %1441
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #9
  %1443 = call ptr @__errno_location() #10
  %1444 = load i32, ptr %1443, align 4, !tbaa !5
  store i32 %1444, ptr %34, align 4, !tbaa !5
  %1445 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1446 = call i32 @s2n_print_stacktrace(ptr noundef %1445)
  %1447 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1448 = trunc i8 %1447 to i1
  br i1 %1448, label %1449, label %1471

1449:                                             ; preds = %1442
  %1450 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1451 = call i32 @fileno(ptr noundef %1450) #9
  %1452 = call i32 @isatty(i32 noundef %1451) #9
  %1453 = icmp ne i32 %1452, 0
  br i1 %1453, label %1454, label %1471

1454:                                             ; preds = %1449
  %1455 = load i32, ptr %34, align 4, !tbaa !5
  %1456 = call ptr @__errno_location() #10
  store i32 %1455, ptr %1456, align 4, !tbaa !5
  %1457 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1458 = load i32, ptr @test_count, align 4, !tbaa !5
  %1459 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1460 = load i32, ptr %1459, align 4, !tbaa !5
  %1461 = call ptr @s2n_strerror(i32 noundef %1460, ptr noundef @.str.3)
  %1462 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1463 = load i32, ptr %1462, align 4, !tbaa !5
  %1464 = call ptr @s2n_strerror_debug(i32 noundef %1463, ptr noundef @.str.3)
  %1465 = call ptr @__errno_location() #10
  %1466 = load i32, ptr %1465, align 4, !tbaa !5
  %1467 = call ptr @strerror(i32 noundef %1466) #9
  %1468 = call ptr @__errno_location() #10
  %1469 = load i32, ptr %1468, align 4, !tbaa !5
  %1470 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1457, ptr noundef @.str, i32 noundef %1458, ptr noundef @.str.32, ptr noundef @.str.2, i32 noundef 213, ptr noundef %1461, ptr noundef %1464, ptr noundef %1467, i32 noundef %1469) #9
  br label %1488

1471:                                             ; preds = %1449, %1442
  %1472 = load i32, ptr %34, align 4, !tbaa !5
  %1473 = call ptr @__errno_location() #10
  store i32 %1472, ptr %1473, align 4, !tbaa !5
  %1474 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1475 = load i32, ptr @test_count, align 4, !tbaa !5
  %1476 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1477 = load i32, ptr %1476, align 4, !tbaa !5
  %1478 = call ptr @s2n_strerror(i32 noundef %1477, ptr noundef @.str.3)
  %1479 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1480 = load i32, ptr %1479, align 4, !tbaa !5
  %1481 = call ptr @s2n_strerror_debug(i32 noundef %1480, ptr noundef @.str.3)
  %1482 = call ptr @__errno_location() #10
  %1483 = load i32, ptr %1482, align 4, !tbaa !5
  %1484 = call ptr @strerror(i32 noundef %1483) #9
  %1485 = call ptr @__errno_location() #10
  %1486 = load i32, ptr %1485, align 4, !tbaa !5
  %1487 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1474, ptr noundef @.str.4, i32 noundef %1475, ptr noundef @.str.32, ptr noundef @.str.2, i32 noundef 213, ptr noundef %1478, ptr noundef %1481, ptr noundef %1484, i32 noundef %1486) #9
  br label %1488

1488:                                             ; preds = %1471, %1454
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #9
  br label %1489

1489:                                             ; preds = %1488
  br label %1490

1490:                                             ; preds = %1489
  call void @exit(i32 noundef 1) #11
  unreachable

1491:                                             ; No predecessors!
  br label %1492

1492:                                             ; preds = %1491
  br label %1493

1493:                                             ; preds = %1492, %1434
  br label %1494

1494:                                             ; preds = %1493
  br label %1495

1495:                                             ; preds = %1494
  br label %1496

1496:                                             ; preds = %1495
  %1497 = load i32, ptr @test_count, align 4, !tbaa !5
  %1498 = add nsw i32 %1497, 1
  store i32 %1498, ptr @test_count, align 4, !tbaa !5
  %1499 = load ptr, ptr %29, align 8, !tbaa !9
  %1500 = call i32 @s2n_config_set_async_pkey_validation_mode(ptr noundef %1499, i32 noundef 1)
  %1501 = icmp eq i32 %1500, -1
  br i1 %1501, label %1502, label %1555

1502:                                             ; preds = %1496
  br label %1503

1503:                                             ; preds = %1502
  br label %1504

1504:                                             ; preds = %1503
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #9
  %1505 = call ptr @__errno_location() #10
  %1506 = load i32, ptr %1505, align 4, !tbaa !5
  store i32 %1506, ptr %35, align 4, !tbaa !5
  %1507 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1508 = call i32 @s2n_print_stacktrace(ptr noundef %1507)
  %1509 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1510 = trunc i8 %1509 to i1
  br i1 %1510, label %1511, label %1533

1511:                                             ; preds = %1504
  %1512 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1513 = call i32 @fileno(ptr noundef %1512) #9
  %1514 = call i32 @isatty(i32 noundef %1513) #9
  %1515 = icmp ne i32 %1514, 0
  br i1 %1515, label %1516, label %1533

1516:                                             ; preds = %1511
  %1517 = load i32, ptr %35, align 4, !tbaa !5
  %1518 = call ptr @__errno_location() #10
  store i32 %1517, ptr %1518, align 4, !tbaa !5
  %1519 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1520 = load i32, ptr @test_count, align 4, !tbaa !5
  %1521 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1522 = load i32, ptr %1521, align 4, !tbaa !5
  %1523 = call ptr @s2n_strerror(i32 noundef %1522, ptr noundef @.str.3)
  %1524 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1525 = load i32, ptr %1524, align 4, !tbaa !5
  %1526 = call ptr @s2n_strerror_debug(i32 noundef %1525, ptr noundef @.str.3)
  %1527 = call ptr @__errno_location() #10
  %1528 = load i32, ptr %1527, align 4, !tbaa !5
  %1529 = call ptr @strerror(i32 noundef %1528) #9
  %1530 = call ptr @__errno_location() #10
  %1531 = load i32, ptr %1530, align 4, !tbaa !5
  %1532 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1519, ptr noundef @.str, i32 noundef %1520, ptr noundef @.str.33, ptr noundef @.str.2, i32 noundef 215, ptr noundef %1523, ptr noundef %1526, ptr noundef %1529, i32 noundef %1531) #9
  br label %1550

1533:                                             ; preds = %1511, %1504
  %1534 = load i32, ptr %35, align 4, !tbaa !5
  %1535 = call ptr @__errno_location() #10
  store i32 %1534, ptr %1535, align 4, !tbaa !5
  %1536 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1537 = load i32, ptr @test_count, align 4, !tbaa !5
  %1538 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1539 = load i32, ptr %1538, align 4, !tbaa !5
  %1540 = call ptr @s2n_strerror(i32 noundef %1539, ptr noundef @.str.3)
  %1541 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1542 = load i32, ptr %1541, align 4, !tbaa !5
  %1543 = call ptr @s2n_strerror_debug(i32 noundef %1542, ptr noundef @.str.3)
  %1544 = call ptr @__errno_location() #10
  %1545 = load i32, ptr %1544, align 4, !tbaa !5
  %1546 = call ptr @strerror(i32 noundef %1545) #9
  %1547 = call ptr @__errno_location() #10
  %1548 = load i32, ptr %1547, align 4, !tbaa !5
  %1549 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1536, ptr noundef @.str.4, i32 noundef %1537, ptr noundef @.str.33, ptr noundef @.str.2, i32 noundef 215, ptr noundef %1540, ptr noundef %1543, ptr noundef %1546, i32 noundef %1548) #9
  br label %1550

1550:                                             ; preds = %1533, %1516
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #9
  br label %1551

1551:                                             ; preds = %1550
  br label %1552

1552:                                             ; preds = %1551
  call void @exit(i32 noundef 1) #11
  unreachable

1553:                                             ; No predecessors!
  br label %1554

1554:                                             ; preds = %1553
  br label %1555

1555:                                             ; preds = %1554, %1496
  br label %1556

1556:                                             ; preds = %1555
  br label %1557

1557:                                             ; preds = %1556
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #9
  %1558 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %1558, ptr %36, align 8, !tbaa !9
  br label %1559

1559:                                             ; preds = %1557
  %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 = load ptr, ptr %36, align 8, !tbaa !9
  %1563 = icmp eq ptr %1562, null
  br i1 %1563, label %1564, label %1617

1564:                                             ; preds = %1559
  br label %1565

1565:                                             ; preds = %1564
  br label %1566

1566:                                             ; preds = %1565
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #9
  %1567 = call ptr @__errno_location() #10
  %1568 = load i32, ptr %1567, align 4, !tbaa !5
  store i32 %1568, ptr %37, align 4, !tbaa !5
  %1569 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1570 = call i32 @s2n_print_stacktrace(ptr noundef %1569)
  %1571 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1572 = trunc i8 %1571 to i1
  br i1 %1572, label %1573, label %1595

1573:                                             ; preds = %1566
  %1574 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1575 = call i32 @fileno(ptr noundef %1574) #9
  %1576 = call i32 @isatty(i32 noundef %1575) #9
  %1577 = icmp ne i32 %1576, 0
  br i1 %1577, label %1578, label %1595

1578:                                             ; preds = %1573
  %1579 = load i32, ptr %37, align 4, !tbaa !5
  %1580 = call ptr @__errno_location() #10
  store i32 %1579, ptr %1580, align 4, !tbaa !5
  %1581 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1582 = load i32, ptr @test_count, align 4, !tbaa !5
  %1583 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1584 = load i32, ptr %1583, align 4, !tbaa !5
  %1585 = call ptr @s2n_strerror(i32 noundef %1584, ptr noundef @.str.3)
  %1586 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1587 = load i32, ptr %1586, align 4, !tbaa !5
  %1588 = call ptr @s2n_strerror_debug(i32 noundef %1587, ptr noundef @.str.3)
  %1589 = call ptr @__errno_location() #10
  %1590 = load i32, ptr %1589, align 4, !tbaa !5
  %1591 = call ptr @strerror(i32 noundef %1590) #9
  %1592 = call ptr @__errno_location() #10
  %1593 = load i32, ptr %1592, align 4, !tbaa !5
  %1594 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1581, ptr noundef @.str, i32 noundef %1582, ptr noundef @.str.34, ptr noundef @.str.2, i32 noundef 219, ptr noundef %1585, ptr noundef %1588, ptr noundef %1591, i32 noundef %1593) #9
  br label %1612

1595:                                             ; preds = %1573, %1566
  %1596 = load i32, ptr %37, align 4, !tbaa !5
  %1597 = call ptr @__errno_location() #10
  store i32 %1596, ptr %1597, align 4, !tbaa !5
  %1598 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1599 = load i32, ptr @test_count, align 4, !tbaa !5
  %1600 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1601 = load i32, ptr %1600, align 4, !tbaa !5
  %1602 = call ptr @s2n_strerror(i32 noundef %1601, ptr noundef @.str.3)
  %1603 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1604 = load i32, ptr %1603, align 4, !tbaa !5
  %1605 = call ptr @s2n_strerror_debug(i32 noundef %1604, ptr noundef @.str.3)
  %1606 = call ptr @__errno_location() #10
  %1607 = load i32, ptr %1606, align 4, !tbaa !5
  %1608 = call ptr @strerror(i32 noundef %1607) #9
  %1609 = call ptr @__errno_location() #10
  %1610 = load i32, ptr %1609, align 4, !tbaa !5
  %1611 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1598, ptr noundef @.str.4, i32 noundef %1599, ptr noundef @.str.34, ptr noundef @.str.2, i32 noundef 219, ptr noundef %1602, ptr noundef %1605, ptr noundef %1608, i32 noundef %1610) #9
  br label %1612

1612:                                             ; preds = %1595, %1578
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #9
  br label %1613

1613:                                             ; preds = %1612
  br label %1614

1614:                                             ; preds = %1613
  call void @exit(i32 noundef 1) #11
  unreachable

1615:                                             ; No predecessors!
  br label %1616

1616:                                             ; preds = %1615
  br label %1617

1617:                                             ; preds = %1616, %1559
  br label %1618

1618:                                             ; preds = %1617
  br label %1619

1619:                                             ; preds = %1618
  br label %1620

1620:                                             ; preds = %1619
  %1621 = load i32, ptr @test_count, align 4, !tbaa !5
  %1622 = add nsw i32 %1621, 1
  store i32 %1622, ptr @test_count, align 4, !tbaa !5
  %1623 = load ptr, ptr %36, align 8, !tbaa !9
  %1624 = load ptr, ptr %29, align 8, !tbaa !9
  %1625 = call i32 @s2n_connection_set_config(ptr noundef %1623, ptr noundef %1624)
  %1626 = icmp eq i32 %1625, -1
  br i1 %1626, label %1627, label %1680

1627:                                             ; preds = %1620
  br label %1628

1628:                                             ; preds = %1627
  br label %1629

1629:                                             ; preds = %1628
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #9
  %1630 = call ptr @__errno_location() #10
  %1631 = load i32, ptr %1630, align 4, !tbaa !5
  store i32 %1631, ptr %38, align 4, !tbaa !5
  %1632 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1633 = call i32 @s2n_print_stacktrace(ptr noundef %1632)
  %1634 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1635 = trunc i8 %1634 to i1
  br i1 %1635, label %1636, label %1658

1636:                                             ; preds = %1629
  %1637 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1638 = call i32 @fileno(ptr noundef %1637) #9
  %1639 = call i32 @isatty(i32 noundef %1638) #9
  %1640 = icmp ne i32 %1639, 0
  br i1 %1640, label %1641, label %1658

1641:                                             ; preds = %1636
  %1642 = load i32, ptr %38, align 4, !tbaa !5
  %1643 = call ptr @__errno_location() #10
  store i32 %1642, ptr %1643, align 4, !tbaa !5
  %1644 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1645 = load i32, ptr @test_count, align 4, !tbaa !5
  %1646 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1647 = load i32, ptr %1646, align 4, !tbaa !5
  %1648 = call ptr @s2n_strerror(i32 noundef %1647, ptr noundef @.str.3)
  %1649 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1650 = load i32, ptr %1649, align 4, !tbaa !5
  %1651 = call ptr @s2n_strerror_debug(i32 noundef %1650, ptr noundef @.str.3)
  %1652 = call ptr @__errno_location() #10
  %1653 = load i32, ptr %1652, align 4, !tbaa !5
  %1654 = call ptr @strerror(i32 noundef %1653) #9
  %1655 = call ptr @__errno_location() #10
  %1656 = load i32, ptr %1655, align 4, !tbaa !5
  %1657 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1644, ptr noundef @.str, i32 noundef %1645, ptr noundef @.str.35, ptr noundef @.str.2, i32 noundef 220, ptr noundef %1648, ptr noundef %1651, ptr noundef %1654, i32 noundef %1656) #9
  br label %1675

1658:                                             ; preds = %1636, %1629
  %1659 = load i32, ptr %38, align 4, !tbaa !5
  %1660 = call ptr @__errno_location() #10
  store i32 %1659, ptr %1660, align 4, !tbaa !5
  %1661 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1662 = load i32, ptr @test_count, align 4, !tbaa !5
  %1663 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1664 = load i32, ptr %1663, align 4, !tbaa !5
  %1665 = call ptr @s2n_strerror(i32 noundef %1664, ptr noundef @.str.3)
  %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_debug(i32 noundef %1667, ptr noundef @.str.3)
  %1669 = call ptr @__errno_location() #10
  %1670 = load i32, ptr %1669, align 4, !tbaa !5
  %1671 = call ptr @strerror(i32 noundef %1670) #9
  %1672 = call ptr @__errno_location() #10
  %1673 = load i32, ptr %1672, align 4, !tbaa !5
  %1674 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1661, ptr noundef @.str.4, i32 noundef %1662, ptr noundef @.str.35, ptr noundef @.str.2, i32 noundef 220, ptr noundef %1665, ptr noundef %1668, ptr noundef %1671, i32 noundef %1673) #9
  br label %1675

1675:                                             ; preds = %1658, %1641
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #9
  br label %1676

1676:                                             ; preds = %1675
  br label %1677

1677:                                             ; preds = %1676
  call void @exit(i32 noundef 1) #11
  unreachable

1678:                                             ; No predecessors!
  br label %1679

1679:                                             ; preds = %1678
  br label %1680

1680:                                             ; preds = %1679, %1620
  br label %1681

1681:                                             ; preds = %1680
  br label %1682

1682:                                             ; preds = %1681
  br label %1683

1683:                                             ; preds = %1682
  %1684 = load i32, ptr @test_count, align 4, !tbaa !5
  %1685 = add nsw i32 %1684, 1
  store i32 %1685, ptr @test_count, align 4, !tbaa !5
  %1686 = load ptr, ptr %36, align 8, !tbaa !9
  %1687 = call i32 @s2n_connection_set_client_auth_type(ptr noundef %1686, i32 noundef 1)
  %1688 = icmp eq i32 %1687, -1
  br i1 %1688, label %1689, label %1742

1689:                                             ; preds = %1683
  br label %1690

1690:                                             ; preds = %1689
  br label %1691

1691:                                             ; preds = %1690
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #9
  %1692 = call ptr @__errno_location() #10
  %1693 = load i32, ptr %1692, align 4, !tbaa !5
  store i32 %1693, ptr %39, align 4, !tbaa !5
  %1694 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1695 = call i32 @s2n_print_stacktrace(ptr noundef %1694)
  %1696 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1697 = trunc i8 %1696 to i1
  br i1 %1697, label %1698, label %1720

1698:                                             ; preds = %1691
  %1699 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1700 = call i32 @fileno(ptr noundef %1699) #9
  %1701 = call i32 @isatty(i32 noundef %1700) #9
  %1702 = icmp ne i32 %1701, 0
  br i1 %1702, label %1703, label %1720

1703:                                             ; preds = %1698
  %1704 = load i32, ptr %39, align 4, !tbaa !5
  %1705 = call ptr @__errno_location() #10
  store i32 %1704, ptr %1705, align 4, !tbaa !5
  %1706 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1707 = load i32, ptr @test_count, align 4, !tbaa !5
  %1708 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1709 = load i32, ptr %1708, align 4, !tbaa !5
  %1710 = call ptr @s2n_strerror(i32 noundef %1709, ptr noundef @.str.3)
  %1711 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1712 = load i32, ptr %1711, align 4, !tbaa !5
  %1713 = call ptr @s2n_strerror_debug(i32 noundef %1712, ptr noundef @.str.3)
  %1714 = call ptr @__errno_location() #10
  %1715 = load i32, ptr %1714, align 4, !tbaa !5
  %1716 = call ptr @strerror(i32 noundef %1715) #9
  %1717 = call ptr @__errno_location() #10
  %1718 = load i32, ptr %1717, align 4, !tbaa !5
  %1719 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1706, ptr noundef @.str, i32 noundef %1707, ptr noundef @.str.36, ptr noundef @.str.2, i32 noundef 221, ptr noundef %1710, ptr noundef %1713, ptr noundef %1716, i32 noundef %1718) #9
  br label %1737

1720:                                             ; preds = %1698, %1691
  %1721 = load i32, ptr %39, align 4, !tbaa !5
  %1722 = call ptr @__errno_location() #10
  store i32 %1721, ptr %1722, align 4, !tbaa !5
  %1723 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1724 = load i32, ptr @test_count, align 4, !tbaa !5
  %1725 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1726 = load i32, ptr %1725, align 4, !tbaa !5
  %1727 = call ptr @s2n_strerror(i32 noundef %1726, ptr noundef @.str.3)
  %1728 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1729 = load i32, ptr %1728, align 4, !tbaa !5
  %1730 = call ptr @s2n_strerror_debug(i32 noundef %1729, ptr noundef @.str.3)
  %1731 = call ptr @__errno_location() #10
  %1732 = load i32, ptr %1731, align 4, !tbaa !5
  %1733 = call ptr @strerror(i32 noundef %1732) #9
  %1734 = call ptr @__errno_location() #10
  %1735 = load i32, ptr %1734, align 4, !tbaa !5
  %1736 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1723, ptr noundef @.str.4, i32 noundef %1724, ptr noundef @.str.36, ptr noundef @.str.2, i32 noundef 221, ptr noundef %1727, ptr noundef %1730, ptr noundef %1733, i32 noundef %1735) #9
  br label %1737

1737:                                             ; preds = %1720, %1703
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #9
  br label %1738

1738:                                             ; preds = %1737
  br label %1739

1739:                                             ; preds = %1738
  call void @exit(i32 noundef 1) #11
  unreachable

1740:                                             ; No predecessors!
  br label %1741

1741:                                             ; preds = %1740
  br label %1742

1742:                                             ; preds = %1741, %1683
  br label %1743

1743:                                             ; preds = %1742
  br label %1744

1744:                                             ; preds = %1743
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #9
  store ptr null, ptr %40, align 8, !tbaa !9
  br label %1745

1745:                                             ; preds = %1744
  %1746 = load i32, ptr @test_count, align 4, !tbaa !5
  %1747 = add nsw i32 %1746, 1
  store i32 %1747, ptr @test_count, align 4, !tbaa !5
  %1748 = call ptr @s2n_config_new()
  store ptr %1748, ptr %40, align 8, !tbaa !9
  %1749 = icmp eq ptr %1748, null
  br i1 %1749, label %1750, label %1803

1750:                                             ; preds = %1745
  br label %1751

1751:                                             ; preds = %1750
  br label %1752

1752:                                             ; preds = %1751
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #9
  %1753 = call ptr @__errno_location() #10
  %1754 = load i32, ptr %1753, align 4, !tbaa !5
  store i32 %1754, ptr %41, align 4, !tbaa !5
  %1755 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1756 = call i32 @s2n_print_stacktrace(ptr noundef %1755)
  %1757 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1758 = trunc i8 %1757 to i1
  br i1 %1758, label %1759, label %1781

1759:                                             ; preds = %1752
  %1760 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1761 = call i32 @fileno(ptr noundef %1760) #9
  %1762 = call i32 @isatty(i32 noundef %1761) #9
  %1763 = icmp ne i32 %1762, 0
  br i1 %1763, label %1764, label %1781

1764:                                             ; preds = %1759
  %1765 = load i32, ptr %41, align 4, !tbaa !5
  %1766 = call ptr @__errno_location() #10
  store i32 %1765, ptr %1766, align 4, !tbaa !5
  %1767 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1768 = load i32, ptr @test_count, align 4, !tbaa !5
  %1769 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1770 = load i32, ptr %1769, align 4, !tbaa !5
  %1771 = call ptr @s2n_strerror(i32 noundef %1770, ptr noundef @.str.3)
  %1772 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1773 = load i32, ptr %1772, align 4, !tbaa !5
  %1774 = call ptr @s2n_strerror_debug(i32 noundef %1773, ptr noundef @.str.3)
  %1775 = call ptr @__errno_location() #10
  %1776 = load i32, ptr %1775, align 4, !tbaa !5
  %1777 = call ptr @strerror(i32 noundef %1776) #9
  %1778 = call ptr @__errno_location() #10
  %1779 = load i32, ptr %1778, align 4, !tbaa !5
  %1780 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1767, ptr noundef @.str, i32 noundef %1768, ptr noundef @.str.37, ptr noundef @.str.2, i32 noundef 224, ptr noundef %1771, ptr noundef %1774, ptr noundef %1777, i32 noundef %1779) #9
  br label %1798

1781:                                             ; preds = %1759, %1752
  %1782 = load i32, ptr %41, align 4, !tbaa !5
  %1783 = call ptr @__errno_location() #10
  store i32 %1782, ptr %1783, align 4, !tbaa !5
  %1784 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1785 = load i32, ptr @test_count, align 4, !tbaa !5
  %1786 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1787 = load i32, ptr %1786, align 4, !tbaa !5
  %1788 = call ptr @s2n_strerror(i32 noundef %1787, ptr noundef @.str.3)
  %1789 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1790 = load i32, ptr %1789, align 4, !tbaa !5
  %1791 = call ptr @s2n_strerror_debug(i32 noundef %1790, ptr noundef @.str.3)
  %1792 = call ptr @__errno_location() #10
  %1793 = load i32, ptr %1792, align 4, !tbaa !5
  %1794 = call ptr @strerror(i32 noundef %1793) #9
  %1795 = call ptr @__errno_location() #10
  %1796 = load i32, ptr %1795, align 4, !tbaa !5
  %1797 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1784, ptr noundef @.str.4, i32 noundef %1785, ptr noundef @.str.37, ptr noundef @.str.2, i32 noundef 224, ptr noundef %1788, ptr noundef %1791, ptr noundef %1794, i32 noundef %1796) #9
  br label %1798

1798:                                             ; preds = %1781, %1764
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #9
  br label %1799

1799:                                             ; preds = %1798
  br label %1800

1800:                                             ; preds = %1799
  call void @exit(i32 noundef 1) #11
  unreachable

1801:                                             ; No predecessors!
  br label %1802

1802:                                             ; preds = %1801
  br label %1803

1803:                                             ; preds = %1802, %1745
  br label %1804

1804:                                             ; preds = %1803
  br label %1805

1805:                                             ; preds = %1804
  br label %1806

1806:                                             ; preds = %1805
  %1807 = load i32, ptr @test_count, align 4, !tbaa !5
  %1808 = add nsw i32 %1807, 1
  store i32 %1808, ptr @test_count, align 4, !tbaa !5
  %1809 = load ptr, ptr %40, align 8, !tbaa !9
  %1810 = load ptr, ptr %27, align 8, !tbaa !9
  %1811 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %1809, ptr noundef %1810)
  %1812 = icmp eq i32 %1811, -1
  br i1 %1812, label %1813, label %1866

1813:                                             ; preds = %1806
  br label %1814

1814:                                             ; preds = %1813
  br label %1815

1815:                                             ; preds = %1814
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #9
  %1816 = call ptr @__errno_location() #10
  %1817 = load i32, ptr %1816, align 4, !tbaa !5
  store i32 %1817, ptr %42, align 4, !tbaa !5
  %1818 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1819 = call i32 @s2n_print_stacktrace(ptr noundef %1818)
  %1820 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1821 = trunc i8 %1820 to i1
  br i1 %1821, label %1822, label %1844

1822:                                             ; preds = %1815
  %1823 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1824 = call i32 @fileno(ptr noundef %1823) #9
  %1825 = call i32 @isatty(i32 noundef %1824) #9
  %1826 = icmp ne i32 %1825, 0
  br i1 %1826, label %1827, label %1844

1827:                                             ; preds = %1822
  %1828 = load i32, ptr %42, align 4, !tbaa !5
  %1829 = call ptr @__errno_location() #10
  store i32 %1828, ptr %1829, align 4, !tbaa !5
  %1830 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1831 = load i32, ptr @test_count, align 4, !tbaa !5
  %1832 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1833 = load i32, ptr %1832, align 4, !tbaa !5
  %1834 = call ptr @s2n_strerror(i32 noundef %1833, ptr noundef @.str.3)
  %1835 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1836 = load i32, ptr %1835, align 4, !tbaa !5
  %1837 = call ptr @s2n_strerror_debug(i32 noundef %1836, ptr noundef @.str.3)
  %1838 = call ptr @__errno_location() #10
  %1839 = load i32, ptr %1838, align 4, !tbaa !5
  %1840 = call ptr @strerror(i32 noundef %1839) #9
  %1841 = call ptr @__errno_location() #10
  %1842 = load i32, ptr %1841, align 4, !tbaa !5
  %1843 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1830, ptr noundef @.str, i32 noundef %1831, ptr noundef @.str.38, ptr noundef @.str.2, i32 noundef 225, ptr noundef %1834, ptr noundef %1837, ptr noundef %1840, i32 noundef %1842) #9
  br label %1861

1844:                                             ; preds = %1822, %1815
  %1845 = load i32, ptr %42, align 4, !tbaa !5
  %1846 = call ptr @__errno_location() #10
  store i32 %1845, ptr %1846, align 4, !tbaa !5
  %1847 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1848 = load i32, ptr @test_count, align 4, !tbaa !5
  %1849 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1850 = load i32, ptr %1849, align 4, !tbaa !5
  %1851 = call ptr @s2n_strerror(i32 noundef %1850, ptr noundef @.str.3)
  %1852 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1853 = load i32, ptr %1852, align 4, !tbaa !5
  %1854 = call ptr @s2n_strerror_debug(i32 noundef %1853, ptr noundef @.str.3)
  %1855 = call ptr @__errno_location() #10
  %1856 = load i32, ptr %1855, align 4, !tbaa !5
  %1857 = call ptr @strerror(i32 noundef %1856) #9
  %1858 = call ptr @__errno_location() #10
  %1859 = load i32, ptr %1858, align 4, !tbaa !5
  %1860 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1847, ptr noundef @.str.4, i32 noundef %1848, ptr noundef @.str.38, ptr noundef @.str.2, i32 noundef 225, ptr noundef %1851, ptr noundef %1854, ptr noundef %1857, i32 noundef %1859) #9
  br label %1861

1861:                                             ; preds = %1844, %1827
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #9
  br label %1862

1862:                                             ; preds = %1861
  br label %1863

1863:                                             ; preds = %1862
  call void @exit(i32 noundef 1) #11
  unreachable

1864:                                             ; No predecessors!
  br label %1865

1865:                                             ; preds = %1864
  br label %1866

1866:                                             ; preds = %1865, %1806
  br label %1867

1867:                                             ; preds = %1866
  br label %1868

1868:                                             ; preds = %1867
  br label %1869

1869:                                             ; preds = %1868
  %1870 = load i32, ptr @test_count, align 4, !tbaa !5
  %1871 = add nsw i32 %1870, 1
  store i32 %1871, ptr @test_count, align 4, !tbaa !5
  %1872 = load ptr, ptr %40, align 8, !tbaa !9
  %1873 = call i32 @s2n_config_set_unsafe_for_testing(ptr noundef %1872)
  %1874 = icmp eq i32 %1873, -1
  br i1 %1874, label %1875, label %1928

1875:                                             ; preds = %1869
  br label %1876

1876:                                             ; preds = %1875
  br label %1877

1877:                                             ; preds = %1876
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #9
  %1878 = call ptr @__errno_location() #10
  %1879 = load i32, ptr %1878, align 4, !tbaa !5
  store i32 %1879, ptr %43, align 4, !tbaa !5
  %1880 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1881 = call i32 @s2n_print_stacktrace(ptr noundef %1880)
  %1882 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1883 = trunc i8 %1882 to i1
  br i1 %1883, label %1884, label %1906

1884:                                             ; preds = %1877
  %1885 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1886 = call i32 @fileno(ptr noundef %1885) #9
  %1887 = call i32 @isatty(i32 noundef %1886) #9
  %1888 = icmp ne i32 %1887, 0
  br i1 %1888, label %1889, label %1906

1889:                                             ; preds = %1884
  %1890 = load i32, ptr %43, align 4, !tbaa !5
  %1891 = call ptr @__errno_location() #10
  store i32 %1890, ptr %1891, align 4, !tbaa !5
  %1892 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1893 = load i32, ptr @test_count, align 4, !tbaa !5
  %1894 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1895 = load i32, ptr %1894, align 4, !tbaa !5
  %1896 = call ptr @s2n_strerror(i32 noundef %1895, ptr noundef @.str.3)
  %1897 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1898 = load i32, ptr %1897, align 4, !tbaa !5
  %1899 = call ptr @s2n_strerror_debug(i32 noundef %1898, ptr noundef @.str.3)
  %1900 = call ptr @__errno_location() #10
  %1901 = load i32, ptr %1900, align 4, !tbaa !5
  %1902 = call ptr @strerror(i32 noundef %1901) #9
  %1903 = call ptr @__errno_location() #10
  %1904 = load i32, ptr %1903, align 4, !tbaa !5
  %1905 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1892, ptr noundef @.str, i32 noundef %1893, ptr noundef @.str.39, ptr noundef @.str.2, i32 noundef 226, ptr noundef %1896, ptr noundef %1899, ptr noundef %1902, i32 noundef %1904) #9
  br label %1923

1906:                                             ; preds = %1884, %1877
  %1907 = load i32, ptr %43, align 4, !tbaa !5
  %1908 = call ptr @__errno_location() #10
  store i32 %1907, ptr %1908, align 4, !tbaa !5
  %1909 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1910 = load i32, ptr @test_count, align 4, !tbaa !5
  %1911 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1912 = load i32, ptr %1911, align 4, !tbaa !5
  %1913 = call ptr @s2n_strerror(i32 noundef %1912, ptr noundef @.str.3)
  %1914 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1915 = load i32, ptr %1914, align 4, !tbaa !5
  %1916 = call ptr @s2n_strerror_debug(i32 noundef %1915, ptr noundef @.str.3)
  %1917 = call ptr @__errno_location() #10
  %1918 = load i32, ptr %1917, align 4, !tbaa !5
  %1919 = call ptr @strerror(i32 noundef %1918) #9
  %1920 = call ptr @__errno_location() #10
  %1921 = load i32, ptr %1920, align 4, !tbaa !5
  %1922 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1909, ptr noundef @.str.4, i32 noundef %1910, ptr noundef @.str.39, ptr noundef @.str.2, i32 noundef 226, ptr noundef %1913, ptr noundef %1916, ptr noundef %1919, i32 noundef %1921) #9
  br label %1923

1923:                                             ; preds = %1906, %1889
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #9
  br label %1924

1924:                                             ; preds = %1923
  br label %1925

1925:                                             ; preds = %1924
  call void @exit(i32 noundef 1) #11
  unreachable

1926:                                             ; No predecessors!
  br label %1927

1927:                                             ; preds = %1926
  br label %1928

1928:                                             ; preds = %1927, %1869
  br label %1929

1929:                                             ; preds = %1928
  br label %1930

1930:                                             ; preds = %1929
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #9
  %1931 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %1931, ptr %44, align 8, !tbaa !9
  br label %1932

1932:                                             ; preds = %1930
  %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 %44, 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 %45) #9
  %1940 = call ptr @__errno_location() #10
  %1941 = load i32, ptr %1940, align 4, !tbaa !5
  store i32 %1941, ptr %45, 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) #9
  %1949 = call i32 @isatty(i32 noundef %1948) #9
  %1950 = icmp ne i32 %1949, 0
  br i1 %1950, label %1951, label %1968

1951:                                             ; preds = %1946
  %1952 = load i32, ptr %45, align 4, !tbaa !5
  %1953 = call ptr @__errno_location() #10
  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.3)
  %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.3)
  %1962 = call ptr @__errno_location() #10
  %1963 = load i32, ptr %1962, align 4, !tbaa !5
  %1964 = call ptr @strerror(i32 noundef %1963) #9
  %1965 = call ptr @__errno_location() #10
  %1966 = load i32, ptr %1965, align 4, !tbaa !5
  %1967 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1954, ptr noundef @.str, i32 noundef %1955, ptr noundef @.str.40, ptr noundef @.str.2, i32 noundef 229, ptr noundef %1958, ptr noundef %1961, ptr noundef %1964, i32 noundef %1966) #9
  br label %1985

1968:                                             ; preds = %1946, %1939
  %1969 = load i32, ptr %45, align 4, !tbaa !5
  %1970 = call ptr @__errno_location() #10
  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.3)
  %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.3)
  %1979 = call ptr @__errno_location() #10
  %1980 = load i32, ptr %1979, align 4, !tbaa !5
  %1981 = call ptr @strerror(i32 noundef %1980) #9
  %1982 = call ptr @__errno_location() #10
  %1983 = load i32, ptr %1982, align 4, !tbaa !5
  %1984 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1971, ptr noundef @.str.4, i32 noundef %1972, ptr noundef @.str.40, ptr noundef @.str.2, i32 noundef 229, ptr noundef %1975, ptr noundef %1978, ptr noundef %1981, i32 noundef %1983) #9
  br label %1985

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

1986:                                             ; preds = %1985
  br label %1987

1987:                                             ; preds = %1986
  call void @exit(i32 noundef 1) #11
  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
  br label %1993

1993:                                             ; preds = %1992
  %1994 = load i32, ptr @test_count, align 4, !tbaa !5
  %1995 = add nsw i32 %1994, 1
  store i32 %1995, ptr @test_count, align 4, !tbaa !5
  %1996 = load ptr, ptr %44, align 8, !tbaa !9
  %1997 = load ptr, ptr %40, align 8, !tbaa !9
  %1998 = call i32 @s2n_connection_set_config(ptr noundef %1996, ptr noundef %1997)
  %1999 = icmp eq i32 %1998, -1
  br i1 %1999, label %2000, label %2053

2000:                                             ; preds = %1993
  br label %2001

2001:                                             ; preds = %2000
  br label %2002

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

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

2014:                                             ; preds = %2009
  %2015 = load i32, ptr %46, align 4, !tbaa !5
  %2016 = call ptr @__errno_location() #10
  store i32 %2015, ptr %2016, align 4, !tbaa !5
  %2017 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2018 = load i32, ptr @test_count, align 4, !tbaa !5
  %2019 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2020 = load i32, ptr %2019, align 4, !tbaa !5
  %2021 = call ptr @s2n_strerror(i32 noundef %2020, ptr noundef @.str.3)
  %2022 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2023 = load i32, ptr %2022, align 4, !tbaa !5
  %2024 = call ptr @s2n_strerror_debug(i32 noundef %2023, ptr noundef @.str.3)
  %2025 = call ptr @__errno_location() #10
  %2026 = load i32, ptr %2025, align 4, !tbaa !5
  %2027 = call ptr @strerror(i32 noundef %2026) #9
  %2028 = call ptr @__errno_location() #10
  %2029 = load i32, ptr %2028, align 4, !tbaa !5
  %2030 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2017, ptr noundef @.str, i32 noundef %2018, ptr noundef @.str.41, ptr noundef @.str.2, i32 noundef 230, ptr noundef %2021, ptr noundef %2024, ptr noundef %2027, i32 noundef %2029) #9
  br label %2048

2031:                                             ; preds = %2009, %2002
  %2032 = load i32, ptr %46, align 4, !tbaa !5
  %2033 = call ptr @__errno_location() #10
  store i32 %2032, ptr %2033, align 4, !tbaa !5
  %2034 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2035 = load i32, ptr @test_count, align 4, !tbaa !5
  %2036 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2037 = load i32, ptr %2036, align 4, !tbaa !5
  %2038 = call ptr @s2n_strerror(i32 noundef %2037, ptr noundef @.str.3)
  %2039 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2040 = load i32, ptr %2039, align 4, !tbaa !5
  %2041 = call ptr @s2n_strerror_debug(i32 noundef %2040, ptr noundef @.str.3)
  %2042 = call ptr @__errno_location() #10
  %2043 = load i32, ptr %2042, align 4, !tbaa !5
  %2044 = call ptr @strerror(i32 noundef %2043) #9
  %2045 = call ptr @__errno_location() #10
  %2046 = load i32, ptr %2045, align 4, !tbaa !5
  %2047 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2034, ptr noundef @.str.4, i32 noundef %2035, ptr noundef @.str.41, ptr noundef @.str.2, i32 noundef 230, ptr noundef %2038, ptr noundef %2041, ptr noundef %2044, i32 noundef %2046) #9
  br label %2048

2048:                                             ; preds = %2031, %2014
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #9
  br label %2049

2049:                                             ; preds = %2048
  br label %2050

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

2051:                                             ; No predecessors!
  br label %2052

2052:                                             ; preds = %2051
  br label %2053

2053:                                             ; preds = %2052, %1993
  br label %2054

2054:                                             ; preds = %2053
  br label %2055

2055:                                             ; preds = %2054
  br label %2056

2056:                                             ; preds = %2055
  %2057 = load i32, ptr @test_count, align 4, !tbaa !5
  %2058 = add nsw i32 %2057, 1
  store i32 %2058, ptr @test_count, align 4, !tbaa !5
  %2059 = load ptr, ptr %44, align 8, !tbaa !9
  %2060 = call i32 @s2n_connection_set_client_auth_type(ptr noundef %2059, i32 noundef 1)
  %2061 = icmp eq i32 %2060, -1
  br i1 %2061, label %2062, label %2115

2062:                                             ; preds = %2056
  br label %2063

2063:                                             ; preds = %2062
  br label %2064

2064:                                             ; preds = %2063
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #9
  %2065 = call ptr @__errno_location() #10
  %2066 = load i32, ptr %2065, align 4, !tbaa !5
  store i32 %2066, ptr %47, 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) #9
  %2074 = call i32 @isatty(i32 noundef %2073) #9
  %2075 = icmp ne i32 %2074, 0
  br i1 %2075, label %2076, label %2093

2076:                                             ; preds = %2071
  %2077 = load i32, ptr %47, align 4, !tbaa !5
  %2078 = call ptr @__errno_location() #10
  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.3)
  %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.3)
  %2087 = call ptr @__errno_location() #10
  %2088 = load i32, ptr %2087, align 4, !tbaa !5
  %2089 = call ptr @strerror(i32 noundef %2088) #9
  %2090 = call ptr @__errno_location() #10
  %2091 = load i32, ptr %2090, align 4, !tbaa !5
  %2092 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2079, ptr noundef @.str, i32 noundef %2080, ptr noundef @.str.42, ptr noundef @.str.2, i32 noundef 231, ptr noundef %2083, ptr noundef %2086, ptr noundef %2089, i32 noundef %2091) #9
  br label %2110

2093:                                             ; preds = %2071, %2064
  %2094 = load i32, ptr %47, align 4, !tbaa !5
  %2095 = call ptr @__errno_location() #10
  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.3)
  %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.3)
  %2104 = call ptr @__errno_location() #10
  %2105 = load i32, ptr %2104, align 4, !tbaa !5
  %2106 = call ptr @strerror(i32 noundef %2105) #9
  %2107 = call ptr @__errno_location() #10
  %2108 = load i32, ptr %2107, align 4, !tbaa !5
  %2109 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2096, ptr noundef @.str.4, i32 noundef %2097, ptr noundef @.str.42, ptr noundef @.str.2, i32 noundef 231, ptr noundef %2100, ptr noundef %2103, ptr noundef %2106, i32 noundef %2108) #9
  br label %2110

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

2111:                                             ; preds = %2110
  br label %2112

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

2113:                                             ; No predecessors!
  br label %2114

2114:                                             ; preds = %2113
  br label %2115

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

2116:                                             ; preds = %2115
  br label %2117

2117:                                             ; preds = %2116
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #9
  call void @llvm.memset.p0.i64(ptr align 4 %48, i8 0, i64 8, i1 false)
  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 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef %48)
  %2122 = icmp eq i32 %2121, -1
  br i1 %2122, label %2123, label %2176

2123:                                             ; preds = %2118
  br label %2124

2124:                                             ; preds = %2123
  br label %2125

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

2132:                                             ; preds = %2125
  %2133 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2134 = call i32 @fileno(ptr noundef %2133) #9
  %2135 = call i32 @isatty(i32 noundef %2134) #9
  %2136 = icmp ne i32 %2135, 0
  br i1 %2136, label %2137, label %2154

2137:                                             ; preds = %2132
  %2138 = load i32, ptr %49, align 4, !tbaa !5
  %2139 = call ptr @__errno_location() #10
  store i32 %2138, ptr %2139, align 4, !tbaa !5
  %2140 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2141 = load i32, ptr @test_count, align 4, !tbaa !5
  %2142 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2143 = load i32, ptr %2142, align 4, !tbaa !5
  %2144 = call ptr @s2n_strerror(i32 noundef %2143, ptr noundef @.str.3)
  %2145 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2146 = load i32, ptr %2145, align 4, !tbaa !5
  %2147 = call ptr @s2n_strerror_debug(i32 noundef %2146, ptr noundef @.str.3)
  %2148 = call ptr @__errno_location() #10
  %2149 = load i32, ptr %2148, align 4, !tbaa !5
  %2150 = call ptr @strerror(i32 noundef %2149) #9
  %2151 = call ptr @__errno_location() #10
  %2152 = load i32, ptr %2151, align 4, !tbaa !5
  %2153 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2140, ptr noundef @.str, i32 noundef %2141, ptr noundef @.str.43, ptr noundef @.str.2, i32 noundef 235, ptr noundef %2144, ptr noundef %2147, ptr noundef %2150, i32 noundef %2152) #9
  br label %2171

2154:                                             ; preds = %2132, %2125
  %2155 = load i32, ptr %49, align 4, !tbaa !5
  %2156 = call ptr @__errno_location() #10
  store i32 %2155, ptr %2156, align 4, !tbaa !5
  %2157 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2158 = load i32, ptr @test_count, align 4, !tbaa !5
  %2159 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2160 = load i32, ptr %2159, align 4, !tbaa !5
  %2161 = call ptr @s2n_strerror(i32 noundef %2160, ptr noundef @.str.3)
  %2162 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2163 = load i32, ptr %2162, align 4, !tbaa !5
  %2164 = call ptr @s2n_strerror_debug(i32 noundef %2163, ptr noundef @.str.3)
  %2165 = call ptr @__errno_location() #10
  %2166 = load i32, ptr %2165, align 4, !tbaa !5
  %2167 = call ptr @strerror(i32 noundef %2166) #9
  %2168 = call ptr @__errno_location() #10
  %2169 = load i32, ptr %2168, align 4, !tbaa !5
  %2170 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2157, ptr noundef @.str.4, i32 noundef %2158, ptr noundef @.str.43, ptr noundef @.str.2, i32 noundef 235, ptr noundef %2161, ptr noundef %2164, ptr noundef %2167, i32 noundef %2169) #9
  br label %2171

2171:                                             ; preds = %2154, %2137
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #9
  br label %2172

2172:                                             ; preds = %2171
  br label %2173

2173:                                             ; preds = %2172
  call void @exit(i32 noundef 1) #11
  unreachable

2174:                                             ; No predecessors!
  br label %2175

2175:                                             ; preds = %2174
  br label %2176

2176:                                             ; preds = %2175, %2118
  br label %2177

2177:                                             ; preds = %2176
  br label %2178

2178:                                             ; preds = %2177
  br label %2179

2179:                                             ; preds = %2178
  %2180 = load i32, ptr @test_count, align 4, !tbaa !5
  %2181 = add nsw i32 %2180, 1
  store i32 %2181, ptr @test_count, align 4, !tbaa !5
  %2182 = load ptr, ptr %36, align 8, !tbaa !9
  %2183 = call i32 @s2n_connection_set_io_pair(ptr noundef %2182, ptr noundef %48)
  %2184 = icmp eq i32 %2183, -1
  br i1 %2184, label %2185, label %2238

2185:                                             ; preds = %2179
  br label %2186

2186:                                             ; preds = %2185
  br label %2187

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

2194:                                             ; preds = %2187
  %2195 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2196 = call i32 @fileno(ptr noundef %2195) #9
  %2197 = call i32 @isatty(i32 noundef %2196) #9
  %2198 = icmp ne i32 %2197, 0
  br i1 %2198, label %2199, label %2216

2199:                                             ; preds = %2194
  %2200 = load i32, ptr %50, align 4, !tbaa !5
  %2201 = call ptr @__errno_location() #10
  store i32 %2200, ptr %2201, align 4, !tbaa !5
  %2202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2203 = load i32, ptr @test_count, align 4, !tbaa !5
  %2204 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2205 = load i32, ptr %2204, align 4, !tbaa !5
  %2206 = call ptr @s2n_strerror(i32 noundef %2205, ptr noundef @.str.3)
  %2207 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2208 = load i32, ptr %2207, align 4, !tbaa !5
  %2209 = call ptr @s2n_strerror_debug(i32 noundef %2208, ptr noundef @.str.3)
  %2210 = call ptr @__errno_location() #10
  %2211 = load i32, ptr %2210, align 4, !tbaa !5
  %2212 = call ptr @strerror(i32 noundef %2211) #9
  %2213 = call ptr @__errno_location() #10
  %2214 = load i32, ptr %2213, align 4, !tbaa !5
  %2215 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2202, ptr noundef @.str, i32 noundef %2203, ptr noundef @.str.44, ptr noundef @.str.2, i32 noundef 236, ptr noundef %2206, ptr noundef %2209, ptr noundef %2212, i32 noundef %2214) #9
  br label %2233

2216:                                             ; preds = %2194, %2187
  %2217 = load i32, ptr %50, align 4, !tbaa !5
  %2218 = call ptr @__errno_location() #10
  store i32 %2217, ptr %2218, align 4, !tbaa !5
  %2219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2220 = load i32, ptr @test_count, align 4, !tbaa !5
  %2221 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2222 = load i32, ptr %2221, align 4, !tbaa !5
  %2223 = call ptr @s2n_strerror(i32 noundef %2222, ptr noundef @.str.3)
  %2224 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2225 = load i32, ptr %2224, align 4, !tbaa !5
  %2226 = call ptr @s2n_strerror_debug(i32 noundef %2225, ptr noundef @.str.3)
  %2227 = call ptr @__errno_location() #10
  %2228 = load i32, ptr %2227, align 4, !tbaa !5
  %2229 = call ptr @strerror(i32 noundef %2228) #9
  %2230 = call ptr @__errno_location() #10
  %2231 = load i32, ptr %2230, align 4, !tbaa !5
  %2232 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2219, ptr noundef @.str.4, i32 noundef %2220, ptr noundef @.str.44, ptr noundef @.str.2, i32 noundef 236, ptr noundef %2223, ptr noundef %2226, ptr noundef %2229, i32 noundef %2231) #9
  br label %2233

2233:                                             ; preds = %2216, %2199
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #9
  br label %2234

2234:                                             ; preds = %2233
  br label %2235

2235:                                             ; preds = %2234
  call void @exit(i32 noundef 1) #11
  unreachable

2236:                                             ; No predecessors!
  br label %2237

2237:                                             ; preds = %2236
  br label %2238

2238:                                             ; preds = %2237, %2179
  br label %2239

2239:                                             ; preds = %2238
  br label %2240

2240:                                             ; preds = %2239
  br label %2241

2241:                                             ; preds = %2240
  %2242 = load i32, ptr @test_count, align 4, !tbaa !5
  %2243 = add nsw i32 %2242, 1
  store i32 %2243, ptr @test_count, align 4, !tbaa !5
  %2244 = load ptr, ptr %44, align 8, !tbaa !9
  %2245 = call i32 @s2n_connection_set_io_pair(ptr noundef %2244, ptr noundef %48)
  %2246 = icmp eq i32 %2245, -1
  br i1 %2246, label %2247, label %2300

2247:                                             ; preds = %2241
  br label %2248

2248:                                             ; preds = %2247
  br label %2249

2249:                                             ; preds = %2248
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #9
  %2250 = call ptr @__errno_location() #10
  %2251 = load i32, ptr %2250, align 4, !tbaa !5
  store i32 %2251, ptr %51, align 4, !tbaa !5
  %2252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2253 = call i32 @s2n_print_stacktrace(ptr noundef %2252)
  %2254 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2255 = trunc i8 %2254 to i1
  br i1 %2255, label %2256, label %2278

2256:                                             ; preds = %2249
  %2257 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2258 = call i32 @fileno(ptr noundef %2257) #9
  %2259 = call i32 @isatty(i32 noundef %2258) #9
  %2260 = icmp ne i32 %2259, 0
  br i1 %2260, label %2261, label %2278

2261:                                             ; preds = %2256
  %2262 = load i32, ptr %51, align 4, !tbaa !5
  %2263 = call ptr @__errno_location() #10
  store i32 %2262, ptr %2263, align 4, !tbaa !5
  %2264 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2265 = load i32, ptr @test_count, align 4, !tbaa !5
  %2266 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2267 = load i32, ptr %2266, align 4, !tbaa !5
  %2268 = call ptr @s2n_strerror(i32 noundef %2267, ptr noundef @.str.3)
  %2269 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2270 = load i32, ptr %2269, align 4, !tbaa !5
  %2271 = call ptr @s2n_strerror_debug(i32 noundef %2270, ptr noundef @.str.3)
  %2272 = call ptr @__errno_location() #10
  %2273 = load i32, ptr %2272, align 4, !tbaa !5
  %2274 = call ptr @strerror(i32 noundef %2273) #9
  %2275 = call ptr @__errno_location() #10
  %2276 = load i32, ptr %2275, align 4, !tbaa !5
  %2277 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2264, ptr noundef @.str, i32 noundef %2265, ptr noundef @.str.45, ptr noundef @.str.2, i32 noundef 237, ptr noundef %2268, ptr noundef %2271, ptr noundef %2274, i32 noundef %2276) #9
  br label %2295

2278:                                             ; preds = %2256, %2249
  %2279 = load i32, ptr %51, align 4, !tbaa !5
  %2280 = call ptr @__errno_location() #10
  store i32 %2279, ptr %2280, align 4, !tbaa !5
  %2281 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2282 = load i32, ptr @test_count, align 4, !tbaa !5
  %2283 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2284 = load i32, ptr %2283, align 4, !tbaa !5
  %2285 = call ptr @s2n_strerror(i32 noundef %2284, ptr noundef @.str.3)
  %2286 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2287 = load i32, ptr %2286, align 4, !tbaa !5
  %2288 = call ptr @s2n_strerror_debug(i32 noundef %2287, ptr noundef @.str.3)
  %2289 = call ptr @__errno_location() #10
  %2290 = load i32, ptr %2289, align 4, !tbaa !5
  %2291 = call ptr @strerror(i32 noundef %2290) #9
  %2292 = call ptr @__errno_location() #10
  %2293 = load i32, ptr %2292, align 4, !tbaa !5
  %2294 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2281, ptr noundef @.str.4, i32 noundef %2282, ptr noundef @.str.45, ptr noundef @.str.2, i32 noundef 237, ptr noundef %2285, ptr noundef %2288, ptr noundef %2291, i32 noundef %2293) #9
  br label %2295

2295:                                             ; preds = %2278, %2261
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #9
  br label %2296

2296:                                             ; preds = %2295
  br label %2297

2297:                                             ; preds = %2296
  call void @exit(i32 noundef 1) #11
  unreachable

2298:                                             ; No predecessors!
  br label %2299

2299:                                             ; preds = %2298
  br label %2300

2300:                                             ; preds = %2299, %2241
  br label %2301

2301:                                             ; preds = %2300
  br label %2302

2302:                                             ; preds = %2301
  br label %2303

2303:                                             ; preds = %2302
  %2304 = load i32, ptr @test_count, align 4, !tbaa !5
  %2305 = add nsw i32 %2304, 1
  store i32 %2305, ptr @test_count, align 4, !tbaa !5
  %2306 = load ptr, ptr %44, align 8, !tbaa !9
  %2307 = load ptr, ptr %36, align 8, !tbaa !9
  %2308 = call i32 @s2n_try_handshake_with_async_pkey_op(ptr noundef %2306, ptr noundef %2307, ptr noundef @s2n_test_negotiate_with_async_pkey_op_handler)
  %2309 = icmp eq i32 %2308, -1
  br i1 %2309, label %2310, label %2363

2310:                                             ; preds = %2303
  br label %2311

2311:                                             ; preds = %2310
  br label %2312

2312:                                             ; preds = %2311
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #9
  %2313 = call ptr @__errno_location() #10
  %2314 = load i32, ptr %2313, align 4, !tbaa !5
  store i32 %2314, ptr %52, align 4, !tbaa !5
  %2315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2316 = call i32 @s2n_print_stacktrace(ptr noundef %2315)
  %2317 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2318 = trunc i8 %2317 to i1
  br i1 %2318, label %2319, label %2341

2319:                                             ; preds = %2312
  %2320 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2321 = call i32 @fileno(ptr noundef %2320) #9
  %2322 = call i32 @isatty(i32 noundef %2321) #9
  %2323 = icmp ne i32 %2322, 0
  br i1 %2323, label %2324, label %2341

2324:                                             ; preds = %2319
  %2325 = load i32, ptr %52, align 4, !tbaa !5
  %2326 = call ptr @__errno_location() #10
  store i32 %2325, ptr %2326, align 4, !tbaa !5
  %2327 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2328 = load i32, ptr @test_count, align 4, !tbaa !5
  %2329 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2330 = load i32, ptr %2329, align 4, !tbaa !5
  %2331 = call ptr @s2n_strerror(i32 noundef %2330, ptr noundef @.str.3)
  %2332 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2333 = load i32, ptr %2332, align 4, !tbaa !5
  %2334 = call ptr @s2n_strerror_debug(i32 noundef %2333, ptr noundef @.str.3)
  %2335 = call ptr @__errno_location() #10
  %2336 = load i32, ptr %2335, align 4, !tbaa !5
  %2337 = call ptr @strerror(i32 noundef %2336) #9
  %2338 = call ptr @__errno_location() #10
  %2339 = load i32, ptr %2338, align 4, !tbaa !5
  %2340 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2327, ptr noundef @.str, i32 noundef %2328, ptr noundef @.str.46, ptr noundef @.str.2, i32 noundef 240, ptr noundef %2331, ptr noundef %2334, ptr noundef %2337, i32 noundef %2339) #9
  br label %2358

2341:                                             ; preds = %2319, %2312
  %2342 = load i32, ptr %52, align 4, !tbaa !5
  %2343 = call ptr @__errno_location() #10
  store i32 %2342, ptr %2343, align 4, !tbaa !5
  %2344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2345 = load i32, ptr @test_count, align 4, !tbaa !5
  %2346 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2347 = load i32, ptr %2346, align 4, !tbaa !5
  %2348 = call ptr @s2n_strerror(i32 noundef %2347, ptr noundef @.str.3)
  %2349 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2350 = load i32, ptr %2349, align 4, !tbaa !5
  %2351 = call ptr @s2n_strerror_debug(i32 noundef %2350, ptr noundef @.str.3)
  %2352 = call ptr @__errno_location() #10
  %2353 = load i32, ptr %2352, align 4, !tbaa !5
  %2354 = call ptr @strerror(i32 noundef %2353) #9
  %2355 = call ptr @__errno_location() #10
  %2356 = load i32, ptr %2355, align 4, !tbaa !5
  %2357 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2344, ptr noundef @.str.4, i32 noundef %2345, ptr noundef @.str.46, ptr noundef @.str.2, i32 noundef 240, ptr noundef %2348, ptr noundef %2351, ptr noundef %2354, i32 noundef %2356) #9
  br label %2358

2358:                                             ; preds = %2341, %2324
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #9
  br label %2359

2359:                                             ; preds = %2358
  br label %2360

2360:                                             ; preds = %2359
  call void @exit(i32 noundef 1) #11
  unreachable

2361:                                             ; No predecessors!
  br label %2362

2362:                                             ; preds = %2361
  br label %2363

2363:                                             ; preds = %2362, %2303
  br label %2364

2364:                                             ; preds = %2363
  br label %2365

2365:                                             ; preds = %2364
  br label %2366

2366:                                             ; preds = %2365
  %2367 = load i32, ptr @test_count, align 4, !tbaa !5
  %2368 = add nsw i32 %2367, 1
  store i32 %2368, ptr @test_count, align 4, !tbaa !5
  %2369 = load i8, ptr @async_callback_invoked, align 1, !tbaa !11, !range !13, !noundef !14
  %2370 = trunc i8 %2369 to i1
  br i1 %2370, label %2424, label %2371

2371:                                             ; preds = %2366
  br label %2372

2372:                                             ; preds = %2371
  br label %2373

2373:                                             ; preds = %2372
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #9
  %2374 = call ptr @__errno_location() #10
  %2375 = load i32, ptr %2374, align 4, !tbaa !5
  store i32 %2375, ptr %53, align 4, !tbaa !5
  %2376 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2377 = call i32 @s2n_print_stacktrace(ptr noundef %2376)
  %2378 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2379 = trunc i8 %2378 to i1
  br i1 %2379, label %2380, label %2402

2380:                                             ; preds = %2373
  %2381 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2382 = call i32 @fileno(ptr noundef %2381) #9
  %2383 = call i32 @isatty(i32 noundef %2382) #9
  %2384 = icmp ne i32 %2383, 0
  br i1 %2384, label %2385, label %2402

2385:                                             ; preds = %2380
  %2386 = load i32, ptr %53, align 4, !tbaa !5
  %2387 = call ptr @__errno_location() #10
  store i32 %2386, ptr %2387, align 4, !tbaa !5
  %2388 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2389 = load i32, ptr @test_count, align 4, !tbaa !5
  %2390 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2391 = load i32, ptr %2390, align 4, !tbaa !5
  %2392 = call ptr @s2n_strerror(i32 noundef %2391, ptr noundef @.str.3)
  %2393 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2394 = load i32, ptr %2393, align 4, !tbaa !5
  %2395 = call ptr @s2n_strerror_debug(i32 noundef %2394, ptr noundef @.str.3)
  %2396 = call ptr @__errno_location() #10
  %2397 = load i32, ptr %2396, align 4, !tbaa !5
  %2398 = call ptr @strerror(i32 noundef %2397) #9
  %2399 = call ptr @__errno_location() #10
  %2400 = load i32, ptr %2399, align 4, !tbaa !5
  %2401 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2388, ptr noundef @.str, i32 noundef %2389, ptr noundef @.str.47, ptr noundef @.str.2, i32 noundef 243, ptr noundef %2392, ptr noundef %2395, ptr noundef %2398, i32 noundef %2400) #9
  br label %2419

2402:                                             ; preds = %2380, %2373
  %2403 = load i32, ptr %53, align 4, !tbaa !5
  %2404 = call ptr @__errno_location() #10
  store i32 %2403, ptr %2404, align 4, !tbaa !5
  %2405 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2406 = load i32, ptr @test_count, align 4, !tbaa !5
  %2407 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2408 = load i32, ptr %2407, align 4, !tbaa !5
  %2409 = call ptr @s2n_strerror(i32 noundef %2408, ptr noundef @.str.3)
  %2410 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2411 = load i32, ptr %2410, align 4, !tbaa !5
  %2412 = call ptr @s2n_strerror_debug(i32 noundef %2411, ptr noundef @.str.3)
  %2413 = call ptr @__errno_location() #10
  %2414 = load i32, ptr %2413, align 4, !tbaa !5
  %2415 = call ptr @strerror(i32 noundef %2414) #9
  %2416 = call ptr @__errno_location() #10
  %2417 = load i32, ptr %2416, align 4, !tbaa !5
  %2418 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2405, ptr noundef @.str.4, i32 noundef %2406, ptr noundef @.str.47, ptr noundef @.str.2, i32 noundef 243, ptr noundef %2409, ptr noundef %2412, ptr noundef %2415, i32 noundef %2417) #9
  br label %2419

2419:                                             ; preds = %2402, %2385
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #9
  br label %2420

2420:                                             ; preds = %2419
  br label %2421

2421:                                             ; preds = %2420
  call void @exit(i32 noundef 1) #11
  unreachable

2422:                                             ; No predecessors!
  br label %2423

2423:                                             ; preds = %2422
  br label %2424

2424:                                             ; preds = %2423, %2366
  br label %2425

2425:                                             ; preds = %2424
  br label %2426

2426:                                             ; preds = %2425
  br label %2427

2427:                                             ; preds = %2426
  %2428 = load i32, ptr @test_count, align 4, !tbaa !5
  %2429 = add nsw i32 %2428, 1
  store i32 %2429, ptr @test_count, align 4, !tbaa !5
  %2430 = load ptr, ptr %44, align 8, !tbaa !9
  %2431 = call i32 @s2n_connection_client_cert_used(ptr noundef %2430)
  %2432 = icmp ne i32 %2431, 0
  br i1 %2432, label %2486, label %2433

2433:                                             ; preds = %2427
  br label %2434

2434:                                             ; preds = %2433
  br label %2435

2435:                                             ; preds = %2434
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #9
  %2436 = call ptr @__errno_location() #10
  %2437 = load i32, ptr %2436, align 4, !tbaa !5
  store i32 %2437, ptr %54, align 4, !tbaa !5
  %2438 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2439 = call i32 @s2n_print_stacktrace(ptr noundef %2438)
  %2440 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2441 = trunc i8 %2440 to i1
  br i1 %2441, label %2442, label %2464

2442:                                             ; preds = %2435
  %2443 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2444 = call i32 @fileno(ptr noundef %2443) #9
  %2445 = call i32 @isatty(i32 noundef %2444) #9
  %2446 = icmp ne i32 %2445, 0
  br i1 %2446, label %2447, label %2464

2447:                                             ; preds = %2442
  %2448 = load i32, ptr %54, align 4, !tbaa !5
  %2449 = call ptr @__errno_location() #10
  store i32 %2448, ptr %2449, 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 @.str.3)
  %2455 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2456 = load i32, ptr %2455, align 4, !tbaa !5
  %2457 = call ptr @s2n_strerror_debug(i32 noundef %2456, ptr noundef @.str.3)
  %2458 = call ptr @__errno_location() #10
  %2459 = load i32, ptr %2458, align 4, !tbaa !5
  %2460 = call ptr @strerror(i32 noundef %2459) #9
  %2461 = call ptr @__errno_location() #10
  %2462 = load i32, ptr %2461, align 4, !tbaa !5
  %2463 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2450, ptr noundef @.str, i32 noundef %2451, ptr noundef @.str.48, ptr noundef @.str.2, i32 noundef 246, ptr noundef %2454, ptr noundef %2457, ptr noundef %2460, i32 noundef %2462) #9
  br label %2481

2464:                                             ; preds = %2442, %2435
  %2465 = load i32, ptr %54, align 4, !tbaa !5
  %2466 = call ptr @__errno_location() #10
  store i32 %2465, ptr %2466, align 4, !tbaa !5
  %2467 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2468 = load i32, ptr @test_count, align 4, !tbaa !5
  %2469 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2470 = load i32, ptr %2469, align 4, !tbaa !5
  %2471 = call ptr @s2n_strerror(i32 noundef %2470, ptr noundef @.str.3)
  %2472 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2473 = load i32, ptr %2472, align 4, !tbaa !5
  %2474 = call ptr @s2n_strerror_debug(i32 noundef %2473, ptr noundef @.str.3)
  %2475 = call ptr @__errno_location() #10
  %2476 = load i32, ptr %2475, align 4, !tbaa !5
  %2477 = call ptr @strerror(i32 noundef %2476) #9
  %2478 = call ptr @__errno_location() #10
  %2479 = load i32, ptr %2478, align 4, !tbaa !5
  %2480 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2467, ptr noundef @.str.4, i32 noundef %2468, ptr noundef @.str.48, ptr noundef @.str.2, i32 noundef 246, ptr noundef %2471, ptr noundef %2474, ptr noundef %2477, i32 noundef %2479) #9
  br label %2481

2481:                                             ; preds = %2464, %2447
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #9
  br label %2482

2482:                                             ; preds = %2481
  br label %2483

2483:                                             ; preds = %2482
  call void @exit(i32 noundef 1) #11
  unreachable

2484:                                             ; No predecessors!
  br label %2485

2485:                                             ; preds = %2484
  br label %2486

2486:                                             ; preds = %2485, %2427
  br label %2487

2487:                                             ; preds = %2486
  br label %2488

2488:                                             ; preds = %2487
  br label %2489

2489:                                             ; preds = %2488
  %2490 = load i32, ptr @test_count, align 4, !tbaa !5
  %2491 = add nsw i32 %2490, 1
  store i32 %2491, ptr @test_count, align 4, !tbaa !5
  %2492 = load ptr, ptr %36, align 8, !tbaa !9
  %2493 = call i32 @s2n_connection_client_cert_used(ptr noundef %2492)
  %2494 = icmp ne i32 %2493, 0
  br i1 %2494, label %2548, label %2495

2495:                                             ; preds = %2489
  br label %2496

2496:                                             ; preds = %2495
  br label %2497

2497:                                             ; preds = %2496
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #9
  %2498 = call ptr @__errno_location() #10
  %2499 = load i32, ptr %2498, align 4, !tbaa !5
  store i32 %2499, ptr %55, align 4, !tbaa !5
  %2500 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2501 = call i32 @s2n_print_stacktrace(ptr noundef %2500)
  %2502 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2503 = trunc i8 %2502 to i1
  br i1 %2503, label %2504, label %2526

2504:                                             ; preds = %2497
  %2505 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2506 = call i32 @fileno(ptr noundef %2505) #9
  %2507 = call i32 @isatty(i32 noundef %2506) #9
  %2508 = icmp ne i32 %2507, 0
  br i1 %2508, label %2509, label %2526

2509:                                             ; preds = %2504
  %2510 = load i32, ptr %55, align 4, !tbaa !5
  %2511 = call ptr @__errno_location() #10
  store i32 %2510, ptr %2511, align 4, !tbaa !5
  %2512 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2513 = load i32, ptr @test_count, align 4, !tbaa !5
  %2514 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2515 = load i32, ptr %2514, align 4, !tbaa !5
  %2516 = call ptr @s2n_strerror(i32 noundef %2515, ptr noundef @.str.3)
  %2517 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2518 = load i32, ptr %2517, align 4, !tbaa !5
  %2519 = call ptr @s2n_strerror_debug(i32 noundef %2518, ptr noundef @.str.3)
  %2520 = call ptr @__errno_location() #10
  %2521 = load i32, ptr %2520, align 4, !tbaa !5
  %2522 = call ptr @strerror(i32 noundef %2521) #9
  %2523 = call ptr @__errno_location() #10
  %2524 = load i32, ptr %2523, align 4, !tbaa !5
  %2525 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2512, ptr noundef @.str, i32 noundef %2513, ptr noundef @.str.49, ptr noundef @.str.2, i32 noundef 247, ptr noundef %2516, ptr noundef %2519, ptr noundef %2522, i32 noundef %2524) #9
  br label %2543

2526:                                             ; preds = %2504, %2497
  %2527 = load i32, ptr %55, align 4, !tbaa !5
  %2528 = call ptr @__errno_location() #10
  store i32 %2527, ptr %2528, align 4, !tbaa !5
  %2529 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2530 = load i32, ptr @test_count, align 4, !tbaa !5
  %2531 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2532 = load i32, ptr %2531, align 4, !tbaa !5
  %2533 = call ptr @s2n_strerror(i32 noundef %2532, ptr noundef @.str.3)
  %2534 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2535 = load i32, ptr %2534, align 4, !tbaa !5
  %2536 = call ptr @s2n_strerror_debug(i32 noundef %2535, ptr noundef @.str.3)
  %2537 = call ptr @__errno_location() #10
  %2538 = load i32, ptr %2537, align 4, !tbaa !5
  %2539 = call ptr @strerror(i32 noundef %2538) #9
  %2540 = call ptr @__errno_location() #10
  %2541 = load i32, ptr %2540, align 4, !tbaa !5
  %2542 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2529, ptr noundef @.str.4, i32 noundef %2530, ptr noundef @.str.49, ptr noundef @.str.2, i32 noundef 247, ptr noundef %2533, ptr noundef %2536, ptr noundef %2539, i32 noundef %2541) #9
  br label %2543

2543:                                             ; preds = %2526, %2509
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #9
  br label %2544

2544:                                             ; preds = %2543
  br label %2545

2545:                                             ; preds = %2544
  call void @exit(i32 noundef 1) #11
  unreachable

2546:                                             ; No predecessors!
  br label %2547

2547:                                             ; preds = %2546
  br label %2548

2548:                                             ; preds = %2547, %2489
  br label %2549

2549:                                             ; preds = %2548
  br label %2550

2550:                                             ; preds = %2549
  br label %2551

2551:                                             ; preds = %2550
  %2552 = load i32, ptr @test_count, align 4, !tbaa !5
  %2553 = add nsw i32 %2552, 1
  store i32 %2553, ptr @test_count, align 4, !tbaa !5
  %2554 = load ptr, ptr %36, align 8, !tbaa !9
  %2555 = getelementptr inbounds %struct.s2n_connection, ptr %2554, i32 0, i32 23
  %2556 = load i8, ptr %2555, align 4, !tbaa !52
  %2557 = zext i8 %2556 to i32
  %2558 = icmp eq i32 %2557, 33
  br i1 %2558, label %2612, label %2559

2559:                                             ; preds = %2551
  br label %2560

2560:                                             ; preds = %2559
  br label %2561

2561:                                             ; preds = %2560
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #9
  %2562 = call ptr @__errno_location() #10
  %2563 = load i32, ptr %2562, align 4, !tbaa !5
  store i32 %2563, ptr %56, align 4, !tbaa !5
  %2564 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2565 = call i32 @s2n_print_stacktrace(ptr noundef %2564)
  %2566 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2567 = trunc i8 %2566 to i1
  br i1 %2567, label %2568, label %2590

2568:                                             ; preds = %2561
  %2569 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2570 = call i32 @fileno(ptr noundef %2569) #9
  %2571 = call i32 @isatty(i32 noundef %2570) #9
  %2572 = icmp ne i32 %2571, 0
  br i1 %2572, label %2573, label %2590

2573:                                             ; preds = %2568
  %2574 = load i32, ptr %56, align 4, !tbaa !5
  %2575 = call ptr @__errno_location() #10
  store i32 %2574, ptr %2575, align 4, !tbaa !5
  %2576 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2577 = load i32, ptr @test_count, align 4, !tbaa !5
  %2578 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2579 = load i32, ptr %2578, align 4, !tbaa !5
  %2580 = call ptr @s2n_strerror(i32 noundef %2579, ptr noundef @.str.3)
  %2581 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2582 = load i32, ptr %2581, align 4, !tbaa !5
  %2583 = call ptr @s2n_strerror_debug(i32 noundef %2582, ptr noundef @.str.3)
  %2584 = call ptr @__errno_location() #10
  %2585 = load i32, ptr %2584, align 4, !tbaa !5
  %2586 = call ptr @strerror(i32 noundef %2585) #9
  %2587 = call ptr @__errno_location() #10
  %2588 = load i32, ptr %2587, align 4, !tbaa !5
  %2589 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2576, ptr noundef @.str, i32 noundef %2577, ptr noundef @.str.50, ptr noundef @.str.2, i32 noundef 248, ptr noundef %2580, ptr noundef %2583, ptr noundef %2586, i32 noundef %2588) #9
  br label %2607

2590:                                             ; preds = %2568, %2561
  %2591 = load i32, ptr %56, align 4, !tbaa !5
  %2592 = call ptr @__errno_location() #10
  store i32 %2591, ptr %2592, align 4, !tbaa !5
  %2593 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2594 = load i32, ptr @test_count, align 4, !tbaa !5
  %2595 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2596 = load i32, ptr %2595, align 4, !tbaa !5
  %2597 = call ptr @s2n_strerror(i32 noundef %2596, ptr noundef @.str.3)
  %2598 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2599 = load i32, ptr %2598, align 4, !tbaa !5
  %2600 = call ptr @s2n_strerror_debug(i32 noundef %2599, ptr noundef @.str.3)
  %2601 = call ptr @__errno_location() #10
  %2602 = load i32, ptr %2601, align 4, !tbaa !5
  %2603 = call ptr @strerror(i32 noundef %2602) #9
  %2604 = call ptr @__errno_location() #10
  %2605 = load i32, ptr %2604, align 4, !tbaa !5
  %2606 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2593, ptr noundef @.str.4, i32 noundef %2594, ptr noundef @.str.50, ptr noundef @.str.2, i32 noundef 248, ptr noundef %2597, ptr noundef %2600, ptr noundef %2603, i32 noundef %2605) #9
  br label %2607

2607:                                             ; preds = %2590, %2573
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #9
  br label %2608

2608:                                             ; preds = %2607
  br label %2609

2609:                                             ; preds = %2608
  call void @exit(i32 noundef 1) #11
  unreachable

2610:                                             ; No predecessors!
  br label %2611

2611:                                             ; preds = %2610
  br label %2612

2612:                                             ; preds = %2611, %2551
  br label %2613

2613:                                             ; preds = %2612
  br label %2614

2614:                                             ; preds = %2613
  br label %2615

2615:                                             ; preds = %2614
  %2616 = load i32, ptr @test_count, align 4, !tbaa !5
  %2617 = add nsw i32 %2616, 1
  store i32 %2617, ptr @test_count, align 4, !tbaa !5
  %2618 = load ptr, ptr %44, align 8, !tbaa !9
  %2619 = getelementptr inbounds %struct.s2n_connection, ptr %2618, i32 0, i32 23
  %2620 = load i8, ptr %2619, align 4, !tbaa !52
  %2621 = zext i8 %2620 to i32
  %2622 = icmp eq i32 %2621, 33
  br i1 %2622, label %2676, label %2623

2623:                                             ; preds = %2615
  br label %2624

2624:                                             ; preds = %2623
  br label %2625

2625:                                             ; preds = %2624
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #9
  %2626 = call ptr @__errno_location() #10
  %2627 = load i32, ptr %2626, align 4, !tbaa !5
  store i32 %2627, ptr %57, align 4, !tbaa !5
  %2628 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2629 = call i32 @s2n_print_stacktrace(ptr noundef %2628)
  %2630 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2631 = trunc i8 %2630 to i1
  br i1 %2631, label %2632, label %2654

2632:                                             ; preds = %2625
  %2633 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2634 = call i32 @fileno(ptr noundef %2633) #9
  %2635 = call i32 @isatty(i32 noundef %2634) #9
  %2636 = icmp ne i32 %2635, 0
  br i1 %2636, label %2637, label %2654

2637:                                             ; preds = %2632
  %2638 = load i32, ptr %57, align 4, !tbaa !5
  %2639 = call ptr @__errno_location() #10
  store i32 %2638, ptr %2639, align 4, !tbaa !5
  %2640 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2641 = load i32, ptr @test_count, align 4, !tbaa !5
  %2642 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2643 = load i32, ptr %2642, align 4, !tbaa !5
  %2644 = call ptr @s2n_strerror(i32 noundef %2643, ptr noundef @.str.3)
  %2645 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2646 = load i32, ptr %2645, align 4, !tbaa !5
  %2647 = call ptr @s2n_strerror_debug(i32 noundef %2646, ptr noundef @.str.3)
  %2648 = call ptr @__errno_location() #10
  %2649 = load i32, ptr %2648, align 4, !tbaa !5
  %2650 = call ptr @strerror(i32 noundef %2649) #9
  %2651 = call ptr @__errno_location() #10
  %2652 = load i32, ptr %2651, align 4, !tbaa !5
  %2653 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2640, ptr noundef @.str, i32 noundef %2641, ptr noundef @.str.51, ptr noundef @.str.2, i32 noundef 249, ptr noundef %2644, ptr noundef %2647, ptr noundef %2650, i32 noundef %2652) #9
  br label %2671

2654:                                             ; preds = %2632, %2625
  %2655 = load i32, ptr %57, align 4, !tbaa !5
  %2656 = call ptr @__errno_location() #10
  store i32 %2655, ptr %2656, align 4, !tbaa !5
  %2657 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2658 = load i32, ptr @test_count, align 4, !tbaa !5
  %2659 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2660 = load i32, ptr %2659, align 4, !tbaa !5
  %2661 = call ptr @s2n_strerror(i32 noundef %2660, ptr noundef @.str.3)
  %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_debug(i32 noundef %2663, ptr noundef @.str.3)
  %2665 = call ptr @__errno_location() #10
  %2666 = load i32, ptr %2665, align 4, !tbaa !5
  %2667 = call ptr @strerror(i32 noundef %2666) #9
  %2668 = call ptr @__errno_location() #10
  %2669 = load i32, ptr %2668, align 4, !tbaa !5
  %2670 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2657, ptr noundef @.str.4, i32 noundef %2658, ptr noundef @.str.51, ptr noundef @.str.2, i32 noundef 249, ptr noundef %2661, ptr noundef %2664, ptr noundef %2667, i32 noundef %2669) #9
  br label %2671

2671:                                             ; preds = %2654, %2637
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #9
  br label %2672

2672:                                             ; preds = %2671
  br label %2673

2673:                                             ; preds = %2672
  call void @exit(i32 noundef 1) #11
  unreachable

2674:                                             ; No predecessors!
  br label %2675

2675:                                             ; preds = %2674
  br label %2676

2676:                                             ; preds = %2675, %2615
  br label %2677

2677:                                             ; preds = %2676
  br label %2678

2678:                                             ; preds = %2677
  br label %2679

2679:                                             ; preds = %2678
  %2680 = load i32, ptr @test_count, align 4, !tbaa !5
  %2681 = add nsw i32 %2680, 1
  store i32 %2681, ptr @test_count, align 4, !tbaa !5
  %2682 = load ptr, ptr %44, align 8, !tbaa !9
  %2683 = call i32 @s2n_connection_free(ptr noundef %2682)
  %2684 = icmp eq i32 %2683, -1
  br i1 %2684, label %2685, label %2738

2685:                                             ; preds = %2679
  br label %2686

2686:                                             ; preds = %2685
  br label %2687

2687:                                             ; preds = %2686
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #9
  %2688 = call ptr @__errno_location() #10
  %2689 = load i32, ptr %2688, align 4, !tbaa !5
  store i32 %2689, ptr %58, align 4, !tbaa !5
  %2690 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2691 = call i32 @s2n_print_stacktrace(ptr noundef %2690)
  %2692 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2693 = trunc i8 %2692 to i1
  br i1 %2693, label %2694, label %2716

2694:                                             ; preds = %2687
  %2695 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2696 = call i32 @fileno(ptr noundef %2695) #9
  %2697 = call i32 @isatty(i32 noundef %2696) #9
  %2698 = icmp ne i32 %2697, 0
  br i1 %2698, label %2699, label %2716

2699:                                             ; preds = %2694
  %2700 = load i32, ptr %58, align 4, !tbaa !5
  %2701 = call ptr @__errno_location() #10
  store i32 %2700, ptr %2701, align 4, !tbaa !5
  %2702 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2703 = load i32, ptr @test_count, align 4, !tbaa !5
  %2704 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2705 = load i32, ptr %2704, align 4, !tbaa !5
  %2706 = call ptr @s2n_strerror(i32 noundef %2705, ptr noundef @.str.3)
  %2707 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2708 = load i32, ptr %2707, align 4, !tbaa !5
  %2709 = call ptr @s2n_strerror_debug(i32 noundef %2708, ptr noundef @.str.3)
  %2710 = call ptr @__errno_location() #10
  %2711 = load i32, ptr %2710, align 4, !tbaa !5
  %2712 = call ptr @strerror(i32 noundef %2711) #9
  %2713 = call ptr @__errno_location() #10
  %2714 = load i32, ptr %2713, align 4, !tbaa !5
  %2715 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2702, ptr noundef @.str, i32 noundef %2703, ptr noundef @.str.52, ptr noundef @.str.2, i32 noundef 252, ptr noundef %2706, ptr noundef %2709, ptr noundef %2712, i32 noundef %2714) #9
  br label %2733

2716:                                             ; preds = %2694, %2687
  %2717 = load i32, ptr %58, align 4, !tbaa !5
  %2718 = call ptr @__errno_location() #10
  store i32 %2717, ptr %2718, align 4, !tbaa !5
  %2719 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2720 = load i32, ptr @test_count, align 4, !tbaa !5
  %2721 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2722 = load i32, ptr %2721, align 4, !tbaa !5
  %2723 = call ptr @s2n_strerror(i32 noundef %2722, ptr noundef @.str.3)
  %2724 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2725 = load i32, ptr %2724, align 4, !tbaa !5
  %2726 = call ptr @s2n_strerror_debug(i32 noundef %2725, ptr noundef @.str.3)
  %2727 = call ptr @__errno_location() #10
  %2728 = load i32, ptr %2727, align 4, !tbaa !5
  %2729 = call ptr @strerror(i32 noundef %2728) #9
  %2730 = call ptr @__errno_location() #10
  %2731 = load i32, ptr %2730, align 4, !tbaa !5
  %2732 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2719, ptr noundef @.str.4, i32 noundef %2720, ptr noundef @.str.52, ptr noundef @.str.2, i32 noundef 252, ptr noundef %2723, ptr noundef %2726, ptr noundef %2729, i32 noundef %2731) #9
  br label %2733

2733:                                             ; preds = %2716, %2699
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #9
  br label %2734

2734:                                             ; preds = %2733
  br label %2735

2735:                                             ; preds = %2734
  call void @exit(i32 noundef 1) #11
  unreachable

2736:                                             ; No predecessors!
  br label %2737

2737:                                             ; preds = %2736
  br label %2738

2738:                                             ; preds = %2737, %2679
  br label %2739

2739:                                             ; preds = %2738
  br label %2740

2740:                                             ; preds = %2739
  br label %2741

2741:                                             ; preds = %2740
  %2742 = load i32, ptr @test_count, align 4, !tbaa !5
  %2743 = add nsw i32 %2742, 1
  store i32 %2743, ptr @test_count, align 4, !tbaa !5
  %2744 = load ptr, ptr %36, align 8, !tbaa !9
  %2745 = call i32 @s2n_connection_free(ptr noundef %2744)
  %2746 = icmp eq i32 %2745, -1
  br i1 %2746, label %2747, label %2800

2747:                                             ; preds = %2741
  br label %2748

2748:                                             ; preds = %2747
  br label %2749

2749:                                             ; preds = %2748
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #9
  %2750 = call ptr @__errno_location() #10
  %2751 = load i32, ptr %2750, align 4, !tbaa !5
  store i32 %2751, ptr %59, align 4, !tbaa !5
  %2752 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2753 = call i32 @s2n_print_stacktrace(ptr noundef %2752)
  %2754 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2755 = trunc i8 %2754 to i1
  br i1 %2755, label %2756, label %2778

2756:                                             ; preds = %2749
  %2757 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2758 = call i32 @fileno(ptr noundef %2757) #9
  %2759 = call i32 @isatty(i32 noundef %2758) #9
  %2760 = icmp ne i32 %2759, 0
  br i1 %2760, label %2761, label %2778

2761:                                             ; preds = %2756
  %2762 = load i32, ptr %59, align 4, !tbaa !5
  %2763 = call ptr @__errno_location() #10
  store i32 %2762, ptr %2763, align 4, !tbaa !5
  %2764 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2765 = load i32, ptr @test_count, align 4, !tbaa !5
  %2766 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2767 = load i32, ptr %2766, align 4, !tbaa !5
  %2768 = call ptr @s2n_strerror(i32 noundef %2767, ptr noundef @.str.3)
  %2769 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2770 = load i32, ptr %2769, align 4, !tbaa !5
  %2771 = call ptr @s2n_strerror_debug(i32 noundef %2770, ptr noundef @.str.3)
  %2772 = call ptr @__errno_location() #10
  %2773 = load i32, ptr %2772, align 4, !tbaa !5
  %2774 = call ptr @strerror(i32 noundef %2773) #9
  %2775 = call ptr @__errno_location() #10
  %2776 = load i32, ptr %2775, align 4, !tbaa !5
  %2777 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2764, ptr noundef @.str, i32 noundef %2765, ptr noundef @.str.53, ptr noundef @.str.2, i32 noundef 253, ptr noundef %2768, ptr noundef %2771, ptr noundef %2774, i32 noundef %2776) #9
  br label %2795

2778:                                             ; preds = %2756, %2749
  %2779 = load i32, ptr %59, align 4, !tbaa !5
  %2780 = call ptr @__errno_location() #10
  store i32 %2779, ptr %2780, align 4, !tbaa !5
  %2781 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2782 = load i32, ptr @test_count, align 4, !tbaa !5
  %2783 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2784 = load i32, ptr %2783, align 4, !tbaa !5
  %2785 = call ptr @s2n_strerror(i32 noundef %2784, ptr noundef @.str.3)
  %2786 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2787 = load i32, ptr %2786, align 4, !tbaa !5
  %2788 = call ptr @s2n_strerror_debug(i32 noundef %2787, ptr noundef @.str.3)
  %2789 = call ptr @__errno_location() #10
  %2790 = load i32, ptr %2789, align 4, !tbaa !5
  %2791 = call ptr @strerror(i32 noundef %2790) #9
  %2792 = call ptr @__errno_location() #10
  %2793 = load i32, ptr %2792, align 4, !tbaa !5
  %2794 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2781, ptr noundef @.str.4, i32 noundef %2782, ptr noundef @.str.53, ptr noundef @.str.2, i32 noundef 253, ptr noundef %2785, ptr noundef %2788, ptr noundef %2791, i32 noundef %2793) #9
  br label %2795

2795:                                             ; preds = %2778, %2761
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #9
  br label %2796

2796:                                             ; preds = %2795
  br label %2797

2797:                                             ; preds = %2796
  call void @exit(i32 noundef 1) #11
  unreachable

2798:                                             ; No predecessors!
  br label %2799

2799:                                             ; preds = %2798
  br label %2800

2800:                                             ; preds = %2799, %2741
  br label %2801

2801:                                             ; preds = %2800
  br label %2802

2802:                                             ; preds = %2801
  br label %2803

2803:                                             ; preds = %2802
  %2804 = load i32, ptr @test_count, align 4, !tbaa !5
  %2805 = add nsw i32 %2804, 1
  store i32 %2805, ptr @test_count, align 4, !tbaa !5
  %2806 = call i32 @s2n_io_pair_close(ptr noundef %48)
  %2807 = icmp eq i32 %2806, -1
  br i1 %2807, label %2808, label %2861

2808:                                             ; preds = %2803
  br label %2809

2809:                                             ; preds = %2808
  br label %2810

2810:                                             ; preds = %2809
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #9
  %2811 = call ptr @__errno_location() #10
  %2812 = load i32, ptr %2811, align 4, !tbaa !5
  store i32 %2812, ptr %60, align 4, !tbaa !5
  %2813 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2814 = call i32 @s2n_print_stacktrace(ptr noundef %2813)
  %2815 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2816 = trunc i8 %2815 to i1
  br i1 %2816, label %2817, label %2839

2817:                                             ; preds = %2810
  %2818 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2819 = call i32 @fileno(ptr noundef %2818) #9
  %2820 = call i32 @isatty(i32 noundef %2819) #9
  %2821 = icmp ne i32 %2820, 0
  br i1 %2821, label %2822, label %2839

2822:                                             ; preds = %2817
  %2823 = load i32, ptr %60, align 4, !tbaa !5
  %2824 = call ptr @__errno_location() #10
  store i32 %2823, ptr %2824, align 4, !tbaa !5
  %2825 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2826 = load i32, ptr @test_count, align 4, !tbaa !5
  %2827 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2828 = load i32, ptr %2827, align 4, !tbaa !5
  %2829 = call ptr @s2n_strerror(i32 noundef %2828, ptr noundef @.str.3)
  %2830 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2831 = load i32, ptr %2830, align 4, !tbaa !5
  %2832 = call ptr @s2n_strerror_debug(i32 noundef %2831, ptr noundef @.str.3)
  %2833 = call ptr @__errno_location() #10
  %2834 = load i32, ptr %2833, align 4, !tbaa !5
  %2835 = call ptr @strerror(i32 noundef %2834) #9
  %2836 = call ptr @__errno_location() #10
  %2837 = load i32, ptr %2836, align 4, !tbaa !5
  %2838 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2825, ptr noundef @.str, i32 noundef %2826, ptr noundef @.str.54, ptr noundef @.str.2, i32 noundef 254, ptr noundef %2829, ptr noundef %2832, ptr noundef %2835, i32 noundef %2837) #9
  br label %2856

2839:                                             ; preds = %2817, %2810
  %2840 = load i32, ptr %60, align 4, !tbaa !5
  %2841 = call ptr @__errno_location() #10
  store i32 %2840, ptr %2841, align 4, !tbaa !5
  %2842 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2843 = load i32, ptr @test_count, align 4, !tbaa !5
  %2844 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2845 = load i32, ptr %2844, align 4, !tbaa !5
  %2846 = call ptr @s2n_strerror(i32 noundef %2845, ptr noundef @.str.3)
  %2847 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2848 = load i32, ptr %2847, align 4, !tbaa !5
  %2849 = call ptr @s2n_strerror_debug(i32 noundef %2848, ptr noundef @.str.3)
  %2850 = call ptr @__errno_location() #10
  %2851 = load i32, ptr %2850, align 4, !tbaa !5
  %2852 = call ptr @strerror(i32 noundef %2851) #9
  %2853 = call ptr @__errno_location() #10
  %2854 = load i32, ptr %2853, align 4, !tbaa !5
  %2855 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2842, ptr noundef @.str.4, i32 noundef %2843, ptr noundef @.str.54, ptr noundef @.str.2, i32 noundef 254, ptr noundef %2846, ptr noundef %2849, ptr noundef %2852, i32 noundef %2854) #9
  br label %2856

2856:                                             ; preds = %2839, %2822
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #9
  br label %2857

2857:                                             ; preds = %2856
  br label %2858

2858:                                             ; preds = %2857
  call void @exit(i32 noundef 1) #11
  unreachable

2859:                                             ; No predecessors!
  br label %2860

2860:                                             ; preds = %2859
  br label %2861

2861:                                             ; preds = %2860, %2803
  br label %2862

2862:                                             ; preds = %2861
  br label %2863

2863:                                             ; preds = %2862
  br label %2864

2864:                                             ; preds = %2863
  %2865 = load i32, ptr @test_count, align 4, !tbaa !5
  %2866 = add nsw i32 %2865, 1
  store i32 %2866, ptr @test_count, align 4, !tbaa !5
  %2867 = load ptr, ptr %29, align 8, !tbaa !9
  %2868 = call i32 @s2n_config_free(ptr noundef %2867)
  %2869 = icmp eq i32 %2868, -1
  br i1 %2869, label %2870, label %2923

2870:                                             ; preds = %2864
  br label %2871

2871:                                             ; preds = %2870
  br label %2872

2872:                                             ; preds = %2871
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #9
  %2873 = call ptr @__errno_location() #10
  %2874 = load i32, ptr %2873, align 4, !tbaa !5
  store i32 %2874, ptr %61, align 4, !tbaa !5
  %2875 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2876 = call i32 @s2n_print_stacktrace(ptr noundef %2875)
  %2877 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2878 = trunc i8 %2877 to i1
  br i1 %2878, label %2879, label %2901

2879:                                             ; preds = %2872
  %2880 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2881 = call i32 @fileno(ptr noundef %2880) #9
  %2882 = call i32 @isatty(i32 noundef %2881) #9
  %2883 = icmp ne i32 %2882, 0
  br i1 %2883, label %2884, label %2901

2884:                                             ; preds = %2879
  %2885 = load i32, ptr %61, align 4, !tbaa !5
  %2886 = call ptr @__errno_location() #10
  store i32 %2885, ptr %2886, align 4, !tbaa !5
  %2887 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2888 = load i32, ptr @test_count, align 4, !tbaa !5
  %2889 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2890 = load i32, ptr %2889, align 4, !tbaa !5
  %2891 = call ptr @s2n_strerror(i32 noundef %2890, ptr noundef @.str.3)
  %2892 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2893 = load i32, ptr %2892, align 4, !tbaa !5
  %2894 = call ptr @s2n_strerror_debug(i32 noundef %2893, ptr noundef @.str.3)
  %2895 = call ptr @__errno_location() #10
  %2896 = load i32, ptr %2895, align 4, !tbaa !5
  %2897 = call ptr @strerror(i32 noundef %2896) #9
  %2898 = call ptr @__errno_location() #10
  %2899 = load i32, ptr %2898, align 4, !tbaa !5
  %2900 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2887, ptr noundef @.str, i32 noundef %2888, ptr noundef @.str.55, ptr noundef @.str.2, i32 noundef 255, ptr noundef %2891, ptr noundef %2894, ptr noundef %2897, i32 noundef %2899) #9
  br label %2918

2901:                                             ; preds = %2879, %2872
  %2902 = load i32, ptr %61, align 4, !tbaa !5
  %2903 = call ptr @__errno_location() #10
  store i32 %2902, ptr %2903, align 4, !tbaa !5
  %2904 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2905 = load i32, ptr @test_count, align 4, !tbaa !5
  %2906 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2907 = load i32, ptr %2906, align 4, !tbaa !5
  %2908 = call ptr @s2n_strerror(i32 noundef %2907, ptr noundef @.str.3)
  %2909 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2910 = load i32, ptr %2909, align 4, !tbaa !5
  %2911 = call ptr @s2n_strerror_debug(i32 noundef %2910, ptr noundef @.str.3)
  %2912 = call ptr @__errno_location() #10
  %2913 = load i32, ptr %2912, align 4, !tbaa !5
  %2914 = call ptr @strerror(i32 noundef %2913) #9
  %2915 = call ptr @__errno_location() #10
  %2916 = load i32, ptr %2915, align 4, !tbaa !5
  %2917 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2904, ptr noundef @.str.4, i32 noundef %2905, ptr noundef @.str.55, ptr noundef @.str.2, i32 noundef 255, ptr noundef %2908, ptr noundef %2911, ptr noundef %2914, i32 noundef %2916) #9
  br label %2918

2918:                                             ; preds = %2901, %2884
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #9
  br label %2919

2919:                                             ; preds = %2918
  br label %2920

2920:                                             ; preds = %2919
  call void @exit(i32 noundef 1) #11
  unreachable

2921:                                             ; No predecessors!
  br label %2922

2922:                                             ; preds = %2921
  br label %2923

2923:                                             ; preds = %2922, %2864
  br label %2924

2924:                                             ; preds = %2923
  br label %2925

2925:                                             ; preds = %2924
  br label %2926

2926:                                             ; preds = %2925
  %2927 = load i32, ptr @test_count, align 4, !tbaa !5
  %2928 = add nsw i32 %2927, 1
  store i32 %2928, ptr @test_count, align 4, !tbaa !5
  %2929 = load ptr, ptr %40, align 8, !tbaa !9
  %2930 = call i32 @s2n_config_free(ptr noundef %2929)
  %2931 = icmp eq i32 %2930, -1
  br i1 %2931, label %2932, label %2985

2932:                                             ; preds = %2926
  br label %2933

2933:                                             ; preds = %2932
  br label %2934

2934:                                             ; preds = %2933
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #9
  %2935 = call ptr @__errno_location() #10
  %2936 = load i32, ptr %2935, align 4, !tbaa !5
  store i32 %2936, ptr %62, align 4, !tbaa !5
  %2937 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2938 = call i32 @s2n_print_stacktrace(ptr noundef %2937)
  %2939 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2940 = trunc i8 %2939 to i1
  br i1 %2940, label %2941, label %2963

2941:                                             ; preds = %2934
  %2942 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2943 = call i32 @fileno(ptr noundef %2942) #9
  %2944 = call i32 @isatty(i32 noundef %2943) #9
  %2945 = icmp ne i32 %2944, 0
  br i1 %2945, label %2946, label %2963

2946:                                             ; preds = %2941
  %2947 = load i32, ptr %62, align 4, !tbaa !5
  %2948 = call ptr @__errno_location() #10
  store i32 %2947, ptr %2948, align 4, !tbaa !5
  %2949 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2950 = load i32, ptr @test_count, align 4, !tbaa !5
  %2951 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2952 = load i32, ptr %2951, align 4, !tbaa !5
  %2953 = call ptr @s2n_strerror(i32 noundef %2952, ptr noundef @.str.3)
  %2954 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2955 = load i32, ptr %2954, align 4, !tbaa !5
  %2956 = call ptr @s2n_strerror_debug(i32 noundef %2955, ptr noundef @.str.3)
  %2957 = call ptr @__errno_location() #10
  %2958 = load i32, ptr %2957, align 4, !tbaa !5
  %2959 = call ptr @strerror(i32 noundef %2958) #9
  %2960 = call ptr @__errno_location() #10
  %2961 = load i32, ptr %2960, align 4, !tbaa !5
  %2962 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2949, ptr noundef @.str, i32 noundef %2950, ptr noundef @.str.56, ptr noundef @.str.2, i32 noundef 256, ptr noundef %2953, ptr noundef %2956, ptr noundef %2959, i32 noundef %2961) #9
  br label %2980

2963:                                             ; preds = %2941, %2934
  %2964 = load i32, ptr %62, align 4, !tbaa !5
  %2965 = call ptr @__errno_location() #10
  store i32 %2964, ptr %2965, align 4, !tbaa !5
  %2966 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2967 = load i32, ptr @test_count, align 4, !tbaa !5
  %2968 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2969 = load i32, ptr %2968, align 4, !tbaa !5
  %2970 = call ptr @s2n_strerror(i32 noundef %2969, ptr noundef @.str.3)
  %2971 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2972 = load i32, ptr %2971, align 4, !tbaa !5
  %2973 = call ptr @s2n_strerror_debug(i32 noundef %2972, ptr noundef @.str.3)
  %2974 = call ptr @__errno_location() #10
  %2975 = load i32, ptr %2974, align 4, !tbaa !5
  %2976 = call ptr @strerror(i32 noundef %2975) #9
  %2977 = call ptr @__errno_location() #10
  %2978 = load i32, ptr %2977, align 4, !tbaa !5
  %2979 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2966, ptr noundef @.str.4, i32 noundef %2967, ptr noundef @.str.56, ptr noundef @.str.2, i32 noundef 256, ptr noundef %2970, ptr noundef %2973, ptr noundef %2976, i32 noundef %2978) #9
  br label %2980

2980:                                             ; preds = %2963, %2946
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #9
  br label %2981

2981:                                             ; preds = %2980
  br label %2982

2982:                                             ; preds = %2981
  call void @exit(i32 noundef 1) #11
  unreachable

2983:                                             ; No predecessors!
  br label %2984

2984:                                             ; preds = %2983
  br label %2985

2985:                                             ; preds = %2984, %2926
  br label %2986

2986:                                             ; preds = %2985
  br label %2987

2987:                                             ; preds = %2986
  br label %2988

2988:                                             ; preds = %2987
  %2989 = load i32, ptr @test_count, align 4, !tbaa !5
  %2990 = add nsw i32 %2989, 1
  store i32 %2990, ptr @test_count, align 4, !tbaa !5
  %2991 = load ptr, ptr %27, align 8, !tbaa !9
  %2992 = call i32 @s2n_cert_chain_and_key_free(ptr noundef %2991)
  %2993 = icmp eq i32 %2992, -1
  br i1 %2993, label %2994, label %3047

2994:                                             ; preds = %2988
  br label %2995

2995:                                             ; preds = %2994
  br label %2996

2996:                                             ; preds = %2995
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #9
  %2997 = call ptr @__errno_location() #10
  %2998 = load i32, ptr %2997, align 4, !tbaa !5
  store i32 %2998, ptr %63, align 4, !tbaa !5
  %2999 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3000 = call i32 @s2n_print_stacktrace(ptr noundef %2999)
  %3001 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3002 = trunc i8 %3001 to i1
  br i1 %3002, label %3003, label %3025

3003:                                             ; preds = %2996
  %3004 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3005 = call i32 @fileno(ptr noundef %3004) #9
  %3006 = call i32 @isatty(i32 noundef %3005) #9
  %3007 = icmp ne i32 %3006, 0
  br i1 %3007, label %3008, label %3025

3008:                                             ; preds = %3003
  %3009 = load i32, ptr %63, align 4, !tbaa !5
  %3010 = call ptr @__errno_location() #10
  store i32 %3009, ptr %3010, align 4, !tbaa !5
  %3011 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3012 = load i32, ptr @test_count, align 4, !tbaa !5
  %3013 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3014 = load i32, ptr %3013, align 4, !tbaa !5
  %3015 = call ptr @s2n_strerror(i32 noundef %3014, ptr noundef @.str.3)
  %3016 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3017 = load i32, ptr %3016, align 4, !tbaa !5
  %3018 = call ptr @s2n_strerror_debug(i32 noundef %3017, ptr noundef @.str.3)
  %3019 = call ptr @__errno_location() #10
  %3020 = load i32, ptr %3019, align 4, !tbaa !5
  %3021 = call ptr @strerror(i32 noundef %3020) #9
  %3022 = call ptr @__errno_location() #10
  %3023 = load i32, ptr %3022, align 4, !tbaa !5
  %3024 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3011, ptr noundef @.str, i32 noundef %3012, ptr noundef @.str.23, ptr noundef @.str.2, i32 noundef 257, ptr noundef %3015, ptr noundef %3018, ptr noundef %3021, i32 noundef %3023) #9
  br label %3042

3025:                                             ; preds = %3003, %2996
  %3026 = load i32, ptr %63, align 4, !tbaa !5
  %3027 = call ptr @__errno_location() #10
  store i32 %3026, ptr %3027, align 4, !tbaa !5
  %3028 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3029 = load i32, ptr @test_count, align 4, !tbaa !5
  %3030 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3031 = load i32, ptr %3030, align 4, !tbaa !5
  %3032 = call ptr @s2n_strerror(i32 noundef %3031, ptr noundef @.str.3)
  %3033 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3034 = load i32, ptr %3033, align 4, !tbaa !5
  %3035 = call ptr @s2n_strerror_debug(i32 noundef %3034, ptr noundef @.str.3)
  %3036 = call ptr @__errno_location() #10
  %3037 = load i32, ptr %3036, align 4, !tbaa !5
  %3038 = call ptr @strerror(i32 noundef %3037) #9
  %3039 = call ptr @__errno_location() #10
  %3040 = load i32, ptr %3039, align 4, !tbaa !5
  %3041 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3028, ptr noundef @.str.4, i32 noundef %3029, ptr noundef @.str.23, ptr noundef @.str.2, i32 noundef 257, ptr noundef %3032, ptr noundef %3035, ptr noundef %3038, i32 noundef %3040) #9
  br label %3042

3042:                                             ; preds = %3025, %3008
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #9
  br label %3043

3043:                                             ; preds = %3042
  br label %3044

3044:                                             ; preds = %3043
  call void @exit(i32 noundef 1) #11
  unreachable

3045:                                             ; No predecessors!
  br label %3046

3046:                                             ; preds = %3045
  br label %3047

3047:                                             ; preds = %3046, %2988
  br label %3048

3048:                                             ; preds = %3047
  br label %3049

3049:                                             ; preds = %3048
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #9
  store ptr null, ptr %64, align 8, !tbaa !9
  br label %3050

3050:                                             ; preds = %3049
  %3051 = load i32, ptr @test_count, align 4, !tbaa !5
  %3052 = add nsw i32 %3051, 1
  store i32 %3052, ptr @test_count, align 4, !tbaa !5
  %3053 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef %64, ptr noundef @.str.24, ptr noundef @.str.25)
  %3054 = icmp eq i32 %3053, -1
  br i1 %3054, label %3055, label %3108

3055:                                             ; preds = %3050
  br label %3056

3056:                                             ; preds = %3055
  br label %3057

3057:                                             ; preds = %3056
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #9
  %3058 = call ptr @__errno_location() #10
  %3059 = load i32, ptr %3058, align 4, !tbaa !5
  store i32 %3059, ptr %65, align 4, !tbaa !5
  %3060 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3061 = call i32 @s2n_print_stacktrace(ptr noundef %3060)
  %3062 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3063 = trunc i8 %3062 to i1
  br i1 %3063, label %3064, label %3086

3064:                                             ; preds = %3057
  %3065 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3066 = call i32 @fileno(ptr noundef %3065) #9
  %3067 = call i32 @isatty(i32 noundef %3066) #9
  %3068 = icmp ne i32 %3067, 0
  br i1 %3068, label %3069, label %3086

3069:                                             ; preds = %3064
  %3070 = load i32, ptr %65, align 4, !tbaa !5
  %3071 = call ptr @__errno_location() #10
  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.3)
  %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.3)
  %3080 = call ptr @__errno_location() #10
  %3081 = load i32, ptr %3080, align 4, !tbaa !5
  %3082 = call ptr @strerror(i32 noundef %3081) #9
  %3083 = call ptr @__errno_location() #10
  %3084 = load i32, ptr %3083, align 4, !tbaa !5
  %3085 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3072, ptr noundef @.str, i32 noundef %3073, ptr noundef @.str.26, ptr noundef @.str.2, i32 noundef 264, ptr noundef %3076, ptr noundef %3079, ptr noundef %3082, i32 noundef %3084) #9
  br label %3103

3086:                                             ; preds = %3064, %3057
  %3087 = load i32, ptr %65, align 4, !tbaa !5
  %3088 = call ptr @__errno_location() #10
  store i32 %3087, ptr %3088, align 4, !tbaa !5
  %3089 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3090 = load i32, ptr @test_count, align 4, !tbaa !5
  %3091 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3092 = load i32, ptr %3091, align 4, !tbaa !5
  %3093 = call ptr @s2n_strerror(i32 noundef %3092, ptr noundef @.str.3)
  %3094 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3095 = load i32, ptr %3094, align 4, !tbaa !5
  %3096 = call ptr @s2n_strerror_debug(i32 noundef %3095, ptr noundef @.str.3)
  %3097 = call ptr @__errno_location() #10
  %3098 = load i32, ptr %3097, align 4, !tbaa !5
  %3099 = call ptr @strerror(i32 noundef %3098) #9
  %3100 = call ptr @__errno_location() #10
  %3101 = load i32, ptr %3100, align 4, !tbaa !5
  %3102 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3089, ptr noundef @.str.4, i32 noundef %3090, ptr noundef @.str.26, ptr noundef @.str.2, i32 noundef 264, ptr noundef %3093, ptr noundef %3096, ptr noundef %3099, i32 noundef %3101) #9
  br label %3103

3103:                                             ; preds = %3086, %3069
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #9
  br label %3104

3104:                                             ; preds = %3103
  br label %3105

3105:                                             ; preds = %3104
  call void @exit(i32 noundef 1) #11
  unreachable

3106:                                             ; No predecessors!
  br label %3107

3107:                                             ; preds = %3106
  br label %3108

3108:                                             ; preds = %3107, %3050
  br label %3109

3109:                                             ; preds = %3108
  br label %3110

3110:                                             ; preds = %3109
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #9
  store ptr null, ptr %66, align 8, !tbaa !9
  br label %3111

3111:                                             ; preds = %3110
  %3112 = load i32, ptr @test_count, align 4, !tbaa !5
  %3113 = add nsw i32 %3112, 1
  store i32 %3113, ptr @test_count, align 4, !tbaa !5
  %3114 = call ptr @s2n_config_new()
  store ptr %3114, ptr %66, align 8, !tbaa !9
  %3115 = icmp eq ptr %3114, null
  br i1 %3115, label %3116, label %3169

3116:                                             ; preds = %3111
  br label %3117

3117:                                             ; preds = %3116
  br label %3118

3118:                                             ; preds = %3117
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #9
  %3119 = call ptr @__errno_location() #10
  %3120 = load i32, ptr %3119, align 4, !tbaa !5
  store i32 %3120, ptr %67, align 4, !tbaa !5
  %3121 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3122 = call i32 @s2n_print_stacktrace(ptr noundef %3121)
  %3123 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3124 = trunc i8 %3123 to i1
  br i1 %3124, label %3125, label %3147

3125:                                             ; preds = %3118
  %3126 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3127 = call i32 @fileno(ptr noundef %3126) #9
  %3128 = call i32 @isatty(i32 noundef %3127) #9
  %3129 = icmp ne i32 %3128, 0
  br i1 %3129, label %3130, label %3147

3130:                                             ; preds = %3125
  %3131 = load i32, ptr %67, align 4, !tbaa !5
  %3132 = call ptr @__errno_location() #10
  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.3)
  %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.3)
  %3141 = call ptr @__errno_location() #10
  %3142 = load i32, ptr %3141, align 4, !tbaa !5
  %3143 = call ptr @strerror(i32 noundef %3142) #9
  %3144 = call ptr @__errno_location() #10
  %3145 = load i32, ptr %3144, align 4, !tbaa !5
  %3146 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3133, ptr noundef @.str, i32 noundef %3134, ptr noundef @.str.27, ptr noundef @.str.2, i32 noundef 267, ptr noundef %3137, ptr noundef %3140, ptr noundef %3143, i32 noundef %3145) #9
  br label %3164

3147:                                             ; preds = %3125, %3118
  %3148 = load i32, ptr %67, align 4, !tbaa !5
  %3149 = call ptr @__errno_location() #10
  store i32 %3148, ptr %3149, align 4, !tbaa !5
  %3150 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3151 = load i32, ptr @test_count, align 4, !tbaa !5
  %3152 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3153 = load i32, ptr %3152, align 4, !tbaa !5
  %3154 = call ptr @s2n_strerror(i32 noundef %3153, ptr noundef @.str.3)
  %3155 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3156 = load i32, ptr %3155, align 4, !tbaa !5
  %3157 = call ptr @s2n_strerror_debug(i32 noundef %3156, ptr noundef @.str.3)
  %3158 = call ptr @__errno_location() #10
  %3159 = load i32, ptr %3158, align 4, !tbaa !5
  %3160 = call ptr @strerror(i32 noundef %3159) #9
  %3161 = call ptr @__errno_location() #10
  %3162 = load i32, ptr %3161, align 4, !tbaa !5
  %3163 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3150, ptr noundef @.str.4, i32 noundef %3151, ptr noundef @.str.27, ptr noundef @.str.2, i32 noundef 267, ptr noundef %3154, ptr noundef %3157, ptr noundef %3160, i32 noundef %3162) #9
  br label %3164

3164:                                             ; preds = %3147, %3130
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #9
  br label %3165

3165:                                             ; preds = %3164
  br label %3166

3166:                                             ; preds = %3165
  call void @exit(i32 noundef 1) #11
  unreachable

3167:                                             ; No predecessors!
  br label %3168

3168:                                             ; preds = %3167
  br label %3169

3169:                                             ; preds = %3168, %3111
  br label %3170

3170:                                             ; preds = %3169
  br label %3171

3171:                                             ; preds = %3170
  br label %3172

3172:                                             ; preds = %3171
  %3173 = load i32, ptr @test_count, align 4, !tbaa !5
  %3174 = add nsw i32 %3173, 1
  store i32 %3174, ptr @test_count, align 4, !tbaa !5
  %3175 = load ptr, ptr %66, align 8, !tbaa !9
  %3176 = load ptr, ptr %64, align 8, !tbaa !9
  %3177 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %3175, ptr noundef %3176)
  %3178 = icmp eq i32 %3177, -1
  br i1 %3178, label %3179, label %3232

3179:                                             ; preds = %3172
  br label %3180

3180:                                             ; preds = %3179
  br label %3181

3181:                                             ; preds = %3180
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #9
  %3182 = call ptr @__errno_location() #10
  %3183 = load i32, ptr %3182, align 4, !tbaa !5
  store i32 %3183, ptr %68, align 4, !tbaa !5
  %3184 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3185 = call i32 @s2n_print_stacktrace(ptr noundef %3184)
  %3186 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3187 = trunc i8 %3186 to i1
  br i1 %3187, label %3188, label %3210

3188:                                             ; preds = %3181
  %3189 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3190 = call i32 @fileno(ptr noundef %3189) #9
  %3191 = call i32 @isatty(i32 noundef %3190) #9
  %3192 = icmp ne i32 %3191, 0
  br i1 %3192, label %3193, label %3210

3193:                                             ; preds = %3188
  %3194 = load i32, ptr %68, align 4, !tbaa !5
  %3195 = call ptr @__errno_location() #10
  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.3)
  %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.3)
  %3204 = call ptr @__errno_location() #10
  %3205 = load i32, ptr %3204, align 4, !tbaa !5
  %3206 = call ptr @strerror(i32 noundef %3205) #9
  %3207 = call ptr @__errno_location() #10
  %3208 = load i32, ptr %3207, align 4, !tbaa !5
  %3209 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3196, ptr noundef @.str, i32 noundef %3197, ptr noundef @.str.28, ptr noundef @.str.2, i32 noundef 268, ptr noundef %3200, ptr noundef %3203, ptr noundef %3206, i32 noundef %3208) #9
  br label %3227

3210:                                             ; preds = %3188, %3181
  %3211 = load i32, ptr %68, align 4, !tbaa !5
  %3212 = call ptr @__errno_location() #10
  store i32 %3211, ptr %3212, align 4, !tbaa !5
  %3213 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3214 = load i32, ptr @test_count, align 4, !tbaa !5
  %3215 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3216 = load i32, ptr %3215, align 4, !tbaa !5
  %3217 = call ptr @s2n_strerror(i32 noundef %3216, ptr noundef @.str.3)
  %3218 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3219 = load i32, ptr %3218, align 4, !tbaa !5
  %3220 = call ptr @s2n_strerror_debug(i32 noundef %3219, ptr noundef @.str.3)
  %3221 = call ptr @__errno_location() #10
  %3222 = load i32, ptr %3221, align 4, !tbaa !5
  %3223 = call ptr @strerror(i32 noundef %3222) #9
  %3224 = call ptr @__errno_location() #10
  %3225 = load i32, ptr %3224, align 4, !tbaa !5
  %3226 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3213, ptr noundef @.str.4, i32 noundef %3214, ptr noundef @.str.28, ptr noundef @.str.2, i32 noundef 268, ptr noundef %3217, ptr noundef %3220, ptr noundef %3223, i32 noundef %3225) #9
  br label %3227

3227:                                             ; preds = %3210, %3193
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #9
  br label %3228

3228:                                             ; preds = %3227
  br label %3229

3229:                                             ; preds = %3228
  call void @exit(i32 noundef 1) #11
  unreachable

3230:                                             ; No predecessors!
  br label %3231

3231:                                             ; preds = %3230
  br label %3232

3232:                                             ; preds = %3231, %3172
  br label %3233

3233:                                             ; preds = %3232
  br label %3234

3234:                                             ; preds = %3233
  br label %3235

3235:                                             ; preds = %3234
  %3236 = load i32, ptr @test_count, align 4, !tbaa !5
  %3237 = add nsw i32 %3236, 1
  store i32 %3237, ptr @test_count, align 4, !tbaa !5
  %3238 = load ptr, ptr %66, align 8, !tbaa !9
  %3239 = call i32 @s2n_config_set_async_pkey_callback(ptr noundef %3238, ptr noundef @s2n_async_pkey_store_op)
  %3240 = icmp eq i32 %3239, -1
  br i1 %3240, label %3241, label %3294

3241:                                             ; preds = %3235
  br label %3242

3242:                                             ; preds = %3241
  br label %3243

3243:                                             ; preds = %3242
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #9
  %3244 = call ptr @__errno_location() #10
  %3245 = load i32, ptr %3244, align 4, !tbaa !5
  store i32 %3245, ptr %69, align 4, !tbaa !5
  %3246 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3247 = call i32 @s2n_print_stacktrace(ptr noundef %3246)
  %3248 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3249 = trunc i8 %3248 to i1
  br i1 %3249, label %3250, label %3272

3250:                                             ; preds = %3243
  %3251 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3252 = call i32 @fileno(ptr noundef %3251) #9
  %3253 = call i32 @isatty(i32 noundef %3252) #9
  %3254 = icmp ne i32 %3253, 0
  br i1 %3254, label %3255, label %3272

3255:                                             ; preds = %3250
  %3256 = load i32, ptr %69, align 4, !tbaa !5
  %3257 = call ptr @__errno_location() #10
  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.3)
  %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.3)
  %3266 = call ptr @__errno_location() #10
  %3267 = load i32, ptr %3266, align 4, !tbaa !5
  %3268 = call ptr @strerror(i32 noundef %3267) #9
  %3269 = call ptr @__errno_location() #10
  %3270 = load i32, ptr %3269, align 4, !tbaa !5
  %3271 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3258, ptr noundef @.str, i32 noundef %3259, ptr noundef @.str.29, ptr noundef @.str.2, i32 noundef 269, ptr noundef %3262, ptr noundef %3265, ptr noundef %3268, i32 noundef %3270) #9
  br label %3289

3272:                                             ; preds = %3250, %3243
  %3273 = load i32, ptr %69, align 4, !tbaa !5
  %3274 = call ptr @__errno_location() #10
  store i32 %3273, ptr %3274, align 4, !tbaa !5
  %3275 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3276 = load i32, ptr @test_count, align 4, !tbaa !5
  %3277 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3278 = load i32, ptr %3277, align 4, !tbaa !5
  %3279 = call ptr @s2n_strerror(i32 noundef %3278, ptr noundef @.str.3)
  %3280 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3281 = load i32, ptr %3280, align 4, !tbaa !5
  %3282 = call ptr @s2n_strerror_debug(i32 noundef %3281, ptr noundef @.str.3)
  %3283 = call ptr @__errno_location() #10
  %3284 = load i32, ptr %3283, align 4, !tbaa !5
  %3285 = call ptr @strerror(i32 noundef %3284) #9
  %3286 = call ptr @__errno_location() #10
  %3287 = load i32, ptr %3286, align 4, !tbaa !5
  %3288 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3275, ptr noundef @.str.4, i32 noundef %3276, ptr noundef @.str.29, ptr noundef @.str.2, i32 noundef 269, ptr noundef %3279, ptr noundef %3282, ptr noundef %3285, i32 noundef %3287) #9
  br label %3289

3289:                                             ; preds = %3272, %3255
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #9
  br label %3290

3290:                                             ; preds = %3289
  br label %3291

3291:                                             ; preds = %3290
  call void @exit(i32 noundef 1) #11
  unreachable

3292:                                             ; No predecessors!
  br label %3293

3293:                                             ; preds = %3292
  br label %3294

3294:                                             ; preds = %3293, %3235
  br label %3295

3295:                                             ; preds = %3294
  br label %3296

3296:                                             ; preds = %3295
  br label %3297

3297:                                             ; preds = %3296
  %3298 = load i32, ptr @test_count, align 4, !tbaa !5
  %3299 = add nsw i32 %3298, 1
  store i32 %3299, ptr @test_count, align 4, !tbaa !5
  %3300 = load ptr, ptr %66, align 8, !tbaa !9
  %3301 = call i32 @s2n_config_set_unsafe_for_testing(ptr noundef %3300)
  %3302 = icmp eq i32 %3301, -1
  br i1 %3302, label %3303, label %3356

3303:                                             ; preds = %3297
  br label %3304

3304:                                             ; preds = %3303
  br label %3305

3305:                                             ; preds = %3304
  call void @llvm.lifetime.start.p0(i64 4, ptr %70) #9
  %3306 = call ptr @__errno_location() #10
  %3307 = load i32, ptr %3306, align 4, !tbaa !5
  store i32 %3307, ptr %70, align 4, !tbaa !5
  %3308 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3309 = call i32 @s2n_print_stacktrace(ptr noundef %3308)
  %3310 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3311 = trunc i8 %3310 to i1
  br i1 %3311, label %3312, label %3334

3312:                                             ; preds = %3305
  %3313 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3314 = call i32 @fileno(ptr noundef %3313) #9
  %3315 = call i32 @isatty(i32 noundef %3314) #9
  %3316 = icmp ne i32 %3315, 0
  br i1 %3316, label %3317, label %3334

3317:                                             ; preds = %3312
  %3318 = load i32, ptr %70, align 4, !tbaa !5
  %3319 = call ptr @__errno_location() #10
  store i32 %3318, ptr %3319, align 4, !tbaa !5
  %3320 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3321 = load i32, ptr @test_count, align 4, !tbaa !5
  %3322 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3323 = load i32, ptr %3322, align 4, !tbaa !5
  %3324 = call ptr @s2n_strerror(i32 noundef %3323, ptr noundef @.str.3)
  %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_debug(i32 noundef %3326, ptr noundef @.str.3)
  %3328 = call ptr @__errno_location() #10
  %3329 = load i32, ptr %3328, align 4, !tbaa !5
  %3330 = call ptr @strerror(i32 noundef %3329) #9
  %3331 = call ptr @__errno_location() #10
  %3332 = load i32, ptr %3331, align 4, !tbaa !5
  %3333 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3320, ptr noundef @.str, i32 noundef %3321, ptr noundef @.str.30, ptr noundef @.str.2, i32 noundef 270, ptr noundef %3324, ptr noundef %3327, ptr noundef %3330, i32 noundef %3332) #9
  br label %3351

3334:                                             ; preds = %3312, %3305
  %3335 = load i32, ptr %70, align 4, !tbaa !5
  %3336 = call ptr @__errno_location() #10
  store i32 %3335, ptr %3336, align 4, !tbaa !5
  %3337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3338 = load i32, ptr @test_count, align 4, !tbaa !5
  %3339 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3340 = load i32, ptr %3339, align 4, !tbaa !5
  %3341 = call ptr @s2n_strerror(i32 noundef %3340, ptr noundef @.str.3)
  %3342 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3343 = load i32, ptr %3342, align 4, !tbaa !5
  %3344 = call ptr @s2n_strerror_debug(i32 noundef %3343, ptr noundef @.str.3)
  %3345 = call ptr @__errno_location() #10
  %3346 = load i32, ptr %3345, align 4, !tbaa !5
  %3347 = call ptr @strerror(i32 noundef %3346) #9
  %3348 = call ptr @__errno_location() #10
  %3349 = load i32, ptr %3348, align 4, !tbaa !5
  %3350 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3337, ptr noundef @.str.4, i32 noundef %3338, ptr noundef @.str.30, ptr noundef @.str.2, i32 noundef 270, ptr noundef %3341, ptr noundef %3344, ptr noundef %3347, i32 noundef %3349) #9
  br label %3351

3351:                                             ; preds = %3334, %3317
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #9
  br label %3352

3352:                                             ; preds = %3351
  br label %3353

3353:                                             ; preds = %3352
  call void @exit(i32 noundef 1) #11
  unreachable

3354:                                             ; No predecessors!
  br label %3355

3355:                                             ; preds = %3354
  br label %3356

3356:                                             ; preds = %3355, %3297
  br label %3357

3357:                                             ; preds = %3356
  br label %3358

3358:                                             ; preds = %3357
  br label %3359

3359:                                             ; preds = %3358
  %3360 = load i32, ptr @test_count, align 4, !tbaa !5
  %3361 = add nsw i32 %3360, 1
  store i32 %3361, ptr @test_count, align 4, !tbaa !5
  %3362 = load ptr, ptr %66, align 8, !tbaa !9
  %3363 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %3362, ptr noundef @.str.31)
  %3364 = icmp eq i32 %3363, -1
  br i1 %3364, label %3365, label %3418

3365:                                             ; preds = %3359
  br label %3366

3366:                                             ; preds = %3365
  br label %3367

3367:                                             ; preds = %3366
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #9
  %3368 = call ptr @__errno_location() #10
  %3369 = load i32, ptr %3368, align 4, !tbaa !5
  store i32 %3369, ptr %71, align 4, !tbaa !5
  %3370 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3371 = call i32 @s2n_print_stacktrace(ptr noundef %3370)
  %3372 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3373 = trunc i8 %3372 to i1
  br i1 %3373, label %3374, label %3396

3374:                                             ; preds = %3367
  %3375 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3376 = call i32 @fileno(ptr noundef %3375) #9
  %3377 = call i32 @isatty(i32 noundef %3376) #9
  %3378 = icmp ne i32 %3377, 0
  br i1 %3378, label %3379, label %3396

3379:                                             ; preds = %3374
  %3380 = load i32, ptr %71, align 4, !tbaa !5
  %3381 = call ptr @__errno_location() #10
  store i32 %3380, ptr %3381, align 4, !tbaa !5
  %3382 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3383 = load i32, ptr @test_count, align 4, !tbaa !5
  %3384 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3385 = load i32, ptr %3384, align 4, !tbaa !5
  %3386 = call ptr @s2n_strerror(i32 noundef %3385, ptr noundef @.str.3)
  %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_debug(i32 noundef %3388, ptr noundef @.str.3)
  %3390 = call ptr @__errno_location() #10
  %3391 = load i32, ptr %3390, align 4, !tbaa !5
  %3392 = call ptr @strerror(i32 noundef %3391) #9
  %3393 = call ptr @__errno_location() #10
  %3394 = load i32, ptr %3393, align 4, !tbaa !5
  %3395 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3382, ptr noundef @.str, i32 noundef %3383, ptr noundef @.str.32, ptr noundef @.str.2, i32 noundef 271, ptr noundef %3386, ptr noundef %3389, ptr noundef %3392, i32 noundef %3394) #9
  br label %3413

3396:                                             ; preds = %3374, %3367
  %3397 = load i32, ptr %71, align 4, !tbaa !5
  %3398 = call ptr @__errno_location() #10
  store i32 %3397, ptr %3398, align 4, !tbaa !5
  %3399 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3400 = load i32, ptr @test_count, align 4, !tbaa !5
  %3401 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3402 = load i32, ptr %3401, align 4, !tbaa !5
  %3403 = call ptr @s2n_strerror(i32 noundef %3402, ptr noundef @.str.3)
  %3404 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3405 = load i32, ptr %3404, align 4, !tbaa !5
  %3406 = call ptr @s2n_strerror_debug(i32 noundef %3405, ptr noundef @.str.3)
  %3407 = call ptr @__errno_location() #10
  %3408 = load i32, ptr %3407, align 4, !tbaa !5
  %3409 = call ptr @strerror(i32 noundef %3408) #9
  %3410 = call ptr @__errno_location() #10
  %3411 = load i32, ptr %3410, align 4, !tbaa !5
  %3412 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3399, ptr noundef @.str.4, i32 noundef %3400, ptr noundef @.str.32, ptr noundef @.str.2, i32 noundef 271, ptr noundef %3403, ptr noundef %3406, ptr noundef %3409, i32 noundef %3411) #9
  br label %3413

3413:                                             ; preds = %3396, %3379
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #9
  br label %3414

3414:                                             ; preds = %3413
  br label %3415

3415:                                             ; preds = %3414
  call void @exit(i32 noundef 1) #11
  unreachable

3416:                                             ; No predecessors!
  br label %3417

3417:                                             ; preds = %3416
  br label %3418

3418:                                             ; preds = %3417, %3359
  br label %3419

3419:                                             ; preds = %3418
  br label %3420

3420:                                             ; preds = %3419
  br label %3421

3421:                                             ; preds = %3420
  %3422 = load i32, ptr @test_count, align 4, !tbaa !5
  %3423 = add nsw i32 %3422, 1
  store i32 %3423, ptr @test_count, align 4, !tbaa !5
  %3424 = load ptr, ptr %66, align 8, !tbaa !9
  %3425 = call i32 @s2n_config_set_async_pkey_validation_mode(ptr noundef %3424, i32 noundef 1)
  %3426 = icmp eq i32 %3425, -1
  br i1 %3426, label %3427, label %3480

3427:                                             ; preds = %3421
  br label %3428

3428:                                             ; preds = %3427
  br label %3429

3429:                                             ; preds = %3428
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #9
  %3430 = call ptr @__errno_location() #10
  %3431 = load i32, ptr %3430, align 4, !tbaa !5
  store i32 %3431, ptr %72, align 4, !tbaa !5
  %3432 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3433 = call i32 @s2n_print_stacktrace(ptr noundef %3432)
  %3434 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3435 = trunc i8 %3434 to i1
  br i1 %3435, label %3436, label %3458

3436:                                             ; preds = %3429
  %3437 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3438 = call i32 @fileno(ptr noundef %3437) #9
  %3439 = call i32 @isatty(i32 noundef %3438) #9
  %3440 = icmp ne i32 %3439, 0
  br i1 %3440, label %3441, label %3458

3441:                                             ; preds = %3436
  %3442 = load i32, ptr %72, align 4, !tbaa !5
  %3443 = call ptr @__errno_location() #10
  store i32 %3442, ptr %3443, align 4, !tbaa !5
  %3444 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3445 = load i32, ptr @test_count, align 4, !tbaa !5
  %3446 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3447 = load i32, ptr %3446, align 4, !tbaa !5
  %3448 = call ptr @s2n_strerror(i32 noundef %3447, ptr noundef @.str.3)
  %3449 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3450 = load i32, ptr %3449, align 4, !tbaa !5
  %3451 = call ptr @s2n_strerror_debug(i32 noundef %3450, ptr noundef @.str.3)
  %3452 = call ptr @__errno_location() #10
  %3453 = load i32, ptr %3452, align 4, !tbaa !5
  %3454 = call ptr @strerror(i32 noundef %3453) #9
  %3455 = call ptr @__errno_location() #10
  %3456 = load i32, ptr %3455, align 4, !tbaa !5
  %3457 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3444, ptr noundef @.str, i32 noundef %3445, ptr noundef @.str.33, ptr noundef @.str.2, i32 noundef 273, ptr noundef %3448, ptr noundef %3451, ptr noundef %3454, i32 noundef %3456) #9
  br label %3475

3458:                                             ; preds = %3436, %3429
  %3459 = load i32, ptr %72, align 4, !tbaa !5
  %3460 = call ptr @__errno_location() #10
  store i32 %3459, ptr %3460, align 4, !tbaa !5
  %3461 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3462 = load i32, ptr @test_count, align 4, !tbaa !5
  %3463 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3464 = load i32, ptr %3463, align 4, !tbaa !5
  %3465 = call ptr @s2n_strerror(i32 noundef %3464, ptr noundef @.str.3)
  %3466 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3467 = load i32, ptr %3466, align 4, !tbaa !5
  %3468 = call ptr @s2n_strerror_debug(i32 noundef %3467, ptr noundef @.str.3)
  %3469 = call ptr @__errno_location() #10
  %3470 = load i32, ptr %3469, align 4, !tbaa !5
  %3471 = call ptr @strerror(i32 noundef %3470) #9
  %3472 = call ptr @__errno_location() #10
  %3473 = load i32, ptr %3472, align 4, !tbaa !5
  %3474 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3461, ptr noundef @.str.4, i32 noundef %3462, ptr noundef @.str.33, ptr noundef @.str.2, i32 noundef 273, ptr noundef %3465, ptr noundef %3468, ptr noundef %3471, i32 noundef %3473) #9
  br label %3475

3475:                                             ; preds = %3458, %3441
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #9
  br label %3476

3476:                                             ; preds = %3475
  br label %3477

3477:                                             ; preds = %3476
  call void @exit(i32 noundef 1) #11
  unreachable

3478:                                             ; No predecessors!
  br label %3479

3479:                                             ; preds = %3478
  br label %3480

3480:                                             ; preds = %3479, %3421
  br label %3481

3481:                                             ; preds = %3480
  br label %3482

3482:                                             ; preds = %3481
  call void @llvm.lifetime.start.p0(i64 8, ptr %73) #9
  %3483 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %3483, ptr %73, align 8, !tbaa !9
  br label %3484

3484:                                             ; preds = %3482
  %3485 = load i32, ptr @test_count, align 4, !tbaa !5
  %3486 = add nsw i32 %3485, 1
  store i32 %3486, ptr @test_count, align 4, !tbaa !5
  %3487 = load ptr, ptr %73, align 8, !tbaa !9
  %3488 = icmp eq ptr %3487, null
  br i1 %3488, label %3489, label %3542

3489:                                             ; preds = %3484
  br label %3490

3490:                                             ; preds = %3489
  br label %3491

3491:                                             ; preds = %3490
  call void @llvm.lifetime.start.p0(i64 4, ptr %74) #9
  %3492 = call ptr @__errno_location() #10
  %3493 = load i32, ptr %3492, align 4, !tbaa !5
  store i32 %3493, ptr %74, align 4, !tbaa !5
  %3494 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3495 = call i32 @s2n_print_stacktrace(ptr noundef %3494)
  %3496 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3497 = trunc i8 %3496 to i1
  br i1 %3497, label %3498, label %3520

3498:                                             ; preds = %3491
  %3499 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3500 = call i32 @fileno(ptr noundef %3499) #9
  %3501 = call i32 @isatty(i32 noundef %3500) #9
  %3502 = icmp ne i32 %3501, 0
  br i1 %3502, label %3503, label %3520

3503:                                             ; preds = %3498
  %3504 = load i32, ptr %74, align 4, !tbaa !5
  %3505 = call ptr @__errno_location() #10
  store i32 %3504, ptr %3505, align 4, !tbaa !5
  %3506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3507 = load i32, ptr @test_count, align 4, !tbaa !5
  %3508 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3509 = load i32, ptr %3508, align 4, !tbaa !5
  %3510 = call ptr @s2n_strerror(i32 noundef %3509, ptr noundef @.str.3)
  %3511 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3512 = load i32, ptr %3511, align 4, !tbaa !5
  %3513 = call ptr @s2n_strerror_debug(i32 noundef %3512, ptr noundef @.str.3)
  %3514 = call ptr @__errno_location() #10
  %3515 = load i32, ptr %3514, align 4, !tbaa !5
  %3516 = call ptr @strerror(i32 noundef %3515) #9
  %3517 = call ptr @__errno_location() #10
  %3518 = load i32, ptr %3517, align 4, !tbaa !5
  %3519 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3506, ptr noundef @.str, i32 noundef %3507, ptr noundef @.str.34, ptr noundef @.str.2, i32 noundef 277, ptr noundef %3510, ptr noundef %3513, ptr noundef %3516, i32 noundef %3518) #9
  br label %3537

3520:                                             ; preds = %3498, %3491
  %3521 = load i32, ptr %74, align 4, !tbaa !5
  %3522 = call ptr @__errno_location() #10
  store i32 %3521, ptr %3522, align 4, !tbaa !5
  %3523 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3524 = load i32, ptr @test_count, align 4, !tbaa !5
  %3525 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3526 = load i32, ptr %3525, align 4, !tbaa !5
  %3527 = call ptr @s2n_strerror(i32 noundef %3526, ptr noundef @.str.3)
  %3528 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3529 = load i32, ptr %3528, align 4, !tbaa !5
  %3530 = call ptr @s2n_strerror_debug(i32 noundef %3529, ptr noundef @.str.3)
  %3531 = call ptr @__errno_location() #10
  %3532 = load i32, ptr %3531, align 4, !tbaa !5
  %3533 = call ptr @strerror(i32 noundef %3532) #9
  %3534 = call ptr @__errno_location() #10
  %3535 = load i32, ptr %3534, align 4, !tbaa !5
  %3536 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3523, ptr noundef @.str.4, i32 noundef %3524, ptr noundef @.str.34, ptr noundef @.str.2, i32 noundef 277, ptr noundef %3527, ptr noundef %3530, ptr noundef %3533, i32 noundef %3535) #9
  br label %3537

3537:                                             ; preds = %3520, %3503
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #9
  br label %3538

3538:                                             ; preds = %3537
  br label %3539

3539:                                             ; preds = %3538
  call void @exit(i32 noundef 1) #11
  unreachable

3540:                                             ; No predecessors!
  br label %3541

3541:                                             ; preds = %3540
  br label %3542

3542:                                             ; preds = %3541, %3484
  br label %3543

3543:                                             ; preds = %3542
  br label %3544

3544:                                             ; preds = %3543
  br label %3545

3545:                                             ; preds = %3544
  %3546 = load i32, ptr @test_count, align 4, !tbaa !5
  %3547 = add nsw i32 %3546, 1
  store i32 %3547, ptr @test_count, align 4, !tbaa !5
  %3548 = load ptr, ptr %73, align 8, !tbaa !9
  %3549 = load ptr, ptr %66, align 8, !tbaa !9
  %3550 = call i32 @s2n_connection_set_config(ptr noundef %3548, ptr noundef %3549)
  %3551 = icmp eq i32 %3550, -1
  br i1 %3551, label %3552, label %3605

3552:                                             ; preds = %3545
  br label %3553

3553:                                             ; preds = %3552
  br label %3554

3554:                                             ; preds = %3553
  call void @llvm.lifetime.start.p0(i64 4, ptr %75) #9
  %3555 = call ptr @__errno_location() #10
  %3556 = load i32, ptr %3555, align 4, !tbaa !5
  store i32 %3556, ptr %75, align 4, !tbaa !5
  %3557 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3558 = call i32 @s2n_print_stacktrace(ptr noundef %3557)
  %3559 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3560 = trunc i8 %3559 to i1
  br i1 %3560, label %3561, label %3583

3561:                                             ; preds = %3554
  %3562 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3563 = call i32 @fileno(ptr noundef %3562) #9
  %3564 = call i32 @isatty(i32 noundef %3563) #9
  %3565 = icmp ne i32 %3564, 0
  br i1 %3565, label %3566, label %3583

3566:                                             ; preds = %3561
  %3567 = load i32, ptr %75, align 4, !tbaa !5
  %3568 = call ptr @__errno_location() #10
  store i32 %3567, ptr %3568, align 4, !tbaa !5
  %3569 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3570 = load i32, ptr @test_count, align 4, !tbaa !5
  %3571 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3572 = load i32, ptr %3571, align 4, !tbaa !5
  %3573 = call ptr @s2n_strerror(i32 noundef %3572, ptr noundef @.str.3)
  %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_debug(i32 noundef %3575, ptr noundef @.str.3)
  %3577 = call ptr @__errno_location() #10
  %3578 = load i32, ptr %3577, align 4, !tbaa !5
  %3579 = call ptr @strerror(i32 noundef %3578) #9
  %3580 = call ptr @__errno_location() #10
  %3581 = load i32, ptr %3580, align 4, !tbaa !5
  %3582 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3569, ptr noundef @.str, i32 noundef %3570, ptr noundef @.str.35, ptr noundef @.str.2, i32 noundef 278, ptr noundef %3573, ptr noundef %3576, ptr noundef %3579, i32 noundef %3581) #9
  br label %3600

3583:                                             ; preds = %3561, %3554
  %3584 = load i32, ptr %75, align 4, !tbaa !5
  %3585 = call ptr @__errno_location() #10
  store i32 %3584, ptr %3585, align 4, !tbaa !5
  %3586 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3587 = load i32, ptr @test_count, align 4, !tbaa !5
  %3588 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3589 = load i32, ptr %3588, align 4, !tbaa !5
  %3590 = call ptr @s2n_strerror(i32 noundef %3589, ptr noundef @.str.3)
  %3591 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3592 = load i32, ptr %3591, align 4, !tbaa !5
  %3593 = call ptr @s2n_strerror_debug(i32 noundef %3592, ptr noundef @.str.3)
  %3594 = call ptr @__errno_location() #10
  %3595 = load i32, ptr %3594, align 4, !tbaa !5
  %3596 = call ptr @strerror(i32 noundef %3595) #9
  %3597 = call ptr @__errno_location() #10
  %3598 = load i32, ptr %3597, align 4, !tbaa !5
  %3599 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3586, ptr noundef @.str.4, i32 noundef %3587, ptr noundef @.str.35, ptr noundef @.str.2, i32 noundef 278, ptr noundef %3590, ptr noundef %3593, ptr noundef %3596, i32 noundef %3598) #9
  br label %3600

3600:                                             ; preds = %3583, %3566
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #9
  br label %3601

3601:                                             ; preds = %3600
  br label %3602

3602:                                             ; preds = %3601
  call void @exit(i32 noundef 1) #11
  unreachable

3603:                                             ; No predecessors!
  br label %3604

3604:                                             ; preds = %3603
  br label %3605

3605:                                             ; preds = %3604, %3545
  br label %3606

3606:                                             ; preds = %3605
  br label %3607

3607:                                             ; preds = %3606
  br label %3608

3608:                                             ; preds = %3607
  %3609 = load i32, ptr @test_count, align 4, !tbaa !5
  %3610 = add nsw i32 %3609, 1
  store i32 %3610, ptr @test_count, align 4, !tbaa !5
  %3611 = load ptr, ptr %73, align 8, !tbaa !9
  %3612 = call i32 @s2n_connection_set_client_auth_type(ptr noundef %3611, i32 noundef 1)
  %3613 = icmp eq i32 %3612, -1
  br i1 %3613, label %3614, label %3667

3614:                                             ; preds = %3608
  br label %3615

3615:                                             ; preds = %3614
  br label %3616

3616:                                             ; preds = %3615
  call void @llvm.lifetime.start.p0(i64 4, ptr %76) #9
  %3617 = call ptr @__errno_location() #10
  %3618 = load i32, ptr %3617, align 4, !tbaa !5
  store i32 %3618, ptr %76, align 4, !tbaa !5
  %3619 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3620 = call i32 @s2n_print_stacktrace(ptr noundef %3619)
  %3621 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3622 = trunc i8 %3621 to i1
  br i1 %3622, label %3623, label %3645

3623:                                             ; preds = %3616
  %3624 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3625 = call i32 @fileno(ptr noundef %3624) #9
  %3626 = call i32 @isatty(i32 noundef %3625) #9
  %3627 = icmp ne i32 %3626, 0
  br i1 %3627, label %3628, label %3645

3628:                                             ; preds = %3623
  %3629 = load i32, ptr %76, align 4, !tbaa !5
  %3630 = call ptr @__errno_location() #10
  store i32 %3629, ptr %3630, align 4, !tbaa !5
  %3631 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3632 = load i32, ptr @test_count, align 4, !tbaa !5
  %3633 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3634 = load i32, ptr %3633, align 4, !tbaa !5
  %3635 = call ptr @s2n_strerror(i32 noundef %3634, ptr noundef @.str.3)
  %3636 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3637 = load i32, ptr %3636, align 4, !tbaa !5
  %3638 = call ptr @s2n_strerror_debug(i32 noundef %3637, ptr noundef @.str.3)
  %3639 = call ptr @__errno_location() #10
  %3640 = load i32, ptr %3639, align 4, !tbaa !5
  %3641 = call ptr @strerror(i32 noundef %3640) #9
  %3642 = call ptr @__errno_location() #10
  %3643 = load i32, ptr %3642, align 4, !tbaa !5
  %3644 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3631, ptr noundef @.str, i32 noundef %3632, ptr noundef @.str.36, ptr noundef @.str.2, i32 noundef 279, ptr noundef %3635, ptr noundef %3638, ptr noundef %3641, i32 noundef %3643) #9
  br label %3662

3645:                                             ; preds = %3623, %3616
  %3646 = load i32, ptr %76, align 4, !tbaa !5
  %3647 = call ptr @__errno_location() #10
  store i32 %3646, ptr %3647, align 4, !tbaa !5
  %3648 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3649 = load i32, ptr @test_count, align 4, !tbaa !5
  %3650 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3651 = load i32, ptr %3650, align 4, !tbaa !5
  %3652 = call ptr @s2n_strerror(i32 noundef %3651, ptr noundef @.str.3)
  %3653 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3654 = load i32, ptr %3653, align 4, !tbaa !5
  %3655 = call ptr @s2n_strerror_debug(i32 noundef %3654, ptr noundef @.str.3)
  %3656 = call ptr @__errno_location() #10
  %3657 = load i32, ptr %3656, align 4, !tbaa !5
  %3658 = call ptr @strerror(i32 noundef %3657) #9
  %3659 = call ptr @__errno_location() #10
  %3660 = load i32, ptr %3659, align 4, !tbaa !5
  %3661 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3648, ptr noundef @.str.4, i32 noundef %3649, ptr noundef @.str.36, ptr noundef @.str.2, i32 noundef 279, ptr noundef %3652, ptr noundef %3655, ptr noundef %3658, i32 noundef %3660) #9
  br label %3662

3662:                                             ; preds = %3645, %3628
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #9
  br label %3663

3663:                                             ; preds = %3662
  br label %3664

3664:                                             ; preds = %3663
  call void @exit(i32 noundef 1) #11
  unreachable

3665:                                             ; No predecessors!
  br label %3666

3666:                                             ; preds = %3665
  br label %3667

3667:                                             ; preds = %3666, %3608
  br label %3668

3668:                                             ; preds = %3667
  br label %3669

3669:                                             ; preds = %3668
  call void @llvm.lifetime.start.p0(i64 8, ptr %77) #9
  store ptr null, ptr %77, align 8, !tbaa !9
  br label %3670

3670:                                             ; preds = %3669
  %3671 = load i32, ptr @test_count, align 4, !tbaa !5
  %3672 = add nsw i32 %3671, 1
  store i32 %3672, ptr @test_count, align 4, !tbaa !5
  %3673 = call ptr @s2n_config_new()
  store ptr %3673, ptr %77, align 8, !tbaa !9
  %3674 = icmp eq ptr %3673, null
  br i1 %3674, label %3675, label %3728

3675:                                             ; preds = %3670
  br label %3676

3676:                                             ; preds = %3675
  br label %3677

3677:                                             ; preds = %3676
  call void @llvm.lifetime.start.p0(i64 4, ptr %78) #9
  %3678 = call ptr @__errno_location() #10
  %3679 = load i32, ptr %3678, align 4, !tbaa !5
  store i32 %3679, ptr %78, align 4, !tbaa !5
  %3680 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3681 = call i32 @s2n_print_stacktrace(ptr noundef %3680)
  %3682 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3683 = trunc i8 %3682 to i1
  br i1 %3683, label %3684, label %3706

3684:                                             ; preds = %3677
  %3685 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3686 = call i32 @fileno(ptr noundef %3685) #9
  %3687 = call i32 @isatty(i32 noundef %3686) #9
  %3688 = icmp ne i32 %3687, 0
  br i1 %3688, label %3689, label %3706

3689:                                             ; preds = %3684
  %3690 = load i32, ptr %78, align 4, !tbaa !5
  %3691 = call ptr @__errno_location() #10
  store i32 %3690, ptr %3691, align 4, !tbaa !5
  %3692 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3693 = load i32, ptr @test_count, align 4, !tbaa !5
  %3694 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3695 = load i32, ptr %3694, align 4, !tbaa !5
  %3696 = call ptr @s2n_strerror(i32 noundef %3695, ptr noundef @.str.3)
  %3697 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3698 = load i32, ptr %3697, align 4, !tbaa !5
  %3699 = call ptr @s2n_strerror_debug(i32 noundef %3698, ptr noundef @.str.3)
  %3700 = call ptr @__errno_location() #10
  %3701 = load i32, ptr %3700, align 4, !tbaa !5
  %3702 = call ptr @strerror(i32 noundef %3701) #9
  %3703 = call ptr @__errno_location() #10
  %3704 = load i32, ptr %3703, align 4, !tbaa !5
  %3705 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3692, ptr noundef @.str, i32 noundef %3693, ptr noundef @.str.37, ptr noundef @.str.2, i32 noundef 282, ptr noundef %3696, ptr noundef %3699, ptr noundef %3702, i32 noundef %3704) #9
  br label %3723

3706:                                             ; preds = %3684, %3677
  %3707 = load i32, ptr %78, align 4, !tbaa !5
  %3708 = call ptr @__errno_location() #10
  store i32 %3707, ptr %3708, align 4, !tbaa !5
  %3709 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3710 = load i32, ptr @test_count, align 4, !tbaa !5
  %3711 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3712 = load i32, ptr %3711, align 4, !tbaa !5
  %3713 = call ptr @s2n_strerror(i32 noundef %3712, ptr noundef @.str.3)
  %3714 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3715 = load i32, ptr %3714, align 4, !tbaa !5
  %3716 = call ptr @s2n_strerror_debug(i32 noundef %3715, ptr noundef @.str.3)
  %3717 = call ptr @__errno_location() #10
  %3718 = load i32, ptr %3717, align 4, !tbaa !5
  %3719 = call ptr @strerror(i32 noundef %3718) #9
  %3720 = call ptr @__errno_location() #10
  %3721 = load i32, ptr %3720, align 4, !tbaa !5
  %3722 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3709, ptr noundef @.str.4, i32 noundef %3710, ptr noundef @.str.37, ptr noundef @.str.2, i32 noundef 282, ptr noundef %3713, ptr noundef %3716, ptr noundef %3719, i32 noundef %3721) #9
  br label %3723

3723:                                             ; preds = %3706, %3689
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #9
  br label %3724

3724:                                             ; preds = %3723
  br label %3725

3725:                                             ; preds = %3724
  call void @exit(i32 noundef 1) #11
  unreachable

3726:                                             ; No predecessors!
  br label %3727

3727:                                             ; preds = %3726
  br label %3728

3728:                                             ; preds = %3727, %3670
  br label %3729

3729:                                             ; preds = %3728
  br label %3730

3730:                                             ; preds = %3729
  br label %3731

3731:                                             ; preds = %3730
  %3732 = load i32, ptr @test_count, align 4, !tbaa !5
  %3733 = add nsw i32 %3732, 1
  store i32 %3733, ptr @test_count, align 4, !tbaa !5
  %3734 = load ptr, ptr %77, align 8, !tbaa !9
  %3735 = load ptr, ptr %64, align 8, !tbaa !9
  %3736 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %3734, ptr noundef %3735)
  %3737 = icmp eq i32 %3736, -1
  br i1 %3737, label %3738, label %3791

3738:                                             ; preds = %3731
  br label %3739

3739:                                             ; preds = %3738
  br label %3740

3740:                                             ; preds = %3739
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #9
  %3741 = call ptr @__errno_location() #10
  %3742 = load i32, ptr %3741, align 4, !tbaa !5
  store i32 %3742, ptr %79, align 4, !tbaa !5
  %3743 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3744 = call i32 @s2n_print_stacktrace(ptr noundef %3743)
  %3745 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3746 = trunc i8 %3745 to i1
  br i1 %3746, label %3747, label %3769

3747:                                             ; preds = %3740
  %3748 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3749 = call i32 @fileno(ptr noundef %3748) #9
  %3750 = call i32 @isatty(i32 noundef %3749) #9
  %3751 = icmp ne i32 %3750, 0
  br i1 %3751, label %3752, label %3769

3752:                                             ; preds = %3747
  %3753 = load i32, ptr %79, align 4, !tbaa !5
  %3754 = call ptr @__errno_location() #10
  store i32 %3753, ptr %3754, align 4, !tbaa !5
  %3755 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3756 = load i32, ptr @test_count, align 4, !tbaa !5
  %3757 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3758 = load i32, ptr %3757, align 4, !tbaa !5
  %3759 = call ptr @s2n_strerror(i32 noundef %3758, ptr noundef @.str.3)
  %3760 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3761 = load i32, ptr %3760, align 4, !tbaa !5
  %3762 = call ptr @s2n_strerror_debug(i32 noundef %3761, ptr noundef @.str.3)
  %3763 = call ptr @__errno_location() #10
  %3764 = load i32, ptr %3763, align 4, !tbaa !5
  %3765 = call ptr @strerror(i32 noundef %3764) #9
  %3766 = call ptr @__errno_location() #10
  %3767 = load i32, ptr %3766, align 4, !tbaa !5
  %3768 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3755, ptr noundef @.str, i32 noundef %3756, ptr noundef @.str.38, ptr noundef @.str.2, i32 noundef 283, ptr noundef %3759, ptr noundef %3762, ptr noundef %3765, i32 noundef %3767) #9
  br label %3786

3769:                                             ; preds = %3747, %3740
  %3770 = load i32, ptr %79, align 4, !tbaa !5
  %3771 = call ptr @__errno_location() #10
  store i32 %3770, ptr %3771, align 4, !tbaa !5
  %3772 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3773 = load i32, ptr @test_count, align 4, !tbaa !5
  %3774 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3775 = load i32, ptr %3774, align 4, !tbaa !5
  %3776 = call ptr @s2n_strerror(i32 noundef %3775, ptr noundef @.str.3)
  %3777 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3778 = load i32, ptr %3777, align 4, !tbaa !5
  %3779 = call ptr @s2n_strerror_debug(i32 noundef %3778, ptr noundef @.str.3)
  %3780 = call ptr @__errno_location() #10
  %3781 = load i32, ptr %3780, align 4, !tbaa !5
  %3782 = call ptr @strerror(i32 noundef %3781) #9
  %3783 = call ptr @__errno_location() #10
  %3784 = load i32, ptr %3783, align 4, !tbaa !5
  %3785 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3772, ptr noundef @.str.4, i32 noundef %3773, ptr noundef @.str.38, ptr noundef @.str.2, i32 noundef 283, ptr noundef %3776, ptr noundef %3779, ptr noundef %3782, i32 noundef %3784) #9
  br label %3786

3786:                                             ; preds = %3769, %3752
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #9
  br label %3787

3787:                                             ; preds = %3786
  br label %3788

3788:                                             ; preds = %3787
  call void @exit(i32 noundef 1) #11
  unreachable

3789:                                             ; No predecessors!
  br label %3790

3790:                                             ; preds = %3789
  br label %3791

3791:                                             ; preds = %3790, %3731
  br label %3792

3792:                                             ; preds = %3791
  br label %3793

3793:                                             ; preds = %3792
  br label %3794

3794:                                             ; preds = %3793
  %3795 = load i32, ptr @test_count, align 4, !tbaa !5
  %3796 = add nsw i32 %3795, 1
  store i32 %3796, ptr @test_count, align 4, !tbaa !5
  %3797 = load ptr, ptr %77, align 8, !tbaa !9
  %3798 = call i32 @s2n_config_set_unsafe_for_testing(ptr noundef %3797)
  %3799 = icmp eq i32 %3798, -1
  br i1 %3799, label %3800, label %3853

3800:                                             ; preds = %3794
  br label %3801

3801:                                             ; preds = %3800
  br label %3802

3802:                                             ; preds = %3801
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #9
  %3803 = call ptr @__errno_location() #10
  %3804 = load i32, ptr %3803, align 4, !tbaa !5
  store i32 %3804, ptr %80, 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) #9
  %3812 = call i32 @isatty(i32 noundef %3811) #9
  %3813 = icmp ne i32 %3812, 0
  br i1 %3813, label %3814, label %3831

3814:                                             ; preds = %3809
  %3815 = load i32, ptr %80, align 4, !tbaa !5
  %3816 = call ptr @__errno_location() #10
  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.3)
  %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.3)
  %3825 = call ptr @__errno_location() #10
  %3826 = load i32, ptr %3825, align 4, !tbaa !5
  %3827 = call ptr @strerror(i32 noundef %3826) #9
  %3828 = call ptr @__errno_location() #10
  %3829 = load i32, ptr %3828, align 4, !tbaa !5
  %3830 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3817, ptr noundef @.str, i32 noundef %3818, ptr noundef @.str.39, ptr noundef @.str.2, i32 noundef 284, ptr noundef %3821, ptr noundef %3824, ptr noundef %3827, i32 noundef %3829) #9
  br label %3848

3831:                                             ; preds = %3809, %3802
  %3832 = load i32, ptr %80, align 4, !tbaa !5
  %3833 = call ptr @__errno_location() #10
  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.3)
  %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.3)
  %3842 = call ptr @__errno_location() #10
  %3843 = load i32, ptr %3842, align 4, !tbaa !5
  %3844 = call ptr @strerror(i32 noundef %3843) #9
  %3845 = call ptr @__errno_location() #10
  %3846 = load i32, ptr %3845, align 4, !tbaa !5
  %3847 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3834, ptr noundef @.str.4, i32 noundef %3835, ptr noundef @.str.39, ptr noundef @.str.2, i32 noundef 284, ptr noundef %3838, ptr noundef %3841, ptr noundef %3844, i32 noundef %3846) #9
  br label %3848

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

3849:                                             ; preds = %3848
  br label %3850

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

3851:                                             ; No predecessors!
  br label %3852

3852:                                             ; preds = %3851
  br label %3853

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

3854:                                             ; preds = %3853
  br label %3855

3855:                                             ; preds = %3854
  call void @llvm.lifetime.start.p0(i64 8, ptr %81) #9
  %3856 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %3856, ptr %81, align 8, !tbaa !9
  br label %3857

3857:                                             ; preds = %3855
  %3858 = load i32, ptr @test_count, align 4, !tbaa !5
  %3859 = add nsw i32 %3858, 1
  store i32 %3859, ptr @test_count, align 4, !tbaa !5
  %3860 = load ptr, ptr %81, align 8, !tbaa !9
  %3861 = icmp eq ptr %3860, null
  br i1 %3861, label %3862, label %3915

3862:                                             ; preds = %3857
  br label %3863

3863:                                             ; preds = %3862
  br label %3864

3864:                                             ; preds = %3863
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #9
  %3865 = call ptr @__errno_location() #10
  %3866 = load i32, ptr %3865, align 4, !tbaa !5
  store i32 %3866, ptr %82, align 4, !tbaa !5
  %3867 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3868 = call i32 @s2n_print_stacktrace(ptr noundef %3867)
  %3869 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3870 = trunc i8 %3869 to i1
  br i1 %3870, label %3871, label %3893

3871:                                             ; preds = %3864
  %3872 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3873 = call i32 @fileno(ptr noundef %3872) #9
  %3874 = call i32 @isatty(i32 noundef %3873) #9
  %3875 = icmp ne i32 %3874, 0
  br i1 %3875, label %3876, label %3893

3876:                                             ; preds = %3871
  %3877 = load i32, ptr %82, align 4, !tbaa !5
  %3878 = call ptr @__errno_location() #10
  store i32 %3877, ptr %3878, align 4, !tbaa !5
  %3879 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3880 = load i32, ptr @test_count, align 4, !tbaa !5
  %3881 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3882 = load i32, ptr %3881, align 4, !tbaa !5
  %3883 = call ptr @s2n_strerror(i32 noundef %3882, ptr noundef @.str.3)
  %3884 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3885 = load i32, ptr %3884, align 4, !tbaa !5
  %3886 = call ptr @s2n_strerror_debug(i32 noundef %3885, ptr noundef @.str.3)
  %3887 = call ptr @__errno_location() #10
  %3888 = load i32, ptr %3887, align 4, !tbaa !5
  %3889 = call ptr @strerror(i32 noundef %3888) #9
  %3890 = call ptr @__errno_location() #10
  %3891 = load i32, ptr %3890, align 4, !tbaa !5
  %3892 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3879, ptr noundef @.str, i32 noundef %3880, ptr noundef @.str.40, ptr noundef @.str.2, i32 noundef 287, ptr noundef %3883, ptr noundef %3886, ptr noundef %3889, i32 noundef %3891) #9
  br label %3910

3893:                                             ; preds = %3871, %3864
  %3894 = load i32, ptr %82, align 4, !tbaa !5
  %3895 = call ptr @__errno_location() #10
  store i32 %3894, ptr %3895, align 4, !tbaa !5
  %3896 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3897 = load i32, ptr @test_count, align 4, !tbaa !5
  %3898 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3899 = load i32, ptr %3898, align 4, !tbaa !5
  %3900 = call ptr @s2n_strerror(i32 noundef %3899, ptr noundef @.str.3)
  %3901 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3902 = load i32, ptr %3901, align 4, !tbaa !5
  %3903 = call ptr @s2n_strerror_debug(i32 noundef %3902, ptr noundef @.str.3)
  %3904 = call ptr @__errno_location() #10
  %3905 = load i32, ptr %3904, align 4, !tbaa !5
  %3906 = call ptr @strerror(i32 noundef %3905) #9
  %3907 = call ptr @__errno_location() #10
  %3908 = load i32, ptr %3907, align 4, !tbaa !5
  %3909 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3896, ptr noundef @.str.4, i32 noundef %3897, ptr noundef @.str.40, ptr noundef @.str.2, i32 noundef 287, ptr noundef %3900, ptr noundef %3903, ptr noundef %3906, i32 noundef %3908) #9
  br label %3910

3910:                                             ; preds = %3893, %3876
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #9
  br label %3911

3911:                                             ; preds = %3910
  br label %3912

3912:                                             ; preds = %3911
  call void @exit(i32 noundef 1) #11
  unreachable

3913:                                             ; No predecessors!
  br label %3914

3914:                                             ; preds = %3913
  br label %3915

3915:                                             ; preds = %3914, %3857
  br label %3916

3916:                                             ; preds = %3915
  br label %3917

3917:                                             ; preds = %3916
  br label %3918

3918:                                             ; preds = %3917
  %3919 = load i32, ptr @test_count, align 4, !tbaa !5
  %3920 = add nsw i32 %3919, 1
  store i32 %3920, ptr @test_count, align 4, !tbaa !5
  %3921 = load ptr, ptr %81, align 8, !tbaa !9
  %3922 = load ptr, ptr %77, align 8, !tbaa !9
  %3923 = call i32 @s2n_connection_set_config(ptr noundef %3921, ptr noundef %3922)
  %3924 = icmp eq i32 %3923, -1
  br i1 %3924, label %3925, label %3978

3925:                                             ; preds = %3918
  br label %3926

3926:                                             ; preds = %3925
  br label %3927

3927:                                             ; preds = %3926
  call void @llvm.lifetime.start.p0(i64 4, ptr %83) #9
  %3928 = call ptr @__errno_location() #10
  %3929 = load i32, ptr %3928, align 4, !tbaa !5
  store i32 %3929, ptr %83, align 4, !tbaa !5
  %3930 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3931 = call i32 @s2n_print_stacktrace(ptr noundef %3930)
  %3932 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3933 = trunc i8 %3932 to i1
  br i1 %3933, label %3934, label %3956

3934:                                             ; preds = %3927
  %3935 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3936 = call i32 @fileno(ptr noundef %3935) #9
  %3937 = call i32 @isatty(i32 noundef %3936) #9
  %3938 = icmp ne i32 %3937, 0
  br i1 %3938, label %3939, label %3956

3939:                                             ; preds = %3934
  %3940 = load i32, ptr %83, align 4, !tbaa !5
  %3941 = call ptr @__errno_location() #10
  store i32 %3940, ptr %3941, align 4, !tbaa !5
  %3942 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3943 = load i32, ptr @test_count, align 4, !tbaa !5
  %3944 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3945 = load i32, ptr %3944, align 4, !tbaa !5
  %3946 = call ptr @s2n_strerror(i32 noundef %3945, ptr noundef @.str.3)
  %3947 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3948 = load i32, ptr %3947, align 4, !tbaa !5
  %3949 = call ptr @s2n_strerror_debug(i32 noundef %3948, ptr noundef @.str.3)
  %3950 = call ptr @__errno_location() #10
  %3951 = load i32, ptr %3950, align 4, !tbaa !5
  %3952 = call ptr @strerror(i32 noundef %3951) #9
  %3953 = call ptr @__errno_location() #10
  %3954 = load i32, ptr %3953, align 4, !tbaa !5
  %3955 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3942, ptr noundef @.str, i32 noundef %3943, ptr noundef @.str.41, ptr noundef @.str.2, i32 noundef 288, ptr noundef %3946, ptr noundef %3949, ptr noundef %3952, i32 noundef %3954) #9
  br label %3973

3956:                                             ; preds = %3934, %3927
  %3957 = load i32, ptr %83, align 4, !tbaa !5
  %3958 = call ptr @__errno_location() #10
  store i32 %3957, ptr %3958, align 4, !tbaa !5
  %3959 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3960 = load i32, ptr @test_count, align 4, !tbaa !5
  %3961 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3962 = load i32, ptr %3961, align 4, !tbaa !5
  %3963 = call ptr @s2n_strerror(i32 noundef %3962, ptr noundef @.str.3)
  %3964 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3965 = load i32, ptr %3964, align 4, !tbaa !5
  %3966 = call ptr @s2n_strerror_debug(i32 noundef %3965, ptr noundef @.str.3)
  %3967 = call ptr @__errno_location() #10
  %3968 = load i32, ptr %3967, align 4, !tbaa !5
  %3969 = call ptr @strerror(i32 noundef %3968) #9
  %3970 = call ptr @__errno_location() #10
  %3971 = load i32, ptr %3970, align 4, !tbaa !5
  %3972 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3959, ptr noundef @.str.4, i32 noundef %3960, ptr noundef @.str.41, ptr noundef @.str.2, i32 noundef 288, ptr noundef %3963, ptr noundef %3966, ptr noundef %3969, i32 noundef %3971) #9
  br label %3973

3973:                                             ; preds = %3956, %3939
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #9
  br label %3974

3974:                                             ; preds = %3973
  br label %3975

3975:                                             ; preds = %3974
  call void @exit(i32 noundef 1) #11
  unreachable

3976:                                             ; No predecessors!
  br label %3977

3977:                                             ; preds = %3976
  br label %3978

3978:                                             ; preds = %3977, %3918
  br label %3979

3979:                                             ; preds = %3978
  br label %3980

3980:                                             ; preds = %3979
  br label %3981

3981:                                             ; preds = %3980
  %3982 = load i32, ptr @test_count, align 4, !tbaa !5
  %3983 = add nsw i32 %3982, 1
  store i32 %3983, ptr @test_count, align 4, !tbaa !5
  %3984 = load ptr, ptr %81, align 8, !tbaa !9
  %3985 = call i32 @s2n_connection_set_client_auth_type(ptr noundef %3984, i32 noundef 1)
  %3986 = icmp eq i32 %3985, -1
  br i1 %3986, label %3987, label %4040

3987:                                             ; preds = %3981
  br label %3988

3988:                                             ; preds = %3987
  br label %3989

3989:                                             ; preds = %3988
  call void @llvm.lifetime.start.p0(i64 4, ptr %84) #9
  %3990 = call ptr @__errno_location() #10
  %3991 = load i32, ptr %3990, align 4, !tbaa !5
  store i32 %3991, ptr %84, align 4, !tbaa !5
  %3992 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3993 = call i32 @s2n_print_stacktrace(ptr noundef %3992)
  %3994 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3995 = trunc i8 %3994 to i1
  br i1 %3995, label %3996, label %4018

3996:                                             ; preds = %3989
  %3997 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3998 = call i32 @fileno(ptr noundef %3997) #9
  %3999 = call i32 @isatty(i32 noundef %3998) #9
  %4000 = icmp ne i32 %3999, 0
  br i1 %4000, label %4001, label %4018

4001:                                             ; preds = %3996
  %4002 = load i32, ptr %84, align 4, !tbaa !5
  %4003 = call ptr @__errno_location() #10
  store i32 %4002, ptr %4003, align 4, !tbaa !5
  %4004 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4005 = load i32, ptr @test_count, align 4, !tbaa !5
  %4006 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4007 = load i32, ptr %4006, align 4, !tbaa !5
  %4008 = call ptr @s2n_strerror(i32 noundef %4007, ptr noundef @.str.3)
  %4009 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4010 = load i32, ptr %4009, align 4, !tbaa !5
  %4011 = call ptr @s2n_strerror_debug(i32 noundef %4010, ptr noundef @.str.3)
  %4012 = call ptr @__errno_location() #10
  %4013 = load i32, ptr %4012, align 4, !tbaa !5
  %4014 = call ptr @strerror(i32 noundef %4013) #9
  %4015 = call ptr @__errno_location() #10
  %4016 = load i32, ptr %4015, align 4, !tbaa !5
  %4017 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4004, ptr noundef @.str, i32 noundef %4005, ptr noundef @.str.42, ptr noundef @.str.2, i32 noundef 289, ptr noundef %4008, ptr noundef %4011, ptr noundef %4014, i32 noundef %4016) #9
  br label %4035

4018:                                             ; preds = %3996, %3989
  %4019 = load i32, ptr %84, align 4, !tbaa !5
  %4020 = call ptr @__errno_location() #10
  store i32 %4019, ptr %4020, align 4, !tbaa !5
  %4021 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4022 = load i32, ptr @test_count, align 4, !tbaa !5
  %4023 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4024 = load i32, ptr %4023, align 4, !tbaa !5
  %4025 = call ptr @s2n_strerror(i32 noundef %4024, ptr noundef @.str.3)
  %4026 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4027 = load i32, ptr %4026, align 4, !tbaa !5
  %4028 = call ptr @s2n_strerror_debug(i32 noundef %4027, ptr noundef @.str.3)
  %4029 = call ptr @__errno_location() #10
  %4030 = load i32, ptr %4029, align 4, !tbaa !5
  %4031 = call ptr @strerror(i32 noundef %4030) #9
  %4032 = call ptr @__errno_location() #10
  %4033 = load i32, ptr %4032, align 4, !tbaa !5
  %4034 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4021, ptr noundef @.str.4, i32 noundef %4022, ptr noundef @.str.42, ptr noundef @.str.2, i32 noundef 289, ptr noundef %4025, ptr noundef %4028, ptr noundef %4031, i32 noundef %4033) #9
  br label %4035

4035:                                             ; preds = %4018, %4001
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #9
  br label %4036

4036:                                             ; preds = %4035
  br label %4037

4037:                                             ; preds = %4036
  call void @exit(i32 noundef 1) #11
  unreachable

4038:                                             ; No predecessors!
  br label %4039

4039:                                             ; preds = %4038
  br label %4040

4040:                                             ; preds = %4039, %3981
  br label %4041

4041:                                             ; preds = %4040
  br label %4042

4042:                                             ; preds = %4041
  call void @llvm.lifetime.start.p0(i64 8, ptr %85) #9
  call void @llvm.memset.p0.i64(ptr align 4 %85, i8 0, i64 8, i1 false)
  br label %4043

4043:                                             ; preds = %4042
  %4044 = load i32, ptr @test_count, align 4, !tbaa !5
  %4045 = add nsw i32 %4044, 1
  store i32 %4045, ptr @test_count, align 4, !tbaa !5
  %4046 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef %85)
  %4047 = icmp eq i32 %4046, -1
  br i1 %4047, label %4048, label %4101

4048:                                             ; preds = %4043
  br label %4049

4049:                                             ; preds = %4048
  br label %4050

4050:                                             ; preds = %4049
  call void @llvm.lifetime.start.p0(i64 4, ptr %86) #9
  %4051 = call ptr @__errno_location() #10
  %4052 = load i32, ptr %4051, align 4, !tbaa !5
  store i32 %4052, ptr %86, align 4, !tbaa !5
  %4053 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4054 = call i32 @s2n_print_stacktrace(ptr noundef %4053)
  %4055 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4056 = trunc i8 %4055 to i1
  br i1 %4056, label %4057, label %4079

4057:                                             ; preds = %4050
  %4058 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4059 = call i32 @fileno(ptr noundef %4058) #9
  %4060 = call i32 @isatty(i32 noundef %4059) #9
  %4061 = icmp ne i32 %4060, 0
  br i1 %4061, label %4062, label %4079

4062:                                             ; preds = %4057
  %4063 = load i32, ptr %86, align 4, !tbaa !5
  %4064 = call ptr @__errno_location() #10
  store i32 %4063, ptr %4064, align 4, !tbaa !5
  %4065 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4066 = load i32, ptr @test_count, align 4, !tbaa !5
  %4067 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4068 = load i32, ptr %4067, align 4, !tbaa !5
  %4069 = call ptr @s2n_strerror(i32 noundef %4068, ptr noundef @.str.3)
  %4070 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4071 = load i32, ptr %4070, align 4, !tbaa !5
  %4072 = call ptr @s2n_strerror_debug(i32 noundef %4071, ptr noundef @.str.3)
  %4073 = call ptr @__errno_location() #10
  %4074 = load i32, ptr %4073, align 4, !tbaa !5
  %4075 = call ptr @strerror(i32 noundef %4074) #9
  %4076 = call ptr @__errno_location() #10
  %4077 = load i32, ptr %4076, align 4, !tbaa !5
  %4078 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4065, ptr noundef @.str, i32 noundef %4066, ptr noundef @.str.43, ptr noundef @.str.2, i32 noundef 293, ptr noundef %4069, ptr noundef %4072, ptr noundef %4075, i32 noundef %4077) #9
  br label %4096

4079:                                             ; preds = %4057, %4050
  %4080 = load i32, ptr %86, align 4, !tbaa !5
  %4081 = call ptr @__errno_location() #10
  store i32 %4080, ptr %4081, align 4, !tbaa !5
  %4082 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4083 = load i32, ptr @test_count, align 4, !tbaa !5
  %4084 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4085 = load i32, ptr %4084, align 4, !tbaa !5
  %4086 = call ptr @s2n_strerror(i32 noundef %4085, ptr noundef @.str.3)
  %4087 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4088 = load i32, ptr %4087, align 4, !tbaa !5
  %4089 = call ptr @s2n_strerror_debug(i32 noundef %4088, ptr noundef @.str.3)
  %4090 = call ptr @__errno_location() #10
  %4091 = load i32, ptr %4090, align 4, !tbaa !5
  %4092 = call ptr @strerror(i32 noundef %4091) #9
  %4093 = call ptr @__errno_location() #10
  %4094 = load i32, ptr %4093, align 4, !tbaa !5
  %4095 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4082, ptr noundef @.str.4, i32 noundef %4083, ptr noundef @.str.43, ptr noundef @.str.2, i32 noundef 293, ptr noundef %4086, ptr noundef %4089, ptr noundef %4092, i32 noundef %4094) #9
  br label %4096

4096:                                             ; preds = %4079, %4062
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #9
  br label %4097

4097:                                             ; preds = %4096
  br label %4098

4098:                                             ; preds = %4097
  call void @exit(i32 noundef 1) #11
  unreachable

4099:                                             ; No predecessors!
  br label %4100

4100:                                             ; preds = %4099
  br label %4101

4101:                                             ; preds = %4100, %4043
  br label %4102

4102:                                             ; preds = %4101
  br label %4103

4103:                                             ; preds = %4102
  br label %4104

4104:                                             ; preds = %4103
  %4105 = load i32, ptr @test_count, align 4, !tbaa !5
  %4106 = add nsw i32 %4105, 1
  store i32 %4106, ptr @test_count, align 4, !tbaa !5
  %4107 = load ptr, ptr %73, align 8, !tbaa !9
  %4108 = call i32 @s2n_connection_set_io_pair(ptr noundef %4107, ptr noundef %85)
  %4109 = icmp eq i32 %4108, -1
  br i1 %4109, label %4110, label %4163

4110:                                             ; preds = %4104
  br label %4111

4111:                                             ; preds = %4110
  br label %4112

4112:                                             ; preds = %4111
  call void @llvm.lifetime.start.p0(i64 4, ptr %87) #9
  %4113 = call ptr @__errno_location() #10
  %4114 = load i32, ptr %4113, align 4, !tbaa !5
  store i32 %4114, ptr %87, align 4, !tbaa !5
  %4115 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4116 = call i32 @s2n_print_stacktrace(ptr noundef %4115)
  %4117 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4118 = trunc i8 %4117 to i1
  br i1 %4118, label %4119, label %4141

4119:                                             ; preds = %4112
  %4120 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4121 = call i32 @fileno(ptr noundef %4120) #9
  %4122 = call i32 @isatty(i32 noundef %4121) #9
  %4123 = icmp ne i32 %4122, 0
  br i1 %4123, label %4124, label %4141

4124:                                             ; preds = %4119
  %4125 = load i32, ptr %87, align 4, !tbaa !5
  %4126 = call ptr @__errno_location() #10
  store i32 %4125, ptr %4126, align 4, !tbaa !5
  %4127 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4128 = load i32, ptr @test_count, align 4, !tbaa !5
  %4129 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4130 = load i32, ptr %4129, align 4, !tbaa !5
  %4131 = call ptr @s2n_strerror(i32 noundef %4130, ptr noundef @.str.3)
  %4132 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4133 = load i32, ptr %4132, align 4, !tbaa !5
  %4134 = call ptr @s2n_strerror_debug(i32 noundef %4133, ptr noundef @.str.3)
  %4135 = call ptr @__errno_location() #10
  %4136 = load i32, ptr %4135, align 4, !tbaa !5
  %4137 = call ptr @strerror(i32 noundef %4136) #9
  %4138 = call ptr @__errno_location() #10
  %4139 = load i32, ptr %4138, align 4, !tbaa !5
  %4140 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4127, ptr noundef @.str, i32 noundef %4128, ptr noundef @.str.44, ptr noundef @.str.2, i32 noundef 294, ptr noundef %4131, ptr noundef %4134, ptr noundef %4137, i32 noundef %4139) #9
  br label %4158

4141:                                             ; preds = %4119, %4112
  %4142 = load i32, ptr %87, align 4, !tbaa !5
  %4143 = call ptr @__errno_location() #10
  store i32 %4142, ptr %4143, align 4, !tbaa !5
  %4144 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4145 = load i32, ptr @test_count, align 4, !tbaa !5
  %4146 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4147 = load i32, ptr %4146, align 4, !tbaa !5
  %4148 = call ptr @s2n_strerror(i32 noundef %4147, ptr noundef @.str.3)
  %4149 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4150 = load i32, ptr %4149, align 4, !tbaa !5
  %4151 = call ptr @s2n_strerror_debug(i32 noundef %4150, ptr noundef @.str.3)
  %4152 = call ptr @__errno_location() #10
  %4153 = load i32, ptr %4152, align 4, !tbaa !5
  %4154 = call ptr @strerror(i32 noundef %4153) #9
  %4155 = call ptr @__errno_location() #10
  %4156 = load i32, ptr %4155, align 4, !tbaa !5
  %4157 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4144, ptr noundef @.str.4, i32 noundef %4145, ptr noundef @.str.44, ptr noundef @.str.2, i32 noundef 294, ptr noundef %4148, ptr noundef %4151, ptr noundef %4154, i32 noundef %4156) #9
  br label %4158

4158:                                             ; preds = %4141, %4124
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #9
  br label %4159

4159:                                             ; preds = %4158
  br label %4160

4160:                                             ; preds = %4159
  call void @exit(i32 noundef 1) #11
  unreachable

4161:                                             ; No predecessors!
  br label %4162

4162:                                             ; preds = %4161
  br label %4163

4163:                                             ; preds = %4162, %4104
  br label %4164

4164:                                             ; preds = %4163
  br label %4165

4165:                                             ; preds = %4164
  br label %4166

4166:                                             ; preds = %4165
  %4167 = load i32, ptr @test_count, align 4, !tbaa !5
  %4168 = add nsw i32 %4167, 1
  store i32 %4168, ptr @test_count, align 4, !tbaa !5
  %4169 = load ptr, ptr %81, align 8, !tbaa !9
  %4170 = call i32 @s2n_connection_set_io_pair(ptr noundef %4169, ptr noundef %85)
  %4171 = icmp eq i32 %4170, -1
  br i1 %4171, label %4172, label %4225

4172:                                             ; preds = %4166
  br label %4173

4173:                                             ; preds = %4172
  br label %4174

4174:                                             ; preds = %4173
  call void @llvm.lifetime.start.p0(i64 4, ptr %88) #9
  %4175 = call ptr @__errno_location() #10
  %4176 = load i32, ptr %4175, align 4, !tbaa !5
  store i32 %4176, ptr %88, align 4, !tbaa !5
  %4177 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4178 = call i32 @s2n_print_stacktrace(ptr noundef %4177)
  %4179 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4180 = trunc i8 %4179 to i1
  br i1 %4180, label %4181, label %4203

4181:                                             ; preds = %4174
  %4182 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4183 = call i32 @fileno(ptr noundef %4182) #9
  %4184 = call i32 @isatty(i32 noundef %4183) #9
  %4185 = icmp ne i32 %4184, 0
  br i1 %4185, label %4186, label %4203

4186:                                             ; preds = %4181
  %4187 = load i32, ptr %88, align 4, !tbaa !5
  %4188 = call ptr @__errno_location() #10
  store i32 %4187, ptr %4188, align 4, !tbaa !5
  %4189 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4190 = load i32, ptr @test_count, align 4, !tbaa !5
  %4191 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4192 = load i32, ptr %4191, align 4, !tbaa !5
  %4193 = call ptr @s2n_strerror(i32 noundef %4192, ptr noundef @.str.3)
  %4194 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4195 = load i32, ptr %4194, align 4, !tbaa !5
  %4196 = call ptr @s2n_strerror_debug(i32 noundef %4195, ptr noundef @.str.3)
  %4197 = call ptr @__errno_location() #10
  %4198 = load i32, ptr %4197, align 4, !tbaa !5
  %4199 = call ptr @strerror(i32 noundef %4198) #9
  %4200 = call ptr @__errno_location() #10
  %4201 = load i32, ptr %4200, align 4, !tbaa !5
  %4202 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4189, ptr noundef @.str, i32 noundef %4190, ptr noundef @.str.45, ptr noundef @.str.2, i32 noundef 295, ptr noundef %4193, ptr noundef %4196, ptr noundef %4199, i32 noundef %4201) #9
  br label %4220

4203:                                             ; preds = %4181, %4174
  %4204 = load i32, ptr %88, align 4, !tbaa !5
  %4205 = call ptr @__errno_location() #10
  store i32 %4204, ptr %4205, align 4, !tbaa !5
  %4206 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4207 = load i32, ptr @test_count, align 4, !tbaa !5
  %4208 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4209 = load i32, ptr %4208, align 4, !tbaa !5
  %4210 = call ptr @s2n_strerror(i32 noundef %4209, ptr noundef @.str.3)
  %4211 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4212 = load i32, ptr %4211, align 4, !tbaa !5
  %4213 = call ptr @s2n_strerror_debug(i32 noundef %4212, ptr noundef @.str.3)
  %4214 = call ptr @__errno_location() #10
  %4215 = load i32, ptr %4214, align 4, !tbaa !5
  %4216 = call ptr @strerror(i32 noundef %4215) #9
  %4217 = call ptr @__errno_location() #10
  %4218 = load i32, ptr %4217, align 4, !tbaa !5
  %4219 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4206, ptr noundef @.str.4, i32 noundef %4207, ptr noundef @.str.45, ptr noundef @.str.2, i32 noundef 295, ptr noundef %4210, ptr noundef %4213, ptr noundef %4216, i32 noundef %4218) #9
  br label %4220

4220:                                             ; preds = %4203, %4186
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #9
  br label %4221

4221:                                             ; preds = %4220
  br label %4222

4222:                                             ; preds = %4221
  call void @exit(i32 noundef 1) #11
  unreachable

4223:                                             ; No predecessors!
  br label %4224

4224:                                             ; preds = %4223
  br label %4225

4225:                                             ; preds = %4224, %4166
  br label %4226

4226:                                             ; preds = %4225
  br label %4227

4227:                                             ; preds = %4226
  br label %4228

4228:                                             ; preds = %4227
  %4229 = load i32, ptr @test_count, align 4, !tbaa !5
  %4230 = add nsw i32 %4229, 1
  store i32 %4230, ptr @test_count, align 4, !tbaa !5
  %4231 = load ptr, ptr %81, align 8, !tbaa !9
  %4232 = load ptr, ptr %73, align 8, !tbaa !9
  %4233 = call i32 @s2n_try_handshake_with_async_pkey_op(ptr noundef %4231, ptr noundef %4232, ptr noundef @s2n_test_apply_with_invalid_signature_handler)
  %4234 = icmp eq i32 %4233, -1
  br i1 %4234, label %4235, label %4288

4235:                                             ; preds = %4228
  br label %4236

4236:                                             ; preds = %4235
  br label %4237

4237:                                             ; preds = %4236
  call void @llvm.lifetime.start.p0(i64 4, ptr %89) #9
  %4238 = call ptr @__errno_location() #10
  %4239 = load i32, ptr %4238, align 4, !tbaa !5
  store i32 %4239, ptr %89, align 4, !tbaa !5
  %4240 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4241 = call i32 @s2n_print_stacktrace(ptr noundef %4240)
  %4242 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4243 = trunc i8 %4242 to i1
  br i1 %4243, label %4244, label %4266

4244:                                             ; preds = %4237
  %4245 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4246 = call i32 @fileno(ptr noundef %4245) #9
  %4247 = call i32 @isatty(i32 noundef %4246) #9
  %4248 = icmp ne i32 %4247, 0
  br i1 %4248, label %4249, label %4266

4249:                                             ; preds = %4244
  %4250 = load i32, ptr %89, align 4, !tbaa !5
  %4251 = call ptr @__errno_location() #10
  store i32 %4250, ptr %4251, align 4, !tbaa !5
  %4252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4253 = load i32, ptr @test_count, align 4, !tbaa !5
  %4254 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4255 = load i32, ptr %4254, align 4, !tbaa !5
  %4256 = call ptr @s2n_strerror(i32 noundef %4255, ptr noundef @.str.3)
  %4257 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4258 = load i32, ptr %4257, align 4, !tbaa !5
  %4259 = call ptr @s2n_strerror_debug(i32 noundef %4258, ptr noundef @.str.3)
  %4260 = call ptr @__errno_location() #10
  %4261 = load i32, ptr %4260, align 4, !tbaa !5
  %4262 = call ptr @strerror(i32 noundef %4261) #9
  %4263 = call ptr @__errno_location() #10
  %4264 = load i32, ptr %4263, align 4, !tbaa !5
  %4265 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4252, ptr noundef @.str, i32 noundef %4253, ptr noundef @.str.57, ptr noundef @.str.2, i32 noundef 298, ptr noundef %4256, ptr noundef %4259, ptr noundef %4262, i32 noundef %4264) #9
  br label %4283

4266:                                             ; preds = %4244, %4237
  %4267 = load i32, ptr %89, align 4, !tbaa !5
  %4268 = call ptr @__errno_location() #10
  store i32 %4267, ptr %4268, align 4, !tbaa !5
  %4269 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4270 = load i32, ptr @test_count, align 4, !tbaa !5
  %4271 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4272 = load i32, ptr %4271, align 4, !tbaa !5
  %4273 = call ptr @s2n_strerror(i32 noundef %4272, ptr noundef @.str.3)
  %4274 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4275 = load i32, ptr %4274, align 4, !tbaa !5
  %4276 = call ptr @s2n_strerror_debug(i32 noundef %4275, ptr noundef @.str.3)
  %4277 = call ptr @__errno_location() #10
  %4278 = load i32, ptr %4277, align 4, !tbaa !5
  %4279 = call ptr @strerror(i32 noundef %4278) #9
  %4280 = call ptr @__errno_location() #10
  %4281 = load i32, ptr %4280, align 4, !tbaa !5
  %4282 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4269, ptr noundef @.str.4, i32 noundef %4270, ptr noundef @.str.57, ptr noundef @.str.2, i32 noundef 298, ptr noundef %4273, ptr noundef %4276, ptr noundef %4279, i32 noundef %4281) #9
  br label %4283

4283:                                             ; preds = %4266, %4249
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #9
  br label %4284

4284:                                             ; preds = %4283
  br label %4285

4285:                                             ; preds = %4284
  call void @exit(i32 noundef 1) #11
  unreachable

4286:                                             ; No predecessors!
  br label %4287

4287:                                             ; preds = %4286
  br label %4288

4288:                                             ; preds = %4287, %4228
  br label %4289

4289:                                             ; preds = %4288
  br label %4290

4290:                                             ; preds = %4289
  br label %4291

4291:                                             ; preds = %4290
  %4292 = load i32, ptr @test_count, align 4, !tbaa !5
  %4293 = add nsw i32 %4292, 1
  store i32 %4293, ptr @test_count, align 4, !tbaa !5
  %4294 = load i8, ptr @async_callback_invoked, align 1, !tbaa !11, !range !13, !noundef !14
  %4295 = trunc i8 %4294 to i1
  br i1 %4295, label %4349, label %4296

4296:                                             ; preds = %4291
  br label %4297

4297:                                             ; preds = %4296
  br label %4298

4298:                                             ; preds = %4297
  call void @llvm.lifetime.start.p0(i64 4, ptr %90) #9
  %4299 = call ptr @__errno_location() #10
  %4300 = load i32, ptr %4299, align 4, !tbaa !5
  store i32 %4300, ptr %90, align 4, !tbaa !5
  %4301 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4302 = call i32 @s2n_print_stacktrace(ptr noundef %4301)
  %4303 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4304 = trunc i8 %4303 to i1
  br i1 %4304, label %4305, label %4327

4305:                                             ; preds = %4298
  %4306 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4307 = call i32 @fileno(ptr noundef %4306) #9
  %4308 = call i32 @isatty(i32 noundef %4307) #9
  %4309 = icmp ne i32 %4308, 0
  br i1 %4309, label %4310, label %4327

4310:                                             ; preds = %4305
  %4311 = load i32, ptr %90, align 4, !tbaa !5
  %4312 = call ptr @__errno_location() #10
  store i32 %4311, ptr %4312, align 4, !tbaa !5
  %4313 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4314 = load i32, ptr @test_count, align 4, !tbaa !5
  %4315 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4316 = load i32, ptr %4315, align 4, !tbaa !5
  %4317 = call ptr @s2n_strerror(i32 noundef %4316, ptr noundef @.str.3)
  %4318 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4319 = load i32, ptr %4318, align 4, !tbaa !5
  %4320 = call ptr @s2n_strerror_debug(i32 noundef %4319, ptr noundef @.str.3)
  %4321 = call ptr @__errno_location() #10
  %4322 = load i32, ptr %4321, align 4, !tbaa !5
  %4323 = call ptr @strerror(i32 noundef %4322) #9
  %4324 = call ptr @__errno_location() #10
  %4325 = load i32, ptr %4324, align 4, !tbaa !5
  %4326 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4313, ptr noundef @.str, i32 noundef %4314, ptr noundef @.str.47, ptr noundef @.str.2, i32 noundef 301, ptr noundef %4317, ptr noundef %4320, ptr noundef %4323, i32 noundef %4325) #9
  br label %4344

4327:                                             ; preds = %4305, %4298
  %4328 = load i32, ptr %90, align 4, !tbaa !5
  %4329 = call ptr @__errno_location() #10
  store i32 %4328, ptr %4329, align 4, !tbaa !5
  %4330 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4331 = load i32, ptr @test_count, align 4, !tbaa !5
  %4332 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4333 = load i32, ptr %4332, align 4, !tbaa !5
  %4334 = call ptr @s2n_strerror(i32 noundef %4333, ptr noundef @.str.3)
  %4335 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4336 = load i32, ptr %4335, align 4, !tbaa !5
  %4337 = call ptr @s2n_strerror_debug(i32 noundef %4336, ptr noundef @.str.3)
  %4338 = call ptr @__errno_location() #10
  %4339 = load i32, ptr %4338, align 4, !tbaa !5
  %4340 = call ptr @strerror(i32 noundef %4339) #9
  %4341 = call ptr @__errno_location() #10
  %4342 = load i32, ptr %4341, align 4, !tbaa !5
  %4343 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4330, ptr noundef @.str.4, i32 noundef %4331, ptr noundef @.str.47, ptr noundef @.str.2, i32 noundef 301, ptr noundef %4334, ptr noundef %4337, ptr noundef %4340, i32 noundef %4342) #9
  br label %4344

4344:                                             ; preds = %4327, %4310
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #9
  br label %4345

4345:                                             ; preds = %4344
  br label %4346

4346:                                             ; preds = %4345
  call void @exit(i32 noundef 1) #11
  unreachable

4347:                                             ; No predecessors!
  br label %4348

4348:                                             ; preds = %4347
  br label %4349

4349:                                             ; preds = %4348, %4291
  br label %4350

4350:                                             ; preds = %4349
  br label %4351

4351:                                             ; preds = %4350
  br label %4352

4352:                                             ; preds = %4351
  %4353 = load i32, ptr @test_count, align 4, !tbaa !5
  %4354 = add nsw i32 %4353, 1
  store i32 %4354, ptr @test_count, align 4, !tbaa !5
  %4355 = load i8, ptr @async_sign_operation_called_s2n_client, align 1, !tbaa !11, !range !13, !noundef !14
  %4356 = trunc i8 %4355 to i1
  br i1 %4356, label %4410, label %4357

4357:                                             ; preds = %4352
  br label %4358

4358:                                             ; preds = %4357
  br label %4359

4359:                                             ; preds = %4358
  call void @llvm.lifetime.start.p0(i64 4, ptr %91) #9
  %4360 = call ptr @__errno_location() #10
  %4361 = load i32, ptr %4360, align 4, !tbaa !5
  store i32 %4361, ptr %91, align 4, !tbaa !5
  %4362 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4363 = call i32 @s2n_print_stacktrace(ptr noundef %4362)
  %4364 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4365 = trunc i8 %4364 to i1
  br i1 %4365, label %4366, label %4388

4366:                                             ; preds = %4359
  %4367 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4368 = call i32 @fileno(ptr noundef %4367) #9
  %4369 = call i32 @isatty(i32 noundef %4368) #9
  %4370 = icmp ne i32 %4369, 0
  br i1 %4370, label %4371, label %4388

4371:                                             ; preds = %4366
  %4372 = load i32, ptr %91, align 4, !tbaa !5
  %4373 = call ptr @__errno_location() #10
  store i32 %4372, ptr %4373, align 4, !tbaa !5
  %4374 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4375 = load i32, ptr @test_count, align 4, !tbaa !5
  %4376 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4377 = load i32, ptr %4376, align 4, !tbaa !5
  %4378 = call ptr @s2n_strerror(i32 noundef %4377, ptr noundef @.str.3)
  %4379 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4380 = load i32, ptr %4379, align 4, !tbaa !5
  %4381 = call ptr @s2n_strerror_debug(i32 noundef %4380, ptr noundef @.str.3)
  %4382 = call ptr @__errno_location() #10
  %4383 = load i32, ptr %4382, align 4, !tbaa !5
  %4384 = call ptr @strerror(i32 noundef %4383) #9
  %4385 = call ptr @__errno_location() #10
  %4386 = load i32, ptr %4385, align 4, !tbaa !5
  %4387 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4374, ptr noundef @.str, i32 noundef %4375, ptr noundef @.str.58, ptr noundef @.str.2, i32 noundef 304, ptr noundef %4378, ptr noundef %4381, ptr noundef %4384, i32 noundef %4386) #9
  br label %4405

4388:                                             ; preds = %4366, %4359
  %4389 = load i32, ptr %91, align 4, !tbaa !5
  %4390 = call ptr @__errno_location() #10
  store i32 %4389, ptr %4390, align 4, !tbaa !5
  %4391 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4392 = load i32, ptr @test_count, align 4, !tbaa !5
  %4393 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4394 = load i32, ptr %4393, align 4, !tbaa !5
  %4395 = call ptr @s2n_strerror(i32 noundef %4394, ptr noundef @.str.3)
  %4396 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4397 = load i32, ptr %4396, align 4, !tbaa !5
  %4398 = call ptr @s2n_strerror_debug(i32 noundef %4397, ptr noundef @.str.3)
  %4399 = call ptr @__errno_location() #10
  %4400 = load i32, ptr %4399, align 4, !tbaa !5
  %4401 = call ptr @strerror(i32 noundef %4400) #9
  %4402 = call ptr @__errno_location() #10
  %4403 = load i32, ptr %4402, align 4, !tbaa !5
  %4404 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4391, ptr noundef @.str.4, i32 noundef %4392, ptr noundef @.str.58, ptr noundef @.str.2, i32 noundef 304, ptr noundef %4395, ptr noundef %4398, ptr noundef %4401, i32 noundef %4403) #9
  br label %4405

4405:                                             ; preds = %4388, %4371
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #9
  br label %4406

4406:                                             ; preds = %4405
  br label %4407

4407:                                             ; preds = %4406
  call void @exit(i32 noundef 1) #11
  unreachable

4408:                                             ; No predecessors!
  br label %4409

4409:                                             ; preds = %4408
  br label %4410

4410:                                             ; preds = %4409, %4352
  br label %4411

4411:                                             ; preds = %4410
  br label %4412

4412:                                             ; preds = %4411
  br label %4413

4413:                                             ; preds = %4412
  %4414 = load i32, ptr @test_count, align 4, !tbaa !5
  %4415 = add nsw i32 %4414, 1
  store i32 %4415, ptr @test_count, align 4, !tbaa !5
  %4416 = load ptr, ptr %81, align 8, !tbaa !9
  %4417 = call i32 @s2n_connection_client_cert_used(ptr noundef %4416)
  %4418 = icmp ne i32 %4417, 0
  br i1 %4418, label %4472, label %4419

4419:                                             ; preds = %4413
  br label %4420

4420:                                             ; preds = %4419
  br label %4421

4421:                                             ; preds = %4420
  call void @llvm.lifetime.start.p0(i64 4, ptr %92) #9
  %4422 = call ptr @__errno_location() #10
  %4423 = load i32, ptr %4422, align 4, !tbaa !5
  store i32 %4423, ptr %92, align 4, !tbaa !5
  %4424 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4425 = call i32 @s2n_print_stacktrace(ptr noundef %4424)
  %4426 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4427 = trunc i8 %4426 to i1
  br i1 %4427, label %4428, label %4450

4428:                                             ; preds = %4421
  %4429 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4430 = call i32 @fileno(ptr noundef %4429) #9
  %4431 = call i32 @isatty(i32 noundef %4430) #9
  %4432 = icmp ne i32 %4431, 0
  br i1 %4432, label %4433, label %4450

4433:                                             ; preds = %4428
  %4434 = load i32, ptr %92, align 4, !tbaa !5
  %4435 = call ptr @__errno_location() #10
  store i32 %4434, ptr %4435, align 4, !tbaa !5
  %4436 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4437 = load i32, ptr @test_count, align 4, !tbaa !5
  %4438 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4439 = load i32, ptr %4438, align 4, !tbaa !5
  %4440 = call ptr @s2n_strerror(i32 noundef %4439, ptr noundef @.str.3)
  %4441 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4442 = load i32, ptr %4441, align 4, !tbaa !5
  %4443 = call ptr @s2n_strerror_debug(i32 noundef %4442, ptr noundef @.str.3)
  %4444 = call ptr @__errno_location() #10
  %4445 = load i32, ptr %4444, align 4, !tbaa !5
  %4446 = call ptr @strerror(i32 noundef %4445) #9
  %4447 = call ptr @__errno_location() #10
  %4448 = load i32, ptr %4447, align 4, !tbaa !5
  %4449 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4436, ptr noundef @.str, i32 noundef %4437, ptr noundef @.str.48, ptr noundef @.str.2, i32 noundef 307, ptr noundef %4440, ptr noundef %4443, ptr noundef %4446, i32 noundef %4448) #9
  br label %4467

4450:                                             ; preds = %4428, %4421
  %4451 = load i32, ptr %92, align 4, !tbaa !5
  %4452 = call ptr @__errno_location() #10
  store i32 %4451, ptr %4452, align 4, !tbaa !5
  %4453 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4454 = load i32, ptr @test_count, align 4, !tbaa !5
  %4455 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4456 = load i32, ptr %4455, align 4, !tbaa !5
  %4457 = call ptr @s2n_strerror(i32 noundef %4456, ptr noundef @.str.3)
  %4458 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4459 = load i32, ptr %4458, align 4, !tbaa !5
  %4460 = call ptr @s2n_strerror_debug(i32 noundef %4459, ptr noundef @.str.3)
  %4461 = call ptr @__errno_location() #10
  %4462 = load i32, ptr %4461, align 4, !tbaa !5
  %4463 = call ptr @strerror(i32 noundef %4462) #9
  %4464 = call ptr @__errno_location() #10
  %4465 = load i32, ptr %4464, align 4, !tbaa !5
  %4466 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4453, ptr noundef @.str.4, i32 noundef %4454, ptr noundef @.str.48, ptr noundef @.str.2, i32 noundef 307, ptr noundef %4457, ptr noundef %4460, ptr noundef %4463, i32 noundef %4465) #9
  br label %4467

4467:                                             ; preds = %4450, %4433
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #9
  br label %4468

4468:                                             ; preds = %4467
  br label %4469

4469:                                             ; preds = %4468
  call void @exit(i32 noundef 1) #11
  unreachable

4470:                                             ; No predecessors!
  br label %4471

4471:                                             ; preds = %4470
  br label %4472

4472:                                             ; preds = %4471, %4413
  br label %4473

4473:                                             ; preds = %4472
  br label %4474

4474:                                             ; preds = %4473
  br label %4475

4475:                                             ; preds = %4474
  %4476 = load i32, ptr @test_count, align 4, !tbaa !5
  %4477 = add nsw i32 %4476, 1
  store i32 %4477, ptr @test_count, align 4, !tbaa !5
  %4478 = load ptr, ptr %73, align 8, !tbaa !9
  %4479 = call i32 @s2n_connection_client_cert_used(ptr noundef %4478)
  %4480 = icmp ne i32 %4479, 0
  br i1 %4480, label %4534, label %4481

4481:                                             ; preds = %4475
  br label %4482

4482:                                             ; preds = %4481
  br label %4483

4483:                                             ; preds = %4482
  call void @llvm.lifetime.start.p0(i64 4, ptr %93) #9
  %4484 = call ptr @__errno_location() #10
  %4485 = load i32, ptr %4484, align 4, !tbaa !5
  store i32 %4485, ptr %93, align 4, !tbaa !5
  %4486 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4487 = call i32 @s2n_print_stacktrace(ptr noundef %4486)
  %4488 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4489 = trunc i8 %4488 to i1
  br i1 %4489, label %4490, label %4512

4490:                                             ; preds = %4483
  %4491 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4492 = call i32 @fileno(ptr noundef %4491) #9
  %4493 = call i32 @isatty(i32 noundef %4492) #9
  %4494 = icmp ne i32 %4493, 0
  br i1 %4494, label %4495, label %4512

4495:                                             ; preds = %4490
  %4496 = load i32, ptr %93, align 4, !tbaa !5
  %4497 = call ptr @__errno_location() #10
  store i32 %4496, ptr %4497, align 4, !tbaa !5
  %4498 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4499 = load i32, ptr @test_count, align 4, !tbaa !5
  %4500 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4501 = load i32, ptr %4500, align 4, !tbaa !5
  %4502 = call ptr @s2n_strerror(i32 noundef %4501, ptr noundef @.str.3)
  %4503 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4504 = load i32, ptr %4503, align 4, !tbaa !5
  %4505 = call ptr @s2n_strerror_debug(i32 noundef %4504, ptr noundef @.str.3)
  %4506 = call ptr @__errno_location() #10
  %4507 = load i32, ptr %4506, align 4, !tbaa !5
  %4508 = call ptr @strerror(i32 noundef %4507) #9
  %4509 = call ptr @__errno_location() #10
  %4510 = load i32, ptr %4509, align 4, !tbaa !5
  %4511 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4498, ptr noundef @.str, i32 noundef %4499, ptr noundef @.str.49, ptr noundef @.str.2, i32 noundef 308, ptr noundef %4502, ptr noundef %4505, ptr noundef %4508, i32 noundef %4510) #9
  br label %4529

4512:                                             ; preds = %4490, %4483
  %4513 = load i32, ptr %93, align 4, !tbaa !5
  %4514 = call ptr @__errno_location() #10
  store i32 %4513, ptr %4514, align 4, !tbaa !5
  %4515 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4516 = load i32, ptr @test_count, align 4, !tbaa !5
  %4517 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4518 = load i32, ptr %4517, align 4, !tbaa !5
  %4519 = call ptr @s2n_strerror(i32 noundef %4518, ptr noundef @.str.3)
  %4520 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4521 = load i32, ptr %4520, align 4, !tbaa !5
  %4522 = call ptr @s2n_strerror_debug(i32 noundef %4521, ptr noundef @.str.3)
  %4523 = call ptr @__errno_location() #10
  %4524 = load i32, ptr %4523, align 4, !tbaa !5
  %4525 = call ptr @strerror(i32 noundef %4524) #9
  %4526 = call ptr @__errno_location() #10
  %4527 = load i32, ptr %4526, align 4, !tbaa !5
  %4528 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4515, ptr noundef @.str.4, i32 noundef %4516, ptr noundef @.str.49, ptr noundef @.str.2, i32 noundef 308, ptr noundef %4519, ptr noundef %4522, ptr noundef %4525, i32 noundef %4527) #9
  br label %4529

4529:                                             ; preds = %4512, %4495
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #9
  br label %4530

4530:                                             ; preds = %4529
  br label %4531

4531:                                             ; preds = %4530
  call void @exit(i32 noundef 1) #11
  unreachable

4532:                                             ; No predecessors!
  br label %4533

4533:                                             ; preds = %4532
  br label %4534

4534:                                             ; preds = %4533, %4475
  br label %4535

4535:                                             ; preds = %4534
  br label %4536

4536:                                             ; preds = %4535
  br label %4537

4537:                                             ; preds = %4536
  %4538 = load i32, ptr @test_count, align 4, !tbaa !5
  %4539 = add nsw i32 %4538, 1
  store i32 %4539, ptr @test_count, align 4, !tbaa !5
  %4540 = load ptr, ptr %73, align 8, !tbaa !9
  %4541 = getelementptr inbounds %struct.s2n_connection, ptr %4540, i32 0, i32 23
  %4542 = load i8, ptr %4541, align 4, !tbaa !52
  %4543 = zext i8 %4542 to i32
  %4544 = icmp eq i32 %4543, 33
  br i1 %4544, label %4598, label %4545

4545:                                             ; preds = %4537
  br label %4546

4546:                                             ; preds = %4545
  br label %4547

4547:                                             ; preds = %4546
  call void @llvm.lifetime.start.p0(i64 4, ptr %94) #9
  %4548 = call ptr @__errno_location() #10
  %4549 = load i32, ptr %4548, align 4, !tbaa !5
  store i32 %4549, ptr %94, align 4, !tbaa !5
  %4550 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4551 = call i32 @s2n_print_stacktrace(ptr noundef %4550)
  %4552 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4553 = trunc i8 %4552 to i1
  br i1 %4553, label %4554, label %4576

4554:                                             ; preds = %4547
  %4555 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4556 = call i32 @fileno(ptr noundef %4555) #9
  %4557 = call i32 @isatty(i32 noundef %4556) #9
  %4558 = icmp ne i32 %4557, 0
  br i1 %4558, label %4559, label %4576

4559:                                             ; preds = %4554
  %4560 = load i32, ptr %94, align 4, !tbaa !5
  %4561 = call ptr @__errno_location() #10
  store i32 %4560, ptr %4561, align 4, !tbaa !5
  %4562 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4563 = load i32, ptr @test_count, align 4, !tbaa !5
  %4564 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4565 = load i32, ptr %4564, align 4, !tbaa !5
  %4566 = call ptr @s2n_strerror(i32 noundef %4565, ptr noundef @.str.3)
  %4567 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4568 = load i32, ptr %4567, align 4, !tbaa !5
  %4569 = call ptr @s2n_strerror_debug(i32 noundef %4568, ptr noundef @.str.3)
  %4570 = call ptr @__errno_location() #10
  %4571 = load i32, ptr %4570, align 4, !tbaa !5
  %4572 = call ptr @strerror(i32 noundef %4571) #9
  %4573 = call ptr @__errno_location() #10
  %4574 = load i32, ptr %4573, align 4, !tbaa !5
  %4575 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4562, ptr noundef @.str, i32 noundef %4563, ptr noundef @.str.50, ptr noundef @.str.2, i32 noundef 309, ptr noundef %4566, ptr noundef %4569, ptr noundef %4572, i32 noundef %4574) #9
  br label %4593

4576:                                             ; preds = %4554, %4547
  %4577 = load i32, ptr %94, align 4, !tbaa !5
  %4578 = call ptr @__errno_location() #10
  store i32 %4577, ptr %4578, align 4, !tbaa !5
  %4579 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4580 = load i32, ptr @test_count, align 4, !tbaa !5
  %4581 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4582 = load i32, ptr %4581, align 4, !tbaa !5
  %4583 = call ptr @s2n_strerror(i32 noundef %4582, ptr noundef @.str.3)
  %4584 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4585 = load i32, ptr %4584, align 4, !tbaa !5
  %4586 = call ptr @s2n_strerror_debug(i32 noundef %4585, ptr noundef @.str.3)
  %4587 = call ptr @__errno_location() #10
  %4588 = load i32, ptr %4587, align 4, !tbaa !5
  %4589 = call ptr @strerror(i32 noundef %4588) #9
  %4590 = call ptr @__errno_location() #10
  %4591 = load i32, ptr %4590, align 4, !tbaa !5
  %4592 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4579, ptr noundef @.str.4, i32 noundef %4580, ptr noundef @.str.50, ptr noundef @.str.2, i32 noundef 309, ptr noundef %4583, ptr noundef %4586, ptr noundef %4589, i32 noundef %4591) #9
  br label %4593

4593:                                             ; preds = %4576, %4559
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #9
  br label %4594

4594:                                             ; preds = %4593
  br label %4595

4595:                                             ; preds = %4594
  call void @exit(i32 noundef 1) #11
  unreachable

4596:                                             ; No predecessors!
  br label %4597

4597:                                             ; preds = %4596
  br label %4598

4598:                                             ; preds = %4597, %4537
  br label %4599

4599:                                             ; preds = %4598
  br label %4600

4600:                                             ; preds = %4599
  br label %4601

4601:                                             ; preds = %4600
  %4602 = load i32, ptr @test_count, align 4, !tbaa !5
  %4603 = add nsw i32 %4602, 1
  store i32 %4603, ptr @test_count, align 4, !tbaa !5
  %4604 = load ptr, ptr %81, align 8, !tbaa !9
  %4605 = getelementptr inbounds %struct.s2n_connection, ptr %4604, i32 0, i32 23
  %4606 = load i8, ptr %4605, align 4, !tbaa !52
  %4607 = zext i8 %4606 to i32
  %4608 = icmp eq i32 %4607, 33
  br i1 %4608, label %4662, label %4609

4609:                                             ; preds = %4601
  br label %4610

4610:                                             ; preds = %4609
  br label %4611

4611:                                             ; preds = %4610
  call void @llvm.lifetime.start.p0(i64 4, ptr %95) #9
  %4612 = call ptr @__errno_location() #10
  %4613 = load i32, ptr %4612, align 4, !tbaa !5
  store i32 %4613, ptr %95, align 4, !tbaa !5
  %4614 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4615 = call i32 @s2n_print_stacktrace(ptr noundef %4614)
  %4616 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4617 = trunc i8 %4616 to i1
  br i1 %4617, label %4618, label %4640

4618:                                             ; preds = %4611
  %4619 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4620 = call i32 @fileno(ptr noundef %4619) #9
  %4621 = call i32 @isatty(i32 noundef %4620) #9
  %4622 = icmp ne i32 %4621, 0
  br i1 %4622, label %4623, label %4640

4623:                                             ; preds = %4618
  %4624 = load i32, ptr %95, align 4, !tbaa !5
  %4625 = call ptr @__errno_location() #10
  store i32 %4624, ptr %4625, align 4, !tbaa !5
  %4626 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4627 = load i32, ptr @test_count, align 4, !tbaa !5
  %4628 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4629 = load i32, ptr %4628, align 4, !tbaa !5
  %4630 = call ptr @s2n_strerror(i32 noundef %4629, ptr noundef @.str.3)
  %4631 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4632 = load i32, ptr %4631, align 4, !tbaa !5
  %4633 = call ptr @s2n_strerror_debug(i32 noundef %4632, ptr noundef @.str.3)
  %4634 = call ptr @__errno_location() #10
  %4635 = load i32, ptr %4634, align 4, !tbaa !5
  %4636 = call ptr @strerror(i32 noundef %4635) #9
  %4637 = call ptr @__errno_location() #10
  %4638 = load i32, ptr %4637, align 4, !tbaa !5
  %4639 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4626, ptr noundef @.str, i32 noundef %4627, ptr noundef @.str.51, ptr noundef @.str.2, i32 noundef 310, ptr noundef %4630, ptr noundef %4633, ptr noundef %4636, i32 noundef %4638) #9
  br label %4657

4640:                                             ; preds = %4618, %4611
  %4641 = load i32, ptr %95, align 4, !tbaa !5
  %4642 = call ptr @__errno_location() #10
  store i32 %4641, ptr %4642, align 4, !tbaa !5
  %4643 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4644 = load i32, ptr @test_count, align 4, !tbaa !5
  %4645 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4646 = load i32, ptr %4645, align 4, !tbaa !5
  %4647 = call ptr @s2n_strerror(i32 noundef %4646, ptr noundef @.str.3)
  %4648 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4649 = load i32, ptr %4648, align 4, !tbaa !5
  %4650 = call ptr @s2n_strerror_debug(i32 noundef %4649, ptr noundef @.str.3)
  %4651 = call ptr @__errno_location() #10
  %4652 = load i32, ptr %4651, align 4, !tbaa !5
  %4653 = call ptr @strerror(i32 noundef %4652) #9
  %4654 = call ptr @__errno_location() #10
  %4655 = load i32, ptr %4654, align 4, !tbaa !5
  %4656 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4643, ptr noundef @.str.4, i32 noundef %4644, ptr noundef @.str.51, ptr noundef @.str.2, i32 noundef 310, ptr noundef %4647, ptr noundef %4650, ptr noundef %4653, i32 noundef %4655) #9
  br label %4657

4657:                                             ; preds = %4640, %4623
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #9
  br label %4658

4658:                                             ; preds = %4657
  br label %4659

4659:                                             ; preds = %4658
  call void @exit(i32 noundef 1) #11
  unreachable

4660:                                             ; No predecessors!
  br label %4661

4661:                                             ; preds = %4660
  br label %4662

4662:                                             ; preds = %4661, %4601
  br label %4663

4663:                                             ; preds = %4662
  br label %4664

4664:                                             ; preds = %4663
  br label %4665

4665:                                             ; preds = %4664
  %4666 = load i32, ptr @test_count, align 4, !tbaa !5
  %4667 = add nsw i32 %4666, 1
  store i32 %4667, ptr @test_count, align 4, !tbaa !5
  %4668 = load ptr, ptr %81, align 8, !tbaa !9
  %4669 = call i32 @s2n_connection_free(ptr noundef %4668)
  %4670 = icmp eq i32 %4669, -1
  br i1 %4670, label %4671, label %4724

4671:                                             ; preds = %4665
  br label %4672

4672:                                             ; preds = %4671
  br label %4673

4673:                                             ; preds = %4672
  call void @llvm.lifetime.start.p0(i64 4, ptr %96) #9
  %4674 = call ptr @__errno_location() #10
  %4675 = load i32, ptr %4674, align 4, !tbaa !5
  store i32 %4675, ptr %96, align 4, !tbaa !5
  %4676 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4677 = call i32 @s2n_print_stacktrace(ptr noundef %4676)
  %4678 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4679 = trunc i8 %4678 to i1
  br i1 %4679, label %4680, label %4702

4680:                                             ; preds = %4673
  %4681 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4682 = call i32 @fileno(ptr noundef %4681) #9
  %4683 = call i32 @isatty(i32 noundef %4682) #9
  %4684 = icmp ne i32 %4683, 0
  br i1 %4684, label %4685, label %4702

4685:                                             ; preds = %4680
  %4686 = load i32, ptr %96, align 4, !tbaa !5
  %4687 = call ptr @__errno_location() #10
  store i32 %4686, ptr %4687, align 4, !tbaa !5
  %4688 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4689 = load i32, ptr @test_count, align 4, !tbaa !5
  %4690 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4691 = load i32, ptr %4690, align 4, !tbaa !5
  %4692 = call ptr @s2n_strerror(i32 noundef %4691, ptr noundef @.str.3)
  %4693 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4694 = load i32, ptr %4693, align 4, !tbaa !5
  %4695 = call ptr @s2n_strerror_debug(i32 noundef %4694, ptr noundef @.str.3)
  %4696 = call ptr @__errno_location() #10
  %4697 = load i32, ptr %4696, align 4, !tbaa !5
  %4698 = call ptr @strerror(i32 noundef %4697) #9
  %4699 = call ptr @__errno_location() #10
  %4700 = load i32, ptr %4699, align 4, !tbaa !5
  %4701 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4688, ptr noundef @.str, i32 noundef %4689, ptr noundef @.str.52, ptr noundef @.str.2, i32 noundef 313, ptr noundef %4692, ptr noundef %4695, ptr noundef %4698, i32 noundef %4700) #9
  br label %4719

4702:                                             ; preds = %4680, %4673
  %4703 = load i32, ptr %96, align 4, !tbaa !5
  %4704 = call ptr @__errno_location() #10
  store i32 %4703, ptr %4704, align 4, !tbaa !5
  %4705 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4706 = load i32, ptr @test_count, align 4, !tbaa !5
  %4707 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4708 = load i32, ptr %4707, align 4, !tbaa !5
  %4709 = call ptr @s2n_strerror(i32 noundef %4708, ptr noundef @.str.3)
  %4710 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4711 = load i32, ptr %4710, align 4, !tbaa !5
  %4712 = call ptr @s2n_strerror_debug(i32 noundef %4711, ptr noundef @.str.3)
  %4713 = call ptr @__errno_location() #10
  %4714 = load i32, ptr %4713, align 4, !tbaa !5
  %4715 = call ptr @strerror(i32 noundef %4714) #9
  %4716 = call ptr @__errno_location() #10
  %4717 = load i32, ptr %4716, align 4, !tbaa !5
  %4718 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4705, ptr noundef @.str.4, i32 noundef %4706, ptr noundef @.str.52, ptr noundef @.str.2, i32 noundef 313, ptr noundef %4709, ptr noundef %4712, ptr noundef %4715, i32 noundef %4717) #9
  br label %4719

4719:                                             ; preds = %4702, %4685
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #9
  br label %4720

4720:                                             ; preds = %4719
  br label %4721

4721:                                             ; preds = %4720
  call void @exit(i32 noundef 1) #11
  unreachable

4722:                                             ; No predecessors!
  br label %4723

4723:                                             ; preds = %4722
  br label %4724

4724:                                             ; preds = %4723, %4665
  br label %4725

4725:                                             ; preds = %4724
  br label %4726

4726:                                             ; preds = %4725
  br label %4727

4727:                                             ; preds = %4726
  %4728 = load i32, ptr @test_count, align 4, !tbaa !5
  %4729 = add nsw i32 %4728, 1
  store i32 %4729, ptr @test_count, align 4, !tbaa !5
  %4730 = load ptr, ptr %73, align 8, !tbaa !9
  %4731 = call i32 @s2n_connection_free(ptr noundef %4730)
  %4732 = icmp eq i32 %4731, -1
  br i1 %4732, label %4733, label %4786

4733:                                             ; preds = %4727
  br label %4734

4734:                                             ; preds = %4733
  br label %4735

4735:                                             ; preds = %4734
  call void @llvm.lifetime.start.p0(i64 4, ptr %97) #9
  %4736 = call ptr @__errno_location() #10
  %4737 = load i32, ptr %4736, align 4, !tbaa !5
  store i32 %4737, ptr %97, align 4, !tbaa !5
  %4738 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4739 = call i32 @s2n_print_stacktrace(ptr noundef %4738)
  %4740 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4741 = trunc i8 %4740 to i1
  br i1 %4741, label %4742, label %4764

4742:                                             ; preds = %4735
  %4743 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4744 = call i32 @fileno(ptr noundef %4743) #9
  %4745 = call i32 @isatty(i32 noundef %4744) #9
  %4746 = icmp ne i32 %4745, 0
  br i1 %4746, label %4747, label %4764

4747:                                             ; preds = %4742
  %4748 = load i32, ptr %97, align 4, !tbaa !5
  %4749 = call ptr @__errno_location() #10
  store i32 %4748, ptr %4749, align 4, !tbaa !5
  %4750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4751 = load i32, ptr @test_count, align 4, !tbaa !5
  %4752 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4753 = load i32, ptr %4752, align 4, !tbaa !5
  %4754 = call ptr @s2n_strerror(i32 noundef %4753, ptr noundef @.str.3)
  %4755 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4756 = load i32, ptr %4755, align 4, !tbaa !5
  %4757 = call ptr @s2n_strerror_debug(i32 noundef %4756, ptr noundef @.str.3)
  %4758 = call ptr @__errno_location() #10
  %4759 = load i32, ptr %4758, align 4, !tbaa !5
  %4760 = call ptr @strerror(i32 noundef %4759) #9
  %4761 = call ptr @__errno_location() #10
  %4762 = load i32, ptr %4761, align 4, !tbaa !5
  %4763 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4750, ptr noundef @.str, i32 noundef %4751, ptr noundef @.str.53, ptr noundef @.str.2, i32 noundef 314, ptr noundef %4754, ptr noundef %4757, ptr noundef %4760, i32 noundef %4762) #9
  br label %4781

4764:                                             ; preds = %4742, %4735
  %4765 = load i32, ptr %97, align 4, !tbaa !5
  %4766 = call ptr @__errno_location() #10
  store i32 %4765, ptr %4766, align 4, !tbaa !5
  %4767 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4768 = load i32, ptr @test_count, align 4, !tbaa !5
  %4769 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4770 = load i32, ptr %4769, align 4, !tbaa !5
  %4771 = call ptr @s2n_strerror(i32 noundef %4770, ptr noundef @.str.3)
  %4772 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4773 = load i32, ptr %4772, align 4, !tbaa !5
  %4774 = call ptr @s2n_strerror_debug(i32 noundef %4773, ptr noundef @.str.3)
  %4775 = call ptr @__errno_location() #10
  %4776 = load i32, ptr %4775, align 4, !tbaa !5
  %4777 = call ptr @strerror(i32 noundef %4776) #9
  %4778 = call ptr @__errno_location() #10
  %4779 = load i32, ptr %4778, align 4, !tbaa !5
  %4780 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4767, ptr noundef @.str.4, i32 noundef %4768, ptr noundef @.str.53, ptr noundef @.str.2, i32 noundef 314, ptr noundef %4771, ptr noundef %4774, ptr noundef %4777, i32 noundef %4779) #9
  br label %4781

4781:                                             ; preds = %4764, %4747
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #9
  br label %4782

4782:                                             ; preds = %4781
  br label %4783

4783:                                             ; preds = %4782
  call void @exit(i32 noundef 1) #11
  unreachable

4784:                                             ; No predecessors!
  br label %4785

4785:                                             ; preds = %4784
  br label %4786

4786:                                             ; preds = %4785, %4727
  br label %4787

4787:                                             ; preds = %4786
  br label %4788

4788:                                             ; preds = %4787
  br label %4789

4789:                                             ; preds = %4788
  %4790 = load i32, ptr @test_count, align 4, !tbaa !5
  %4791 = add nsw i32 %4790, 1
  store i32 %4791, ptr @test_count, align 4, !tbaa !5
  %4792 = call i32 @s2n_io_pair_close(ptr noundef %85)
  %4793 = icmp eq i32 %4792, -1
  br i1 %4793, label %4794, label %4847

4794:                                             ; preds = %4789
  br label %4795

4795:                                             ; preds = %4794
  br label %4796

4796:                                             ; preds = %4795
  call void @llvm.lifetime.start.p0(i64 4, ptr %98) #9
  %4797 = call ptr @__errno_location() #10
  %4798 = load i32, ptr %4797, align 4, !tbaa !5
  store i32 %4798, ptr %98, align 4, !tbaa !5
  %4799 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4800 = call i32 @s2n_print_stacktrace(ptr noundef %4799)
  %4801 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4802 = trunc i8 %4801 to i1
  br i1 %4802, label %4803, label %4825

4803:                                             ; preds = %4796
  %4804 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4805 = call i32 @fileno(ptr noundef %4804) #9
  %4806 = call i32 @isatty(i32 noundef %4805) #9
  %4807 = icmp ne i32 %4806, 0
  br i1 %4807, label %4808, label %4825

4808:                                             ; preds = %4803
  %4809 = load i32, ptr %98, align 4, !tbaa !5
  %4810 = call ptr @__errno_location() #10
  store i32 %4809, ptr %4810, align 4, !tbaa !5
  %4811 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4812 = load i32, ptr @test_count, align 4, !tbaa !5
  %4813 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4814 = load i32, ptr %4813, align 4, !tbaa !5
  %4815 = call ptr @s2n_strerror(i32 noundef %4814, ptr noundef @.str.3)
  %4816 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4817 = load i32, ptr %4816, align 4, !tbaa !5
  %4818 = call ptr @s2n_strerror_debug(i32 noundef %4817, ptr noundef @.str.3)
  %4819 = call ptr @__errno_location() #10
  %4820 = load i32, ptr %4819, align 4, !tbaa !5
  %4821 = call ptr @strerror(i32 noundef %4820) #9
  %4822 = call ptr @__errno_location() #10
  %4823 = load i32, ptr %4822, align 4, !tbaa !5
  %4824 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4811, ptr noundef @.str, i32 noundef %4812, ptr noundef @.str.54, ptr noundef @.str.2, i32 noundef 315, ptr noundef %4815, ptr noundef %4818, ptr noundef %4821, i32 noundef %4823) #9
  br label %4842

4825:                                             ; preds = %4803, %4796
  %4826 = load i32, ptr %98, align 4, !tbaa !5
  %4827 = call ptr @__errno_location() #10
  store i32 %4826, ptr %4827, align 4, !tbaa !5
  %4828 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4829 = load i32, ptr @test_count, align 4, !tbaa !5
  %4830 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4831 = load i32, ptr %4830, align 4, !tbaa !5
  %4832 = call ptr @s2n_strerror(i32 noundef %4831, ptr noundef @.str.3)
  %4833 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4834 = load i32, ptr %4833, align 4, !tbaa !5
  %4835 = call ptr @s2n_strerror_debug(i32 noundef %4834, ptr noundef @.str.3)
  %4836 = call ptr @__errno_location() #10
  %4837 = load i32, ptr %4836, align 4, !tbaa !5
  %4838 = call ptr @strerror(i32 noundef %4837) #9
  %4839 = call ptr @__errno_location() #10
  %4840 = load i32, ptr %4839, align 4, !tbaa !5
  %4841 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4828, ptr noundef @.str.4, i32 noundef %4829, ptr noundef @.str.54, ptr noundef @.str.2, i32 noundef 315, ptr noundef %4832, ptr noundef %4835, ptr noundef %4838, i32 noundef %4840) #9
  br label %4842

4842:                                             ; preds = %4825, %4808
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #9
  br label %4843

4843:                                             ; preds = %4842
  br label %4844

4844:                                             ; preds = %4843
  call void @exit(i32 noundef 1) #11
  unreachable

4845:                                             ; No predecessors!
  br label %4846

4846:                                             ; preds = %4845
  br label %4847

4847:                                             ; preds = %4846, %4789
  br label %4848

4848:                                             ; preds = %4847
  br label %4849

4849:                                             ; preds = %4848
  br label %4850

4850:                                             ; preds = %4849
  %4851 = load i32, ptr @test_count, align 4, !tbaa !5
  %4852 = add nsw i32 %4851, 1
  store i32 %4852, ptr @test_count, align 4, !tbaa !5
  %4853 = load ptr, ptr %66, align 8, !tbaa !9
  %4854 = call i32 @s2n_config_free(ptr noundef %4853)
  %4855 = icmp eq i32 %4854, -1
  br i1 %4855, label %4856, label %4909

4856:                                             ; preds = %4850
  br label %4857

4857:                                             ; preds = %4856
  br label %4858

4858:                                             ; preds = %4857
  call void @llvm.lifetime.start.p0(i64 4, ptr %99) #9
  %4859 = call ptr @__errno_location() #10
  %4860 = load i32, ptr %4859, align 4, !tbaa !5
  store i32 %4860, ptr %99, align 4, !tbaa !5
  %4861 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4862 = call i32 @s2n_print_stacktrace(ptr noundef %4861)
  %4863 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4864 = trunc i8 %4863 to i1
  br i1 %4864, label %4865, label %4887

4865:                                             ; preds = %4858
  %4866 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4867 = call i32 @fileno(ptr noundef %4866) #9
  %4868 = call i32 @isatty(i32 noundef %4867) #9
  %4869 = icmp ne i32 %4868, 0
  br i1 %4869, label %4870, label %4887

4870:                                             ; preds = %4865
  %4871 = load i32, ptr %99, align 4, !tbaa !5
  %4872 = call ptr @__errno_location() #10
  store i32 %4871, ptr %4872, align 4, !tbaa !5
  %4873 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4874 = load i32, ptr @test_count, align 4, !tbaa !5
  %4875 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4876 = load i32, ptr %4875, align 4, !tbaa !5
  %4877 = call ptr @s2n_strerror(i32 noundef %4876, ptr noundef @.str.3)
  %4878 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4879 = load i32, ptr %4878, align 4, !tbaa !5
  %4880 = call ptr @s2n_strerror_debug(i32 noundef %4879, ptr noundef @.str.3)
  %4881 = call ptr @__errno_location() #10
  %4882 = load i32, ptr %4881, align 4, !tbaa !5
  %4883 = call ptr @strerror(i32 noundef %4882) #9
  %4884 = call ptr @__errno_location() #10
  %4885 = load i32, ptr %4884, align 4, !tbaa !5
  %4886 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4873, ptr noundef @.str, i32 noundef %4874, ptr noundef @.str.55, ptr noundef @.str.2, i32 noundef 316, ptr noundef %4877, ptr noundef %4880, ptr noundef %4883, i32 noundef %4885) #9
  br label %4904

4887:                                             ; preds = %4865, %4858
  %4888 = load i32, ptr %99, align 4, !tbaa !5
  %4889 = call ptr @__errno_location() #10
  store i32 %4888, ptr %4889, align 4, !tbaa !5
  %4890 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4891 = load i32, ptr @test_count, align 4, !tbaa !5
  %4892 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4893 = load i32, ptr %4892, align 4, !tbaa !5
  %4894 = call ptr @s2n_strerror(i32 noundef %4893, ptr noundef @.str.3)
  %4895 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4896 = load i32, ptr %4895, align 4, !tbaa !5
  %4897 = call ptr @s2n_strerror_debug(i32 noundef %4896, ptr noundef @.str.3)
  %4898 = call ptr @__errno_location() #10
  %4899 = load i32, ptr %4898, align 4, !tbaa !5
  %4900 = call ptr @strerror(i32 noundef %4899) #9
  %4901 = call ptr @__errno_location() #10
  %4902 = load i32, ptr %4901, align 4, !tbaa !5
  %4903 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4890, ptr noundef @.str.4, i32 noundef %4891, ptr noundef @.str.55, ptr noundef @.str.2, i32 noundef 316, ptr noundef %4894, ptr noundef %4897, ptr noundef %4900, i32 noundef %4902) #9
  br label %4904

4904:                                             ; preds = %4887, %4870
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #9
  br label %4905

4905:                                             ; preds = %4904
  br label %4906

4906:                                             ; preds = %4905
  call void @exit(i32 noundef 1) #11
  unreachable

4907:                                             ; No predecessors!
  br label %4908

4908:                                             ; preds = %4907
  br label %4909

4909:                                             ; preds = %4908, %4850
  br label %4910

4910:                                             ; preds = %4909
  br label %4911

4911:                                             ; preds = %4910
  br label %4912

4912:                                             ; preds = %4911
  %4913 = load i32, ptr @test_count, align 4, !tbaa !5
  %4914 = add nsw i32 %4913, 1
  store i32 %4914, ptr @test_count, align 4, !tbaa !5
  %4915 = load ptr, ptr %77, align 8, !tbaa !9
  %4916 = call i32 @s2n_config_free(ptr noundef %4915)
  %4917 = icmp eq i32 %4916, -1
  br i1 %4917, label %4918, label %4971

4918:                                             ; preds = %4912
  br label %4919

4919:                                             ; preds = %4918
  br label %4920

4920:                                             ; preds = %4919
  call void @llvm.lifetime.start.p0(i64 4, ptr %100) #9
  %4921 = call ptr @__errno_location() #10
  %4922 = load i32, ptr %4921, align 4, !tbaa !5
  store i32 %4922, ptr %100, align 4, !tbaa !5
  %4923 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4924 = call i32 @s2n_print_stacktrace(ptr noundef %4923)
  %4925 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4926 = trunc i8 %4925 to i1
  br i1 %4926, label %4927, label %4949

4927:                                             ; preds = %4920
  %4928 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4929 = call i32 @fileno(ptr noundef %4928) #9
  %4930 = call i32 @isatty(i32 noundef %4929) #9
  %4931 = icmp ne i32 %4930, 0
  br i1 %4931, label %4932, label %4949

4932:                                             ; preds = %4927
  %4933 = load i32, ptr %100, align 4, !tbaa !5
  %4934 = call ptr @__errno_location() #10
  store i32 %4933, ptr %4934, align 4, !tbaa !5
  %4935 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4936 = load i32, ptr @test_count, align 4, !tbaa !5
  %4937 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4938 = load i32, ptr %4937, align 4, !tbaa !5
  %4939 = call ptr @s2n_strerror(i32 noundef %4938, ptr noundef @.str.3)
  %4940 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4941 = load i32, ptr %4940, align 4, !tbaa !5
  %4942 = call ptr @s2n_strerror_debug(i32 noundef %4941, ptr noundef @.str.3)
  %4943 = call ptr @__errno_location() #10
  %4944 = load i32, ptr %4943, align 4, !tbaa !5
  %4945 = call ptr @strerror(i32 noundef %4944) #9
  %4946 = call ptr @__errno_location() #10
  %4947 = load i32, ptr %4946, align 4, !tbaa !5
  %4948 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4935, ptr noundef @.str, i32 noundef %4936, ptr noundef @.str.56, ptr noundef @.str.2, i32 noundef 317, ptr noundef %4939, ptr noundef %4942, ptr noundef %4945, i32 noundef %4947) #9
  br label %4966

4949:                                             ; preds = %4927, %4920
  %4950 = load i32, ptr %100, align 4, !tbaa !5
  %4951 = call ptr @__errno_location() #10
  store i32 %4950, ptr %4951, align 4, !tbaa !5
  %4952 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4953 = load i32, ptr @test_count, align 4, !tbaa !5
  %4954 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4955 = load i32, ptr %4954, align 4, !tbaa !5
  %4956 = call ptr @s2n_strerror(i32 noundef %4955, ptr noundef @.str.3)
  %4957 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4958 = load i32, ptr %4957, align 4, !tbaa !5
  %4959 = call ptr @s2n_strerror_debug(i32 noundef %4958, ptr noundef @.str.3)
  %4960 = call ptr @__errno_location() #10
  %4961 = load i32, ptr %4960, align 4, !tbaa !5
  %4962 = call ptr @strerror(i32 noundef %4961) #9
  %4963 = call ptr @__errno_location() #10
  %4964 = load i32, ptr %4963, align 4, !tbaa !5
  %4965 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4952, ptr noundef @.str.4, i32 noundef %4953, ptr noundef @.str.56, ptr noundef @.str.2, i32 noundef 317, ptr noundef %4956, ptr noundef %4959, ptr noundef %4962, i32 noundef %4964) #9
  br label %4966

4966:                                             ; preds = %4949, %4932
  call void @llvm.lifetime.end.p0(i64 4, ptr %100) #9
  br label %4967

4967:                                             ; preds = %4966
  br label %4968

4968:                                             ; preds = %4967
  call void @exit(i32 noundef 1) #11
  unreachable

4969:                                             ; No predecessors!
  br label %4970

4970:                                             ; preds = %4969
  br label %4971

4971:                                             ; preds = %4970, %4912
  br label %4972

4972:                                             ; preds = %4971
  br label %4973

4973:                                             ; preds = %4972
  br label %4974

4974:                                             ; preds = %4973
  %4975 = load i32, ptr @test_count, align 4, !tbaa !5
  %4976 = add nsw i32 %4975, 1
  store i32 %4976, ptr @test_count, align 4, !tbaa !5
  %4977 = load ptr, ptr %64, align 8, !tbaa !9
  %4978 = call i32 @s2n_cert_chain_and_key_free(ptr noundef %4977)
  %4979 = icmp eq i32 %4978, -1
  br i1 %4979, label %4980, label %5033

4980:                                             ; preds = %4974
  br label %4981

4981:                                             ; preds = %4980
  br label %4982

4982:                                             ; preds = %4981
  call void @llvm.lifetime.start.p0(i64 4, ptr %101) #9
  %4983 = call ptr @__errno_location() #10
  %4984 = load i32, ptr %4983, align 4, !tbaa !5
  store i32 %4984, ptr %101, align 4, !tbaa !5
  %4985 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4986 = call i32 @s2n_print_stacktrace(ptr noundef %4985)
  %4987 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4988 = trunc i8 %4987 to i1
  br i1 %4988, label %4989, label %5011

4989:                                             ; preds = %4982
  %4990 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4991 = call i32 @fileno(ptr noundef %4990) #9
  %4992 = call i32 @isatty(i32 noundef %4991) #9
  %4993 = icmp ne i32 %4992, 0
  br i1 %4993, label %4994, label %5011

4994:                                             ; preds = %4989
  %4995 = load i32, ptr %101, align 4, !tbaa !5
  %4996 = call ptr @__errno_location() #10
  store i32 %4995, ptr %4996, align 4, !tbaa !5
  %4997 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4998 = load i32, ptr @test_count, align 4, !tbaa !5
  %4999 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5000 = load i32, ptr %4999, align 4, !tbaa !5
  %5001 = call ptr @s2n_strerror(i32 noundef %5000, ptr noundef @.str.3)
  %5002 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5003 = load i32, ptr %5002, align 4, !tbaa !5
  %5004 = call ptr @s2n_strerror_debug(i32 noundef %5003, ptr noundef @.str.3)
  %5005 = call ptr @__errno_location() #10
  %5006 = load i32, ptr %5005, align 4, !tbaa !5
  %5007 = call ptr @strerror(i32 noundef %5006) #9
  %5008 = call ptr @__errno_location() #10
  %5009 = load i32, ptr %5008, align 4, !tbaa !5
  %5010 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4997, ptr noundef @.str, i32 noundef %4998, ptr noundef @.str.23, ptr noundef @.str.2, i32 noundef 318, ptr noundef %5001, ptr noundef %5004, ptr noundef %5007, i32 noundef %5009) #9
  br label %5028

5011:                                             ; preds = %4989, %4982
  %5012 = load i32, ptr %101, align 4, !tbaa !5
  %5013 = call ptr @__errno_location() #10
  store i32 %5012, ptr %5013, align 4, !tbaa !5
  %5014 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5015 = load i32, ptr @test_count, align 4, !tbaa !5
  %5016 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5017 = load i32, ptr %5016, align 4, !tbaa !5
  %5018 = call ptr @s2n_strerror(i32 noundef %5017, ptr noundef @.str.3)
  %5019 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5020 = load i32, ptr %5019, align 4, !tbaa !5
  %5021 = call ptr @s2n_strerror_debug(i32 noundef %5020, ptr noundef @.str.3)
  %5022 = call ptr @__errno_location() #10
  %5023 = load i32, ptr %5022, align 4, !tbaa !5
  %5024 = call ptr @strerror(i32 noundef %5023) #9
  %5025 = call ptr @__errno_location() #10
  %5026 = load i32, ptr %5025, align 4, !tbaa !5
  %5027 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5014, ptr noundef @.str.4, i32 noundef %5015, ptr noundef @.str.23, ptr noundef @.str.2, i32 noundef 318, ptr noundef %5018, ptr noundef %5021, ptr noundef %5024, i32 noundef %5026) #9
  br label %5028

5028:                                             ; preds = %5011, %4994
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #9
  br label %5029

5029:                                             ; preds = %5028
  br label %5030

5030:                                             ; preds = %5029
  call void @exit(i32 noundef 1) #11
  unreachable

5031:                                             ; No predecessors!
  br label %5032

5032:                                             ; preds = %5031
  br label %5033

5033:                                             ; preds = %5032, %4974
  br label %5034

5034:                                             ; preds = %5033
  br label %5035

5035:                                             ; preds = %5034
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #9
  br label %5036

5036:                                             ; preds = %5035
  br label %5037

5037:                                             ; preds = %5036
  %5038 = call i32 @s2n_cleanup()
  %5039 = icmp eq i32 %5038, -1
  br i1 %5039, label %5040, label %5091

5040:                                             ; preds = %5037
  br label %5041

5041:                                             ; preds = %5040
  br label %5042

5042:                                             ; preds = %5041
  call void @llvm.lifetime.start.p0(i64 4, ptr %102) #9
  %5043 = call ptr @__errno_location() #10
  %5044 = load i32, ptr %5043, align 4, !tbaa !5
  store i32 %5044, ptr %102, align 4, !tbaa !5
  %5045 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5046 = call i32 @s2n_print_stacktrace(ptr noundef %5045)
  %5047 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5048 = trunc i8 %5047 to i1
  br i1 %5048, label %5049, label %5071

5049:                                             ; preds = %5042
  %5050 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5051 = call i32 @fileno(ptr noundef %5050) #9
  %5052 = call i32 @isatty(i32 noundef %5051) #9
  %5053 = icmp ne i32 %5052, 0
  br i1 %5053, label %5054, label %5071

5054:                                             ; preds = %5049
  %5055 = load i32, ptr %102, align 4, !tbaa !5
  %5056 = call ptr @__errno_location() #10
  store i32 %5055, ptr %5056, align 4, !tbaa !5
  %5057 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5058 = load i32, ptr @test_count, align 4, !tbaa !5
  %5059 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5060 = load i32, ptr %5059, align 4, !tbaa !5
  %5061 = call ptr @s2n_strerror(i32 noundef %5060, ptr noundef @.str.3)
  %5062 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5063 = load i32, ptr %5062, align 4, !tbaa !5
  %5064 = call ptr @s2n_strerror_debug(i32 noundef %5063, ptr noundef @.str.3)
  %5065 = call ptr @__errno_location() #10
  %5066 = load i32, ptr %5065, align 4, !tbaa !5
  %5067 = call ptr @strerror(i32 noundef %5066) #9
  %5068 = call ptr @__errno_location() #10
  %5069 = load i32, ptr %5068, align 4, !tbaa !5
  %5070 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5057, ptr noundef @.str, i32 noundef %5058, ptr noundef @.str.59, ptr noundef @.str.2, i32 noundef 321, ptr noundef %5061, ptr noundef %5064, ptr noundef %5067, i32 noundef %5069) #9
  br label %5088

5071:                                             ; preds = %5049, %5042
  %5072 = load i32, ptr %102, align 4, !tbaa !5
  %5073 = call ptr @__errno_location() #10
  store i32 %5072, ptr %5073, align 4, !tbaa !5
  %5074 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5075 = load i32, ptr @test_count, align 4, !tbaa !5
  %5076 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5077 = load i32, ptr %5076, align 4, !tbaa !5
  %5078 = call ptr @s2n_strerror(i32 noundef %5077, ptr noundef @.str.3)
  %5079 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5080 = load i32, ptr %5079, align 4, !tbaa !5
  %5081 = call ptr @s2n_strerror_debug(i32 noundef %5080, ptr noundef @.str.3)
  %5082 = call ptr @__errno_location() #10
  %5083 = load i32, ptr %5082, align 4, !tbaa !5
  %5084 = call ptr @strerror(i32 noundef %5083) #9
  %5085 = call ptr @__errno_location() #10
  %5086 = load i32, ptr %5085, align 4, !tbaa !5
  %5087 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5074, ptr noundef @.str.4, i32 noundef %5075, ptr noundef @.str.59, ptr noundef @.str.2, i32 noundef 321, ptr noundef %5078, ptr noundef %5081, ptr noundef %5084, i32 noundef %5086) #9
  br label %5088

5088:                                             ; preds = %5071, %5054
  call void @llvm.lifetime.end.p0(i64 4, ptr %102) #9
  br label %5089

5089:                                             ; preds = %5088
  call void @exit(i32 noundef 1) #11
  unreachable

5090:                                             ; No predecessors!
  br label %5091

5091:                                             ; preds = %5090, %5037
  br label %5092

5092:                                             ; preds = %5091
  br label %5093

5093:                                             ; preds = %5092
  br label %5094

5094:                                             ; preds = %5093
  %5095 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %5096 = icmp eq i32 %5095, -1
  br i1 %5096, label %5097, label %5148

5097:                                             ; preds = %5094
  br label %5098

5098:                                             ; preds = %5097
  br label %5099

5099:                                             ; preds = %5098
  call void @llvm.lifetime.start.p0(i64 4, ptr %103) #9
  %5100 = call ptr @__errno_location() #10
  %5101 = load i32, ptr %5100, align 4, !tbaa !5
  store i32 %5101, ptr %103, align 4, !tbaa !5
  %5102 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5103 = call i32 @s2n_print_stacktrace(ptr noundef %5102)
  %5104 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5105 = trunc i8 %5104 to i1
  br i1 %5105, label %5106, label %5128

5106:                                             ; preds = %5099
  %5107 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5108 = call i32 @fileno(ptr noundef %5107) #9
  %5109 = call i32 @isatty(i32 noundef %5108) #9
  %5110 = icmp ne i32 %5109, 0
  br i1 %5110, label %5111, label %5128

5111:                                             ; preds = %5106
  %5112 = load i32, ptr %103, align 4, !tbaa !5
  %5113 = call ptr @__errno_location() #10
  store i32 %5112, ptr %5113, align 4, !tbaa !5
  %5114 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5115 = load i32, ptr @test_count, align 4, !tbaa !5
  %5116 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5117 = load i32, ptr %5116, align 4, !tbaa !5
  %5118 = call ptr @s2n_strerror(i32 noundef %5117, ptr noundef @.str.3)
  %5119 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5120 = load i32, ptr %5119, align 4, !tbaa !5
  %5121 = call ptr @s2n_strerror_debug(i32 noundef %5120, ptr noundef @.str.3)
  %5122 = call ptr @__errno_location() #10
  %5123 = load i32, ptr %5122, align 4, !tbaa !5
  %5124 = call ptr @strerror(i32 noundef %5123) #9
  %5125 = call ptr @__errno_location() #10
  %5126 = load i32, ptr %5125, align 4, !tbaa !5
  %5127 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5114, ptr noundef @.str, i32 noundef %5115, ptr noundef @.str.60, ptr noundef @.str.2, i32 noundef 321, ptr noundef %5118, ptr noundef %5121, ptr noundef %5124, i32 noundef %5126) #9
  br label %5145

5128:                                             ; preds = %5106, %5099
  %5129 = load i32, ptr %103, align 4, !tbaa !5
  %5130 = call ptr @__errno_location() #10
  store i32 %5129, ptr %5130, align 4, !tbaa !5
  %5131 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5132 = load i32, ptr @test_count, align 4, !tbaa !5
  %5133 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5134 = load i32, ptr %5133, align 4, !tbaa !5
  %5135 = call ptr @s2n_strerror(i32 noundef %5134, ptr noundef @.str.3)
  %5136 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5137 = load i32, ptr %5136, align 4, !tbaa !5
  %5138 = call ptr @s2n_strerror_debug(i32 noundef %5137, ptr noundef @.str.3)
  %5139 = call ptr @__errno_location() #10
  %5140 = load i32, ptr %5139, align 4, !tbaa !5
  %5141 = call ptr @strerror(i32 noundef %5140) #9
  %5142 = call ptr @__errno_location() #10
  %5143 = load i32, ptr %5142, align 4, !tbaa !5
  %5144 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5131, ptr noundef @.str.4, i32 noundef %5132, ptr noundef @.str.60, ptr noundef @.str.2, i32 noundef 321, ptr noundef %5135, ptr noundef %5138, ptr noundef %5141, i32 noundef %5143) #9
  br label %5145

5145:                                             ; preds = %5128, %5111
  call void @llvm.lifetime.end.p0(i64 4, ptr %103) #9
  br label %5146

5146:                                             ; preds = %5145
  call void @exit(i32 noundef 1) #11
  unreachable

5147:                                             ; No predecessors!
  br label %5148

5148:                                             ; preds = %5147, %5094
  br label %5149

5149:                                             ; preds = %5148
  %5150 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5151 = trunc i8 %5150 to i1
  br i1 %5151, label %5152, label %5168

5152:                                             ; preds = %5149
  %5153 = load ptr, ptr @stdout, align 8, !tbaa !9
  %5154 = call i32 @fileno(ptr noundef %5153) #9
  %5155 = call i32 @isatty(i32 noundef %5154) #9
  %5156 = icmp ne i32 %5155, 0
  br i1 %5156, label %5157, label %5168

5157:                                             ; preds = %5152
  %5158 = load i32, ptr @test_count, align 4, !tbaa !5
  %5159 = icmp ne i32 %5158, 0
  br i1 %5159, label %5160, label %5164

5160:                                             ; preds = %5157
  %5161 = load ptr, ptr @stdout, align 8, !tbaa !9
  %5162 = load i32, ptr @test_count, align 4, !tbaa !5
  %5163 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5161, ptr noundef @.str.61, i32 noundef %5162) #9
  br label %5167

5164:                                             ; preds = %5157
  %5165 = load ptr, ptr @stdout, align 8, !tbaa !9
  %5166 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5165, ptr noundef @.str.62) #9
  br label %5167

5167:                                             ; preds = %5164, %5160
  br label %5179

5168:                                             ; preds = %5152, %5149
  %5169 = load i32, ptr @test_count, align 4, !tbaa !5
  %5170 = icmp ne i32 %5169, 0
  br i1 %5170, label %5171, label %5175

5171:                                             ; preds = %5168
  %5172 = load ptr, ptr @stdout, align 8, !tbaa !9
  %5173 = load i32, ptr @test_count, align 4, !tbaa !5
  %5174 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5172, ptr noundef @.str.63, i32 noundef %5173) #9
  br label %5178

5175:                                             ; preds = %5168
  %5176 = load ptr, ptr @stdout, align 8, !tbaa !9
  %5177 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5176, ptr noundef @.str.64) #9
  br label %5178

5178:                                             ; preds = %5175, %5171
  br label %5179

5179:                                             ; preds = %5178, %5167
  store i32 0, ptr %3, align 4
  br label %5181

5180:                                             ; No predecessors!
  br label %5181

5181:                                             ; preds = %5180, %5179
  %5182 = load i32, ptr %3, align 4
  ret i32 %5182
}

declare i32 @fflush(ptr noundef) #3

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) #3

declare i32 @s2n_enable_atexit() #3

declare i32 @s2n_init() #3

declare ptr @s2n_connection_new(i32 noundef) #3

declare i32 @s2n_test_cert_chain_and_key_new(ptr noundef, ptr noundef, ptr noundef) #3

; Function Attrs: nounwind uwtable
declare hidden i32 @test_size(ptr noundef, ptr noundef) #0

; Function Attrs: nounwind uwtable
declare hidden i32 @test_sign(ptr noundef, i32 noundef, ptr noundef, ptr noundef) #0

declare i32 @s2n_client_cert_verify_send(ptr noundef) #3

declare i32 @s2n_stuffer_read_uint16(ptr noundef, ptr noundef) #3

declare ptr @s2n_stuffer_raw_read(ptr noundef, i32 noundef) #3

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

declare i32 @s2n_connection_free(ptr noundef) #3

declare i32 @s2n_cert_chain_and_key_free(ptr noundef) #3

declare ptr @s2n_config_new() #3

declare i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef, ptr noundef) #3

declare i32 @s2n_config_set_async_pkey_callback(ptr noundef, ptr noundef) #3

declare i32 @s2n_config_set_unsafe_for_testing(ptr noundef) #3

declare i32 @s2n_config_set_cipher_preferences(ptr noundef, ptr noundef) #3

declare i32 @s2n_config_set_async_pkey_validation_mode(ptr noundef, i32 noundef) #3

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

declare i32 @s2n_connection_set_client_auth_type(ptr noundef, i32 noundef) #3

; 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_io_pair_init_non_blocking(ptr noundef) #3

declare i32 @s2n_connection_set_io_pair(ptr noundef, ptr noundef) #3

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_try_handshake_with_async_pkey_op(ptr noundef, ptr noundef, ptr noundef) #0

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_test_negotiate_with_async_pkey_op_handler(ptr noundef, ptr noundef) #0

declare i32 @s2n_connection_client_cert_used(ptr noundef) #3

declare i32 @s2n_io_pair_close(ptr noundef) #3

declare i32 @s2n_config_free(ptr noundef) #3

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_test_apply_with_invalid_signature_handler(ptr noundef, ptr noundef) #0

declare i32 @s2n_cleanup() #3

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 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { 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 #3 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { 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 = { 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 #8 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #9 = { nounwind }
attributes #10 = { nounwind willreturn memory(none) }
attributes #11 = { noreturn nounwind }
attributes #12 = { 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 1536}
!16 = !{!"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, !17, i64 160, !18, i64 168, !18, 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, !19, i64 240, !10, i64 632, !10, i64 640, !20, i64 648, !26, i64 1144, !29, i64 1688, !10, i64 1752, !7, i64 1760, !6, i64 1764, !7, i64 1768, !32, i64 1776, !32, i64 1816, !32, i64 1856, !32, i64 1896, !6, i64 1936, !18, i64 1944, !7, i64 1952, !32, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !33, i64 2004, !33, i64 2008, !34, i64 2016, !31, i64 2208, !6, i64 2212, !31, i64 2216, !18, i64 2224, !7, i64 2232, !18, i64 2240, !18, i64 2248, !18, i64 2256, !33, i64 2264, !33, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !25, i64 2792, !6, i64 2816, !25, i64 2824, !25, i64 2848, !25, i64 2872, !36, i64 2896, !38, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !25, i64 3784, !6, i64 3808, !40, i64 3816, !7, i64 3848, !32, i64 3992, !25, i64 4032, !25, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !31, i64 4084, !31, i64 4086, !6, i64 4088, !6, i64 4092, !25, i64 4096, !6, i64 4120, !41, i64 4128, !33, i64 4176, !7, i64 4180, !7, i64 4181}
!17 = !{!"s2n_timer", !18, i64 0}
!18 = !{!"long", !7, i64 0}
!19 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!20 = !{!"s2n_kex_parameters", !21, i64 0, !22, i64 8, !7, i64 24, !22, i64 56, !23, i64 72, !23, i64 184, !7, i64 296, !24, i64 360, !25, i64 448, !25, i64 472}
!21 = !{!"s2n_dh_params", !10, i64 0}
!22 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!23 = !{!"s2n_kem_group_params", !10, i64 0, !24, i64 8, !22, i64 96}
!24 = !{!"s2n_kem_params", !10, i64 0, !25, i64 8, !25, i64 32, !25, i64 56, !12, i64 80}
!25 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!26 = !{!"s2n_handshake_parameters", !27, i64 0, !27, i64 48, !25, i64 96, !6, i64 120, !28, 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}
!27 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!28 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!29 = !{!"s2n_psk_parameters", !6, i64 0, !30, i64 8, !31, i64 40, !31, i64 42, !10, i64 48, !6, i64 56}
!30 = !{!"s2n_array", !25, i64 0, !6, i64 24, !6, i64 28}
!31 = !{!"short", !7, i64 0}
!32 = !{!"s2n_stuffer", !25, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!33 = !{!"", !6, i64 0}
!34 = !{!"s2n_handshake", !32, 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, !35, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!35 = !{!"s2n_offered_early_data", !10, i64 0}
!36 = !{!"s2n_client_hello", !25, i64 0, !37, i64 24, !25, i64 728, !25, i64 752, !25, 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}
!37 = !{!"", !7, i64 0, !25, i64 672, !31, i64 696}
!38 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !31, i64 18, !10, i64 24, !6, i64 32, !10, i64 40, !39, i64 48, !12, i64 52}
!39 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!40 = !{!"s2n_ticket_fields", !25, i64 0, !6, i64 24}
!41 = !{!"s2n_post_handshake", !32, i64 0, !7, i64 40}
!42 = !{!43, !10, i64 8}
!43 = !{!"s2n_cert_chain_and_key", !10, i64 0, !10, i64 8, !25, i64 16, !25, i64 40, !10, i64 64, !10, i64 72, !10, i64 80}
!44 = !{!27, !10, i64 8}
!45 = !{!27, !10, i64 16}
!46 = !{!16, !10, i64 1544}
!47 = !{!31, !31, i64 0}
!48 = !{!49, !31, i64 0}
!49 = !{!"s2n_signature_scheme", !31, i64 0, !10, i64 8, !6, i64 16, !6, i64 20, !7, i64 24, !7, i64 25, !31, i64 26, !10, i64 32}
!50 = !{!16, !6, i64 2044}
!51 = !{!16, !6, i64 2040}
!52 = !{!16, !7, i64 220}


; 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_signature_scheme = type { i16, ptr, i32, i32, i8, i8, i16, ptr }
%struct.s2n_test_io_pair = type { i32, i32 }

@s2n_use_color_in_output = external dso_local local_unnamed_addr global i8, align 1
@test_signature_data = external dso_local constant [14 x i8], align 1
@test_count = external dso_local local_unnamed_addr global i32, align 4
@stderr = external local_unnamed_addr global ptr, align 8
@.str = external hidden unnamed_addr constant [101 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [86 x i8], align 1
@s2n_errno = external thread_local local_unnamed_addr global i32, align 4
@.str.3 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [90 x i8], align 1
@async_callback_invoked = external hidden local_unnamed_addr global i8, align 1
@stdout = external local_unnamed_addr global ptr, align 8
@.str.6 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [39 x i8], align 1
@s2n_rsa_pkcs1_md5_sha1 = external constant %struct.s2n_signature_scheme, align 8
@.str.10 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [149 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [110 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [200 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [119 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [138 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [138 x i8], align 1
@async_sign_operation_called_s2n_client = external hidden local_unnamed_addr global i8, align 1
@.str.58 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [25 x i8], align 1

; Function Attrs: nounwind uwtable
declare dso_local i32 @s2n_async_pkey_store_op(ptr noundef, ptr noundef) #0

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

; Function Attrs: mustprogress nofree nosync nounwind willreturn memory(none)
declare ptr @__errno_location() local_unnamed_addr #2

declare i32 @s2n_print_stacktrace(ptr noundef) local_unnamed_addr #3

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

; Function Attrs: nofree nounwind
declare noundef i32 @fileno(ptr nocapture noundef) local_unnamed_addr #5

; Function Attrs: nofree nounwind
declare noundef i32 @fprintf(ptr nocapture noundef, ptr nocapture noundef readonly, ...) local_unnamed_addr #5

declare ptr @s2n_strerror(i32 noundef, ptr noundef) local_unnamed_addr #3

; 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 #3

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

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

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

; Function Attrs: nounwind uwtable
define dso_local noundef i32 @main(i32 noundef %0, ptr nocapture noundef readnone %1) local_unnamed_addr #0 {
  %3 = alloca ptr, align 8
  %4 = alloca i16, align 2
  %5 = alloca i16, align 2
  %6 = alloca ptr, align 8
  %7 = alloca %struct.s2n_test_io_pair, align 8
  %8 = alloca ptr, align 8
  %9 = alloca %struct.s2n_test_io_pair, align 8
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %10 = load ptr, ptr @stdout, align 8, !tbaa !9
  %11 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.2) #9
  %12 = load ptr, ptr @stdout, align 8, !tbaa !9
  %13 = tail call i32 @fflush(ptr noundef %12)
  %14 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext true) #9
  %15 = icmp eq i32 %14, -1
  br i1 %15, label %16, label %40

16:                                               ; preds = %2
  %17 = tail call ptr @__errno_location() #10
  %18 = load i32, ptr %17, align 4, !tbaa !5
  %19 = load ptr, ptr @stderr, align 8, !tbaa !9
  %20 = tail call i32 @s2n_print_stacktrace(ptr noundef %19) #9
  %21 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %22 = trunc nuw i8 %21 to i1
  br i1 %22, label %23, label %27

23:                                               ; preds = %16
  %24 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25 = tail call i32 @fileno(ptr noundef %24) #9
  %26 = tail call i32 @isatty(i32 noundef %25) #9
  %.not325 = icmp eq i32 %26, 0
  br i1 %.not325, label %27, label %28

27:                                               ; preds = %23, %16
  br label %28

28:                                               ; preds = %23, %27
  %.str.4.sink = phi ptr [ @.str.4, %27 ], [ @.str, %23 ]
  store i32 %18, ptr %17, align 4, !tbaa !5
  %29 = load ptr, ptr @stderr, align 8, !tbaa !9
  %30 = load i32, ptr @test_count, align 4, !tbaa !5
  %31 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %32 = load i32, ptr %31, align 4, !tbaa !5
  %33 = tail call ptr @s2n_strerror(i32 noundef %32, ptr noundef nonnull @.str.3) #9
  %34 = load i32, ptr %31, align 4, !tbaa !5
  %35 = tail call ptr @s2n_strerror_debug(i32 noundef %34, ptr noundef nonnull @.str.3) #9
  %36 = load i32, ptr %17, align 4, !tbaa !5
  %37 = tail call ptr @strerror(i32 noundef %36) #9
  %38 = load i32, ptr %17, align 4, !tbaa !5
  %39 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %29, ptr noundef nonnull %.str.4.sink, i32 noundef %30, ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.2, i32 noundef 164, ptr noundef %33, ptr noundef %35, ptr noundef %37, i32 noundef %38) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

40:                                               ; preds = %2
  %41 = load i32, ptr @test_count, align 4, !tbaa !5
  %42 = add nsw i32 %41, 1
  store i32 %42, ptr @test_count, align 4, !tbaa !5
  %43 = tail call i32 @s2n_enable_atexit() #9
  %44 = icmp eq i32 %43, -1
  br i1 %44, label %45, label %69

45:                                               ; preds = %40
  %46 = tail call ptr @__errno_location() #10
  %47 = load i32, ptr %46, align 4, !tbaa !5
  %48 = load ptr, ptr @stderr, align 8, !tbaa !9
  %49 = tail call i32 @s2n_print_stacktrace(ptr noundef %48) #9
  %50 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %51 = trunc nuw i8 %50 to i1
  br i1 %51, label %52, label %56

52:                                               ; preds = %45
  %53 = load ptr, ptr @stderr, align 8, !tbaa !9
  %54 = tail call i32 @fileno(ptr noundef %53) #9
  %55 = tail call i32 @isatty(i32 noundef %54) #9
  %.not324 = icmp eq i32 %55, 0
  br i1 %.not324, label %56, label %57

56:                                               ; preds = %52, %45
  br label %57

57:                                               ; preds = %52, %56
  %.str.4.sink336 = phi ptr [ @.str.4, %56 ], [ @.str, %52 ]
  store i32 %47, ptr %46, align 4, !tbaa !5
  %58 = load ptr, ptr @stderr, align 8, !tbaa !9
  %59 = load i32, ptr @test_count, align 4, !tbaa !5
  %60 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %61 = load i32, ptr %60, align 4, !tbaa !5
  %62 = tail call ptr @s2n_strerror(i32 noundef %61, ptr noundef nonnull @.str.3) #9
  %63 = load i32, ptr %60, align 4, !tbaa !5
  %64 = tail call ptr @s2n_strerror_debug(i32 noundef %63, ptr noundef nonnull @.str.3) #9
  %65 = load i32, ptr %46, align 4, !tbaa !5
  %66 = tail call ptr @strerror(i32 noundef %65) #9
  %67 = load i32, ptr %46, align 4, !tbaa !5
  %68 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %58, ptr noundef nonnull %.str.4.sink336, i32 noundef %59, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.2, i32 noundef 164, ptr noundef %62, ptr noundef %64, ptr noundef %66, i32 noundef %67) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

69:                                               ; preds = %40
  %70 = tail call i32 @s2n_init() #9
  %71 = icmp eq i32 %70, -1
  br i1 %71, label %72, label %96

72:                                               ; preds = %69
  %73 = tail call ptr @__errno_location() #10
  %74 = load i32, ptr %73, align 4, !tbaa !5
  %75 = load ptr, ptr @stderr, align 8, !tbaa !9
  %76 = tail call i32 @s2n_print_stacktrace(ptr noundef %75) #9
  %77 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %78 = trunc nuw i8 %77 to i1
  br i1 %78, label %79, label %83

79:                                               ; preds = %72
  %80 = load ptr, ptr @stderr, align 8, !tbaa !9
  %81 = tail call i32 @fileno(ptr noundef %80) #9
  %82 = tail call i32 @isatty(i32 noundef %81) #9
  %.not323 = icmp eq i32 %82, 0
  br i1 %.not323, label %83, label %84

83:                                               ; preds = %79, %72
  br label %84

84:                                               ; preds = %79, %83
  %.str.4.sink347 = phi ptr [ @.str.4, %83 ], [ @.str, %79 ]
  store i32 %74, ptr %73, align 4, !tbaa !5
  %85 = load ptr, ptr @stderr, align 8, !tbaa !9
  %86 = load i32, ptr @test_count, align 4, !tbaa !5
  %87 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %88 = load i32, ptr %87, align 4, !tbaa !5
  %89 = tail call ptr @s2n_strerror(i32 noundef %88, ptr noundef nonnull @.str.3) #9
  %90 = load i32, ptr %87, align 4, !tbaa !5
  %91 = tail call ptr @s2n_strerror_debug(i32 noundef %90, ptr noundef nonnull @.str.3) #9
  %92 = load i32, ptr %73, align 4, !tbaa !5
  %93 = tail call ptr @strerror(i32 noundef %92) #9
  %94 = load i32, ptr %73, align 4, !tbaa !5
  %95 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %85, ptr noundef nonnull %.str.4.sink347, i32 noundef %86, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.2, i32 noundef 164, ptr noundef %89, ptr noundef %91, ptr noundef %93, i32 noundef %94) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

96:                                               ; preds = %69
  %97 = tail call ptr @s2n_connection_new(i32 noundef 1) #9
  %98 = load i32, ptr @test_count, align 4, !tbaa !5
  %99 = add nsw i32 %98, 1
  store i32 %99, ptr @test_count, align 4, !tbaa !5
  %100 = icmp eq ptr %97, null
  br i1 %100, label %101, label %125

101:                                              ; preds = %96
  %102 = tail call ptr @__errno_location() #10
  %103 = load i32, ptr %102, align 4, !tbaa !5
  %104 = load ptr, ptr @stderr, align 8, !tbaa !9
  %105 = tail call i32 @s2n_print_stacktrace(ptr noundef %104) #9
  %106 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %107 = trunc nuw i8 %106 to i1
  br i1 %107, label %108, label %112

108:                                              ; preds = %101
  %109 = load ptr, ptr @stderr, align 8, !tbaa !9
  %110 = tail call i32 @fileno(ptr noundef %109) #9
  %111 = tail call i32 @isatty(i32 noundef %110) #9
  %.not322 = icmp eq i32 %111, 0
  br i1 %.not322, label %112, label %113

112:                                              ; preds = %108, %101
  br label %113

113:                                              ; preds = %108, %112
  %.str.4.sink358 = phi ptr [ @.str.4, %112 ], [ @.str, %108 ]
  store i32 %103, ptr %102, align 4, !tbaa !5
  %114 = load ptr, ptr @stderr, align 8, !tbaa !9
  %115 = load i32, ptr @test_count, align 4, !tbaa !5
  %116 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %117 = load i32, ptr %116, align 4, !tbaa !5
  %118 = tail call ptr @s2n_strerror(i32 noundef %117, ptr noundef nonnull @.str.3) #9
  %119 = load i32, ptr %116, align 4, !tbaa !5
  %120 = tail call ptr @s2n_strerror_debug(i32 noundef %119, ptr noundef nonnull @.str.3) #9
  %121 = load i32, ptr %102, align 4, !tbaa !5
  %122 = tail call ptr @strerror(i32 noundef %121) #9
  %123 = load i32, ptr %102, align 4, !tbaa !5
  %124 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %114, ptr noundef nonnull %.str.4.sink358, i32 noundef %115, ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.2, i32 noundef 169, ptr noundef %118, ptr noundef %120, ptr noundef %122, i32 noundef %123) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

125:                                              ; preds = %96
  %126 = getelementptr inbounds i8, ptr %97, i64 1536
  store ptr @s2n_rsa_pkcs1_md5_sha1, ptr %126, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3) #9
  store ptr null, ptr %3, align 8, !tbaa !9
  %127 = add nsw i32 %98, 2
  store i32 %127, ptr @test_count, align 4, !tbaa !5
  %128 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef nonnull %3, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.11) #9
  %129 = icmp eq i32 %128, -1
  br i1 %129, label %130, label %154

130:                                              ; preds = %125
  %131 = tail call ptr @__errno_location() #10
  %132 = load i32, ptr %131, align 4, !tbaa !5
  %133 = load ptr, ptr @stderr, align 8, !tbaa !9
  %134 = call i32 @s2n_print_stacktrace(ptr noundef %133) #9
  %135 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %136 = trunc nuw i8 %135 to i1
  br i1 %136, label %137, label %141

137:                                              ; preds = %130
  %138 = load ptr, ptr @stderr, align 8, !tbaa !9
  %139 = call i32 @fileno(ptr noundef %138) #9
  %140 = call i32 @isatty(i32 noundef %139) #9
  %.not321 = icmp eq i32 %140, 0
  br i1 %.not321, label %141, label %142

141:                                              ; preds = %137, %130
  br label %142

142:                                              ; preds = %137, %141
  %.str.4.sink369 = phi ptr [ @.str.4, %141 ], [ @.str, %137 ]
  store i32 %132, ptr %131, align 4, !tbaa !5
  %143 = load ptr, ptr @stderr, align 8, !tbaa !9
  %144 = load i32, ptr @test_count, align 4, !tbaa !5
  %145 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %146 = load i32, ptr %145, align 4, !tbaa !5
  %147 = call ptr @s2n_strerror(i32 noundef %146, ptr noundef nonnull @.str.3) #9
  %148 = load i32, ptr %145, align 4, !tbaa !5
  %149 = call ptr @s2n_strerror_debug(i32 noundef %148, ptr noundef nonnull @.str.3) #9
  %150 = load i32, ptr %131, align 4, !tbaa !5
  %151 = call ptr @strerror(i32 noundef %150) #9
  %152 = load i32, ptr %131, align 4, !tbaa !5
  %153 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %143, ptr noundef nonnull %.str.4.sink369, i32 noundef %144, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.2, i32 noundef 176, ptr noundef %147, ptr noundef %149, ptr noundef %151, i32 noundef %152) #11
  call void @exit(i32 noundef 1) #12
  unreachable

154:                                              ; preds = %125
  %155 = load ptr, ptr %3, align 8, !tbaa !9
  %156 = getelementptr inbounds i8, ptr %155, i64 8
  %157 = load ptr, ptr %156, align 8, !tbaa !42
  %158 = getelementptr inbounds i8, ptr %157, i64 8
  store ptr @test_size, ptr %158, align 8, !tbaa !44
  %159 = getelementptr inbounds i8, ptr %157, i64 16
  store ptr @test_sign, ptr %159, align 8, !tbaa !45
  %160 = getelementptr inbounds i8, ptr %97, i64 1544
  store ptr %155, ptr %160, align 8, !tbaa !46
  %161 = load i32, ptr @test_count, align 4, !tbaa !5
  %162 = add nsw i32 %161, 1
  store i32 %162, ptr @test_count, align 4, !tbaa !5
  %163 = call i32 @s2n_client_cert_verify_send(ptr noundef nonnull %97) #9
  %164 = icmp eq i32 %163, -1
  br i1 %164, label %165, label %189

165:                                              ; preds = %154
  %166 = tail call ptr @__errno_location() #10
  %167 = load i32, ptr %166, align 4, !tbaa !5
  %168 = load ptr, ptr @stderr, align 8, !tbaa !9
  %169 = call i32 @s2n_print_stacktrace(ptr noundef %168) #9
  %170 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %171 = trunc nuw i8 %170 to i1
  br i1 %171, label %172, label %176

172:                                              ; preds = %165
  %173 = load ptr, ptr @stderr, align 8, !tbaa !9
  %174 = call i32 @fileno(ptr noundef %173) #9
  %175 = call i32 @isatty(i32 noundef %174) #9
  %.not320 = icmp eq i32 %175, 0
  br i1 %.not320, label %176, label %177

176:                                              ; preds = %172, %165
  br label %177

177:                                              ; preds = %172, %176
  %.str.4.sink380 = phi ptr [ @.str.4, %176 ], [ @.str, %172 ]
  store i32 %167, ptr %166, align 4, !tbaa !5
  %178 = load ptr, ptr @stderr, align 8, !tbaa !9
  %179 = load i32, ptr @test_count, align 4, !tbaa !5
  %180 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %181 = load i32, ptr %180, align 4, !tbaa !5
  %182 = call ptr @s2n_strerror(i32 noundef %181, ptr noundef nonnull @.str.3) #9
  %183 = load i32, ptr %180, align 4, !tbaa !5
  %184 = call ptr @s2n_strerror_debug(i32 noundef %183, ptr noundef nonnull @.str.3) #9
  %185 = load i32, ptr %166, align 4, !tbaa !5
  %186 = call ptr @strerror(i32 noundef %185) #9
  %187 = load i32, ptr %166, align 4, !tbaa !5
  %188 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %178, ptr noundef nonnull %.str.4.sink380, i32 noundef %179, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.2, i32 noundef 181, ptr noundef %182, ptr noundef %184, ptr noundef %186, i32 noundef %187) #11
  call void @exit(i32 noundef 1) #12
  unreachable

189:                                              ; preds = %154
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %4) #9
  store i16 0, ptr %4, align 2, !tbaa !47
  %190 = load i32, ptr @test_count, align 4, !tbaa !5
  %191 = add nsw i32 %190, 1
  store i32 %191, ptr @test_count, align 4, !tbaa !5
  %192 = getelementptr inbounds i8, ptr %97, i64 2016
  %193 = call i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %192, ptr noundef nonnull %4) #9
  %194 = icmp eq i32 %193, -1
  br i1 %194, label %195, label %219

195:                                              ; preds = %189
  %196 = tail call ptr @__errno_location() #10
  %197 = load i32, ptr %196, align 4, !tbaa !5
  %198 = load ptr, ptr @stderr, align 8, !tbaa !9
  %199 = call i32 @s2n_print_stacktrace(ptr noundef %198) #9
  %200 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %201 = trunc nuw i8 %200 to i1
  br i1 %201, label %202, label %206

202:                                              ; preds = %195
  %203 = load ptr, ptr @stderr, align 8, !tbaa !9
  %204 = call i32 @fileno(ptr noundef %203) #9
  %205 = call i32 @isatty(i32 noundef %204) #9
  %.not319 = icmp eq i32 %205, 0
  br i1 %.not319, label %206, label %207

206:                                              ; preds = %202, %195
  br label %207

207:                                              ; preds = %202, %206
  %.str.4.sink391 = phi ptr [ @.str.4, %206 ], [ @.str, %202 ]
  store i32 %197, ptr %196, align 4, !tbaa !5
  %208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %209 = load i32, ptr @test_count, align 4, !tbaa !5
  %210 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %211 = load i32, ptr %210, align 4, !tbaa !5
  %212 = call ptr @s2n_strerror(i32 noundef %211, ptr noundef nonnull @.str.3) #9
  %213 = load i32, ptr %210, align 4, !tbaa !5
  %214 = call ptr @s2n_strerror_debug(i32 noundef %213, ptr noundef nonnull @.str.3) #9
  %215 = load i32, ptr %196, align 4, !tbaa !5
  %216 = call ptr @strerror(i32 noundef %215) #9
  %217 = load i32, ptr %196, align 4, !tbaa !5
  %218 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %208, ptr noundef nonnull %.str.4.sink391, i32 noundef %209, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.2, i32 noundef 184, ptr noundef %212, ptr noundef %214, ptr noundef %216, i32 noundef %217) #11
  call void @exit(i32 noundef 1) #12
  unreachable

219:                                              ; preds = %189
  %220 = load i32, ptr @test_count, align 4, !tbaa !5
  %221 = add nsw i32 %220, 1
  store i32 %221, ptr @test_count, align 4, !tbaa !5
  %222 = load i16, ptr %4, align 2, !tbaa !47
  %223 = load i16, ptr @s2n_rsa_pkcs1_md5_sha1, align 8, !tbaa !48
  %224 = icmp eq i16 %222, %223
  br i1 %224, label %249, label %225

225:                                              ; preds = %219
  %226 = tail call ptr @__errno_location() #10
  %227 = load i32, ptr %226, align 4, !tbaa !5
  %228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %229 = call i32 @s2n_print_stacktrace(ptr noundef %228) #9
  %230 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %231 = trunc nuw i8 %230 to i1
  br i1 %231, label %232, label %236

232:                                              ; preds = %225
  %233 = load ptr, ptr @stderr, align 8, !tbaa !9
  %234 = call i32 @fileno(ptr noundef %233) #9
  %235 = call i32 @isatty(i32 noundef %234) #9
  %.not = icmp eq i32 %235, 0
  br i1 %.not, label %236, label %237

236:                                              ; preds = %232, %225
  br label %237

237:                                              ; preds = %232, %236
  %.str.4.sink402 = phi ptr [ @.str.4, %236 ], [ @.str, %232 ]
  store i32 %227, ptr %226, align 4, !tbaa !5
  %238 = load ptr, ptr @stderr, align 8, !tbaa !9
  %239 = load i32, ptr @test_count, align 4, !tbaa !5
  %240 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %241 = load i32, ptr %240, align 4, !tbaa !5
  %242 = call ptr @s2n_strerror(i32 noundef %241, ptr noundef nonnull @.str.3) #9
  %243 = load i32, ptr %240, align 4, !tbaa !5
  %244 = call ptr @s2n_strerror_debug(i32 noundef %243, ptr noundef nonnull @.str.3) #9
  %245 = load i32, ptr %226, align 4, !tbaa !5
  %246 = call ptr @strerror(i32 noundef %245) #9
  %247 = load i32, ptr %226, align 4, !tbaa !5
  %248 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %238, ptr noundef nonnull %.str.4.sink402, i32 noundef %239, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.2, i32 noundef 185, ptr noundef %242, ptr noundef %244, ptr noundef %246, i32 noundef %247) #11
  call void @exit(i32 noundef 1) #12
  unreachable

249:                                              ; preds = %219
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %5) #9
  store i16 0, ptr %5, align 2, !tbaa !47
  %250 = add nsw i32 %220, 2
  store i32 %250, ptr @test_count, align 4, !tbaa !5
  %251 = call i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %192, ptr noundef nonnull %5) #9
  %252 = icmp eq i32 %251, -1
  br i1 %252, label %253, label %277

253:                                              ; preds = %249
  %254 = tail call ptr @__errno_location() #10
  %255 = load i32, ptr %254, align 4, !tbaa !5
  %256 = load ptr, ptr @stderr, align 8, !tbaa !9
  %257 = call i32 @s2n_print_stacktrace(ptr noundef %256) #9
  %258 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %259 = trunc nuw i8 %258 to i1
  br i1 %259, label %260, label %264

260:                                              ; preds = %253
  %261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %262 = call i32 @fileno(ptr noundef %261) #9
  %263 = call i32 @isatty(i32 noundef %262) #9
  %.not318 = icmp eq i32 %263, 0
  br i1 %.not318, label %264, label %265

264:                                              ; preds = %260, %253
  br label %265

265:                                              ; preds = %260, %264
  %.str.4.sink413 = phi ptr [ @.str.4, %264 ], [ @.str, %260 ]
  store i32 %255, ptr %254, align 4, !tbaa !5
  %266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %267 = load i32, ptr @test_count, align 4, !tbaa !5
  %268 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %269 = load i32, ptr %268, align 4, !tbaa !5
  %270 = call ptr @s2n_strerror(i32 noundef %269, ptr noundef nonnull @.str.3) #9
  %271 = load i32, ptr %268, align 4, !tbaa !5
  %272 = call ptr @s2n_strerror_debug(i32 noundef %271, ptr noundef nonnull @.str.3) #9
  %273 = load i32, ptr %254, align 4, !tbaa !5
  %274 = call ptr @strerror(i32 noundef %273) #9
  %275 = load i32, ptr %254, align 4, !tbaa !5
  %276 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %266, ptr noundef nonnull %.str.4.sink413, i32 noundef %267, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.2, i32 noundef 188, ptr noundef %270, ptr noundef %272, ptr noundef %274, i32 noundef %275) #11
  call void @exit(i32 noundef 1) #12
  unreachable

277:                                              ; preds = %249
  %278 = load i32, ptr @test_count, align 4, !tbaa !5
  %279 = add nsw i32 %278, 1
  store i32 %279, ptr @test_count, align 4, !tbaa !5
  %280 = load i16, ptr %5, align 2, !tbaa !47
  %281 = icmp eq i16 %280, 28
  br i1 %281, label %282, label %306

282:                                              ; preds = %277
  %283 = tail call ptr @__errno_location() #10
  %284 = load i32, ptr %283, align 4, !tbaa !5
  %285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %286 = call i32 @s2n_print_stacktrace(ptr noundef %285) #9
  %287 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %288 = trunc nuw i8 %287 to i1
  br i1 %288, label %289, label %293

289:                                              ; preds = %282
  %290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %291 = call i32 @fileno(ptr noundef %290) #9
  %292 = call i32 @isatty(i32 noundef %291) #9
  %.not317 = icmp eq i32 %292, 0
  br i1 %.not317, label %293, label %294

293:                                              ; preds = %289, %282
  br label %294

294:                                              ; preds = %289, %293
  %.str.4.sink424 = phi ptr [ @.str.4, %293 ], [ @.str, %289 ]
  store i32 %284, ptr %283, align 4, !tbaa !5
  %295 = load ptr, ptr @stderr, align 8, !tbaa !9
  %296 = load i32, ptr @test_count, align 4, !tbaa !5
  %297 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %298 = load i32, ptr %297, align 4, !tbaa !5
  %299 = call ptr @s2n_strerror(i32 noundef %298, ptr noundef nonnull @.str.3) #9
  %300 = load i32, ptr %297, align 4, !tbaa !5
  %301 = call ptr @s2n_strerror_debug(i32 noundef %300, ptr noundef nonnull @.str.3) #9
  %302 = load i32, ptr %283, align 4, !tbaa !5
  %303 = call ptr @strerror(i32 noundef %302) #9
  %304 = load i32, ptr %283, align 4, !tbaa !5
  %305 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %295, ptr noundef nonnull %.str.4.sink424, i32 noundef %296, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.2, i32 noundef 189, ptr noundef %299, ptr noundef %301, ptr noundef %303, i32 noundef %304) #11
  call void @exit(i32 noundef 1) #12
  unreachable

306:                                              ; preds = %277
  %307 = add nsw i32 %278, 2
  store i32 %307, ptr @test_count, align 4, !tbaa !5
  %308 = icmp eq i16 %280, 14
  br i1 %308, label %333, label %309

309:                                              ; preds = %306
  %310 = tail call ptr @__errno_location() #10
  %311 = load i32, ptr %310, align 4, !tbaa !5
  %312 = load ptr, ptr @stderr, align 8, !tbaa !9
  %313 = call i32 @s2n_print_stacktrace(ptr noundef %312) #9
  %314 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %315 = trunc nuw i8 %314 to i1
  br i1 %315, label %316, label %320

316:                                              ; preds = %309
  %317 = load ptr, ptr @stderr, align 8, !tbaa !9
  %318 = call i32 @fileno(ptr noundef %317) #9
  %319 = call i32 @isatty(i32 noundef %318) #9
  %.not239 = icmp eq i32 %319, 0
  br i1 %.not239, label %320, label %321

320:                                              ; preds = %316, %309
  br label %321

321:                                              ; preds = %316, %320
  %.str.4.sink435 = phi ptr [ @.str.4, %320 ], [ @.str, %316 ]
  store i32 %311, ptr %310, align 4, !tbaa !5
  %322 = load ptr, ptr @stderr, align 8, !tbaa !9
  %323 = load i32, ptr @test_count, align 4, !tbaa !5
  %324 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %325 = load i32, ptr %324, align 4, !tbaa !5
  %326 = call ptr @s2n_strerror(i32 noundef %325, ptr noundef nonnull @.str.3) #9
  %327 = load i32, ptr %324, align 4, !tbaa !5
  %328 = call ptr @s2n_strerror_debug(i32 noundef %327, ptr noundef nonnull @.str.3) #9
  %329 = load i32, ptr %310, align 4, !tbaa !5
  %330 = call ptr @strerror(i32 noundef %329) #9
  %331 = load i32, ptr %310, align 4, !tbaa !5
  %332 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %322, ptr noundef nonnull %.str.4.sink435, i32 noundef %323, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.2, i32 noundef 190, ptr noundef %326, ptr noundef %328, ptr noundef %330, i32 noundef %331) #11
  call void @exit(i32 noundef 1) #12
  unreachable

333:                                              ; preds = %306
  %334 = add nsw i32 %278, 3
  store i32 %334, ptr @test_count, align 4, !tbaa !5
  %335 = getelementptr inbounds i8, ptr %97, i64 2044
  %336 = load i32, ptr %335, align 4, !tbaa !50
  %337 = getelementptr inbounds i8, ptr %97, i64 2040
  %338 = load i32, ptr %337, align 8, !tbaa !51
  %339 = sub i32 %336, %338
  %340 = icmp eq i32 %339, 14
  br i1 %340, label %365, label %341

341:                                              ; preds = %333
  %342 = tail call ptr @__errno_location() #10
  %343 = load i32, ptr %342, align 4, !tbaa !5
  %344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %345 = call i32 @s2n_print_stacktrace(ptr noundef %344) #9
  %346 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %347 = trunc nuw i8 %346 to i1
  br i1 %347, label %348, label %352

348:                                              ; preds = %341
  %349 = load ptr, ptr @stderr, align 8, !tbaa !9
  %350 = call i32 @fileno(ptr noundef %349) #9
  %351 = call i32 @isatty(i32 noundef %350) #9
  %.not240 = icmp eq i32 %351, 0
  br i1 %.not240, label %352, label %353

352:                                              ; preds = %348, %341
  br label %353

353:                                              ; preds = %348, %352
  %.str.4.sink446 = phi ptr [ @.str.4, %352 ], [ @.str, %348 ]
  store i32 %343, ptr %342, align 4, !tbaa !5
  %354 = load ptr, ptr @stderr, align 8, !tbaa !9
  %355 = load i32, ptr @test_count, align 4, !tbaa !5
  %356 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %357 = load i32, ptr %356, align 4, !tbaa !5
  %358 = call ptr @s2n_strerror(i32 noundef %357, ptr noundef nonnull @.str.3) #9
  %359 = load i32, ptr %356, align 4, !tbaa !5
  %360 = call ptr @s2n_strerror_debug(i32 noundef %359, ptr noundef nonnull @.str.3) #9
  %361 = load i32, ptr %342, align 4, !tbaa !5
  %362 = call ptr @strerror(i32 noundef %361) #9
  %363 = load i32, ptr %342, align 4, !tbaa !5
  %364 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %354, ptr noundef nonnull %.str.4.sink446, i32 noundef %355, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.2, i32 noundef 191, ptr noundef %358, ptr noundef %360, ptr noundef %362, i32 noundef %363) #11
  call void @exit(i32 noundef 1) #12
  unreachable

365:                                              ; preds = %333
  %366 = call ptr @s2n_stuffer_raw_read(ptr noundef nonnull %192, i32 noundef 14) #9
  %367 = load i32, ptr @test_count, align 4, !tbaa !5
  %368 = add nsw i32 %367, 1
  store i32 %368, ptr @test_count, align 4, !tbaa !5
  %369 = icmp eq ptr %366, null
  br i1 %369, label %370, label %394

370:                                              ; preds = %365
  %371 = tail call ptr @__errno_location() #10
  %372 = load i32, ptr %371, align 4, !tbaa !5
  %373 = load ptr, ptr @stderr, align 8, !tbaa !9
  %374 = call i32 @s2n_print_stacktrace(ptr noundef %373) #9
  %375 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %376 = trunc nuw i8 %375 to i1
  br i1 %376, label %377, label %381

377:                                              ; preds = %370
  %378 = load ptr, ptr @stderr, align 8, !tbaa !9
  %379 = call i32 @fileno(ptr noundef %378) #9
  %380 = call i32 @isatty(i32 noundef %379) #9
  %.not316 = icmp eq i32 %380, 0
  br i1 %.not316, label %381, label %382

381:                                              ; preds = %377, %370
  br label %382

382:                                              ; preds = %377, %381
  %.str.4.sink457 = phi ptr [ @.str.4, %381 ], [ @.str, %377 ]
  store i32 %372, ptr %371, align 4, !tbaa !5
  %383 = load ptr, ptr @stderr, align 8, !tbaa !9
  %384 = load i32, ptr @test_count, align 4, !tbaa !5
  %385 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %386 = load i32, ptr %385, align 4, !tbaa !5
  %387 = call ptr @s2n_strerror(i32 noundef %386, ptr noundef nonnull @.str.3) #9
  %388 = load i32, ptr %385, align 4, !tbaa !5
  %389 = call ptr @s2n_strerror_debug(i32 noundef %388, ptr noundef nonnull @.str.3) #9
  %390 = load i32, ptr %371, align 4, !tbaa !5
  %391 = call ptr @strerror(i32 noundef %390) #9
  %392 = load i32, ptr %371, align 4, !tbaa !5
  %393 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %383, ptr noundef nonnull %.str.4.sink457, i32 noundef %384, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.2, i32 noundef 194, ptr noundef %387, ptr noundef %389, ptr noundef %391, i32 noundef %392) #11
  call void @exit(i32 noundef 1) #12
  unreachable

394:                                              ; preds = %365
  %395 = add nsw i32 %367, 2
  store i32 %395, ptr @test_count, align 4, !tbaa !5
  %bcmp = call i32 @bcmp(ptr noundef nonnull dereferenceable(14) %366, ptr noundef nonnull dereferenceable(14) @test_signature_data, i64 14)
  %396 = icmp eq i32 %bcmp, 0
  br i1 %396, label %421, label %397

397:                                              ; preds = %394
  %398 = tail call ptr @__errno_location() #10
  %399 = load i32, ptr %398, align 4, !tbaa !5
  %400 = load ptr, ptr @stderr, align 8, !tbaa !9
  %401 = call i32 @s2n_print_stacktrace(ptr noundef %400) #9
  %402 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %403 = trunc nuw i8 %402 to i1
  br i1 %403, label %404, label %408

404:                                              ; preds = %397
  %405 = load ptr, ptr @stderr, align 8, !tbaa !9
  %406 = call i32 @fileno(ptr noundef %405) #9
  %407 = call i32 @isatty(i32 noundef %406) #9
  %.not241 = icmp eq i32 %407, 0
  br i1 %.not241, label %408, label %409

408:                                              ; preds = %404, %397
  br label %409

409:                                              ; preds = %404, %408
  %.str.4.sink468 = phi ptr [ @.str.4, %408 ], [ @.str, %404 ]
  store i32 %399, ptr %398, align 4, !tbaa !5
  %410 = load ptr, ptr @stderr, align 8, !tbaa !9
  %411 = load i32, ptr @test_count, align 4, !tbaa !5
  %412 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %413 = load i32, ptr %412, align 4, !tbaa !5
  %414 = call ptr @s2n_strerror(i32 noundef %413, ptr noundef nonnull @.str.3) #9
  %415 = load i32, ptr %412, align 4, !tbaa !5
  %416 = call ptr @s2n_strerror_debug(i32 noundef %415, ptr noundef nonnull @.str.3) #9
  %417 = load i32, ptr %398, align 4, !tbaa !5
  %418 = call ptr @strerror(i32 noundef %417) #9
  %419 = load i32, ptr %398, align 4, !tbaa !5
  %420 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %410, ptr noundef nonnull %.str.4.sink468, i32 noundef %411, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.2, i32 noundef 195, ptr noundef %414, ptr noundef %416, ptr noundef %418, i32 noundef %419) #11
  call void @exit(i32 noundef 1) #12
  unreachable

421:                                              ; preds = %394
  %422 = add nsw i32 %367, 3
  store i32 %422, ptr @test_count, align 4, !tbaa !5
  %423 = call i32 @s2n_connection_free(ptr noundef nonnull %97) #9
  %424 = icmp eq i32 %423, -1
  br i1 %424, label %425, label %449

425:                                              ; preds = %421
  %426 = tail call ptr @__errno_location() #10
  %427 = load i32, ptr %426, align 4, !tbaa !5
  %428 = load ptr, ptr @stderr, align 8, !tbaa !9
  %429 = call i32 @s2n_print_stacktrace(ptr noundef %428) #9
  %430 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %431 = trunc nuw i8 %430 to i1
  br i1 %431, label %432, label %436

432:                                              ; preds = %425
  %433 = load ptr, ptr @stderr, align 8, !tbaa !9
  %434 = call i32 @fileno(ptr noundef %433) #9
  %435 = call i32 @isatty(i32 noundef %434) #9
  %.not315 = icmp eq i32 %435, 0
  br i1 %.not315, label %436, label %437

436:                                              ; preds = %432, %425
  br label %437

437:                                              ; preds = %432, %436
  %.str.4.sink479 = phi ptr [ @.str.4, %436 ], [ @.str, %432 ]
  store i32 %427, ptr %426, align 4, !tbaa !5
  %438 = load ptr, ptr @stderr, align 8, !tbaa !9
  %439 = load i32, ptr @test_count, align 4, !tbaa !5
  %440 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %441 = load i32, ptr %440, align 4, !tbaa !5
  %442 = call ptr @s2n_strerror(i32 noundef %441, ptr noundef nonnull @.str.3) #9
  %443 = load i32, ptr %440, align 4, !tbaa !5
  %444 = call ptr @s2n_strerror_debug(i32 noundef %443, ptr noundef nonnull @.str.3) #9
  %445 = load i32, ptr %426, align 4, !tbaa !5
  %446 = call ptr @strerror(i32 noundef %445) #9
  %447 = load i32, ptr %426, align 4, !tbaa !5
  %448 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %438, ptr noundef nonnull %.str.4.sink479, i32 noundef %439, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.2, i32 noundef 197, ptr noundef %442, ptr noundef %444, ptr noundef %446, i32 noundef %447) #11
  call void @exit(i32 noundef 1) #12
  unreachable

449:                                              ; preds = %421
  %450 = load i32, ptr @test_count, align 4, !tbaa !5
  %451 = add nsw i32 %450, 1
  store i32 %451, ptr @test_count, align 4, !tbaa !5
  %452 = load ptr, ptr %3, align 8, !tbaa !9
  %453 = call i32 @s2n_cert_chain_and_key_free(ptr noundef %452) #9
  %454 = icmp eq i32 %453, -1
  br i1 %454, label %455, label %479

455:                                              ; preds = %449
  %456 = tail call ptr @__errno_location() #10
  %457 = load i32, ptr %456, align 4, !tbaa !5
  %458 = load ptr, ptr @stderr, align 8, !tbaa !9
  %459 = call i32 @s2n_print_stacktrace(ptr noundef %458) #9
  %460 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %461 = trunc nuw i8 %460 to i1
  br i1 %461, label %462, label %466

462:                                              ; preds = %455
  %463 = load ptr, ptr @stderr, align 8, !tbaa !9
  %464 = call i32 @fileno(ptr noundef %463) #9
  %465 = call i32 @isatty(i32 noundef %464) #9
  %.not314 = icmp eq i32 %465, 0
  br i1 %.not314, label %466, label %467

466:                                              ; preds = %462, %455
  br label %467

467:                                              ; preds = %462, %466
  %.str.4.sink490 = phi ptr [ @.str.4, %466 ], [ @.str, %462 ]
  store i32 %457, ptr %456, align 4, !tbaa !5
  %468 = load ptr, ptr @stderr, align 8, !tbaa !9
  %469 = load i32, ptr @test_count, align 4, !tbaa !5
  %470 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %471 = load i32, ptr %470, align 4, !tbaa !5
  %472 = call ptr @s2n_strerror(i32 noundef %471, ptr noundef nonnull @.str.3) #9
  %473 = load i32, ptr %470, align 4, !tbaa !5
  %474 = call ptr @s2n_strerror_debug(i32 noundef %473, ptr noundef nonnull @.str.3) #9
  %475 = load i32, ptr %456, align 4, !tbaa !5
  %476 = call ptr @strerror(i32 noundef %475) #9
  %477 = load i32, ptr %456, align 4, !tbaa !5
  %478 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %468, ptr noundef nonnull %.str.4.sink490, i32 noundef %469, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.2, i32 noundef 198, ptr noundef %472, ptr noundef %474, ptr noundef %476, i32 noundef %477) #11
  call void @exit(i32 noundef 1) #12
  unreachable

479:                                              ; preds = %449
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %5) #9
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %4) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #9
  store ptr null, ptr %6, align 8, !tbaa !9
  %480 = load i32, ptr @test_count, align 4, !tbaa !5
  %481 = add nsw i32 %480, 1
  store i32 %481, ptr @test_count, align 4, !tbaa !5
  %482 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef nonnull %6, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.25) #9
  %483 = icmp eq i32 %482, -1
  br i1 %483, label %484, label %508

484:                                              ; preds = %479
  %485 = tail call ptr @__errno_location() #10
  %486 = load i32, ptr %485, align 4, !tbaa !5
  %487 = load ptr, ptr @stderr, align 8, !tbaa !9
  %488 = call i32 @s2n_print_stacktrace(ptr noundef %487) #9
  %489 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %490 = trunc nuw i8 %489 to i1
  br i1 %490, label %491, label %495

491:                                              ; preds = %484
  %492 = load ptr, ptr @stderr, align 8, !tbaa !9
  %493 = call i32 @fileno(ptr noundef %492) #9
  %494 = call i32 @isatty(i32 noundef %493) #9
  %.not313 = icmp eq i32 %494, 0
  br i1 %.not313, label %495, label %496

495:                                              ; preds = %491, %484
  br label %496

496:                                              ; preds = %491, %495
  %.str.4.sink501 = phi ptr [ @.str.4, %495 ], [ @.str, %491 ]
  store i32 %486, ptr %485, align 4, !tbaa !5
  %497 = load ptr, ptr @stderr, align 8, !tbaa !9
  %498 = load i32, ptr @test_count, align 4, !tbaa !5
  %499 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %500 = load i32, ptr %499, align 4, !tbaa !5
  %501 = call ptr @s2n_strerror(i32 noundef %500, ptr noundef nonnull @.str.3) #9
  %502 = load i32, ptr %499, align 4, !tbaa !5
  %503 = call ptr @s2n_strerror_debug(i32 noundef %502, ptr noundef nonnull @.str.3) #9
  %504 = load i32, ptr %485, align 4, !tbaa !5
  %505 = call ptr @strerror(i32 noundef %504) #9
  %506 = load i32, ptr %485, align 4, !tbaa !5
  %507 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %497, ptr noundef nonnull %.str.4.sink501, i32 noundef %498, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.2, i32 noundef 205, ptr noundef %501, ptr noundef %503, ptr noundef %505, i32 noundef %506) #11
  call void @exit(i32 noundef 1) #12
  unreachable

508:                                              ; preds = %479
  %509 = load i32, ptr @test_count, align 4, !tbaa !5
  %510 = add nsw i32 %509, 1
  store i32 %510, ptr @test_count, align 4, !tbaa !5
  %511 = call ptr @s2n_config_new() #9
  %512 = icmp eq ptr %511, null
  br i1 %512, label %513, label %537

513:                                              ; preds = %508
  %514 = tail call ptr @__errno_location() #10
  %515 = load i32, ptr %514, align 4, !tbaa !5
  %516 = load ptr, ptr @stderr, align 8, !tbaa !9
  %517 = call i32 @s2n_print_stacktrace(ptr noundef %516) #9
  %518 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %519 = trunc nuw i8 %518 to i1
  br i1 %519, label %520, label %524

520:                                              ; preds = %513
  %521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %522 = call i32 @fileno(ptr noundef %521) #9
  %523 = call i32 @isatty(i32 noundef %522) #9
  %.not312 = icmp eq i32 %523, 0
  br i1 %.not312, label %524, label %525

524:                                              ; preds = %520, %513
  br label %525

525:                                              ; preds = %520, %524
  %.str.4.sink512 = phi ptr [ @.str.4, %524 ], [ @.str, %520 ]
  store i32 %515, ptr %514, align 4, !tbaa !5
  %526 = load ptr, ptr @stderr, align 8, !tbaa !9
  %527 = load i32, ptr @test_count, align 4, !tbaa !5
  %528 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %529 = load i32, ptr %528, align 4, !tbaa !5
  %530 = call ptr @s2n_strerror(i32 noundef %529, ptr noundef nonnull @.str.3) #9
  %531 = load i32, ptr %528, align 4, !tbaa !5
  %532 = call ptr @s2n_strerror_debug(i32 noundef %531, ptr noundef nonnull @.str.3) #9
  %533 = load i32, ptr %514, align 4, !tbaa !5
  %534 = call ptr @strerror(i32 noundef %533) #9
  %535 = load i32, ptr %514, align 4, !tbaa !5
  %536 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %526, ptr noundef nonnull %.str.4.sink512, i32 noundef %527, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.2, i32 noundef 208, ptr noundef %530, ptr noundef %532, ptr noundef %534, i32 noundef %535) #11
  call void @exit(i32 noundef 1) #12
  unreachable

537:                                              ; preds = %508
  %538 = load i32, ptr @test_count, align 4, !tbaa !5
  %539 = add nsw i32 %538, 1
  store i32 %539, ptr @test_count, align 4, !tbaa !5
  %540 = load ptr, ptr %6, align 8, !tbaa !9
  %541 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef nonnull %511, ptr noundef %540) #9
  %542 = icmp eq i32 %541, -1
  br i1 %542, label %543, label %567

543:                                              ; preds = %537
  %544 = tail call ptr @__errno_location() #10
  %545 = load i32, ptr %544, align 4, !tbaa !5
  %546 = load ptr, ptr @stderr, align 8, !tbaa !9
  %547 = call i32 @s2n_print_stacktrace(ptr noundef %546) #9
  %548 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %549 = trunc nuw i8 %548 to i1
  br i1 %549, label %550, label %554

550:                                              ; preds = %543
  %551 = load ptr, ptr @stderr, align 8, !tbaa !9
  %552 = call i32 @fileno(ptr noundef %551) #9
  %553 = call i32 @isatty(i32 noundef %552) #9
  %.not311 = icmp eq i32 %553, 0
  br i1 %.not311, label %554, label %555

554:                                              ; preds = %550, %543
  br label %555

555:                                              ; preds = %550, %554
  %.str.4.sink523 = phi ptr [ @.str.4, %554 ], [ @.str, %550 ]
  store i32 %545, ptr %544, align 4, !tbaa !5
  %556 = load ptr, ptr @stderr, align 8, !tbaa !9
  %557 = load i32, ptr @test_count, align 4, !tbaa !5
  %558 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %559 = load i32, ptr %558, align 4, !tbaa !5
  %560 = call ptr @s2n_strerror(i32 noundef %559, ptr noundef nonnull @.str.3) #9
  %561 = load i32, ptr %558, align 4, !tbaa !5
  %562 = call ptr @s2n_strerror_debug(i32 noundef %561, ptr noundef nonnull @.str.3) #9
  %563 = load i32, ptr %544, align 4, !tbaa !5
  %564 = call ptr @strerror(i32 noundef %563) #9
  %565 = load i32, ptr %544, align 4, !tbaa !5
  %566 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %556, ptr noundef nonnull %.str.4.sink523, i32 noundef %557, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.2, i32 noundef 209, ptr noundef %560, ptr noundef %562, ptr noundef %564, i32 noundef %565) #11
  call void @exit(i32 noundef 1) #12
  unreachable

567:                                              ; preds = %537
  %568 = load i32, ptr @test_count, align 4, !tbaa !5
  %569 = add nsw i32 %568, 1
  store i32 %569, ptr @test_count, align 4, !tbaa !5
  %570 = call i32 @s2n_config_set_async_pkey_callback(ptr noundef nonnull %511, ptr noundef nonnull @s2n_async_pkey_store_op) #9
  %571 = icmp eq i32 %570, -1
  br i1 %571, label %572, label %596

572:                                              ; preds = %567
  %573 = tail call ptr @__errno_location() #10
  %574 = load i32, ptr %573, align 4, !tbaa !5
  %575 = load ptr, ptr @stderr, align 8, !tbaa !9
  %576 = call i32 @s2n_print_stacktrace(ptr noundef %575) #9
  %577 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %578 = trunc nuw i8 %577 to i1
  br i1 %578, label %579, label %583

579:                                              ; preds = %572
  %580 = load ptr, ptr @stderr, align 8, !tbaa !9
  %581 = call i32 @fileno(ptr noundef %580) #9
  %582 = call i32 @isatty(i32 noundef %581) #9
  %.not310 = icmp eq i32 %582, 0
  br i1 %.not310, label %583, label %584

583:                                              ; preds = %579, %572
  br label %584

584:                                              ; preds = %579, %583
  %.str.4.sink534 = phi ptr [ @.str.4, %583 ], [ @.str, %579 ]
  store i32 %574, ptr %573, align 4, !tbaa !5
  %585 = load ptr, ptr @stderr, align 8, !tbaa !9
  %586 = load i32, ptr @test_count, align 4, !tbaa !5
  %587 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %588 = load i32, ptr %587, align 4, !tbaa !5
  %589 = call ptr @s2n_strerror(i32 noundef %588, ptr noundef nonnull @.str.3) #9
  %590 = load i32, ptr %587, align 4, !tbaa !5
  %591 = call ptr @s2n_strerror_debug(i32 noundef %590, ptr noundef nonnull @.str.3) #9
  %592 = load i32, ptr %573, align 4, !tbaa !5
  %593 = call ptr @strerror(i32 noundef %592) #9
  %594 = load i32, ptr %573, align 4, !tbaa !5
  %595 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %585, ptr noundef nonnull %.str.4.sink534, i32 noundef %586, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.2, i32 noundef 210, ptr noundef %589, ptr noundef %591, ptr noundef %593, i32 noundef %594) #11
  call void @exit(i32 noundef 1) #12
  unreachable

596:                                              ; preds = %567
  %597 = load i32, ptr @test_count, align 4, !tbaa !5
  %598 = add nsw i32 %597, 1
  store i32 %598, ptr @test_count, align 4, !tbaa !5
  %599 = call i32 @s2n_config_set_unsafe_for_testing(ptr noundef nonnull %511) #9
  %600 = icmp eq i32 %599, -1
  br i1 %600, label %601, label %625

601:                                              ; preds = %596
  %602 = tail call ptr @__errno_location() #10
  %603 = load i32, ptr %602, align 4, !tbaa !5
  %604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %605 = call i32 @s2n_print_stacktrace(ptr noundef %604) #9
  %606 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %607 = trunc nuw i8 %606 to i1
  br i1 %607, label %608, label %612

608:                                              ; preds = %601
  %609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %610 = call i32 @fileno(ptr noundef %609) #9
  %611 = call i32 @isatty(i32 noundef %610) #9
  %.not309 = icmp eq i32 %611, 0
  br i1 %.not309, label %612, label %613

612:                                              ; preds = %608, %601
  br label %613

613:                                              ; preds = %608, %612
  %.str.4.sink545 = phi ptr [ @.str.4, %612 ], [ @.str, %608 ]
  store i32 %603, ptr %602, align 4, !tbaa !5
  %614 = load ptr, ptr @stderr, align 8, !tbaa !9
  %615 = load i32, ptr @test_count, align 4, !tbaa !5
  %616 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %617 = load i32, ptr %616, align 4, !tbaa !5
  %618 = call ptr @s2n_strerror(i32 noundef %617, ptr noundef nonnull @.str.3) #9
  %619 = load i32, ptr %616, align 4, !tbaa !5
  %620 = call ptr @s2n_strerror_debug(i32 noundef %619, ptr noundef nonnull @.str.3) #9
  %621 = load i32, ptr %602, align 4, !tbaa !5
  %622 = call ptr @strerror(i32 noundef %621) #9
  %623 = load i32, ptr %602, align 4, !tbaa !5
  %624 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %614, ptr noundef nonnull %.str.4.sink545, i32 noundef %615, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.2, i32 noundef 211, ptr noundef %618, ptr noundef %620, ptr noundef %622, i32 noundef %623) #11
  call void @exit(i32 noundef 1) #12
  unreachable

625:                                              ; preds = %596
  %626 = load i32, ptr @test_count, align 4, !tbaa !5
  %627 = add nsw i32 %626, 1
  store i32 %627, ptr @test_count, align 4, !tbaa !5
  %628 = call i32 @s2n_config_set_cipher_preferences(ptr noundef nonnull %511, ptr noundef nonnull @.str.31) #9
  %629 = icmp eq i32 %628, -1
  br i1 %629, label %630, label %654

630:                                              ; preds = %625
  %631 = tail call ptr @__errno_location() #10
  %632 = load i32, ptr %631, align 4, !tbaa !5
  %633 = load ptr, ptr @stderr, align 8, !tbaa !9
  %634 = call i32 @s2n_print_stacktrace(ptr noundef %633) #9
  %635 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %636 = trunc nuw i8 %635 to i1
  br i1 %636, label %637, label %641

637:                                              ; preds = %630
  %638 = load ptr, ptr @stderr, align 8, !tbaa !9
  %639 = call i32 @fileno(ptr noundef %638) #9
  %640 = call i32 @isatty(i32 noundef %639) #9
  %.not308 = icmp eq i32 %640, 0
  br i1 %.not308, label %641, label %642

641:                                              ; preds = %637, %630
  br label %642

642:                                              ; preds = %637, %641
  %.str.4.sink556 = phi ptr [ @.str.4, %641 ], [ @.str, %637 ]
  store i32 %632, ptr %631, align 4, !tbaa !5
  %643 = load ptr, ptr @stderr, align 8, !tbaa !9
  %644 = load i32, ptr @test_count, align 4, !tbaa !5
  %645 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %646 = load i32, ptr %645, align 4, !tbaa !5
  %647 = call ptr @s2n_strerror(i32 noundef %646, ptr noundef nonnull @.str.3) #9
  %648 = load i32, ptr %645, align 4, !tbaa !5
  %649 = call ptr @s2n_strerror_debug(i32 noundef %648, ptr noundef nonnull @.str.3) #9
  %650 = load i32, ptr %631, align 4, !tbaa !5
  %651 = call ptr @strerror(i32 noundef %650) #9
  %652 = load i32, ptr %631, align 4, !tbaa !5
  %653 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %643, ptr noundef nonnull %.str.4.sink556, i32 noundef %644, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.2, i32 noundef 213, ptr noundef %647, ptr noundef %649, ptr noundef %651, i32 noundef %652) #11
  call void @exit(i32 noundef 1) #12
  unreachable

654:                                              ; preds = %625
  %655 = load i32, ptr @test_count, align 4, !tbaa !5
  %656 = add nsw i32 %655, 1
  store i32 %656, ptr @test_count, align 4, !tbaa !5
  %657 = call i32 @s2n_config_set_async_pkey_validation_mode(ptr noundef nonnull %511, i32 noundef 1) #9
  %658 = icmp eq i32 %657, -1
  br i1 %658, label %659, label %683

659:                                              ; preds = %654
  %660 = tail call ptr @__errno_location() #10
  %661 = load i32, ptr %660, align 4, !tbaa !5
  %662 = load ptr, ptr @stderr, align 8, !tbaa !9
  %663 = call i32 @s2n_print_stacktrace(ptr noundef %662) #9
  %664 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %665 = trunc nuw i8 %664 to i1
  br i1 %665, label %666, label %670

666:                                              ; preds = %659
  %667 = load ptr, ptr @stderr, align 8, !tbaa !9
  %668 = call i32 @fileno(ptr noundef %667) #9
  %669 = call i32 @isatty(i32 noundef %668) #9
  %.not307 = icmp eq i32 %669, 0
  br i1 %.not307, label %670, label %671

670:                                              ; preds = %666, %659
  br label %671

671:                                              ; preds = %666, %670
  %.str.4.sink567 = phi ptr [ @.str.4, %670 ], [ @.str, %666 ]
  store i32 %661, ptr %660, align 4, !tbaa !5
  %672 = load ptr, ptr @stderr, align 8, !tbaa !9
  %673 = load i32, ptr @test_count, align 4, !tbaa !5
  %674 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %675 = load i32, ptr %674, align 4, !tbaa !5
  %676 = call ptr @s2n_strerror(i32 noundef %675, ptr noundef nonnull @.str.3) #9
  %677 = load i32, ptr %674, align 4, !tbaa !5
  %678 = call ptr @s2n_strerror_debug(i32 noundef %677, ptr noundef nonnull @.str.3) #9
  %679 = load i32, ptr %660, align 4, !tbaa !5
  %680 = call ptr @strerror(i32 noundef %679) #9
  %681 = load i32, ptr %660, align 4, !tbaa !5
  %682 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %672, ptr noundef nonnull %.str.4.sink567, i32 noundef %673, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.2, i32 noundef 215, ptr noundef %676, ptr noundef %678, ptr noundef %680, i32 noundef %681) #11
  call void @exit(i32 noundef 1) #12
  unreachable

683:                                              ; preds = %654
  %684 = call ptr @s2n_connection_new(i32 noundef 1) #9
  %685 = load i32, ptr @test_count, align 4, !tbaa !5
  %686 = add nsw i32 %685, 1
  store i32 %686, ptr @test_count, align 4, !tbaa !5
  %687 = icmp eq ptr %684, null
  br i1 %687, label %688, label %712

688:                                              ; preds = %683
  %689 = tail call ptr @__errno_location() #10
  %690 = load i32, ptr %689, align 4, !tbaa !5
  %691 = load ptr, ptr @stderr, align 8, !tbaa !9
  %692 = call i32 @s2n_print_stacktrace(ptr noundef %691) #9
  %693 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %694 = trunc nuw i8 %693 to i1
  br i1 %694, label %695, label %699

695:                                              ; preds = %688
  %696 = load ptr, ptr @stderr, align 8, !tbaa !9
  %697 = call i32 @fileno(ptr noundef %696) #9
  %698 = call i32 @isatty(i32 noundef %697) #9
  %.not306 = icmp eq i32 %698, 0
  br i1 %.not306, label %699, label %700

699:                                              ; preds = %695, %688
  br label %700

700:                                              ; preds = %695, %699
  %.str.4.sink578 = phi ptr [ @.str.4, %699 ], [ @.str, %695 ]
  store i32 %690, ptr %689, align 4, !tbaa !5
  %701 = load ptr, ptr @stderr, align 8, !tbaa !9
  %702 = load i32, ptr @test_count, align 4, !tbaa !5
  %703 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %704 = load i32, ptr %703, align 4, !tbaa !5
  %705 = call ptr @s2n_strerror(i32 noundef %704, ptr noundef nonnull @.str.3) #9
  %706 = load i32, ptr %703, align 4, !tbaa !5
  %707 = call ptr @s2n_strerror_debug(i32 noundef %706, ptr noundef nonnull @.str.3) #9
  %708 = load i32, ptr %689, align 4, !tbaa !5
  %709 = call ptr @strerror(i32 noundef %708) #9
  %710 = load i32, ptr %689, align 4, !tbaa !5
  %711 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %701, ptr noundef nonnull %.str.4.sink578, i32 noundef %702, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.2, i32 noundef 219, ptr noundef %705, ptr noundef %707, ptr noundef %709, i32 noundef %710) #11
  call void @exit(i32 noundef 1) #12
  unreachable

712:                                              ; preds = %683
  %713 = add nsw i32 %685, 2
  store i32 %713, ptr @test_count, align 4, !tbaa !5
  %714 = call i32 @s2n_connection_set_config(ptr noundef nonnull %684, ptr noundef nonnull %511) #9
  %715 = icmp eq i32 %714, -1
  br i1 %715, label %716, label %740

716:                                              ; preds = %712
  %717 = tail call ptr @__errno_location() #10
  %718 = load i32, ptr %717, align 4, !tbaa !5
  %719 = load ptr, ptr @stderr, align 8, !tbaa !9
  %720 = call i32 @s2n_print_stacktrace(ptr noundef %719) #9
  %721 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %722 = trunc nuw i8 %721 to i1
  br i1 %722, label %723, label %727

723:                                              ; preds = %716
  %724 = load ptr, ptr @stderr, align 8, !tbaa !9
  %725 = call i32 @fileno(ptr noundef %724) #9
  %726 = call i32 @isatty(i32 noundef %725) #9
  %.not305 = icmp eq i32 %726, 0
  br i1 %.not305, label %727, label %728

727:                                              ; preds = %723, %716
  br label %728

728:                                              ; preds = %723, %727
  %.str.4.sink589 = phi ptr [ @.str.4, %727 ], [ @.str, %723 ]
  store i32 %718, ptr %717, align 4, !tbaa !5
  %729 = load ptr, ptr @stderr, align 8, !tbaa !9
  %730 = load i32, ptr @test_count, align 4, !tbaa !5
  %731 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %732 = load i32, ptr %731, align 4, !tbaa !5
  %733 = call ptr @s2n_strerror(i32 noundef %732, ptr noundef nonnull @.str.3) #9
  %734 = load i32, ptr %731, align 4, !tbaa !5
  %735 = call ptr @s2n_strerror_debug(i32 noundef %734, ptr noundef nonnull @.str.3) #9
  %736 = load i32, ptr %717, align 4, !tbaa !5
  %737 = call ptr @strerror(i32 noundef %736) #9
  %738 = load i32, ptr %717, align 4, !tbaa !5
  %739 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %729, ptr noundef nonnull %.str.4.sink589, i32 noundef %730, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.2, i32 noundef 220, ptr noundef %733, ptr noundef %735, ptr noundef %737, i32 noundef %738) #11
  call void @exit(i32 noundef 1) #12
  unreachable

740:                                              ; preds = %712
  %741 = load i32, ptr @test_count, align 4, !tbaa !5
  %742 = add nsw i32 %741, 1
  store i32 %742, ptr @test_count, align 4, !tbaa !5
  %743 = call i32 @s2n_connection_set_client_auth_type(ptr noundef nonnull %684, i32 noundef 1) #9
  %744 = icmp eq i32 %743, -1
  br i1 %744, label %745, label %769

745:                                              ; preds = %740
  %746 = tail call ptr @__errno_location() #10
  %747 = load i32, ptr %746, align 4, !tbaa !5
  %748 = load ptr, ptr @stderr, align 8, !tbaa !9
  %749 = call i32 @s2n_print_stacktrace(ptr noundef %748) #9
  %750 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %751 = trunc nuw i8 %750 to i1
  br i1 %751, label %752, label %756

752:                                              ; preds = %745
  %753 = load ptr, ptr @stderr, align 8, !tbaa !9
  %754 = call i32 @fileno(ptr noundef %753) #9
  %755 = call i32 @isatty(i32 noundef %754) #9
  %.not304 = icmp eq i32 %755, 0
  br i1 %.not304, label %756, label %757

756:                                              ; preds = %752, %745
  br label %757

757:                                              ; preds = %752, %756
  %.str.4.sink600 = phi ptr [ @.str.4, %756 ], [ @.str, %752 ]
  store i32 %747, ptr %746, align 4, !tbaa !5
  %758 = load ptr, ptr @stderr, align 8, !tbaa !9
  %759 = load i32, ptr @test_count, align 4, !tbaa !5
  %760 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %761 = load i32, ptr %760, align 4, !tbaa !5
  %762 = call ptr @s2n_strerror(i32 noundef %761, ptr noundef nonnull @.str.3) #9
  %763 = load i32, ptr %760, align 4, !tbaa !5
  %764 = call ptr @s2n_strerror_debug(i32 noundef %763, ptr noundef nonnull @.str.3) #9
  %765 = load i32, ptr %746, align 4, !tbaa !5
  %766 = call ptr @strerror(i32 noundef %765) #9
  %767 = load i32, ptr %746, align 4, !tbaa !5
  %768 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %758, ptr noundef nonnull %.str.4.sink600, i32 noundef %759, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.2, i32 noundef 221, ptr noundef %762, ptr noundef %764, ptr noundef %766, i32 noundef %767) #11
  call void @exit(i32 noundef 1) #12
  unreachable

769:                                              ; preds = %740
  %770 = load i32, ptr @test_count, align 4, !tbaa !5
  %771 = add nsw i32 %770, 1
  store i32 %771, ptr @test_count, align 4, !tbaa !5
  %772 = call ptr @s2n_config_new() #9
  %773 = icmp eq ptr %772, null
  br i1 %773, label %774, label %798

774:                                              ; preds = %769
  %775 = tail call ptr @__errno_location() #10
  %776 = load i32, ptr %775, align 4, !tbaa !5
  %777 = load ptr, ptr @stderr, align 8, !tbaa !9
  %778 = call i32 @s2n_print_stacktrace(ptr noundef %777) #9
  %779 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %780 = trunc nuw i8 %779 to i1
  br i1 %780, label %781, label %785

781:                                              ; preds = %774
  %782 = load ptr, ptr @stderr, align 8, !tbaa !9
  %783 = call i32 @fileno(ptr noundef %782) #9
  %784 = call i32 @isatty(i32 noundef %783) #9
  %.not303 = icmp eq i32 %784, 0
  br i1 %.not303, label %785, label %786

785:                                              ; preds = %781, %774
  br label %786

786:                                              ; preds = %781, %785
  %.str.4.sink611 = phi ptr [ @.str.4, %785 ], [ @.str, %781 ]
  store i32 %776, ptr %775, align 4, !tbaa !5
  %787 = load ptr, ptr @stderr, align 8, !tbaa !9
  %788 = load i32, ptr @test_count, align 4, !tbaa !5
  %789 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %790 = load i32, ptr %789, align 4, !tbaa !5
  %791 = call ptr @s2n_strerror(i32 noundef %790, ptr noundef nonnull @.str.3) #9
  %792 = load i32, ptr %789, align 4, !tbaa !5
  %793 = call ptr @s2n_strerror_debug(i32 noundef %792, ptr noundef nonnull @.str.3) #9
  %794 = load i32, ptr %775, align 4, !tbaa !5
  %795 = call ptr @strerror(i32 noundef %794) #9
  %796 = load i32, ptr %775, align 4, !tbaa !5
  %797 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %787, ptr noundef nonnull %.str.4.sink611, i32 noundef %788, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.2, i32 noundef 224, ptr noundef %791, ptr noundef %793, ptr noundef %795, i32 noundef %796) #11
  call void @exit(i32 noundef 1) #12
  unreachable

798:                                              ; preds = %769
  %799 = load i32, ptr @test_count, align 4, !tbaa !5
  %800 = add nsw i32 %799, 1
  store i32 %800, ptr @test_count, align 4, !tbaa !5
  %801 = load ptr, ptr %6, align 8, !tbaa !9
  %802 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef nonnull %772, ptr noundef %801) #9
  %803 = icmp eq i32 %802, -1
  br i1 %803, label %804, label %828

804:                                              ; preds = %798
  %805 = tail call ptr @__errno_location() #10
  %806 = load i32, ptr %805, align 4, !tbaa !5
  %807 = load ptr, ptr @stderr, align 8, !tbaa !9
  %808 = call i32 @s2n_print_stacktrace(ptr noundef %807) #9
  %809 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %810 = trunc nuw i8 %809 to i1
  br i1 %810, label %811, label %815

811:                                              ; preds = %804
  %812 = load ptr, ptr @stderr, align 8, !tbaa !9
  %813 = call i32 @fileno(ptr noundef %812) #9
  %814 = call i32 @isatty(i32 noundef %813) #9
  %.not302 = icmp eq i32 %814, 0
  br i1 %.not302, label %815, label %816

815:                                              ; preds = %811, %804
  br label %816

816:                                              ; preds = %811, %815
  %.str.4.sink622 = phi ptr [ @.str.4, %815 ], [ @.str, %811 ]
  store i32 %806, ptr %805, align 4, !tbaa !5
  %817 = load ptr, ptr @stderr, align 8, !tbaa !9
  %818 = load i32, ptr @test_count, align 4, !tbaa !5
  %819 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %820 = load i32, ptr %819, align 4, !tbaa !5
  %821 = call ptr @s2n_strerror(i32 noundef %820, ptr noundef nonnull @.str.3) #9
  %822 = load i32, ptr %819, align 4, !tbaa !5
  %823 = call ptr @s2n_strerror_debug(i32 noundef %822, ptr noundef nonnull @.str.3) #9
  %824 = load i32, ptr %805, align 4, !tbaa !5
  %825 = call ptr @strerror(i32 noundef %824) #9
  %826 = load i32, ptr %805, align 4, !tbaa !5
  %827 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %817, ptr noundef nonnull %.str.4.sink622, i32 noundef %818, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.2, i32 noundef 225, ptr noundef %821, ptr noundef %823, ptr noundef %825, i32 noundef %826) #11
  call void @exit(i32 noundef 1) #12
  unreachable

828:                                              ; preds = %798
  %829 = load i32, ptr @test_count, align 4, !tbaa !5
  %830 = add nsw i32 %829, 1
  store i32 %830, ptr @test_count, align 4, !tbaa !5
  %831 = call i32 @s2n_config_set_unsafe_for_testing(ptr noundef nonnull %772) #9
  %832 = icmp eq i32 %831, -1
  br i1 %832, label %833, label %857

833:                                              ; preds = %828
  %834 = tail call ptr @__errno_location() #10
  %835 = load i32, ptr %834, align 4, !tbaa !5
  %836 = load ptr, ptr @stderr, align 8, !tbaa !9
  %837 = call i32 @s2n_print_stacktrace(ptr noundef %836) #9
  %838 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %839 = trunc nuw i8 %838 to i1
  br i1 %839, label %840, label %844

840:                                              ; preds = %833
  %841 = load ptr, ptr @stderr, align 8, !tbaa !9
  %842 = call i32 @fileno(ptr noundef %841) #9
  %843 = call i32 @isatty(i32 noundef %842) #9
  %.not301 = icmp eq i32 %843, 0
  br i1 %.not301, label %844, label %845

844:                                              ; preds = %840, %833
  br label %845

845:                                              ; preds = %840, %844
  %.str.4.sink633 = phi ptr [ @.str.4, %844 ], [ @.str, %840 ]
  store i32 %835, ptr %834, align 4, !tbaa !5
  %846 = load ptr, ptr @stderr, align 8, !tbaa !9
  %847 = load i32, ptr @test_count, align 4, !tbaa !5
  %848 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %849 = load i32, ptr %848, align 4, !tbaa !5
  %850 = call ptr @s2n_strerror(i32 noundef %849, ptr noundef nonnull @.str.3) #9
  %851 = load i32, ptr %848, align 4, !tbaa !5
  %852 = call ptr @s2n_strerror_debug(i32 noundef %851, ptr noundef nonnull @.str.3) #9
  %853 = load i32, ptr %834, align 4, !tbaa !5
  %854 = call ptr @strerror(i32 noundef %853) #9
  %855 = load i32, ptr %834, align 4, !tbaa !5
  %856 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %846, ptr noundef nonnull %.str.4.sink633, i32 noundef %847, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.2, i32 noundef 226, ptr noundef %850, ptr noundef %852, ptr noundef %854, i32 noundef %855) #11
  call void @exit(i32 noundef 1) #12
  unreachable

857:                                              ; preds = %828
  %858 = call ptr @s2n_connection_new(i32 noundef 0) #9
  %859 = load i32, ptr @test_count, align 4, !tbaa !5
  %860 = add nsw i32 %859, 1
  store i32 %860, ptr @test_count, align 4, !tbaa !5
  %861 = icmp eq ptr %858, null
  br i1 %861, label %862, label %886

862:                                              ; preds = %857
  %863 = tail call ptr @__errno_location() #10
  %864 = load i32, ptr %863, align 4, !tbaa !5
  %865 = load ptr, ptr @stderr, align 8, !tbaa !9
  %866 = call i32 @s2n_print_stacktrace(ptr noundef %865) #9
  %867 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %868 = trunc nuw i8 %867 to i1
  br i1 %868, label %869, label %873

869:                                              ; preds = %862
  %870 = load ptr, ptr @stderr, align 8, !tbaa !9
  %871 = call i32 @fileno(ptr noundef %870) #9
  %872 = call i32 @isatty(i32 noundef %871) #9
  %.not300 = icmp eq i32 %872, 0
  br i1 %.not300, label %873, label %874

873:                                              ; preds = %869, %862
  br label %874

874:                                              ; preds = %869, %873
  %.str.4.sink644 = phi ptr [ @.str.4, %873 ], [ @.str, %869 ]
  store i32 %864, ptr %863, align 4, !tbaa !5
  %875 = load ptr, ptr @stderr, align 8, !tbaa !9
  %876 = load i32, ptr @test_count, align 4, !tbaa !5
  %877 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %878 = load i32, ptr %877, align 4, !tbaa !5
  %879 = call ptr @s2n_strerror(i32 noundef %878, ptr noundef nonnull @.str.3) #9
  %880 = load i32, ptr %877, align 4, !tbaa !5
  %881 = call ptr @s2n_strerror_debug(i32 noundef %880, ptr noundef nonnull @.str.3) #9
  %882 = load i32, ptr %863, align 4, !tbaa !5
  %883 = call ptr @strerror(i32 noundef %882) #9
  %884 = load i32, ptr %863, align 4, !tbaa !5
  %885 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %875, ptr noundef nonnull %.str.4.sink644, i32 noundef %876, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.2, i32 noundef 229, ptr noundef %879, ptr noundef %881, ptr noundef %883, i32 noundef %884) #11
  call void @exit(i32 noundef 1) #12
  unreachable

886:                                              ; preds = %857
  %887 = add nsw i32 %859, 2
  store i32 %887, ptr @test_count, align 4, !tbaa !5
  %888 = call i32 @s2n_connection_set_config(ptr noundef nonnull %858, ptr noundef nonnull %772) #9
  %889 = icmp eq i32 %888, -1
  br i1 %889, label %890, label %914

890:                                              ; preds = %886
  %891 = tail call ptr @__errno_location() #10
  %892 = load i32, ptr %891, align 4, !tbaa !5
  %893 = load ptr, ptr @stderr, align 8, !tbaa !9
  %894 = call i32 @s2n_print_stacktrace(ptr noundef %893) #9
  %895 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %896 = trunc nuw i8 %895 to i1
  br i1 %896, label %897, label %901

897:                                              ; preds = %890
  %898 = load ptr, ptr @stderr, align 8, !tbaa !9
  %899 = call i32 @fileno(ptr noundef %898) #9
  %900 = call i32 @isatty(i32 noundef %899) #9
  %.not299 = icmp eq i32 %900, 0
  br i1 %.not299, label %901, label %902

901:                                              ; preds = %897, %890
  br label %902

902:                                              ; preds = %897, %901
  %.str.4.sink655 = phi ptr [ @.str.4, %901 ], [ @.str, %897 ]
  store i32 %892, ptr %891, align 4, !tbaa !5
  %903 = load ptr, ptr @stderr, align 8, !tbaa !9
  %904 = load i32, ptr @test_count, align 4, !tbaa !5
  %905 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %906 = load i32, ptr %905, align 4, !tbaa !5
  %907 = call ptr @s2n_strerror(i32 noundef %906, ptr noundef nonnull @.str.3) #9
  %908 = load i32, ptr %905, align 4, !tbaa !5
  %909 = call ptr @s2n_strerror_debug(i32 noundef %908, ptr noundef nonnull @.str.3) #9
  %910 = load i32, ptr %891, align 4, !tbaa !5
  %911 = call ptr @strerror(i32 noundef %910) #9
  %912 = load i32, ptr %891, align 4, !tbaa !5
  %913 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %903, ptr noundef nonnull %.str.4.sink655, i32 noundef %904, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.2, i32 noundef 230, ptr noundef %907, ptr noundef %909, ptr noundef %911, i32 noundef %912) #11
  call void @exit(i32 noundef 1) #12
  unreachable

914:                                              ; preds = %886
  %915 = load i32, ptr @test_count, align 4, !tbaa !5
  %916 = add nsw i32 %915, 1
  store i32 %916, ptr @test_count, align 4, !tbaa !5
  %917 = call i32 @s2n_connection_set_client_auth_type(ptr noundef nonnull %858, i32 noundef 1) #9
  %918 = icmp eq i32 %917, -1
  br i1 %918, label %919, label %943

919:                                              ; preds = %914
  %920 = tail call ptr @__errno_location() #10
  %921 = load i32, ptr %920, align 4, !tbaa !5
  %922 = load ptr, ptr @stderr, align 8, !tbaa !9
  %923 = call i32 @s2n_print_stacktrace(ptr noundef %922) #9
  %924 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %925 = trunc nuw i8 %924 to i1
  br i1 %925, label %926, label %930

926:                                              ; preds = %919
  %927 = load ptr, ptr @stderr, align 8, !tbaa !9
  %928 = call i32 @fileno(ptr noundef %927) #9
  %929 = call i32 @isatty(i32 noundef %928) #9
  %.not298 = icmp eq i32 %929, 0
  br i1 %.not298, label %930, label %931

930:                                              ; preds = %926, %919
  br label %931

931:                                              ; preds = %926, %930
  %.str.4.sink666 = phi ptr [ @.str.4, %930 ], [ @.str, %926 ]
  store i32 %921, ptr %920, align 4, !tbaa !5
  %932 = load ptr, ptr @stderr, align 8, !tbaa !9
  %933 = load i32, ptr @test_count, align 4, !tbaa !5
  %934 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %935 = load i32, ptr %934, align 4, !tbaa !5
  %936 = call ptr @s2n_strerror(i32 noundef %935, ptr noundef nonnull @.str.3) #9
  %937 = load i32, ptr %934, align 4, !tbaa !5
  %938 = call ptr @s2n_strerror_debug(i32 noundef %937, ptr noundef nonnull @.str.3) #9
  %939 = load i32, ptr %920, align 4, !tbaa !5
  %940 = call ptr @strerror(i32 noundef %939) #9
  %941 = load i32, ptr %920, align 4, !tbaa !5
  %942 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %932, ptr noundef nonnull %.str.4.sink666, i32 noundef %933, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.2, i32 noundef 231, ptr noundef %936, ptr noundef %938, ptr noundef %940, i32 noundef %941) #11
  call void @exit(i32 noundef 1) #12
  unreachable

943:                                              ; preds = %914
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #9
  store i64 0, ptr %7, align 8
  %944 = load i32, ptr @test_count, align 4, !tbaa !5
  %945 = add nsw i32 %944, 1
  store i32 %945, ptr @test_count, align 4, !tbaa !5
  %946 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef nonnull %7) #9
  %947 = icmp eq i32 %946, -1
  br i1 %947, label %948, label %972

948:                                              ; preds = %943
  %949 = tail call ptr @__errno_location() #10
  %950 = load i32, ptr %949, align 4, !tbaa !5
  %951 = load ptr, ptr @stderr, align 8, !tbaa !9
  %952 = call i32 @s2n_print_stacktrace(ptr noundef %951) #9
  %953 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %954 = trunc nuw i8 %953 to i1
  br i1 %954, label %955, label %959

955:                                              ; preds = %948
  %956 = load ptr, ptr @stderr, align 8, !tbaa !9
  %957 = call i32 @fileno(ptr noundef %956) #9
  %958 = call i32 @isatty(i32 noundef %957) #9
  %.not297 = icmp eq i32 %958, 0
  br i1 %.not297, label %959, label %960

959:                                              ; preds = %955, %948
  br label %960

960:                                              ; preds = %955, %959
  %.str.4.sink677 = phi ptr [ @.str.4, %959 ], [ @.str, %955 ]
  store i32 %950, ptr %949, align 4, !tbaa !5
  %961 = load ptr, ptr @stderr, align 8, !tbaa !9
  %962 = load i32, ptr @test_count, align 4, !tbaa !5
  %963 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %964 = load i32, ptr %963, align 4, !tbaa !5
  %965 = call ptr @s2n_strerror(i32 noundef %964, ptr noundef nonnull @.str.3) #9
  %966 = load i32, ptr %963, align 4, !tbaa !5
  %967 = call ptr @s2n_strerror_debug(i32 noundef %966, ptr noundef nonnull @.str.3) #9
  %968 = load i32, ptr %949, align 4, !tbaa !5
  %969 = call ptr @strerror(i32 noundef %968) #9
  %970 = load i32, ptr %949, align 4, !tbaa !5
  %971 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %961, ptr noundef nonnull %.str.4.sink677, i32 noundef %962, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.2, i32 noundef 235, ptr noundef %965, ptr noundef %967, ptr noundef %969, i32 noundef %970) #11
  call void @exit(i32 noundef 1) #12
  unreachable

972:                                              ; preds = %943
  %973 = load i32, ptr @test_count, align 4, !tbaa !5
  %974 = add nsw i32 %973, 1
  store i32 %974, ptr @test_count, align 4, !tbaa !5
  %975 = call i32 @s2n_connection_set_io_pair(ptr noundef nonnull %684, ptr noundef nonnull %7) #9
  %976 = icmp eq i32 %975, -1
  br i1 %976, label %977, label %1001

977:                                              ; preds = %972
  %978 = tail call ptr @__errno_location() #10
  %979 = load i32, ptr %978, align 4, !tbaa !5
  %980 = load ptr, ptr @stderr, align 8, !tbaa !9
  %981 = call i32 @s2n_print_stacktrace(ptr noundef %980) #9
  %982 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %983 = trunc nuw i8 %982 to i1
  br i1 %983, label %984, label %988

984:                                              ; preds = %977
  %985 = load ptr, ptr @stderr, align 8, !tbaa !9
  %986 = call i32 @fileno(ptr noundef %985) #9
  %987 = call i32 @isatty(i32 noundef %986) #9
  %.not296 = icmp eq i32 %987, 0
  br i1 %.not296, label %988, label %989

988:                                              ; preds = %984, %977
  br label %989

989:                                              ; preds = %984, %988
  %.str.4.sink688 = phi ptr [ @.str.4, %988 ], [ @.str, %984 ]
  store i32 %979, ptr %978, align 4, !tbaa !5
  %990 = load ptr, ptr @stderr, align 8, !tbaa !9
  %991 = load i32, ptr @test_count, align 4, !tbaa !5
  %992 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %993 = load i32, ptr %992, align 4, !tbaa !5
  %994 = call ptr @s2n_strerror(i32 noundef %993, ptr noundef nonnull @.str.3) #9
  %995 = load i32, ptr %992, align 4, !tbaa !5
  %996 = call ptr @s2n_strerror_debug(i32 noundef %995, ptr noundef nonnull @.str.3) #9
  %997 = load i32, ptr %978, align 4, !tbaa !5
  %998 = call ptr @strerror(i32 noundef %997) #9
  %999 = load i32, ptr %978, align 4, !tbaa !5
  %1000 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %990, ptr noundef nonnull %.str.4.sink688, i32 noundef %991, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.2, i32 noundef 236, ptr noundef %994, ptr noundef %996, ptr noundef %998, i32 noundef %999) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1001:                                             ; preds = %972
  %1002 = load i32, ptr @test_count, align 4, !tbaa !5
  %1003 = add nsw i32 %1002, 1
  store i32 %1003, ptr @test_count, align 4, !tbaa !5
  %1004 = call i32 @s2n_connection_set_io_pair(ptr noundef nonnull %858, ptr noundef nonnull %7) #9
  %1005 = icmp eq i32 %1004, -1
  br i1 %1005, label %1006, label %1030

1006:                                             ; preds = %1001
  %1007 = tail call ptr @__errno_location() #10
  %1008 = load i32, ptr %1007, align 4, !tbaa !5
  %1009 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1010 = call i32 @s2n_print_stacktrace(ptr noundef %1009) #9
  %1011 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1012 = trunc nuw i8 %1011 to i1
  br i1 %1012, label %1013, label %1017

1013:                                             ; preds = %1006
  %1014 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1015 = call i32 @fileno(ptr noundef %1014) #9
  %1016 = call i32 @isatty(i32 noundef %1015) #9
  %.not295 = icmp eq i32 %1016, 0
  br i1 %.not295, label %1017, label %1018

1017:                                             ; preds = %1013, %1006
  br label %1018

1018:                                             ; preds = %1013, %1017
  %.str.4.sink699 = phi ptr [ @.str.4, %1017 ], [ @.str, %1013 ]
  store i32 %1008, ptr %1007, align 4, !tbaa !5
  %1019 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1020 = load i32, ptr @test_count, align 4, !tbaa !5
  %1021 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1022 = load i32, ptr %1021, align 4, !tbaa !5
  %1023 = call ptr @s2n_strerror(i32 noundef %1022, ptr noundef nonnull @.str.3) #9
  %1024 = load i32, ptr %1021, align 4, !tbaa !5
  %1025 = call ptr @s2n_strerror_debug(i32 noundef %1024, ptr noundef nonnull @.str.3) #9
  %1026 = load i32, ptr %1007, align 4, !tbaa !5
  %1027 = call ptr @strerror(i32 noundef %1026) #9
  %1028 = load i32, ptr %1007, align 4, !tbaa !5
  %1029 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1019, ptr noundef nonnull %.str.4.sink699, i32 noundef %1020, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.2, i32 noundef 237, ptr noundef %1023, ptr noundef %1025, ptr noundef %1027, i32 noundef %1028) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1030:                                             ; preds = %1001
  %1031 = load i32, ptr @test_count, align 4, !tbaa !5
  %1032 = add nsw i32 %1031, 1
  store i32 %1032, ptr @test_count, align 4, !tbaa !5
  %1033 = call i32 @s2n_try_handshake_with_async_pkey_op(ptr noundef nonnull %858, ptr noundef nonnull %684, ptr noundef nonnull @s2n_test_negotiate_with_async_pkey_op_handler)
  %1034 = icmp eq i32 %1033, -1
  br i1 %1034, label %1035, label %1059

1035:                                             ; preds = %1030
  %1036 = tail call ptr @__errno_location() #10
  %1037 = load i32, ptr %1036, align 4, !tbaa !5
  %1038 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1039 = call i32 @s2n_print_stacktrace(ptr noundef %1038) #9
  %1040 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1041 = trunc nuw i8 %1040 to i1
  br i1 %1041, label %1042, label %1046

1042:                                             ; preds = %1035
  %1043 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1044 = call i32 @fileno(ptr noundef %1043) #9
  %1045 = call i32 @isatty(i32 noundef %1044) #9
  %.not294 = icmp eq i32 %1045, 0
  br i1 %.not294, label %1046, label %1047

1046:                                             ; preds = %1042, %1035
  br label %1047

1047:                                             ; preds = %1042, %1046
  %.str.4.sink710 = phi ptr [ @.str.4, %1046 ], [ @.str, %1042 ]
  store i32 %1037, ptr %1036, align 4, !tbaa !5
  %1048 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1049 = load i32, ptr @test_count, align 4, !tbaa !5
  %1050 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1051 = load i32, ptr %1050, align 4, !tbaa !5
  %1052 = call ptr @s2n_strerror(i32 noundef %1051, ptr noundef nonnull @.str.3) #9
  %1053 = load i32, ptr %1050, align 4, !tbaa !5
  %1054 = call ptr @s2n_strerror_debug(i32 noundef %1053, ptr noundef nonnull @.str.3) #9
  %1055 = load i32, ptr %1036, align 4, !tbaa !5
  %1056 = call ptr @strerror(i32 noundef %1055) #9
  %1057 = load i32, ptr %1036, align 4, !tbaa !5
  %1058 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1048, ptr noundef nonnull %.str.4.sink710, i32 noundef %1049, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.2, i32 noundef 240, ptr noundef %1052, ptr noundef %1054, ptr noundef %1056, i32 noundef %1057) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1059:                                             ; preds = %1030
  %1060 = load i32, ptr @test_count, align 4, !tbaa !5
  %1061 = add nsw i32 %1060, 1
  store i32 %1061, ptr @test_count, align 4, !tbaa !5
  %1062 = load i8, ptr @async_callback_invoked, align 1, !tbaa !11, !range !13, !noundef !14
  %1063 = trunc nuw i8 %1062 to i1
  br i1 %1063, label %1088, label %1064

1064:                                             ; preds = %1059
  %1065 = tail call ptr @__errno_location() #10
  %1066 = load i32, ptr %1065, align 4, !tbaa !5
  %1067 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1068 = call i32 @s2n_print_stacktrace(ptr noundef %1067) #9
  %1069 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1070 = trunc nuw i8 %1069 to i1
  br i1 %1070, label %1071, label %1075

1071:                                             ; preds = %1064
  %1072 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1073 = call i32 @fileno(ptr noundef %1072) #9
  %1074 = call i32 @isatty(i32 noundef %1073) #9
  %.not242 = icmp eq i32 %1074, 0
  br i1 %.not242, label %1075, label %1076

1075:                                             ; preds = %1071, %1064
  br label %1076

1076:                                             ; preds = %1071, %1075
  %.str.4.sink721 = phi ptr [ @.str.4, %1075 ], [ @.str, %1071 ]
  store i32 %1066, ptr %1065, align 4, !tbaa !5
  %1077 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1078 = load i32, ptr @test_count, align 4, !tbaa !5
  %1079 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1080 = load i32, ptr %1079, align 4, !tbaa !5
  %1081 = call ptr @s2n_strerror(i32 noundef %1080, ptr noundef nonnull @.str.3) #9
  %1082 = load i32, ptr %1079, align 4, !tbaa !5
  %1083 = call ptr @s2n_strerror_debug(i32 noundef %1082, ptr noundef nonnull @.str.3) #9
  %1084 = load i32, ptr %1065, align 4, !tbaa !5
  %1085 = call ptr @strerror(i32 noundef %1084) #9
  %1086 = load i32, ptr %1065, align 4, !tbaa !5
  %1087 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1077, ptr noundef nonnull %.str.4.sink721, i32 noundef %1078, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.2, i32 noundef 243, ptr noundef %1081, ptr noundef %1083, ptr noundef %1085, i32 noundef %1086) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1088:                                             ; preds = %1059
  %1089 = add nsw i32 %1060, 2
  store i32 %1089, ptr @test_count, align 4, !tbaa !5
  %1090 = call i32 @s2n_connection_client_cert_used(ptr noundef nonnull %858) #9
  %.not243 = icmp eq i32 %1090, 0
  br i1 %.not243, label %1091, label %1115

1091:                                             ; preds = %1088
  %1092 = tail call ptr @__errno_location() #10
  %1093 = load i32, ptr %1092, align 4, !tbaa !5
  %1094 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1095 = call i32 @s2n_print_stacktrace(ptr noundef %1094) #9
  %1096 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1097 = trunc nuw i8 %1096 to i1
  br i1 %1097, label %1098, label %1102

1098:                                             ; preds = %1091
  %1099 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1100 = call i32 @fileno(ptr noundef %1099) #9
  %1101 = call i32 @isatty(i32 noundef %1100) #9
  %.not244 = icmp eq i32 %1101, 0
  br i1 %.not244, label %1102, label %1103

1102:                                             ; preds = %1098, %1091
  br label %1103

1103:                                             ; preds = %1098, %1102
  %.str.4.sink732 = phi ptr [ @.str.4, %1102 ], [ @.str, %1098 ]
  store i32 %1093, ptr %1092, align 4, !tbaa !5
  %1104 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1105 = load i32, ptr @test_count, align 4, !tbaa !5
  %1106 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1107 = load i32, ptr %1106, align 4, !tbaa !5
  %1108 = call ptr @s2n_strerror(i32 noundef %1107, ptr noundef nonnull @.str.3) #9
  %1109 = load i32, ptr %1106, align 4, !tbaa !5
  %1110 = call ptr @s2n_strerror_debug(i32 noundef %1109, ptr noundef nonnull @.str.3) #9
  %1111 = load i32, ptr %1092, align 4, !tbaa !5
  %1112 = call ptr @strerror(i32 noundef %1111) #9
  %1113 = load i32, ptr %1092, align 4, !tbaa !5
  %1114 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1104, ptr noundef nonnull %.str.4.sink732, i32 noundef %1105, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.2, i32 noundef 246, ptr noundef %1108, ptr noundef %1110, ptr noundef %1112, i32 noundef %1113) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1115:                                             ; preds = %1088
  %1116 = load i32, ptr @test_count, align 4, !tbaa !5
  %1117 = add nsw i32 %1116, 1
  store i32 %1117, ptr @test_count, align 4, !tbaa !5
  %1118 = call i32 @s2n_connection_client_cert_used(ptr noundef nonnull %684) #9
  %.not245 = icmp eq i32 %1118, 0
  br i1 %.not245, label %1119, label %1143

1119:                                             ; preds = %1115
  %1120 = tail call ptr @__errno_location() #10
  %1121 = load i32, ptr %1120, align 4, !tbaa !5
  %1122 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1123 = call i32 @s2n_print_stacktrace(ptr noundef %1122) #9
  %1124 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1125 = trunc nuw i8 %1124 to i1
  br i1 %1125, label %1126, label %1130

1126:                                             ; preds = %1119
  %1127 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1128 = call i32 @fileno(ptr noundef %1127) #9
  %1129 = call i32 @isatty(i32 noundef %1128) #9
  %.not246 = icmp eq i32 %1129, 0
  br i1 %.not246, label %1130, label %1131

1130:                                             ; preds = %1126, %1119
  br label %1131

1131:                                             ; preds = %1126, %1130
  %.str.4.sink743 = phi ptr [ @.str.4, %1130 ], [ @.str, %1126 ]
  store i32 %1121, ptr %1120, align 4, !tbaa !5
  %1132 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1133 = load i32, ptr @test_count, align 4, !tbaa !5
  %1134 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1135 = load i32, ptr %1134, align 4, !tbaa !5
  %1136 = call ptr @s2n_strerror(i32 noundef %1135, ptr noundef nonnull @.str.3) #9
  %1137 = load i32, ptr %1134, align 4, !tbaa !5
  %1138 = call ptr @s2n_strerror_debug(i32 noundef %1137, ptr noundef nonnull @.str.3) #9
  %1139 = load i32, ptr %1120, align 4, !tbaa !5
  %1140 = call ptr @strerror(i32 noundef %1139) #9
  %1141 = load i32, ptr %1120, align 4, !tbaa !5
  %1142 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1132, ptr noundef nonnull %.str.4.sink743, i32 noundef %1133, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.2, i32 noundef 247, ptr noundef %1136, ptr noundef %1138, ptr noundef %1140, i32 noundef %1141) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1143:                                             ; preds = %1115
  %1144 = load i32, ptr @test_count, align 4, !tbaa !5
  %1145 = add nsw i32 %1144, 1
  store i32 %1145, ptr @test_count, align 4, !tbaa !5
  %1146 = getelementptr inbounds i8, ptr %684, i64 220
  %1147 = load i8, ptr %1146, align 4, !tbaa !52
  %1148 = icmp eq i8 %1147, 33
  br i1 %1148, label %1173, label %1149

1149:                                             ; preds = %1143
  %1150 = tail call ptr @__errno_location() #10
  %1151 = load i32, ptr %1150, align 4, !tbaa !5
  %1152 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1153 = call i32 @s2n_print_stacktrace(ptr noundef %1152) #9
  %1154 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1155 = trunc nuw i8 %1154 to i1
  br i1 %1155, label %1156, label %1160

1156:                                             ; preds = %1149
  %1157 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1158 = call i32 @fileno(ptr noundef %1157) #9
  %1159 = call i32 @isatty(i32 noundef %1158) #9
  %.not247 = icmp eq i32 %1159, 0
  br i1 %.not247, label %1160, label %1161

1160:                                             ; preds = %1156, %1149
  br label %1161

1161:                                             ; preds = %1156, %1160
  %.str.4.sink754 = phi ptr [ @.str.4, %1160 ], [ @.str, %1156 ]
  store i32 %1151, ptr %1150, align 4, !tbaa !5
  %1162 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1163 = load i32, ptr @test_count, align 4, !tbaa !5
  %1164 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1165 = load i32, ptr %1164, align 4, !tbaa !5
  %1166 = call ptr @s2n_strerror(i32 noundef %1165, ptr noundef nonnull @.str.3) #9
  %1167 = load i32, ptr %1164, align 4, !tbaa !5
  %1168 = call ptr @s2n_strerror_debug(i32 noundef %1167, ptr noundef nonnull @.str.3) #9
  %1169 = load i32, ptr %1150, align 4, !tbaa !5
  %1170 = call ptr @strerror(i32 noundef %1169) #9
  %1171 = load i32, ptr %1150, align 4, !tbaa !5
  %1172 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1162, ptr noundef nonnull %.str.4.sink754, i32 noundef %1163, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.2, i32 noundef 248, ptr noundef %1166, ptr noundef %1168, ptr noundef %1170, i32 noundef %1171) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1173:                                             ; preds = %1143
  %1174 = add nsw i32 %1144, 2
  store i32 %1174, ptr @test_count, align 4, !tbaa !5
  %1175 = getelementptr inbounds i8, ptr %858, i64 220
  %1176 = load i8, ptr %1175, align 4, !tbaa !52
  %1177 = icmp eq i8 %1176, 33
  br i1 %1177, label %1202, label %1178

1178:                                             ; preds = %1173
  %1179 = tail call ptr @__errno_location() #10
  %1180 = load i32, ptr %1179, align 4, !tbaa !5
  %1181 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1182 = call i32 @s2n_print_stacktrace(ptr noundef %1181) #9
  %1183 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1184 = trunc nuw i8 %1183 to i1
  br i1 %1184, label %1185, label %1189

1185:                                             ; preds = %1178
  %1186 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1187 = call i32 @fileno(ptr noundef %1186) #9
  %1188 = call i32 @isatty(i32 noundef %1187) #9
  %.not248 = icmp eq i32 %1188, 0
  br i1 %.not248, label %1189, label %1190

1189:                                             ; preds = %1185, %1178
  br label %1190

1190:                                             ; preds = %1185, %1189
  %.str.4.sink765 = phi ptr [ @.str.4, %1189 ], [ @.str, %1185 ]
  store i32 %1180, ptr %1179, align 4, !tbaa !5
  %1191 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1192 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1194, ptr noundef nonnull @.str.3) #9
  %1196 = load i32, ptr %1193, align 4, !tbaa !5
  %1197 = call ptr @s2n_strerror_debug(i32 noundef %1196, ptr noundef nonnull @.str.3) #9
  %1198 = load i32, ptr %1179, align 4, !tbaa !5
  %1199 = call ptr @strerror(i32 noundef %1198) #9
  %1200 = load i32, ptr %1179, align 4, !tbaa !5
  %1201 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1191, ptr noundef nonnull %.str.4.sink765, i32 noundef %1192, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.2, i32 noundef 249, ptr noundef %1195, ptr noundef %1197, ptr noundef %1199, i32 noundef %1200) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1202:                                             ; preds = %1173
  %1203 = add nsw i32 %1144, 3
  store i32 %1203, ptr @test_count, align 4, !tbaa !5
  %1204 = call i32 @s2n_connection_free(ptr noundef nonnull %858) #9
  %1205 = icmp eq i32 %1204, -1
  br i1 %1205, label %1206, label %1230

1206:                                             ; preds = %1202
  %1207 = tail call ptr @__errno_location() #10
  %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) #9
  %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) #9
  %1216 = call i32 @isatty(i32 noundef %1215) #9
  %.not293 = icmp eq i32 %1216, 0
  br i1 %.not293, label %1217, label %1218

1217:                                             ; preds = %1213, %1206
  br label %1218

1218:                                             ; preds = %1213, %1217
  %.str.4.sink776 = phi ptr [ @.str.4, %1217 ], [ @.str, %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.3) #9
  %1224 = load i32, ptr %1221, align 4, !tbaa !5
  %1225 = call ptr @s2n_strerror_debug(i32 noundef %1224, ptr noundef nonnull @.str.3) #9
  %1226 = load i32, ptr %1207, align 4, !tbaa !5
  %1227 = call ptr @strerror(i32 noundef %1226) #9
  %1228 = load i32, ptr %1207, align 4, !tbaa !5
  %1229 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1219, ptr noundef nonnull %.str.4.sink776, i32 noundef %1220, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.2, i32 noundef 252, ptr noundef %1223, ptr noundef %1225, ptr noundef %1227, i32 noundef %1228) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1230:                                             ; preds = %1202
  %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 = call i32 @s2n_connection_free(ptr noundef nonnull %684) #9
  %1234 = icmp eq i32 %1233, -1
  br i1 %1234, label %1235, label %1259

1235:                                             ; preds = %1230
  %1236 = tail call ptr @__errno_location() #10
  %1237 = load i32, ptr %1236, align 4, !tbaa !5
  %1238 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1239 = call i32 @s2n_print_stacktrace(ptr noundef %1238) #9
  %1240 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1241 = trunc nuw i8 %1240 to i1
  br i1 %1241, label %1242, label %1246

1242:                                             ; preds = %1235
  %1243 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1244 = call i32 @fileno(ptr noundef %1243) #9
  %1245 = call i32 @isatty(i32 noundef %1244) #9
  %.not292 = icmp eq i32 %1245, 0
  br i1 %.not292, label %1246, label %1247

1246:                                             ; preds = %1242, %1235
  br label %1247

1247:                                             ; preds = %1242, %1246
  %.str.4.sink787 = phi ptr [ @.str.4, %1246 ], [ @.str, %1242 ]
  store i32 %1237, ptr %1236, align 4, !tbaa !5
  %1248 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1249 = load i32, ptr @test_count, align 4, !tbaa !5
  %1250 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1251 = load i32, ptr %1250, align 4, !tbaa !5
  %1252 = call ptr @s2n_strerror(i32 noundef %1251, ptr noundef nonnull @.str.3) #9
  %1253 = load i32, ptr %1250, align 4, !tbaa !5
  %1254 = call ptr @s2n_strerror_debug(i32 noundef %1253, ptr noundef nonnull @.str.3) #9
  %1255 = load i32, ptr %1236, align 4, !tbaa !5
  %1256 = call ptr @strerror(i32 noundef %1255) #9
  %1257 = load i32, ptr %1236, align 4, !tbaa !5
  %1258 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1248, ptr noundef nonnull %.str.4.sink787, i32 noundef %1249, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.2, i32 noundef 253, ptr noundef %1252, ptr noundef %1254, ptr noundef %1256, i32 noundef %1257) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1259:                                             ; preds = %1230
  %1260 = load i32, ptr @test_count, align 4, !tbaa !5
  %1261 = add nsw i32 %1260, 1
  store i32 %1261, ptr @test_count, align 4, !tbaa !5
  %1262 = call i32 @s2n_io_pair_close(ptr noundef nonnull %7) #9
  %1263 = icmp eq i32 %1262, -1
  br i1 %1263, label %1264, label %1288

1264:                                             ; preds = %1259
  %1265 = tail call ptr @__errno_location() #10
  %1266 = load i32, ptr %1265, align 4, !tbaa !5
  %1267 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1268 = call i32 @s2n_print_stacktrace(ptr noundef %1267) #9
  %1269 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1270 = trunc nuw i8 %1269 to i1
  br i1 %1270, label %1271, label %1275

1271:                                             ; preds = %1264
  %1272 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1273 = call i32 @fileno(ptr noundef %1272) #9
  %1274 = call i32 @isatty(i32 noundef %1273) #9
  %.not291 = icmp eq i32 %1274, 0
  br i1 %.not291, label %1275, label %1276

1275:                                             ; preds = %1271, %1264
  br label %1276

1276:                                             ; preds = %1271, %1275
  %.str.4.sink798 = phi ptr [ @.str.4, %1275 ], [ @.str, %1271 ]
  store i32 %1266, ptr %1265, align 4, !tbaa !5
  %1277 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1278 = load i32, ptr @test_count, align 4, !tbaa !5
  %1279 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1280 = load i32, ptr %1279, align 4, !tbaa !5
  %1281 = call ptr @s2n_strerror(i32 noundef %1280, ptr noundef nonnull @.str.3) #9
  %1282 = load i32, ptr %1279, align 4, !tbaa !5
  %1283 = call ptr @s2n_strerror_debug(i32 noundef %1282, ptr noundef nonnull @.str.3) #9
  %1284 = load i32, ptr %1265, align 4, !tbaa !5
  %1285 = call ptr @strerror(i32 noundef %1284) #9
  %1286 = load i32, ptr %1265, align 4, !tbaa !5
  %1287 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1277, ptr noundef nonnull %.str.4.sink798, i32 noundef %1278, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.2, i32 noundef 254, ptr noundef %1281, ptr noundef %1283, ptr noundef %1285, i32 noundef %1286) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1288:                                             ; preds = %1259
  %1289 = load i32, ptr @test_count, align 4, !tbaa !5
  %1290 = add nsw i32 %1289, 1
  store i32 %1290, ptr @test_count, align 4, !tbaa !5
  %1291 = call i32 @s2n_config_free(ptr noundef nonnull %511) #9
  %1292 = icmp eq i32 %1291, -1
  br i1 %1292, label %1293, label %1317

1293:                                             ; preds = %1288
  %1294 = tail call ptr @__errno_location() #10
  %1295 = load i32, ptr %1294, align 4, !tbaa !5
  %1296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1297 = call i32 @s2n_print_stacktrace(ptr noundef %1296) #9
  %1298 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1299 = trunc nuw i8 %1298 to i1
  br i1 %1299, label %1300, label %1304

1300:                                             ; preds = %1293
  %1301 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1302 = call i32 @fileno(ptr noundef %1301) #9
  %1303 = call i32 @isatty(i32 noundef %1302) #9
  %.not290 = icmp eq i32 %1303, 0
  br i1 %.not290, label %1304, label %1305

1304:                                             ; preds = %1300, %1293
  br label %1305

1305:                                             ; preds = %1300, %1304
  %.str.4.sink809 = phi ptr [ @.str.4, %1304 ], [ @.str, %1300 ]
  store i32 %1295, ptr %1294, align 4, !tbaa !5
  %1306 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1307 = load i32, ptr @test_count, align 4, !tbaa !5
  %1308 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1309 = load i32, ptr %1308, align 4, !tbaa !5
  %1310 = call ptr @s2n_strerror(i32 noundef %1309, ptr noundef nonnull @.str.3) #9
  %1311 = load i32, ptr %1308, align 4, !tbaa !5
  %1312 = call ptr @s2n_strerror_debug(i32 noundef %1311, ptr noundef nonnull @.str.3) #9
  %1313 = load i32, ptr %1294, align 4, !tbaa !5
  %1314 = call ptr @strerror(i32 noundef %1313) #9
  %1315 = load i32, ptr %1294, align 4, !tbaa !5
  %1316 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1306, ptr noundef nonnull %.str.4.sink809, i32 noundef %1307, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.2, i32 noundef 255, ptr noundef %1310, ptr noundef %1312, ptr noundef %1314, i32 noundef %1315) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1317:                                             ; preds = %1288
  %1318 = load i32, ptr @test_count, align 4, !tbaa !5
  %1319 = add nsw i32 %1318, 1
  store i32 %1319, ptr @test_count, align 4, !tbaa !5
  %1320 = call i32 @s2n_config_free(ptr noundef nonnull %772) #9
  %1321 = icmp eq i32 %1320, -1
  br i1 %1321, label %1322, label %1346

1322:                                             ; preds = %1317
  %1323 = tail call ptr @__errno_location() #10
  %1324 = load i32, ptr %1323, align 4, !tbaa !5
  %1325 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1326 = call i32 @s2n_print_stacktrace(ptr noundef %1325) #9
  %1327 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1328 = trunc nuw i8 %1327 to i1
  br i1 %1328, label %1329, label %1333

1329:                                             ; preds = %1322
  %1330 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1331 = call i32 @fileno(ptr noundef %1330) #9
  %1332 = call i32 @isatty(i32 noundef %1331) #9
  %.not289 = icmp eq i32 %1332, 0
  br i1 %.not289, label %1333, label %1334

1333:                                             ; preds = %1329, %1322
  br label %1334

1334:                                             ; preds = %1329, %1333
  %.str.4.sink820 = phi ptr [ @.str.4, %1333 ], [ @.str, %1329 ]
  store i32 %1324, ptr %1323, align 4, !tbaa !5
  %1335 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1336 = load i32, ptr @test_count, align 4, !tbaa !5
  %1337 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1338 = load i32, ptr %1337, align 4, !tbaa !5
  %1339 = call ptr @s2n_strerror(i32 noundef %1338, ptr noundef nonnull @.str.3) #9
  %1340 = load i32, ptr %1337, align 4, !tbaa !5
  %1341 = call ptr @s2n_strerror_debug(i32 noundef %1340, ptr noundef nonnull @.str.3) #9
  %1342 = load i32, ptr %1323, align 4, !tbaa !5
  %1343 = call ptr @strerror(i32 noundef %1342) #9
  %1344 = load i32, ptr %1323, align 4, !tbaa !5
  %1345 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1335, ptr noundef nonnull %.str.4.sink820, i32 noundef %1336, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.2, i32 noundef 256, ptr noundef %1339, ptr noundef %1341, ptr noundef %1343, i32 noundef %1344) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1346:                                             ; preds = %1317
  %1347 = load i32, ptr @test_count, align 4, !tbaa !5
  %1348 = add nsw i32 %1347, 1
  store i32 %1348, ptr @test_count, align 4, !tbaa !5
  %1349 = load ptr, ptr %6, align 8, !tbaa !9
  %1350 = call i32 @s2n_cert_chain_and_key_free(ptr noundef %1349) #9
  %1351 = icmp eq i32 %1350, -1
  br i1 %1351, label %1352, label %1376

1352:                                             ; preds = %1346
  %1353 = tail call ptr @__errno_location() #10
  %1354 = load i32, ptr %1353, align 4, !tbaa !5
  %1355 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1356 = call i32 @s2n_print_stacktrace(ptr noundef %1355) #9
  %1357 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1358 = trunc nuw i8 %1357 to i1
  br i1 %1358, label %1359, label %1363

1359:                                             ; preds = %1352
  %1360 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1361 = call i32 @fileno(ptr noundef %1360) #9
  %1362 = call i32 @isatty(i32 noundef %1361) #9
  %.not288 = icmp eq i32 %1362, 0
  br i1 %.not288, label %1363, label %1364

1363:                                             ; preds = %1359, %1352
  br label %1364

1364:                                             ; preds = %1359, %1363
  %.str.4.sink831 = phi ptr [ @.str.4, %1363 ], [ @.str, %1359 ]
  store i32 %1354, ptr %1353, align 4, !tbaa !5
  %1365 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1366 = load i32, ptr @test_count, align 4, !tbaa !5
  %1367 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1368 = load i32, ptr %1367, align 4, !tbaa !5
  %1369 = call ptr @s2n_strerror(i32 noundef %1368, ptr noundef nonnull @.str.3) #9
  %1370 = load i32, ptr %1367, align 4, !tbaa !5
  %1371 = call ptr @s2n_strerror_debug(i32 noundef %1370, ptr noundef nonnull @.str.3) #9
  %1372 = load i32, ptr %1353, align 4, !tbaa !5
  %1373 = call ptr @strerror(i32 noundef %1372) #9
  %1374 = load i32, ptr %1353, align 4, !tbaa !5
  %1375 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1365, ptr noundef nonnull %.str.4.sink831, i32 noundef %1366, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.2, i32 noundef 257, ptr noundef %1369, ptr noundef %1371, ptr noundef %1373, i32 noundef %1374) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1376:                                             ; preds = %1346
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #9
  store ptr null, ptr %8, align 8, !tbaa !9
  %1377 = load i32, ptr @test_count, align 4, !tbaa !5
  %1378 = add nsw i32 %1377, 1
  store i32 %1378, ptr @test_count, align 4, !tbaa !5
  %1379 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef nonnull %8, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.25) #9
  %1380 = icmp eq i32 %1379, -1
  br i1 %1380, label %1381, label %1405

1381:                                             ; preds = %1376
  %1382 = tail call ptr @__errno_location() #10
  %1383 = load i32, ptr %1382, align 4, !tbaa !5
  %1384 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1385 = call i32 @s2n_print_stacktrace(ptr noundef %1384) #9
  %1386 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1387 = trunc nuw i8 %1386 to i1
  br i1 %1387, label %1388, label %1392

1388:                                             ; preds = %1381
  %1389 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1390 = call i32 @fileno(ptr noundef %1389) #9
  %1391 = call i32 @isatty(i32 noundef %1390) #9
  %.not287 = icmp eq i32 %1391, 0
  br i1 %.not287, label %1392, label %1393

1392:                                             ; preds = %1388, %1381
  br label %1393

1393:                                             ; preds = %1388, %1392
  %.str.4.sink842 = phi ptr [ @.str.4, %1392 ], [ @.str, %1388 ]
  store i32 %1383, ptr %1382, align 4, !tbaa !5
  %1394 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1395 = load i32, ptr @test_count, align 4, !tbaa !5
  %1396 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1397 = load i32, ptr %1396, align 4, !tbaa !5
  %1398 = call ptr @s2n_strerror(i32 noundef %1397, ptr noundef nonnull @.str.3) #9
  %1399 = load i32, ptr %1396, align 4, !tbaa !5
  %1400 = call ptr @s2n_strerror_debug(i32 noundef %1399, ptr noundef nonnull @.str.3) #9
  %1401 = load i32, ptr %1382, align 4, !tbaa !5
  %1402 = call ptr @strerror(i32 noundef %1401) #9
  %1403 = load i32, ptr %1382, align 4, !tbaa !5
  %1404 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1394, ptr noundef nonnull %.str.4.sink842, i32 noundef %1395, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.2, i32 noundef 264, ptr noundef %1398, ptr noundef %1400, ptr noundef %1402, i32 noundef %1403) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1405:                                             ; preds = %1376
  %1406 = load i32, ptr @test_count, align 4, !tbaa !5
  %1407 = add nsw i32 %1406, 1
  store i32 %1407, ptr @test_count, align 4, !tbaa !5
  %1408 = call ptr @s2n_config_new() #9
  %1409 = icmp eq ptr %1408, null
  br i1 %1409, label %1410, label %1434

1410:                                             ; preds = %1405
  %1411 = tail call ptr @__errno_location() #10
  %1412 = load i32, ptr %1411, align 4, !tbaa !5
  %1413 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1414 = call i32 @s2n_print_stacktrace(ptr noundef %1413) #9
  %1415 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1416 = trunc nuw i8 %1415 to i1
  br i1 %1416, label %1417, label %1421

1417:                                             ; preds = %1410
  %1418 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1419 = call i32 @fileno(ptr noundef %1418) #9
  %1420 = call i32 @isatty(i32 noundef %1419) #9
  %.not286 = icmp eq i32 %1420, 0
  br i1 %.not286, label %1421, label %1422

1421:                                             ; preds = %1417, %1410
  br label %1422

1422:                                             ; preds = %1417, %1421
  %.str.4.sink853 = phi ptr [ @.str.4, %1421 ], [ @.str, %1417 ]
  store i32 %1412, ptr %1411, align 4, !tbaa !5
  %1423 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1424 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1426, ptr noundef nonnull @.str.3) #9
  %1428 = load i32, ptr %1425, align 4, !tbaa !5
  %1429 = call ptr @s2n_strerror_debug(i32 noundef %1428, ptr noundef nonnull @.str.3) #9
  %1430 = load i32, ptr %1411, align 4, !tbaa !5
  %1431 = call ptr @strerror(i32 noundef %1430) #9
  %1432 = load i32, ptr %1411, align 4, !tbaa !5
  %1433 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1423, ptr noundef nonnull %.str.4.sink853, i32 noundef %1424, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.2, i32 noundef 267, ptr noundef %1427, ptr noundef %1429, ptr noundef %1431, i32 noundef %1432) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1434:                                             ; preds = %1405
  %1435 = load i32, ptr @test_count, align 4, !tbaa !5
  %1436 = add nsw i32 %1435, 1
  store i32 %1436, ptr @test_count, align 4, !tbaa !5
  %1437 = load ptr, ptr %8, align 8, !tbaa !9
  %1438 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef nonnull %1408, ptr noundef %1437) #9
  %1439 = icmp eq i32 %1438, -1
  br i1 %1439, label %1440, label %1464

1440:                                             ; preds = %1434
  %1441 = tail call ptr @__errno_location() #10
  %1442 = load i32, ptr %1441, align 4, !tbaa !5
  %1443 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1444 = call i32 @s2n_print_stacktrace(ptr noundef %1443) #9
  %1445 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1446 = trunc nuw i8 %1445 to i1
  br i1 %1446, label %1447, label %1451

1447:                                             ; preds = %1440
  %1448 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1449 = call i32 @fileno(ptr noundef %1448) #9
  %1450 = call i32 @isatty(i32 noundef %1449) #9
  %.not285 = icmp eq i32 %1450, 0
  br i1 %.not285, label %1451, label %1452

1451:                                             ; preds = %1447, %1440
  br label %1452

1452:                                             ; preds = %1447, %1451
  %.str.4.sink864 = phi ptr [ @.str.4, %1451 ], [ @.str, %1447 ]
  store i32 %1442, ptr %1441, align 4, !tbaa !5
  %1453 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1454 = load i32, ptr @test_count, align 4, !tbaa !5
  %1455 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1456 = load i32, ptr %1455, align 4, !tbaa !5
  %1457 = call ptr @s2n_strerror(i32 noundef %1456, ptr noundef nonnull @.str.3) #9
  %1458 = load i32, ptr %1455, align 4, !tbaa !5
  %1459 = call ptr @s2n_strerror_debug(i32 noundef %1458, ptr noundef nonnull @.str.3) #9
  %1460 = load i32, ptr %1441, align 4, !tbaa !5
  %1461 = call ptr @strerror(i32 noundef %1460) #9
  %1462 = load i32, ptr %1441, align 4, !tbaa !5
  %1463 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1453, ptr noundef nonnull %.str.4.sink864, i32 noundef %1454, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.2, i32 noundef 268, ptr noundef %1457, ptr noundef %1459, ptr noundef %1461, i32 noundef %1462) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1464:                                             ; preds = %1434
  %1465 = load i32, ptr @test_count, align 4, !tbaa !5
  %1466 = add nsw i32 %1465, 1
  store i32 %1466, ptr @test_count, align 4, !tbaa !5
  %1467 = call i32 @s2n_config_set_async_pkey_callback(ptr noundef nonnull %1408, ptr noundef nonnull @s2n_async_pkey_store_op) #9
  %1468 = icmp eq i32 %1467, -1
  br i1 %1468, label %1469, label %1493

1469:                                             ; preds = %1464
  %1470 = tail call ptr @__errno_location() #10
  %1471 = load i32, ptr %1470, align 4, !tbaa !5
  %1472 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1473 = call i32 @s2n_print_stacktrace(ptr noundef %1472) #9
  %1474 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1475 = trunc nuw i8 %1474 to i1
  br i1 %1475, label %1476, label %1480

1476:                                             ; preds = %1469
  %1477 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1478 = call i32 @fileno(ptr noundef %1477) #9
  %1479 = call i32 @isatty(i32 noundef %1478) #9
  %.not284 = icmp eq i32 %1479, 0
  br i1 %.not284, label %1480, label %1481

1480:                                             ; preds = %1476, %1469
  br label %1481

1481:                                             ; preds = %1476, %1480
  %.str.4.sink875 = phi ptr [ @.str.4, %1480 ], [ @.str, %1476 ]
  store i32 %1471, ptr %1470, align 4, !tbaa !5
  %1482 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1483 = load i32, ptr @test_count, align 4, !tbaa !5
  %1484 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1485 = load i32, ptr %1484, align 4, !tbaa !5
  %1486 = call ptr @s2n_strerror(i32 noundef %1485, ptr noundef nonnull @.str.3) #9
  %1487 = load i32, ptr %1484, align 4, !tbaa !5
  %1488 = call ptr @s2n_strerror_debug(i32 noundef %1487, ptr noundef nonnull @.str.3) #9
  %1489 = load i32, ptr %1470, align 4, !tbaa !5
  %1490 = call ptr @strerror(i32 noundef %1489) #9
  %1491 = load i32, ptr %1470, align 4, !tbaa !5
  %1492 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1482, ptr noundef nonnull %.str.4.sink875, i32 noundef %1483, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.2, i32 noundef 269, ptr noundef %1486, ptr noundef %1488, ptr noundef %1490, i32 noundef %1491) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1493:                                             ; preds = %1464
  %1494 = load i32, ptr @test_count, align 4, !tbaa !5
  %1495 = add nsw i32 %1494, 1
  store i32 %1495, ptr @test_count, align 4, !tbaa !5
  %1496 = call i32 @s2n_config_set_unsafe_for_testing(ptr noundef nonnull %1408) #9
  %1497 = icmp eq i32 %1496, -1
  br i1 %1497, label %1498, label %1522

1498:                                             ; preds = %1493
  %1499 = tail call ptr @__errno_location() #10
  %1500 = load i32, ptr %1499, align 4, !tbaa !5
  %1501 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1502 = call i32 @s2n_print_stacktrace(ptr noundef %1501) #9
  %1503 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1504 = trunc nuw i8 %1503 to i1
  br i1 %1504, label %1505, label %1509

1505:                                             ; preds = %1498
  %1506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1507 = call i32 @fileno(ptr noundef %1506) #9
  %1508 = call i32 @isatty(i32 noundef %1507) #9
  %.not283 = icmp eq i32 %1508, 0
  br i1 %.not283, label %1509, label %1510

1509:                                             ; preds = %1505, %1498
  br label %1510

1510:                                             ; preds = %1505, %1509
  %.str.4.sink886 = phi ptr [ @.str.4, %1509 ], [ @.str, %1505 ]
  store i32 %1500, ptr %1499, align 4, !tbaa !5
  %1511 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1512 = load i32, ptr @test_count, align 4, !tbaa !5
  %1513 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1514 = load i32, ptr %1513, align 4, !tbaa !5
  %1515 = call ptr @s2n_strerror(i32 noundef %1514, ptr noundef nonnull @.str.3) #9
  %1516 = load i32, ptr %1513, align 4, !tbaa !5
  %1517 = call ptr @s2n_strerror_debug(i32 noundef %1516, ptr noundef nonnull @.str.3) #9
  %1518 = load i32, ptr %1499, align 4, !tbaa !5
  %1519 = call ptr @strerror(i32 noundef %1518) #9
  %1520 = load i32, ptr %1499, align 4, !tbaa !5
  %1521 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1511, ptr noundef nonnull %.str.4.sink886, i32 noundef %1512, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.2, i32 noundef 270, ptr noundef %1515, ptr noundef %1517, ptr noundef %1519, i32 noundef %1520) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1522:                                             ; preds = %1493
  %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 = call i32 @s2n_config_set_cipher_preferences(ptr noundef nonnull %1408, ptr noundef nonnull @.str.31) #9
  %1526 = icmp eq i32 %1525, -1
  br i1 %1526, label %1527, label %1551

1527:                                             ; preds = %1522
  %1528 = tail call ptr @__errno_location() #10
  %1529 = load i32, ptr %1528, align 4, !tbaa !5
  %1530 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1531 = call i32 @s2n_print_stacktrace(ptr noundef %1530) #9
  %1532 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1533 = trunc nuw i8 %1532 to i1
  br i1 %1533, label %1534, label %1538

1534:                                             ; preds = %1527
  %1535 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1536 = call i32 @fileno(ptr noundef %1535) #9
  %1537 = call i32 @isatty(i32 noundef %1536) #9
  %.not282 = icmp eq i32 %1537, 0
  br i1 %.not282, label %1538, label %1539

1538:                                             ; preds = %1534, %1527
  br label %1539

1539:                                             ; preds = %1534, %1538
  %.str.4.sink897 = phi ptr [ @.str.4, %1538 ], [ @.str, %1534 ]
  store i32 %1529, ptr %1528, align 4, !tbaa !5
  %1540 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1541 = load i32, ptr @test_count, align 4, !tbaa !5
  %1542 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1543 = load i32, ptr %1542, align 4, !tbaa !5
  %1544 = call ptr @s2n_strerror(i32 noundef %1543, ptr noundef nonnull @.str.3) #9
  %1545 = load i32, ptr %1542, align 4, !tbaa !5
  %1546 = call ptr @s2n_strerror_debug(i32 noundef %1545, ptr noundef nonnull @.str.3) #9
  %1547 = load i32, ptr %1528, align 4, !tbaa !5
  %1548 = call ptr @strerror(i32 noundef %1547) #9
  %1549 = load i32, ptr %1528, align 4, !tbaa !5
  %1550 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1540, ptr noundef nonnull %.str.4.sink897, i32 noundef %1541, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.2, i32 noundef 271, ptr noundef %1544, ptr noundef %1546, ptr noundef %1548, i32 noundef %1549) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1551:                                             ; preds = %1522
  %1552 = load i32, ptr @test_count, align 4, !tbaa !5
  %1553 = add nsw i32 %1552, 1
  store i32 %1553, ptr @test_count, align 4, !tbaa !5
  %1554 = call i32 @s2n_config_set_async_pkey_validation_mode(ptr noundef nonnull %1408, i32 noundef 1) #9
  %1555 = icmp eq i32 %1554, -1
  br i1 %1555, label %1556, label %1580

1556:                                             ; preds = %1551
  %1557 = tail call ptr @__errno_location() #10
  %1558 = load i32, ptr %1557, align 4, !tbaa !5
  %1559 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1560 = call i32 @s2n_print_stacktrace(ptr noundef %1559) #9
  %1561 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1562 = trunc nuw i8 %1561 to i1
  br i1 %1562, label %1563, label %1567

1563:                                             ; preds = %1556
  %1564 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1565 = call i32 @fileno(ptr noundef %1564) #9
  %1566 = call i32 @isatty(i32 noundef %1565) #9
  %.not281 = icmp eq i32 %1566, 0
  br i1 %.not281, label %1567, label %1568

1567:                                             ; preds = %1563, %1556
  br label %1568

1568:                                             ; preds = %1563, %1567
  %.str.4.sink908 = phi ptr [ @.str.4, %1567 ], [ @.str, %1563 ]
  store i32 %1558, ptr %1557, align 4, !tbaa !5
  %1569 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1570 = load i32, ptr @test_count, align 4, !tbaa !5
  %1571 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1572 = load i32, ptr %1571, align 4, !tbaa !5
  %1573 = call ptr @s2n_strerror(i32 noundef %1572, ptr noundef nonnull @.str.3) #9
  %1574 = load i32, ptr %1571, align 4, !tbaa !5
  %1575 = call ptr @s2n_strerror_debug(i32 noundef %1574, ptr noundef nonnull @.str.3) #9
  %1576 = load i32, ptr %1557, align 4, !tbaa !5
  %1577 = call ptr @strerror(i32 noundef %1576) #9
  %1578 = load i32, ptr %1557, align 4, !tbaa !5
  %1579 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1569, ptr noundef nonnull %.str.4.sink908, i32 noundef %1570, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.2, i32 noundef 273, ptr noundef %1573, ptr noundef %1575, ptr noundef %1577, i32 noundef %1578) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1580:                                             ; preds = %1551
  %1581 = call ptr @s2n_connection_new(i32 noundef 1) #9
  %1582 = load i32, ptr @test_count, align 4, !tbaa !5
  %1583 = add nsw i32 %1582, 1
  store i32 %1583, ptr @test_count, align 4, !tbaa !5
  %1584 = icmp eq ptr %1581, null
  br i1 %1584, label %1585, label %1609

1585:                                             ; preds = %1580
  %1586 = tail call ptr @__errno_location() #10
  %1587 = load i32, ptr %1586, align 4, !tbaa !5
  %1588 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1589 = call i32 @s2n_print_stacktrace(ptr noundef %1588) #9
  %1590 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1591 = trunc nuw i8 %1590 to i1
  br i1 %1591, label %1592, label %1596

1592:                                             ; preds = %1585
  %1593 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1594 = call i32 @fileno(ptr noundef %1593) #9
  %1595 = call i32 @isatty(i32 noundef %1594) #9
  %.not280 = icmp eq i32 %1595, 0
  br i1 %.not280, label %1596, label %1597

1596:                                             ; preds = %1592, %1585
  br label %1597

1597:                                             ; preds = %1592, %1596
  %.str.4.sink919 = phi ptr [ @.str.4, %1596 ], [ @.str, %1592 ]
  store i32 %1587, ptr %1586, align 4, !tbaa !5
  %1598 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1599 = load i32, ptr @test_count, align 4, !tbaa !5
  %1600 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1601 = load i32, ptr %1600, align 4, !tbaa !5
  %1602 = call ptr @s2n_strerror(i32 noundef %1601, ptr noundef nonnull @.str.3) #9
  %1603 = load i32, ptr %1600, align 4, !tbaa !5
  %1604 = call ptr @s2n_strerror_debug(i32 noundef %1603, ptr noundef nonnull @.str.3) #9
  %1605 = load i32, ptr %1586, align 4, !tbaa !5
  %1606 = call ptr @strerror(i32 noundef %1605) #9
  %1607 = load i32, ptr %1586, align 4, !tbaa !5
  %1608 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1598, ptr noundef nonnull %.str.4.sink919, i32 noundef %1599, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.2, i32 noundef 277, ptr noundef %1602, ptr noundef %1604, ptr noundef %1606, i32 noundef %1607) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1609:                                             ; preds = %1580
  %1610 = add nsw i32 %1582, 2
  store i32 %1610, ptr @test_count, align 4, !tbaa !5
  %1611 = call i32 @s2n_connection_set_config(ptr noundef nonnull %1581, ptr noundef nonnull %1408) #9
  %1612 = icmp eq i32 %1611, -1
  br i1 %1612, label %1613, label %1637

1613:                                             ; preds = %1609
  %1614 = tail call ptr @__errno_location() #10
  %1615 = load i32, ptr %1614, align 4, !tbaa !5
  %1616 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1617 = call i32 @s2n_print_stacktrace(ptr noundef %1616) #9
  %1618 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1619 = trunc nuw i8 %1618 to i1
  br i1 %1619, label %1620, label %1624

1620:                                             ; preds = %1613
  %1621 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1622 = call i32 @fileno(ptr noundef %1621) #9
  %1623 = call i32 @isatty(i32 noundef %1622) #9
  %.not279 = icmp eq i32 %1623, 0
  br i1 %.not279, label %1624, label %1625

1624:                                             ; preds = %1620, %1613
  br label %1625

1625:                                             ; preds = %1620, %1624
  %.str.4.sink930 = phi ptr [ @.str.4, %1624 ], [ @.str, %1620 ]
  store i32 %1615, ptr %1614, align 4, !tbaa !5
  %1626 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1627 = load i32, ptr @test_count, align 4, !tbaa !5
  %1628 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1629 = load i32, ptr %1628, align 4, !tbaa !5
  %1630 = call ptr @s2n_strerror(i32 noundef %1629, ptr noundef nonnull @.str.3) #9
  %1631 = load i32, ptr %1628, align 4, !tbaa !5
  %1632 = call ptr @s2n_strerror_debug(i32 noundef %1631, ptr noundef nonnull @.str.3) #9
  %1633 = load i32, ptr %1614, align 4, !tbaa !5
  %1634 = call ptr @strerror(i32 noundef %1633) #9
  %1635 = load i32, ptr %1614, align 4, !tbaa !5
  %1636 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1626, ptr noundef nonnull %.str.4.sink930, i32 noundef %1627, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.2, i32 noundef 278, ptr noundef %1630, ptr noundef %1632, ptr noundef %1634, i32 noundef %1635) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1637:                                             ; preds = %1609
  %1638 = load i32, ptr @test_count, align 4, !tbaa !5
  %1639 = add nsw i32 %1638, 1
  store i32 %1639, ptr @test_count, align 4, !tbaa !5
  %1640 = call i32 @s2n_connection_set_client_auth_type(ptr noundef nonnull %1581, i32 noundef 1) #9
  %1641 = icmp eq i32 %1640, -1
  br i1 %1641, label %1642, label %1666

1642:                                             ; preds = %1637
  %1643 = tail call ptr @__errno_location() #10
  %1644 = load i32, ptr %1643, align 4, !tbaa !5
  %1645 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1646 = call i32 @s2n_print_stacktrace(ptr noundef %1645) #9
  %1647 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1648 = trunc nuw i8 %1647 to i1
  br i1 %1648, label %1649, label %1653

1649:                                             ; preds = %1642
  %1650 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1651 = call i32 @fileno(ptr noundef %1650) #9
  %1652 = call i32 @isatty(i32 noundef %1651) #9
  %.not278 = icmp eq i32 %1652, 0
  br i1 %.not278, label %1653, label %1654

1653:                                             ; preds = %1649, %1642
  br label %1654

1654:                                             ; preds = %1649, %1653
  %.str.4.sink941 = phi ptr [ @.str.4, %1653 ], [ @.str, %1649 ]
  store i32 %1644, ptr %1643, align 4, !tbaa !5
  %1655 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1656 = load i32, ptr @test_count, align 4, !tbaa !5
  %1657 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1658 = load i32, ptr %1657, align 4, !tbaa !5
  %1659 = call ptr @s2n_strerror(i32 noundef %1658, ptr noundef nonnull @.str.3) #9
  %1660 = load i32, ptr %1657, align 4, !tbaa !5
  %1661 = call ptr @s2n_strerror_debug(i32 noundef %1660, ptr noundef nonnull @.str.3) #9
  %1662 = load i32, ptr %1643, align 4, !tbaa !5
  %1663 = call ptr @strerror(i32 noundef %1662) #9
  %1664 = load i32, ptr %1643, align 4, !tbaa !5
  %1665 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1655, ptr noundef nonnull %.str.4.sink941, i32 noundef %1656, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.2, i32 noundef 279, ptr noundef %1659, ptr noundef %1661, ptr noundef %1663, i32 noundef %1664) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1666:                                             ; preds = %1637
  %1667 = load i32, ptr @test_count, align 4, !tbaa !5
  %1668 = add nsw i32 %1667, 1
  store i32 %1668, ptr @test_count, align 4, !tbaa !5
  %1669 = call ptr @s2n_config_new() #9
  %1670 = icmp eq ptr %1669, null
  br i1 %1670, label %1671, label %1695

1671:                                             ; preds = %1666
  %1672 = tail call ptr @__errno_location() #10
  %1673 = load i32, ptr %1672, align 4, !tbaa !5
  %1674 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1675 = call i32 @s2n_print_stacktrace(ptr noundef %1674) #9
  %1676 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1677 = trunc nuw i8 %1676 to i1
  br i1 %1677, label %1678, label %1682

1678:                                             ; preds = %1671
  %1679 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1680 = call i32 @fileno(ptr noundef %1679) #9
  %1681 = call i32 @isatty(i32 noundef %1680) #9
  %.not277 = icmp eq i32 %1681, 0
  br i1 %.not277, label %1682, label %1683

1682:                                             ; preds = %1678, %1671
  br label %1683

1683:                                             ; preds = %1678, %1682
  %.str.4.sink952 = phi ptr [ @.str.4, %1682 ], [ @.str, %1678 ]
  store i32 %1673, ptr %1672, align 4, !tbaa !5
  %1684 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1685 = load i32, ptr @test_count, align 4, !tbaa !5
  %1686 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1687 = load i32, ptr %1686, align 4, !tbaa !5
  %1688 = call ptr @s2n_strerror(i32 noundef %1687, ptr noundef nonnull @.str.3) #9
  %1689 = load i32, ptr %1686, align 4, !tbaa !5
  %1690 = call ptr @s2n_strerror_debug(i32 noundef %1689, ptr noundef nonnull @.str.3) #9
  %1691 = load i32, ptr %1672, align 4, !tbaa !5
  %1692 = call ptr @strerror(i32 noundef %1691) #9
  %1693 = load i32, ptr %1672, align 4, !tbaa !5
  %1694 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1684, ptr noundef nonnull %.str.4.sink952, i32 noundef %1685, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.2, i32 noundef 282, ptr noundef %1688, ptr noundef %1690, ptr noundef %1692, i32 noundef %1693) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1695:                                             ; preds = %1666
  %1696 = load i32, ptr @test_count, align 4, !tbaa !5
  %1697 = add nsw i32 %1696, 1
  store i32 %1697, ptr @test_count, align 4, !tbaa !5
  %1698 = load ptr, ptr %8, align 8, !tbaa !9
  %1699 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef nonnull %1669, ptr noundef %1698) #9
  %1700 = icmp eq i32 %1699, -1
  br i1 %1700, label %1701, label %1725

1701:                                             ; preds = %1695
  %1702 = tail call ptr @__errno_location() #10
  %1703 = load i32, ptr %1702, align 4, !tbaa !5
  %1704 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1705 = call i32 @s2n_print_stacktrace(ptr noundef %1704) #9
  %1706 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1707 = trunc nuw i8 %1706 to i1
  br i1 %1707, label %1708, label %1712

1708:                                             ; preds = %1701
  %1709 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1710 = call i32 @fileno(ptr noundef %1709) #9
  %1711 = call i32 @isatty(i32 noundef %1710) #9
  %.not276 = icmp eq i32 %1711, 0
  br i1 %.not276, label %1712, label %1713

1712:                                             ; preds = %1708, %1701
  br label %1713

1713:                                             ; preds = %1708, %1712
  %.str.4.sink963 = phi ptr [ @.str.4, %1712 ], [ @.str, %1708 ]
  store i32 %1703, ptr %1702, align 4, !tbaa !5
  %1714 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1715 = load i32, ptr @test_count, align 4, !tbaa !5
  %1716 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1717 = load i32, ptr %1716, align 4, !tbaa !5
  %1718 = call ptr @s2n_strerror(i32 noundef %1717, ptr noundef nonnull @.str.3) #9
  %1719 = load i32, ptr %1716, align 4, !tbaa !5
  %1720 = call ptr @s2n_strerror_debug(i32 noundef %1719, ptr noundef nonnull @.str.3) #9
  %1721 = load i32, ptr %1702, align 4, !tbaa !5
  %1722 = call ptr @strerror(i32 noundef %1721) #9
  %1723 = load i32, ptr %1702, align 4, !tbaa !5
  %1724 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1714, ptr noundef nonnull %.str.4.sink963, i32 noundef %1715, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.2, i32 noundef 283, ptr noundef %1718, ptr noundef %1720, ptr noundef %1722, i32 noundef %1723) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1725:                                             ; preds = %1695
  %1726 = load i32, ptr @test_count, align 4, !tbaa !5
  %1727 = add nsw i32 %1726, 1
  store i32 %1727, ptr @test_count, align 4, !tbaa !5
  %1728 = call i32 @s2n_config_set_unsafe_for_testing(ptr noundef nonnull %1669) #9
  %1729 = icmp eq i32 %1728, -1
  br i1 %1729, label %1730, label %1754

1730:                                             ; preds = %1725
  %1731 = tail call ptr @__errno_location() #10
  %1732 = load i32, ptr %1731, align 4, !tbaa !5
  %1733 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1734 = call i32 @s2n_print_stacktrace(ptr noundef %1733) #9
  %1735 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1736 = trunc nuw i8 %1735 to i1
  br i1 %1736, label %1737, label %1741

1737:                                             ; preds = %1730
  %1738 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1739 = call i32 @fileno(ptr noundef %1738) #9
  %1740 = call i32 @isatty(i32 noundef %1739) #9
  %.not275 = icmp eq i32 %1740, 0
  br i1 %.not275, label %1741, label %1742

1741:                                             ; preds = %1737, %1730
  br label %1742

1742:                                             ; preds = %1737, %1741
  %.str.4.sink974 = phi ptr [ @.str.4, %1741 ], [ @.str, %1737 ]
  store i32 %1732, ptr %1731, align 4, !tbaa !5
  %1743 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1744 = load i32, ptr @test_count, align 4, !tbaa !5
  %1745 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1746 = load i32, ptr %1745, align 4, !tbaa !5
  %1747 = call ptr @s2n_strerror(i32 noundef %1746, ptr noundef nonnull @.str.3) #9
  %1748 = load i32, ptr %1745, align 4, !tbaa !5
  %1749 = call ptr @s2n_strerror_debug(i32 noundef %1748, ptr noundef nonnull @.str.3) #9
  %1750 = load i32, ptr %1731, align 4, !tbaa !5
  %1751 = call ptr @strerror(i32 noundef %1750) #9
  %1752 = load i32, ptr %1731, align 4, !tbaa !5
  %1753 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1743, ptr noundef nonnull %.str.4.sink974, i32 noundef %1744, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.2, i32 noundef 284, ptr noundef %1747, ptr noundef %1749, ptr noundef %1751, i32 noundef %1752) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1754:                                             ; preds = %1725
  %1755 = call ptr @s2n_connection_new(i32 noundef 0) #9
  %1756 = load i32, ptr @test_count, align 4, !tbaa !5
  %1757 = add nsw i32 %1756, 1
  store i32 %1757, ptr @test_count, align 4, !tbaa !5
  %1758 = icmp eq ptr %1755, null
  br i1 %1758, label %1759, label %1783

1759:                                             ; preds = %1754
  %1760 = tail call ptr @__errno_location() #10
  %1761 = load i32, ptr %1760, align 4, !tbaa !5
  %1762 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1763 = call i32 @s2n_print_stacktrace(ptr noundef %1762) #9
  %1764 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1765 = trunc nuw i8 %1764 to i1
  br i1 %1765, label %1766, label %1770

1766:                                             ; preds = %1759
  %1767 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1768 = call i32 @fileno(ptr noundef %1767) #9
  %1769 = call i32 @isatty(i32 noundef %1768) #9
  %.not274 = icmp eq i32 %1769, 0
  br i1 %.not274, label %1770, label %1771

1770:                                             ; preds = %1766, %1759
  br label %1771

1771:                                             ; preds = %1766, %1770
  %.str.4.sink985 = phi ptr [ @.str.4, %1770 ], [ @.str, %1766 ]
  store i32 %1761, ptr %1760, 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 nonnull @.str.3) #9
  %1777 = load i32, ptr %1774, align 4, !tbaa !5
  %1778 = call ptr @s2n_strerror_debug(i32 noundef %1777, ptr noundef nonnull @.str.3) #9
  %1779 = load i32, ptr %1760, align 4, !tbaa !5
  %1780 = call ptr @strerror(i32 noundef %1779) #9
  %1781 = load i32, ptr %1760, align 4, !tbaa !5
  %1782 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1772, ptr noundef nonnull %.str.4.sink985, i32 noundef %1773, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.2, i32 noundef 287, ptr noundef %1776, ptr noundef %1778, ptr noundef %1780, i32 noundef %1781) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1783:                                             ; preds = %1754
  %1784 = add nsw i32 %1756, 2
  store i32 %1784, ptr @test_count, align 4, !tbaa !5
  %1785 = call i32 @s2n_connection_set_config(ptr noundef nonnull %1755, ptr noundef nonnull %1669) #9
  %1786 = icmp eq i32 %1785, -1
  br i1 %1786, label %1787, label %1811

1787:                                             ; preds = %1783
  %1788 = tail call ptr @__errno_location() #10
  %1789 = load i32, ptr %1788, align 4, !tbaa !5
  %1790 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1791 = call i32 @s2n_print_stacktrace(ptr noundef %1790) #9
  %1792 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1793 = trunc nuw i8 %1792 to i1
  br i1 %1793, label %1794, label %1798

1794:                                             ; preds = %1787
  %1795 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1796 = call i32 @fileno(ptr noundef %1795) #9
  %1797 = call i32 @isatty(i32 noundef %1796) #9
  %.not273 = icmp eq i32 %1797, 0
  br i1 %.not273, label %1798, label %1799

1798:                                             ; preds = %1794, %1787
  br label %1799

1799:                                             ; preds = %1794, %1798
  %.str.4.sink996 = phi ptr [ @.str.4, %1798 ], [ @.str, %1794 ]
  store i32 %1789, ptr %1788, align 4, !tbaa !5
  %1800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1801 = load i32, ptr @test_count, align 4, !tbaa !5
  %1802 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1803 = load i32, ptr %1802, align 4, !tbaa !5
  %1804 = call ptr @s2n_strerror(i32 noundef %1803, ptr noundef nonnull @.str.3) #9
  %1805 = load i32, ptr %1802, align 4, !tbaa !5
  %1806 = call ptr @s2n_strerror_debug(i32 noundef %1805, ptr noundef nonnull @.str.3) #9
  %1807 = load i32, ptr %1788, align 4, !tbaa !5
  %1808 = call ptr @strerror(i32 noundef %1807) #9
  %1809 = load i32, ptr %1788, align 4, !tbaa !5
  %1810 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1800, ptr noundef nonnull %.str.4.sink996, i32 noundef %1801, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.2, i32 noundef 288, ptr noundef %1804, ptr noundef %1806, ptr noundef %1808, i32 noundef %1809) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1811:                                             ; preds = %1783
  %1812 = load i32, ptr @test_count, align 4, !tbaa !5
  %1813 = add nsw i32 %1812, 1
  store i32 %1813, ptr @test_count, align 4, !tbaa !5
  %1814 = call i32 @s2n_connection_set_client_auth_type(ptr noundef nonnull %1755, i32 noundef 1) #9
  %1815 = icmp eq i32 %1814, -1
  br i1 %1815, label %1816, label %1840

1816:                                             ; preds = %1811
  %1817 = tail call ptr @__errno_location() #10
  %1818 = load i32, ptr %1817, align 4, !tbaa !5
  %1819 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1820 = call i32 @s2n_print_stacktrace(ptr noundef %1819) #9
  %1821 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1822 = trunc nuw i8 %1821 to i1
  br i1 %1822, label %1823, label %1827

1823:                                             ; preds = %1816
  %1824 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1825 = call i32 @fileno(ptr noundef %1824) #9
  %1826 = call i32 @isatty(i32 noundef %1825) #9
  %.not272 = icmp eq i32 %1826, 0
  br i1 %.not272, label %1827, label %1828

1827:                                             ; preds = %1823, %1816
  br label %1828

1828:                                             ; preds = %1823, %1827
  %.str.4.sink1007 = phi ptr [ @.str.4, %1827 ], [ @.str, %1823 ]
  store i32 %1818, ptr %1817, align 4, !tbaa !5
  %1829 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1830 = load i32, ptr @test_count, align 4, !tbaa !5
  %1831 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1832 = load i32, ptr %1831, align 4, !tbaa !5
  %1833 = call ptr @s2n_strerror(i32 noundef %1832, ptr noundef nonnull @.str.3) #9
  %1834 = load i32, ptr %1831, align 4, !tbaa !5
  %1835 = call ptr @s2n_strerror_debug(i32 noundef %1834, ptr noundef nonnull @.str.3) #9
  %1836 = load i32, ptr %1817, align 4, !tbaa !5
  %1837 = call ptr @strerror(i32 noundef %1836) #9
  %1838 = load i32, ptr %1817, align 4, !tbaa !5
  %1839 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1829, ptr noundef nonnull %.str.4.sink1007, i32 noundef %1830, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.2, i32 noundef 289, ptr noundef %1833, ptr noundef %1835, ptr noundef %1837, i32 noundef %1838) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1840:                                             ; preds = %1811
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #9
  store i64 0, ptr %9, align 8
  %1841 = load i32, ptr @test_count, align 4, !tbaa !5
  %1842 = add nsw i32 %1841, 1
  store i32 %1842, ptr @test_count, align 4, !tbaa !5
  %1843 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef nonnull %9) #9
  %1844 = icmp eq i32 %1843, -1
  br i1 %1844, label %1845, label %1869

1845:                                             ; preds = %1840
  %1846 = tail call ptr @__errno_location() #10
  %1847 = load i32, ptr %1846, align 4, !tbaa !5
  %1848 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1849 = call i32 @s2n_print_stacktrace(ptr noundef %1848) #9
  %1850 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1851 = trunc nuw i8 %1850 to i1
  br i1 %1851, label %1852, label %1856

1852:                                             ; preds = %1845
  %1853 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1854 = call i32 @fileno(ptr noundef %1853) #9
  %1855 = call i32 @isatty(i32 noundef %1854) #9
  %.not271 = icmp eq i32 %1855, 0
  br i1 %.not271, label %1856, label %1857

1856:                                             ; preds = %1852, %1845
  br label %1857

1857:                                             ; preds = %1852, %1856
  %.str.4.sink1018 = phi ptr [ @.str.4, %1856 ], [ @.str, %1852 ]
  store i32 %1847, ptr %1846, align 4, !tbaa !5
  %1858 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1859 = load i32, ptr @test_count, align 4, !tbaa !5
  %1860 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1861 = load i32, ptr %1860, align 4, !tbaa !5
  %1862 = call ptr @s2n_strerror(i32 noundef %1861, ptr noundef nonnull @.str.3) #9
  %1863 = load i32, ptr %1860, align 4, !tbaa !5
  %1864 = call ptr @s2n_strerror_debug(i32 noundef %1863, ptr noundef nonnull @.str.3) #9
  %1865 = load i32, ptr %1846, align 4, !tbaa !5
  %1866 = call ptr @strerror(i32 noundef %1865) #9
  %1867 = load i32, ptr %1846, align 4, !tbaa !5
  %1868 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1858, ptr noundef nonnull %.str.4.sink1018, i32 noundef %1859, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.2, i32 noundef 293, ptr noundef %1862, ptr noundef %1864, ptr noundef %1866, i32 noundef %1867) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1869:                                             ; preds = %1840
  %1870 = load i32, ptr @test_count, align 4, !tbaa !5
  %1871 = add nsw i32 %1870, 1
  store i32 %1871, ptr @test_count, align 4, !tbaa !5
  %1872 = call i32 @s2n_connection_set_io_pair(ptr noundef nonnull %1581, ptr noundef nonnull %9) #9
  %1873 = icmp eq i32 %1872, -1
  br i1 %1873, label %1874, label %1898

1874:                                             ; preds = %1869
  %1875 = tail call ptr @__errno_location() #10
  %1876 = load i32, ptr %1875, align 4, !tbaa !5
  %1877 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1878 = call i32 @s2n_print_stacktrace(ptr noundef %1877) #9
  %1879 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1880 = trunc nuw i8 %1879 to i1
  br i1 %1880, label %1881, label %1885

1881:                                             ; preds = %1874
  %1882 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1883 = call i32 @fileno(ptr noundef %1882) #9
  %1884 = call i32 @isatty(i32 noundef %1883) #9
  %.not270 = icmp eq i32 %1884, 0
  br i1 %.not270, label %1885, label %1886

1885:                                             ; preds = %1881, %1874
  br label %1886

1886:                                             ; preds = %1881, %1885
  %.str.4.sink1029 = phi ptr [ @.str.4, %1885 ], [ @.str, %1881 ]
  store i32 %1876, ptr %1875, 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 nonnull @.str.3) #9
  %1892 = load i32, ptr %1889, align 4, !tbaa !5
  %1893 = call ptr @s2n_strerror_debug(i32 noundef %1892, ptr noundef nonnull @.str.3) #9
  %1894 = load i32, ptr %1875, align 4, !tbaa !5
  %1895 = call ptr @strerror(i32 noundef %1894) #9
  %1896 = load i32, ptr %1875, align 4, !tbaa !5
  %1897 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1887, ptr noundef nonnull %.str.4.sink1029, i32 noundef %1888, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.2, i32 noundef 294, ptr noundef %1891, ptr noundef %1893, ptr noundef %1895, i32 noundef %1896) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1898:                                             ; preds = %1869
  %1899 = load i32, ptr @test_count, align 4, !tbaa !5
  %1900 = add nsw i32 %1899, 1
  store i32 %1900, ptr @test_count, align 4, !tbaa !5
  %1901 = call i32 @s2n_connection_set_io_pair(ptr noundef nonnull %1755, ptr noundef nonnull %9) #9
  %1902 = icmp eq i32 %1901, -1
  br i1 %1902, label %1903, label %1927

1903:                                             ; preds = %1898
  %1904 = tail call ptr @__errno_location() #10
  %1905 = load i32, ptr %1904, align 4, !tbaa !5
  %1906 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1907 = call i32 @s2n_print_stacktrace(ptr noundef %1906) #9
  %1908 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1909 = trunc nuw i8 %1908 to i1
  br i1 %1909, label %1910, label %1914

1910:                                             ; preds = %1903
  %1911 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1912 = call i32 @fileno(ptr noundef %1911) #9
  %1913 = call i32 @isatty(i32 noundef %1912) #9
  %.not269 = icmp eq i32 %1913, 0
  br i1 %.not269, label %1914, label %1915

1914:                                             ; preds = %1910, %1903
  br label %1915

1915:                                             ; preds = %1910, %1914
  %.str.4.sink1040 = phi ptr [ @.str.4, %1914 ], [ @.str, %1910 ]
  store i32 %1905, ptr %1904, align 4, !tbaa !5
  %1916 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1917 = load i32, ptr @test_count, align 4, !tbaa !5
  %1918 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1919 = load i32, ptr %1918, align 4, !tbaa !5
  %1920 = call ptr @s2n_strerror(i32 noundef %1919, ptr noundef nonnull @.str.3) #9
  %1921 = load i32, ptr %1918, align 4, !tbaa !5
  %1922 = call ptr @s2n_strerror_debug(i32 noundef %1921, ptr noundef nonnull @.str.3) #9
  %1923 = load i32, ptr %1904, align 4, !tbaa !5
  %1924 = call ptr @strerror(i32 noundef %1923) #9
  %1925 = load i32, ptr %1904, align 4, !tbaa !5
  %1926 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1916, ptr noundef nonnull %.str.4.sink1040, i32 noundef %1917, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.2, i32 noundef 295, ptr noundef %1920, ptr noundef %1922, ptr noundef %1924, i32 noundef %1925) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1927:                                             ; preds = %1898
  %1928 = load i32, ptr @test_count, align 4, !tbaa !5
  %1929 = add nsw i32 %1928, 1
  store i32 %1929, ptr @test_count, align 4, !tbaa !5
  %1930 = call i32 @s2n_try_handshake_with_async_pkey_op(ptr noundef nonnull %1755, ptr noundef nonnull %1581, ptr noundef nonnull @s2n_test_apply_with_invalid_signature_handler)
  %1931 = icmp eq i32 %1930, -1
  br i1 %1931, label %1932, label %1956

1932:                                             ; preds = %1927
  %1933 = tail call ptr @__errno_location() #10
  %1934 = load i32, ptr %1933, align 4, !tbaa !5
  %1935 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1936 = call i32 @s2n_print_stacktrace(ptr noundef %1935) #9
  %1937 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1938 = trunc nuw i8 %1937 to i1
  br i1 %1938, label %1939, label %1943

1939:                                             ; preds = %1932
  %1940 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1941 = call i32 @fileno(ptr noundef %1940) #9
  %1942 = call i32 @isatty(i32 noundef %1941) #9
  %.not268 = icmp eq i32 %1942, 0
  br i1 %.not268, label %1943, label %1944

1943:                                             ; preds = %1939, %1932
  br label %1944

1944:                                             ; preds = %1939, %1943
  %.str.4.sink1051 = phi ptr [ @.str.4, %1943 ], [ @.str, %1939 ]
  store i32 %1934, ptr %1933, align 4, !tbaa !5
  %1945 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1946 = load i32, ptr @test_count, align 4, !tbaa !5
  %1947 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1948 = load i32, ptr %1947, align 4, !tbaa !5
  %1949 = call ptr @s2n_strerror(i32 noundef %1948, ptr noundef nonnull @.str.3) #9
  %1950 = load i32, ptr %1947, align 4, !tbaa !5
  %1951 = call ptr @s2n_strerror_debug(i32 noundef %1950, ptr noundef nonnull @.str.3) #9
  %1952 = load i32, ptr %1933, align 4, !tbaa !5
  %1953 = call ptr @strerror(i32 noundef %1952) #9
  %1954 = load i32, ptr %1933, align 4, !tbaa !5
  %1955 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1945, ptr noundef nonnull %.str.4.sink1051, i32 noundef %1946, ptr noundef nonnull @.str.57, ptr noundef nonnull @.str.2, i32 noundef 298, ptr noundef %1949, ptr noundef %1951, ptr noundef %1953, i32 noundef %1954) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1956:                                             ; preds = %1927
  %1957 = load i32, ptr @test_count, align 4, !tbaa !5
  %1958 = add nsw i32 %1957, 1
  store i32 %1958, ptr @test_count, align 4, !tbaa !5
  %1959 = load i8, ptr @async_callback_invoked, align 1, !tbaa !11, !range !13, !noundef !14
  %1960 = trunc nuw i8 %1959 to i1
  br i1 %1960, label %1985, label %1961

1961:                                             ; preds = %1956
  %1962 = tail call ptr @__errno_location() #10
  %1963 = load i32, ptr %1962, align 4, !tbaa !5
  %1964 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1965 = call i32 @s2n_print_stacktrace(ptr noundef %1964) #9
  %1966 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1967 = trunc nuw i8 %1966 to i1
  br i1 %1967, label %1968, label %1972

1968:                                             ; preds = %1961
  %1969 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1970 = call i32 @fileno(ptr noundef %1969) #9
  %1971 = call i32 @isatty(i32 noundef %1970) #9
  %.not249 = icmp eq i32 %1971, 0
  br i1 %.not249, label %1972, label %1973

1972:                                             ; preds = %1968, %1961
  br label %1973

1973:                                             ; preds = %1968, %1972
  %.str.4.sink1062 = phi ptr [ @.str.4, %1972 ], [ @.str, %1968 ]
  store i32 %1963, ptr %1962, align 4, !tbaa !5
  %1974 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1975 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1977, ptr noundef nonnull @.str.3) #9
  %1979 = load i32, ptr %1976, align 4, !tbaa !5
  %1980 = call ptr @s2n_strerror_debug(i32 noundef %1979, ptr noundef nonnull @.str.3) #9
  %1981 = load i32, ptr %1962, align 4, !tbaa !5
  %1982 = call ptr @strerror(i32 noundef %1981) #9
  %1983 = load i32, ptr %1962, align 4, !tbaa !5
  %1984 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1974, ptr noundef nonnull %.str.4.sink1062, i32 noundef %1975, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.2, i32 noundef 301, ptr noundef %1978, ptr noundef %1980, ptr noundef %1982, i32 noundef %1983) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1985:                                             ; preds = %1956
  %1986 = add nsw i32 %1957, 2
  store i32 %1986, ptr @test_count, align 4, !tbaa !5
  %1987 = load i8, ptr @async_sign_operation_called_s2n_client, align 1, !tbaa !11, !range !13, !noundef !14
  %1988 = trunc nuw i8 %1987 to i1
  br i1 %1988, label %2013, label %1989

1989:                                             ; preds = %1985
  %1990 = tail call ptr @__errno_location() #10
  %1991 = load i32, ptr %1990, align 4, !tbaa !5
  %1992 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1993 = call i32 @s2n_print_stacktrace(ptr noundef %1992) #9
  %1994 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1995 = trunc nuw i8 %1994 to i1
  br i1 %1995, label %1996, label %2000

1996:                                             ; preds = %1989
  %1997 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1998 = call i32 @fileno(ptr noundef %1997) #9
  %1999 = call i32 @isatty(i32 noundef %1998) #9
  %.not250 = icmp eq i32 %1999, 0
  br i1 %.not250, label %2000, label %2001

2000:                                             ; preds = %1996, %1989
  br label %2001

2001:                                             ; preds = %1996, %2000
  %.str.4.sink1073 = phi ptr [ @.str.4, %2000 ], [ @.str, %1996 ]
  store i32 %1991, ptr %1990, align 4, !tbaa !5
  %2002 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2003 = load i32, ptr @test_count, align 4, !tbaa !5
  %2004 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2005 = load i32, ptr %2004, align 4, !tbaa !5
  %2006 = call ptr @s2n_strerror(i32 noundef %2005, ptr noundef nonnull @.str.3) #9
  %2007 = load i32, ptr %2004, align 4, !tbaa !5
  %2008 = call ptr @s2n_strerror_debug(i32 noundef %2007, ptr noundef nonnull @.str.3) #9
  %2009 = load i32, ptr %1990, align 4, !tbaa !5
  %2010 = call ptr @strerror(i32 noundef %2009) #9
  %2011 = load i32, ptr %1990, align 4, !tbaa !5
  %2012 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2002, ptr noundef nonnull %.str.4.sink1073, i32 noundef %2003, ptr noundef nonnull @.str.58, ptr noundef nonnull @.str.2, i32 noundef 304, ptr noundef %2006, ptr noundef %2008, ptr noundef %2010, i32 noundef %2011) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2013:                                             ; preds = %1985
  %2014 = add nsw i32 %1957, 3
  store i32 %2014, ptr @test_count, align 4, !tbaa !5
  %2015 = call i32 @s2n_connection_client_cert_used(ptr noundef nonnull %1755) #9
  %.not251 = icmp eq i32 %2015, 0
  br i1 %.not251, label %2016, label %2040

2016:                                             ; preds = %2013
  %2017 = tail call ptr @__errno_location() #10
  %2018 = load i32, ptr %2017, align 4, !tbaa !5
  %2019 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2020 = call i32 @s2n_print_stacktrace(ptr noundef %2019) #9
  %2021 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2022 = trunc nuw i8 %2021 to i1
  br i1 %2022, label %2023, label %2027

2023:                                             ; preds = %2016
  %2024 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2025 = call i32 @fileno(ptr noundef %2024) #9
  %2026 = call i32 @isatty(i32 noundef %2025) #9
  %.not252 = icmp eq i32 %2026, 0
  br i1 %.not252, label %2027, label %2028

2027:                                             ; preds = %2023, %2016
  br label %2028

2028:                                             ; preds = %2023, %2027
  %.str.4.sink1084 = phi ptr [ @.str.4, %2027 ], [ @.str, %2023 ]
  store i32 %2018, ptr %2017, align 4, !tbaa !5
  %2029 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2030 = load i32, ptr @test_count, align 4, !tbaa !5
  %2031 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2032 = load i32, ptr %2031, align 4, !tbaa !5
  %2033 = call ptr @s2n_strerror(i32 noundef %2032, ptr noundef nonnull @.str.3) #9
  %2034 = load i32, ptr %2031, align 4, !tbaa !5
  %2035 = call ptr @s2n_strerror_debug(i32 noundef %2034, ptr noundef nonnull @.str.3) #9
  %2036 = load i32, ptr %2017, align 4, !tbaa !5
  %2037 = call ptr @strerror(i32 noundef %2036) #9
  %2038 = load i32, ptr %2017, align 4, !tbaa !5
  %2039 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2029, ptr noundef nonnull %.str.4.sink1084, i32 noundef %2030, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.2, i32 noundef 307, ptr noundef %2033, ptr noundef %2035, ptr noundef %2037, i32 noundef %2038) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2040:                                             ; preds = %2013
  %2041 = load i32, ptr @test_count, align 4, !tbaa !5
  %2042 = add nsw i32 %2041, 1
  store i32 %2042, ptr @test_count, align 4, !tbaa !5
  %2043 = call i32 @s2n_connection_client_cert_used(ptr noundef nonnull %1581) #9
  %.not253 = icmp eq i32 %2043, 0
  br i1 %.not253, label %2044, label %2068

2044:                                             ; preds = %2040
  %2045 = tail call ptr @__errno_location() #10
  %2046 = load i32, ptr %2045, align 4, !tbaa !5
  %2047 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2048 = call i32 @s2n_print_stacktrace(ptr noundef %2047) #9
  %2049 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2050 = trunc nuw i8 %2049 to i1
  br i1 %2050, label %2051, label %2055

2051:                                             ; preds = %2044
  %2052 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2053 = call i32 @fileno(ptr noundef %2052) #9
  %2054 = call i32 @isatty(i32 noundef %2053) #9
  %.not254 = icmp eq i32 %2054, 0
  br i1 %.not254, label %2055, label %2056

2055:                                             ; preds = %2051, %2044
  br label %2056

2056:                                             ; preds = %2051, %2055
  %.str.4.sink1095 = phi ptr [ @.str.4, %2055 ], [ @.str, %2051 ]
  store i32 %2046, ptr %2045, align 4, !tbaa !5
  %2057 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2058 = load i32, ptr @test_count, align 4, !tbaa !5
  %2059 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2060 = load i32, ptr %2059, align 4, !tbaa !5
  %2061 = call ptr @s2n_strerror(i32 noundef %2060, ptr noundef nonnull @.str.3) #9
  %2062 = load i32, ptr %2059, align 4, !tbaa !5
  %2063 = call ptr @s2n_strerror_debug(i32 noundef %2062, ptr noundef nonnull @.str.3) #9
  %2064 = load i32, ptr %2045, align 4, !tbaa !5
  %2065 = call ptr @strerror(i32 noundef %2064) #9
  %2066 = load i32, ptr %2045, align 4, !tbaa !5
  %2067 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2057, ptr noundef nonnull %.str.4.sink1095, i32 noundef %2058, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.2, i32 noundef 308, ptr noundef %2061, ptr noundef %2063, ptr noundef %2065, i32 noundef %2066) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2068:                                             ; preds = %2040
  %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 = getelementptr inbounds i8, ptr %1581, i64 220
  %2072 = load i8, ptr %2071, align 4, !tbaa !52
  %2073 = icmp eq i8 %2072, 33
  br i1 %2073, label %2098, label %2074

2074:                                             ; preds = %2068
  %2075 = tail call ptr @__errno_location() #10
  %2076 = load i32, ptr %2075, align 4, !tbaa !5
  %2077 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2078 = call i32 @s2n_print_stacktrace(ptr noundef %2077) #9
  %2079 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2080 = trunc nuw i8 %2079 to i1
  br i1 %2080, label %2081, label %2085

2081:                                             ; preds = %2074
  %2082 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2083 = call i32 @fileno(ptr noundef %2082) #9
  %2084 = call i32 @isatty(i32 noundef %2083) #9
  %.not255 = icmp eq i32 %2084, 0
  br i1 %.not255, label %2085, label %2086

2085:                                             ; preds = %2081, %2074
  br label %2086

2086:                                             ; preds = %2081, %2085
  %.str.4.sink1106 = phi ptr [ @.str.4, %2085 ], [ @.str, %2081 ]
  store i32 %2076, ptr %2075, align 4, !tbaa !5
  %2087 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2088 = load i32, ptr @test_count, align 4, !tbaa !5
  %2089 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2090 = load i32, ptr %2089, align 4, !tbaa !5
  %2091 = call ptr @s2n_strerror(i32 noundef %2090, ptr noundef nonnull @.str.3) #9
  %2092 = load i32, ptr %2089, align 4, !tbaa !5
  %2093 = call ptr @s2n_strerror_debug(i32 noundef %2092, ptr noundef nonnull @.str.3) #9
  %2094 = load i32, ptr %2075, align 4, !tbaa !5
  %2095 = call ptr @strerror(i32 noundef %2094) #9
  %2096 = load i32, ptr %2075, align 4, !tbaa !5
  %2097 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2087, ptr noundef nonnull %.str.4.sink1106, i32 noundef %2088, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.2, i32 noundef 309, ptr noundef %2091, ptr noundef %2093, ptr noundef %2095, i32 noundef %2096) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2098:                                             ; preds = %2068
  %2099 = add nsw i32 %2069, 2
  store i32 %2099, ptr @test_count, align 4, !tbaa !5
  %2100 = getelementptr inbounds i8, ptr %1755, i64 220
  %2101 = load i8, ptr %2100, align 4, !tbaa !52
  %2102 = icmp eq i8 %2101, 33
  br i1 %2102, label %2127, label %2103

2103:                                             ; preds = %2098
  %2104 = tail call ptr @__errno_location() #10
  %2105 = load i32, ptr %2104, align 4, !tbaa !5
  %2106 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2107 = call i32 @s2n_print_stacktrace(ptr noundef %2106) #9
  %2108 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2109 = trunc nuw i8 %2108 to i1
  br i1 %2109, label %2110, label %2114

2110:                                             ; preds = %2103
  %2111 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2112 = call i32 @fileno(ptr noundef %2111) #9
  %2113 = call i32 @isatty(i32 noundef %2112) #9
  %.not256 = icmp eq i32 %2113, 0
  br i1 %.not256, label %2114, label %2115

2114:                                             ; preds = %2110, %2103
  br label %2115

2115:                                             ; preds = %2110, %2114
  %.str.4.sink1117 = phi ptr [ @.str.4, %2114 ], [ @.str, %2110 ]
  store i32 %2105, ptr %2104, align 4, !tbaa !5
  %2116 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2117 = load i32, ptr @test_count, align 4, !tbaa !5
  %2118 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2119 = load i32, ptr %2118, align 4, !tbaa !5
  %2120 = call ptr @s2n_strerror(i32 noundef %2119, ptr noundef nonnull @.str.3) #9
  %2121 = load i32, ptr %2118, align 4, !tbaa !5
  %2122 = call ptr @s2n_strerror_debug(i32 noundef %2121, ptr noundef nonnull @.str.3) #9
  %2123 = load i32, ptr %2104, align 4, !tbaa !5
  %2124 = call ptr @strerror(i32 noundef %2123) #9
  %2125 = load i32, ptr %2104, align 4, !tbaa !5
  %2126 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2116, ptr noundef nonnull %.str.4.sink1117, i32 noundef %2117, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.2, i32 noundef 310, ptr noundef %2120, ptr noundef %2122, ptr noundef %2124, i32 noundef %2125) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2127:                                             ; preds = %2098
  %2128 = add nsw i32 %2069, 3
  store i32 %2128, ptr @test_count, align 4, !tbaa !5
  %2129 = call i32 @s2n_connection_free(ptr noundef nonnull %1755) #9
  %2130 = icmp eq i32 %2129, -1
  br i1 %2130, label %2131, label %2155

2131:                                             ; preds = %2127
  %2132 = tail call ptr @__errno_location() #10
  %2133 = load i32, ptr %2132, align 4, !tbaa !5
  %2134 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2135 = call i32 @s2n_print_stacktrace(ptr noundef %2134) #9
  %2136 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2137 = trunc nuw i8 %2136 to i1
  br i1 %2137, label %2138, label %2142

2138:                                             ; preds = %2131
  %2139 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2140 = call i32 @fileno(ptr noundef %2139) #9
  %2141 = call i32 @isatty(i32 noundef %2140) #9
  %.not267 = icmp eq i32 %2141, 0
  br i1 %.not267, label %2142, label %2143

2142:                                             ; preds = %2138, %2131
  br label %2143

2143:                                             ; preds = %2138, %2142
  %.str.4.sink1128 = phi ptr [ @.str.4, %2142 ], [ @.str, %2138 ]
  store i32 %2133, ptr %2132, align 4, !tbaa !5
  %2144 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2145 = load i32, ptr @test_count, align 4, !tbaa !5
  %2146 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2147 = load i32, ptr %2146, align 4, !tbaa !5
  %2148 = call ptr @s2n_strerror(i32 noundef %2147, ptr noundef nonnull @.str.3) #9
  %2149 = load i32, ptr %2146, align 4, !tbaa !5
  %2150 = call ptr @s2n_strerror_debug(i32 noundef %2149, ptr noundef nonnull @.str.3) #9
  %2151 = load i32, ptr %2132, align 4, !tbaa !5
  %2152 = call ptr @strerror(i32 noundef %2151) #9
  %2153 = load i32, ptr %2132, align 4, !tbaa !5
  %2154 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2144, ptr noundef nonnull %.str.4.sink1128, i32 noundef %2145, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.2, i32 noundef 313, ptr noundef %2148, ptr noundef %2150, ptr noundef %2152, i32 noundef %2153) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2155:                                             ; preds = %2127
  %2156 = load i32, ptr @test_count, align 4, !tbaa !5
  %2157 = add nsw i32 %2156, 1
  store i32 %2157, ptr @test_count, align 4, !tbaa !5
  %2158 = call i32 @s2n_connection_free(ptr noundef nonnull %1581) #9
  %2159 = icmp eq i32 %2158, -1
  br i1 %2159, label %2160, label %2184

2160:                                             ; preds = %2155
  %2161 = tail call ptr @__errno_location() #10
  %2162 = load i32, ptr %2161, align 4, !tbaa !5
  %2163 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2164 = call i32 @s2n_print_stacktrace(ptr noundef %2163) #9
  %2165 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2166 = trunc nuw i8 %2165 to i1
  br i1 %2166, label %2167, label %2171

2167:                                             ; preds = %2160
  %2168 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2169 = call i32 @fileno(ptr noundef %2168) #9
  %2170 = call i32 @isatty(i32 noundef %2169) #9
  %.not266 = icmp eq i32 %2170, 0
  br i1 %.not266, label %2171, label %2172

2171:                                             ; preds = %2167, %2160
  br label %2172

2172:                                             ; preds = %2167, %2171
  %.str.4.sink1139 = phi ptr [ @.str.4, %2171 ], [ @.str, %2167 ]
  store i32 %2162, ptr %2161, align 4, !tbaa !5
  %2173 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2174 = load i32, ptr @test_count, align 4, !tbaa !5
  %2175 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2176 = load i32, ptr %2175, align 4, !tbaa !5
  %2177 = call ptr @s2n_strerror(i32 noundef %2176, ptr noundef nonnull @.str.3) #9
  %2178 = load i32, ptr %2175, align 4, !tbaa !5
  %2179 = call ptr @s2n_strerror_debug(i32 noundef %2178, ptr noundef nonnull @.str.3) #9
  %2180 = load i32, ptr %2161, align 4, !tbaa !5
  %2181 = call ptr @strerror(i32 noundef %2180) #9
  %2182 = load i32, ptr %2161, align 4, !tbaa !5
  %2183 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2173, ptr noundef nonnull %.str.4.sink1139, i32 noundef %2174, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.2, i32 noundef 314, ptr noundef %2177, ptr noundef %2179, ptr noundef %2181, i32 noundef %2182) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2184:                                             ; preds = %2155
  %2185 = load i32, ptr @test_count, align 4, !tbaa !5
  %2186 = add nsw i32 %2185, 1
  store i32 %2186, ptr @test_count, align 4, !tbaa !5
  %2187 = call i32 @s2n_io_pair_close(ptr noundef nonnull %9) #9
  %2188 = icmp eq i32 %2187, -1
  br i1 %2188, label %2189, label %2213

2189:                                             ; preds = %2184
  %2190 = tail call ptr @__errno_location() #10
  %2191 = load i32, ptr %2190, align 4, !tbaa !5
  %2192 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2193 = call i32 @s2n_print_stacktrace(ptr noundef %2192) #9
  %2194 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2195 = trunc nuw i8 %2194 to i1
  br i1 %2195, label %2196, label %2200

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

2200:                                             ; preds = %2196, %2189
  br label %2201

2201:                                             ; preds = %2196, %2200
  %.str.4.sink1150 = phi ptr [ @.str.4, %2200 ], [ @.str, %2196 ]
  store i32 %2191, ptr %2190, align 4, !tbaa !5
  %2202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2203 = load i32, ptr @test_count, align 4, !tbaa !5
  %2204 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2205 = load i32, ptr %2204, align 4, !tbaa !5
  %2206 = call ptr @s2n_strerror(i32 noundef %2205, ptr noundef nonnull @.str.3) #9
  %2207 = load i32, ptr %2204, align 4, !tbaa !5
  %2208 = call ptr @s2n_strerror_debug(i32 noundef %2207, ptr noundef nonnull @.str.3) #9
  %2209 = load i32, ptr %2190, align 4, !tbaa !5
  %2210 = call ptr @strerror(i32 noundef %2209) #9
  %2211 = load i32, ptr %2190, align 4, !tbaa !5
  %2212 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2202, ptr noundef nonnull %.str.4.sink1150, i32 noundef %2203, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.2, i32 noundef 315, ptr noundef %2206, ptr noundef %2208, ptr noundef %2210, i32 noundef %2211) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2213:                                             ; preds = %2184
  %2214 = load i32, ptr @test_count, align 4, !tbaa !5
  %2215 = add nsw i32 %2214, 1
  store i32 %2215, ptr @test_count, align 4, !tbaa !5
  %2216 = call i32 @s2n_config_free(ptr noundef nonnull %1408) #9
  %2217 = icmp eq i32 %2216, -1
  br i1 %2217, label %2218, label %2242

2218:                                             ; preds = %2213
  %2219 = tail call ptr @__errno_location() #10
  %2220 = load i32, ptr %2219, align 4, !tbaa !5
  %2221 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2222 = call i32 @s2n_print_stacktrace(ptr noundef %2221) #9
  %2223 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2224 = trunc nuw i8 %2223 to i1
  br i1 %2224, label %2225, label %2229

2225:                                             ; preds = %2218
  %2226 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2227 = call i32 @fileno(ptr noundef %2226) #9
  %2228 = call i32 @isatty(i32 noundef %2227) #9
  %.not264 = icmp eq i32 %2228, 0
  br i1 %.not264, label %2229, label %2230

2229:                                             ; preds = %2225, %2218
  br label %2230

2230:                                             ; preds = %2225, %2229
  %.str.4.sink1161 = phi ptr [ @.str.4, %2229 ], [ @.str, %2225 ]
  store i32 %2220, ptr %2219, align 4, !tbaa !5
  %2231 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2232 = load i32, ptr @test_count, align 4, !tbaa !5
  %2233 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2234 = load i32, ptr %2233, align 4, !tbaa !5
  %2235 = call ptr @s2n_strerror(i32 noundef %2234, ptr noundef nonnull @.str.3) #9
  %2236 = load i32, ptr %2233, align 4, !tbaa !5
  %2237 = call ptr @s2n_strerror_debug(i32 noundef %2236, ptr noundef nonnull @.str.3) #9
  %2238 = load i32, ptr %2219, align 4, !tbaa !5
  %2239 = call ptr @strerror(i32 noundef %2238) #9
  %2240 = load i32, ptr %2219, align 4, !tbaa !5
  %2241 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2231, ptr noundef nonnull %.str.4.sink1161, i32 noundef %2232, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.2, i32 noundef 316, ptr noundef %2235, ptr noundef %2237, ptr noundef %2239, i32 noundef %2240) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2242:                                             ; preds = %2213
  %2243 = load i32, ptr @test_count, align 4, !tbaa !5
  %2244 = add nsw i32 %2243, 1
  store i32 %2244, ptr @test_count, align 4, !tbaa !5
  %2245 = call i32 @s2n_config_free(ptr noundef nonnull %1669) #9
  %2246 = icmp eq i32 %2245, -1
  br i1 %2246, label %2247, label %2271

2247:                                             ; preds = %2242
  %2248 = tail call ptr @__errno_location() #10
  %2249 = load i32, ptr %2248, align 4, !tbaa !5
  %2250 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2251 = call i32 @s2n_print_stacktrace(ptr noundef %2250) #9
  %2252 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2253 = trunc nuw i8 %2252 to i1
  br i1 %2253, label %2254, label %2258

2254:                                             ; preds = %2247
  %2255 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2256 = call i32 @fileno(ptr noundef %2255) #9
  %2257 = call i32 @isatty(i32 noundef %2256) #9
  %.not263 = icmp eq i32 %2257, 0
  br i1 %.not263, label %2258, label %2259

2258:                                             ; preds = %2254, %2247
  br label %2259

2259:                                             ; preds = %2254, %2258
  %.str.4.sink1172 = phi ptr [ @.str.4, %2258 ], [ @.str, %2254 ]
  store i32 %2249, ptr %2248, align 4, !tbaa !5
  %2260 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2261 = load i32, ptr @test_count, align 4, !tbaa !5
  %2262 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2263 = load i32, ptr %2262, align 4, !tbaa !5
  %2264 = call ptr @s2n_strerror(i32 noundef %2263, ptr noundef nonnull @.str.3) #9
  %2265 = load i32, ptr %2262, align 4, !tbaa !5
  %2266 = call ptr @s2n_strerror_debug(i32 noundef %2265, ptr noundef nonnull @.str.3) #9
  %2267 = load i32, ptr %2248, align 4, !tbaa !5
  %2268 = call ptr @strerror(i32 noundef %2267) #9
  %2269 = load i32, ptr %2248, align 4, !tbaa !5
  %2270 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2260, ptr noundef nonnull %.str.4.sink1172, i32 noundef %2261, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.2, i32 noundef 317, ptr noundef %2264, ptr noundef %2266, ptr noundef %2268, i32 noundef %2269) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2271:                                             ; preds = %2242
  %2272 = load i32, ptr @test_count, align 4, !tbaa !5
  %2273 = add nsw i32 %2272, 1
  store i32 %2273, ptr @test_count, align 4, !tbaa !5
  %2274 = load ptr, ptr %8, align 8, !tbaa !9
  %2275 = call i32 @s2n_cert_chain_and_key_free(ptr noundef %2274) #9
  %2276 = icmp eq i32 %2275, -1
  br i1 %2276, label %2277, label %2301

2277:                                             ; preds = %2271
  %2278 = tail call ptr @__errno_location() #10
  %2279 = load i32, ptr %2278, align 4, !tbaa !5
  %2280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2281 = call i32 @s2n_print_stacktrace(ptr noundef %2280) #9
  %2282 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2283 = trunc nuw i8 %2282 to i1
  br i1 %2283, label %2284, label %2288

2284:                                             ; preds = %2277
  %2285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2286 = call i32 @fileno(ptr noundef %2285) #9
  %2287 = call i32 @isatty(i32 noundef %2286) #9
  %.not262 = icmp eq i32 %2287, 0
  br i1 %.not262, label %2288, label %2289

2288:                                             ; preds = %2284, %2277
  br label %2289

2289:                                             ; preds = %2284, %2288
  %.str.4.sink1183 = phi ptr [ @.str.4, %2288 ], [ @.str, %2284 ]
  store i32 %2279, ptr %2278, align 4, !tbaa !5
  %2290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2291 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %2293, ptr noundef nonnull @.str.3) #9
  %2295 = load i32, ptr %2292, align 4, !tbaa !5
  %2296 = call ptr @s2n_strerror_debug(i32 noundef %2295, ptr noundef nonnull @.str.3) #9
  %2297 = load i32, ptr %2278, align 4, !tbaa !5
  %2298 = call ptr @strerror(i32 noundef %2297) #9
  %2299 = load i32, ptr %2278, align 4, !tbaa !5
  %2300 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2290, ptr noundef nonnull %.str.4.sink1183, i32 noundef %2291, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.2, i32 noundef 318, ptr noundef %2294, ptr noundef %2296, ptr noundef %2298, i32 noundef %2299) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2301:                                             ; preds = %2271
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #9
  %2302 = call i32 @s2n_cleanup() #9
  %2303 = icmp eq i32 %2302, -1
  br i1 %2303, label %2304, label %2328

2304:                                             ; preds = %2301
  %2305 = tail call ptr @__errno_location() #10
  %2306 = load i32, ptr %2305, align 4, !tbaa !5
  %2307 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2308 = call i32 @s2n_print_stacktrace(ptr noundef %2307) #9
  %2309 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2310 = trunc nuw i8 %2309 to i1
  br i1 %2310, label %2311, label %2315

2311:                                             ; preds = %2304
  %2312 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2313 = call i32 @fileno(ptr noundef %2312) #9
  %2314 = call i32 @isatty(i32 noundef %2313) #9
  %.not261 = icmp eq i32 %2314, 0
  br i1 %.not261, label %2315, label %2316

2315:                                             ; preds = %2311, %2304
  br label %2316

2316:                                             ; preds = %2311, %2315
  %.str.4.sink1194 = phi ptr [ @.str.4, %2315 ], [ @.str, %2311 ]
  store i32 %2306, ptr %2305, align 4, !tbaa !5
  %2317 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2318 = load i32, ptr @test_count, align 4, !tbaa !5
  %2319 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2320 = load i32, ptr %2319, align 4, !tbaa !5
  %2321 = call ptr @s2n_strerror(i32 noundef %2320, ptr noundef nonnull @.str.3) #9
  %2322 = load i32, ptr %2319, align 4, !tbaa !5
  %2323 = call ptr @s2n_strerror_debug(i32 noundef %2322, ptr noundef nonnull @.str.3) #9
  %2324 = load i32, ptr %2305, align 4, !tbaa !5
  %2325 = call ptr @strerror(i32 noundef %2324) #9
  %2326 = load i32, ptr %2305, align 4, !tbaa !5
  %2327 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2317, ptr noundef nonnull %.str.4.sink1194, i32 noundef %2318, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.2, i32 noundef 321, ptr noundef %2321, ptr noundef %2323, ptr noundef %2325, i32 noundef %2326) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2328:                                             ; preds = %2301
  %2329 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #9
  %2330 = icmp eq i32 %2329, -1
  br i1 %2330, label %2331, label %2355

2331:                                             ; preds = %2328
  %2332 = tail call ptr @__errno_location() #10
  %2333 = load i32, ptr %2332, align 4, !tbaa !5
  %2334 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2335 = call i32 @s2n_print_stacktrace(ptr noundef %2334) #9
  %2336 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2337 = trunc nuw i8 %2336 to i1
  br i1 %2337, label %2338, label %2342

2338:                                             ; preds = %2331
  %2339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2340 = call i32 @fileno(ptr noundef %2339) #9
  %2341 = call i32 @isatty(i32 noundef %2340) #9
  %.not260 = icmp eq i32 %2341, 0
  br i1 %.not260, label %2342, label %2343

2342:                                             ; preds = %2338, %2331
  br label %2343

2343:                                             ; preds = %2338, %2342
  %.str.4.sink1205 = phi ptr [ @.str.4, %2342 ], [ @.str, %2338 ]
  store i32 %2333, ptr %2332, align 4, !tbaa !5
  %2344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2345 = load i32, ptr @test_count, align 4, !tbaa !5
  %2346 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2347 = load i32, ptr %2346, align 4, !tbaa !5
  %2348 = call ptr @s2n_strerror(i32 noundef %2347, ptr noundef nonnull @.str.3) #9
  %2349 = load i32, ptr %2346, align 4, !tbaa !5
  %2350 = call ptr @s2n_strerror_debug(i32 noundef %2349, ptr noundef nonnull @.str.3) #9
  %2351 = load i32, ptr %2332, align 4, !tbaa !5
  %2352 = call ptr @strerror(i32 noundef %2351) #9
  %2353 = load i32, ptr %2332, align 4, !tbaa !5
  %2354 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2344, ptr noundef nonnull %.str.4.sink1205, i32 noundef %2345, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.2, i32 noundef 321, ptr noundef %2348, ptr noundef %2350, ptr noundef %2352, i32 noundef %2353) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2355:                                             ; preds = %2328
  %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 %2369

2358:                                             ; preds = %2355
  %2359 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2360 = call i32 @fileno(ptr noundef %2359) #9
  %2361 = call i32 @isatty(i32 noundef %2360) #9
  %.not257 = icmp eq i32 %2361, 0
  br i1 %.not257, label %2369, label %2362

2362:                                             ; preds = %2358
  %2363 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not259 = icmp eq i32 %2363, 0
  %2364 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not259, label %2367, label %2365

2365:                                             ; preds = %2362
  %2366 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2364, ptr noundef nonnull @.str.61, i32 noundef %2363) #9
  br label %2376

2367:                                             ; preds = %2362
  %2368 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2364, ptr noundef nonnull @.str.62) #9
  br label %2376

2369:                                             ; preds = %2358, %2355
  %2370 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not258 = icmp eq i32 %2370, 0
  %2371 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not258, label %2374, label %2372

2372:                                             ; preds = %2369
  %2373 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2371, ptr noundef nonnull @.str.63, i32 noundef %2370) #9
  br label %2376

2374:                                             ; preds = %2369
  %2375 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2371, ptr noundef nonnull @.str.64) #9
  br label %2376

2376:                                             ; preds = %2372, %2374, %2365, %2367
  ret i32 0
}

; Function Attrs: nofree nounwind
declare noundef i32 @fflush(ptr nocapture noundef) local_unnamed_addr #5

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) local_unnamed_addr #3

declare i32 @s2n_enable_atexit() local_unnamed_addr #3

declare i32 @s2n_init() local_unnamed_addr #3

declare ptr @s2n_connection_new(i32 noundef) local_unnamed_addr #3

declare i32 @s2n_test_cert_chain_and_key_new(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #3

; Function Attrs: nounwind uwtable
declare hidden i32 @test_size(ptr noundef, ptr noundef) #0

; Function Attrs: nounwind uwtable
declare hidden i32 @test_sign(ptr noundef, i32 noundef, ptr noundef, ptr noundef) #0

declare i32 @s2n_client_cert_verify_send(ptr noundef) local_unnamed_addr #3

declare i32 @s2n_stuffer_read_uint16(ptr noundef, ptr noundef) local_unnamed_addr #3

declare ptr @s2n_stuffer_raw_read(ptr noundef, i32 noundef) local_unnamed_addr #3

declare i32 @s2n_connection_free(ptr noundef) local_unnamed_addr #3

declare i32 @s2n_cert_chain_and_key_free(ptr noundef) local_unnamed_addr #3

declare ptr @s2n_config_new() local_unnamed_addr #3

declare i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef, ptr noundef) local_unnamed_addr #3

declare i32 @s2n_config_set_async_pkey_callback(ptr noundef, ptr noundef) local_unnamed_addr #3

declare i32 @s2n_config_set_unsafe_for_testing(ptr noundef) local_unnamed_addr #3

declare i32 @s2n_config_set_cipher_preferences(ptr noundef, ptr noundef) local_unnamed_addr #3

declare i32 @s2n_config_set_async_pkey_validation_mode(ptr noundef, i32 noundef) local_unnamed_addr #3

declare i32 @s2n_connection_set_config(ptr noundef, ptr noundef) local_unnamed_addr #3

declare i32 @s2n_connection_set_client_auth_type(ptr noundef, i32 noundef) local_unnamed_addr #3

declare i32 @s2n_io_pair_init_non_blocking(ptr noundef) local_unnamed_addr #3

declare i32 @s2n_connection_set_io_pair(ptr noundef, ptr noundef) local_unnamed_addr #3

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_try_handshake_with_async_pkey_op(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #0

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_test_negotiate_with_async_pkey_op_handler(ptr noundef, ptr noundef) #0

declare i32 @s2n_connection_client_cert_used(ptr noundef) local_unnamed_addr #3

declare i32 @s2n_io_pair_close(ptr noundef) local_unnamed_addr #3

declare i32 @s2n_config_free(ptr noundef) local_unnamed_addr #3

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_test_apply_with_invalid_signature_handler(ptr noundef, ptr noundef) #0

declare i32 @s2n_cleanup() local_unnamed_addr #3

; Function Attrs: nofree nounwind willreturn memory(argmem: read)
declare i32 @bcmp(ptr nocapture, ptr nocapture, i64) local_unnamed_addr #8

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"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 1536}
!16 = !{!"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, !17, i64 160, !18, i64 168, !18, 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, !19, i64 240, !10, i64 632, !10, i64 640, !20, i64 648, !26, i64 1144, !29, i64 1688, !10, i64 1752, !7, i64 1760, !6, i64 1764, !7, i64 1768, !32, i64 1776, !32, i64 1816, !32, i64 1856, !32, i64 1896, !6, i64 1936, !18, i64 1944, !7, i64 1952, !32, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !33, i64 2004, !33, i64 2008, !34, i64 2016, !31, i64 2208, !6, i64 2212, !31, i64 2216, !18, i64 2224, !7, i64 2232, !18, i64 2240, !18, i64 2248, !18, i64 2256, !33, i64 2264, !33, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !25, i64 2792, !6, i64 2816, !25, i64 2824, !25, i64 2848, !25, i64 2872, !36, i64 2896, !38, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !25, i64 3784, !6, i64 3808, !40, i64 3816, !7, i64 3848, !32, i64 3992, !25, i64 4032, !25, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !31, i64 4084, !31, i64 4086, !6, i64 4088, !6, i64 4092, !25, i64 4096, !6, i64 4120, !41, i64 4128, !33, i64 4176, !7, i64 4180, !7, i64 4181}
!17 = !{!"s2n_timer", !18, i64 0}
!18 = !{!"long", !7, i64 0}
!19 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!20 = !{!"s2n_kex_parameters", !21, i64 0, !22, i64 8, !7, i64 24, !22, i64 56, !23, i64 72, !23, i64 184, !7, i64 296, !24, i64 360, !25, i64 448, !25, i64 472}
!21 = !{!"s2n_dh_params", !10, i64 0}
!22 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!23 = !{!"s2n_kem_group_params", !10, i64 0, !24, i64 8, !22, i64 96}
!24 = !{!"s2n_kem_params", !10, i64 0, !25, i64 8, !25, i64 32, !25, i64 56, !12, i64 80}
!25 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!26 = !{!"s2n_handshake_parameters", !27, i64 0, !27, i64 48, !25, i64 96, !6, i64 120, !28, 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}
!27 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!28 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!29 = !{!"s2n_psk_parameters", !6, i64 0, !30, i64 8, !31, i64 40, !31, i64 42, !10, i64 48, !6, i64 56}
!30 = !{!"s2n_array", !25, i64 0, !6, i64 24, !6, i64 28}
!31 = !{!"short", !7, i64 0}
!32 = !{!"s2n_stuffer", !25, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!33 = !{!"", !6, i64 0}
!34 = !{!"s2n_handshake", !32, 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, !35, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!35 = !{!"s2n_offered_early_data", !10, i64 0}
!36 = !{!"s2n_client_hello", !25, i64 0, !37, i64 24, !25, i64 728, !25, i64 752, !25, 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}
!37 = !{!"", !7, i64 0, !25, i64 672, !31, i64 696}
!38 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !31, i64 18, !10, i64 24, !6, i64 32, !10, i64 40, !39, i64 48, !12, i64 52}
!39 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!40 = !{!"s2n_ticket_fields", !25, i64 0, !6, i64 24}
!41 = !{!"s2n_post_handshake", !32, i64 0, !7, i64 40}
!42 = !{!43, !10, i64 8}
!43 = !{!"s2n_cert_chain_and_key", !10, i64 0, !10, i64 8, !25, i64 16, !25, i64 40, !10, i64 64, !10, i64 72, !10, i64 80}
!44 = !{!27, !10, i64 8}
!45 = !{!27, !10, i64 16}
!46 = !{!16, !10, i64 1544}
!47 = !{!31, !31, i64 0}
!48 = !{!49, !31, i64 0}
!49 = !{!"s2n_signature_scheme", !31, i64 0, !10, i64 8, !6, i64 16, !6, i64 20, !7, i64 24, !7, i64 25, !31, i64 26, !10, i64 32}
!50 = !{!16, !6, i64 2044}
!51 = !{!16, !6, i64 2040}
!52 = !{!16, !7, i64 220}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,PostOrderFunctionAttrsPass,SROAPass,SimplifyCFGPass,TailCallElimPass