; LLVM IR from aws/s2n-tls :: tests/unit (s2n_tls13_support_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_cipher_suite = type { i8, ptr, ptr, [2 x i8], ptr, i32, ptr, [2 x ptr], i8, ptr, ptr, i32, i8 }
%struct.s2n_stuffer = type { %struct.s2n_blob, i32, i32, i32, i8 }
%struct.s2n_blob = type { ptr, i32, i32, 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_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_x509_validator = type { ptr, ptr, i8, i8, i16, ptr, i32, ptr, %struct.s2n_cert_validation_info, i8 }
%struct.s2n_cert_validation_info = type { i8, [3 x i8] }
%struct.s2n_ticket_fields = type { %struct.s2n_blob, i32 }
%struct.s2n_post_handshake = type { %struct.s2n_stuffer, [4 x i8] }
%struct.s2n_atomic_flag = type { i32 }
%struct.s2n_extension_type_list = type { ptr, i8 }
%struct.s2n_extension_type = type { i16, i8, i16, ptr, ptr, ptr, ptr }

@s2n_use_color_in_output = external dso_local global i8, align 1
@test_count = external dso_local global i32, align 4
@stdout = external global ptr, align 8
@.str = external hidden unnamed_addr constant [19 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [81 x i8], align 1
@stderr = external global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [52 x i8], align 1
@s2n_errno = external thread_local global i32, align 4
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [53 x i8], align 1
@__const.main.value = external hidden unnamed_addr constant [2 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [49 x i8], align 1
@s2n_dhe_rsa_with_3des_ede_cbc_sha = external global %struct.s2n_cipher_suite, align 8
@.str.24 = external hidden unnamed_addr constant [88 x i8], align 1
@s2n_tls13_aes_128_gcm_sha256 = external global %struct.s2n_cipher_suite, align 8
@.str.25 = external hidden unnamed_addr constant [80 x i8], align 1
@s2n_tls13_aes_256_gcm_sha384 = external global %struct.s2n_cipher_suite, align 8
@.str.26 = external hidden unnamed_addr constant [80 x i8], align 1
@s2n_tls13_chacha20_poly1305_sha256 = external global %struct.s2n_cipher_suite, align 8
@.str.27 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [127 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [135 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [118 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [109 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [106 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [25 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local i32 @main(i32 noundef %0, ptr noundef %1) #0 {
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca i32, align 4
  %11 = alloca ptr, align 8
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %14 = alloca ptr, align 8
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca ptr, align 8
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca ptr, align 8
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca ptr, align 8
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca ptr, align 8
  %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 ptr, align 8
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca i32, align 4
  %46 = alloca i32, align 4
  %47 = alloca [2 x i8], align 1
  %48 = alloca i32, 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 ptr, align 8
  %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 i32, align 4
  %67 = alloca %struct.s2n_stuffer, align 8
  %68 = alloca i32, align 4
  %69 = alloca i32, align 4
  %70 = alloca %struct.s2n_parsed_extensions_list, align 8
  %71 = alloca i64, align 8
  %72 = alloca ptr, align 8
  %73 = alloca i8, align 1
  %74 = alloca i32, align 4
  %75 = alloca ptr, align 8
  %76 = alloca i32, align 4
  %77 = alloca i32, align 4
  %78 = alloca i32, align 4
  %79 = alloca i32, align 4
  %80 = alloca i32, align 4
  %81 = alloca i32, align 4
  %82 = alloca i32, align 4
  %83 = alloca i32, align 4
  %84 = 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 %85

85:                                               ; preds = %2
  br label %86

86:                                               ; preds = %85
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %87 = load ptr, ptr @stdout, align 8, !tbaa !9
  %88 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %87, ptr noundef @.str, ptr noundef @.str.1) #9
  %89 = load ptr, ptr @stdout, align 8, !tbaa !9
  %90 = call i32 @fflush(ptr noundef %89)
  br label %91

91:                                               ; preds = %86
  %92 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %93 = icmp eq i32 %92, -1
  br i1 %93, label %94, label %145

94:                                               ; preds = %91
  br label %95

95:                                               ; preds = %94
  br label %96

96:                                               ; preds = %95
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #9
  %97 = call ptr @__errno_location() #10
  %98 = load i32, ptr %97, align 4, !tbaa !5
  store i32 %98, ptr %6, align 4, !tbaa !5
  %99 = load ptr, ptr @stderr, align 8, !tbaa !9
  %100 = call i32 @s2n_print_stacktrace(ptr noundef %99)
  %101 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %102 = trunc i8 %101 to i1
  br i1 %102, label %103, label %125

103:                                              ; preds = %96
  %104 = load ptr, ptr @stderr, align 8, !tbaa !9
  %105 = call i32 @fileno(ptr noundef %104) #9
  %106 = call i32 @isatty(i32 noundef %105) #9
  %107 = icmp ne i32 %106, 0
  br i1 %107, label %108, label %125

108:                                              ; preds = %103
  %109 = load i32, ptr %6, align 4, !tbaa !5
  %110 = call ptr @__errno_location() #10
  store i32 %109, ptr %110, align 4, !tbaa !5
  %111 = load ptr, ptr @stderr, align 8, !tbaa !9
  %112 = load i32, ptr @test_count, align 4, !tbaa !5
  %113 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %114 = load i32, ptr %113, align 4, !tbaa !5
  %115 = call ptr @s2n_strerror(i32 noundef %114, ptr noundef @.str.4)
  %116 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %117 = load i32, ptr %116, align 4, !tbaa !5
  %118 = call ptr @s2n_strerror_debug(i32 noundef %117, ptr noundef @.str.4)
  %119 = call ptr @__errno_location() #10
  %120 = load i32, ptr %119, align 4, !tbaa !5
  %121 = call ptr @strerror(i32 noundef %120) #9
  %122 = call ptr @__errno_location() #10
  %123 = load i32, ptr %122, align 4, !tbaa !5
  %124 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %111, ptr noundef @.str.2, i32 noundef %112, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 30, ptr noundef %115, ptr noundef %118, ptr noundef %121, i32 noundef %123) #9
  br label %142

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

142:                                              ; preds = %125, %108
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #9
  br label %143

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

144:                                              ; No predecessors!
  br label %145

145:                                              ; preds = %144, %91
  br label %146

146:                                              ; preds = %145
  br label %147

147:                                              ; preds = %146
  %148 = load i32, ptr @test_count, align 4, !tbaa !5
  %149 = add nsw i32 %148, 1
  store i32 %149, ptr @test_count, align 4, !tbaa !5
  %150 = call i32 @s2n_enable_atexit()
  %151 = icmp eq i32 %150, -1
  br i1 %151, label %152, label %203

152:                                              ; preds = %147
  br label %153

153:                                              ; preds = %152
  br label %154

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

161:                                              ; preds = %154
  %162 = load ptr, ptr @stderr, align 8, !tbaa !9
  %163 = call i32 @fileno(ptr noundef %162) #9
  %164 = call i32 @isatty(i32 noundef %163) #9
  %165 = icmp ne i32 %164, 0
  br i1 %165, label %166, label %183

166:                                              ; preds = %161
  %167 = load i32, ptr %7, align 4, !tbaa !5
  %168 = call ptr @__errno_location() #10
  store i32 %167, ptr %168, align 4, !tbaa !5
  %169 = load ptr, ptr @stderr, align 8, !tbaa !9
  %170 = load i32, ptr @test_count, align 4, !tbaa !5
  %171 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %172 = load i32, ptr %171, align 4, !tbaa !5
  %173 = call ptr @s2n_strerror(i32 noundef %172, ptr noundef @.str.4)
  %174 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %175 = load i32, ptr %174, align 4, !tbaa !5
  %176 = call ptr @s2n_strerror_debug(i32 noundef %175, ptr noundef @.str.4)
  %177 = call ptr @__errno_location() #10
  %178 = load i32, ptr %177, align 4, !tbaa !5
  %179 = call ptr @strerror(i32 noundef %178) #9
  %180 = call ptr @__errno_location() #10
  %181 = load i32, ptr %180, align 4, !tbaa !5
  %182 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %169, ptr noundef @.str.2, i32 noundef %170, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 30, ptr noundef %173, ptr noundef %176, ptr noundef %179, i32 noundef %181) #9
  br label %200

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

200:                                              ; preds = %183, %166
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #9
  br label %201

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

202:                                              ; No predecessors!
  br label %203

203:                                              ; preds = %202, %147
  br label %204

204:                                              ; preds = %203
  br label %205

205:                                              ; preds = %204
  br label %206

206:                                              ; preds = %205
  %207 = call i32 @s2n_init()
  %208 = icmp eq i32 %207, -1
  br i1 %208, label %209, label %260

209:                                              ; preds = %206
  br label %210

210:                                              ; preds = %209
  br label %211

211:                                              ; preds = %210
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #9
  %212 = call ptr @__errno_location() #10
  %213 = load i32, ptr %212, align 4, !tbaa !5
  store i32 %213, ptr %8, align 4, !tbaa !5
  %214 = load ptr, ptr @stderr, align 8, !tbaa !9
  %215 = call i32 @s2n_print_stacktrace(ptr noundef %214)
  %216 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %217 = trunc i8 %216 to i1
  br i1 %217, label %218, label %240

218:                                              ; preds = %211
  %219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %220 = call i32 @fileno(ptr noundef %219) #9
  %221 = call i32 @isatty(i32 noundef %220) #9
  %222 = icmp ne i32 %221, 0
  br i1 %222, label %223, label %240

223:                                              ; preds = %218
  %224 = load i32, ptr %8, align 4, !tbaa !5
  %225 = call ptr @__errno_location() #10
  store i32 %224, ptr %225, align 4, !tbaa !5
  %226 = load ptr, ptr @stderr, align 8, !tbaa !9
  %227 = load i32, ptr @test_count, align 4, !tbaa !5
  %228 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %229 = load i32, ptr %228, align 4, !tbaa !5
  %230 = call ptr @s2n_strerror(i32 noundef %229, ptr noundef @.str.4)
  %231 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %232 = load i32, ptr %231, align 4, !tbaa !5
  %233 = call ptr @s2n_strerror_debug(i32 noundef %232, ptr noundef @.str.4)
  %234 = call ptr @__errno_location() #10
  %235 = load i32, ptr %234, align 4, !tbaa !5
  %236 = call ptr @strerror(i32 noundef %235) #9
  %237 = call ptr @__errno_location() #10
  %238 = load i32, ptr %237, align 4, !tbaa !5
  %239 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %226, ptr noundef @.str.2, i32 noundef %227, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 30, ptr noundef %230, ptr noundef %233, ptr noundef %236, i32 noundef %238) #9
  br label %257

240:                                              ; preds = %218, %211
  %241 = load i32, ptr %8, align 4, !tbaa !5
  %242 = call ptr @__errno_location() #10
  store i32 %241, ptr %242, align 4, !tbaa !5
  %243 = load ptr, ptr @stderr, align 8, !tbaa !9
  %244 = load i32, ptr @test_count, align 4, !tbaa !5
  %245 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %246 = load i32, ptr %245, align 4, !tbaa !5
  %247 = call ptr @s2n_strerror(i32 noundef %246, ptr noundef @.str.4)
  %248 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %249 = load i32, ptr %248, align 4, !tbaa !5
  %250 = call ptr @s2n_strerror_debug(i32 noundef %249, ptr noundef @.str.4)
  %251 = call ptr @__errno_location() #10
  %252 = load i32, ptr %251, align 4, !tbaa !5
  %253 = call ptr @strerror(i32 noundef %252) #9
  %254 = call ptr @__errno_location() #10
  %255 = load i32, ptr %254, align 4, !tbaa !5
  %256 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %243, ptr noundef @.str.5, i32 noundef %244, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 30, ptr noundef %247, ptr noundef %250, ptr noundef %253, i32 noundef %255) #9
  br label %257

257:                                              ; preds = %240, %223
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #9
  br label %258

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

259:                                              ; No predecessors!
  br label %260

260:                                              ; preds = %259, %206
  br label %261

261:                                              ; preds = %260
  br label %262

262:                                              ; preds = %261
  br label %263

263:                                              ; preds = %262
  %264 = load i32, ptr @test_count, align 4, !tbaa !5
  %265 = add nsw i32 %264, 1
  store i32 %265, ptr @test_count, align 4, !tbaa !5
  %266 = call i32 (...) @s2n_disable_tls13_in_test()
  %267 = icmp eq i32 %266, -1
  br i1 %267, label %268, label %319

268:                                              ; preds = %263
  br label %269

269:                                              ; preds = %268
  br label %270

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

277:                                              ; preds = %270
  %278 = load ptr, ptr @stderr, align 8, !tbaa !9
  %279 = call i32 @fileno(ptr noundef %278) #9
  %280 = call i32 @isatty(i32 noundef %279) #9
  %281 = icmp ne i32 %280, 0
  br i1 %281, label %282, label %299

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

299:                                              ; preds = %277, %270
  %300 = load i32, ptr %9, align 4, !tbaa !5
  %301 = call ptr @__errno_location() #10
  store i32 %300, ptr %301, align 4, !tbaa !5
  %302 = load ptr, ptr @stderr, align 8, !tbaa !9
  %303 = load i32, ptr @test_count, align 4, !tbaa !5
  %304 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %305 = load i32, ptr %304, align 4, !tbaa !5
  %306 = call ptr @s2n_strerror(i32 noundef %305, ptr noundef @.str.4)
  %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_debug(i32 noundef %308, ptr noundef @.str.4)
  %310 = call ptr @__errno_location() #10
  %311 = load i32, ptr %310, align 4, !tbaa !5
  %312 = call ptr @strerror(i32 noundef %311) #9
  %313 = call ptr @__errno_location() #10
  %314 = load i32, ptr %313, align 4, !tbaa !5
  %315 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %302, ptr noundef @.str.5, i32 noundef %303, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 31, ptr noundef %306, ptr noundef %309, ptr noundef %312, i32 noundef %314) #9
  br label %316

316:                                              ; preds = %299, %282
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #9
  br label %317

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

318:                                              ; No predecessors!
  br label %319

319:                                              ; preds = %318, %263
  br label %320

320:                                              ; preds = %319
  br label %321

321:                                              ; preds = %320
  %322 = load i32, ptr @test_count, align 4, !tbaa !5
  %323 = add nsw i32 %322, 1
  store i32 %323, ptr @test_count, align 4, !tbaa !5
  %324 = call zeroext i1 (...) @s2n_use_default_tls13_config()
  br i1 %324, label %325, label %376

325:                                              ; preds = %321
  br label %326

326:                                              ; preds = %325
  br label %327

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

334:                                              ; preds = %327
  %335 = load ptr, ptr @stderr, align 8, !tbaa !9
  %336 = call i32 @fileno(ptr noundef %335) #9
  %337 = call i32 @isatty(i32 noundef %336) #9
  %338 = icmp ne i32 %337, 0
  br i1 %338, label %339, label %356

339:                                              ; preds = %334
  %340 = load i32, ptr %10, align 4, !tbaa !5
  %341 = call ptr @__errno_location() #10
  store i32 %340, ptr %341, align 4, !tbaa !5
  %342 = load ptr, ptr @stderr, align 8, !tbaa !9
  %343 = load i32, ptr @test_count, align 4, !tbaa !5
  %344 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %345 = load i32, ptr %344, align 4, !tbaa !5
  %346 = call ptr @s2n_strerror(i32 noundef %345, ptr noundef @.str.4)
  %347 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %348 = load i32, ptr %347, align 4, !tbaa !5
  %349 = call ptr @s2n_strerror_debug(i32 noundef %348, ptr noundef @.str.4)
  %350 = call ptr @__errno_location() #10
  %351 = load i32, ptr %350, align 4, !tbaa !5
  %352 = call ptr @strerror(i32 noundef %351) #9
  %353 = call ptr @__errno_location() #10
  %354 = load i32, ptr %353, align 4, !tbaa !5
  %355 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %342, ptr noundef @.str.2, i32 noundef %343, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 34, ptr noundef %346, ptr noundef %349, ptr noundef %352, i32 noundef %354) #9
  br label %373

356:                                              ; preds = %334, %327
  %357 = load i32, ptr %10, align 4, !tbaa !5
  %358 = call ptr @__errno_location() #10
  store i32 %357, ptr %358, align 4, !tbaa !5
  %359 = load ptr, ptr @stderr, align 8, !tbaa !9
  %360 = load i32, ptr @test_count, align 4, !tbaa !5
  %361 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %362 = load i32, ptr %361, align 4, !tbaa !5
  %363 = call ptr @s2n_strerror(i32 noundef %362, ptr noundef @.str.4)
  %364 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %365 = load i32, ptr %364, align 4, !tbaa !5
  %366 = call ptr @s2n_strerror_debug(i32 noundef %365, ptr noundef @.str.4)
  %367 = call ptr @__errno_location() #10
  %368 = load i32, ptr %367, align 4, !tbaa !5
  %369 = call ptr @strerror(i32 noundef %368) #9
  %370 = call ptr @__errno_location() #10
  %371 = load i32, ptr %370, align 4, !tbaa !5
  %372 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %359, ptr noundef @.str.5, i32 noundef %360, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 34, ptr noundef %363, ptr noundef %366, ptr noundef %369, i32 noundef %371) #9
  br label %373

373:                                              ; preds = %356, %339
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #9
  br label %374

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

375:                                              ; No predecessors!
  br label %376

376:                                              ; preds = %375, %321
  br label %377

377:                                              ; preds = %376
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #9
  store ptr null, ptr %11, align 8, !tbaa !9
  br label %378

378:                                              ; preds = %377
  %379 = load i32, ptr @test_count, align 4, !tbaa !5
  %380 = add nsw i32 %379, 1
  store i32 %380, ptr @test_count, align 4, !tbaa !5
  %381 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %381, ptr %11, align 8, !tbaa !9
  %382 = icmp eq ptr %381, null
  br i1 %382, label %383, label %436

383:                                              ; preds = %378
  br label %384

384:                                              ; preds = %383
  br label %385

385:                                              ; preds = %384
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #9
  %386 = call ptr @__errno_location() #10
  %387 = load i32, ptr %386, align 4, !tbaa !5
  store i32 %387, ptr %12, align 4, !tbaa !5
  %388 = load ptr, ptr @stderr, align 8, !tbaa !9
  %389 = call i32 @s2n_print_stacktrace(ptr noundef %388)
  %390 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %391 = trunc i8 %390 to i1
  br i1 %391, label %392, label %414

392:                                              ; preds = %385
  %393 = load ptr, ptr @stderr, align 8, !tbaa !9
  %394 = call i32 @fileno(ptr noundef %393) #9
  %395 = call i32 @isatty(i32 noundef %394) #9
  %396 = icmp ne i32 %395, 0
  br i1 %396, label %397, label %414

397:                                              ; preds = %392
  %398 = load i32, ptr %12, align 4, !tbaa !5
  %399 = call ptr @__errno_location() #10
  store i32 %398, ptr %399, align 4, !tbaa !5
  %400 = load ptr, ptr @stderr, align 8, !tbaa !9
  %401 = load i32, ptr @test_count, align 4, !tbaa !5
  %402 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %403 = load i32, ptr %402, align 4, !tbaa !5
  %404 = call ptr @s2n_strerror(i32 noundef %403, ptr noundef @.str.4)
  %405 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %406 = load i32, ptr %405, align 4, !tbaa !5
  %407 = call ptr @s2n_strerror_debug(i32 noundef %406, ptr noundef @.str.4)
  %408 = call ptr @__errno_location() #10
  %409 = load i32, ptr %408, align 4, !tbaa !5
  %410 = call ptr @strerror(i32 noundef %409) #9
  %411 = call ptr @__errno_location() #10
  %412 = load i32, ptr %411, align 4, !tbaa !5
  %413 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %400, ptr noundef @.str.2, i32 noundef %401, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 41, ptr noundef %404, ptr noundef %407, ptr noundef %410, i32 noundef %412) #9
  br label %431

414:                                              ; preds = %392, %385
  %415 = load i32, ptr %12, align 4, !tbaa !5
  %416 = call ptr @__errno_location() #10
  store i32 %415, ptr %416, align 4, !tbaa !5
  %417 = load ptr, ptr @stderr, align 8, !tbaa !9
  %418 = load i32, ptr @test_count, align 4, !tbaa !5
  %419 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %420 = load i32, ptr %419, align 4, !tbaa !5
  %421 = call ptr @s2n_strerror(i32 noundef %420, ptr noundef @.str.4)
  %422 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %423 = load i32, ptr %422, align 4, !tbaa !5
  %424 = call ptr @s2n_strerror_debug(i32 noundef %423, ptr noundef @.str.4)
  %425 = call ptr @__errno_location() #10
  %426 = load i32, ptr %425, align 4, !tbaa !5
  %427 = call ptr @strerror(i32 noundef %426) #9
  %428 = call ptr @__errno_location() #10
  %429 = load i32, ptr %428, align 4, !tbaa !5
  %430 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %417, ptr noundef @.str.5, i32 noundef %418, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 41, ptr noundef %421, ptr noundef %424, ptr noundef %427, i32 noundef %429) #9
  br label %431

431:                                              ; preds = %414, %397
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #9
  br label %432

432:                                              ; preds = %431
  br label %433

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

434:                                              ; No predecessors!
  br label %435

435:                                              ; preds = %434
  br label %436

436:                                              ; preds = %435, %378
  br label %437

437:                                              ; preds = %436
  br label %438

438:                                              ; preds = %437
  br label %439

439:                                              ; preds = %438
  %440 = load i32, ptr @test_count, align 4, !tbaa !5
  %441 = add nsw i32 %440, 1
  store i32 %441, ptr @test_count, align 4, !tbaa !5
  %442 = load ptr, ptr %11, align 8, !tbaa !9
  %443 = getelementptr inbounds %struct.s2n_connection, ptr %442, i32 0, i32 21
  %444 = load i8, ptr %443, align 2, !tbaa !15
  %445 = zext i8 %444 to i32
  %446 = icmp eq i32 %445, 34
  br i1 %446, label %447, label %500

447:                                              ; preds = %439
  br label %448

448:                                              ; preds = %447
  br label %449

449:                                              ; preds = %448
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #9
  %450 = call ptr @__errno_location() #10
  %451 = load i32, ptr %450, align 4, !tbaa !5
  store i32 %451, ptr %13, align 4, !tbaa !5
  %452 = load ptr, ptr @stderr, align 8, !tbaa !9
  %453 = call i32 @s2n_print_stacktrace(ptr noundef %452)
  %454 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %455 = trunc i8 %454 to i1
  br i1 %455, label %456, label %478

456:                                              ; preds = %449
  %457 = load ptr, ptr @stderr, align 8, !tbaa !9
  %458 = call i32 @fileno(ptr noundef %457) #9
  %459 = call i32 @isatty(i32 noundef %458) #9
  %460 = icmp ne i32 %459, 0
  br i1 %460, label %461, label %478

461:                                              ; preds = %456
  %462 = load i32, ptr %13, align 4, !tbaa !5
  %463 = call ptr @__errno_location() #10
  store i32 %462, ptr %463, align 4, !tbaa !5
  %464 = load ptr, ptr @stderr, align 8, !tbaa !9
  %465 = load i32, ptr @test_count, align 4, !tbaa !5
  %466 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %467 = load i32, ptr %466, align 4, !tbaa !5
  %468 = call ptr @s2n_strerror(i32 noundef %467, ptr noundef @.str.4)
  %469 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %470 = load i32, ptr %469, align 4, !tbaa !5
  %471 = call ptr @s2n_strerror_debug(i32 noundef %470, ptr noundef @.str.4)
  %472 = call ptr @__errno_location() #10
  %473 = load i32, ptr %472, align 4, !tbaa !5
  %474 = call ptr @strerror(i32 noundef %473) #9
  %475 = call ptr @__errno_location() #10
  %476 = load i32, ptr %475, align 4, !tbaa !5
  %477 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %464, ptr noundef @.str.2, i32 noundef %465, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 43, ptr noundef %468, ptr noundef %471, ptr noundef %474, i32 noundef %476) #9
  br label %495

478:                                              ; preds = %456, %449
  %479 = load i32, ptr %13, align 4, !tbaa !5
  %480 = call ptr @__errno_location() #10
  store i32 %479, ptr %480, align 4, !tbaa !5
  %481 = load ptr, ptr @stderr, align 8, !tbaa !9
  %482 = load i32, ptr @test_count, align 4, !tbaa !5
  %483 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %484 = load i32, ptr %483, align 4, !tbaa !5
  %485 = call ptr @s2n_strerror(i32 noundef %484, ptr noundef @.str.4)
  %486 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %487 = load i32, ptr %486, align 4, !tbaa !5
  %488 = call ptr @s2n_strerror_debug(i32 noundef %487, ptr noundef @.str.4)
  %489 = call ptr @__errno_location() #10
  %490 = load i32, ptr %489, align 4, !tbaa !5
  %491 = call ptr @strerror(i32 noundef %490) #9
  %492 = call ptr @__errno_location() #10
  %493 = load i32, ptr %492, align 4, !tbaa !5
  %494 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %481, ptr noundef @.str.5, i32 noundef %482, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 43, ptr noundef %485, ptr noundef %488, ptr noundef %491, i32 noundef %493) #9
  br label %495

495:                                              ; preds = %478, %461
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #9
  br label %496

496:                                              ; preds = %495
  br label %497

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

498:                                              ; No predecessors!
  br label %499

499:                                              ; preds = %498
  br label %500

500:                                              ; preds = %499, %439
  br label %501

501:                                              ; preds = %500
  br label %502

502:                                              ; preds = %501
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #9
  store ptr null, ptr %14, align 8, !tbaa !9
  br label %503

503:                                              ; preds = %502
  %504 = load i32, ptr @test_count, align 4, !tbaa !5
  %505 = add nsw i32 %504, 1
  store i32 %505, ptr @test_count, align 4, !tbaa !5
  %506 = load ptr, ptr %11, align 8, !tbaa !9
  %507 = call i32 @s2n_connection_get_security_policy(ptr noundef %506, ptr noundef %14)
  %508 = icmp eq i32 %507, -1
  br i1 %508, label %509, label %562

509:                                              ; preds = %503
  br label %510

510:                                              ; preds = %509
  br label %511

511:                                              ; preds = %510
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #9
  %512 = call ptr @__errno_location() #10
  %513 = load i32, ptr %512, align 4, !tbaa !5
  store i32 %513, ptr %15, align 4, !tbaa !5
  %514 = load ptr, ptr @stderr, align 8, !tbaa !9
  %515 = call i32 @s2n_print_stacktrace(ptr noundef %514)
  %516 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %517 = trunc i8 %516 to i1
  br i1 %517, label %518, label %540

518:                                              ; preds = %511
  %519 = load ptr, ptr @stderr, align 8, !tbaa !9
  %520 = call i32 @fileno(ptr noundef %519) #9
  %521 = call i32 @isatty(i32 noundef %520) #9
  %522 = icmp ne i32 %521, 0
  br i1 %522, label %523, label %540

523:                                              ; preds = %518
  %524 = load i32, ptr %15, align 4, !tbaa !5
  %525 = call ptr @__errno_location() #10
  store i32 %524, ptr %525, 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 @.str.4)
  %531 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %532 = load i32, ptr %531, align 4, !tbaa !5
  %533 = call ptr @s2n_strerror_debug(i32 noundef %532, ptr noundef @.str.4)
  %534 = call ptr @__errno_location() #10
  %535 = load i32, ptr %534, align 4, !tbaa !5
  %536 = call ptr @strerror(i32 noundef %535) #9
  %537 = call ptr @__errno_location() #10
  %538 = load i32, ptr %537, align 4, !tbaa !5
  %539 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %526, ptr noundef @.str.2, i32 noundef %527, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 46, ptr noundef %530, ptr noundef %533, ptr noundef %536, i32 noundef %538) #9
  br label %557

540:                                              ; preds = %518, %511
  %541 = load i32, ptr %15, align 4, !tbaa !5
  %542 = call ptr @__errno_location() #10
  store i32 %541, ptr %542, align 4, !tbaa !5
  %543 = load ptr, ptr @stderr, align 8, !tbaa !9
  %544 = load i32, ptr @test_count, align 4, !tbaa !5
  %545 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %546 = load i32, ptr %545, align 4, !tbaa !5
  %547 = call ptr @s2n_strerror(i32 noundef %546, ptr noundef @.str.4)
  %548 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %549 = load i32, ptr %548, align 4, !tbaa !5
  %550 = call ptr @s2n_strerror_debug(i32 noundef %549, ptr noundef @.str.4)
  %551 = call ptr @__errno_location() #10
  %552 = load i32, ptr %551, align 4, !tbaa !5
  %553 = call ptr @strerror(i32 noundef %552) #9
  %554 = call ptr @__errno_location() #10
  %555 = load i32, ptr %554, align 4, !tbaa !5
  %556 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %543, ptr noundef @.str.5, i32 noundef %544, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 46, ptr noundef %547, ptr noundef %550, ptr noundef %553, i32 noundef %555) #9
  br label %557

557:                                              ; preds = %540, %523
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #9
  br label %558

558:                                              ; preds = %557
  br label %559

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

560:                                              ; No predecessors!
  br label %561

561:                                              ; preds = %560
  br label %562

562:                                              ; preds = %561, %503
  br label %563

563:                                              ; preds = %562
  br label %564

564:                                              ; preds = %563
  br label %565

565:                                              ; preds = %564
  %566 = load i32, ptr @test_count, align 4, !tbaa !5
  %567 = add nsw i32 %566, 1
  store i32 %567, ptr @test_count, align 4, !tbaa !5
  %568 = load ptr, ptr %14, align 8, !tbaa !9
  %569 = call zeroext i1 @s2n_security_policy_supports_tls13(ptr noundef %568)
  br i1 %569, label %570, label %623

570:                                              ; preds = %565
  br label %571

571:                                              ; preds = %570
  br label %572

572:                                              ; preds = %571
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #9
  %573 = call ptr @__errno_location() #10
  %574 = load i32, ptr %573, align 4, !tbaa !5
  store i32 %574, ptr %16, align 4, !tbaa !5
  %575 = load ptr, ptr @stderr, align 8, !tbaa !9
  %576 = call i32 @s2n_print_stacktrace(ptr noundef %575)
  %577 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %578 = trunc i8 %577 to i1
  br i1 %578, label %579, label %601

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
  %583 = icmp ne i32 %582, 0
  br i1 %583, label %584, label %601

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

601:                                              ; preds = %579, %572
  %602 = load i32, ptr %16, align 4, !tbaa !5
  %603 = call ptr @__errno_location() #10
  store i32 %602, ptr %603, align 4, !tbaa !5
  %604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %605 = load i32, ptr @test_count, align 4, !tbaa !5
  %606 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %607 = load i32, ptr %606, align 4, !tbaa !5
  %608 = call ptr @s2n_strerror(i32 noundef %607, ptr noundef @.str.4)
  %609 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %610 = load i32, ptr %609, align 4, !tbaa !5
  %611 = call ptr @s2n_strerror_debug(i32 noundef %610, ptr noundef @.str.4)
  %612 = call ptr @__errno_location() #10
  %613 = load i32, ptr %612, align 4, !tbaa !5
  %614 = call ptr @strerror(i32 noundef %613) #9
  %615 = call ptr @__errno_location() #10
  %616 = load i32, ptr %615, align 4, !tbaa !5
  %617 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %604, ptr noundef @.str.5, i32 noundef %605, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 47, ptr noundef %608, ptr noundef %611, ptr noundef %614, i32 noundef %616) #9
  br label %618

618:                                              ; preds = %601, %584
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #9
  br label %619

619:                                              ; preds = %618
  br label %620

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

621:                                              ; No predecessors!
  br label %622

622:                                              ; preds = %621
  br label %623

623:                                              ; preds = %622, %565
  br label %624

624:                                              ; preds = %623
  br label %625

625:                                              ; preds = %624
  br label %626

626:                                              ; preds = %625
  %627 = load i32, ptr @test_count, align 4, !tbaa !5
  %628 = add nsw i32 %627, 1
  store i32 %628, ptr @test_count, align 4, !tbaa !5
  %629 = load ptr, ptr %11, align 8, !tbaa !9
  %630 = call i32 @s2n_connection_free(ptr noundef %629)
  %631 = icmp eq i32 %630, -1
  br i1 %631, label %632, label %685

632:                                              ; preds = %626
  br label %633

633:                                              ; preds = %632
  br label %634

634:                                              ; preds = %633
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #9
  %635 = call ptr @__errno_location() #10
  %636 = load i32, ptr %635, align 4, !tbaa !5
  store i32 %636, ptr %17, align 4, !tbaa !5
  %637 = load ptr, ptr @stderr, align 8, !tbaa !9
  %638 = call i32 @s2n_print_stacktrace(ptr noundef %637)
  %639 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %640 = trunc i8 %639 to i1
  br i1 %640, label %641, label %663

641:                                              ; preds = %634
  %642 = load ptr, ptr @stderr, align 8, !tbaa !9
  %643 = call i32 @fileno(ptr noundef %642) #9
  %644 = call i32 @isatty(i32 noundef %643) #9
  %645 = icmp ne i32 %644, 0
  br i1 %645, label %646, label %663

646:                                              ; preds = %641
  %647 = load i32, ptr %17, align 4, !tbaa !5
  %648 = call ptr @__errno_location() #10
  store i32 %647, ptr %648, align 4, !tbaa !5
  %649 = load ptr, ptr @stderr, align 8, !tbaa !9
  %650 = load i32, ptr @test_count, align 4, !tbaa !5
  %651 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %652 = load i32, ptr %651, align 4, !tbaa !5
  %653 = call ptr @s2n_strerror(i32 noundef %652, ptr noundef @.str.4)
  %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_debug(i32 noundef %655, ptr noundef @.str.4)
  %657 = call ptr @__errno_location() #10
  %658 = load i32, ptr %657, align 4, !tbaa !5
  %659 = call ptr @strerror(i32 noundef %658) #9
  %660 = call ptr @__errno_location() #10
  %661 = load i32, ptr %660, align 4, !tbaa !5
  %662 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %649, ptr noundef @.str.2, i32 noundef %650, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 49, ptr noundef %653, ptr noundef %656, ptr noundef %659, i32 noundef %661) #9
  br label %680

663:                                              ; preds = %641, %634
  %664 = load i32, ptr %17, align 4, !tbaa !5
  %665 = call ptr @__errno_location() #10
  store i32 %664, ptr %665, align 4, !tbaa !5
  %666 = load ptr, ptr @stderr, align 8, !tbaa !9
  %667 = load i32, ptr @test_count, align 4, !tbaa !5
  %668 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %669 = load i32, ptr %668, align 4, !tbaa !5
  %670 = call ptr @s2n_strerror(i32 noundef %669, ptr noundef @.str.4)
  %671 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %672 = load i32, ptr %671, align 4, !tbaa !5
  %673 = call ptr @s2n_strerror_debug(i32 noundef %672, ptr noundef @.str.4)
  %674 = call ptr @__errno_location() #10
  %675 = load i32, ptr %674, align 4, !tbaa !5
  %676 = call ptr @strerror(i32 noundef %675) #9
  %677 = call ptr @__errno_location() #10
  %678 = load i32, ptr %677, align 4, !tbaa !5
  %679 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %666, ptr noundef @.str.5, i32 noundef %667, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 49, ptr noundef %670, ptr noundef %673, ptr noundef %676, i32 noundef %678) #9
  br label %680

680:                                              ; preds = %663, %646
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #9
  br label %681

681:                                              ; preds = %680
  br label %682

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

683:                                              ; No predecessors!
  br label %684

684:                                              ; preds = %683
  br label %685

685:                                              ; preds = %684, %626
  br label %686

686:                                              ; preds = %685
  br label %687

687:                                              ; preds = %686
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #9
  store ptr null, ptr %18, align 8, !tbaa !9
  br label %688

688:                                              ; preds = %687
  %689 = load i32, ptr @test_count, align 4, !tbaa !5
  %690 = add nsw i32 %689, 1
  store i32 %690, ptr @test_count, align 4, !tbaa !5
  %691 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %691, ptr %18, align 8, !tbaa !9
  %692 = icmp eq ptr %691, null
  br i1 %692, label %693, label %746

693:                                              ; preds = %688
  br label %694

694:                                              ; preds = %693
  br label %695

695:                                              ; preds = %694
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #9
  %696 = call ptr @__errno_location() #10
  %697 = load i32, ptr %696, align 4, !tbaa !5
  store i32 %697, ptr %19, align 4, !tbaa !5
  %698 = load ptr, ptr @stderr, align 8, !tbaa !9
  %699 = call i32 @s2n_print_stacktrace(ptr noundef %698)
  %700 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %701 = trunc i8 %700 to i1
  br i1 %701, label %702, label %724

702:                                              ; preds = %695
  %703 = load ptr, ptr @stderr, align 8, !tbaa !9
  %704 = call i32 @fileno(ptr noundef %703) #9
  %705 = call i32 @isatty(i32 noundef %704) #9
  %706 = icmp ne i32 %705, 0
  br i1 %706, label %707, label %724

707:                                              ; preds = %702
  %708 = load i32, ptr %19, align 4, !tbaa !5
  %709 = call ptr @__errno_location() #10
  store i32 %708, ptr %709, align 4, !tbaa !5
  %710 = load ptr, ptr @stderr, align 8, !tbaa !9
  %711 = load i32, ptr @test_count, align 4, !tbaa !5
  %712 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %713 = load i32, ptr %712, align 4, !tbaa !5
  %714 = call ptr @s2n_strerror(i32 noundef %713, ptr noundef @.str.4)
  %715 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %716 = load i32, ptr %715, align 4, !tbaa !5
  %717 = call ptr @s2n_strerror_debug(i32 noundef %716, ptr noundef @.str.4)
  %718 = call ptr @__errno_location() #10
  %719 = load i32, ptr %718, align 4, !tbaa !5
  %720 = call ptr @strerror(i32 noundef %719) #9
  %721 = call ptr @__errno_location() #10
  %722 = load i32, ptr %721, align 4, !tbaa !5
  %723 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %710, ptr noundef @.str.2, i32 noundef %711, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 55, ptr noundef %714, ptr noundef %717, ptr noundef %720, i32 noundef %722) #9
  br label %741

724:                                              ; preds = %702, %695
  %725 = load i32, ptr %19, align 4, !tbaa !5
  %726 = call ptr @__errno_location() #10
  store i32 %725, ptr %726, align 4, !tbaa !5
  %727 = load ptr, ptr @stderr, align 8, !tbaa !9
  %728 = load i32, ptr @test_count, align 4, !tbaa !5
  %729 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %730 = load i32, ptr %729, align 4, !tbaa !5
  %731 = call ptr @s2n_strerror(i32 noundef %730, ptr noundef @.str.4)
  %732 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %733 = load i32, ptr %732, align 4, !tbaa !5
  %734 = call ptr @s2n_strerror_debug(i32 noundef %733, ptr noundef @.str.4)
  %735 = call ptr @__errno_location() #10
  %736 = load i32, ptr %735, align 4, !tbaa !5
  %737 = call ptr @strerror(i32 noundef %736) #9
  %738 = call ptr @__errno_location() #10
  %739 = load i32, ptr %738, align 4, !tbaa !5
  %740 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %727, ptr noundef @.str.5, i32 noundef %728, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 55, ptr noundef %731, ptr noundef %734, ptr noundef %737, i32 noundef %739) #9
  br label %741

741:                                              ; preds = %724, %707
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #9
  br label %742

742:                                              ; preds = %741
  br label %743

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

744:                                              ; No predecessors!
  br label %745

745:                                              ; preds = %744
  br label %746

746:                                              ; preds = %745, %688
  br label %747

747:                                              ; preds = %746
  br label %748

748:                                              ; preds = %747
  br label %749

749:                                              ; preds = %748
  %750 = load i32, ptr @test_count, align 4, !tbaa !5
  %751 = add nsw i32 %750, 1
  store i32 %751, ptr @test_count, align 4, !tbaa !5
  %752 = load ptr, ptr %18, align 8, !tbaa !9
  %753 = getelementptr inbounds %struct.s2n_connection, ptr %752, i32 0, i32 22
  %754 = load i8, ptr %753, align 1, !tbaa !42
  %755 = zext i8 %754 to i32
  %756 = icmp eq i32 %755, 34
  br i1 %756, label %757, label %810

757:                                              ; preds = %749
  br label %758

758:                                              ; preds = %757
  br label %759

759:                                              ; preds = %758
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #9
  %760 = call ptr @__errno_location() #10
  %761 = load i32, ptr %760, align 4, !tbaa !5
  store i32 %761, ptr %20, align 4, !tbaa !5
  %762 = load ptr, ptr @stderr, align 8, !tbaa !9
  %763 = call i32 @s2n_print_stacktrace(ptr noundef %762)
  %764 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %765 = trunc i8 %764 to i1
  br i1 %765, label %766, label %788

766:                                              ; preds = %759
  %767 = load ptr, ptr @stderr, align 8, !tbaa !9
  %768 = call i32 @fileno(ptr noundef %767) #9
  %769 = call i32 @isatty(i32 noundef %768) #9
  %770 = icmp ne i32 %769, 0
  br i1 %770, label %771, label %788

771:                                              ; preds = %766
  %772 = load i32, ptr %20, align 4, !tbaa !5
  %773 = call ptr @__errno_location() #10
  store i32 %772, ptr %773, align 4, !tbaa !5
  %774 = load ptr, ptr @stderr, align 8, !tbaa !9
  %775 = load i32, ptr @test_count, align 4, !tbaa !5
  %776 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %777 = load i32, ptr %776, align 4, !tbaa !5
  %778 = call ptr @s2n_strerror(i32 noundef %777, ptr noundef @.str.4)
  %779 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %780 = load i32, ptr %779, align 4, !tbaa !5
  %781 = call ptr @s2n_strerror_debug(i32 noundef %780, ptr noundef @.str.4)
  %782 = call ptr @__errno_location() #10
  %783 = load i32, ptr %782, align 4, !tbaa !5
  %784 = call ptr @strerror(i32 noundef %783) #9
  %785 = call ptr @__errno_location() #10
  %786 = load i32, ptr %785, align 4, !tbaa !5
  %787 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %774, ptr noundef @.str.2, i32 noundef %775, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 57, ptr noundef %778, ptr noundef %781, ptr noundef %784, i32 noundef %786) #9
  br label %805

788:                                              ; preds = %766, %759
  %789 = load i32, ptr %20, align 4, !tbaa !5
  %790 = call ptr @__errno_location() #10
  store i32 %789, ptr %790, align 4, !tbaa !5
  %791 = load ptr, ptr @stderr, align 8, !tbaa !9
  %792 = load i32, ptr @test_count, align 4, !tbaa !5
  %793 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %794 = load i32, ptr %793, align 4, !tbaa !5
  %795 = call ptr @s2n_strerror(i32 noundef %794, ptr noundef @.str.4)
  %796 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %797 = load i32, ptr %796, align 4, !tbaa !5
  %798 = call ptr @s2n_strerror_debug(i32 noundef %797, ptr noundef @.str.4)
  %799 = call ptr @__errno_location() #10
  %800 = load i32, ptr %799, align 4, !tbaa !5
  %801 = call ptr @strerror(i32 noundef %800) #9
  %802 = call ptr @__errno_location() #10
  %803 = load i32, ptr %802, align 4, !tbaa !5
  %804 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %791, ptr noundef @.str.5, i32 noundef %792, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 57, ptr noundef %795, ptr noundef %798, ptr noundef %801, i32 noundef %803) #9
  br label %805

805:                                              ; preds = %788, %771
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #9
  br label %806

806:                                              ; preds = %805
  br label %807

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

808:                                              ; No predecessors!
  br label %809

809:                                              ; preds = %808
  br label %810

810:                                              ; preds = %809, %749
  br label %811

811:                                              ; preds = %810
  br label %812

812:                                              ; preds = %811
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #9
  store ptr null, ptr %21, align 8, !tbaa !9
  br label %813

813:                                              ; preds = %812
  %814 = load i32, ptr @test_count, align 4, !tbaa !5
  %815 = add nsw i32 %814, 1
  store i32 %815, ptr @test_count, align 4, !tbaa !5
  %816 = load ptr, ptr %18, align 8, !tbaa !9
  %817 = call i32 @s2n_connection_get_security_policy(ptr noundef %816, ptr noundef %21)
  %818 = icmp eq i32 %817, -1
  br i1 %818, label %819, label %872

819:                                              ; preds = %813
  br label %820

820:                                              ; preds = %819
  br label %821

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

828:                                              ; preds = %821
  %829 = load ptr, ptr @stderr, align 8, !tbaa !9
  %830 = call i32 @fileno(ptr noundef %829) #9
  %831 = call i32 @isatty(i32 noundef %830) #9
  %832 = icmp ne i32 %831, 0
  br i1 %832, label %833, label %850

833:                                              ; preds = %828
  %834 = load i32, ptr %22, align 4, !tbaa !5
  %835 = call ptr @__errno_location() #10
  store i32 %834, ptr %835, align 4, !tbaa !5
  %836 = load ptr, ptr @stderr, align 8, !tbaa !9
  %837 = load i32, ptr @test_count, align 4, !tbaa !5
  %838 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %839 = load i32, ptr %838, align 4, !tbaa !5
  %840 = call ptr @s2n_strerror(i32 noundef %839, ptr noundef @.str.4)
  %841 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %842 = load i32, ptr %841, align 4, !tbaa !5
  %843 = call ptr @s2n_strerror_debug(i32 noundef %842, ptr noundef @.str.4)
  %844 = call ptr @__errno_location() #10
  %845 = load i32, ptr %844, align 4, !tbaa !5
  %846 = call ptr @strerror(i32 noundef %845) #9
  %847 = call ptr @__errno_location() #10
  %848 = load i32, ptr %847, align 4, !tbaa !5
  %849 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %836, ptr noundef @.str.2, i32 noundef %837, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 60, ptr noundef %840, ptr noundef %843, ptr noundef %846, i32 noundef %848) #9
  br label %867

850:                                              ; preds = %828, %821
  %851 = load i32, ptr %22, align 4, !tbaa !5
  %852 = call ptr @__errno_location() #10
  store i32 %851, ptr %852, align 4, !tbaa !5
  %853 = load ptr, ptr @stderr, align 8, !tbaa !9
  %854 = load i32, ptr @test_count, align 4, !tbaa !5
  %855 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %856 = load i32, ptr %855, align 4, !tbaa !5
  %857 = call ptr @s2n_strerror(i32 noundef %856, ptr noundef @.str.4)
  %858 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %859 = load i32, ptr %858, align 4, !tbaa !5
  %860 = call ptr @s2n_strerror_debug(i32 noundef %859, ptr noundef @.str.4)
  %861 = call ptr @__errno_location() #10
  %862 = load i32, ptr %861, align 4, !tbaa !5
  %863 = call ptr @strerror(i32 noundef %862) #9
  %864 = call ptr @__errno_location() #10
  %865 = load i32, ptr %864, align 4, !tbaa !5
  %866 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %853, ptr noundef @.str.5, i32 noundef %854, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 60, ptr noundef %857, ptr noundef %860, ptr noundef %863, i32 noundef %865) #9
  br label %867

867:                                              ; preds = %850, %833
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #9
  br label %868

868:                                              ; preds = %867
  br label %869

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

870:                                              ; No predecessors!
  br label %871

871:                                              ; preds = %870
  br label %872

872:                                              ; preds = %871, %813
  br label %873

873:                                              ; preds = %872
  br label %874

874:                                              ; preds = %873
  br label %875

875:                                              ; preds = %874
  %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 %21, align 8, !tbaa !9
  %879 = call zeroext i1 @s2n_security_policy_supports_tls13(ptr noundef %878)
  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.4)
  %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.4)
  %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.2, i32 noundef %898, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 61, 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.4)
  %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.4)
  %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.5, i32 noundef %915, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 61, 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
  %937 = load i32, ptr @test_count, align 4, !tbaa !5
  %938 = add nsw i32 %937, 1
  store i32 %938, ptr @test_count, align 4, !tbaa !5
  %939 = load ptr, ptr %18, align 8, !tbaa !9
  %940 = call i32 @s2n_connection_free(ptr noundef %939)
  %941 = icmp eq i32 %940, -1
  br i1 %941, label %942, label %995

942:                                              ; preds = %936
  br label %943

943:                                              ; preds = %942
  br label %944

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

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

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

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

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

991:                                              ; preds = %990
  br label %992

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

993:                                              ; No predecessors!
  br label %994

994:                                              ; preds = %993
  br label %995

995:                                              ; preds = %994, %936
  br label %996

996:                                              ; preds = %995
  br label %997

997:                                              ; preds = %996
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #9
  br label %998

998:                                              ; preds = %997
  %999 = load i32, ptr @test_count, align 4, !tbaa !5
  %1000 = add nsw i32 %999, 1
  store i32 %1000, ptr @test_count, align 4, !tbaa !5
  %1001 = call i32 (...) @s2n_enable_tls13_in_test()
  %1002 = icmp eq i32 %1001, -1
  br i1 %1002, label %1003, label %1054

1003:                                             ; preds = %998
  br label %1004

1004:                                             ; preds = %1003
  br label %1005

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

1012:                                             ; preds = %1005
  %1013 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1014 = call i32 @fileno(ptr noundef %1013) #9
  %1015 = call i32 @isatty(i32 noundef %1014) #9
  %1016 = icmp ne i32 %1015, 0
  br i1 %1016, label %1017, label %1034

1017:                                             ; preds = %1012
  %1018 = load i32, ptr %25, align 4, !tbaa !5
  %1019 = call ptr @__errno_location() #10
  store i32 %1018, ptr %1019, align 4, !tbaa !5
  %1020 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1021 = load i32, ptr @test_count, align 4, !tbaa !5
  %1022 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1023 = load i32, ptr %1022, align 4, !tbaa !5
  %1024 = call ptr @s2n_strerror(i32 noundef %1023, ptr noundef @.str.4)
  %1025 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1026 = load i32, ptr %1025, align 4, !tbaa !5
  %1027 = call ptr @s2n_strerror_debug(i32 noundef %1026, ptr noundef @.str.4)
  %1028 = call ptr @__errno_location() #10
  %1029 = load i32, ptr %1028, align 4, !tbaa !5
  %1030 = call ptr @strerror(i32 noundef %1029) #9
  %1031 = call ptr @__errno_location() #10
  %1032 = load i32, ptr %1031, align 4, !tbaa !5
  %1033 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1020, ptr noundef @.str.2, i32 noundef %1021, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 67, ptr noundef %1024, ptr noundef %1027, ptr noundef %1030, i32 noundef %1032) #9
  br label %1051

1034:                                             ; preds = %1012, %1005
  %1035 = load i32, ptr %25, align 4, !tbaa !5
  %1036 = call ptr @__errno_location() #10
  store i32 %1035, ptr %1036, align 4, !tbaa !5
  %1037 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1038 = load i32, ptr @test_count, align 4, !tbaa !5
  %1039 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1040 = load i32, ptr %1039, align 4, !tbaa !5
  %1041 = call ptr @s2n_strerror(i32 noundef %1040, ptr noundef @.str.4)
  %1042 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1043 = load i32, ptr %1042, align 4, !tbaa !5
  %1044 = call ptr @s2n_strerror_debug(i32 noundef %1043, ptr noundef @.str.4)
  %1045 = call ptr @__errno_location() #10
  %1046 = load i32, ptr %1045, align 4, !tbaa !5
  %1047 = call ptr @strerror(i32 noundef %1046) #9
  %1048 = call ptr @__errno_location() #10
  %1049 = load i32, ptr %1048, align 4, !tbaa !5
  %1050 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1037, ptr noundef @.str.5, i32 noundef %1038, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 67, ptr noundef %1041, ptr noundef %1044, ptr noundef %1047, i32 noundef %1049) #9
  br label %1051

1051:                                             ; preds = %1034, %1017
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #9
  br label %1052

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

1053:                                             ; No predecessors!
  br label %1054

1054:                                             ; preds = %1053, %998
  br label %1055

1055:                                             ; preds = %1054
  br label %1056

1056:                                             ; preds = %1055
  %1057 = load i32, ptr @test_count, align 4, !tbaa !5
  %1058 = add nsw i32 %1057, 1
  store i32 %1058, ptr @test_count, align 4, !tbaa !5
  %1059 = call zeroext i1 (...) @s2n_use_default_tls13_config()
  br i1 %1059, label %1111, label %1060

1060:                                             ; preds = %1056
  br label %1061

1061:                                             ; preds = %1060
  br label %1062

1062:                                             ; preds = %1061
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #9
  %1063 = call ptr @__errno_location() #10
  %1064 = load i32, ptr %1063, align 4, !tbaa !5
  store i32 %1064, ptr %26, align 4, !tbaa !5
  %1065 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1066 = call i32 @s2n_print_stacktrace(ptr noundef %1065)
  %1067 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1068 = trunc i8 %1067 to i1
  br i1 %1068, label %1069, label %1091

1069:                                             ; preds = %1062
  %1070 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1071 = call i32 @fileno(ptr noundef %1070) #9
  %1072 = call i32 @isatty(i32 noundef %1071) #9
  %1073 = icmp ne i32 %1072, 0
  br i1 %1073, label %1074, label %1091

1074:                                             ; preds = %1069
  %1075 = load i32, ptr %26, align 4, !tbaa !5
  %1076 = call ptr @__errno_location() #10
  store i32 %1075, ptr %1076, 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 @.str.4)
  %1082 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1083 = load i32, ptr %1082, align 4, !tbaa !5
  %1084 = call ptr @s2n_strerror_debug(i32 noundef %1083, ptr noundef @.str.4)
  %1085 = call ptr @__errno_location() #10
  %1086 = load i32, ptr %1085, align 4, !tbaa !5
  %1087 = call ptr @strerror(i32 noundef %1086) #9
  %1088 = call ptr @__errno_location() #10
  %1089 = load i32, ptr %1088, align 4, !tbaa !5
  %1090 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1077, ptr noundef @.str.2, i32 noundef %1078, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 68, ptr noundef %1081, ptr noundef %1084, ptr noundef %1087, i32 noundef %1089) #9
  br label %1108

1091:                                             ; preds = %1069, %1062
  %1092 = load i32, ptr %26, align 4, !tbaa !5
  %1093 = call ptr @__errno_location() #10
  store i32 %1092, ptr %1093, align 4, !tbaa !5
  %1094 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1095 = load i32, ptr @test_count, align 4, !tbaa !5
  %1096 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1097 = load i32, ptr %1096, align 4, !tbaa !5
  %1098 = call ptr @s2n_strerror(i32 noundef %1097, ptr noundef @.str.4)
  %1099 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1100 = load i32, ptr %1099, align 4, !tbaa !5
  %1101 = call ptr @s2n_strerror_debug(i32 noundef %1100, ptr noundef @.str.4)
  %1102 = call ptr @__errno_location() #10
  %1103 = load i32, ptr %1102, align 4, !tbaa !5
  %1104 = call ptr @strerror(i32 noundef %1103) #9
  %1105 = call ptr @__errno_location() #10
  %1106 = load i32, ptr %1105, align 4, !tbaa !5
  %1107 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1094, ptr noundef @.str.5, i32 noundef %1095, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 68, ptr noundef %1098, ptr noundef %1101, ptr noundef %1104, i32 noundef %1106) #9
  br label %1108

1108:                                             ; preds = %1091, %1074
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #9
  br label %1109

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

1110:                                             ; No predecessors!
  br label %1111

1111:                                             ; preds = %1110, %1056
  br label %1112

1112:                                             ; preds = %1111
  br label %1113

1113:                                             ; preds = %1112
  %1114 = load i32, ptr @test_count, align 4, !tbaa !5
  %1115 = add nsw i32 %1114, 1
  store i32 %1115, ptr @test_count, align 4, !tbaa !5
  %1116 = call i32 (...) @s2n_enable_tls13_in_test()
  %1117 = icmp eq i32 %1116, -1
  br i1 %1117, label %1118, label %1169

1118:                                             ; preds = %1113
  br label %1119

1119:                                             ; preds = %1118
  br label %1120

1120:                                             ; preds = %1119
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #9
  %1121 = call ptr @__errno_location() #10
  %1122 = load i32, ptr %1121, align 4, !tbaa !5
  store i32 %1122, ptr %27, align 4, !tbaa !5
  %1123 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1124 = call i32 @s2n_print_stacktrace(ptr noundef %1123)
  %1125 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1126 = trunc i8 %1125 to i1
  br i1 %1126, label %1127, label %1149

1127:                                             ; preds = %1120
  %1128 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1129 = call i32 @fileno(ptr noundef %1128) #9
  %1130 = call i32 @isatty(i32 noundef %1129) #9
  %1131 = icmp ne i32 %1130, 0
  br i1 %1131, label %1132, label %1149

1132:                                             ; preds = %1127
  %1133 = load i32, ptr %27, align 4, !tbaa !5
  %1134 = call ptr @__errno_location() #10
  store i32 %1133, ptr %1134, align 4, !tbaa !5
  %1135 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1136 = load i32, ptr @test_count, align 4, !tbaa !5
  %1137 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1138 = load i32, ptr %1137, align 4, !tbaa !5
  %1139 = call ptr @s2n_strerror(i32 noundef %1138, ptr noundef @.str.4)
  %1140 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1141 = load i32, ptr %1140, align 4, !tbaa !5
  %1142 = call ptr @s2n_strerror_debug(i32 noundef %1141, ptr noundef @.str.4)
  %1143 = call ptr @__errno_location() #10
  %1144 = load i32, ptr %1143, align 4, !tbaa !5
  %1145 = call ptr @strerror(i32 noundef %1144) #9
  %1146 = call ptr @__errno_location() #10
  %1147 = load i32, ptr %1146, align 4, !tbaa !5
  %1148 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1135, ptr noundef @.str.2, i32 noundef %1136, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 71, ptr noundef %1139, ptr noundef %1142, ptr noundef %1145, i32 noundef %1147) #9
  br label %1166

1149:                                             ; preds = %1127, %1120
  %1150 = load i32, ptr %27, align 4, !tbaa !5
  %1151 = call ptr @__errno_location() #10
  store i32 %1150, ptr %1151, align 4, !tbaa !5
  %1152 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1153 = load i32, ptr @test_count, align 4, !tbaa !5
  %1154 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1155 = load i32, ptr %1154, align 4, !tbaa !5
  %1156 = call ptr @s2n_strerror(i32 noundef %1155, ptr noundef @.str.4)
  %1157 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1158 = load i32, ptr %1157, align 4, !tbaa !5
  %1159 = call ptr @s2n_strerror_debug(i32 noundef %1158, ptr noundef @.str.4)
  %1160 = call ptr @__errno_location() #10
  %1161 = load i32, ptr %1160, align 4, !tbaa !5
  %1162 = call ptr @strerror(i32 noundef %1161) #9
  %1163 = call ptr @__errno_location() #10
  %1164 = load i32, ptr %1163, align 4, !tbaa !5
  %1165 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1152, ptr noundef @.str.5, i32 noundef %1153, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 71, ptr noundef %1156, ptr noundef %1159, ptr noundef %1162, i32 noundef %1164) #9
  br label %1166

1166:                                             ; preds = %1149, %1132
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #9
  br label %1167

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

1168:                                             ; No predecessors!
  br label %1169

1169:                                             ; preds = %1168, %1113
  br label %1170

1170:                                             ; preds = %1169
  br label %1171

1171:                                             ; preds = %1170
  %1172 = load i32, ptr @test_count, align 4, !tbaa !5
  %1173 = add nsw i32 %1172, 1
  store i32 %1173, ptr @test_count, align 4, !tbaa !5
  %1174 = call zeroext i1 (...) @s2n_use_default_tls13_config()
  br i1 %1174, label %1226, label %1175

1175:                                             ; preds = %1171
  br label %1176

1176:                                             ; preds = %1175
  br label %1177

1177:                                             ; preds = %1176
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #9
  %1178 = call ptr @__errno_location() #10
  %1179 = load i32, ptr %1178, align 4, !tbaa !5
  store i32 %1179, ptr %28, align 4, !tbaa !5
  %1180 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1181 = call i32 @s2n_print_stacktrace(ptr noundef %1180)
  %1182 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1183 = trunc i8 %1182 to i1
  br i1 %1183, label %1184, label %1206

1184:                                             ; preds = %1177
  %1185 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1186 = call i32 @fileno(ptr noundef %1185) #9
  %1187 = call i32 @isatty(i32 noundef %1186) #9
  %1188 = icmp ne i32 %1187, 0
  br i1 %1188, label %1189, label %1206

1189:                                             ; preds = %1184
  %1190 = load i32, ptr %28, align 4, !tbaa !5
  %1191 = call ptr @__errno_location() #10
  store i32 %1190, ptr %1191, align 4, !tbaa !5
  %1192 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1193 = load i32, ptr @test_count, align 4, !tbaa !5
  %1194 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1195 = load i32, ptr %1194, align 4, !tbaa !5
  %1196 = call ptr @s2n_strerror(i32 noundef %1195, ptr noundef @.str.4)
  %1197 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1198 = load i32, ptr %1197, align 4, !tbaa !5
  %1199 = call ptr @s2n_strerror_debug(i32 noundef %1198, ptr noundef @.str.4)
  %1200 = call ptr @__errno_location() #10
  %1201 = load i32, ptr %1200, align 4, !tbaa !5
  %1202 = call ptr @strerror(i32 noundef %1201) #9
  %1203 = call ptr @__errno_location() #10
  %1204 = load i32, ptr %1203, align 4, !tbaa !5
  %1205 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1192, ptr noundef @.str.2, i32 noundef %1193, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 72, ptr noundef %1196, ptr noundef %1199, ptr noundef %1202, i32 noundef %1204) #9
  br label %1223

1206:                                             ; preds = %1184, %1177
  %1207 = load i32, ptr %28, align 4, !tbaa !5
  %1208 = call ptr @__errno_location() #10
  store i32 %1207, ptr %1208, align 4, !tbaa !5
  %1209 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1210 = load i32, ptr @test_count, align 4, !tbaa !5
  %1211 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1212 = load i32, ptr %1211, align 4, !tbaa !5
  %1213 = call ptr @s2n_strerror(i32 noundef %1212, ptr noundef @.str.4)
  %1214 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1215 = load i32, ptr %1214, align 4, !tbaa !5
  %1216 = call ptr @s2n_strerror_debug(i32 noundef %1215, ptr noundef @.str.4)
  %1217 = call ptr @__errno_location() #10
  %1218 = load i32, ptr %1217, align 4, !tbaa !5
  %1219 = call ptr @strerror(i32 noundef %1218) #9
  %1220 = call ptr @__errno_location() #10
  %1221 = load i32, ptr %1220, align 4, !tbaa !5
  %1222 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1209, ptr noundef @.str.5, i32 noundef %1210, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 72, ptr noundef %1213, ptr noundef %1216, ptr noundef %1219, i32 noundef %1221) #9
  br label %1223

1223:                                             ; preds = %1206, %1189
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #9
  br label %1224

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

1225:                                             ; No predecessors!
  br label %1226

1226:                                             ; preds = %1225, %1171
  br label %1227

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

1228:                                             ; preds = %1227
  %1229 = load i32, ptr @test_count, align 4, !tbaa !5
  %1230 = add nsw i32 %1229, 1
  store i32 %1230, ptr @test_count, align 4, !tbaa !5
  %1231 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %1231, ptr %29, align 8, !tbaa !9
  %1232 = icmp eq ptr %1231, null
  br i1 %1232, label %1233, label %1286

1233:                                             ; preds = %1228
  br label %1234

1234:                                             ; preds = %1233
  br label %1235

1235:                                             ; preds = %1234
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #9
  %1236 = call ptr @__errno_location() #10
  %1237 = load i32, ptr %1236, align 4, !tbaa !5
  store i32 %1237, ptr %30, align 4, !tbaa !5
  %1238 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1239 = call i32 @s2n_print_stacktrace(ptr noundef %1238)
  %1240 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1241 = trunc i8 %1240 to i1
  br i1 %1241, label %1242, label %1264

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
  %1246 = icmp ne i32 %1245, 0
  br i1 %1246, label %1247, label %1264

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

1264:                                             ; preds = %1242, %1235
  %1265 = load i32, ptr %30, align 4, !tbaa !5
  %1266 = call ptr @__errno_location() #10
  store i32 %1265, ptr %1266, align 4, !tbaa !5
  %1267 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1268 = load i32, ptr @test_count, align 4, !tbaa !5
  %1269 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1270 = load i32, ptr %1269, align 4, !tbaa !5
  %1271 = call ptr @s2n_strerror(i32 noundef %1270, ptr noundef @.str.4)
  %1272 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1273 = load i32, ptr %1272, align 4, !tbaa !5
  %1274 = call ptr @s2n_strerror_debug(i32 noundef %1273, ptr noundef @.str.4)
  %1275 = call ptr @__errno_location() #10
  %1276 = load i32, ptr %1275, align 4, !tbaa !5
  %1277 = call ptr @strerror(i32 noundef %1276) #9
  %1278 = call ptr @__errno_location() #10
  %1279 = load i32, ptr %1278, align 4, !tbaa !5
  %1280 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1267, ptr noundef @.str.5, i32 noundef %1268, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 79, ptr noundef %1271, ptr noundef %1274, ptr noundef %1277, i32 noundef %1279) #9
  br label %1281

1281:                                             ; preds = %1264, %1247
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #9
  br label %1282

1282:                                             ; preds = %1281
  br label %1283

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

1284:                                             ; No predecessors!
  br label %1285

1285:                                             ; preds = %1284
  br label %1286

1286:                                             ; preds = %1285, %1228
  br label %1287

1287:                                             ; preds = %1286
  br label %1288

1288:                                             ; preds = %1287
  br label %1289

1289:                                             ; preds = %1288
  %1290 = load i32, ptr @test_count, align 4, !tbaa !5
  %1291 = add nsw i32 %1290, 1
  store i32 %1291, ptr @test_count, align 4, !tbaa !5
  %1292 = load ptr, ptr %29, align 8, !tbaa !9
  %1293 = getelementptr inbounds %struct.s2n_connection, ptr %1292, i32 0, i32 21
  %1294 = load i8, ptr %1293, align 2, !tbaa !15
  %1295 = zext i8 %1294 to i32
  %1296 = icmp eq i32 %1295, 34
  br i1 %1296, label %1350, label %1297

1297:                                             ; preds = %1289
  br label %1298

1298:                                             ; preds = %1297
  br label %1299

1299:                                             ; preds = %1298
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #9
  %1300 = call ptr @__errno_location() #10
  %1301 = load i32, ptr %1300, align 4, !tbaa !5
  store i32 %1301, ptr %31, align 4, !tbaa !5
  %1302 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1303 = call i32 @s2n_print_stacktrace(ptr noundef %1302)
  %1304 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1305 = trunc i8 %1304 to i1
  br i1 %1305, label %1306, label %1328

1306:                                             ; preds = %1299
  %1307 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1308 = call i32 @fileno(ptr noundef %1307) #9
  %1309 = call i32 @isatty(i32 noundef %1308) #9
  %1310 = icmp ne i32 %1309, 0
  br i1 %1310, label %1311, label %1328

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

1328:                                             ; preds = %1306, %1299
  %1329 = load i32, ptr %31, align 4, !tbaa !5
  %1330 = call ptr @__errno_location() #10
  store i32 %1329, ptr %1330, align 4, !tbaa !5
  %1331 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1332 = load i32, ptr @test_count, align 4, !tbaa !5
  %1333 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1334 = load i32, ptr %1333, align 4, !tbaa !5
  %1335 = call ptr @s2n_strerror(i32 noundef %1334, ptr noundef @.str.4)
  %1336 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1337 = load i32, ptr %1336, align 4, !tbaa !5
  %1338 = call ptr @s2n_strerror_debug(i32 noundef %1337, ptr noundef @.str.4)
  %1339 = call ptr @__errno_location() #10
  %1340 = load i32, ptr %1339, align 4, !tbaa !5
  %1341 = call ptr @strerror(i32 noundef %1340) #9
  %1342 = call ptr @__errno_location() #10
  %1343 = load i32, ptr %1342, align 4, !tbaa !5
  %1344 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1331, ptr noundef @.str.5, i32 noundef %1332, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 81, ptr noundef %1335, ptr noundef %1338, ptr noundef %1341, i32 noundef %1343) #9
  br label %1345

1345:                                             ; preds = %1328, %1311
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #9
  br label %1346

1346:                                             ; preds = %1345
  br label %1347

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

1348:                                             ; No predecessors!
  br label %1349

1349:                                             ; preds = %1348
  br label %1350

1350:                                             ; preds = %1349, %1289
  br label %1351

1351:                                             ; preds = %1350
  br label %1352

1352:                                             ; preds = %1351
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #9
  store ptr null, ptr %32, align 8, !tbaa !9
  br label %1353

1353:                                             ; preds = %1352
  %1354 = load i32, ptr @test_count, align 4, !tbaa !5
  %1355 = add nsw i32 %1354, 1
  store i32 %1355, ptr @test_count, align 4, !tbaa !5
  %1356 = load ptr, ptr %29, align 8, !tbaa !9
  %1357 = call i32 @s2n_connection_get_security_policy(ptr noundef %1356, ptr noundef %32)
  %1358 = icmp eq i32 %1357, -1
  br i1 %1358, label %1359, label %1412

1359:                                             ; preds = %1353
  br label %1360

1360:                                             ; preds = %1359
  br label %1361

1361:                                             ; preds = %1360
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #9
  %1362 = call ptr @__errno_location() #10
  %1363 = load i32, ptr %1362, align 4, !tbaa !5
  store i32 %1363, ptr %33, align 4, !tbaa !5
  %1364 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1365 = call i32 @s2n_print_stacktrace(ptr noundef %1364)
  %1366 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1367 = trunc i8 %1366 to i1
  br i1 %1367, label %1368, label %1390

1368:                                             ; preds = %1361
  %1369 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1370 = call i32 @fileno(ptr noundef %1369) #9
  %1371 = call i32 @isatty(i32 noundef %1370) #9
  %1372 = icmp ne i32 %1371, 0
  br i1 %1372, label %1373, label %1390

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

1390:                                             ; preds = %1368, %1361
  %1391 = load i32, ptr %33, align 4, !tbaa !5
  %1392 = call ptr @__errno_location() #10
  store i32 %1391, ptr %1392, align 4, !tbaa !5
  %1393 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1394 = load i32, ptr @test_count, align 4, !tbaa !5
  %1395 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1396 = load i32, ptr %1395, align 4, !tbaa !5
  %1397 = call ptr @s2n_strerror(i32 noundef %1396, ptr noundef @.str.4)
  %1398 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1399 = load i32, ptr %1398, align 4, !tbaa !5
  %1400 = call ptr @s2n_strerror_debug(i32 noundef %1399, ptr noundef @.str.4)
  %1401 = call ptr @__errno_location() #10
  %1402 = load i32, ptr %1401, align 4, !tbaa !5
  %1403 = call ptr @strerror(i32 noundef %1402) #9
  %1404 = call ptr @__errno_location() #10
  %1405 = load i32, ptr %1404, align 4, !tbaa !5
  %1406 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1393, ptr noundef @.str.5, i32 noundef %1394, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 84, ptr noundef %1397, ptr noundef %1400, ptr noundef %1403, i32 noundef %1405) #9
  br label %1407

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

1408:                                             ; preds = %1407
  br label %1409

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

1410:                                             ; No predecessors!
  br label %1411

1411:                                             ; preds = %1410
  br label %1412

1412:                                             ; preds = %1411, %1353
  br label %1413

1413:                                             ; preds = %1412
  br label %1414

1414:                                             ; preds = %1413
  br label %1415

1415:                                             ; preds = %1414
  %1416 = load i32, ptr @test_count, align 4, !tbaa !5
  %1417 = add nsw i32 %1416, 1
  store i32 %1417, ptr @test_count, align 4, !tbaa !5
  %1418 = load ptr, ptr %32, align 8, !tbaa !9
  %1419 = call zeroext i1 @s2n_security_policy_supports_tls13(ptr noundef %1418)
  br i1 %1419, label %1473, label %1420

1420:                                             ; preds = %1415
  br label %1421

1421:                                             ; preds = %1420
  br label %1422

1422:                                             ; preds = %1421
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #9
  %1423 = call ptr @__errno_location() #10
  %1424 = load i32, ptr %1423, align 4, !tbaa !5
  store i32 %1424, ptr %34, align 4, !tbaa !5
  %1425 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1426 = call i32 @s2n_print_stacktrace(ptr noundef %1425)
  %1427 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1428 = trunc i8 %1427 to i1
  br i1 %1428, label %1429, label %1451

1429:                                             ; preds = %1422
  %1430 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1431 = call i32 @fileno(ptr noundef %1430) #9
  %1432 = call i32 @isatty(i32 noundef %1431) #9
  %1433 = icmp ne i32 %1432, 0
  br i1 %1433, label %1434, label %1451

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

1451:                                             ; preds = %1429, %1422
  %1452 = load i32, ptr %34, align 4, !tbaa !5
  %1453 = call ptr @__errno_location() #10
  store i32 %1452, ptr %1453, align 4, !tbaa !5
  %1454 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1455 = load i32, ptr @test_count, align 4, !tbaa !5
  %1456 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1457 = load i32, ptr %1456, align 4, !tbaa !5
  %1458 = call ptr @s2n_strerror(i32 noundef %1457, ptr noundef @.str.4)
  %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_debug(i32 noundef %1460, ptr noundef @.str.4)
  %1462 = call ptr @__errno_location() #10
  %1463 = load i32, ptr %1462, align 4, !tbaa !5
  %1464 = call ptr @strerror(i32 noundef %1463) #9
  %1465 = call ptr @__errno_location() #10
  %1466 = load i32, ptr %1465, align 4, !tbaa !5
  %1467 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1454, ptr noundef @.str.5, i32 noundef %1455, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 85, ptr noundef %1458, ptr noundef %1461, ptr noundef %1464, i32 noundef %1466) #9
  br label %1468

1468:                                             ; preds = %1451, %1434
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #9
  br label %1469

1469:                                             ; preds = %1468
  br label %1470

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

1471:                                             ; No predecessors!
  br label %1472

1472:                                             ; preds = %1471
  br label %1473

1473:                                             ; preds = %1472, %1415
  br label %1474

1474:                                             ; preds = %1473
  br label %1475

1475:                                             ; preds = %1474
  br label %1476

1476:                                             ; preds = %1475
  %1477 = load i32, ptr @test_count, align 4, !tbaa !5
  %1478 = add nsw i32 %1477, 1
  store i32 %1478, ptr @test_count, align 4, !tbaa !5
  %1479 = load ptr, ptr %29, align 8, !tbaa !9
  %1480 = call i32 @s2n_connection_free(ptr noundef %1479)
  %1481 = icmp eq i32 %1480, -1
  br i1 %1481, label %1482, label %1535

1482:                                             ; preds = %1476
  br label %1483

1483:                                             ; preds = %1482
  br label %1484

1484:                                             ; preds = %1483
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #9
  %1485 = call ptr @__errno_location() #10
  %1486 = load i32, ptr %1485, align 4, !tbaa !5
  store i32 %1486, ptr %35, align 4, !tbaa !5
  %1487 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1488 = call i32 @s2n_print_stacktrace(ptr noundef %1487)
  %1489 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1490 = trunc i8 %1489 to i1
  br i1 %1490, label %1491, label %1513

1491:                                             ; preds = %1484
  %1492 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1493 = call i32 @fileno(ptr noundef %1492) #9
  %1494 = call i32 @isatty(i32 noundef %1493) #9
  %1495 = icmp ne i32 %1494, 0
  br i1 %1495, label %1496, label %1513

1496:                                             ; preds = %1491
  %1497 = load i32, ptr %35, align 4, !tbaa !5
  %1498 = call ptr @__errno_location() #10
  store i32 %1497, ptr %1498, align 4, !tbaa !5
  %1499 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1500 = load i32, ptr @test_count, align 4, !tbaa !5
  %1501 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1502 = load i32, ptr %1501, align 4, !tbaa !5
  %1503 = call ptr @s2n_strerror(i32 noundef %1502, ptr noundef @.str.4)
  %1504 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1505 = load i32, ptr %1504, align 4, !tbaa !5
  %1506 = call ptr @s2n_strerror_debug(i32 noundef %1505, ptr noundef @.str.4)
  %1507 = call ptr @__errno_location() #10
  %1508 = load i32, ptr %1507, align 4, !tbaa !5
  %1509 = call ptr @strerror(i32 noundef %1508) #9
  %1510 = call ptr @__errno_location() #10
  %1511 = load i32, ptr %1510, align 4, !tbaa !5
  %1512 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1499, ptr noundef @.str.2, i32 noundef %1500, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 87, ptr noundef %1503, ptr noundef %1506, ptr noundef %1509, i32 noundef %1511) #9
  br label %1530

1513:                                             ; preds = %1491, %1484
  %1514 = load i32, ptr %35, align 4, !tbaa !5
  %1515 = call ptr @__errno_location() #10
  store i32 %1514, ptr %1515, align 4, !tbaa !5
  %1516 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1517 = load i32, ptr @test_count, align 4, !tbaa !5
  %1518 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1519 = load i32, ptr %1518, align 4, !tbaa !5
  %1520 = call ptr @s2n_strerror(i32 noundef %1519, ptr noundef @.str.4)
  %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_debug(i32 noundef %1522, ptr noundef @.str.4)
  %1524 = call ptr @__errno_location() #10
  %1525 = load i32, ptr %1524, align 4, !tbaa !5
  %1526 = call ptr @strerror(i32 noundef %1525) #9
  %1527 = call ptr @__errno_location() #10
  %1528 = load i32, ptr %1527, align 4, !tbaa !5
  %1529 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1516, ptr noundef @.str.5, i32 noundef %1517, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 87, ptr noundef %1520, ptr noundef %1523, ptr noundef %1526, i32 noundef %1528) #9
  br label %1530

1530:                                             ; preds = %1513, %1496
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #9
  br label %1531

1531:                                             ; preds = %1530
  br label %1532

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

1533:                                             ; No predecessors!
  br label %1534

1534:                                             ; preds = %1533
  br label %1535

1535:                                             ; preds = %1534, %1476
  br label %1536

1536:                                             ; preds = %1535
  br label %1537

1537:                                             ; preds = %1536
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #9
  store ptr null, ptr %36, align 8, !tbaa !9
  br label %1538

1538:                                             ; preds = %1537
  %1539 = load i32, ptr @test_count, align 4, !tbaa !5
  %1540 = add nsw i32 %1539, 1
  store i32 %1540, ptr @test_count, align 4, !tbaa !5
  %1541 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %1541, ptr %36, align 8, !tbaa !9
  %1542 = icmp eq ptr %1541, null
  br i1 %1542, label %1543, label %1596

1543:                                             ; preds = %1538
  br label %1544

1544:                                             ; preds = %1543
  br label %1545

1545:                                             ; preds = %1544
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #9
  %1546 = call ptr @__errno_location() #10
  %1547 = load i32, ptr %1546, align 4, !tbaa !5
  store i32 %1547, ptr %37, align 4, !tbaa !5
  %1548 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1549 = call i32 @s2n_print_stacktrace(ptr noundef %1548)
  %1550 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1551 = trunc i8 %1550 to i1
  br i1 %1551, label %1552, label %1574

1552:                                             ; preds = %1545
  %1553 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1554 = call i32 @fileno(ptr noundef %1553) #9
  %1555 = call i32 @isatty(i32 noundef %1554) #9
  %1556 = icmp ne i32 %1555, 0
  br i1 %1556, label %1557, label %1574

1557:                                             ; preds = %1552
  %1558 = load i32, ptr %37, align 4, !tbaa !5
  %1559 = call ptr @__errno_location() #10
  store i32 %1558, ptr %1559, align 4, !tbaa !5
  %1560 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1561 = load i32, ptr @test_count, align 4, !tbaa !5
  %1562 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1563 = load i32, ptr %1562, align 4, !tbaa !5
  %1564 = call ptr @s2n_strerror(i32 noundef %1563, ptr noundef @.str.4)
  %1565 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1566 = load i32, ptr %1565, align 4, !tbaa !5
  %1567 = call ptr @s2n_strerror_debug(i32 noundef %1566, ptr noundef @.str.4)
  %1568 = call ptr @__errno_location() #10
  %1569 = load i32, ptr %1568, align 4, !tbaa !5
  %1570 = call ptr @strerror(i32 noundef %1569) #9
  %1571 = call ptr @__errno_location() #10
  %1572 = load i32, ptr %1571, align 4, !tbaa !5
  %1573 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1560, ptr noundef @.str.2, i32 noundef %1561, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 93, ptr noundef %1564, ptr noundef %1567, ptr noundef %1570, i32 noundef %1572) #9
  br label %1591

1574:                                             ; preds = %1552, %1545
  %1575 = load i32, ptr %37, align 4, !tbaa !5
  %1576 = call ptr @__errno_location() #10
  store i32 %1575, ptr %1576, align 4, !tbaa !5
  %1577 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1578 = load i32, ptr @test_count, align 4, !tbaa !5
  %1579 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1580 = load i32, ptr %1579, align 4, !tbaa !5
  %1581 = call ptr @s2n_strerror(i32 noundef %1580, ptr noundef @.str.4)
  %1582 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1583 = load i32, ptr %1582, align 4, !tbaa !5
  %1584 = call ptr @s2n_strerror_debug(i32 noundef %1583, ptr noundef @.str.4)
  %1585 = call ptr @__errno_location() #10
  %1586 = load i32, ptr %1585, align 4, !tbaa !5
  %1587 = call ptr @strerror(i32 noundef %1586) #9
  %1588 = call ptr @__errno_location() #10
  %1589 = load i32, ptr %1588, align 4, !tbaa !5
  %1590 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1577, ptr noundef @.str.5, i32 noundef %1578, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 93, ptr noundef %1581, ptr noundef %1584, ptr noundef %1587, i32 noundef %1589) #9
  br label %1591

1591:                                             ; preds = %1574, %1557
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #9
  br label %1592

1592:                                             ; preds = %1591
  br label %1593

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

1594:                                             ; No predecessors!
  br label %1595

1595:                                             ; preds = %1594
  br label %1596

1596:                                             ; preds = %1595, %1538
  br label %1597

1597:                                             ; preds = %1596
  br label %1598

1598:                                             ; preds = %1597
  br label %1599

1599:                                             ; preds = %1598
  %1600 = load i32, ptr @test_count, align 4, !tbaa !5
  %1601 = add nsw i32 %1600, 1
  store i32 %1601, ptr @test_count, align 4, !tbaa !5
  %1602 = load ptr, ptr %36, align 8, !tbaa !9
  %1603 = getelementptr inbounds %struct.s2n_connection, ptr %1602, i32 0, i32 22
  %1604 = load i8, ptr %1603, align 1, !tbaa !42
  %1605 = zext i8 %1604 to i32
  %1606 = icmp eq i32 %1605, 34
  br i1 %1606, label %1660, label %1607

1607:                                             ; preds = %1599
  br label %1608

1608:                                             ; preds = %1607
  br label %1609

1609:                                             ; preds = %1608
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #9
  %1610 = call ptr @__errno_location() #10
  %1611 = load i32, ptr %1610, align 4, !tbaa !5
  store i32 %1611, ptr %38, align 4, !tbaa !5
  %1612 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1613 = call i32 @s2n_print_stacktrace(ptr noundef %1612)
  %1614 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1615 = trunc i8 %1614 to i1
  br i1 %1615, label %1616, label %1638

1616:                                             ; preds = %1609
  %1617 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1618 = call i32 @fileno(ptr noundef %1617) #9
  %1619 = call i32 @isatty(i32 noundef %1618) #9
  %1620 = icmp ne i32 %1619, 0
  br i1 %1620, label %1621, label %1638

1621:                                             ; preds = %1616
  %1622 = load i32, ptr %38, align 4, !tbaa !5
  %1623 = call ptr @__errno_location() #10
  store i32 %1622, ptr %1623, align 4, !tbaa !5
  %1624 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1625 = load i32, ptr @test_count, align 4, !tbaa !5
  %1626 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1627 = load i32, ptr %1626, align 4, !tbaa !5
  %1628 = call ptr @s2n_strerror(i32 noundef %1627, ptr noundef @.str.4)
  %1629 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1630 = load i32, ptr %1629, align 4, !tbaa !5
  %1631 = call ptr @s2n_strerror_debug(i32 noundef %1630, ptr noundef @.str.4)
  %1632 = call ptr @__errno_location() #10
  %1633 = load i32, ptr %1632, align 4, !tbaa !5
  %1634 = call ptr @strerror(i32 noundef %1633) #9
  %1635 = call ptr @__errno_location() #10
  %1636 = load i32, ptr %1635, align 4, !tbaa !5
  %1637 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1624, ptr noundef @.str.2, i32 noundef %1625, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 95, ptr noundef %1628, ptr noundef %1631, ptr noundef %1634, i32 noundef %1636) #9
  br label %1655

1638:                                             ; preds = %1616, %1609
  %1639 = load i32, ptr %38, align 4, !tbaa !5
  %1640 = call ptr @__errno_location() #10
  store i32 %1639, ptr %1640, align 4, !tbaa !5
  %1641 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1642 = load i32, ptr @test_count, align 4, !tbaa !5
  %1643 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1644 = load i32, ptr %1643, align 4, !tbaa !5
  %1645 = call ptr @s2n_strerror(i32 noundef %1644, ptr noundef @.str.4)
  %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_debug(i32 noundef %1647, ptr noundef @.str.4)
  %1649 = call ptr @__errno_location() #10
  %1650 = load i32, ptr %1649, align 4, !tbaa !5
  %1651 = call ptr @strerror(i32 noundef %1650) #9
  %1652 = call ptr @__errno_location() #10
  %1653 = load i32, ptr %1652, align 4, !tbaa !5
  %1654 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1641, ptr noundef @.str.5, i32 noundef %1642, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 95, ptr noundef %1645, ptr noundef %1648, ptr noundef %1651, i32 noundef %1653) #9
  br label %1655

1655:                                             ; preds = %1638, %1621
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #9
  br label %1656

1656:                                             ; preds = %1655
  br label %1657

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

1658:                                             ; No predecessors!
  br label %1659

1659:                                             ; preds = %1658
  br label %1660

1660:                                             ; preds = %1659, %1599
  br label %1661

1661:                                             ; preds = %1660
  br label %1662

1662:                                             ; preds = %1661
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #9
  store ptr null, ptr %39, align 8, !tbaa !9
  br label %1663

1663:                                             ; preds = %1662
  %1664 = load i32, ptr @test_count, align 4, !tbaa !5
  %1665 = add nsw i32 %1664, 1
  store i32 %1665, ptr @test_count, align 4, !tbaa !5
  %1666 = load ptr, ptr %36, align 8, !tbaa !9
  %1667 = call i32 @s2n_connection_get_security_policy(ptr noundef %1666, ptr noundef %39)
  %1668 = icmp eq i32 %1667, -1
  br i1 %1668, label %1669, label %1722

1669:                                             ; preds = %1663
  br label %1670

1670:                                             ; preds = %1669
  br label %1671

1671:                                             ; preds = %1670
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #9
  %1672 = call ptr @__errno_location() #10
  %1673 = load i32, ptr %1672, align 4, !tbaa !5
  store i32 %1673, ptr %40, align 4, !tbaa !5
  %1674 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1675 = call i32 @s2n_print_stacktrace(ptr noundef %1674)
  %1676 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1677 = trunc i8 %1676 to i1
  br i1 %1677, label %1678, label %1700

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
  %1682 = icmp ne i32 %1681, 0
  br i1 %1682, label %1683, label %1700

1683:                                             ; preds = %1678
  %1684 = load i32, ptr %40, align 4, !tbaa !5
  %1685 = call ptr @__errno_location() #10
  store i32 %1684, ptr %1685, align 4, !tbaa !5
  %1686 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1687 = load i32, ptr @test_count, align 4, !tbaa !5
  %1688 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1689 = load i32, ptr %1688, align 4, !tbaa !5
  %1690 = call ptr @s2n_strerror(i32 noundef %1689, ptr noundef @.str.4)
  %1691 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1692 = load i32, ptr %1691, align 4, !tbaa !5
  %1693 = call ptr @s2n_strerror_debug(i32 noundef %1692, ptr noundef @.str.4)
  %1694 = call ptr @__errno_location() #10
  %1695 = load i32, ptr %1694, align 4, !tbaa !5
  %1696 = call ptr @strerror(i32 noundef %1695) #9
  %1697 = call ptr @__errno_location() #10
  %1698 = load i32, ptr %1697, align 4, !tbaa !5
  %1699 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1686, ptr noundef @.str.2, i32 noundef %1687, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 98, ptr noundef %1690, ptr noundef %1693, ptr noundef %1696, i32 noundef %1698) #9
  br label %1717

1700:                                             ; preds = %1678, %1671
  %1701 = load i32, ptr %40, align 4, !tbaa !5
  %1702 = call ptr @__errno_location() #10
  store i32 %1701, ptr %1702, align 4, !tbaa !5
  %1703 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1704 = load i32, ptr @test_count, align 4, !tbaa !5
  %1705 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1706 = load i32, ptr %1705, align 4, !tbaa !5
  %1707 = call ptr @s2n_strerror(i32 noundef %1706, ptr noundef @.str.4)
  %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_debug(i32 noundef %1709, ptr noundef @.str.4)
  %1711 = call ptr @__errno_location() #10
  %1712 = load i32, ptr %1711, align 4, !tbaa !5
  %1713 = call ptr @strerror(i32 noundef %1712) #9
  %1714 = call ptr @__errno_location() #10
  %1715 = load i32, ptr %1714, align 4, !tbaa !5
  %1716 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1703, ptr noundef @.str.5, i32 noundef %1704, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 98, ptr noundef %1707, ptr noundef %1710, ptr noundef %1713, i32 noundef %1715) #9
  br label %1717

1717:                                             ; preds = %1700, %1683
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #9
  br label %1718

1718:                                             ; preds = %1717
  br label %1719

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

1720:                                             ; No predecessors!
  br label %1721

1721:                                             ; preds = %1720
  br label %1722

1722:                                             ; preds = %1721, %1663
  br label %1723

1723:                                             ; preds = %1722
  br label %1724

1724:                                             ; preds = %1723
  br label %1725

1725:                                             ; preds = %1724
  %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 = load ptr, ptr %39, align 8, !tbaa !9
  %1729 = call zeroext i1 @s2n_security_policy_supports_tls13(ptr noundef %1728)
  br i1 %1729, label %1783, label %1730

1730:                                             ; preds = %1725
  br label %1731

1731:                                             ; preds = %1730
  br label %1732

1732:                                             ; preds = %1731
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #9
  %1733 = call ptr @__errno_location() #10
  %1734 = load i32, ptr %1733, align 4, !tbaa !5
  store i32 %1734, ptr %41, align 4, !tbaa !5
  %1735 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1736 = call i32 @s2n_print_stacktrace(ptr noundef %1735)
  %1737 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1738 = trunc i8 %1737 to i1
  br i1 %1738, label %1739, label %1761

1739:                                             ; preds = %1732
  %1740 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1741 = call i32 @fileno(ptr noundef %1740) #9
  %1742 = call i32 @isatty(i32 noundef %1741) #9
  %1743 = icmp ne i32 %1742, 0
  br i1 %1743, label %1744, label %1761

1744:                                             ; preds = %1739
  %1745 = load i32, ptr %41, align 4, !tbaa !5
  %1746 = call ptr @__errno_location() #10
  store i32 %1745, ptr %1746, align 4, !tbaa !5
  %1747 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1748 = load i32, ptr @test_count, align 4, !tbaa !5
  %1749 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1750 = load i32, ptr %1749, align 4, !tbaa !5
  %1751 = call ptr @s2n_strerror(i32 noundef %1750, ptr noundef @.str.4)
  %1752 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1753 = load i32, ptr %1752, align 4, !tbaa !5
  %1754 = call ptr @s2n_strerror_debug(i32 noundef %1753, ptr noundef @.str.4)
  %1755 = call ptr @__errno_location() #10
  %1756 = load i32, ptr %1755, align 4, !tbaa !5
  %1757 = call ptr @strerror(i32 noundef %1756) #9
  %1758 = call ptr @__errno_location() #10
  %1759 = load i32, ptr %1758, align 4, !tbaa !5
  %1760 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1747, ptr noundef @.str.2, i32 noundef %1748, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 99, ptr noundef %1751, ptr noundef %1754, ptr noundef %1757, i32 noundef %1759) #9
  br label %1778

1761:                                             ; preds = %1739, %1732
  %1762 = load i32, ptr %41, align 4, !tbaa !5
  %1763 = call ptr @__errno_location() #10
  store i32 %1762, ptr %1763, align 4, !tbaa !5
  %1764 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1765 = load i32, ptr @test_count, align 4, !tbaa !5
  %1766 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1767 = load i32, ptr %1766, align 4, !tbaa !5
  %1768 = call ptr @s2n_strerror(i32 noundef %1767, ptr noundef @.str.4)
  %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_debug(i32 noundef %1770, ptr noundef @.str.4)
  %1772 = call ptr @__errno_location() #10
  %1773 = load i32, ptr %1772, align 4, !tbaa !5
  %1774 = call ptr @strerror(i32 noundef %1773) #9
  %1775 = call ptr @__errno_location() #10
  %1776 = load i32, ptr %1775, align 4, !tbaa !5
  %1777 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1764, ptr noundef @.str.5, i32 noundef %1765, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 99, ptr noundef %1768, ptr noundef %1771, ptr noundef %1774, i32 noundef %1776) #9
  br label %1778

1778:                                             ; preds = %1761, %1744
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #9
  br label %1779

1779:                                             ; preds = %1778
  br label %1780

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

1781:                                             ; No predecessors!
  br label %1782

1782:                                             ; preds = %1781
  br label %1783

1783:                                             ; preds = %1782, %1725
  br label %1784

1784:                                             ; preds = %1783
  br label %1785

1785:                                             ; preds = %1784
  br label %1786

1786:                                             ; preds = %1785
  %1787 = load i32, ptr @test_count, align 4, !tbaa !5
  %1788 = add nsw i32 %1787, 1
  store i32 %1788, ptr @test_count, align 4, !tbaa !5
  %1789 = load ptr, ptr %36, align 8, !tbaa !9
  %1790 = call i32 @s2n_connection_free(ptr noundef %1789)
  %1791 = icmp eq i32 %1790, -1
  br i1 %1791, label %1792, label %1845

1792:                                             ; preds = %1786
  br label %1793

1793:                                             ; preds = %1792
  br label %1794

1794:                                             ; preds = %1793
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #9
  %1795 = call ptr @__errno_location() #10
  %1796 = load i32, ptr %1795, align 4, !tbaa !5
  store i32 %1796, ptr %42, align 4, !tbaa !5
  %1797 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1798 = call i32 @s2n_print_stacktrace(ptr noundef %1797)
  %1799 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1800 = trunc i8 %1799 to i1
  br i1 %1800, label %1801, label %1823

1801:                                             ; preds = %1794
  %1802 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1803 = call i32 @fileno(ptr noundef %1802) #9
  %1804 = call i32 @isatty(i32 noundef %1803) #9
  %1805 = icmp ne i32 %1804, 0
  br i1 %1805, label %1806, label %1823

1806:                                             ; preds = %1801
  %1807 = load i32, ptr %42, align 4, !tbaa !5
  %1808 = call ptr @__errno_location() #10
  store i32 %1807, ptr %1808, align 4, !tbaa !5
  %1809 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1810 = load i32, ptr @test_count, align 4, !tbaa !5
  %1811 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1812 = load i32, ptr %1811, align 4, !tbaa !5
  %1813 = call ptr @s2n_strerror(i32 noundef %1812, ptr noundef @.str.4)
  %1814 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1815 = load i32, ptr %1814, align 4, !tbaa !5
  %1816 = call ptr @s2n_strerror_debug(i32 noundef %1815, ptr noundef @.str.4)
  %1817 = call ptr @__errno_location() #10
  %1818 = load i32, ptr %1817, align 4, !tbaa !5
  %1819 = call ptr @strerror(i32 noundef %1818) #9
  %1820 = call ptr @__errno_location() #10
  %1821 = load i32, ptr %1820, align 4, !tbaa !5
  %1822 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1809, ptr noundef @.str.2, i32 noundef %1810, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 101, ptr noundef %1813, ptr noundef %1816, ptr noundef %1819, i32 noundef %1821) #9
  br label %1840

1823:                                             ; preds = %1801, %1794
  %1824 = load i32, ptr %42, align 4, !tbaa !5
  %1825 = call ptr @__errno_location() #10
  store i32 %1824, ptr %1825, align 4, !tbaa !5
  %1826 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1827 = load i32, ptr @test_count, align 4, !tbaa !5
  %1828 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1829 = load i32, ptr %1828, align 4, !tbaa !5
  %1830 = call ptr @s2n_strerror(i32 noundef %1829, ptr noundef @.str.4)
  %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_debug(i32 noundef %1832, ptr noundef @.str.4)
  %1834 = call ptr @__errno_location() #10
  %1835 = load i32, ptr %1834, align 4, !tbaa !5
  %1836 = call ptr @strerror(i32 noundef %1835) #9
  %1837 = call ptr @__errno_location() #10
  %1838 = load i32, ptr %1837, align 4, !tbaa !5
  %1839 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1826, ptr noundef @.str.5, i32 noundef %1827, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 101, ptr noundef %1830, ptr noundef %1833, ptr noundef %1836, i32 noundef %1838) #9
  br label %1840

1840:                                             ; preds = %1823, %1806
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #9
  br label %1841

1841:                                             ; preds = %1840
  br label %1842

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

1843:                                             ; No predecessors!
  br label %1844

1844:                                             ; preds = %1843
  br label %1845

1845:                                             ; preds = %1844, %1786
  br label %1846

1846:                                             ; preds = %1845
  br label %1847

1847:                                             ; preds = %1846
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #9
  br label %1848

1848:                                             ; preds = %1847
  %1849 = load i32, ptr @test_count, align 4, !tbaa !5
  %1850 = add nsw i32 %1849, 1
  store i32 %1850, ptr @test_count, align 4, !tbaa !5
  %1851 = call i32 (...) @s2n_disable_tls13_in_test()
  %1852 = icmp eq i32 %1851, -1
  br i1 %1852, label %1853, label %1904

1853:                                             ; preds = %1848
  br label %1854

1854:                                             ; preds = %1853
  br label %1855

1855:                                             ; preds = %1854
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #9
  %1856 = call ptr @__errno_location() #10
  %1857 = load i32, ptr %1856, align 4, !tbaa !5
  store i32 %1857, ptr %43, align 4, !tbaa !5
  %1858 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1859 = call i32 @s2n_print_stacktrace(ptr noundef %1858)
  %1860 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1861 = trunc i8 %1860 to i1
  br i1 %1861, label %1862, label %1884

1862:                                             ; preds = %1855
  %1863 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1864 = call i32 @fileno(ptr noundef %1863) #9
  %1865 = call i32 @isatty(i32 noundef %1864) #9
  %1866 = icmp ne i32 %1865, 0
  br i1 %1866, label %1867, label %1884

1867:                                             ; preds = %1862
  %1868 = load i32, ptr %43, align 4, !tbaa !5
  %1869 = call ptr @__errno_location() #10
  store i32 %1868, ptr %1869, align 4, !tbaa !5
  %1870 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1871 = load i32, ptr @test_count, align 4, !tbaa !5
  %1872 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1873 = load i32, ptr %1872, align 4, !tbaa !5
  %1874 = call ptr @s2n_strerror(i32 noundef %1873, ptr noundef @.str.4)
  %1875 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1876 = load i32, ptr %1875, align 4, !tbaa !5
  %1877 = call ptr @s2n_strerror_debug(i32 noundef %1876, ptr noundef @.str.4)
  %1878 = call ptr @__errno_location() #10
  %1879 = load i32, ptr %1878, align 4, !tbaa !5
  %1880 = call ptr @strerror(i32 noundef %1879) #9
  %1881 = call ptr @__errno_location() #10
  %1882 = load i32, ptr %1881, align 4, !tbaa !5
  %1883 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1870, ptr noundef @.str.2, i32 noundef %1871, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 105, ptr noundef %1874, ptr noundef %1877, ptr noundef %1880, i32 noundef %1882) #9
  br label %1901

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

1901:                                             ; preds = %1884, %1867
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #9
  br label %1902

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

1903:                                             ; No predecessors!
  br label %1904

1904:                                             ; preds = %1903, %1848
  br label %1905

1905:                                             ; preds = %1904
  br label %1906

1906:                                             ; preds = %1905
  %1907 = load i32, ptr @test_count, align 4, !tbaa !5
  %1908 = add nsw i32 %1907, 1
  store i32 %1908, ptr @test_count, align 4, !tbaa !5
  %1909 = call zeroext i1 (...) @s2n_use_default_tls13_config()
  br i1 %1909, label %1910, label %1961

1910:                                             ; preds = %1906
  br label %1911

1911:                                             ; preds = %1910
  br label %1912

1912:                                             ; preds = %1911
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #9
  %1913 = call ptr @__errno_location() #10
  %1914 = load i32, ptr %1913, align 4, !tbaa !5
  store i32 %1914, ptr %44, align 4, !tbaa !5
  %1915 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1916 = call i32 @s2n_print_stacktrace(ptr noundef %1915)
  %1917 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1918 = trunc i8 %1917 to i1
  br i1 %1918, label %1919, label %1941

1919:                                             ; preds = %1912
  %1920 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1921 = call i32 @fileno(ptr noundef %1920) #9
  %1922 = call i32 @isatty(i32 noundef %1921) #9
  %1923 = icmp ne i32 %1922, 0
  br i1 %1923, label %1924, label %1941

1924:                                             ; preds = %1919
  %1925 = load i32, ptr %44, align 4, !tbaa !5
  %1926 = call ptr @__errno_location() #10
  store i32 %1925, ptr %1926, align 4, !tbaa !5
  %1927 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1928 = load i32, ptr @test_count, align 4, !tbaa !5
  %1929 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1930 = load i32, ptr %1929, align 4, !tbaa !5
  %1931 = call ptr @s2n_strerror(i32 noundef %1930, ptr noundef @.str.4)
  %1932 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1933 = load i32, ptr %1932, align 4, !tbaa !5
  %1934 = call ptr @s2n_strerror_debug(i32 noundef %1933, ptr noundef @.str.4)
  %1935 = call ptr @__errno_location() #10
  %1936 = load i32, ptr %1935, align 4, !tbaa !5
  %1937 = call ptr @strerror(i32 noundef %1936) #9
  %1938 = call ptr @__errno_location() #10
  %1939 = load i32, ptr %1938, align 4, !tbaa !5
  %1940 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1927, ptr noundef @.str.2, i32 noundef %1928, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 106, ptr noundef %1931, ptr noundef %1934, ptr noundef %1937, i32 noundef %1939) #9
  br label %1958

1941:                                             ; preds = %1919, %1912
  %1942 = load i32, ptr %44, align 4, !tbaa !5
  %1943 = call ptr @__errno_location() #10
  store i32 %1942, ptr %1943, align 4, !tbaa !5
  %1944 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1945 = load i32, ptr @test_count, align 4, !tbaa !5
  %1946 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1947 = load i32, ptr %1946, align 4, !tbaa !5
  %1948 = call ptr @s2n_strerror(i32 noundef %1947, ptr noundef @.str.4)
  %1949 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1950 = load i32, ptr %1949, align 4, !tbaa !5
  %1951 = call ptr @s2n_strerror_debug(i32 noundef %1950, ptr noundef @.str.4)
  %1952 = call ptr @__errno_location() #10
  %1953 = load i32, ptr %1952, align 4, !tbaa !5
  %1954 = call ptr @strerror(i32 noundef %1953) #9
  %1955 = call ptr @__errno_location() #10
  %1956 = load i32, ptr %1955, align 4, !tbaa !5
  %1957 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1944, ptr noundef @.str.5, i32 noundef %1945, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 106, ptr noundef %1948, ptr noundef %1951, ptr noundef %1954, i32 noundef %1956) #9
  br label %1958

1958:                                             ; preds = %1941, %1924
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #9
  br label %1959

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

1960:                                             ; No predecessors!
  br label %1961

1961:                                             ; preds = %1960, %1906
  br label %1962

1962:                                             ; preds = %1961
  br label %1963

1963:                                             ; preds = %1962
  %1964 = load i32, ptr @test_count, align 4, !tbaa !5
  %1965 = add nsw i32 %1964, 1
  store i32 %1965, ptr @test_count, align 4, !tbaa !5
  %1966 = call i32 (...) @s2n_disable_tls13_in_test()
  %1967 = icmp eq i32 %1966, -1
  br i1 %1967, label %1968, label %2019

1968:                                             ; preds = %1963
  br label %1969

1969:                                             ; preds = %1968
  br label %1970

1970:                                             ; preds = %1969
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #9
  %1971 = call ptr @__errno_location() #10
  %1972 = load i32, ptr %1971, align 4, !tbaa !5
  store i32 %1972, ptr %45, align 4, !tbaa !5
  %1973 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1974 = call i32 @s2n_print_stacktrace(ptr noundef %1973)
  %1975 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1976 = trunc i8 %1975 to i1
  br i1 %1976, label %1977, label %1999

1977:                                             ; preds = %1970
  %1978 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1979 = call i32 @fileno(ptr noundef %1978) #9
  %1980 = call i32 @isatty(i32 noundef %1979) #9
  %1981 = icmp ne i32 %1980, 0
  br i1 %1981, label %1982, label %1999

1982:                                             ; preds = %1977
  %1983 = load i32, ptr %45, align 4, !tbaa !5
  %1984 = call ptr @__errno_location() #10
  store i32 %1983, ptr %1984, align 4, !tbaa !5
  %1985 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1986 = load i32, ptr @test_count, align 4, !tbaa !5
  %1987 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1988 = load i32, ptr %1987, align 4, !tbaa !5
  %1989 = call ptr @s2n_strerror(i32 noundef %1988, ptr noundef @.str.4)
  %1990 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1991 = load i32, ptr %1990, align 4, !tbaa !5
  %1992 = call ptr @s2n_strerror_debug(i32 noundef %1991, ptr noundef @.str.4)
  %1993 = call ptr @__errno_location() #10
  %1994 = load i32, ptr %1993, align 4, !tbaa !5
  %1995 = call ptr @strerror(i32 noundef %1994) #9
  %1996 = call ptr @__errno_location() #10
  %1997 = load i32, ptr %1996, align 4, !tbaa !5
  %1998 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1985, ptr noundef @.str.2, i32 noundef %1986, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 109, ptr noundef %1989, ptr noundef %1992, ptr noundef %1995, i32 noundef %1997) #9
  br label %2016

1999:                                             ; preds = %1977, %1970
  %2000 = load i32, ptr %45, align 4, !tbaa !5
  %2001 = call ptr @__errno_location() #10
  store i32 %2000, ptr %2001, 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 @.str.4)
  %2007 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2008 = load i32, ptr %2007, align 4, !tbaa !5
  %2009 = call ptr @s2n_strerror_debug(i32 noundef %2008, ptr noundef @.str.4)
  %2010 = call ptr @__errno_location() #10
  %2011 = load i32, ptr %2010, align 4, !tbaa !5
  %2012 = call ptr @strerror(i32 noundef %2011) #9
  %2013 = call ptr @__errno_location() #10
  %2014 = load i32, ptr %2013, align 4, !tbaa !5
  %2015 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2002, ptr noundef @.str.5, i32 noundef %2003, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 109, ptr noundef %2006, ptr noundef %2009, ptr noundef %2012, i32 noundef %2014) #9
  br label %2016

2016:                                             ; preds = %1999, %1982
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #9
  br label %2017

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

2018:                                             ; No predecessors!
  br label %2019

2019:                                             ; preds = %2018, %1963
  br label %2020

2020:                                             ; preds = %2019
  br label %2021

2021:                                             ; preds = %2020
  %2022 = load i32, ptr @test_count, align 4, !tbaa !5
  %2023 = add nsw i32 %2022, 1
  store i32 %2023, ptr @test_count, align 4, !tbaa !5
  %2024 = call zeroext i1 (...) @s2n_use_default_tls13_config()
  br i1 %2024, label %2025, label %2076

2025:                                             ; preds = %2021
  br label %2026

2026:                                             ; preds = %2025
  br label %2027

2027:                                             ; preds = %2026
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #9
  %2028 = call ptr @__errno_location() #10
  %2029 = load i32, ptr %2028, align 4, !tbaa !5
  store i32 %2029, ptr %46, align 4, !tbaa !5
  %2030 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2031 = call i32 @s2n_print_stacktrace(ptr noundef %2030)
  %2032 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2033 = trunc i8 %2032 to i1
  br i1 %2033, label %2034, label %2056

2034:                                             ; preds = %2027
  %2035 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2036 = call i32 @fileno(ptr noundef %2035) #9
  %2037 = call i32 @isatty(i32 noundef %2036) #9
  %2038 = icmp ne i32 %2037, 0
  br i1 %2038, label %2039, label %2056

2039:                                             ; preds = %2034
  %2040 = load i32, ptr %46, align 4, !tbaa !5
  %2041 = call ptr @__errno_location() #10
  store i32 %2040, ptr %2041, align 4, !tbaa !5
  %2042 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2043 = load i32, ptr @test_count, align 4, !tbaa !5
  %2044 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2045 = load i32, ptr %2044, align 4, !tbaa !5
  %2046 = call ptr @s2n_strerror(i32 noundef %2045, ptr noundef @.str.4)
  %2047 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2048 = load i32, ptr %2047, align 4, !tbaa !5
  %2049 = call ptr @s2n_strerror_debug(i32 noundef %2048, ptr noundef @.str.4)
  %2050 = call ptr @__errno_location() #10
  %2051 = load i32, ptr %2050, align 4, !tbaa !5
  %2052 = call ptr @strerror(i32 noundef %2051) #9
  %2053 = call ptr @__errno_location() #10
  %2054 = load i32, ptr %2053, align 4, !tbaa !5
  %2055 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2042, ptr noundef @.str.2, i32 noundef %2043, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 110, ptr noundef %2046, ptr noundef %2049, ptr noundef %2052, i32 noundef %2054) #9
  br label %2073

2056:                                             ; preds = %2034, %2027
  %2057 = load i32, ptr %46, align 4, !tbaa !5
  %2058 = call ptr @__errno_location() #10
  store i32 %2057, ptr %2058, align 4, !tbaa !5
  %2059 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2060 = load i32, ptr @test_count, align 4, !tbaa !5
  %2061 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2062 = load i32, ptr %2061, align 4, !tbaa !5
  %2063 = call ptr @s2n_strerror(i32 noundef %2062, ptr noundef @.str.4)
  %2064 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2065 = load i32, ptr %2064, align 4, !tbaa !5
  %2066 = call ptr @s2n_strerror_debug(i32 noundef %2065, ptr noundef @.str.4)
  %2067 = call ptr @__errno_location() #10
  %2068 = load i32, ptr %2067, align 4, !tbaa !5
  %2069 = call ptr @strerror(i32 noundef %2068) #9
  %2070 = call ptr @__errno_location() #10
  %2071 = load i32, ptr %2070, align 4, !tbaa !5
  %2072 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2059, ptr noundef @.str.5, i32 noundef %2060, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 110, ptr noundef %2063, ptr noundef %2066, ptr noundef %2069, i32 noundef %2071) #9
  br label %2073

2073:                                             ; preds = %2056, %2039
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #9
  br label %2074

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

2075:                                             ; No predecessors!
  br label %2076

2076:                                             ; preds = %2075, %2021
  br label %2077

2077:                                             ; preds = %2076
  call void @llvm.lifetime.start.p0(i64 2, ptr %47) #9
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %47, ptr align 1 @__const.main.value, i64 2, i1 false)
  br label %2078

2078:                                             ; preds = %2077
  %2079 = load i32, ptr @test_count, align 4, !tbaa !5
  %2080 = add nsw i32 %2079, 1
  store i32 %2080, ptr @test_count, align 4, !tbaa !5
  %2081 = getelementptr inbounds [2 x i8], ptr %47, i64 0, i64 0
  %2082 = call zeroext i1 @s2n_is_valid_tls13_cipher(ptr noundef %2081)
  br i1 %2082, label %2136, label %2083

2083:                                             ; preds = %2078
  br label %2084

2084:                                             ; preds = %2083
  br label %2085

2085:                                             ; preds = %2084
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #9
  %2086 = call ptr @__errno_location() #10
  %2087 = load i32, ptr %2086, align 4, !tbaa !5
  store i32 %2087, ptr %48, align 4, !tbaa !5
  %2088 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2089 = call i32 @s2n_print_stacktrace(ptr noundef %2088)
  %2090 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2091 = trunc i8 %2090 to i1
  br i1 %2091, label %2092, label %2114

2092:                                             ; preds = %2085
  %2093 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2094 = call i32 @fileno(ptr noundef %2093) #9
  %2095 = call i32 @isatty(i32 noundef %2094) #9
  %2096 = icmp ne i32 %2095, 0
  br i1 %2096, label %2097, label %2114

2097:                                             ; preds = %2092
  %2098 = load i32, ptr %48, align 4, !tbaa !5
  %2099 = call ptr @__errno_location() #10
  store i32 %2098, ptr %2099, align 4, !tbaa !5
  %2100 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2101 = load i32, ptr @test_count, align 4, !tbaa !5
  %2102 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2103 = load i32, ptr %2102, align 4, !tbaa !5
  %2104 = call ptr @s2n_strerror(i32 noundef %2103, ptr noundef @.str.4)
  %2105 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2106 = load i32, ptr %2105, align 4, !tbaa !5
  %2107 = call ptr @s2n_strerror_debug(i32 noundef %2106, ptr noundef @.str.4)
  %2108 = call ptr @__errno_location() #10
  %2109 = load i32, ptr %2108, align 4, !tbaa !5
  %2110 = call ptr @strerror(i32 noundef %2109) #9
  %2111 = call ptr @__errno_location() #10
  %2112 = load i32, ptr %2111, align 4, !tbaa !5
  %2113 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2100, ptr noundef @.str.2, i32 noundef %2101, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 115, ptr noundef %2104, ptr noundef %2107, ptr noundef %2110, i32 noundef %2112) #9
  br label %2131

2114:                                             ; preds = %2092, %2085
  %2115 = load i32, ptr %48, align 4, !tbaa !5
  %2116 = call ptr @__errno_location() #10
  store i32 %2115, ptr %2116, align 4, !tbaa !5
  %2117 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2118 = load i32, ptr @test_count, align 4, !tbaa !5
  %2119 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2120 = load i32, ptr %2119, align 4, !tbaa !5
  %2121 = call ptr @s2n_strerror(i32 noundef %2120, ptr noundef @.str.4)
  %2122 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2123 = load i32, ptr %2122, align 4, !tbaa !5
  %2124 = call ptr @s2n_strerror_debug(i32 noundef %2123, ptr noundef @.str.4)
  %2125 = call ptr @__errno_location() #10
  %2126 = load i32, ptr %2125, align 4, !tbaa !5
  %2127 = call ptr @strerror(i32 noundef %2126) #9
  %2128 = call ptr @__errno_location() #10
  %2129 = load i32, ptr %2128, align 4, !tbaa !5
  %2130 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2117, ptr noundef @.str.5, i32 noundef %2118, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 115, ptr noundef %2121, ptr noundef %2124, ptr noundef %2127, i32 noundef %2129) #9
  br label %2131

2131:                                             ; preds = %2114, %2097
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #9
  br label %2132

2132:                                             ; preds = %2131
  br label %2133

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

2134:                                             ; No predecessors!
  br label %2135

2135:                                             ; preds = %2134
  br label %2136

2136:                                             ; preds = %2135, %2078
  br label %2137

2137:                                             ; preds = %2136
  br label %2138

2138:                                             ; preds = %2137
  %2139 = getelementptr inbounds [2 x i8], ptr %47, i64 0, i64 0
  store i8 19, ptr %2139, align 1, !tbaa !43
  %2140 = getelementptr inbounds [2 x i8], ptr %47, i64 0, i64 1
  store i8 2, ptr %2140, align 1, !tbaa !43
  br label %2141

2141:                                             ; preds = %2138
  %2142 = load i32, ptr @test_count, align 4, !tbaa !5
  %2143 = add nsw i32 %2142, 1
  store i32 %2143, ptr @test_count, align 4, !tbaa !5
  %2144 = getelementptr inbounds [2 x i8], ptr %47, i64 0, i64 0
  %2145 = call zeroext i1 @s2n_is_valid_tls13_cipher(ptr noundef %2144)
  br i1 %2145, label %2199, label %2146

2146:                                             ; preds = %2141
  br label %2147

2147:                                             ; preds = %2146
  br label %2148

2148:                                             ; preds = %2147
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #9
  %2149 = call ptr @__errno_location() #10
  %2150 = load i32, ptr %2149, align 4, !tbaa !5
  store i32 %2150, ptr %49, align 4, !tbaa !5
  %2151 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2152 = call i32 @s2n_print_stacktrace(ptr noundef %2151)
  %2153 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2154 = trunc i8 %2153 to i1
  br i1 %2154, label %2155, label %2177

2155:                                             ; preds = %2148
  %2156 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2157 = call i32 @fileno(ptr noundef %2156) #9
  %2158 = call i32 @isatty(i32 noundef %2157) #9
  %2159 = icmp ne i32 %2158, 0
  br i1 %2159, label %2160, label %2177

2160:                                             ; preds = %2155
  %2161 = load i32, ptr %49, align 4, !tbaa !5
  %2162 = call ptr @__errno_location() #10
  store i32 %2161, ptr %2162, align 4, !tbaa !5
  %2163 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2164 = load i32, ptr @test_count, align 4, !tbaa !5
  %2165 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2166 = load i32, ptr %2165, align 4, !tbaa !5
  %2167 = call ptr @s2n_strerror(i32 noundef %2166, ptr noundef @.str.4)
  %2168 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2169 = load i32, ptr %2168, align 4, !tbaa !5
  %2170 = call ptr @s2n_strerror_debug(i32 noundef %2169, ptr noundef @.str.4)
  %2171 = call ptr @__errno_location() #10
  %2172 = load i32, ptr %2171, align 4, !tbaa !5
  %2173 = call ptr @strerror(i32 noundef %2172) #9
  %2174 = call ptr @__errno_location() #10
  %2175 = load i32, ptr %2174, align 4, !tbaa !5
  %2176 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2163, ptr noundef @.str.2, i32 noundef %2164, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 118, ptr noundef %2167, ptr noundef %2170, ptr noundef %2173, i32 noundef %2175) #9
  br label %2194

2177:                                             ; preds = %2155, %2148
  %2178 = load i32, ptr %49, align 4, !tbaa !5
  %2179 = call ptr @__errno_location() #10
  store i32 %2178, ptr %2179, align 4, !tbaa !5
  %2180 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2181 = load i32, ptr @test_count, align 4, !tbaa !5
  %2182 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2183 = load i32, ptr %2182, align 4, !tbaa !5
  %2184 = call ptr @s2n_strerror(i32 noundef %2183, ptr noundef @.str.4)
  %2185 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2186 = load i32, ptr %2185, align 4, !tbaa !5
  %2187 = call ptr @s2n_strerror_debug(i32 noundef %2186, ptr noundef @.str.4)
  %2188 = call ptr @__errno_location() #10
  %2189 = load i32, ptr %2188, align 4, !tbaa !5
  %2190 = call ptr @strerror(i32 noundef %2189) #9
  %2191 = call ptr @__errno_location() #10
  %2192 = load i32, ptr %2191, align 4, !tbaa !5
  %2193 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2180, ptr noundef @.str.5, i32 noundef %2181, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 118, ptr noundef %2184, ptr noundef %2187, ptr noundef %2190, i32 noundef %2192) #9
  br label %2194

2194:                                             ; preds = %2177, %2160
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #9
  br label %2195

2195:                                             ; preds = %2194
  br label %2196

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

2197:                                             ; No predecessors!
  br label %2198

2198:                                             ; preds = %2197
  br label %2199

2199:                                             ; preds = %2198, %2141
  br label %2200

2200:                                             ; preds = %2199
  br label %2201

2201:                                             ; preds = %2200
  %2202 = getelementptr inbounds [2 x i8], ptr %47, i64 0, i64 0
  store i8 19, ptr %2202, align 1, !tbaa !43
  %2203 = getelementptr inbounds [2 x i8], ptr %47, i64 0, i64 1
  store i8 3, ptr %2203, align 1, !tbaa !43
  br label %2204

2204:                                             ; preds = %2201
  %2205 = load i32, ptr @test_count, align 4, !tbaa !5
  %2206 = add nsw i32 %2205, 1
  store i32 %2206, ptr @test_count, align 4, !tbaa !5
  %2207 = getelementptr inbounds [2 x i8], ptr %47, i64 0, i64 0
  %2208 = call zeroext i1 @s2n_is_valid_tls13_cipher(ptr noundef %2207)
  br i1 %2208, label %2262, label %2209

2209:                                             ; preds = %2204
  br label %2210

2210:                                             ; preds = %2209
  br label %2211

2211:                                             ; preds = %2210
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #9
  %2212 = call ptr @__errno_location() #10
  %2213 = load i32, ptr %2212, align 4, !tbaa !5
  store i32 %2213, ptr %50, align 4, !tbaa !5
  %2214 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2215 = call i32 @s2n_print_stacktrace(ptr noundef %2214)
  %2216 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2217 = trunc i8 %2216 to i1
  br i1 %2217, label %2218, label %2240

2218:                                             ; preds = %2211
  %2219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2220 = call i32 @fileno(ptr noundef %2219) #9
  %2221 = call i32 @isatty(i32 noundef %2220) #9
  %2222 = icmp ne i32 %2221, 0
  br i1 %2222, label %2223, label %2240

2223:                                             ; preds = %2218
  %2224 = load i32, ptr %50, align 4, !tbaa !5
  %2225 = call ptr @__errno_location() #10
  store i32 %2224, ptr %2225, align 4, !tbaa !5
  %2226 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2227 = load i32, ptr @test_count, align 4, !tbaa !5
  %2228 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2229 = load i32, ptr %2228, align 4, !tbaa !5
  %2230 = call ptr @s2n_strerror(i32 noundef %2229, ptr noundef @.str.4)
  %2231 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2232 = load i32, ptr %2231, align 4, !tbaa !5
  %2233 = call ptr @s2n_strerror_debug(i32 noundef %2232, ptr noundef @.str.4)
  %2234 = call ptr @__errno_location() #10
  %2235 = load i32, ptr %2234, align 4, !tbaa !5
  %2236 = call ptr @strerror(i32 noundef %2235) #9
  %2237 = call ptr @__errno_location() #10
  %2238 = load i32, ptr %2237, align 4, !tbaa !5
  %2239 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2226, ptr noundef @.str.2, i32 noundef %2227, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 121, ptr noundef %2230, ptr noundef %2233, ptr noundef %2236, i32 noundef %2238) #9
  br label %2257

2240:                                             ; preds = %2218, %2211
  %2241 = load i32, ptr %50, align 4, !tbaa !5
  %2242 = call ptr @__errno_location() #10
  store i32 %2241, ptr %2242, align 4, !tbaa !5
  %2243 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2244 = load i32, ptr @test_count, align 4, !tbaa !5
  %2245 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2246 = load i32, ptr %2245, align 4, !tbaa !5
  %2247 = call ptr @s2n_strerror(i32 noundef %2246, ptr noundef @.str.4)
  %2248 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2249 = load i32, ptr %2248, align 4, !tbaa !5
  %2250 = call ptr @s2n_strerror_debug(i32 noundef %2249, ptr noundef @.str.4)
  %2251 = call ptr @__errno_location() #10
  %2252 = load i32, ptr %2251, align 4, !tbaa !5
  %2253 = call ptr @strerror(i32 noundef %2252) #9
  %2254 = call ptr @__errno_location() #10
  %2255 = load i32, ptr %2254, align 4, !tbaa !5
  %2256 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2243, ptr noundef @.str.5, i32 noundef %2244, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 121, ptr noundef %2247, ptr noundef %2250, ptr noundef %2253, i32 noundef %2255) #9
  br label %2257

2257:                                             ; preds = %2240, %2223
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #9
  br label %2258

2258:                                             ; preds = %2257
  br label %2259

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

2260:                                             ; No predecessors!
  br label %2261

2261:                                             ; preds = %2260
  br label %2262

2262:                                             ; preds = %2261, %2204
  br label %2263

2263:                                             ; preds = %2262
  br label %2264

2264:                                             ; preds = %2263
  %2265 = getelementptr inbounds [2 x i8], ptr %47, i64 0, i64 0
  store i8 19, ptr %2265, align 1, !tbaa !43
  %2266 = getelementptr inbounds [2 x i8], ptr %47, i64 0, i64 1
  store i8 4, ptr %2266, align 1, !tbaa !43
  br label %2267

2267:                                             ; preds = %2264
  %2268 = load i32, ptr @test_count, align 4, !tbaa !5
  %2269 = add nsw i32 %2268, 1
  store i32 %2269, ptr @test_count, align 4, !tbaa !5
  %2270 = getelementptr inbounds [2 x i8], ptr %47, i64 0, i64 0
  %2271 = call zeroext i1 @s2n_is_valid_tls13_cipher(ptr noundef %2270)
  br i1 %2271, label %2325, label %2272

2272:                                             ; preds = %2267
  br label %2273

2273:                                             ; preds = %2272
  br label %2274

2274:                                             ; preds = %2273
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #9
  %2275 = call ptr @__errno_location() #10
  %2276 = load i32, ptr %2275, align 4, !tbaa !5
  store i32 %2276, ptr %51, align 4, !tbaa !5
  %2277 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2278 = call i32 @s2n_print_stacktrace(ptr noundef %2277)
  %2279 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2280 = trunc i8 %2279 to i1
  br i1 %2280, label %2281, label %2303

2281:                                             ; preds = %2274
  %2282 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2283 = call i32 @fileno(ptr noundef %2282) #9
  %2284 = call i32 @isatty(i32 noundef %2283) #9
  %2285 = icmp ne i32 %2284, 0
  br i1 %2285, label %2286, label %2303

2286:                                             ; preds = %2281
  %2287 = load i32, ptr %51, align 4, !tbaa !5
  %2288 = call ptr @__errno_location() #10
  store i32 %2287, ptr %2288, align 4, !tbaa !5
  %2289 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2290 = load i32, ptr @test_count, align 4, !tbaa !5
  %2291 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2292 = load i32, ptr %2291, align 4, !tbaa !5
  %2293 = call ptr @s2n_strerror(i32 noundef %2292, ptr noundef @.str.4)
  %2294 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2295 = load i32, ptr %2294, align 4, !tbaa !5
  %2296 = call ptr @s2n_strerror_debug(i32 noundef %2295, ptr noundef @.str.4)
  %2297 = call ptr @__errno_location() #10
  %2298 = load i32, ptr %2297, align 4, !tbaa !5
  %2299 = call ptr @strerror(i32 noundef %2298) #9
  %2300 = call ptr @__errno_location() #10
  %2301 = load i32, ptr %2300, align 4, !tbaa !5
  %2302 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2289, ptr noundef @.str.2, i32 noundef %2290, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 124, ptr noundef %2293, ptr noundef %2296, ptr noundef %2299, i32 noundef %2301) #9
  br label %2320

2303:                                             ; preds = %2281, %2274
  %2304 = load i32, ptr %51, align 4, !tbaa !5
  %2305 = call ptr @__errno_location() #10
  store i32 %2304, ptr %2305, align 4, !tbaa !5
  %2306 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2307 = load i32, ptr @test_count, align 4, !tbaa !5
  %2308 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2309 = load i32, ptr %2308, align 4, !tbaa !5
  %2310 = call ptr @s2n_strerror(i32 noundef %2309, ptr noundef @.str.4)
  %2311 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2312 = load i32, ptr %2311, align 4, !tbaa !5
  %2313 = call ptr @s2n_strerror_debug(i32 noundef %2312, ptr noundef @.str.4)
  %2314 = call ptr @__errno_location() #10
  %2315 = load i32, ptr %2314, align 4, !tbaa !5
  %2316 = call ptr @strerror(i32 noundef %2315) #9
  %2317 = call ptr @__errno_location() #10
  %2318 = load i32, ptr %2317, align 4, !tbaa !5
  %2319 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2306, ptr noundef @.str.5, i32 noundef %2307, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 124, ptr noundef %2310, ptr noundef %2313, ptr noundef %2316, i32 noundef %2318) #9
  br label %2320

2320:                                             ; preds = %2303, %2286
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #9
  br label %2321

2321:                                             ; preds = %2320
  br label %2322

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

2323:                                             ; No predecessors!
  br label %2324

2324:                                             ; preds = %2323
  br label %2325

2325:                                             ; preds = %2324, %2267
  br label %2326

2326:                                             ; preds = %2325
  br label %2327

2327:                                             ; preds = %2326
  %2328 = getelementptr inbounds [2 x i8], ptr %47, i64 0, i64 0
  store i8 19, ptr %2328, align 1, !tbaa !43
  %2329 = getelementptr inbounds [2 x i8], ptr %47, i64 0, i64 1
  store i8 5, ptr %2329, align 1, !tbaa !43
  br label %2330

2330:                                             ; preds = %2327
  %2331 = load i32, ptr @test_count, align 4, !tbaa !5
  %2332 = add nsw i32 %2331, 1
  store i32 %2332, ptr @test_count, align 4, !tbaa !5
  %2333 = getelementptr inbounds [2 x i8], ptr %47, i64 0, i64 0
  %2334 = call zeroext i1 @s2n_is_valid_tls13_cipher(ptr noundef %2333)
  br i1 %2334, label %2388, label %2335

2335:                                             ; preds = %2330
  br label %2336

2336:                                             ; preds = %2335
  br label %2337

2337:                                             ; preds = %2336
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #9
  %2338 = call ptr @__errno_location() #10
  %2339 = load i32, ptr %2338, align 4, !tbaa !5
  store i32 %2339, ptr %52, align 4, !tbaa !5
  %2340 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2341 = call i32 @s2n_print_stacktrace(ptr noundef %2340)
  %2342 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2343 = trunc i8 %2342 to i1
  br i1 %2343, label %2344, label %2366

2344:                                             ; preds = %2337
  %2345 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2346 = call i32 @fileno(ptr noundef %2345) #9
  %2347 = call i32 @isatty(i32 noundef %2346) #9
  %2348 = icmp ne i32 %2347, 0
  br i1 %2348, label %2349, label %2366

2349:                                             ; preds = %2344
  %2350 = load i32, ptr %52, align 4, !tbaa !5
  %2351 = call ptr @__errno_location() #10
  store i32 %2350, ptr %2351, align 4, !tbaa !5
  %2352 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2353 = load i32, ptr @test_count, align 4, !tbaa !5
  %2354 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2355 = load i32, ptr %2354, align 4, !tbaa !5
  %2356 = call ptr @s2n_strerror(i32 noundef %2355, ptr noundef @.str.4)
  %2357 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2358 = load i32, ptr %2357, align 4, !tbaa !5
  %2359 = call ptr @s2n_strerror_debug(i32 noundef %2358, ptr noundef @.str.4)
  %2360 = call ptr @__errno_location() #10
  %2361 = load i32, ptr %2360, align 4, !tbaa !5
  %2362 = call ptr @strerror(i32 noundef %2361) #9
  %2363 = call ptr @__errno_location() #10
  %2364 = load i32, ptr %2363, align 4, !tbaa !5
  %2365 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2352, ptr noundef @.str.2, i32 noundef %2353, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 127, ptr noundef %2356, ptr noundef %2359, ptr noundef %2362, i32 noundef %2364) #9
  br label %2383

2366:                                             ; preds = %2344, %2337
  %2367 = load i32, ptr %52, align 4, !tbaa !5
  %2368 = call ptr @__errno_location() #10
  store i32 %2367, ptr %2368, align 4, !tbaa !5
  %2369 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2370 = load i32, ptr @test_count, align 4, !tbaa !5
  %2371 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2372 = load i32, ptr %2371, align 4, !tbaa !5
  %2373 = call ptr @s2n_strerror(i32 noundef %2372, ptr noundef @.str.4)
  %2374 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2375 = load i32, ptr %2374, align 4, !tbaa !5
  %2376 = call ptr @s2n_strerror_debug(i32 noundef %2375, ptr noundef @.str.4)
  %2377 = call ptr @__errno_location() #10
  %2378 = load i32, ptr %2377, align 4, !tbaa !5
  %2379 = call ptr @strerror(i32 noundef %2378) #9
  %2380 = call ptr @__errno_location() #10
  %2381 = load i32, ptr %2380, align 4, !tbaa !5
  %2382 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2369, ptr noundef @.str.5, i32 noundef %2370, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 127, ptr noundef %2373, ptr noundef %2376, ptr noundef %2379, i32 noundef %2381) #9
  br label %2383

2383:                                             ; preds = %2366, %2349
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #9
  br label %2384

2384:                                             ; preds = %2383
  br label %2385

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

2386:                                             ; No predecessors!
  br label %2387

2387:                                             ; preds = %2386
  br label %2388

2388:                                             ; preds = %2387, %2330
  br label %2389

2389:                                             ; preds = %2388
  br label %2390

2390:                                             ; preds = %2389
  %2391 = getelementptr inbounds [2 x i8], ptr %47, i64 0, i64 0
  store i8 19, ptr %2391, align 1, !tbaa !43
  %2392 = getelementptr inbounds [2 x i8], ptr %47, i64 0, i64 1
  store i8 6, ptr %2392, align 1, !tbaa !43
  br label %2393

2393:                                             ; preds = %2390
  %2394 = load i32, ptr @test_count, align 4, !tbaa !5
  %2395 = add nsw i32 %2394, 1
  store i32 %2395, ptr @test_count, align 4, !tbaa !5
  %2396 = getelementptr inbounds [2 x i8], ptr %47, i64 0, i64 0
  %2397 = call zeroext i1 @s2n_is_valid_tls13_cipher(ptr noundef %2396)
  br i1 %2397, label %2398, label %2451

2398:                                             ; preds = %2393
  br label %2399

2399:                                             ; preds = %2398
  br label %2400

2400:                                             ; preds = %2399
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #9
  %2401 = call ptr @__errno_location() #10
  %2402 = load i32, ptr %2401, align 4, !tbaa !5
  store i32 %2402, ptr %53, align 4, !tbaa !5
  %2403 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2404 = call i32 @s2n_print_stacktrace(ptr noundef %2403)
  %2405 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2406 = trunc i8 %2405 to i1
  br i1 %2406, label %2407, label %2429

2407:                                             ; preds = %2400
  %2408 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2409 = call i32 @fileno(ptr noundef %2408) #9
  %2410 = call i32 @isatty(i32 noundef %2409) #9
  %2411 = icmp ne i32 %2410, 0
  br i1 %2411, label %2412, label %2429

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

2429:                                             ; preds = %2407, %2400
  %2430 = load i32, ptr %53, align 4, !tbaa !5
  %2431 = call ptr @__errno_location() #10
  store i32 %2430, ptr %2431, align 4, !tbaa !5
  %2432 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2433 = load i32, ptr @test_count, align 4, !tbaa !5
  %2434 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2435 = load i32, ptr %2434, align 4, !tbaa !5
  %2436 = call ptr @s2n_strerror(i32 noundef %2435, ptr noundef @.str.4)
  %2437 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2438 = load i32, ptr %2437, align 4, !tbaa !5
  %2439 = call ptr @s2n_strerror_debug(i32 noundef %2438, ptr noundef @.str.4)
  %2440 = call ptr @__errno_location() #10
  %2441 = load i32, ptr %2440, align 4, !tbaa !5
  %2442 = call ptr @strerror(i32 noundef %2441) #9
  %2443 = call ptr @__errno_location() #10
  %2444 = load i32, ptr %2443, align 4, !tbaa !5
  %2445 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2432, ptr noundef @.str.5, i32 noundef %2433, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 130, ptr noundef %2436, ptr noundef %2439, ptr noundef %2442, i32 noundef %2444) #9
  br label %2446

2446:                                             ; preds = %2429, %2412
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #9
  br label %2447

2447:                                             ; preds = %2446
  br label %2448

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

2449:                                             ; No predecessors!
  br label %2450

2450:                                             ; preds = %2449
  br label %2451

2451:                                             ; preds = %2450, %2393
  br label %2452

2452:                                             ; preds = %2451
  br label %2453

2453:                                             ; preds = %2452
  %2454 = getelementptr inbounds [2 x i8], ptr %47, i64 0, i64 0
  store i8 19, ptr %2454, align 1, !tbaa !43
  %2455 = getelementptr inbounds [2 x i8], ptr %47, i64 0, i64 1
  store i8 0, ptr %2455, align 1, !tbaa !43
  br label %2456

2456:                                             ; preds = %2453
  %2457 = load i32, ptr @test_count, align 4, !tbaa !5
  %2458 = add nsw i32 %2457, 1
  store i32 %2458, ptr @test_count, align 4, !tbaa !5
  %2459 = getelementptr inbounds [2 x i8], ptr %47, i64 0, i64 0
  %2460 = call zeroext i1 @s2n_is_valid_tls13_cipher(ptr noundef %2459)
  br i1 %2460, label %2461, label %2514

2461:                                             ; preds = %2456
  br label %2462

2462:                                             ; preds = %2461
  br label %2463

2463:                                             ; preds = %2462
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #9
  %2464 = call ptr @__errno_location() #10
  %2465 = load i32, ptr %2464, align 4, !tbaa !5
  store i32 %2465, ptr %54, align 4, !tbaa !5
  %2466 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2467 = call i32 @s2n_print_stacktrace(ptr noundef %2466)
  %2468 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2469 = trunc i8 %2468 to i1
  br i1 %2469, label %2470, label %2492

2470:                                             ; preds = %2463
  %2471 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2472 = call i32 @fileno(ptr noundef %2471) #9
  %2473 = call i32 @isatty(i32 noundef %2472) #9
  %2474 = icmp ne i32 %2473, 0
  br i1 %2474, label %2475, label %2492

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

2492:                                             ; preds = %2470, %2463
  %2493 = load i32, ptr %54, align 4, !tbaa !5
  %2494 = call ptr @__errno_location() #10
  store i32 %2493, ptr %2494, align 4, !tbaa !5
  %2495 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2496 = load i32, ptr @test_count, align 4, !tbaa !5
  %2497 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2498 = load i32, ptr %2497, align 4, !tbaa !5
  %2499 = call ptr @s2n_strerror(i32 noundef %2498, ptr noundef @.str.4)
  %2500 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2501 = load i32, ptr %2500, align 4, !tbaa !5
  %2502 = call ptr @s2n_strerror_debug(i32 noundef %2501, ptr noundef @.str.4)
  %2503 = call ptr @__errno_location() #10
  %2504 = load i32, ptr %2503, align 4, !tbaa !5
  %2505 = call ptr @strerror(i32 noundef %2504) #9
  %2506 = call ptr @__errno_location() #10
  %2507 = load i32, ptr %2506, align 4, !tbaa !5
  %2508 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2495, ptr noundef @.str.5, i32 noundef %2496, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 133, ptr noundef %2499, ptr noundef %2502, ptr noundef %2505, i32 noundef %2507) #9
  br label %2509

2509:                                             ; preds = %2492, %2475
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #9
  br label %2510

2510:                                             ; preds = %2509
  br label %2511

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

2512:                                             ; No predecessors!
  br label %2513

2513:                                             ; preds = %2512
  br label %2514

2514:                                             ; preds = %2513, %2456
  br label %2515

2515:                                             ; preds = %2514
  br label %2516

2516:                                             ; preds = %2515
  %2517 = getelementptr inbounds [2 x i8], ptr %47, i64 0, i64 0
  store i8 18, ptr %2517, align 1, !tbaa !43
  %2518 = getelementptr inbounds [2 x i8], ptr %47, i64 0, i64 1
  store i8 1, ptr %2518, align 1, !tbaa !43
  br label %2519

2519:                                             ; preds = %2516
  %2520 = load i32, ptr @test_count, align 4, !tbaa !5
  %2521 = add nsw i32 %2520, 1
  store i32 %2521, ptr @test_count, align 4, !tbaa !5
  %2522 = getelementptr inbounds [2 x i8], ptr %47, i64 0, i64 0
  %2523 = call zeroext i1 @s2n_is_valid_tls13_cipher(ptr noundef %2522)
  br i1 %2523, label %2524, label %2577

2524:                                             ; preds = %2519
  br label %2525

2525:                                             ; preds = %2524
  br label %2526

2526:                                             ; preds = %2525
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #9
  %2527 = call ptr @__errno_location() #10
  %2528 = load i32, ptr %2527, align 4, !tbaa !5
  store i32 %2528, ptr %55, align 4, !tbaa !5
  %2529 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2530 = call i32 @s2n_print_stacktrace(ptr noundef %2529)
  %2531 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2532 = trunc i8 %2531 to i1
  br i1 %2532, label %2533, label %2555

2533:                                             ; preds = %2526
  %2534 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2535 = call i32 @fileno(ptr noundef %2534) #9
  %2536 = call i32 @isatty(i32 noundef %2535) #9
  %2537 = icmp ne i32 %2536, 0
  br i1 %2537, label %2538, label %2555

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

2555:                                             ; preds = %2533, %2526
  %2556 = load i32, ptr %55, align 4, !tbaa !5
  %2557 = call ptr @__errno_location() #10
  store i32 %2556, ptr %2557, align 4, !tbaa !5
  %2558 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2559 = load i32, ptr @test_count, align 4, !tbaa !5
  %2560 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2561 = load i32, ptr %2560, align 4, !tbaa !5
  %2562 = call ptr @s2n_strerror(i32 noundef %2561, ptr noundef @.str.4)
  %2563 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2564 = load i32, ptr %2563, align 4, !tbaa !5
  %2565 = call ptr @s2n_strerror_debug(i32 noundef %2564, ptr noundef @.str.4)
  %2566 = call ptr @__errno_location() #10
  %2567 = load i32, ptr %2566, align 4, !tbaa !5
  %2568 = call ptr @strerror(i32 noundef %2567) #9
  %2569 = call ptr @__errno_location() #10
  %2570 = load i32, ptr %2569, align 4, !tbaa !5
  %2571 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2558, ptr noundef @.str.5, i32 noundef %2559, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 136, ptr noundef %2562, ptr noundef %2565, ptr noundef %2568, i32 noundef %2570) #9
  br label %2572

2572:                                             ; preds = %2555, %2538
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #9
  br label %2573

2573:                                             ; preds = %2572
  br label %2574

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

2575:                                             ; No predecessors!
  br label %2576

2576:                                             ; preds = %2575
  br label %2577

2577:                                             ; preds = %2576, %2519
  br label %2578

2578:                                             ; preds = %2577
  br label %2579

2579:                                             ; preds = %2578
  br label %2580

2580:                                             ; preds = %2579
  %2581 = load i32, ptr @test_count, align 4, !tbaa !5
  %2582 = add nsw i32 %2581, 1
  store i32 %2582, ptr @test_count, align 4, !tbaa !5
  %2583 = call zeroext i1 @s2n_is_valid_tls13_cipher(ptr noundef getelementptr inbounds (%struct.s2n_cipher_suite, ptr @s2n_dhe_rsa_with_3des_ede_cbc_sha, i32 0, i32 3))
  br i1 %2583, label %2584, label %2637

2584:                                             ; preds = %2580
  br label %2585

2585:                                             ; preds = %2584
  br label %2586

2586:                                             ; preds = %2585
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #9
  %2587 = call ptr @__errno_location() #10
  %2588 = load i32, ptr %2587, align 4, !tbaa !5
  store i32 %2588, ptr %56, align 4, !tbaa !5
  %2589 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2590 = call i32 @s2n_print_stacktrace(ptr noundef %2589)
  %2591 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2592 = trunc i8 %2591 to i1
  br i1 %2592, label %2593, label %2615

2593:                                             ; preds = %2586
  %2594 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2595 = call i32 @fileno(ptr noundef %2594) #9
  %2596 = call i32 @isatty(i32 noundef %2595) #9
  %2597 = icmp ne i32 %2596, 0
  br i1 %2597, label %2598, label %2615

2598:                                             ; preds = %2593
  %2599 = load i32, ptr %56, align 4, !tbaa !5
  %2600 = call ptr @__errno_location() #10
  store i32 %2599, ptr %2600, align 4, !tbaa !5
  %2601 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2602 = load i32, ptr @test_count, align 4, !tbaa !5
  %2603 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2604 = load i32, ptr %2603, align 4, !tbaa !5
  %2605 = call ptr @s2n_strerror(i32 noundef %2604, ptr noundef @.str.4)
  %2606 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2607 = load i32, ptr %2606, align 4, !tbaa !5
  %2608 = call ptr @s2n_strerror_debug(i32 noundef %2607, ptr noundef @.str.4)
  %2609 = call ptr @__errno_location() #10
  %2610 = load i32, ptr %2609, align 4, !tbaa !5
  %2611 = call ptr @strerror(i32 noundef %2610) #9
  %2612 = call ptr @__errno_location() #10
  %2613 = load i32, ptr %2612, align 4, !tbaa !5
  %2614 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2601, ptr noundef @.str.2, i32 noundef %2602, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 138, ptr noundef %2605, ptr noundef %2608, ptr noundef %2611, i32 noundef %2613) #9
  br label %2632

2615:                                             ; preds = %2593, %2586
  %2616 = load i32, ptr %56, align 4, !tbaa !5
  %2617 = call ptr @__errno_location() #10
  store i32 %2616, ptr %2617, align 4, !tbaa !5
  %2618 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2619 = load i32, ptr @test_count, align 4, !tbaa !5
  %2620 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2621 = load i32, ptr %2620, align 4, !tbaa !5
  %2622 = call ptr @s2n_strerror(i32 noundef %2621, ptr noundef @.str.4)
  %2623 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2624 = load i32, ptr %2623, align 4, !tbaa !5
  %2625 = call ptr @s2n_strerror_debug(i32 noundef %2624, ptr noundef @.str.4)
  %2626 = call ptr @__errno_location() #10
  %2627 = load i32, ptr %2626, align 4, !tbaa !5
  %2628 = call ptr @strerror(i32 noundef %2627) #9
  %2629 = call ptr @__errno_location() #10
  %2630 = load i32, ptr %2629, align 4, !tbaa !5
  %2631 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2618, ptr noundef @.str.5, i32 noundef %2619, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 138, ptr noundef %2622, ptr noundef %2625, ptr noundef %2628, i32 noundef %2630) #9
  br label %2632

2632:                                             ; preds = %2615, %2598
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #9
  br label %2633

2633:                                             ; preds = %2632
  br label %2634

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

2635:                                             ; No predecessors!
  br label %2636

2636:                                             ; preds = %2635
  br label %2637

2637:                                             ; preds = %2636, %2580
  br label %2638

2638:                                             ; preds = %2637
  br label %2639

2639:                                             ; preds = %2638
  br label %2640

2640:                                             ; preds = %2639
  %2641 = load i32, ptr @test_count, align 4, !tbaa !5
  %2642 = add nsw i32 %2641, 1
  store i32 %2642, ptr @test_count, align 4, !tbaa !5
  %2643 = call zeroext i1 @s2n_is_valid_tls13_cipher(ptr noundef getelementptr inbounds (%struct.s2n_cipher_suite, ptr @s2n_tls13_aes_128_gcm_sha256, i32 0, i32 3))
  br i1 %2643, label %2697, label %2644

2644:                                             ; preds = %2640
  br label %2645

2645:                                             ; preds = %2644
  br label %2646

2646:                                             ; preds = %2645
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #9
  %2647 = call ptr @__errno_location() #10
  %2648 = load i32, ptr %2647, align 4, !tbaa !5
  store i32 %2648, ptr %57, align 4, !tbaa !5
  %2649 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2650 = call i32 @s2n_print_stacktrace(ptr noundef %2649)
  %2651 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2652 = trunc i8 %2651 to i1
  br i1 %2652, label %2653, label %2675

2653:                                             ; preds = %2646
  %2654 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2655 = call i32 @fileno(ptr noundef %2654) #9
  %2656 = call i32 @isatty(i32 noundef %2655) #9
  %2657 = icmp ne i32 %2656, 0
  br i1 %2657, label %2658, label %2675

2658:                                             ; preds = %2653
  %2659 = load i32, ptr %57, align 4, !tbaa !5
  %2660 = call ptr @__errno_location() #10
  store i32 %2659, ptr %2660, align 4, !tbaa !5
  %2661 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2662 = load i32, ptr @test_count, align 4, !tbaa !5
  %2663 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2664 = load i32, ptr %2663, align 4, !tbaa !5
  %2665 = call ptr @s2n_strerror(i32 noundef %2664, ptr noundef @.str.4)
  %2666 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2667 = load i32, ptr %2666, align 4, !tbaa !5
  %2668 = call ptr @s2n_strerror_debug(i32 noundef %2667, ptr noundef @.str.4)
  %2669 = call ptr @__errno_location() #10
  %2670 = load i32, ptr %2669, align 4, !tbaa !5
  %2671 = call ptr @strerror(i32 noundef %2670) #9
  %2672 = call ptr @__errno_location() #10
  %2673 = load i32, ptr %2672, align 4, !tbaa !5
  %2674 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2661, ptr noundef @.str.2, i32 noundef %2662, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 139, ptr noundef %2665, ptr noundef %2668, ptr noundef %2671, i32 noundef %2673) #9
  br label %2692

2675:                                             ; preds = %2653, %2646
  %2676 = load i32, ptr %57, align 4, !tbaa !5
  %2677 = call ptr @__errno_location() #10
  store i32 %2676, ptr %2677, align 4, !tbaa !5
  %2678 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2679 = load i32, ptr @test_count, align 4, !tbaa !5
  %2680 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2681 = load i32, ptr %2680, align 4, !tbaa !5
  %2682 = call ptr @s2n_strerror(i32 noundef %2681, ptr noundef @.str.4)
  %2683 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2684 = load i32, ptr %2683, align 4, !tbaa !5
  %2685 = call ptr @s2n_strerror_debug(i32 noundef %2684, ptr noundef @.str.4)
  %2686 = call ptr @__errno_location() #10
  %2687 = load i32, ptr %2686, align 4, !tbaa !5
  %2688 = call ptr @strerror(i32 noundef %2687) #9
  %2689 = call ptr @__errno_location() #10
  %2690 = load i32, ptr %2689, align 4, !tbaa !5
  %2691 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2678, ptr noundef @.str.5, i32 noundef %2679, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 139, ptr noundef %2682, ptr noundef %2685, ptr noundef %2688, i32 noundef %2690) #9
  br label %2692

2692:                                             ; preds = %2675, %2658
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #9
  br label %2693

2693:                                             ; preds = %2692
  br label %2694

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

2695:                                             ; No predecessors!
  br label %2696

2696:                                             ; preds = %2695
  br label %2697

2697:                                             ; preds = %2696, %2640
  br label %2698

2698:                                             ; preds = %2697
  br label %2699

2699:                                             ; preds = %2698
  br label %2700

2700:                                             ; preds = %2699
  %2701 = load i32, ptr @test_count, align 4, !tbaa !5
  %2702 = add nsw i32 %2701, 1
  store i32 %2702, ptr @test_count, align 4, !tbaa !5
  %2703 = call zeroext i1 @s2n_is_valid_tls13_cipher(ptr noundef getelementptr inbounds (%struct.s2n_cipher_suite, ptr @s2n_tls13_aes_256_gcm_sha384, i32 0, i32 3))
  br i1 %2703, label %2757, label %2704

2704:                                             ; preds = %2700
  br label %2705

2705:                                             ; preds = %2704
  br label %2706

2706:                                             ; preds = %2705
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #9
  %2707 = call ptr @__errno_location() #10
  %2708 = load i32, ptr %2707, align 4, !tbaa !5
  store i32 %2708, ptr %58, align 4, !tbaa !5
  %2709 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2710 = call i32 @s2n_print_stacktrace(ptr noundef %2709)
  %2711 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2712 = trunc i8 %2711 to i1
  br i1 %2712, label %2713, label %2735

2713:                                             ; preds = %2706
  %2714 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2715 = call i32 @fileno(ptr noundef %2714) #9
  %2716 = call i32 @isatty(i32 noundef %2715) #9
  %2717 = icmp ne i32 %2716, 0
  br i1 %2717, label %2718, label %2735

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

2735:                                             ; preds = %2713, %2706
  %2736 = load i32, ptr %58, align 4, !tbaa !5
  %2737 = call ptr @__errno_location() #10
  store i32 %2736, ptr %2737, align 4, !tbaa !5
  %2738 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2739 = load i32, ptr @test_count, align 4, !tbaa !5
  %2740 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2741 = load i32, ptr %2740, align 4, !tbaa !5
  %2742 = call ptr @s2n_strerror(i32 noundef %2741, ptr noundef @.str.4)
  %2743 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2744 = load i32, ptr %2743, align 4, !tbaa !5
  %2745 = call ptr @s2n_strerror_debug(i32 noundef %2744, ptr noundef @.str.4)
  %2746 = call ptr @__errno_location() #10
  %2747 = load i32, ptr %2746, align 4, !tbaa !5
  %2748 = call ptr @strerror(i32 noundef %2747) #9
  %2749 = call ptr @__errno_location() #10
  %2750 = load i32, ptr %2749, align 4, !tbaa !5
  %2751 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2738, ptr noundef @.str.5, i32 noundef %2739, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 140, ptr noundef %2742, ptr noundef %2745, ptr noundef %2748, i32 noundef %2750) #9
  br label %2752

2752:                                             ; preds = %2735, %2718
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #9
  br label %2753

2753:                                             ; preds = %2752
  br label %2754

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

2755:                                             ; No predecessors!
  br label %2756

2756:                                             ; preds = %2755
  br label %2757

2757:                                             ; preds = %2756, %2700
  br label %2758

2758:                                             ; preds = %2757
  br label %2759

2759:                                             ; preds = %2758
  br label %2760

2760:                                             ; preds = %2759
  %2761 = load i32, ptr @test_count, align 4, !tbaa !5
  %2762 = add nsw i32 %2761, 1
  store i32 %2762, ptr @test_count, align 4, !tbaa !5
  %2763 = call zeroext i1 @s2n_is_valid_tls13_cipher(ptr noundef getelementptr inbounds (%struct.s2n_cipher_suite, ptr @s2n_tls13_chacha20_poly1305_sha256, i32 0, i32 3))
  br i1 %2763, label %2817, label %2764

2764:                                             ; preds = %2760
  br label %2765

2765:                                             ; preds = %2764
  br label %2766

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

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

2778:                                             ; preds = %2773
  %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.4)
  %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.4)
  %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.2, i32 noundef %2782, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 141, ptr noundef %2785, ptr noundef %2788, ptr noundef %2791, i32 noundef %2793) #9
  br label %2812

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

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

2813:                                             ; preds = %2812
  br label %2814

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

2815:                                             ; No predecessors!
  br label %2816

2816:                                             ; preds = %2815
  br label %2817

2817:                                             ; preds = %2816, %2760
  br label %2818

2818:                                             ; preds = %2817
  br label %2819

2819:                                             ; preds = %2818
  call void @llvm.lifetime.end.p0(i64 2, ptr %47) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #9
  store ptr null, ptr %60, align 8, !tbaa !9
  br label %2820

2820:                                             ; preds = %2819
  %2821 = load i32, ptr @test_count, align 4, !tbaa !5
  %2822 = add nsw i32 %2821, 1
  store i32 %2822, ptr @test_count, align 4, !tbaa !5
  %2823 = call i32 @s2n_extension_type_list_get(i32 noundef 3, ptr noundef %60)
  %2824 = icmp eq i32 %2823, -1
  br i1 %2824, label %2825, label %2878

2825:                                             ; preds = %2820
  br label %2826

2826:                                             ; preds = %2825
  br label %2827

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

2834:                                             ; preds = %2827
  %2835 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2836 = call i32 @fileno(ptr noundef %2835) #9
  %2837 = call i32 @isatty(i32 noundef %2836) #9
  %2838 = icmp ne i32 %2837, 0
  br i1 %2838, label %2839, label %2856

2839:                                             ; preds = %2834
  %2840 = load i32, ptr %61, 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.4)
  %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.4)
  %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.2, i32 noundef %2843, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 147, ptr noundef %2846, ptr noundef %2849, ptr noundef %2852, i32 noundef %2854) #9
  br label %2873

2856:                                             ; preds = %2834, %2827
  %2857 = load i32, ptr %61, align 4, !tbaa !5
  %2858 = call ptr @__errno_location() #10
  store i32 %2857, ptr %2858, align 4, !tbaa !5
  %2859 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2860 = load i32, ptr @test_count, align 4, !tbaa !5
  %2861 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2862 = load i32, ptr %2861, align 4, !tbaa !5
  %2863 = call ptr @s2n_strerror(i32 noundef %2862, ptr noundef @.str.4)
  %2864 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2865 = load i32, ptr %2864, align 4, !tbaa !5
  %2866 = call ptr @s2n_strerror_debug(i32 noundef %2865, ptr noundef @.str.4)
  %2867 = call ptr @__errno_location() #10
  %2868 = load i32, ptr %2867, align 4, !tbaa !5
  %2869 = call ptr @strerror(i32 noundef %2868) #9
  %2870 = call ptr @__errno_location() #10
  %2871 = load i32, ptr %2870, align 4, !tbaa !5
  %2872 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2859, ptr noundef @.str.5, i32 noundef %2860, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 147, ptr noundef %2863, ptr noundef %2866, ptr noundef %2869, i32 noundef %2871) #9
  br label %2873

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

2874:                                             ; preds = %2873
  br label %2875

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

2876:                                             ; No predecessors!
  br label %2877

2877:                                             ; preds = %2876
  br label %2878

2878:                                             ; preds = %2877, %2820
  br label %2879

2879:                                             ; preds = %2878
  br label %2880

2880:                                             ; preds = %2879
  br label %2881

2881:                                             ; preds = %2880
  %2882 = load i32, ptr @test_count, align 4, !tbaa !5
  %2883 = add nsw i32 %2882, 1
  store i32 %2883, ptr @test_count, align 4, !tbaa !5
  %2884 = load ptr, ptr %60, align 8, !tbaa !9
  %2885 = icmp eq ptr %2884, null
  br i1 %2885, label %2886, label %2939

2886:                                             ; preds = %2881
  br label %2887

2887:                                             ; preds = %2886
  br label %2888

2888:                                             ; preds = %2887
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #9
  %2889 = call ptr @__errno_location() #10
  %2890 = load i32, ptr %2889, align 4, !tbaa !5
  store i32 %2890, ptr %62, align 4, !tbaa !5
  %2891 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2892 = call i32 @s2n_print_stacktrace(ptr noundef %2891)
  %2893 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2894 = trunc i8 %2893 to i1
  br i1 %2894, label %2895, label %2917

2895:                                             ; preds = %2888
  %2896 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2897 = call i32 @fileno(ptr noundef %2896) #9
  %2898 = call i32 @isatty(i32 noundef %2897) #9
  %2899 = icmp ne i32 %2898, 0
  br i1 %2899, label %2900, label %2917

2900:                                             ; preds = %2895
  %2901 = load i32, ptr %62, align 4, !tbaa !5
  %2902 = call ptr @__errno_location() #10
  store i32 %2901, ptr %2902, align 4, !tbaa !5
  %2903 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2904 = load i32, ptr @test_count, align 4, !tbaa !5
  %2905 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2906 = load i32, ptr %2905, align 4, !tbaa !5
  %2907 = call ptr @s2n_strerror(i32 noundef %2906, ptr noundef @.str.4)
  %2908 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2909 = load i32, ptr %2908, align 4, !tbaa !5
  %2910 = call ptr @s2n_strerror_debug(i32 noundef %2909, ptr noundef @.str.4)
  %2911 = call ptr @__errno_location() #10
  %2912 = load i32, ptr %2911, align 4, !tbaa !5
  %2913 = call ptr @strerror(i32 noundef %2912) #9
  %2914 = call ptr @__errno_location() #10
  %2915 = load i32, ptr %2914, align 4, !tbaa !5
  %2916 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2903, ptr noundef @.str.2, i32 noundef %2904, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 148, ptr noundef %2907, ptr noundef %2910, ptr noundef %2913, i32 noundef %2915) #9
  br label %2934

2917:                                             ; preds = %2895, %2888
  %2918 = load i32, ptr %62, align 4, !tbaa !5
  %2919 = call ptr @__errno_location() #10
  store i32 %2918, ptr %2919, align 4, !tbaa !5
  %2920 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2921 = load i32, ptr @test_count, align 4, !tbaa !5
  %2922 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2923 = load i32, ptr %2922, align 4, !tbaa !5
  %2924 = call ptr @s2n_strerror(i32 noundef %2923, ptr noundef @.str.4)
  %2925 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2926 = load i32, ptr %2925, align 4, !tbaa !5
  %2927 = call ptr @s2n_strerror_debug(i32 noundef %2926, ptr noundef @.str.4)
  %2928 = call ptr @__errno_location() #10
  %2929 = load i32, ptr %2928, align 4, !tbaa !5
  %2930 = call ptr @strerror(i32 noundef %2929) #9
  %2931 = call ptr @__errno_location() #10
  %2932 = load i32, ptr %2931, align 4, !tbaa !5
  %2933 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2920, ptr noundef @.str.5, i32 noundef %2921, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 148, ptr noundef %2924, ptr noundef %2927, ptr noundef %2930, i32 noundef %2932) #9
  br label %2934

2934:                                             ; preds = %2917, %2900
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #9
  br label %2935

2935:                                             ; preds = %2934
  br label %2936

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

2937:                                             ; No predecessors!
  br label %2938

2938:                                             ; preds = %2937
  br label %2939

2939:                                             ; preds = %2938, %2881
  br label %2940

2940:                                             ; preds = %2939
  br label %2941

2941:                                             ; preds = %2940
  br label %2942

2942:                                             ; preds = %2941
  %2943 = load i32, ptr @test_count, align 4, !tbaa !5
  %2944 = add nsw i32 %2943, 1
  store i32 %2944, ptr @test_count, align 4, !tbaa !5
  %2945 = load ptr, ptr %60, align 8, !tbaa !9
  %2946 = getelementptr inbounds %struct.s2n_extension_type_list, ptr %2945, i32 0, i32 1
  %2947 = load i8, ptr %2946, align 8, !tbaa !44
  %2948 = zext i8 %2947 to i32
  %2949 = icmp sgt i32 %2948, 0
  br i1 %2949, label %3003, label %2950

2950:                                             ; preds = %2942
  br label %2951

2951:                                             ; preds = %2950
  br label %2952

2952:                                             ; preds = %2951
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #9
  %2953 = call ptr @__errno_location() #10
  %2954 = load i32, ptr %2953, align 4, !tbaa !5
  store i32 %2954, ptr %63, align 4, !tbaa !5
  %2955 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2956 = call i32 @s2n_print_stacktrace(ptr noundef %2955)
  %2957 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2958 = trunc i8 %2957 to i1
  br i1 %2958, label %2959, label %2981

2959:                                             ; preds = %2952
  %2960 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2961 = call i32 @fileno(ptr noundef %2960) #9
  %2962 = call i32 @isatty(i32 noundef %2961) #9
  %2963 = icmp ne i32 %2962, 0
  br i1 %2963, label %2964, label %2981

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

2981:                                             ; preds = %2959, %2952
  %2982 = load i32, ptr %63, align 4, !tbaa !5
  %2983 = call ptr @__errno_location() #10
  store i32 %2982, ptr %2983, align 4, !tbaa !5
  %2984 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2985 = load i32, ptr @test_count, align 4, !tbaa !5
  %2986 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2987 = load i32, ptr %2986, align 4, !tbaa !5
  %2988 = call ptr @s2n_strerror(i32 noundef %2987, ptr noundef @.str.4)
  %2989 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2990 = load i32, ptr %2989, align 4, !tbaa !5
  %2991 = call ptr @s2n_strerror_debug(i32 noundef %2990, ptr noundef @.str.4)
  %2992 = call ptr @__errno_location() #10
  %2993 = load i32, ptr %2992, align 4, !tbaa !5
  %2994 = call ptr @strerror(i32 noundef %2993) #9
  %2995 = call ptr @__errno_location() #10
  %2996 = load i32, ptr %2995, align 4, !tbaa !5
  %2997 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2984, ptr noundef @.str.5, i32 noundef %2985, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 149, ptr noundef %2988, ptr noundef %2991, ptr noundef %2994, i32 noundef %2996) #9
  br label %2998

2998:                                             ; preds = %2981, %2964
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #9
  br label %2999

2999:                                             ; preds = %2998
  br label %3000

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

3001:                                             ; No predecessors!
  br label %3002

3002:                                             ; preds = %3001
  br label %3003

3003:                                             ; preds = %3002, %2942
  br label %3004

3004:                                             ; preds = %3003
  br label %3005

3005:                                             ; preds = %3004
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #9
  store ptr null, ptr %64, align 8, !tbaa !9
  br label %3006

3006:                                             ; preds = %3005
  %3007 = load i32, ptr @test_count, align 4, !tbaa !5
  %3008 = add nsw i32 %3007, 1
  store i32 %3008, ptr @test_count, align 4, !tbaa !5
  %3009 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %3009, ptr %64, align 8, !tbaa !9
  %3010 = icmp eq ptr %3009, null
  br i1 %3010, label %3011, label %3064

3011:                                             ; preds = %3006
  br label %3012

3012:                                             ; preds = %3011
  br label %3013

3013:                                             ; preds = %3012
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #9
  %3014 = call ptr @__errno_location() #10
  %3015 = load i32, ptr %3014, align 4, !tbaa !5
  store i32 %3015, ptr %65, align 4, !tbaa !5
  %3016 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3017 = call i32 @s2n_print_stacktrace(ptr noundef %3016)
  %3018 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3019 = trunc i8 %3018 to i1
  br i1 %3019, label %3020, label %3042

3020:                                             ; preds = %3013
  %3021 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3022 = call i32 @fileno(ptr noundef %3021) #9
  %3023 = call i32 @isatty(i32 noundef %3022) #9
  %3024 = icmp ne i32 %3023, 0
  br i1 %3024, label %3025, label %3042

3025:                                             ; preds = %3020
  %3026 = load i32, ptr %65, 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.4)
  %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.4)
  %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.2, i32 noundef %3029, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 152, ptr noundef %3032, ptr noundef %3035, ptr noundef %3038, i32 noundef %3040) #9
  br label %3059

3042:                                             ; preds = %3020, %3013
  %3043 = load i32, ptr %65, align 4, !tbaa !5
  %3044 = call ptr @__errno_location() #10
  store i32 %3043, ptr %3044, align 4, !tbaa !5
  %3045 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3046 = load i32, ptr @test_count, align 4, !tbaa !5
  %3047 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3048 = load i32, ptr %3047, align 4, !tbaa !5
  %3049 = call ptr @s2n_strerror(i32 noundef %3048, ptr noundef @.str.4)
  %3050 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3051 = load i32, ptr %3050, align 4, !tbaa !5
  %3052 = call ptr @s2n_strerror_debug(i32 noundef %3051, ptr noundef @.str.4)
  %3053 = call ptr @__errno_location() #10
  %3054 = load i32, ptr %3053, align 4, !tbaa !5
  %3055 = call ptr @strerror(i32 noundef %3054) #9
  %3056 = call ptr @__errno_location() #10
  %3057 = load i32, ptr %3056, align 4, !tbaa !5
  %3058 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3045, ptr noundef @.str.5, i32 noundef %3046, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 152, ptr noundef %3049, ptr noundef %3052, ptr noundef %3055, i32 noundef %3057) #9
  br label %3059

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

3060:                                             ; preds = %3059
  br label %3061

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

3062:                                             ; No predecessors!
  br label %3063

3063:                                             ; preds = %3062
  br label %3064

3064:                                             ; preds = %3063, %3006
  br label %3065

3065:                                             ; preds = %3064
  br label %3066

3066:                                             ; preds = %3065
  br label %3067

3067:                                             ; preds = %3066
  %3068 = load i32, ptr @test_count, align 4, !tbaa !5
  %3069 = add nsw i32 %3068, 1
  store i32 %3069, ptr @test_count, align 4, !tbaa !5
  %3070 = load ptr, ptr %64, align 8, !tbaa !9
  %3071 = call i32 @s2n_connection_allow_all_response_extensions(ptr noundef %3070)
  %3072 = icmp eq i32 %3071, -1
  br i1 %3072, label %3073, label %3126

3073:                                             ; preds = %3067
  br label %3074

3074:                                             ; preds = %3073
  br label %3075

3075:                                             ; preds = %3074
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #9
  %3076 = call ptr @__errno_location() #10
  %3077 = load i32, ptr %3076, align 4, !tbaa !5
  store i32 %3077, ptr %66, align 4, !tbaa !5
  %3078 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3079 = call i32 @s2n_print_stacktrace(ptr noundef %3078)
  %3080 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3081 = trunc i8 %3080 to i1
  br i1 %3081, label %3082, label %3104

3082:                                             ; preds = %3075
  %3083 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3084 = call i32 @fileno(ptr noundef %3083) #9
  %3085 = call i32 @isatty(i32 noundef %3084) #9
  %3086 = icmp ne i32 %3085, 0
  br i1 %3086, label %3087, label %3104

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

3104:                                             ; preds = %3082, %3075
  %3105 = load i32, ptr %66, align 4, !tbaa !5
  %3106 = call ptr @__errno_location() #10
  store i32 %3105, ptr %3106, align 4, !tbaa !5
  %3107 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3108 = load i32, ptr @test_count, align 4, !tbaa !5
  %3109 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3110 = load i32, ptr %3109, align 4, !tbaa !5
  %3111 = call ptr @s2n_strerror(i32 noundef %3110, ptr noundef @.str.4)
  %3112 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3113 = load i32, ptr %3112, align 4, !tbaa !5
  %3114 = call ptr @s2n_strerror_debug(i32 noundef %3113, ptr noundef @.str.4)
  %3115 = call ptr @__errno_location() #10
  %3116 = load i32, ptr %3115, align 4, !tbaa !5
  %3117 = call ptr @strerror(i32 noundef %3116) #9
  %3118 = call ptr @__errno_location() #10
  %3119 = load i32, ptr %3118, align 4, !tbaa !5
  %3120 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3107, ptr noundef @.str.5, i32 noundef %3108, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 153, ptr noundef %3111, ptr noundef %3114, ptr noundef %3117, i32 noundef %3119) #9
  br label %3121

3121:                                             ; preds = %3104, %3087
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #9
  br label %3122

3122:                                             ; preds = %3121
  br label %3123

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

3124:                                             ; No predecessors!
  br label %3125

3125:                                             ; preds = %3124
  br label %3126

3126:                                             ; preds = %3125, %3067
  br label %3127

3127:                                             ; preds = %3126
  br label %3128

3128:                                             ; preds = %3127
  call void @llvm.lifetime.start.p0(i64 40, ptr %67) #9
  call void @llvm.memset.p0.i64(ptr align 8 %67, i8 0, i64 40, i1 false)
  br label %3129

3129:                                             ; preds = %3128
  %3130 = load i32, ptr @test_count, align 4, !tbaa !5
  %3131 = add nsw i32 %3130, 1
  store i32 %3131, ptr @test_count, align 4, !tbaa !5
  %3132 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %67, i32 noundef 0)
  %3133 = icmp eq i32 %3132, -1
  br i1 %3133, label %3134, label %3187

3134:                                             ; preds = %3129
  br label %3135

3135:                                             ; preds = %3134
  br label %3136

3136:                                             ; preds = %3135
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #9
  %3137 = call ptr @__errno_location() #10
  %3138 = load i32, ptr %3137, align 4, !tbaa !5
  store i32 %3138, ptr %68, align 4, !tbaa !5
  %3139 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3140 = call i32 @s2n_print_stacktrace(ptr noundef %3139)
  %3141 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3142 = trunc i8 %3141 to i1
  br i1 %3142, label %3143, label %3165

3143:                                             ; preds = %3136
  %3144 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3145 = call i32 @fileno(ptr noundef %3144) #9
  %3146 = call i32 @isatty(i32 noundef %3145) #9
  %3147 = icmp ne i32 %3146, 0
  br i1 %3147, label %3148, label %3165

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

3165:                                             ; preds = %3143, %3136
  %3166 = load i32, ptr %68, align 4, !tbaa !5
  %3167 = call ptr @__errno_location() #10
  store i32 %3166, ptr %3167, align 4, !tbaa !5
  %3168 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3169 = load i32, ptr @test_count, align 4, !tbaa !5
  %3170 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3171 = load i32, ptr %3170, align 4, !tbaa !5
  %3172 = call ptr @s2n_strerror(i32 noundef %3171, ptr noundef @.str.4)
  %3173 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3174 = load i32, ptr %3173, align 4, !tbaa !5
  %3175 = call ptr @s2n_strerror_debug(i32 noundef %3174, ptr noundef @.str.4)
  %3176 = call ptr @__errno_location() #10
  %3177 = load i32, ptr %3176, align 4, !tbaa !5
  %3178 = call ptr @strerror(i32 noundef %3177) #9
  %3179 = call ptr @__errno_location() #10
  %3180 = load i32, ptr %3179, align 4, !tbaa !5
  %3181 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3168, ptr noundef @.str.5, i32 noundef %3169, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 156, ptr noundef %3172, ptr noundef %3175, ptr noundef %3178, i32 noundef %3180) #9
  br label %3182

3182:                                             ; preds = %3165, %3148
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #9
  br label %3183

3183:                                             ; preds = %3182
  br label %3184

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

3185:                                             ; No predecessors!
  br label %3186

3186:                                             ; preds = %3185
  br label %3187

3187:                                             ; preds = %3186, %3129
  br label %3188

3188:                                             ; preds = %3187
  br label %3189

3189:                                             ; preds = %3188
  br label %3190

3190:                                             ; preds = %3189
  %3191 = load i32, ptr @test_count, align 4, !tbaa !5
  %3192 = add nsw i32 %3191, 1
  store i32 %3192, ptr @test_count, align 4, !tbaa !5
  %3193 = call i32 @s2n_stuffer_write_bytes(ptr noundef %67, ptr noundef @.str.34, i32 noundef 13)
  %3194 = icmp eq i32 %3193, -1
  br i1 %3194, label %3195, label %3248

3195:                                             ; preds = %3190
  br label %3196

3196:                                             ; preds = %3195
  br label %3197

3197:                                             ; preds = %3196
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #9
  %3198 = call ptr @__errno_location() #10
  %3199 = load i32, ptr %3198, align 4, !tbaa !5
  store i32 %3199, ptr %69, align 4, !tbaa !5
  %3200 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3201 = call i32 @s2n_print_stacktrace(ptr noundef %3200)
  %3202 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3203 = trunc i8 %3202 to i1
  br i1 %3203, label %3204, label %3226

3204:                                             ; preds = %3197
  %3205 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3206 = call i32 @fileno(ptr noundef %3205) #9
  %3207 = call i32 @isatty(i32 noundef %3206) #9
  %3208 = icmp ne i32 %3207, 0
  br i1 %3208, label %3209, label %3226

3209:                                             ; preds = %3204
  %3210 = load i32, ptr %69, align 4, !tbaa !5
  %3211 = call ptr @__errno_location() #10
  store i32 %3210, ptr %3211, align 4, !tbaa !5
  %3212 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3213 = load i32, ptr @test_count, align 4, !tbaa !5
  %3214 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3215 = load i32, ptr %3214, align 4, !tbaa !5
  %3216 = call ptr @s2n_strerror(i32 noundef %3215, ptr noundef @.str.4)
  %3217 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3218 = load i32, ptr %3217, align 4, !tbaa !5
  %3219 = call ptr @s2n_strerror_debug(i32 noundef %3218, ptr noundef @.str.4)
  %3220 = call ptr @__errno_location() #10
  %3221 = load i32, ptr %3220, align 4, !tbaa !5
  %3222 = call ptr @strerror(i32 noundef %3221) #9
  %3223 = call ptr @__errno_location() #10
  %3224 = load i32, ptr %3223, align 4, !tbaa !5
  %3225 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3212, ptr noundef @.str.2, i32 noundef %3213, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 157, ptr noundef %3216, ptr noundef %3219, ptr noundef %3222, i32 noundef %3224) #9
  br label %3243

3226:                                             ; preds = %3204, %3197
  %3227 = load i32, ptr %69, align 4, !tbaa !5
  %3228 = call ptr @__errno_location() #10
  store i32 %3227, ptr %3228, align 4, !tbaa !5
  %3229 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3230 = load i32, ptr @test_count, align 4, !tbaa !5
  %3231 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3232 = load i32, ptr %3231, align 4, !tbaa !5
  %3233 = call ptr @s2n_strerror(i32 noundef %3232, ptr noundef @.str.4)
  %3234 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3235 = load i32, ptr %3234, align 4, !tbaa !5
  %3236 = call ptr @s2n_strerror_debug(i32 noundef %3235, ptr noundef @.str.4)
  %3237 = call ptr @__errno_location() #10
  %3238 = load i32, ptr %3237, align 4, !tbaa !5
  %3239 = call ptr @strerror(i32 noundef %3238) #9
  %3240 = call ptr @__errno_location() #10
  %3241 = load i32, ptr %3240, align 4, !tbaa !5
  %3242 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3229, ptr noundef @.str.5, i32 noundef %3230, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 157, ptr noundef %3233, ptr noundef %3236, ptr noundef %3239, i32 noundef %3241) #9
  br label %3243

3243:                                             ; preds = %3226, %3209
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #9
  br label %3244

3244:                                             ; preds = %3243
  br label %3245

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

3246:                                             ; No predecessors!
  br label %3247

3247:                                             ; preds = %3246
  br label %3248

3248:                                             ; preds = %3247, %3190
  br label %3249

3249:                                             ; preds = %3248
  br label %3250

3250:                                             ; preds = %3249
  call void @llvm.lifetime.start.p0(i64 704, ptr %70) #9
  call void @llvm.memset.p0.i64(ptr align 8 %70, i8 0, i64 704, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %71) #9
  store i64 0, ptr %71, align 8, !tbaa !46
  br label %3251

3251:                                             ; preds = %3675, %3250
  %3252 = load i64, ptr %71, align 8, !tbaa !46
  %3253 = load ptr, ptr %60, align 8, !tbaa !9
  %3254 = getelementptr inbounds %struct.s2n_extension_type_list, ptr %3253, i32 0, i32 1
  %3255 = load i8, ptr %3254, align 8, !tbaa !44
  %3256 = zext i8 %3255 to i64
  %3257 = icmp ult i64 %3252, %3256
  br i1 %3257, label %3259, label %3258

3258:                                             ; preds = %3251
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #9
  br label %3678

3259:                                             ; preds = %3251
  call void @llvm.lifetime.start.p0(i64 8, ptr %72) #9
  %3260 = load ptr, ptr %60, align 8, !tbaa !9
  %3261 = getelementptr inbounds %struct.s2n_extension_type_list, ptr %3260, i32 0, i32 0
  %3262 = load ptr, ptr %3261, align 8, !tbaa !47
  %3263 = load i64, ptr %71, align 8, !tbaa !46
  %3264 = getelementptr inbounds ptr, ptr %3262, i64 %3263
  %3265 = load ptr, ptr %3264, align 8, !tbaa !9
  store ptr %3265, ptr %72, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %73) #9
  store i8 0, ptr %73, align 1, !tbaa !43
  br label %3266

3266:                                             ; preds = %3259
  %3267 = load i32, ptr @test_count, align 4, !tbaa !5
  %3268 = add nsw i32 %3267, 1
  store i32 %3268, ptr @test_count, align 4, !tbaa !5
  %3269 = load ptr, ptr %72, align 8, !tbaa !9
  %3270 = getelementptr inbounds %struct.s2n_extension_type, ptr %3269, i32 0, i32 0
  %3271 = load i16, ptr %3270, align 8, !tbaa !48
  %3272 = call i32 @s2n_extension_supported_iana_value_to_id(i16 noundef zeroext %3271, ptr noundef %73)
  %3273 = icmp eq i32 %3272, -1
  br i1 %3273, label %3274, label %3327

3274:                                             ; preds = %3266
  br label %3275

3275:                                             ; preds = %3274
  br label %3276

3276:                                             ; preds = %3275
  call void @llvm.lifetime.start.p0(i64 4, ptr %74) #9
  %3277 = call ptr @__errno_location() #10
  %3278 = load i32, ptr %3277, align 4, !tbaa !5
  store i32 %3278, ptr %74, align 4, !tbaa !5
  %3279 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3280 = call i32 @s2n_print_stacktrace(ptr noundef %3279)
  %3281 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3282 = trunc i8 %3281 to i1
  br i1 %3282, label %3283, label %3305

3283:                                             ; preds = %3276
  %3284 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3285 = call i32 @fileno(ptr noundef %3284) #9
  %3286 = call i32 @isatty(i32 noundef %3285) #9
  %3287 = icmp ne i32 %3286, 0
  br i1 %3287, label %3288, label %3305

3288:                                             ; preds = %3283
  %3289 = load i32, ptr %74, align 4, !tbaa !5
  %3290 = call ptr @__errno_location() #10
  store i32 %3289, ptr %3290, align 4, !tbaa !5
  %3291 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3292 = load i32, ptr @test_count, align 4, !tbaa !5
  %3293 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3294 = load i32, ptr %3293, align 4, !tbaa !5
  %3295 = call ptr @s2n_strerror(i32 noundef %3294, ptr noundef @.str.4)
  %3296 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3297 = load i32, ptr %3296, align 4, !tbaa !5
  %3298 = call ptr @s2n_strerror_debug(i32 noundef %3297, ptr noundef @.str.4)
  %3299 = call ptr @__errno_location() #10
  %3300 = load i32, ptr %3299, align 4, !tbaa !5
  %3301 = call ptr @strerror(i32 noundef %3300) #9
  %3302 = call ptr @__errno_location() #10
  %3303 = load i32, ptr %3302, align 4, !tbaa !5
  %3304 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3291, ptr noundef @.str.2, i32 noundef %3292, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 163, ptr noundef %3295, ptr noundef %3298, ptr noundef %3301, i32 noundef %3303) #9
  br label %3322

3305:                                             ; preds = %3283, %3276
  %3306 = load i32, ptr %74, align 4, !tbaa !5
  %3307 = call ptr @__errno_location() #10
  store i32 %3306, ptr %3307, align 4, !tbaa !5
  %3308 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3309 = load i32, ptr @test_count, align 4, !tbaa !5
  %3310 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3311 = load i32, ptr %3310, align 4, !tbaa !5
  %3312 = call ptr @s2n_strerror(i32 noundef %3311, ptr noundef @.str.4)
  %3313 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3314 = load i32, ptr %3313, align 4, !tbaa !5
  %3315 = call ptr @s2n_strerror_debug(i32 noundef %3314, ptr noundef @.str.4)
  %3316 = call ptr @__errno_location() #10
  %3317 = load i32, ptr %3316, align 4, !tbaa !5
  %3318 = call ptr @strerror(i32 noundef %3317) #9
  %3319 = call ptr @__errno_location() #10
  %3320 = load i32, ptr %3319, align 4, !tbaa !5
  %3321 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3308, ptr noundef @.str.5, i32 noundef %3309, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 163, ptr noundef %3312, ptr noundef %3315, ptr noundef %3318, i32 noundef %3320) #9
  br label %3322

3322:                                             ; preds = %3305, %3288
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #9
  br label %3323

3323:                                             ; preds = %3322
  br label %3324

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

3325:                                             ; No predecessors!
  br label %3326

3326:                                             ; preds = %3325
  br label %3327

3327:                                             ; preds = %3326, %3266
  br label %3328

3328:                                             ; preds = %3327
  br label %3329

3329:                                             ; preds = %3328
  call void @llvm.lifetime.start.p0(i64 8, ptr %75) #9
  %3330 = getelementptr inbounds %struct.s2n_parsed_extensions_list, ptr %70, i32 0, i32 0
  %3331 = load i8, ptr %73, align 1, !tbaa !43
  %3332 = zext i8 %3331 to i64
  %3333 = getelementptr inbounds [21 x %struct.s2n_parsed_extension], ptr %3330, i64 0, i64 %3332
  store ptr %3333, ptr %75, align 8, !tbaa !9
  %3334 = load ptr, ptr %75, align 8, !tbaa !9
  %3335 = getelementptr inbounds %struct.s2n_parsed_extension, ptr %3334, i32 0, i32 0
  %3336 = getelementptr inbounds %struct.s2n_stuffer, ptr %67, i32 0, i32 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %3335, ptr align 8 %3336, i64 24, i1 false), !tbaa.struct !50
  %3337 = load ptr, ptr %72, align 8, !tbaa !9
  %3338 = getelementptr inbounds %struct.s2n_extension_type, ptr %3337, i32 0, i32 0
  %3339 = load i16, ptr %3338, align 8, !tbaa !48
  %3340 = load ptr, ptr %75, align 8, !tbaa !9
  %3341 = getelementptr inbounds %struct.s2n_parsed_extension, ptr %3340, i32 0, i32 1
  store i16 %3339, ptr %3341, align 8, !tbaa !51
  %3342 = load ptr, ptr %64, align 8, !tbaa !9
  %3343 = getelementptr inbounds %struct.s2n_connection, ptr %3342, i32 0, i32 23
  store i8 33, ptr %3343, align 4, !tbaa !53
  br label %3344

3344:                                             ; preds = %3329
  %3345 = load i32, ptr @test_count, align 4, !tbaa !5
  %3346 = add nsw i32 %3345, 1
  store i32 %3346, ptr @test_count, align 4, !tbaa !5
  %3347 = load ptr, ptr %72, align 8, !tbaa !9
  %3348 = load ptr, ptr %64, align 8, !tbaa !9
  %3349 = call i32 @s2n_extension_process(ptr noundef %3347, ptr noundef %3348, ptr noundef %70)
  %3350 = icmp eq i32 %3349, -1
  br i1 %3350, label %3351, label %3404

3351:                                             ; preds = %3344
  br label %3352

3352:                                             ; preds = %3351
  br label %3353

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

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

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

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

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

3400:                                             ; preds = %3399
  br label %3401

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

3402:                                             ; No predecessors!
  br label %3403

3403:                                             ; preds = %3402
  br label %3404

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

3405:                                             ; preds = %3404
  br label %3406

3406:                                             ; preds = %3405
  br label %3407

3407:                                             ; preds = %3406
  %3408 = load i32, ptr @test_count, align 4, !tbaa !5
  %3409 = add nsw i32 %3408, 1
  store i32 %3409, ptr @test_count, align 4, !tbaa !5
  %3410 = load ptr, ptr %75, align 8, !tbaa !9
  %3411 = getelementptr inbounds %struct.s2n_parsed_extension, ptr %3410, i32 0, i32 3
  %3412 = load i8, ptr %3411, align 4
  %3413 = and i8 %3412, 1
  %3414 = zext i8 %3413 to i32
  %3415 = icmp ne i32 %3414, 0
  br i1 %3415, label %3469, label %3416

3416:                                             ; preds = %3407
  br label %3417

3417:                                             ; preds = %3416
  br label %3418

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

3425:                                             ; preds = %3418
  %3426 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3427 = call i32 @fileno(ptr noundef %3426) #9
  %3428 = call i32 @isatty(i32 noundef %3427) #9
  %3429 = icmp ne i32 %3428, 0
  br i1 %3429, label %3430, label %3447

3430:                                             ; preds = %3425
  %3431 = load i32, ptr %77, align 4, !tbaa !5
  %3432 = call ptr @__errno_location() #10
  store i32 %3431, ptr %3432, align 4, !tbaa !5
  %3433 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3434 = load i32, ptr @test_count, align 4, !tbaa !5
  %3435 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3436 = load i32, ptr %3435, align 4, !tbaa !5
  %3437 = call ptr @s2n_strerror(i32 noundef %3436, ptr noundef @.str.4)
  %3438 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3439 = load i32, ptr %3438, align 4, !tbaa !5
  %3440 = call ptr @s2n_strerror_debug(i32 noundef %3439, ptr noundef @.str.4)
  %3441 = call ptr @__errno_location() #10
  %3442 = load i32, ptr %3441, align 4, !tbaa !5
  %3443 = call ptr @strerror(i32 noundef %3442) #9
  %3444 = call ptr @__errno_location() #10
  %3445 = load i32, ptr %3444, align 4, !tbaa !5
  %3446 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3433, ptr noundef @.str.2, i32 noundef %3434, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 174, ptr noundef %3437, ptr noundef %3440, ptr noundef %3443, i32 noundef %3445) #9
  br label %3464

3447:                                             ; preds = %3425, %3418
  %3448 = load i32, ptr %77, align 4, !tbaa !5
  %3449 = call ptr @__errno_location() #10
  store i32 %3448, ptr %3449, align 4, !tbaa !5
  %3450 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3451 = load i32, ptr @test_count, align 4, !tbaa !5
  %3452 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3453 = load i32, ptr %3452, align 4, !tbaa !5
  %3454 = call ptr @s2n_strerror(i32 noundef %3453, ptr noundef @.str.4)
  %3455 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3456 = load i32, ptr %3455, align 4, !tbaa !5
  %3457 = call ptr @s2n_strerror_debug(i32 noundef %3456, ptr noundef @.str.4)
  %3458 = call ptr @__errno_location() #10
  %3459 = load i32, ptr %3458, align 4, !tbaa !5
  %3460 = call ptr @strerror(i32 noundef %3459) #9
  %3461 = call ptr @__errno_location() #10
  %3462 = load i32, ptr %3461, align 4, !tbaa !5
  %3463 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3450, ptr noundef @.str.5, i32 noundef %3451, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 174, ptr noundef %3454, ptr noundef %3457, ptr noundef %3460, i32 noundef %3462) #9
  br label %3464

3464:                                             ; preds = %3447, %3430
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #9
  br label %3465

3465:                                             ; preds = %3464
  br label %3466

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

3467:                                             ; No predecessors!
  br label %3468

3468:                                             ; preds = %3467
  br label %3469

3469:                                             ; preds = %3468, %3407
  br label %3470

3470:                                             ; preds = %3469
  br label %3471

3471:                                             ; preds = %3470
  %3472 = load ptr, ptr %75, align 8, !tbaa !9
  %3473 = getelementptr inbounds %struct.s2n_parsed_extension, ptr %3472, i32 0, i32 3
  %3474 = load i8, ptr %3473, align 4
  %3475 = and i8 %3474, -2
  %3476 = or i8 %3475, 0
  store i8 %3476, ptr %3473, align 4
  %3477 = load ptr, ptr %64, align 8, !tbaa !9
  %3478 = getelementptr inbounds %struct.s2n_connection, ptr %3477, i32 0, i32 23
  store i8 34, ptr %3478, align 4, !tbaa !53
  br label %3479

3479:                                             ; preds = %3471
  br label %3480

3480:                                             ; preds = %3479
  %3481 = load i32, ptr @test_count, align 4, !tbaa !5
  %3482 = add nsw i32 %3481, 1
  store i32 %3482, ptr @test_count, align 4, !tbaa !5
  %3483 = load ptr, ptr %72, align 8, !tbaa !9
  %3484 = load ptr, ptr %64, align 8, !tbaa !9
  %3485 = call i32 @s2n_extension_process(ptr noundef %3483, ptr noundef %3484, ptr noundef %70)
  %3486 = icmp eq i32 %3485, -1
  br i1 %3486, label %3540, label %3487

3487:                                             ; preds = %3480
  br label %3488

3488:                                             ; preds = %3487
  br label %3489

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

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

3501:                                             ; preds = %3496
  %3502 = load i32, ptr %78, align 4, !tbaa !5
  %3503 = call ptr @__errno_location() #10
  store i32 %3502, ptr %3503, align 4, !tbaa !5
  %3504 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3505 = load i32, ptr @test_count, align 4, !tbaa !5
  %3506 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3507 = load i32, ptr %3506, align 4, !tbaa !5
  %3508 = call ptr @s2n_strerror(i32 noundef %3507, ptr noundef @.str.4)
  %3509 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3510 = load i32, ptr %3509, align 4, !tbaa !5
  %3511 = call ptr @s2n_strerror_debug(i32 noundef %3510, ptr noundef @.str.4)
  %3512 = call ptr @__errno_location() #10
  %3513 = load i32, ptr %3512, align 4, !tbaa !5
  %3514 = call ptr @strerror(i32 noundef %3513) #9
  %3515 = call ptr @__errno_location() #10
  %3516 = load i32, ptr %3515, align 4, !tbaa !5
  %3517 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3504, ptr noundef @.str.2, i32 noundef %3505, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 178, ptr noundef %3508, ptr noundef %3511, ptr noundef %3514, i32 noundef %3516) #9
  br label %3535

3518:                                             ; preds = %3496, %3489
  %3519 = load i32, ptr %78, align 4, !tbaa !5
  %3520 = call ptr @__errno_location() #10
  store i32 %3519, ptr %3520, align 4, !tbaa !5
  %3521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3522 = load i32, ptr @test_count, align 4, !tbaa !5
  %3523 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3524 = load i32, ptr %3523, align 4, !tbaa !5
  %3525 = call ptr @s2n_strerror(i32 noundef %3524, ptr noundef @.str.4)
  %3526 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3527 = load i32, ptr %3526, align 4, !tbaa !5
  %3528 = call ptr @s2n_strerror_debug(i32 noundef %3527, ptr noundef @.str.4)
  %3529 = call ptr @__errno_location() #10
  %3530 = load i32, ptr %3529, align 4, !tbaa !5
  %3531 = call ptr @strerror(i32 noundef %3530) #9
  %3532 = call ptr @__errno_location() #10
  %3533 = load i32, ptr %3532, align 4, !tbaa !5
  %3534 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3521, ptr noundef @.str.5, i32 noundef %3522, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 178, ptr noundef %3525, ptr noundef %3528, ptr noundef %3531, i32 noundef %3533) #9
  br label %3535

3535:                                             ; preds = %3518, %3501
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #9
  br label %3536

3536:                                             ; preds = %3535
  br label %3537

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

3538:                                             ; No predecessors!
  br label %3539

3539:                                             ; preds = %3538
  br label %3540

3540:                                             ; preds = %3539, %3480
  br label %3541

3541:                                             ; preds = %3540
  br label %3542

3542:                                             ; preds = %3541
  br label %3543

3543:                                             ; preds = %3542
  %3544 = load i32, ptr @test_count, align 4, !tbaa !5
  %3545 = add nsw i32 %3544, 1
  store i32 %3545, ptr @test_count, align 4, !tbaa !5
  %3546 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3547 = load i32, ptr %3546, align 4, !tbaa !5
  %3548 = icmp eq i32 %3547, 0
  br i1 %3548, label %3549, label %3602

3549:                                             ; preds = %3543
  br label %3550

3550:                                             ; preds = %3549
  br label %3551

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

3558:                                             ; preds = %3551
  %3559 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3560 = call i32 @fileno(ptr noundef %3559) #9
  %3561 = call i32 @isatty(i32 noundef %3560) #9
  %3562 = icmp ne i32 %3561, 0
  br i1 %3562, label %3563, label %3580

3563:                                             ; preds = %3558
  %3564 = load i32, ptr %79, align 4, !tbaa !5
  %3565 = call ptr @__errno_location() #10
  store i32 %3564, ptr %3565, align 4, !tbaa !5
  %3566 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3567 = load i32, ptr @test_count, align 4, !tbaa !5
  %3568 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3569 = load i32, ptr %3568, align 4, !tbaa !5
  %3570 = call ptr @s2n_strerror(i32 noundef %3569, ptr noundef @.str.4)
  %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_debug(i32 noundef %3572, ptr noundef @.str.4)
  %3574 = call ptr @__errno_location() #10
  %3575 = load i32, ptr %3574, align 4, !tbaa !5
  %3576 = call ptr @strerror(i32 noundef %3575) #9
  %3577 = call ptr @__errno_location() #10
  %3578 = load i32, ptr %3577, align 4, !tbaa !5
  %3579 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3566, ptr noundef @.str.2, i32 noundef %3567, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 178, ptr noundef %3570, ptr noundef %3573, ptr noundef %3576, i32 noundef %3578) #9
  br label %3597

3580:                                             ; preds = %3558, %3551
  %3581 = load i32, ptr %79, align 4, !tbaa !5
  %3582 = call ptr @__errno_location() #10
  store i32 %3581, ptr %3582, align 4, !tbaa !5
  %3583 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3584 = load i32, ptr @test_count, align 4, !tbaa !5
  %3585 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3586 = load i32, ptr %3585, align 4, !tbaa !5
  %3587 = call ptr @s2n_strerror(i32 noundef %3586, ptr noundef @.str.4)
  %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_debug(i32 noundef %3589, ptr noundef @.str.4)
  %3591 = call ptr @__errno_location() #10
  %3592 = load i32, ptr %3591, align 4, !tbaa !5
  %3593 = call ptr @strerror(i32 noundef %3592) #9
  %3594 = call ptr @__errno_location() #10
  %3595 = load i32, ptr %3594, align 4, !tbaa !5
  %3596 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3583, ptr noundef @.str.5, i32 noundef %3584, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 178, ptr noundef %3587, ptr noundef %3590, ptr noundef %3593, i32 noundef %3595) #9
  br label %3597

3597:                                             ; preds = %3580, %3563
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #9
  br label %3598

3598:                                             ; preds = %3597
  br label %3599

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

3600:                                             ; No predecessors!
  br label %3601

3601:                                             ; preds = %3600
  br label %3602

3602:                                             ; preds = %3601, %3543
  br label %3603

3603:                                             ; preds = %3602
  br label %3604

3604:                                             ; preds = %3603
  br label %3605

3605:                                             ; preds = %3604
  %3606 = load i32, ptr @test_count, align 4, !tbaa !5
  %3607 = add nsw i32 %3606, 1
  store i32 %3607, ptr @test_count, align 4, !tbaa !5
  %3608 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3609 = load i32, ptr %3608, align 4, !tbaa !5
  %3610 = call ptr @s2n_strerror_debug(i32 noundef %3609, ptr noundef @.str.4)
  %3611 = icmp eq ptr %3610, null
  br i1 %3611, label %3612, label %3665

3612:                                             ; preds = %3605
  br label %3613

3613:                                             ; preds = %3612
  br label %3614

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

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

3626:                                             ; preds = %3621
  %3627 = load i32, ptr %80, align 4, !tbaa !5
  %3628 = call ptr @__errno_location() #10
  store i32 %3627, ptr %3628, align 4, !tbaa !5
  %3629 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3630 = load i32, ptr @test_count, align 4, !tbaa !5
  %3631 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3632 = load i32, ptr %3631, align 4, !tbaa !5
  %3633 = call ptr @s2n_strerror(i32 noundef %3632, ptr noundef @.str.4)
  %3634 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3635 = load i32, ptr %3634, align 4, !tbaa !5
  %3636 = call ptr @s2n_strerror_debug(i32 noundef %3635, ptr noundef @.str.4)
  %3637 = call ptr @__errno_location() #10
  %3638 = load i32, ptr %3637, align 4, !tbaa !5
  %3639 = call ptr @strerror(i32 noundef %3638) #9
  %3640 = call ptr @__errno_location() #10
  %3641 = load i32, ptr %3640, align 4, !tbaa !5
  %3642 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3629, ptr noundef @.str.2, i32 noundef %3630, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 178, ptr noundef %3633, ptr noundef %3636, ptr noundef %3639, i32 noundef %3641) #9
  br label %3660

3643:                                             ; preds = %3621, %3614
  %3644 = load i32, ptr %80, align 4, !tbaa !5
  %3645 = call ptr @__errno_location() #10
  store i32 %3644, ptr %3645, align 4, !tbaa !5
  %3646 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3647 = load i32, ptr @test_count, align 4, !tbaa !5
  %3648 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3649 = load i32, ptr %3648, align 4, !tbaa !5
  %3650 = call ptr @s2n_strerror(i32 noundef %3649, ptr noundef @.str.4)
  %3651 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3652 = load i32, ptr %3651, align 4, !tbaa !5
  %3653 = call ptr @s2n_strerror_debug(i32 noundef %3652, ptr noundef @.str.4)
  %3654 = call ptr @__errno_location() #10
  %3655 = load i32, ptr %3654, align 4, !tbaa !5
  %3656 = call ptr @strerror(i32 noundef %3655) #9
  %3657 = call ptr @__errno_location() #10
  %3658 = load i32, ptr %3657, align 4, !tbaa !5
  %3659 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3646, ptr noundef @.str.5, i32 noundef %3647, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 178, ptr noundef %3650, ptr noundef %3653, ptr noundef %3656, i32 noundef %3658) #9
  br label %3660

3660:                                             ; preds = %3643, %3626
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #9
  br label %3661

3661:                                             ; preds = %3660
  br label %3662

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

3663:                                             ; No predecessors!
  br label %3664

3664:                                             ; preds = %3663
  br label %3665

3665:                                             ; preds = %3664, %3605
  br label %3666

3666:                                             ; preds = %3665
  br label %3667

3667:                                             ; preds = %3666
  br label %3668

3668:                                             ; preds = %3667
  %3669 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %3669, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %3670 = call ptr @__errno_location() #10
  store i32 0, ptr %3670, align 4, !tbaa !5
  br label %3671

3671:                                             ; preds = %3668
  br label %3672

3672:                                             ; preds = %3671
  br label %3673

3673:                                             ; preds = %3672
  br label %3674

3674:                                             ; preds = %3673
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %73) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #9
  br label %3675

3675:                                             ; preds = %3674
  %3676 = load i64, ptr %71, align 8, !tbaa !46
  %3677 = add i64 %3676, 1
  store i64 %3677, ptr %71, align 8, !tbaa !46
  br label %3251, !llvm.loop !54

3678:                                             ; preds = %3258
  br label %3679

3679:                                             ; preds = %3678
  %3680 = load i32, ptr @test_count, align 4, !tbaa !5
  %3681 = add nsw i32 %3680, 1
  store i32 %3681, ptr @test_count, align 4, !tbaa !5
  %3682 = load ptr, ptr %64, align 8, !tbaa !9
  %3683 = call i32 @s2n_connection_free(ptr noundef %3682)
  %3684 = icmp eq i32 %3683, -1
  br i1 %3684, label %3685, label %3738

3685:                                             ; preds = %3679
  br label %3686

3686:                                             ; preds = %3685
  br label %3687

3687:                                             ; preds = %3686
  call void @llvm.lifetime.start.p0(i64 4, ptr %81) #9
  %3688 = call ptr @__errno_location() #10
  %3689 = load i32, ptr %3688, align 4, !tbaa !5
  store i32 %3689, ptr %81, align 4, !tbaa !5
  %3690 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3691 = call i32 @s2n_print_stacktrace(ptr noundef %3690)
  %3692 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3693 = trunc i8 %3692 to i1
  br i1 %3693, label %3694, label %3716

3694:                                             ; preds = %3687
  %3695 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3696 = call i32 @fileno(ptr noundef %3695) #9
  %3697 = call i32 @isatty(i32 noundef %3696) #9
  %3698 = icmp ne i32 %3697, 0
  br i1 %3698, label %3699, label %3716

3699:                                             ; preds = %3694
  %3700 = load i32, ptr %81, align 4, !tbaa !5
  %3701 = call ptr @__errno_location() #10
  store i32 %3700, ptr %3701, align 4, !tbaa !5
  %3702 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3703 = load i32, ptr @test_count, align 4, !tbaa !5
  %3704 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3705 = load i32, ptr %3704, align 4, !tbaa !5
  %3706 = call ptr @s2n_strerror(i32 noundef %3705, ptr noundef @.str.4)
  %3707 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3708 = load i32, ptr %3707, align 4, !tbaa !5
  %3709 = call ptr @s2n_strerror_debug(i32 noundef %3708, ptr noundef @.str.4)
  %3710 = call ptr @__errno_location() #10
  %3711 = load i32, ptr %3710, align 4, !tbaa !5
  %3712 = call ptr @strerror(i32 noundef %3711) #9
  %3713 = call ptr @__errno_location() #10
  %3714 = load i32, ptr %3713, align 4, !tbaa !5
  %3715 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3702, ptr noundef @.str.2, i32 noundef %3703, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 181, ptr noundef %3706, ptr noundef %3709, ptr noundef %3712, i32 noundef %3714) #9
  br label %3733

3716:                                             ; preds = %3694, %3687
  %3717 = load i32, ptr %81, align 4, !tbaa !5
  %3718 = call ptr @__errno_location() #10
  store i32 %3717, ptr %3718, align 4, !tbaa !5
  %3719 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3720 = load i32, ptr @test_count, align 4, !tbaa !5
  %3721 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3722 = load i32, ptr %3721, align 4, !tbaa !5
  %3723 = call ptr @s2n_strerror(i32 noundef %3722, ptr noundef @.str.4)
  %3724 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3725 = load i32, ptr %3724, align 4, !tbaa !5
  %3726 = call ptr @s2n_strerror_debug(i32 noundef %3725, ptr noundef @.str.4)
  %3727 = call ptr @__errno_location() #10
  %3728 = load i32, ptr %3727, align 4, !tbaa !5
  %3729 = call ptr @strerror(i32 noundef %3728) #9
  %3730 = call ptr @__errno_location() #10
  %3731 = load i32, ptr %3730, align 4, !tbaa !5
  %3732 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3719, ptr noundef @.str.5, i32 noundef %3720, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 181, ptr noundef %3723, ptr noundef %3726, ptr noundef %3729, i32 noundef %3731) #9
  br label %3733

3733:                                             ; preds = %3716, %3699
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #9
  br label %3734

3734:                                             ; preds = %3733
  br label %3735

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

3736:                                             ; No predecessors!
  br label %3737

3737:                                             ; preds = %3736
  br label %3738

3738:                                             ; preds = %3737, %3679
  br label %3739

3739:                                             ; preds = %3738
  br label %3740

3740:                                             ; preds = %3739
  br label %3741

3741:                                             ; preds = %3740
  %3742 = load i32, ptr @test_count, align 4, !tbaa !5
  %3743 = add nsw i32 %3742, 1
  store i32 %3743, ptr @test_count, align 4, !tbaa !5
  %3744 = call i32 @s2n_stuffer_free(ptr noundef %67)
  %3745 = icmp eq i32 %3744, -1
  br i1 %3745, label %3746, label %3799

3746:                                             ; preds = %3741
  br label %3747

3747:                                             ; preds = %3746
  br label %3748

3748:                                             ; preds = %3747
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #9
  %3749 = call ptr @__errno_location() #10
  %3750 = load i32, ptr %3749, align 4, !tbaa !5
  store i32 %3750, ptr %82, align 4, !tbaa !5
  %3751 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3752 = call i32 @s2n_print_stacktrace(ptr noundef %3751)
  %3753 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3754 = trunc i8 %3753 to i1
  br i1 %3754, label %3755, label %3777

3755:                                             ; preds = %3748
  %3756 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3757 = call i32 @fileno(ptr noundef %3756) #9
  %3758 = call i32 @isatty(i32 noundef %3757) #9
  %3759 = icmp ne i32 %3758, 0
  br i1 %3759, label %3760, label %3777

3760:                                             ; preds = %3755
  %3761 = load i32, ptr %82, align 4, !tbaa !5
  %3762 = call ptr @__errno_location() #10
  store i32 %3761, ptr %3762, align 4, !tbaa !5
  %3763 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3764 = load i32, ptr @test_count, align 4, !tbaa !5
  %3765 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3766 = load i32, ptr %3765, align 4, !tbaa !5
  %3767 = call ptr @s2n_strerror(i32 noundef %3766, ptr noundef @.str.4)
  %3768 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3769 = load i32, ptr %3768, align 4, !tbaa !5
  %3770 = call ptr @s2n_strerror_debug(i32 noundef %3769, ptr noundef @.str.4)
  %3771 = call ptr @__errno_location() #10
  %3772 = load i32, ptr %3771, align 4, !tbaa !5
  %3773 = call ptr @strerror(i32 noundef %3772) #9
  %3774 = call ptr @__errno_location() #10
  %3775 = load i32, ptr %3774, align 4, !tbaa !5
  %3776 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3763, ptr noundef @.str.2, i32 noundef %3764, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 182, ptr noundef %3767, ptr noundef %3770, ptr noundef %3773, i32 noundef %3775) #9
  br label %3794

3777:                                             ; preds = %3755, %3748
  %3778 = load i32, ptr %82, align 4, !tbaa !5
  %3779 = call ptr @__errno_location() #10
  store i32 %3778, ptr %3779, align 4, !tbaa !5
  %3780 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3781 = load i32, ptr @test_count, align 4, !tbaa !5
  %3782 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3783 = load i32, ptr %3782, align 4, !tbaa !5
  %3784 = call ptr @s2n_strerror(i32 noundef %3783, ptr noundef @.str.4)
  %3785 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3786 = load i32, ptr %3785, align 4, !tbaa !5
  %3787 = call ptr @s2n_strerror_debug(i32 noundef %3786, ptr noundef @.str.4)
  %3788 = call ptr @__errno_location() #10
  %3789 = load i32, ptr %3788, align 4, !tbaa !5
  %3790 = call ptr @strerror(i32 noundef %3789) #9
  %3791 = call ptr @__errno_location() #10
  %3792 = load i32, ptr %3791, align 4, !tbaa !5
  %3793 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3780, ptr noundef @.str.5, i32 noundef %3781, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 182, ptr noundef %3784, ptr noundef %3787, ptr noundef %3790, i32 noundef %3792) #9
  br label %3794

3794:                                             ; preds = %3777, %3760
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #9
  br label %3795

3795:                                             ; preds = %3794
  br label %3796

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

3797:                                             ; No predecessors!
  br label %3798

3798:                                             ; preds = %3797
  br label %3799

3799:                                             ; preds = %3798, %3741
  br label %3800

3800:                                             ; preds = %3799
  br label %3801

3801:                                             ; preds = %3800
  call void @llvm.lifetime.end.p0(i64 704, ptr %70) #9
  call void @llvm.lifetime.end.p0(i64 40, ptr %67) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #9
  br label %3802

3802:                                             ; preds = %3801
  br label %3803

3803:                                             ; preds = %3802
  %3804 = call i32 @s2n_cleanup()
  %3805 = icmp eq i32 %3804, -1
  br i1 %3805, label %3806, label %3857

3806:                                             ; preds = %3803
  br label %3807

3807:                                             ; preds = %3806
  br label %3808

3808:                                             ; preds = %3807
  call void @llvm.lifetime.start.p0(i64 4, ptr %83) #9
  %3809 = call ptr @__errno_location() #10
  %3810 = load i32, ptr %3809, align 4, !tbaa !5
  store i32 %3810, ptr %83, align 4, !tbaa !5
  %3811 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3812 = call i32 @s2n_print_stacktrace(ptr noundef %3811)
  %3813 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3814 = trunc i8 %3813 to i1
  br i1 %3814, label %3815, label %3837

3815:                                             ; preds = %3808
  %3816 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3817 = call i32 @fileno(ptr noundef %3816) #9
  %3818 = call i32 @isatty(i32 noundef %3817) #9
  %3819 = icmp ne i32 %3818, 0
  br i1 %3819, label %3820, label %3837

3820:                                             ; preds = %3815
  %3821 = load i32, ptr %83, align 4, !tbaa !5
  %3822 = call ptr @__errno_location() #10
  store i32 %3821, ptr %3822, align 4, !tbaa !5
  %3823 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3824 = load i32, ptr @test_count, align 4, !tbaa !5
  %3825 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3826 = load i32, ptr %3825, align 4, !tbaa !5
  %3827 = call ptr @s2n_strerror(i32 noundef %3826, ptr noundef @.str.4)
  %3828 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3829 = load i32, ptr %3828, align 4, !tbaa !5
  %3830 = call ptr @s2n_strerror_debug(i32 noundef %3829, ptr noundef @.str.4)
  %3831 = call ptr @__errno_location() #10
  %3832 = load i32, ptr %3831, align 4, !tbaa !5
  %3833 = call ptr @strerror(i32 noundef %3832) #9
  %3834 = call ptr @__errno_location() #10
  %3835 = load i32, ptr %3834, align 4, !tbaa !5
  %3836 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3823, ptr noundef @.str.2, i32 noundef %3824, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 185, ptr noundef %3827, ptr noundef %3830, ptr noundef %3833, i32 noundef %3835) #9
  br label %3854

3837:                                             ; preds = %3815, %3808
  %3838 = load i32, ptr %83, align 4, !tbaa !5
  %3839 = call ptr @__errno_location() #10
  store i32 %3838, ptr %3839, align 4, !tbaa !5
  %3840 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3841 = load i32, ptr @test_count, align 4, !tbaa !5
  %3842 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3843 = load i32, ptr %3842, align 4, !tbaa !5
  %3844 = call ptr @s2n_strerror(i32 noundef %3843, ptr noundef @.str.4)
  %3845 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3846 = load i32, ptr %3845, align 4, !tbaa !5
  %3847 = call ptr @s2n_strerror_debug(i32 noundef %3846, ptr noundef @.str.4)
  %3848 = call ptr @__errno_location() #10
  %3849 = load i32, ptr %3848, align 4, !tbaa !5
  %3850 = call ptr @strerror(i32 noundef %3849) #9
  %3851 = call ptr @__errno_location() #10
  %3852 = load i32, ptr %3851, align 4, !tbaa !5
  %3853 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3840, ptr noundef @.str.5, i32 noundef %3841, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 185, ptr noundef %3844, ptr noundef %3847, ptr noundef %3850, i32 noundef %3852) #9
  br label %3854

3854:                                             ; preds = %3837, %3820
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #9
  br label %3855

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

3856:                                             ; No predecessors!
  br label %3857

3857:                                             ; preds = %3856, %3803
  br label %3858

3858:                                             ; preds = %3857
  br label %3859

3859:                                             ; preds = %3858
  br label %3860

3860:                                             ; preds = %3859
  %3861 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %3862 = icmp eq i32 %3861, -1
  br i1 %3862, label %3863, label %3914

3863:                                             ; preds = %3860
  br label %3864

3864:                                             ; preds = %3863
  br label %3865

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

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

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

3894:                                             ; preds = %3872, %3865
  %3895 = load i32, ptr %84, align 4, !tbaa !5
  %3896 = call ptr @__errno_location() #10
  store i32 %3895, ptr %3896, align 4, !tbaa !5
  %3897 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3898 = load i32, ptr @test_count, align 4, !tbaa !5
  %3899 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3900 = load i32, ptr %3899, align 4, !tbaa !5
  %3901 = call ptr @s2n_strerror(i32 noundef %3900, ptr noundef @.str.4)
  %3902 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3903 = load i32, ptr %3902, align 4, !tbaa !5
  %3904 = call ptr @s2n_strerror_debug(i32 noundef %3903, ptr noundef @.str.4)
  %3905 = call ptr @__errno_location() #10
  %3906 = load i32, ptr %3905, align 4, !tbaa !5
  %3907 = call ptr @strerror(i32 noundef %3906) #9
  %3908 = call ptr @__errno_location() #10
  %3909 = load i32, ptr %3908, align 4, !tbaa !5
  %3910 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3897, ptr noundef @.str.5, i32 noundef %3898, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 185, ptr noundef %3901, ptr noundef %3904, ptr noundef %3907, i32 noundef %3909) #9
  br label %3911

3911:                                             ; preds = %3894, %3877
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #9
  br label %3912

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

3913:                                             ; No predecessors!
  br label %3914

3914:                                             ; preds = %3913, %3860
  br label %3915

3915:                                             ; preds = %3914
  %3916 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3917 = trunc i8 %3916 to i1
  br i1 %3917, label %3918, label %3934

3918:                                             ; preds = %3915
  %3919 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3920 = call i32 @fileno(ptr noundef %3919) #9
  %3921 = call i32 @isatty(i32 noundef %3920) #9
  %3922 = icmp ne i32 %3921, 0
  br i1 %3922, label %3923, label %3934

3923:                                             ; preds = %3918
  %3924 = load i32, ptr @test_count, align 4, !tbaa !5
  %3925 = icmp ne i32 %3924, 0
  br i1 %3925, label %3926, label %3930

3926:                                             ; preds = %3923
  %3927 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3928 = load i32, ptr @test_count, align 4, !tbaa !5
  %3929 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3927, ptr noundef @.str.46, i32 noundef %3928) #9
  br label %3933

3930:                                             ; preds = %3923
  %3931 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3932 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3931, ptr noundef @.str.47) #9
  br label %3933

3933:                                             ; preds = %3930, %3926
  br label %3945

3934:                                             ; preds = %3918, %3915
  %3935 = load i32, ptr @test_count, align 4, !tbaa !5
  %3936 = icmp ne i32 %3935, 0
  br i1 %3936, label %3937, label %3941

3937:                                             ; preds = %3934
  %3938 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3939 = load i32, ptr @test_count, align 4, !tbaa !5
  %3940 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3938, ptr noundef @.str.48, i32 noundef %3939) #9
  br label %3944

3941:                                             ; preds = %3934
  %3942 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3943 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3942, ptr noundef @.str.49) #9
  br label %3944

3944:                                             ; preds = %3941, %3937
  br label %3945

3945:                                             ; preds = %3944, %3933
  store i32 0, ptr %3, align 4
  br label %3947

3946:                                             ; No predecessors!
  br label %3947

3947:                                             ; preds = %3946, %3945
  %3948 = load i32, ptr %3, align 4
  ret i32 %3948
}

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

declare i32 @fflush(ptr noundef) #2

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) #2

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

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

declare i32 @s2n_print_stacktrace(ptr noundef) #2

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

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

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

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

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

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

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

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

declare i32 @s2n_enable_atexit() #2

declare i32 @s2n_init() #2

declare i32 @s2n_disable_tls13_in_test(...) #2

declare zeroext i1 @s2n_use_default_tls13_config(...) #2

declare ptr @s2n_connection_new(i32 noundef) #2

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

declare zeroext i1 @s2n_security_policy_supports_tls13(ptr noundef) #2

declare i32 @s2n_connection_free(ptr noundef) #2

declare i32 @s2n_enable_tls13_in_test(...) #2

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

declare zeroext i1 @s2n_is_valid_tls13_cipher(ptr noundef) #2

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

declare i32 @s2n_connection_allow_all_response_extensions(ptr noundef) #2

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

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

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

declare i32 @s2n_extension_supported_iana_value_to_id(i16 noundef zeroext, ptr noundef) #2

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

declare void @s2n_debug_info_reset() #2

declare i32 @s2n_stuffer_free(ptr noundef) #2

declare i32 @s2n_cleanup() #2

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #4 = { nounwind willreturn memory(none) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #6 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #8 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #9 = { nounwind }
attributes #10 = { nounwind willreturn memory(none) }
attributes #11 = { 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, !7, i64 218}
!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 = !{!16, !7, i64 219}
!43 = !{!7, !7, i64 0}
!44 = !{!45, !7, i64 8}
!45 = !{!"", !10, i64 0, !7, i64 8}
!46 = !{!18, !18, i64 0}
!47 = !{!45, !10, i64 0}
!48 = !{!49, !31, i64 0}
!49 = !{!"", !31, i64 0, !6, i64 2, !31, i64 4, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32}
!50 = !{i64 0, i64 8, !9, i64 8, i64 4, !5, i64 12, i64 4, !5, i64 16, i64 1, !43}
!51 = !{!52, !31, i64 24}
!52 = !{!"", !25, i64 0, !31, i64 24, !31, i64 26, !6, i64 28}
!53 = !{!16, !7, i64 220}
!54 = distinct !{!54, !55}
!55 = !{!"llvm.loop.mustprogress"}


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

%struct.s2n_cipher_suite = type { i8, ptr, ptr, [2 x i8], ptr, i32, ptr, [2 x ptr], i8, ptr, ptr, i32, i8 }
%struct.s2n_stuffer = type { %struct.s2n_blob, i32, i32, i32, i8 }
%struct.s2n_blob = type { ptr, i32, i32, 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 }

@s2n_use_color_in_output = external dso_local local_unnamed_addr global i8, align 1
@test_count = external dso_local local_unnamed_addr global i32, align 4
@stdout = external local_unnamed_addr global ptr, align 8
@.str = external hidden unnamed_addr constant [19 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [81 x i8], align 1
@stderr = external local_unnamed_addr global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [52 x i8], align 1
@s2n_errno = external thread_local local_unnamed_addr global i32, align 4
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [53 x i8], align 1
@__const.main.value = external hidden unnamed_addr constant [2 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [49 x i8], align 1
@s2n_dhe_rsa_with_3des_ede_cbc_sha = external global %struct.s2n_cipher_suite, align 8
@.str.24 = external hidden unnamed_addr constant [88 x i8], align 1
@s2n_tls13_aes_128_gcm_sha256 = external global %struct.s2n_cipher_suite, align 8
@.str.25 = external hidden unnamed_addr constant [80 x i8], align 1
@s2n_tls13_aes_256_gcm_sha384 = external global %struct.s2n_cipher_suite, align 8
@.str.26 = external hidden unnamed_addr constant [80 x i8], align 1
@s2n_tls13_chacha20_poly1305_sha256 = external global %struct.s2n_cipher_suite, align 8
@.str.27 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [127 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [135 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [118 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [109 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [106 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [25 x i8], align 1

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

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

25:                                               ; preds = %18
  %26 = load ptr, ptr @stderr, align 8, !tbaa !9
  %27 = tail call i32 @fileno(ptr noundef %26) #10
  %28 = tail call i32 @isatty(i32 noundef %27) #10
  %.not225 = icmp eq i32 %28, 0
  br i1 %.not225, label %29, label %30

29:                                               ; preds = %25, %18
  br label %30

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

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

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

54:                                               ; preds = %47
  %55 = load ptr, ptr @stderr, align 8, !tbaa !9
  %56 = tail call i32 @fileno(ptr noundef %55) #10
  %57 = tail call i32 @isatty(i32 noundef %56) #10
  %.not224 = icmp eq i32 %57, 0
  br i1 %.not224, label %58, label %59

58:                                               ; preds = %54, %47
  br label %59

59:                                               ; preds = %54, %58
  %.str.5.sink239 = phi ptr [ @.str.5, %58 ], [ @.str.2, %54 ]
  store i32 %49, ptr %48, align 4, !tbaa !5
  %60 = load ptr, ptr @stderr, align 8, !tbaa !9
  %61 = load i32, ptr @test_count, align 4, !tbaa !5
  %62 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %63 = load i32, ptr %62, align 4, !tbaa !5
  %64 = tail call ptr @s2n_strerror(i32 noundef %63, ptr noundef nonnull @.str.4) #10
  %65 = load i32, ptr %62, align 4, !tbaa !5
  %66 = tail call ptr @s2n_strerror_debug(i32 noundef %65, ptr noundef nonnull @.str.4) #10
  %67 = load i32, ptr %48, align 4, !tbaa !5
  %68 = tail call ptr @strerror(i32 noundef %67) #10
  %69 = load i32, ptr %48, align 4, !tbaa !5
  %70 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %60, ptr noundef nonnull %.str.5.sink239, i32 noundef %61, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.1, i32 noundef 30, ptr noundef %64, ptr noundef %66, ptr noundef %68, i32 noundef %69) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

71:                                               ; preds = %42
  %72 = tail call i32 @s2n_init() #10
  %73 = icmp eq i32 %72, -1
  br i1 %73, label %74, label %98

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

81:                                               ; preds = %74
  %82 = load ptr, ptr @stderr, align 8, !tbaa !9
  %83 = tail call i32 @fileno(ptr noundef %82) #10
  %84 = tail call i32 @isatty(i32 noundef %83) #10
  %.not223 = icmp eq i32 %84, 0
  br i1 %.not223, label %85, label %86

85:                                               ; preds = %81, %74
  br label %86

86:                                               ; preds = %81, %85
  %.str.5.sink250 = phi ptr [ @.str.5, %85 ], [ @.str.2, %81 ]
  store i32 %76, ptr %75, align 4, !tbaa !5
  %87 = load ptr, ptr @stderr, align 8, !tbaa !9
  %88 = load i32, ptr @test_count, align 4, !tbaa !5
  %89 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %90 = load i32, ptr %89, align 4, !tbaa !5
  %91 = tail call ptr @s2n_strerror(i32 noundef %90, ptr noundef nonnull @.str.4) #10
  %92 = load i32, ptr %89, align 4, !tbaa !5
  %93 = tail call ptr @s2n_strerror_debug(i32 noundef %92, ptr noundef nonnull @.str.4) #10
  %94 = load i32, ptr %75, align 4, !tbaa !5
  %95 = tail call ptr @strerror(i32 noundef %94) #10
  %96 = load i32, ptr %75, align 4, !tbaa !5
  %97 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %87, ptr noundef nonnull %.str.5.sink250, i32 noundef %88, ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.1, i32 noundef 30, ptr noundef %91, ptr noundef %93, ptr noundef %95, i32 noundef %96) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

98:                                               ; preds = %71
  %99 = load i32, ptr @test_count, align 4, !tbaa !5
  %100 = add nsw i32 %99, 1
  store i32 %100, ptr @test_count, align 4, !tbaa !5
  %101 = tail call i32 (...) @s2n_disable_tls13_in_test() #10
  %102 = icmp eq i32 %101, -1
  br i1 %102, label %103, label %127

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

110:                                              ; preds = %103
  %111 = load ptr, ptr @stderr, align 8, !tbaa !9
  %112 = tail call i32 @fileno(ptr noundef %111) #10
  %113 = tail call i32 @isatty(i32 noundef %112) #10
  %.not222 = icmp eq i32 %113, 0
  br i1 %.not222, label %114, label %115

114:                                              ; preds = %110, %103
  br label %115

115:                                              ; preds = %110, %114
  %.str.5.sink261 = phi ptr [ @.str.5, %114 ], [ @.str.2, %110 ]
  store i32 %105, ptr %104, align 4, !tbaa !5
  %116 = load ptr, ptr @stderr, align 8, !tbaa !9
  %117 = load i32, ptr @test_count, align 4, !tbaa !5
  %118 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %119 = load i32, ptr %118, align 4, !tbaa !5
  %120 = tail call ptr @s2n_strerror(i32 noundef %119, ptr noundef nonnull @.str.4) #10
  %121 = load i32, ptr %118, align 4, !tbaa !5
  %122 = tail call ptr @s2n_strerror_debug(i32 noundef %121, ptr noundef nonnull @.str.4) #10
  %123 = load i32, ptr %104, align 4, !tbaa !5
  %124 = tail call ptr @strerror(i32 noundef %123) #10
  %125 = load i32, ptr %104, align 4, !tbaa !5
  %126 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %116, ptr noundef nonnull %.str.5.sink261, i32 noundef %117, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 31, ptr noundef %120, ptr noundef %122, ptr noundef %124, i32 noundef %125) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

127:                                              ; preds = %98
  %128 = load i32, ptr @test_count, align 4, !tbaa !5
  %129 = add nsw i32 %128, 1
  store i32 %129, ptr @test_count, align 4, !tbaa !5
  %130 = tail call zeroext i1 (...) @s2n_use_default_tls13_config() #10
  br i1 %130, label %131, label %155

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

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

142:                                              ; preds = %138, %131
  br label %143

143:                                              ; preds = %138, %142
  %.str.5.sink272 = phi ptr [ @.str.5, %142 ], [ @.str.2, %138 ]
  store i32 %133, ptr %132, align 4, !tbaa !5
  %144 = load ptr, ptr @stderr, align 8, !tbaa !9
  %145 = load i32, ptr @test_count, align 4, !tbaa !5
  %146 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %147 = load i32, ptr %146, align 4, !tbaa !5
  %148 = tail call ptr @s2n_strerror(i32 noundef %147, ptr noundef nonnull @.str.4) #10
  %149 = load i32, ptr %146, align 4, !tbaa !5
  %150 = tail call ptr @s2n_strerror_debug(i32 noundef %149, ptr noundef nonnull @.str.4) #10
  %151 = load i32, ptr %132, align 4, !tbaa !5
  %152 = tail call ptr @strerror(i32 noundef %151) #10
  %153 = load i32, ptr %132, align 4, !tbaa !5
  %154 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %144, ptr noundef nonnull %.str.5.sink272, i32 noundef %145, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 34, ptr noundef %148, ptr noundef %150, ptr noundef %152, i32 noundef %153) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

155:                                              ; preds = %127
  %156 = load i32, ptr @test_count, align 4, !tbaa !5
  %157 = add nsw i32 %156, 1
  store i32 %157, ptr @test_count, align 4, !tbaa !5
  %158 = tail call ptr @s2n_connection_new(i32 noundef 1) #10
  %159 = icmp eq ptr %158, null
  br i1 %159, label %160, label %184

160:                                              ; preds = %155
  %161 = tail call ptr @__errno_location() #11
  %162 = load i32, ptr %161, align 4, !tbaa !5
  %163 = load ptr, ptr @stderr, align 8, !tbaa !9
  %164 = tail call i32 @s2n_print_stacktrace(ptr noundef %163) #10
  %165 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %166 = trunc nuw i8 %165 to i1
  br i1 %166, label %167, label %171

167:                                              ; preds = %160
  %168 = load ptr, ptr @stderr, align 8, !tbaa !9
  %169 = tail call i32 @fileno(ptr noundef %168) #10
  %170 = tail call i32 @isatty(i32 noundef %169) #10
  %.not220 = icmp eq i32 %170, 0
  br i1 %.not220, label %171, label %172

171:                                              ; preds = %167, %160
  br label %172

172:                                              ; preds = %167, %171
  %.str.5.sink283 = phi ptr [ @.str.5, %171 ], [ @.str.2, %167 ]
  store i32 %162, ptr %161, align 4, !tbaa !5
  %173 = load ptr, ptr @stderr, align 8, !tbaa !9
  %174 = load i32, ptr @test_count, align 4, !tbaa !5
  %175 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %176 = load i32, ptr %175, align 4, !tbaa !5
  %177 = tail call ptr @s2n_strerror(i32 noundef %176, ptr noundef nonnull @.str.4) #10
  %178 = load i32, ptr %175, align 4, !tbaa !5
  %179 = tail call ptr @s2n_strerror_debug(i32 noundef %178, ptr noundef nonnull @.str.4) #10
  %180 = load i32, ptr %161, align 4, !tbaa !5
  %181 = tail call ptr @strerror(i32 noundef %180) #10
  %182 = load i32, ptr %161, align 4, !tbaa !5
  %183 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %173, ptr noundef nonnull %.str.5.sink283, i32 noundef %174, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 41, ptr noundef %177, ptr noundef %179, ptr noundef %181, i32 noundef %182) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

184:                                              ; preds = %155
  %185 = load i32, ptr @test_count, align 4, !tbaa !5
  %186 = add nsw i32 %185, 1
  store i32 %186, ptr @test_count, align 4, !tbaa !5
  %187 = getelementptr inbounds i8, ptr %158, i64 218
  %188 = load i8, ptr %187, align 2, !tbaa !15
  %189 = icmp eq i8 %188, 34
  br i1 %189, label %190, label %214

190:                                              ; preds = %184
  %191 = tail call ptr @__errno_location() #11
  %192 = load i32, ptr %191, align 4, !tbaa !5
  %193 = load ptr, ptr @stderr, align 8, !tbaa !9
  %194 = tail call i32 @s2n_print_stacktrace(ptr noundef %193) #10
  %195 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %196 = trunc nuw i8 %195 to i1
  br i1 %196, label %197, label %201

197:                                              ; preds = %190
  %198 = load ptr, ptr @stderr, align 8, !tbaa !9
  %199 = tail call i32 @fileno(ptr noundef %198) #10
  %200 = tail call i32 @isatty(i32 noundef %199) #10
  %.not219 = icmp eq i32 %200, 0
  br i1 %.not219, label %201, label %202

201:                                              ; preds = %197, %190
  br label %202

202:                                              ; preds = %197, %201
  %.str.5.sink294 = phi ptr [ @.str.5, %201 ], [ @.str.2, %197 ]
  store i32 %192, ptr %191, align 4, !tbaa !5
  %203 = load ptr, ptr @stderr, align 8, !tbaa !9
  %204 = load i32, ptr @test_count, align 4, !tbaa !5
  %205 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %206 = load i32, ptr %205, align 4, !tbaa !5
  %207 = tail call ptr @s2n_strerror(i32 noundef %206, ptr noundef nonnull @.str.4) #10
  %208 = load i32, ptr %205, align 4, !tbaa !5
  %209 = tail call ptr @s2n_strerror_debug(i32 noundef %208, ptr noundef nonnull @.str.4) #10
  %210 = load i32, ptr %191, align 4, !tbaa !5
  %211 = tail call ptr @strerror(i32 noundef %210) #10
  %212 = load i32, ptr %191, align 4, !tbaa !5
  %213 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %203, ptr noundef nonnull %.str.5.sink294, i32 noundef %204, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 43, ptr noundef %207, ptr noundef %209, ptr noundef %211, i32 noundef %212) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

214:                                              ; preds = %184
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3) #10
  store ptr null, ptr %3, align 8, !tbaa !9
  %215 = add nsw i32 %185, 2
  store i32 %215, ptr @test_count, align 4, !tbaa !5
  %216 = call i32 @s2n_connection_get_security_policy(ptr noundef nonnull %158, ptr noundef nonnull %3) #10
  %217 = icmp eq i32 %216, -1
  br i1 %217, label %218, label %242

218:                                              ; preds = %214
  %219 = tail call ptr @__errno_location() #11
  %220 = load i32, ptr %219, align 4, !tbaa !5
  %221 = load ptr, ptr @stderr, align 8, !tbaa !9
  %222 = call i32 @s2n_print_stacktrace(ptr noundef %221) #10
  %223 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %224 = trunc nuw i8 %223 to i1
  br i1 %224, label %225, label %229

225:                                              ; preds = %218
  %226 = load ptr, ptr @stderr, align 8, !tbaa !9
  %227 = call i32 @fileno(ptr noundef %226) #10
  %228 = call i32 @isatty(i32 noundef %227) #10
  %.not218 = icmp eq i32 %228, 0
  br i1 %.not218, label %229, label %230

229:                                              ; preds = %225, %218
  br label %230

230:                                              ; preds = %225, %229
  %.str.5.sink305 = phi ptr [ @.str.5, %229 ], [ @.str.2, %225 ]
  store i32 %220, ptr %219, align 4, !tbaa !5
  %231 = load ptr, ptr @stderr, align 8, !tbaa !9
  %232 = load i32, ptr @test_count, align 4, !tbaa !5
  %233 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %234 = load i32, ptr %233, align 4, !tbaa !5
  %235 = call ptr @s2n_strerror(i32 noundef %234, ptr noundef nonnull @.str.4) #10
  %236 = load i32, ptr %233, align 4, !tbaa !5
  %237 = call ptr @s2n_strerror_debug(i32 noundef %236, ptr noundef nonnull @.str.4) #10
  %238 = load i32, ptr %219, align 4, !tbaa !5
  %239 = call ptr @strerror(i32 noundef %238) #10
  %240 = load i32, ptr %219, align 4, !tbaa !5
  %241 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %231, ptr noundef nonnull %.str.5.sink305, i32 noundef %232, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 46, ptr noundef %235, ptr noundef %237, ptr noundef %239, i32 noundef %240) #12
  call void @exit(i32 noundef 1) #13
  unreachable

242:                                              ; preds = %214
  %243 = load i32, ptr @test_count, align 4, !tbaa !5
  %244 = add nsw i32 %243, 1
  store i32 %244, ptr @test_count, align 4, !tbaa !5
  %245 = load ptr, ptr %3, align 8, !tbaa !9
  %246 = call zeroext i1 @s2n_security_policy_supports_tls13(ptr noundef %245) #10
  br i1 %246, label %247, label %271

247:                                              ; preds = %242
  %248 = tail call ptr @__errno_location() #11
  %249 = load i32, ptr %248, align 4, !tbaa !5
  %250 = load ptr, ptr @stderr, align 8, !tbaa !9
  %251 = call i32 @s2n_print_stacktrace(ptr noundef %250) #10
  %252 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %253 = trunc nuw i8 %252 to i1
  br i1 %253, label %254, label %258

254:                                              ; preds = %247
  %255 = load ptr, ptr @stderr, align 8, !tbaa !9
  %256 = call i32 @fileno(ptr noundef %255) #10
  %257 = call i32 @isatty(i32 noundef %256) #10
  %.not217 = icmp eq i32 %257, 0
  br i1 %.not217, label %258, label %259

258:                                              ; preds = %254, %247
  br label %259

259:                                              ; preds = %254, %258
  %.str.5.sink316 = phi ptr [ @.str.5, %258 ], [ @.str.2, %254 ]
  store i32 %249, ptr %248, align 4, !tbaa !5
  %260 = load ptr, ptr @stderr, align 8, !tbaa !9
  %261 = load i32, ptr @test_count, align 4, !tbaa !5
  %262 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %263 = load i32, ptr %262, align 4, !tbaa !5
  %264 = call ptr @s2n_strerror(i32 noundef %263, ptr noundef nonnull @.str.4) #10
  %265 = load i32, ptr %262, align 4, !tbaa !5
  %266 = call ptr @s2n_strerror_debug(i32 noundef %265, ptr noundef nonnull @.str.4) #10
  %267 = load i32, ptr %248, align 4, !tbaa !5
  %268 = call ptr @strerror(i32 noundef %267) #10
  %269 = load i32, ptr %248, align 4, !tbaa !5
  %270 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %260, ptr noundef nonnull %.str.5.sink316, i32 noundef %261, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 47, ptr noundef %264, ptr noundef %266, ptr noundef %268, i32 noundef %269) #12
  call void @exit(i32 noundef 1) #13
  unreachable

271:                                              ; preds = %242
  %272 = load i32, ptr @test_count, align 4, !tbaa !5
  %273 = add nsw i32 %272, 1
  store i32 %273, ptr @test_count, align 4, !tbaa !5
  %274 = call i32 @s2n_connection_free(ptr noundef nonnull %158) #10
  %275 = icmp eq i32 %274, -1
  br i1 %275, label %276, label %300

276:                                              ; preds = %271
  %277 = tail call ptr @__errno_location() #11
  %278 = load i32, ptr %277, align 4, !tbaa !5
  %279 = load ptr, ptr @stderr, align 8, !tbaa !9
  %280 = call i32 @s2n_print_stacktrace(ptr noundef %279) #10
  %281 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %282 = trunc nuw i8 %281 to i1
  br i1 %282, label %283, label %287

283:                                              ; preds = %276
  %284 = load ptr, ptr @stderr, align 8, !tbaa !9
  %285 = call i32 @fileno(ptr noundef %284) #10
  %286 = call i32 @isatty(i32 noundef %285) #10
  %.not216 = icmp eq i32 %286, 0
  br i1 %.not216, label %287, label %288

287:                                              ; preds = %283, %276
  br label %288

288:                                              ; preds = %283, %287
  %.str.5.sink327 = phi ptr [ @.str.5, %287 ], [ @.str.2, %283 ]
  store i32 %278, ptr %277, align 4, !tbaa !5
  %289 = load ptr, ptr @stderr, align 8, !tbaa !9
  %290 = load i32, ptr @test_count, align 4, !tbaa !5
  %291 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %292 = load i32, ptr %291, align 4, !tbaa !5
  %293 = call ptr @s2n_strerror(i32 noundef %292, ptr noundef nonnull @.str.4) #10
  %294 = load i32, ptr %291, align 4, !tbaa !5
  %295 = call ptr @s2n_strerror_debug(i32 noundef %294, ptr noundef nonnull @.str.4) #10
  %296 = load i32, ptr %277, align 4, !tbaa !5
  %297 = call ptr @strerror(i32 noundef %296) #10
  %298 = load i32, ptr %277, align 4, !tbaa !5
  %299 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %289, ptr noundef nonnull %.str.5.sink327, i32 noundef %290, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 49, ptr noundef %293, ptr noundef %295, ptr noundef %297, i32 noundef %298) #12
  call void @exit(i32 noundef 1) #13
  unreachable

300:                                              ; preds = %271
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #10
  %301 = load i32, ptr @test_count, align 4, !tbaa !5
  %302 = add nsw i32 %301, 1
  store i32 %302, ptr @test_count, align 4, !tbaa !5
  %303 = call ptr @s2n_connection_new(i32 noundef 0) #10
  %304 = icmp eq ptr %303, null
  br i1 %304, label %305, label %329

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

312:                                              ; preds = %305
  %313 = load ptr, ptr @stderr, align 8, !tbaa !9
  %314 = call i32 @fileno(ptr noundef %313) #10
  %315 = call i32 @isatty(i32 noundef %314) #10
  %.not215 = icmp eq i32 %315, 0
  br i1 %.not215, label %316, label %317

316:                                              ; preds = %312, %305
  br label %317

317:                                              ; preds = %312, %316
  %.str.5.sink338 = phi ptr [ @.str.5, %316 ], [ @.str.2, %312 ]
  store i32 %307, ptr %306, align 4, !tbaa !5
  %318 = load ptr, ptr @stderr, align 8, !tbaa !9
  %319 = load i32, ptr @test_count, align 4, !tbaa !5
  %320 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %321 = load i32, ptr %320, align 4, !tbaa !5
  %322 = call ptr @s2n_strerror(i32 noundef %321, ptr noundef nonnull @.str.4) #10
  %323 = load i32, ptr %320, align 4, !tbaa !5
  %324 = call ptr @s2n_strerror_debug(i32 noundef %323, ptr noundef nonnull @.str.4) #10
  %325 = load i32, ptr %306, align 4, !tbaa !5
  %326 = call ptr @strerror(i32 noundef %325) #10
  %327 = load i32, ptr %306, align 4, !tbaa !5
  %328 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %318, ptr noundef nonnull %.str.5.sink338, i32 noundef %319, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 55, ptr noundef %322, ptr noundef %324, ptr noundef %326, i32 noundef %327) #12
  call void @exit(i32 noundef 1) #13
  unreachable

329:                                              ; preds = %300
  %330 = load i32, ptr @test_count, align 4, !tbaa !5
  %331 = add nsw i32 %330, 1
  store i32 %331, ptr @test_count, align 4, !tbaa !5
  %332 = getelementptr inbounds i8, ptr %303, i64 219
  %333 = load i8, ptr %332, align 1, !tbaa !42
  %334 = icmp eq i8 %333, 34
  br i1 %334, label %335, label %359

335:                                              ; preds = %329
  %336 = tail call ptr @__errno_location() #11
  %337 = load i32, ptr %336, align 4, !tbaa !5
  %338 = load ptr, ptr @stderr, align 8, !tbaa !9
  %339 = call i32 @s2n_print_stacktrace(ptr noundef %338) #10
  %340 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %341 = trunc nuw i8 %340 to i1
  br i1 %341, label %342, label %346

342:                                              ; preds = %335
  %343 = load ptr, ptr @stderr, align 8, !tbaa !9
  %344 = call i32 @fileno(ptr noundef %343) #10
  %345 = call i32 @isatty(i32 noundef %344) #10
  %.not214 = icmp eq i32 %345, 0
  br i1 %.not214, label %346, label %347

346:                                              ; preds = %342, %335
  br label %347

347:                                              ; preds = %342, %346
  %.str.5.sink349 = phi ptr [ @.str.5, %346 ], [ @.str.2, %342 ]
  store i32 %337, ptr %336, align 4, !tbaa !5
  %348 = load ptr, ptr @stderr, align 8, !tbaa !9
  %349 = load i32, ptr @test_count, align 4, !tbaa !5
  %350 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %351 = load i32, ptr %350, align 4, !tbaa !5
  %352 = call ptr @s2n_strerror(i32 noundef %351, ptr noundef nonnull @.str.4) #10
  %353 = load i32, ptr %350, align 4, !tbaa !5
  %354 = call ptr @s2n_strerror_debug(i32 noundef %353, ptr noundef nonnull @.str.4) #10
  %355 = load i32, ptr %336, align 4, !tbaa !5
  %356 = call ptr @strerror(i32 noundef %355) #10
  %357 = load i32, ptr %336, align 4, !tbaa !5
  %358 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %348, ptr noundef nonnull %.str.5.sink349, i32 noundef %349, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 57, ptr noundef %352, ptr noundef %354, ptr noundef %356, i32 noundef %357) #12
  call void @exit(i32 noundef 1) #13
  unreachable

359:                                              ; preds = %329
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4) #10
  store ptr null, ptr %4, align 8, !tbaa !9
  %360 = add nsw i32 %330, 2
  store i32 %360, ptr @test_count, align 4, !tbaa !5
  %361 = call i32 @s2n_connection_get_security_policy(ptr noundef nonnull %303, ptr noundef nonnull %4) #10
  %362 = icmp eq i32 %361, -1
  br i1 %362, label %363, label %387

363:                                              ; preds = %359
  %364 = tail call ptr @__errno_location() #11
  %365 = load i32, ptr %364, align 4, !tbaa !5
  %366 = load ptr, ptr @stderr, align 8, !tbaa !9
  %367 = call i32 @s2n_print_stacktrace(ptr noundef %366) #10
  %368 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %369 = trunc nuw i8 %368 to i1
  br i1 %369, label %370, label %374

370:                                              ; preds = %363
  %371 = load ptr, ptr @stderr, align 8, !tbaa !9
  %372 = call i32 @fileno(ptr noundef %371) #10
  %373 = call i32 @isatty(i32 noundef %372) #10
  %.not213 = icmp eq i32 %373, 0
  br i1 %.not213, label %374, label %375

374:                                              ; preds = %370, %363
  br label %375

375:                                              ; preds = %370, %374
  %.str.5.sink360 = phi ptr [ @.str.5, %374 ], [ @.str.2, %370 ]
  store i32 %365, ptr %364, align 4, !tbaa !5
  %376 = load ptr, ptr @stderr, align 8, !tbaa !9
  %377 = load i32, ptr @test_count, align 4, !tbaa !5
  %378 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %379 = load i32, ptr %378, align 4, !tbaa !5
  %380 = call ptr @s2n_strerror(i32 noundef %379, ptr noundef nonnull @.str.4) #10
  %381 = load i32, ptr %378, align 4, !tbaa !5
  %382 = call ptr @s2n_strerror_debug(i32 noundef %381, ptr noundef nonnull @.str.4) #10
  %383 = load i32, ptr %364, align 4, !tbaa !5
  %384 = call ptr @strerror(i32 noundef %383) #10
  %385 = load i32, ptr %364, align 4, !tbaa !5
  %386 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %376, ptr noundef nonnull %.str.5.sink360, i32 noundef %377, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 60, ptr noundef %380, ptr noundef %382, ptr noundef %384, i32 noundef %385) #12
  call void @exit(i32 noundef 1) #13
  unreachable

387:                                              ; preds = %359
  %388 = load i32, ptr @test_count, align 4, !tbaa !5
  %389 = add nsw i32 %388, 1
  store i32 %389, ptr @test_count, align 4, !tbaa !5
  %390 = load ptr, ptr %4, align 8, !tbaa !9
  %391 = call zeroext i1 @s2n_security_policy_supports_tls13(ptr noundef %390) #10
  br i1 %391, label %392, label %416

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

399:                                              ; preds = %392
  %400 = load ptr, ptr @stderr, align 8, !tbaa !9
  %401 = call i32 @fileno(ptr noundef %400) #10
  %402 = call i32 @isatty(i32 noundef %401) #10
  %.not212 = icmp eq i32 %402, 0
  br i1 %.not212, label %403, label %404

403:                                              ; preds = %399, %392
  br label %404

404:                                              ; preds = %399, %403
  %.str.5.sink371 = phi ptr [ @.str.5, %403 ], [ @.str.2, %399 ]
  store i32 %394, ptr %393, align 4, !tbaa !5
  %405 = load ptr, ptr @stderr, align 8, !tbaa !9
  %406 = load i32, ptr @test_count, align 4, !tbaa !5
  %407 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %408 = load i32, ptr %407, align 4, !tbaa !5
  %409 = call ptr @s2n_strerror(i32 noundef %408, ptr noundef nonnull @.str.4) #10
  %410 = load i32, ptr %407, align 4, !tbaa !5
  %411 = call ptr @s2n_strerror_debug(i32 noundef %410, ptr noundef nonnull @.str.4) #10
  %412 = load i32, ptr %393, align 4, !tbaa !5
  %413 = call ptr @strerror(i32 noundef %412) #10
  %414 = load i32, ptr %393, align 4, !tbaa !5
  %415 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %405, ptr noundef nonnull %.str.5.sink371, i32 noundef %406, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 61, ptr noundef %409, ptr noundef %411, ptr noundef %413, i32 noundef %414) #12
  call void @exit(i32 noundef 1) #13
  unreachable

416:                                              ; preds = %387
  %417 = load i32, ptr @test_count, align 4, !tbaa !5
  %418 = add nsw i32 %417, 1
  store i32 %418, ptr @test_count, align 4, !tbaa !5
  %419 = call i32 @s2n_connection_free(ptr noundef nonnull %303) #10
  %420 = icmp eq i32 %419, -1
  br i1 %420, label %421, label %445

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

428:                                              ; preds = %421
  %429 = load ptr, ptr @stderr, align 8, !tbaa !9
  %430 = call i32 @fileno(ptr noundef %429) #10
  %431 = call i32 @isatty(i32 noundef %430) #10
  %.not211 = icmp eq i32 %431, 0
  br i1 %.not211, label %432, label %433

432:                                              ; preds = %428, %421
  br label %433

433:                                              ; preds = %428, %432
  %.str.5.sink382 = phi ptr [ @.str.5, %432 ], [ @.str.2, %428 ]
  store i32 %423, ptr %422, align 4, !tbaa !5
  %434 = load ptr, ptr @stderr, align 8, !tbaa !9
  %435 = load i32, ptr @test_count, align 4, !tbaa !5
  %436 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %437 = load i32, ptr %436, align 4, !tbaa !5
  %438 = call ptr @s2n_strerror(i32 noundef %437, ptr noundef nonnull @.str.4) #10
  %439 = load i32, ptr %436, align 4, !tbaa !5
  %440 = call ptr @s2n_strerror_debug(i32 noundef %439, ptr noundef nonnull @.str.4) #10
  %441 = load i32, ptr %422, align 4, !tbaa !5
  %442 = call ptr @strerror(i32 noundef %441) #10
  %443 = load i32, ptr %422, align 4, !tbaa !5
  %444 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %434, ptr noundef nonnull %.str.5.sink382, i32 noundef %435, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 63, ptr noundef %438, ptr noundef %440, ptr noundef %442, i32 noundef %443) #12
  call void @exit(i32 noundef 1) #13
  unreachable

445:                                              ; preds = %416
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #10
  %446 = load i32, ptr @test_count, align 4, !tbaa !5
  %447 = add nsw i32 %446, 1
  store i32 %447, ptr @test_count, align 4, !tbaa !5
  %448 = call i32 (...) @s2n_enable_tls13_in_test() #10
  %449 = icmp eq i32 %448, -1
  br i1 %449, label %450, label %474

450:                                              ; preds = %445
  %451 = tail call ptr @__errno_location() #11
  %452 = load i32, ptr %451, align 4, !tbaa !5
  %453 = load ptr, ptr @stderr, align 8, !tbaa !9
  %454 = call i32 @s2n_print_stacktrace(ptr noundef %453) #10
  %455 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %456 = trunc nuw i8 %455 to i1
  br i1 %456, label %457, label %461

457:                                              ; preds = %450
  %458 = load ptr, ptr @stderr, align 8, !tbaa !9
  %459 = call i32 @fileno(ptr noundef %458) #10
  %460 = call i32 @isatty(i32 noundef %459) #10
  %.not210 = icmp eq i32 %460, 0
  br i1 %.not210, label %461, label %462

461:                                              ; preds = %457, %450
  br label %462

462:                                              ; preds = %457, %461
  %.str.5.sink393 = phi ptr [ @.str.5, %461 ], [ @.str.2, %457 ]
  store i32 %452, ptr %451, align 4, !tbaa !5
  %463 = load ptr, ptr @stderr, align 8, !tbaa !9
  %464 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %466, ptr noundef nonnull @.str.4) #10
  %468 = load i32, ptr %465, align 4, !tbaa !5
  %469 = call ptr @s2n_strerror_debug(i32 noundef %468, ptr noundef nonnull @.str.4) #10
  %470 = load i32, ptr %451, align 4, !tbaa !5
  %471 = call ptr @strerror(i32 noundef %470) #10
  %472 = load i32, ptr %451, align 4, !tbaa !5
  %473 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %463, ptr noundef nonnull %.str.5.sink393, i32 noundef %464, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 67, ptr noundef %467, ptr noundef %469, ptr noundef %471, i32 noundef %472) #12
  call void @exit(i32 noundef 1) #13
  unreachable

474:                                              ; preds = %445
  %475 = load i32, ptr @test_count, align 4, !tbaa !5
  %476 = add nsw i32 %475, 1
  store i32 %476, ptr @test_count, align 4, !tbaa !5
  %477 = call zeroext i1 (...) @s2n_use_default_tls13_config() #10
  br i1 %477, label %502, label %478

478:                                              ; preds = %474
  %479 = tail call ptr @__errno_location() #11
  %480 = load i32, ptr %479, align 4, !tbaa !5
  %481 = load ptr, ptr @stderr, align 8, !tbaa !9
  %482 = call i32 @s2n_print_stacktrace(ptr noundef %481) #10
  %483 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %484 = trunc nuw i8 %483 to i1
  br i1 %484, label %485, label %489

485:                                              ; preds = %478
  %486 = load ptr, ptr @stderr, align 8, !tbaa !9
  %487 = call i32 @fileno(ptr noundef %486) #10
  %488 = call i32 @isatty(i32 noundef %487) #10
  %.not = icmp eq i32 %488, 0
  br i1 %.not, label %489, label %490

489:                                              ; preds = %485, %478
  br label %490

490:                                              ; preds = %485, %489
  %.str.5.sink404 = phi ptr [ @.str.5, %489 ], [ @.str.2, %485 ]
  store i32 %480, ptr %479, align 4, !tbaa !5
  %491 = load ptr, ptr @stderr, align 8, !tbaa !9
  %492 = load i32, ptr @test_count, align 4, !tbaa !5
  %493 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %494 = load i32, ptr %493, align 4, !tbaa !5
  %495 = call ptr @s2n_strerror(i32 noundef %494, ptr noundef nonnull @.str.4) #10
  %496 = load i32, ptr %493, align 4, !tbaa !5
  %497 = call ptr @s2n_strerror_debug(i32 noundef %496, ptr noundef nonnull @.str.4) #10
  %498 = load i32, ptr %479, align 4, !tbaa !5
  %499 = call ptr @strerror(i32 noundef %498) #10
  %500 = load i32, ptr %479, align 4, !tbaa !5
  %501 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %491, ptr noundef nonnull %.str.5.sink404, i32 noundef %492, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 68, ptr noundef %495, ptr noundef %497, ptr noundef %499, i32 noundef %500) #12
  call void @exit(i32 noundef 1) #13
  unreachable

502:                                              ; preds = %474
  %503 = load i32, ptr @test_count, align 4, !tbaa !5
  %504 = add nsw i32 %503, 1
  store i32 %504, ptr @test_count, align 4, !tbaa !5
  %505 = call i32 (...) @s2n_enable_tls13_in_test() #10
  %506 = icmp eq i32 %505, -1
  br i1 %506, label %507, label %531

507:                                              ; preds = %502
  %508 = tail call ptr @__errno_location() #11
  %509 = load i32, ptr %508, align 4, !tbaa !5
  %510 = load ptr, ptr @stderr, align 8, !tbaa !9
  %511 = call i32 @s2n_print_stacktrace(ptr noundef %510) #10
  %512 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %513 = trunc nuw i8 %512 to i1
  br i1 %513, label %514, label %518

514:                                              ; preds = %507
  %515 = load ptr, ptr @stderr, align 8, !tbaa !9
  %516 = call i32 @fileno(ptr noundef %515) #10
  %517 = call i32 @isatty(i32 noundef %516) #10
  %.not209 = icmp eq i32 %517, 0
  br i1 %.not209, label %518, label %519

518:                                              ; preds = %514, %507
  br label %519

519:                                              ; preds = %514, %518
  %.str.5.sink415 = phi ptr [ @.str.5, %518 ], [ @.str.2, %514 ]
  store i32 %509, ptr %508, align 4, !tbaa !5
  %520 = load ptr, ptr @stderr, align 8, !tbaa !9
  %521 = load i32, ptr @test_count, align 4, !tbaa !5
  %522 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %523 = load i32, ptr %522, align 4, !tbaa !5
  %524 = call ptr @s2n_strerror(i32 noundef %523, ptr noundef nonnull @.str.4) #10
  %525 = load i32, ptr %522, align 4, !tbaa !5
  %526 = call ptr @s2n_strerror_debug(i32 noundef %525, ptr noundef nonnull @.str.4) #10
  %527 = load i32, ptr %508, align 4, !tbaa !5
  %528 = call ptr @strerror(i32 noundef %527) #10
  %529 = load i32, ptr %508, align 4, !tbaa !5
  %530 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %520, ptr noundef nonnull %.str.5.sink415, i32 noundef %521, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 71, ptr noundef %524, ptr noundef %526, ptr noundef %528, i32 noundef %529) #12
  call void @exit(i32 noundef 1) #13
  unreachable

531:                                              ; preds = %502
  %532 = load i32, ptr @test_count, align 4, !tbaa !5
  %533 = add nsw i32 %532, 1
  store i32 %533, ptr @test_count, align 4, !tbaa !5
  %534 = call zeroext i1 (...) @s2n_use_default_tls13_config() #10
  br i1 %534, label %559, label %535

535:                                              ; preds = %531
  %536 = tail call ptr @__errno_location() #11
  %537 = load i32, ptr %536, align 4, !tbaa !5
  %538 = load ptr, ptr @stderr, align 8, !tbaa !9
  %539 = call i32 @s2n_print_stacktrace(ptr noundef %538) #10
  %540 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %541 = trunc nuw i8 %540 to i1
  br i1 %541, label %542, label %546

542:                                              ; preds = %535
  %543 = load ptr, ptr @stderr, align 8, !tbaa !9
  %544 = call i32 @fileno(ptr noundef %543) #10
  %545 = call i32 @isatty(i32 noundef %544) #10
  %.not160 = icmp eq i32 %545, 0
  br i1 %.not160, label %546, label %547

546:                                              ; preds = %542, %535
  br label %547

547:                                              ; preds = %542, %546
  %.str.5.sink426 = phi ptr [ @.str.5, %546 ], [ @.str.2, %542 ]
  store i32 %537, ptr %536, align 4, !tbaa !5
  %548 = load ptr, ptr @stderr, align 8, !tbaa !9
  %549 = load i32, ptr @test_count, align 4, !tbaa !5
  %550 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %551 = load i32, ptr %550, align 4, !tbaa !5
  %552 = call ptr @s2n_strerror(i32 noundef %551, ptr noundef nonnull @.str.4) #10
  %553 = load i32, ptr %550, align 4, !tbaa !5
  %554 = call ptr @s2n_strerror_debug(i32 noundef %553, ptr noundef nonnull @.str.4) #10
  %555 = load i32, ptr %536, align 4, !tbaa !5
  %556 = call ptr @strerror(i32 noundef %555) #10
  %557 = load i32, ptr %536, align 4, !tbaa !5
  %558 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %548, ptr noundef nonnull %.str.5.sink426, i32 noundef %549, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 72, ptr noundef %552, ptr noundef %554, ptr noundef %556, i32 noundef %557) #12
  call void @exit(i32 noundef 1) #13
  unreachable

559:                                              ; preds = %531
  %560 = load i32, ptr @test_count, align 4, !tbaa !5
  %561 = add nsw i32 %560, 1
  store i32 %561, ptr @test_count, align 4, !tbaa !5
  %562 = call ptr @s2n_connection_new(i32 noundef 1) #10
  %563 = icmp eq ptr %562, null
  br i1 %563, label %564, label %588

564:                                              ; preds = %559
  %565 = tail call ptr @__errno_location() #11
  %566 = load i32, ptr %565, align 4, !tbaa !5
  %567 = load ptr, ptr @stderr, align 8, !tbaa !9
  %568 = call i32 @s2n_print_stacktrace(ptr noundef %567) #10
  %569 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %570 = trunc nuw i8 %569 to i1
  br i1 %570, label %571, label %575

571:                                              ; preds = %564
  %572 = load ptr, ptr @stderr, align 8, !tbaa !9
  %573 = call i32 @fileno(ptr noundef %572) #10
  %574 = call i32 @isatty(i32 noundef %573) #10
  %.not208 = icmp eq i32 %574, 0
  br i1 %.not208, label %575, label %576

575:                                              ; preds = %571, %564
  br label %576

576:                                              ; preds = %571, %575
  %.str.5.sink437 = phi ptr [ @.str.5, %575 ], [ @.str.2, %571 ]
  store i32 %566, ptr %565, align 4, !tbaa !5
  %577 = load ptr, ptr @stderr, align 8, !tbaa !9
  %578 = load i32, ptr @test_count, align 4, !tbaa !5
  %579 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %580 = load i32, ptr %579, align 4, !tbaa !5
  %581 = call ptr @s2n_strerror(i32 noundef %580, ptr noundef nonnull @.str.4) #10
  %582 = load i32, ptr %579, align 4, !tbaa !5
  %583 = call ptr @s2n_strerror_debug(i32 noundef %582, ptr noundef nonnull @.str.4) #10
  %584 = load i32, ptr %565, align 4, !tbaa !5
  %585 = call ptr @strerror(i32 noundef %584) #10
  %586 = load i32, ptr %565, align 4, !tbaa !5
  %587 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %577, ptr noundef nonnull %.str.5.sink437, i32 noundef %578, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 79, ptr noundef %581, ptr noundef %583, ptr noundef %585, i32 noundef %586) #12
  call void @exit(i32 noundef 1) #13
  unreachable

588:                                              ; preds = %559
  %589 = load i32, ptr @test_count, align 4, !tbaa !5
  %590 = add nsw i32 %589, 1
  store i32 %590, ptr @test_count, align 4, !tbaa !5
  %591 = getelementptr inbounds i8, ptr %562, i64 218
  %592 = load i8, ptr %591, align 2, !tbaa !15
  %593 = icmp eq i8 %592, 34
  br i1 %593, label %618, label %594

594:                                              ; preds = %588
  %595 = tail call ptr @__errno_location() #11
  %596 = load i32, ptr %595, align 4, !tbaa !5
  %597 = load ptr, ptr @stderr, align 8, !tbaa !9
  %598 = call i32 @s2n_print_stacktrace(ptr noundef %597) #10
  %599 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %600 = trunc nuw i8 %599 to i1
  br i1 %600, label %601, label %605

601:                                              ; preds = %594
  %602 = load ptr, ptr @stderr, align 8, !tbaa !9
  %603 = call i32 @fileno(ptr noundef %602) #10
  %604 = call i32 @isatty(i32 noundef %603) #10
  %.not161 = icmp eq i32 %604, 0
  br i1 %.not161, label %605, label %606

605:                                              ; preds = %601, %594
  br label %606

606:                                              ; preds = %601, %605
  %.str.5.sink448 = phi ptr [ @.str.5, %605 ], [ @.str.2, %601 ]
  store i32 %596, ptr %595, align 4, !tbaa !5
  %607 = load ptr, ptr @stderr, align 8, !tbaa !9
  %608 = load i32, ptr @test_count, align 4, !tbaa !5
  %609 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %610 = load i32, ptr %609, align 4, !tbaa !5
  %611 = call ptr @s2n_strerror(i32 noundef %610, ptr noundef nonnull @.str.4) #10
  %612 = load i32, ptr %609, align 4, !tbaa !5
  %613 = call ptr @s2n_strerror_debug(i32 noundef %612, ptr noundef nonnull @.str.4) #10
  %614 = load i32, ptr %595, align 4, !tbaa !5
  %615 = call ptr @strerror(i32 noundef %614) #10
  %616 = load i32, ptr %595, align 4, !tbaa !5
  %617 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %607, ptr noundef nonnull %.str.5.sink448, i32 noundef %608, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 81, ptr noundef %611, ptr noundef %613, ptr noundef %615, i32 noundef %616) #12
  call void @exit(i32 noundef 1) #13
  unreachable

618:                                              ; preds = %588
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #10
  store ptr null, ptr %5, align 8, !tbaa !9
  %619 = add nsw i32 %589, 2
  store i32 %619, ptr @test_count, align 4, !tbaa !5
  %620 = call i32 @s2n_connection_get_security_policy(ptr noundef nonnull %562, ptr noundef nonnull %5) #10
  %621 = icmp eq i32 %620, -1
  br i1 %621, label %622, label %646

622:                                              ; preds = %618
  %623 = tail call ptr @__errno_location() #11
  %624 = load i32, ptr %623, align 4, !tbaa !5
  %625 = load ptr, ptr @stderr, align 8, !tbaa !9
  %626 = call i32 @s2n_print_stacktrace(ptr noundef %625) #10
  %627 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %628 = trunc nuw i8 %627 to i1
  br i1 %628, label %629, label %633

629:                                              ; preds = %622
  %630 = load ptr, ptr @stderr, align 8, !tbaa !9
  %631 = call i32 @fileno(ptr noundef %630) #10
  %632 = call i32 @isatty(i32 noundef %631) #10
  %.not207 = icmp eq i32 %632, 0
  br i1 %.not207, label %633, label %634

633:                                              ; preds = %629, %622
  br label %634

634:                                              ; preds = %629, %633
  %.str.5.sink459 = phi ptr [ @.str.5, %633 ], [ @.str.2, %629 ]
  store i32 %624, ptr %623, 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 nonnull @.str.4) #10
  %640 = load i32, ptr %637, align 4, !tbaa !5
  %641 = call ptr @s2n_strerror_debug(i32 noundef %640, ptr noundef nonnull @.str.4) #10
  %642 = load i32, ptr %623, align 4, !tbaa !5
  %643 = call ptr @strerror(i32 noundef %642) #10
  %644 = load i32, ptr %623, align 4, !tbaa !5
  %645 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %635, ptr noundef nonnull %.str.5.sink459, i32 noundef %636, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 84, ptr noundef %639, ptr noundef %641, ptr noundef %643, i32 noundef %644) #12
  call void @exit(i32 noundef 1) #13
  unreachable

646:                                              ; preds = %618
  %647 = load i32, ptr @test_count, align 4, !tbaa !5
  %648 = add nsw i32 %647, 1
  store i32 %648, ptr @test_count, align 4, !tbaa !5
  %649 = load ptr, ptr %5, align 8, !tbaa !9
  %650 = call zeroext i1 @s2n_security_policy_supports_tls13(ptr noundef %649) #10
  br i1 %650, label %675, label %651

651:                                              ; preds = %646
  %652 = tail call ptr @__errno_location() #11
  %653 = load i32, ptr %652, align 4, !tbaa !5
  %654 = load ptr, ptr @stderr, align 8, !tbaa !9
  %655 = call i32 @s2n_print_stacktrace(ptr noundef %654) #10
  %656 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %657 = trunc nuw i8 %656 to i1
  br i1 %657, label %658, label %662

658:                                              ; preds = %651
  %659 = load ptr, ptr @stderr, align 8, !tbaa !9
  %660 = call i32 @fileno(ptr noundef %659) #10
  %661 = call i32 @isatty(i32 noundef %660) #10
  %.not162 = icmp eq i32 %661, 0
  br i1 %.not162, label %662, label %663

662:                                              ; preds = %658, %651
  br label %663

663:                                              ; preds = %658, %662
  %.str.5.sink470 = phi ptr [ @.str.5, %662 ], [ @.str.2, %658 ]
  store i32 %653, ptr %652, align 4, !tbaa !5
  %664 = load ptr, ptr @stderr, align 8, !tbaa !9
  %665 = load i32, ptr @test_count, align 4, !tbaa !5
  %666 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %667 = load i32, ptr %666, align 4, !tbaa !5
  %668 = call ptr @s2n_strerror(i32 noundef %667, ptr noundef nonnull @.str.4) #10
  %669 = load i32, ptr %666, align 4, !tbaa !5
  %670 = call ptr @s2n_strerror_debug(i32 noundef %669, ptr noundef nonnull @.str.4) #10
  %671 = load i32, ptr %652, align 4, !tbaa !5
  %672 = call ptr @strerror(i32 noundef %671) #10
  %673 = load i32, ptr %652, align 4, !tbaa !5
  %674 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %664, ptr noundef nonnull %.str.5.sink470, i32 noundef %665, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 85, ptr noundef %668, ptr noundef %670, ptr noundef %672, i32 noundef %673) #12
  call void @exit(i32 noundef 1) #13
  unreachable

675:                                              ; preds = %646
  %676 = load i32, ptr @test_count, align 4, !tbaa !5
  %677 = add nsw i32 %676, 1
  store i32 %677, ptr @test_count, align 4, !tbaa !5
  %678 = call i32 @s2n_connection_free(ptr noundef nonnull %562) #10
  %679 = icmp eq i32 %678, -1
  br i1 %679, label %680, label %704

680:                                              ; preds = %675
  %681 = tail call ptr @__errno_location() #11
  %682 = load i32, ptr %681, align 4, !tbaa !5
  %683 = load ptr, ptr @stderr, align 8, !tbaa !9
  %684 = call i32 @s2n_print_stacktrace(ptr noundef %683) #10
  %685 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %686 = trunc nuw i8 %685 to i1
  br i1 %686, label %687, label %691

687:                                              ; preds = %680
  %688 = load ptr, ptr @stderr, align 8, !tbaa !9
  %689 = call i32 @fileno(ptr noundef %688) #10
  %690 = call i32 @isatty(i32 noundef %689) #10
  %.not206 = icmp eq i32 %690, 0
  br i1 %.not206, label %691, label %692

691:                                              ; preds = %687, %680
  br label %692

692:                                              ; preds = %687, %691
  %.str.5.sink481 = phi ptr [ @.str.5, %691 ], [ @.str.2, %687 ]
  store i32 %682, ptr %681, align 4, !tbaa !5
  %693 = load ptr, ptr @stderr, align 8, !tbaa !9
  %694 = load i32, ptr @test_count, align 4, !tbaa !5
  %695 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %696 = load i32, ptr %695, align 4, !tbaa !5
  %697 = call ptr @s2n_strerror(i32 noundef %696, ptr noundef nonnull @.str.4) #10
  %698 = load i32, ptr %695, align 4, !tbaa !5
  %699 = call ptr @s2n_strerror_debug(i32 noundef %698, ptr noundef nonnull @.str.4) #10
  %700 = load i32, ptr %681, align 4, !tbaa !5
  %701 = call ptr @strerror(i32 noundef %700) #10
  %702 = load i32, ptr %681, align 4, !tbaa !5
  %703 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %693, ptr noundef nonnull %.str.5.sink481, i32 noundef %694, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 87, ptr noundef %697, ptr noundef %699, ptr noundef %701, i32 noundef %702) #12
  call void @exit(i32 noundef 1) #13
  unreachable

704:                                              ; preds = %675
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #10
  %705 = load i32, ptr @test_count, align 4, !tbaa !5
  %706 = add nsw i32 %705, 1
  store i32 %706, ptr @test_count, align 4, !tbaa !5
  %707 = call ptr @s2n_connection_new(i32 noundef 0) #10
  %708 = icmp eq ptr %707, null
  br i1 %708, label %709, label %733

709:                                              ; preds = %704
  %710 = tail call ptr @__errno_location() #11
  %711 = load i32, ptr %710, align 4, !tbaa !5
  %712 = load ptr, ptr @stderr, align 8, !tbaa !9
  %713 = call i32 @s2n_print_stacktrace(ptr noundef %712) #10
  %714 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %715 = trunc nuw i8 %714 to i1
  br i1 %715, label %716, label %720

716:                                              ; preds = %709
  %717 = load ptr, ptr @stderr, align 8, !tbaa !9
  %718 = call i32 @fileno(ptr noundef %717) #10
  %719 = call i32 @isatty(i32 noundef %718) #10
  %.not205 = icmp eq i32 %719, 0
  br i1 %.not205, label %720, label %721

720:                                              ; preds = %716, %709
  br label %721

721:                                              ; preds = %716, %720
  %.str.5.sink492 = phi ptr [ @.str.5, %720 ], [ @.str.2, %716 ]
  store i32 %711, ptr %710, align 4, !tbaa !5
  %722 = load ptr, ptr @stderr, align 8, !tbaa !9
  %723 = load i32, ptr @test_count, align 4, !tbaa !5
  %724 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %725 = load i32, ptr %724, align 4, !tbaa !5
  %726 = call ptr @s2n_strerror(i32 noundef %725, ptr noundef nonnull @.str.4) #10
  %727 = load i32, ptr %724, align 4, !tbaa !5
  %728 = call ptr @s2n_strerror_debug(i32 noundef %727, ptr noundef nonnull @.str.4) #10
  %729 = load i32, ptr %710, align 4, !tbaa !5
  %730 = call ptr @strerror(i32 noundef %729) #10
  %731 = load i32, ptr %710, align 4, !tbaa !5
  %732 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %722, ptr noundef nonnull %.str.5.sink492, i32 noundef %723, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 93, ptr noundef %726, ptr noundef %728, ptr noundef %730, i32 noundef %731) #12
  call void @exit(i32 noundef 1) #13
  unreachable

733:                                              ; preds = %704
  %734 = load i32, ptr @test_count, align 4, !tbaa !5
  %735 = add nsw i32 %734, 1
  store i32 %735, ptr @test_count, align 4, !tbaa !5
  %736 = getelementptr inbounds i8, ptr %707, i64 219
  %737 = load i8, ptr %736, align 1, !tbaa !42
  %738 = icmp eq i8 %737, 34
  br i1 %738, label %763, label %739

739:                                              ; preds = %733
  %740 = tail call ptr @__errno_location() #11
  %741 = load i32, ptr %740, align 4, !tbaa !5
  %742 = load ptr, ptr @stderr, align 8, !tbaa !9
  %743 = call i32 @s2n_print_stacktrace(ptr noundef %742) #10
  %744 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %745 = trunc nuw i8 %744 to i1
  br i1 %745, label %746, label %750

746:                                              ; preds = %739
  %747 = load ptr, ptr @stderr, align 8, !tbaa !9
  %748 = call i32 @fileno(ptr noundef %747) #10
  %749 = call i32 @isatty(i32 noundef %748) #10
  %.not163 = icmp eq i32 %749, 0
  br i1 %.not163, label %750, label %751

750:                                              ; preds = %746, %739
  br label %751

751:                                              ; preds = %746, %750
  %.str.5.sink503 = phi ptr [ @.str.5, %750 ], [ @.str.2, %746 ]
  store i32 %741, ptr %740, align 4, !tbaa !5
  %752 = load ptr, ptr @stderr, align 8, !tbaa !9
  %753 = load i32, ptr @test_count, align 4, !tbaa !5
  %754 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %755 = load i32, ptr %754, align 4, !tbaa !5
  %756 = call ptr @s2n_strerror(i32 noundef %755, ptr noundef nonnull @.str.4) #10
  %757 = load i32, ptr %754, align 4, !tbaa !5
  %758 = call ptr @s2n_strerror_debug(i32 noundef %757, ptr noundef nonnull @.str.4) #10
  %759 = load i32, ptr %740, align 4, !tbaa !5
  %760 = call ptr @strerror(i32 noundef %759) #10
  %761 = load i32, ptr %740, align 4, !tbaa !5
  %762 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %752, ptr noundef nonnull %.str.5.sink503, i32 noundef %753, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 95, ptr noundef %756, ptr noundef %758, ptr noundef %760, i32 noundef %761) #12
  call void @exit(i32 noundef 1) #13
  unreachable

763:                                              ; preds = %733
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #10
  store ptr null, ptr %6, align 8, !tbaa !9
  %764 = add nsw i32 %734, 2
  store i32 %764, ptr @test_count, align 4, !tbaa !5
  %765 = call i32 @s2n_connection_get_security_policy(ptr noundef nonnull %707, ptr noundef nonnull %6) #10
  %766 = icmp eq i32 %765, -1
  br i1 %766, label %767, label %791

767:                                              ; preds = %763
  %768 = tail call ptr @__errno_location() #11
  %769 = load i32, ptr %768, align 4, !tbaa !5
  %770 = load ptr, ptr @stderr, align 8, !tbaa !9
  %771 = call i32 @s2n_print_stacktrace(ptr noundef %770) #10
  %772 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %773 = trunc nuw i8 %772 to i1
  br i1 %773, label %774, label %778

774:                                              ; preds = %767
  %775 = load ptr, ptr @stderr, align 8, !tbaa !9
  %776 = call i32 @fileno(ptr noundef %775) #10
  %777 = call i32 @isatty(i32 noundef %776) #10
  %.not204 = icmp eq i32 %777, 0
  br i1 %.not204, label %778, label %779

778:                                              ; preds = %774, %767
  br label %779

779:                                              ; preds = %774, %778
  %.str.5.sink514 = phi ptr [ @.str.5, %778 ], [ @.str.2, %774 ]
  store i32 %769, ptr %768, align 4, !tbaa !5
  %780 = load ptr, ptr @stderr, align 8, !tbaa !9
  %781 = load i32, ptr @test_count, align 4, !tbaa !5
  %782 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %783 = load i32, ptr %782, align 4, !tbaa !5
  %784 = call ptr @s2n_strerror(i32 noundef %783, ptr noundef nonnull @.str.4) #10
  %785 = load i32, ptr %782, align 4, !tbaa !5
  %786 = call ptr @s2n_strerror_debug(i32 noundef %785, ptr noundef nonnull @.str.4) #10
  %787 = load i32, ptr %768, align 4, !tbaa !5
  %788 = call ptr @strerror(i32 noundef %787) #10
  %789 = load i32, ptr %768, align 4, !tbaa !5
  %790 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %780, ptr noundef nonnull %.str.5.sink514, i32 noundef %781, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 98, ptr noundef %784, ptr noundef %786, ptr noundef %788, i32 noundef %789) #12
  call void @exit(i32 noundef 1) #13
  unreachable

791:                                              ; preds = %763
  %792 = load i32, ptr @test_count, align 4, !tbaa !5
  %793 = add nsw i32 %792, 1
  store i32 %793, ptr @test_count, align 4, !tbaa !5
  %794 = load ptr, ptr %6, align 8, !tbaa !9
  %795 = call zeroext i1 @s2n_security_policy_supports_tls13(ptr noundef %794) #10
  br i1 %795, label %820, label %796

796:                                              ; preds = %791
  %797 = tail call ptr @__errno_location() #11
  %798 = load i32, ptr %797, align 4, !tbaa !5
  %799 = load ptr, ptr @stderr, align 8, !tbaa !9
  %800 = call i32 @s2n_print_stacktrace(ptr noundef %799) #10
  %801 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %802 = trunc nuw i8 %801 to i1
  br i1 %802, label %803, label %807

803:                                              ; preds = %796
  %804 = load ptr, ptr @stderr, align 8, !tbaa !9
  %805 = call i32 @fileno(ptr noundef %804) #10
  %806 = call i32 @isatty(i32 noundef %805) #10
  %.not164 = icmp eq i32 %806, 0
  br i1 %.not164, label %807, label %808

807:                                              ; preds = %803, %796
  br label %808

808:                                              ; preds = %803, %807
  %.str.5.sink525 = phi ptr [ @.str.5, %807 ], [ @.str.2, %803 ]
  store i32 %798, ptr %797, align 4, !tbaa !5
  %809 = load ptr, ptr @stderr, align 8, !tbaa !9
  %810 = load i32, ptr @test_count, align 4, !tbaa !5
  %811 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %812 = load i32, ptr %811, align 4, !tbaa !5
  %813 = call ptr @s2n_strerror(i32 noundef %812, ptr noundef nonnull @.str.4) #10
  %814 = load i32, ptr %811, align 4, !tbaa !5
  %815 = call ptr @s2n_strerror_debug(i32 noundef %814, ptr noundef nonnull @.str.4) #10
  %816 = load i32, ptr %797, align 4, !tbaa !5
  %817 = call ptr @strerror(i32 noundef %816) #10
  %818 = load i32, ptr %797, align 4, !tbaa !5
  %819 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %809, ptr noundef nonnull %.str.5.sink525, i32 noundef %810, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 99, ptr noundef %813, ptr noundef %815, ptr noundef %817, i32 noundef %818) #12
  call void @exit(i32 noundef 1) #13
  unreachable

820:                                              ; preds = %791
  %821 = load i32, ptr @test_count, align 4, !tbaa !5
  %822 = add nsw i32 %821, 1
  store i32 %822, ptr @test_count, align 4, !tbaa !5
  %823 = call i32 @s2n_connection_free(ptr noundef nonnull %707) #10
  %824 = icmp eq i32 %823, -1
  br i1 %824, label %825, label %849

825:                                              ; preds = %820
  %826 = tail call ptr @__errno_location() #11
  %827 = load i32, ptr %826, align 4, !tbaa !5
  %828 = load ptr, ptr @stderr, align 8, !tbaa !9
  %829 = call i32 @s2n_print_stacktrace(ptr noundef %828) #10
  %830 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %831 = trunc nuw i8 %830 to i1
  br i1 %831, label %832, label %836

832:                                              ; preds = %825
  %833 = load ptr, ptr @stderr, align 8, !tbaa !9
  %834 = call i32 @fileno(ptr noundef %833) #10
  %835 = call i32 @isatty(i32 noundef %834) #10
  %.not203 = icmp eq i32 %835, 0
  br i1 %.not203, label %836, label %837

836:                                              ; preds = %832, %825
  br label %837

837:                                              ; preds = %832, %836
  %.str.5.sink536 = phi ptr [ @.str.5, %836 ], [ @.str.2, %832 ]
  store i32 %827, ptr %826, align 4, !tbaa !5
  %838 = load ptr, ptr @stderr, align 8, !tbaa !9
  %839 = load i32, ptr @test_count, align 4, !tbaa !5
  %840 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %841 = load i32, ptr %840, align 4, !tbaa !5
  %842 = call ptr @s2n_strerror(i32 noundef %841, ptr noundef nonnull @.str.4) #10
  %843 = load i32, ptr %840, align 4, !tbaa !5
  %844 = call ptr @s2n_strerror_debug(i32 noundef %843, ptr noundef nonnull @.str.4) #10
  %845 = load i32, ptr %826, align 4, !tbaa !5
  %846 = call ptr @strerror(i32 noundef %845) #10
  %847 = load i32, ptr %826, align 4, !tbaa !5
  %848 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %838, ptr noundef nonnull %.str.5.sink536, i32 noundef %839, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 101, ptr noundef %842, ptr noundef %844, ptr noundef %846, i32 noundef %847) #12
  call void @exit(i32 noundef 1) #13
  unreachable

849:                                              ; preds = %820
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #10
  %850 = load i32, ptr @test_count, align 4, !tbaa !5
  %851 = add nsw i32 %850, 1
  store i32 %851, ptr @test_count, align 4, !tbaa !5
  %852 = call i32 (...) @s2n_disable_tls13_in_test() #10
  %853 = icmp eq i32 %852, -1
  br i1 %853, label %854, label %878

854:                                              ; preds = %849
  %855 = tail call ptr @__errno_location() #11
  %856 = load i32, ptr %855, align 4, !tbaa !5
  %857 = load ptr, ptr @stderr, align 8, !tbaa !9
  %858 = call i32 @s2n_print_stacktrace(ptr noundef %857) #10
  %859 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %860 = trunc nuw i8 %859 to i1
  br i1 %860, label %861, label %865

861:                                              ; preds = %854
  %862 = load ptr, ptr @stderr, align 8, !tbaa !9
  %863 = call i32 @fileno(ptr noundef %862) #10
  %864 = call i32 @isatty(i32 noundef %863) #10
  %.not202 = icmp eq i32 %864, 0
  br i1 %.not202, label %865, label %866

865:                                              ; preds = %861, %854
  br label %866

866:                                              ; preds = %861, %865
  %.str.5.sink547 = phi ptr [ @.str.5, %865 ], [ @.str.2, %861 ]
  store i32 %856, ptr %855, align 4, !tbaa !5
  %867 = load ptr, ptr @stderr, align 8, !tbaa !9
  %868 = load i32, ptr @test_count, align 4, !tbaa !5
  %869 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %870 = load i32, ptr %869, align 4, !tbaa !5
  %871 = call ptr @s2n_strerror(i32 noundef %870, ptr noundef nonnull @.str.4) #10
  %872 = load i32, ptr %869, align 4, !tbaa !5
  %873 = call ptr @s2n_strerror_debug(i32 noundef %872, ptr noundef nonnull @.str.4) #10
  %874 = load i32, ptr %855, align 4, !tbaa !5
  %875 = call ptr @strerror(i32 noundef %874) #10
  %876 = load i32, ptr %855, align 4, !tbaa !5
  %877 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %867, ptr noundef nonnull %.str.5.sink547, i32 noundef %868, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 105, ptr noundef %871, ptr noundef %873, ptr noundef %875, i32 noundef %876) #12
  call void @exit(i32 noundef 1) #13
  unreachable

878:                                              ; preds = %849
  %879 = load i32, ptr @test_count, align 4, !tbaa !5
  %880 = add nsw i32 %879, 1
  store i32 %880, ptr @test_count, align 4, !tbaa !5
  %881 = call zeroext i1 (...) @s2n_use_default_tls13_config() #10
  br i1 %881, label %882, label %906

882:                                              ; preds = %878
  %883 = tail call ptr @__errno_location() #11
  %884 = load i32, ptr %883, align 4, !tbaa !5
  %885 = load ptr, ptr @stderr, align 8, !tbaa !9
  %886 = call i32 @s2n_print_stacktrace(ptr noundef %885) #10
  %887 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %888 = trunc nuw i8 %887 to i1
  br i1 %888, label %889, label %893

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

893:                                              ; preds = %889, %882
  br label %894

894:                                              ; preds = %889, %893
  %.str.5.sink558 = phi ptr [ @.str.5, %893 ], [ @.str.2, %889 ]
  store i32 %884, ptr %883, align 4, !tbaa !5
  %895 = load ptr, ptr @stderr, align 8, !tbaa !9
  %896 = load i32, ptr @test_count, align 4, !tbaa !5
  %897 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %898 = load i32, ptr %897, align 4, !tbaa !5
  %899 = call ptr @s2n_strerror(i32 noundef %898, ptr noundef nonnull @.str.4) #10
  %900 = load i32, ptr %897, align 4, !tbaa !5
  %901 = call ptr @s2n_strerror_debug(i32 noundef %900, ptr noundef nonnull @.str.4) #10
  %902 = load i32, ptr %883, align 4, !tbaa !5
  %903 = call ptr @strerror(i32 noundef %902) #10
  %904 = load i32, ptr %883, align 4, !tbaa !5
  %905 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %895, ptr noundef nonnull %.str.5.sink558, i32 noundef %896, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 106, ptr noundef %899, ptr noundef %901, ptr noundef %903, i32 noundef %904) #12
  call void @exit(i32 noundef 1) #13
  unreachable

906:                                              ; preds = %878
  %907 = load i32, ptr @test_count, align 4, !tbaa !5
  %908 = add nsw i32 %907, 1
  store i32 %908, ptr @test_count, align 4, !tbaa !5
  %909 = call i32 (...) @s2n_disable_tls13_in_test() #10
  %910 = icmp eq i32 %909, -1
  br i1 %910, label %911, label %935

911:                                              ; preds = %906
  %912 = tail call ptr @__errno_location() #11
  %913 = load i32, ptr %912, align 4, !tbaa !5
  %914 = load ptr, ptr @stderr, align 8, !tbaa !9
  %915 = call i32 @s2n_print_stacktrace(ptr noundef %914) #10
  %916 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %917 = trunc nuw i8 %916 to i1
  br i1 %917, label %918, label %922

918:                                              ; preds = %911
  %919 = load ptr, ptr @stderr, align 8, !tbaa !9
  %920 = call i32 @fileno(ptr noundef %919) #10
  %921 = call i32 @isatty(i32 noundef %920) #10
  %.not200 = icmp eq i32 %921, 0
  br i1 %.not200, label %922, label %923

922:                                              ; preds = %918, %911
  br label %923

923:                                              ; preds = %918, %922
  %.str.5.sink569 = phi ptr [ @.str.5, %922 ], [ @.str.2, %918 ]
  store i32 %913, ptr %912, align 4, !tbaa !5
  %924 = load ptr, ptr @stderr, align 8, !tbaa !9
  %925 = load i32, ptr @test_count, align 4, !tbaa !5
  %926 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %927 = load i32, ptr %926, align 4, !tbaa !5
  %928 = call ptr @s2n_strerror(i32 noundef %927, ptr noundef nonnull @.str.4) #10
  %929 = load i32, ptr %926, align 4, !tbaa !5
  %930 = call ptr @s2n_strerror_debug(i32 noundef %929, ptr noundef nonnull @.str.4) #10
  %931 = load i32, ptr %912, align 4, !tbaa !5
  %932 = call ptr @strerror(i32 noundef %931) #10
  %933 = load i32, ptr %912, align 4, !tbaa !5
  %934 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %924, ptr noundef nonnull %.str.5.sink569, i32 noundef %925, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 109, ptr noundef %928, ptr noundef %930, ptr noundef %932, i32 noundef %933) #12
  call void @exit(i32 noundef 1) #13
  unreachable

935:                                              ; preds = %906
  %936 = load i32, ptr @test_count, align 4, !tbaa !5
  %937 = add nsw i32 %936, 1
  store i32 %937, ptr @test_count, align 4, !tbaa !5
  %938 = call zeroext i1 (...) @s2n_use_default_tls13_config() #10
  br i1 %938, label %939, label %963

939:                                              ; preds = %935
  %940 = tail call ptr @__errno_location() #11
  %941 = load i32, ptr %940, align 4, !tbaa !5
  %942 = load ptr, ptr @stderr, align 8, !tbaa !9
  %943 = call i32 @s2n_print_stacktrace(ptr noundef %942) #10
  %944 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %945 = trunc nuw i8 %944 to i1
  br i1 %945, label %946, label %950

946:                                              ; preds = %939
  %947 = load ptr, ptr @stderr, align 8, !tbaa !9
  %948 = call i32 @fileno(ptr noundef %947) #10
  %949 = call i32 @isatty(i32 noundef %948) #10
  %.not199 = icmp eq i32 %949, 0
  br i1 %.not199, label %950, label %951

950:                                              ; preds = %946, %939
  br label %951

951:                                              ; preds = %946, %950
  %.str.5.sink580 = phi ptr [ @.str.5, %950 ], [ @.str.2, %946 ]
  store i32 %941, ptr %940, align 4, !tbaa !5
  %952 = load ptr, ptr @stderr, align 8, !tbaa !9
  %953 = load i32, ptr @test_count, align 4, !tbaa !5
  %954 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %955 = load i32, ptr %954, align 4, !tbaa !5
  %956 = call ptr @s2n_strerror(i32 noundef %955, ptr noundef nonnull @.str.4) #10
  %957 = load i32, ptr %954, align 4, !tbaa !5
  %958 = call ptr @s2n_strerror_debug(i32 noundef %957, ptr noundef nonnull @.str.4) #10
  %959 = load i32, ptr %940, align 4, !tbaa !5
  %960 = call ptr @strerror(i32 noundef %959) #10
  %961 = load i32, ptr %940, align 4, !tbaa !5
  %962 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %952, ptr noundef nonnull %.str.5.sink580, i32 noundef %953, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 110, ptr noundef %956, ptr noundef %958, ptr noundef %960, i32 noundef %961) #12
  call void @exit(i32 noundef 1) #13
  unreachable

963:                                              ; preds = %935
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %7) #10
  %964 = load i16, ptr @__const.main.value, align 1
  store i16 %964, ptr %7, align 2
  %965 = load i32, ptr @test_count, align 4, !tbaa !5
  %966 = add nsw i32 %965, 1
  store i32 %966, ptr @test_count, align 4, !tbaa !5
  %967 = call zeroext i1 @s2n_is_valid_tls13_cipher(ptr noundef nonnull %7) #10
  br i1 %967, label %992, label %968

968:                                              ; preds = %963
  %969 = tail call ptr @__errno_location() #11
  %970 = load i32, ptr %969, align 4, !tbaa !5
  %971 = load ptr, ptr @stderr, align 8, !tbaa !9
  %972 = call i32 @s2n_print_stacktrace(ptr noundef %971) #10
  %973 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %974 = trunc nuw i8 %973 to i1
  br i1 %974, label %975, label %979

975:                                              ; preds = %968
  %976 = load ptr, ptr @stderr, align 8, !tbaa !9
  %977 = call i32 @fileno(ptr noundef %976) #10
  %978 = call i32 @isatty(i32 noundef %977) #10
  %.not165 = icmp eq i32 %978, 0
  br i1 %.not165, label %979, label %980

979:                                              ; preds = %975, %968
  br label %980

980:                                              ; preds = %975, %979
  %.str.5.sink591 = phi ptr [ @.str.5, %979 ], [ @.str.2, %975 ]
  store i32 %970, ptr %969, align 4, !tbaa !5
  %981 = load ptr, ptr @stderr, align 8, !tbaa !9
  %982 = load i32, ptr @test_count, align 4, !tbaa !5
  %983 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %984 = load i32, ptr %983, align 4, !tbaa !5
  %985 = call ptr @s2n_strerror(i32 noundef %984, ptr noundef nonnull @.str.4) #10
  %986 = load i32, ptr %983, align 4, !tbaa !5
  %987 = call ptr @s2n_strerror_debug(i32 noundef %986, ptr noundef nonnull @.str.4) #10
  %988 = load i32, ptr %969, align 4, !tbaa !5
  %989 = call ptr @strerror(i32 noundef %988) #10
  %990 = load i32, ptr %969, align 4, !tbaa !5
  %991 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %981, ptr noundef nonnull %.str.5.sink591, i32 noundef %982, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 115, ptr noundef %985, ptr noundef %987, ptr noundef %989, i32 noundef %990) #12
  call void @exit(i32 noundef 1) #13
  unreachable

992:                                              ; preds = %963
  store i8 19, ptr %7, align 2, !tbaa !43
  %993 = getelementptr inbounds i8, ptr %7, i64 1
  store i8 2, ptr %993, align 1, !tbaa !43
  %994 = load i32, ptr @test_count, align 4, !tbaa !5
  %995 = add nsw i32 %994, 1
  store i32 %995, ptr @test_count, align 4, !tbaa !5
  %996 = call zeroext i1 @s2n_is_valid_tls13_cipher(ptr noundef nonnull %7) #10
  br i1 %996, label %1021, label %997

997:                                              ; preds = %992
  %998 = tail call ptr @__errno_location() #11
  %999 = load i32, ptr %998, align 4, !tbaa !5
  %1000 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1001 = call i32 @s2n_print_stacktrace(ptr noundef %1000) #10
  %1002 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1003 = trunc nuw i8 %1002 to i1
  br i1 %1003, label %1004, label %1008

1004:                                             ; preds = %997
  %1005 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1006 = call i32 @fileno(ptr noundef %1005) #10
  %1007 = call i32 @isatty(i32 noundef %1006) #10
  %.not166 = icmp eq i32 %1007, 0
  br i1 %.not166, label %1008, label %1009

1008:                                             ; preds = %1004, %997
  br label %1009

1009:                                             ; preds = %1004, %1008
  %.str.5.sink602 = phi ptr [ @.str.5, %1008 ], [ @.str.2, %1004 ]
  store i32 %999, ptr %998, align 4, !tbaa !5
  %1010 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1011 = load i32, ptr @test_count, align 4, !tbaa !5
  %1012 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1013 = load i32, ptr %1012, align 4, !tbaa !5
  %1014 = call ptr @s2n_strerror(i32 noundef %1013, ptr noundef nonnull @.str.4) #10
  %1015 = load i32, ptr %1012, align 4, !tbaa !5
  %1016 = call ptr @s2n_strerror_debug(i32 noundef %1015, ptr noundef nonnull @.str.4) #10
  %1017 = load i32, ptr %998, align 4, !tbaa !5
  %1018 = call ptr @strerror(i32 noundef %1017) #10
  %1019 = load i32, ptr %998, align 4, !tbaa !5
  %1020 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1010, ptr noundef nonnull %.str.5.sink602, i32 noundef %1011, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 118, ptr noundef %1014, ptr noundef %1016, ptr noundef %1018, i32 noundef %1019) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1021:                                             ; preds = %992
  store i8 19, ptr %7, align 2, !tbaa !43
  store i8 3, ptr %993, align 1, !tbaa !43
  %1022 = load i32, ptr @test_count, align 4, !tbaa !5
  %1023 = add nsw i32 %1022, 1
  store i32 %1023, ptr @test_count, align 4, !tbaa !5
  %1024 = call zeroext i1 @s2n_is_valid_tls13_cipher(ptr noundef nonnull %7) #10
  br i1 %1024, label %1049, label %1025

1025:                                             ; preds = %1021
  %1026 = tail call ptr @__errno_location() #11
  %1027 = load i32, ptr %1026, align 4, !tbaa !5
  %1028 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1029 = call i32 @s2n_print_stacktrace(ptr noundef %1028) #10
  %1030 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1031 = trunc nuw i8 %1030 to i1
  br i1 %1031, label %1032, label %1036

1032:                                             ; preds = %1025
  %1033 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1034 = call i32 @fileno(ptr noundef %1033) #10
  %1035 = call i32 @isatty(i32 noundef %1034) #10
  %.not167 = icmp eq i32 %1035, 0
  br i1 %.not167, label %1036, label %1037

1036:                                             ; preds = %1032, %1025
  br label %1037

1037:                                             ; preds = %1032, %1036
  %.str.5.sink613 = phi ptr [ @.str.5, %1036 ], [ @.str.2, %1032 ]
  store i32 %1027, ptr %1026, align 4, !tbaa !5
  %1038 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1039 = load i32, ptr @test_count, align 4, !tbaa !5
  %1040 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1041 = load i32, ptr %1040, align 4, !tbaa !5
  %1042 = call ptr @s2n_strerror(i32 noundef %1041, ptr noundef nonnull @.str.4) #10
  %1043 = load i32, ptr %1040, align 4, !tbaa !5
  %1044 = call ptr @s2n_strerror_debug(i32 noundef %1043, ptr noundef nonnull @.str.4) #10
  %1045 = load i32, ptr %1026, align 4, !tbaa !5
  %1046 = call ptr @strerror(i32 noundef %1045) #10
  %1047 = load i32, ptr %1026, align 4, !tbaa !5
  %1048 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1038, ptr noundef nonnull %.str.5.sink613, i32 noundef %1039, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 121, ptr noundef %1042, ptr noundef %1044, ptr noundef %1046, i32 noundef %1047) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1049:                                             ; preds = %1021
  store i8 19, ptr %7, align 2, !tbaa !43
  store i8 4, ptr %993, align 1, !tbaa !43
  %1050 = load i32, ptr @test_count, align 4, !tbaa !5
  %1051 = add nsw i32 %1050, 1
  store i32 %1051, ptr @test_count, align 4, !tbaa !5
  %1052 = call zeroext i1 @s2n_is_valid_tls13_cipher(ptr noundef nonnull %7) #10
  br i1 %1052, label %1077, label %1053

1053:                                             ; preds = %1049
  %1054 = tail call ptr @__errno_location() #11
  %1055 = load i32, ptr %1054, align 4, !tbaa !5
  %1056 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1057 = call i32 @s2n_print_stacktrace(ptr noundef %1056) #10
  %1058 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1059 = trunc nuw i8 %1058 to i1
  br i1 %1059, label %1060, label %1064

1060:                                             ; preds = %1053
  %1061 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1062 = call i32 @fileno(ptr noundef %1061) #10
  %1063 = call i32 @isatty(i32 noundef %1062) #10
  %.not168 = icmp eq i32 %1063, 0
  br i1 %.not168, label %1064, label %1065

1064:                                             ; preds = %1060, %1053
  br label %1065

1065:                                             ; preds = %1060, %1064
  %.str.5.sink624 = phi ptr [ @.str.5, %1064 ], [ @.str.2, %1060 ]
  store i32 %1055, ptr %1054, align 4, !tbaa !5
  %1066 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1067 = load i32, ptr @test_count, align 4, !tbaa !5
  %1068 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1069 = load i32, ptr %1068, align 4, !tbaa !5
  %1070 = call ptr @s2n_strerror(i32 noundef %1069, ptr noundef nonnull @.str.4) #10
  %1071 = load i32, ptr %1068, align 4, !tbaa !5
  %1072 = call ptr @s2n_strerror_debug(i32 noundef %1071, ptr noundef nonnull @.str.4) #10
  %1073 = load i32, ptr %1054, align 4, !tbaa !5
  %1074 = call ptr @strerror(i32 noundef %1073) #10
  %1075 = load i32, ptr %1054, align 4, !tbaa !5
  %1076 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1066, ptr noundef nonnull %.str.5.sink624, i32 noundef %1067, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 124, ptr noundef %1070, ptr noundef %1072, ptr noundef %1074, i32 noundef %1075) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1077:                                             ; preds = %1049
  store i8 19, ptr %7, align 2, !tbaa !43
  store i8 5, ptr %993, align 1, !tbaa !43
  %1078 = load i32, ptr @test_count, align 4, !tbaa !5
  %1079 = add nsw i32 %1078, 1
  store i32 %1079, ptr @test_count, align 4, !tbaa !5
  %1080 = call zeroext i1 @s2n_is_valid_tls13_cipher(ptr noundef nonnull %7) #10
  br i1 %1080, label %1105, label %1081

1081:                                             ; preds = %1077
  %1082 = tail call ptr @__errno_location() #11
  %1083 = load i32, ptr %1082, align 4, !tbaa !5
  %1084 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1085 = call i32 @s2n_print_stacktrace(ptr noundef %1084) #10
  %1086 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1087 = trunc nuw i8 %1086 to i1
  br i1 %1087, label %1088, label %1092

1088:                                             ; preds = %1081
  %1089 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1090 = call i32 @fileno(ptr noundef %1089) #10
  %1091 = call i32 @isatty(i32 noundef %1090) #10
  %.not169 = icmp eq i32 %1091, 0
  br i1 %.not169, label %1092, label %1093

1092:                                             ; preds = %1088, %1081
  br label %1093

1093:                                             ; preds = %1088, %1092
  %.str.5.sink635 = phi ptr [ @.str.5, %1092 ], [ @.str.2, %1088 ]
  store i32 %1083, ptr %1082, align 4, !tbaa !5
  %1094 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1095 = load i32, ptr @test_count, align 4, !tbaa !5
  %1096 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1097 = load i32, ptr %1096, align 4, !tbaa !5
  %1098 = call ptr @s2n_strerror(i32 noundef %1097, ptr noundef nonnull @.str.4) #10
  %1099 = load i32, ptr %1096, align 4, !tbaa !5
  %1100 = call ptr @s2n_strerror_debug(i32 noundef %1099, ptr noundef nonnull @.str.4) #10
  %1101 = load i32, ptr %1082, align 4, !tbaa !5
  %1102 = call ptr @strerror(i32 noundef %1101) #10
  %1103 = load i32, ptr %1082, align 4, !tbaa !5
  %1104 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1094, ptr noundef nonnull %.str.5.sink635, i32 noundef %1095, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 127, ptr noundef %1098, ptr noundef %1100, ptr noundef %1102, i32 noundef %1103) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1105:                                             ; preds = %1077
  store i8 19, ptr %7, align 2, !tbaa !43
  store i8 6, ptr %993, align 1, !tbaa !43
  %1106 = load i32, ptr @test_count, align 4, !tbaa !5
  %1107 = add nsw i32 %1106, 1
  store i32 %1107, ptr @test_count, align 4, !tbaa !5
  %1108 = call zeroext i1 @s2n_is_valid_tls13_cipher(ptr noundef nonnull %7) #10
  br i1 %1108, label %1109, label %1133

1109:                                             ; preds = %1105
  %1110 = tail call ptr @__errno_location() #11
  %1111 = load i32, ptr %1110, align 4, !tbaa !5
  %1112 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1113 = call i32 @s2n_print_stacktrace(ptr noundef %1112) #10
  %1114 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1115 = trunc nuw i8 %1114 to i1
  br i1 %1115, label %1116, label %1120

1116:                                             ; preds = %1109
  %1117 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1118 = call i32 @fileno(ptr noundef %1117) #10
  %1119 = call i32 @isatty(i32 noundef %1118) #10
  %.not198 = icmp eq i32 %1119, 0
  br i1 %.not198, label %1120, label %1121

1120:                                             ; preds = %1116, %1109
  br label %1121

1121:                                             ; preds = %1116, %1120
  %.str.5.sink646 = phi ptr [ @.str.5, %1120 ], [ @.str.2, %1116 ]
  store i32 %1111, ptr %1110, align 4, !tbaa !5
  %1122 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1123 = load i32, ptr @test_count, align 4, !tbaa !5
  %1124 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1125 = load i32, ptr %1124, align 4, !tbaa !5
  %1126 = call ptr @s2n_strerror(i32 noundef %1125, ptr noundef nonnull @.str.4) #10
  %1127 = load i32, ptr %1124, align 4, !tbaa !5
  %1128 = call ptr @s2n_strerror_debug(i32 noundef %1127, ptr noundef nonnull @.str.4) #10
  %1129 = load i32, ptr %1110, align 4, !tbaa !5
  %1130 = call ptr @strerror(i32 noundef %1129) #10
  %1131 = load i32, ptr %1110, align 4, !tbaa !5
  %1132 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1122, ptr noundef nonnull %.str.5.sink646, i32 noundef %1123, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 130, ptr noundef %1126, ptr noundef %1128, ptr noundef %1130, i32 noundef %1131) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1133:                                             ; preds = %1105
  store i8 19, ptr %7, align 2, !tbaa !43
  store i8 0, ptr %993, align 1, !tbaa !43
  %1134 = load i32, ptr @test_count, align 4, !tbaa !5
  %1135 = add nsw i32 %1134, 1
  store i32 %1135, ptr @test_count, align 4, !tbaa !5
  %1136 = call zeroext i1 @s2n_is_valid_tls13_cipher(ptr noundef nonnull %7) #10
  br i1 %1136, label %1137, label %1161

1137:                                             ; preds = %1133
  %1138 = tail call ptr @__errno_location() #11
  %1139 = load i32, ptr %1138, align 4, !tbaa !5
  %1140 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1141 = call i32 @s2n_print_stacktrace(ptr noundef %1140) #10
  %1142 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1143 = trunc nuw i8 %1142 to i1
  br i1 %1143, label %1144, label %1148

1144:                                             ; preds = %1137
  %1145 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1146 = call i32 @fileno(ptr noundef %1145) #10
  %1147 = call i32 @isatty(i32 noundef %1146) #10
  %.not197 = icmp eq i32 %1147, 0
  br i1 %.not197, label %1148, label %1149

1148:                                             ; preds = %1144, %1137
  br label %1149

1149:                                             ; preds = %1144, %1148
  %.str.5.sink657 = phi ptr [ @.str.5, %1148 ], [ @.str.2, %1144 ]
  store i32 %1139, ptr %1138, align 4, !tbaa !5
  %1150 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1151 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1153, ptr noundef nonnull @.str.4) #10
  %1155 = load i32, ptr %1152, align 4, !tbaa !5
  %1156 = call ptr @s2n_strerror_debug(i32 noundef %1155, ptr noundef nonnull @.str.4) #10
  %1157 = load i32, ptr %1138, align 4, !tbaa !5
  %1158 = call ptr @strerror(i32 noundef %1157) #10
  %1159 = load i32, ptr %1138, align 4, !tbaa !5
  %1160 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1150, ptr noundef nonnull %.str.5.sink657, i32 noundef %1151, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 133, ptr noundef %1154, ptr noundef %1156, ptr noundef %1158, i32 noundef %1159) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1161:                                             ; preds = %1133
  store i8 18, ptr %7, align 2, !tbaa !43
  store i8 1, ptr %993, align 1, !tbaa !43
  %1162 = load i32, ptr @test_count, align 4, !tbaa !5
  %1163 = add nsw i32 %1162, 1
  store i32 %1163, ptr @test_count, align 4, !tbaa !5
  %1164 = call zeroext i1 @s2n_is_valid_tls13_cipher(ptr noundef nonnull %7) #10
  br i1 %1164, label %1165, label %1189

1165:                                             ; preds = %1161
  %1166 = tail call ptr @__errno_location() #11
  %1167 = load i32, ptr %1166, align 4, !tbaa !5
  %1168 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1169 = call i32 @s2n_print_stacktrace(ptr noundef %1168) #10
  %1170 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1171 = trunc nuw i8 %1170 to i1
  br i1 %1171, label %1172, label %1176

1172:                                             ; preds = %1165
  %1173 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1174 = call i32 @fileno(ptr noundef %1173) #10
  %1175 = call i32 @isatty(i32 noundef %1174) #10
  %.not196 = icmp eq i32 %1175, 0
  br i1 %.not196, label %1176, label %1177

1176:                                             ; preds = %1172, %1165
  br label %1177

1177:                                             ; preds = %1172, %1176
  %.str.5.sink668 = phi ptr [ @.str.5, %1176 ], [ @.str.2, %1172 ]
  store i32 %1167, ptr %1166, align 4, !tbaa !5
  %1178 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1179 = load i32, ptr @test_count, align 4, !tbaa !5
  %1180 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1181 = load i32, ptr %1180, align 4, !tbaa !5
  %1182 = call ptr @s2n_strerror(i32 noundef %1181, ptr noundef nonnull @.str.4) #10
  %1183 = load i32, ptr %1180, align 4, !tbaa !5
  %1184 = call ptr @s2n_strerror_debug(i32 noundef %1183, ptr noundef nonnull @.str.4) #10
  %1185 = load i32, ptr %1166, align 4, !tbaa !5
  %1186 = call ptr @strerror(i32 noundef %1185) #10
  %1187 = load i32, ptr %1166, align 4, !tbaa !5
  %1188 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1178, ptr noundef nonnull %.str.5.sink668, i32 noundef %1179, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 136, ptr noundef %1182, ptr noundef %1184, ptr noundef %1186, i32 noundef %1187) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1189:                                             ; preds = %1161
  %1190 = load i32, ptr @test_count, align 4, !tbaa !5
  %1191 = add nsw i32 %1190, 1
  store i32 %1191, ptr @test_count, align 4, !tbaa !5
  %1192 = call zeroext i1 @s2n_is_valid_tls13_cipher(ptr noundef nonnull getelementptr inbounds (i8, ptr @s2n_dhe_rsa_with_3des_ede_cbc_sha, i64 24)) #10
  br i1 %1192, label %1193, label %1217

1193:                                             ; preds = %1189
  %1194 = tail call ptr @__errno_location() #11
  %1195 = load i32, ptr %1194, align 4, !tbaa !5
  %1196 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1197 = call i32 @s2n_print_stacktrace(ptr noundef %1196) #10
  %1198 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1199 = trunc nuw i8 %1198 to i1
  br i1 %1199, label %1200, label %1204

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

1204:                                             ; preds = %1200, %1193
  br label %1205

1205:                                             ; preds = %1200, %1204
  %.str.5.sink679 = phi ptr [ @.str.5, %1204 ], [ @.str.2, %1200 ]
  store i32 %1195, ptr %1194, align 4, !tbaa !5
  %1206 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1207 = load i32, ptr @test_count, align 4, !tbaa !5
  %1208 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1209 = load i32, ptr %1208, align 4, !tbaa !5
  %1210 = call ptr @s2n_strerror(i32 noundef %1209, ptr noundef nonnull @.str.4) #10
  %1211 = load i32, ptr %1208, align 4, !tbaa !5
  %1212 = call ptr @s2n_strerror_debug(i32 noundef %1211, ptr noundef nonnull @.str.4) #10
  %1213 = load i32, ptr %1194, align 4, !tbaa !5
  %1214 = call ptr @strerror(i32 noundef %1213) #10
  %1215 = load i32, ptr %1194, align 4, !tbaa !5
  %1216 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1206, ptr noundef nonnull %.str.5.sink679, i32 noundef %1207, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 138, ptr noundef %1210, ptr noundef %1212, ptr noundef %1214, i32 noundef %1215) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1217:                                             ; preds = %1189
  %1218 = load i32, ptr @test_count, align 4, !tbaa !5
  %1219 = add nsw i32 %1218, 1
  store i32 %1219, ptr @test_count, align 4, !tbaa !5
  %1220 = call zeroext i1 @s2n_is_valid_tls13_cipher(ptr noundef nonnull getelementptr inbounds (i8, ptr @s2n_tls13_aes_128_gcm_sha256, i64 24)) #10
  br i1 %1220, label %1245, label %1221

1221:                                             ; preds = %1217
  %1222 = tail call ptr @__errno_location() #11
  %1223 = load i32, ptr %1222, align 4, !tbaa !5
  %1224 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1225 = call i32 @s2n_print_stacktrace(ptr noundef %1224) #10
  %1226 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1227 = trunc nuw i8 %1226 to i1
  br i1 %1227, label %1228, label %1232

1228:                                             ; preds = %1221
  %1229 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1230 = call i32 @fileno(ptr noundef %1229) #10
  %1231 = call i32 @isatty(i32 noundef %1230) #10
  %.not170 = icmp eq i32 %1231, 0
  br i1 %.not170, label %1232, label %1233

1232:                                             ; preds = %1228, %1221
  br label %1233

1233:                                             ; preds = %1228, %1232
  %.str.5.sink690 = phi ptr [ @.str.5, %1232 ], [ @.str.2, %1228 ]
  store i32 %1223, ptr %1222, align 4, !tbaa !5
  %1234 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1235 = load i32, ptr @test_count, align 4, !tbaa !5
  %1236 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1237 = load i32, ptr %1236, align 4, !tbaa !5
  %1238 = call ptr @s2n_strerror(i32 noundef %1237, ptr noundef nonnull @.str.4) #10
  %1239 = load i32, ptr %1236, align 4, !tbaa !5
  %1240 = call ptr @s2n_strerror_debug(i32 noundef %1239, ptr noundef nonnull @.str.4) #10
  %1241 = load i32, ptr %1222, align 4, !tbaa !5
  %1242 = call ptr @strerror(i32 noundef %1241) #10
  %1243 = load i32, ptr %1222, align 4, !tbaa !5
  %1244 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1234, ptr noundef nonnull %.str.5.sink690, i32 noundef %1235, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 139, ptr noundef %1238, ptr noundef %1240, ptr noundef %1242, i32 noundef %1243) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1245:                                             ; preds = %1217
  %1246 = load i32, ptr @test_count, align 4, !tbaa !5
  %1247 = add nsw i32 %1246, 1
  store i32 %1247, ptr @test_count, align 4, !tbaa !5
  %1248 = call zeroext i1 @s2n_is_valid_tls13_cipher(ptr noundef nonnull getelementptr inbounds (i8, ptr @s2n_tls13_aes_256_gcm_sha384, i64 24)) #10
  br i1 %1248, label %1273, label %1249

1249:                                             ; preds = %1245
  %1250 = tail call ptr @__errno_location() #11
  %1251 = load i32, ptr %1250, align 4, !tbaa !5
  %1252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1253 = call i32 @s2n_print_stacktrace(ptr noundef %1252) #10
  %1254 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1255 = trunc nuw i8 %1254 to i1
  br i1 %1255, label %1256, label %1260

1256:                                             ; preds = %1249
  %1257 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1258 = call i32 @fileno(ptr noundef %1257) #10
  %1259 = call i32 @isatty(i32 noundef %1258) #10
  %.not171 = icmp eq i32 %1259, 0
  br i1 %.not171, label %1260, label %1261

1260:                                             ; preds = %1256, %1249
  br label %1261

1261:                                             ; preds = %1256, %1260
  %.str.5.sink701 = phi ptr [ @.str.5, %1260 ], [ @.str.2, %1256 ]
  store i32 %1251, ptr %1250, align 4, !tbaa !5
  %1262 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1263 = load i32, ptr @test_count, align 4, !tbaa !5
  %1264 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1265 = load i32, ptr %1264, align 4, !tbaa !5
  %1266 = call ptr @s2n_strerror(i32 noundef %1265, ptr noundef nonnull @.str.4) #10
  %1267 = load i32, ptr %1264, align 4, !tbaa !5
  %1268 = call ptr @s2n_strerror_debug(i32 noundef %1267, ptr noundef nonnull @.str.4) #10
  %1269 = load i32, ptr %1250, align 4, !tbaa !5
  %1270 = call ptr @strerror(i32 noundef %1269) #10
  %1271 = load i32, ptr %1250, align 4, !tbaa !5
  %1272 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1262, ptr noundef nonnull %.str.5.sink701, i32 noundef %1263, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 140, ptr noundef %1266, ptr noundef %1268, ptr noundef %1270, i32 noundef %1271) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1273:                                             ; preds = %1245
  %1274 = load i32, ptr @test_count, align 4, !tbaa !5
  %1275 = add nsw i32 %1274, 1
  store i32 %1275, ptr @test_count, align 4, !tbaa !5
  %1276 = call zeroext i1 @s2n_is_valid_tls13_cipher(ptr noundef nonnull getelementptr inbounds (i8, ptr @s2n_tls13_chacha20_poly1305_sha256, i64 24)) #10
  br i1 %1276, label %1301, label %1277

1277:                                             ; preds = %1273
  %1278 = tail call ptr @__errno_location() #11
  %1279 = load i32, ptr %1278, align 4, !tbaa !5
  %1280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1281 = call i32 @s2n_print_stacktrace(ptr noundef %1280) #10
  %1282 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1283 = trunc nuw i8 %1282 to i1
  br i1 %1283, label %1284, label %1288

1284:                                             ; preds = %1277
  %1285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1286 = call i32 @fileno(ptr noundef %1285) #10
  %1287 = call i32 @isatty(i32 noundef %1286) #10
  %.not172 = icmp eq i32 %1287, 0
  br i1 %.not172, label %1288, label %1289

1288:                                             ; preds = %1284, %1277
  br label %1289

1289:                                             ; preds = %1284, %1288
  %.str.5.sink712 = phi ptr [ @.str.5, %1288 ], [ @.str.2, %1284 ]
  store i32 %1279, ptr %1278, align 4, !tbaa !5
  %1290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1291 = load i32, ptr @test_count, align 4, !tbaa !5
  %1292 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1293 = load i32, ptr %1292, align 4, !tbaa !5
  %1294 = call ptr @s2n_strerror(i32 noundef %1293, ptr noundef nonnull @.str.4) #10
  %1295 = load i32, ptr %1292, align 4, !tbaa !5
  %1296 = call ptr @s2n_strerror_debug(i32 noundef %1295, ptr noundef nonnull @.str.4) #10
  %1297 = load i32, ptr %1278, align 4, !tbaa !5
  %1298 = call ptr @strerror(i32 noundef %1297) #10
  %1299 = load i32, ptr %1278, align 4, !tbaa !5
  %1300 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1290, ptr noundef nonnull %.str.5.sink712, i32 noundef %1291, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 141, ptr noundef %1294, ptr noundef %1296, ptr noundef %1298, i32 noundef %1299) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1301:                                             ; preds = %1273
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %7) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #10
  store ptr null, ptr %8, align 8, !tbaa !9
  %1302 = load i32, ptr @test_count, align 4, !tbaa !5
  %1303 = add nsw i32 %1302, 1
  store i32 %1303, ptr @test_count, align 4, !tbaa !5
  %1304 = call i32 @s2n_extension_type_list_get(i32 noundef 3, ptr noundef nonnull %8) #10
  %1305 = icmp eq i32 %1304, -1
  br i1 %1305, label %1306, label %1330

1306:                                             ; preds = %1301
  %1307 = tail call ptr @__errno_location() #11
  %1308 = load i32, ptr %1307, align 4, !tbaa !5
  %1309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1310 = call i32 @s2n_print_stacktrace(ptr noundef %1309) #10
  %1311 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1312 = trunc nuw i8 %1311 to i1
  br i1 %1312, label %1313, label %1317

1313:                                             ; preds = %1306
  %1314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1315 = call i32 @fileno(ptr noundef %1314) #10
  %1316 = call i32 @isatty(i32 noundef %1315) #10
  %.not194 = icmp eq i32 %1316, 0
  br i1 %.not194, label %1317, label %1318

1317:                                             ; preds = %1313, %1306
  br label %1318

1318:                                             ; preds = %1313, %1317
  %.str.5.sink723 = phi ptr [ @.str.5, %1317 ], [ @.str.2, %1313 ]
  store i32 %1308, ptr %1307, align 4, !tbaa !5
  %1319 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1320 = load i32, ptr @test_count, align 4, !tbaa !5
  %1321 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1322 = load i32, ptr %1321, align 4, !tbaa !5
  %1323 = call ptr @s2n_strerror(i32 noundef %1322, ptr noundef nonnull @.str.4) #10
  %1324 = load i32, ptr %1321, align 4, !tbaa !5
  %1325 = call ptr @s2n_strerror_debug(i32 noundef %1324, ptr noundef nonnull @.str.4) #10
  %1326 = load i32, ptr %1307, align 4, !tbaa !5
  %1327 = call ptr @strerror(i32 noundef %1326) #10
  %1328 = load i32, ptr %1307, align 4, !tbaa !5
  %1329 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1319, ptr noundef nonnull %.str.5.sink723, i32 noundef %1320, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 147, ptr noundef %1323, ptr noundef %1325, ptr noundef %1327, i32 noundef %1328) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1330:                                             ; preds = %1301
  %1331 = load i32, ptr @test_count, align 4, !tbaa !5
  %1332 = add nsw i32 %1331, 1
  store i32 %1332, ptr @test_count, align 4, !tbaa !5
  %1333 = load ptr, ptr %8, align 8, !tbaa !9
  %1334 = icmp eq ptr %1333, null
  br i1 %1334, label %1335, label %1359

1335:                                             ; preds = %1330
  %1336 = tail call ptr @__errno_location() #11
  %1337 = load i32, ptr %1336, align 4, !tbaa !5
  %1338 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1339 = call i32 @s2n_print_stacktrace(ptr noundef %1338) #10
  %1340 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1341 = trunc nuw i8 %1340 to i1
  br i1 %1341, label %1342, label %1346

1342:                                             ; preds = %1335
  %1343 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1344 = call i32 @fileno(ptr noundef %1343) #10
  %1345 = call i32 @isatty(i32 noundef %1344) #10
  %.not193 = icmp eq i32 %1345, 0
  br i1 %.not193, label %1346, label %1347

1346:                                             ; preds = %1342, %1335
  br label %1347

1347:                                             ; preds = %1342, %1346
  %.str.5.sink734 = phi ptr [ @.str.5, %1346 ], [ @.str.2, %1342 ]
  store i32 %1337, ptr %1336, align 4, !tbaa !5
  %1348 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1349 = load i32, ptr @test_count, align 4, !tbaa !5
  %1350 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1351 = load i32, ptr %1350, align 4, !tbaa !5
  %1352 = call ptr @s2n_strerror(i32 noundef %1351, ptr noundef nonnull @.str.4) #10
  %1353 = load i32, ptr %1350, align 4, !tbaa !5
  %1354 = call ptr @s2n_strerror_debug(i32 noundef %1353, ptr noundef nonnull @.str.4) #10
  %1355 = load i32, ptr %1336, align 4, !tbaa !5
  %1356 = call ptr @strerror(i32 noundef %1355) #10
  %1357 = load i32, ptr %1336, align 4, !tbaa !5
  %1358 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1348, ptr noundef nonnull %.str.5.sink734, i32 noundef %1349, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 148, ptr noundef %1352, ptr noundef %1354, ptr noundef %1356, i32 noundef %1357) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1359:                                             ; preds = %1330
  %1360 = add nsw i32 %1331, 2
  store i32 %1360, ptr @test_count, align 4, !tbaa !5
  %1361 = getelementptr inbounds i8, ptr %1333, i64 8
  %1362 = load i8, ptr %1361, align 8, !tbaa !44
  %.not173 = icmp eq i8 %1362, 0
  br i1 %.not173, label %1363, label %1387

1363:                                             ; preds = %1359
  %1364 = tail call ptr @__errno_location() #11
  %1365 = load i32, ptr %1364, align 4, !tbaa !5
  %1366 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1367 = call i32 @s2n_print_stacktrace(ptr noundef %1366) #10
  %1368 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1369 = trunc nuw i8 %1368 to i1
  br i1 %1369, label %1370, label %1374

1370:                                             ; preds = %1363
  %1371 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1372 = call i32 @fileno(ptr noundef %1371) #10
  %1373 = call i32 @isatty(i32 noundef %1372) #10
  %.not174 = icmp eq i32 %1373, 0
  br i1 %.not174, label %1374, label %1375

1374:                                             ; preds = %1370, %1363
  br label %1375

1375:                                             ; preds = %1370, %1374
  %.str.5.sink745 = phi ptr [ @.str.5, %1374 ], [ @.str.2, %1370 ]
  store i32 %1365, ptr %1364, align 4, !tbaa !5
  %1376 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1377 = load i32, ptr @test_count, align 4, !tbaa !5
  %1378 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1379 = load i32, ptr %1378, align 4, !tbaa !5
  %1380 = call ptr @s2n_strerror(i32 noundef %1379, ptr noundef nonnull @.str.4) #10
  %1381 = load i32, ptr %1378, align 4, !tbaa !5
  %1382 = call ptr @s2n_strerror_debug(i32 noundef %1381, ptr noundef nonnull @.str.4) #10
  %1383 = load i32, ptr %1364, align 4, !tbaa !5
  %1384 = call ptr @strerror(i32 noundef %1383) #10
  %1385 = load i32, ptr %1364, align 4, !tbaa !5
  %1386 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1376, ptr noundef nonnull %.str.5.sink745, i32 noundef %1377, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 149, ptr noundef %1380, ptr noundef %1382, ptr noundef %1384, i32 noundef %1385) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1387:                                             ; preds = %1359
  %1388 = add nsw i32 %1331, 3
  store i32 %1388, ptr @test_count, align 4, !tbaa !5
  %1389 = call ptr @s2n_connection_new(i32 noundef 0) #10
  %1390 = icmp eq ptr %1389, null
  br i1 %1390, label %1391, label %1415

1391:                                             ; preds = %1387
  %1392 = tail call ptr @__errno_location() #11
  %1393 = load i32, ptr %1392, align 4, !tbaa !5
  %1394 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1395 = call i32 @s2n_print_stacktrace(ptr noundef %1394) #10
  %1396 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1397 = trunc nuw i8 %1396 to i1
  br i1 %1397, label %1398, label %1402

1398:                                             ; preds = %1391
  %1399 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1400 = call i32 @fileno(ptr noundef %1399) #10
  %1401 = call i32 @isatty(i32 noundef %1400) #10
  %.not192 = icmp eq i32 %1401, 0
  br i1 %.not192, label %1402, label %1403

1402:                                             ; preds = %1398, %1391
  br label %1403

1403:                                             ; preds = %1398, %1402
  %.str.5.sink756 = phi ptr [ @.str.5, %1402 ], [ @.str.2, %1398 ]
  store i32 %1393, ptr %1392, align 4, !tbaa !5
  %1404 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1405 = load i32, ptr @test_count, align 4, !tbaa !5
  %1406 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1407 = load i32, ptr %1406, align 4, !tbaa !5
  %1408 = call ptr @s2n_strerror(i32 noundef %1407, ptr noundef nonnull @.str.4) #10
  %1409 = load i32, ptr %1406, align 4, !tbaa !5
  %1410 = call ptr @s2n_strerror_debug(i32 noundef %1409, ptr noundef nonnull @.str.4) #10
  %1411 = load i32, ptr %1392, align 4, !tbaa !5
  %1412 = call ptr @strerror(i32 noundef %1411) #10
  %1413 = load i32, ptr %1392, align 4, !tbaa !5
  %1414 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1404, ptr noundef nonnull %.str.5.sink756, i32 noundef %1405, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 152, ptr noundef %1408, ptr noundef %1410, ptr noundef %1412, i32 noundef %1413) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1415:                                             ; preds = %1387
  %1416 = load i32, ptr @test_count, align 4, !tbaa !5
  %1417 = add nsw i32 %1416, 1
  store i32 %1417, ptr @test_count, align 4, !tbaa !5
  %1418 = call i32 @s2n_connection_allow_all_response_extensions(ptr noundef nonnull %1389) #10
  %1419 = icmp eq i32 %1418, -1
  br i1 %1419, label %1420, label %1444

1420:                                             ; preds = %1415
  %1421 = tail call ptr @__errno_location() #11
  %1422 = load i32, ptr %1421, align 4, !tbaa !5
  %1423 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1424 = call i32 @s2n_print_stacktrace(ptr noundef %1423) #10
  %1425 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1426 = trunc nuw i8 %1425 to i1
  br i1 %1426, label %1427, label %1431

1427:                                             ; preds = %1420
  %1428 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1429 = call i32 @fileno(ptr noundef %1428) #10
  %1430 = call i32 @isatty(i32 noundef %1429) #10
  %.not191 = icmp eq i32 %1430, 0
  br i1 %.not191, label %1431, label %1432

1431:                                             ; preds = %1427, %1420
  br label %1432

1432:                                             ; preds = %1427, %1431
  %.str.5.sink767 = phi ptr [ @.str.5, %1431 ], [ @.str.2, %1427 ]
  store i32 %1422, ptr %1421, align 4, !tbaa !5
  %1433 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1434 = load i32, ptr @test_count, align 4, !tbaa !5
  %1435 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1436 = load i32, ptr %1435, align 4, !tbaa !5
  %1437 = call ptr @s2n_strerror(i32 noundef %1436, ptr noundef nonnull @.str.4) #10
  %1438 = load i32, ptr %1435, align 4, !tbaa !5
  %1439 = call ptr @s2n_strerror_debug(i32 noundef %1438, ptr noundef nonnull @.str.4) #10
  %1440 = load i32, ptr %1421, align 4, !tbaa !5
  %1441 = call ptr @strerror(i32 noundef %1440) #10
  %1442 = load i32, ptr %1421, align 4, !tbaa !5
  %1443 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1433, ptr noundef nonnull %.str.5.sink767, i32 noundef %1434, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 153, ptr noundef %1437, ptr noundef %1439, ptr noundef %1441, i32 noundef %1442) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1444:                                             ; preds = %1415
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %9) #10
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %9, i8 0, i64 40, i1 false)
  %1445 = load i32, ptr @test_count, align 4, !tbaa !5
  %1446 = add nsw i32 %1445, 1
  store i32 %1446, ptr @test_count, align 4, !tbaa !5
  %1447 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %9, i32 noundef 0) #10
  %1448 = icmp eq i32 %1447, -1
  br i1 %1448, label %1449, label %1473

1449:                                             ; preds = %1444
  %1450 = tail call ptr @__errno_location() #11
  %1451 = load i32, ptr %1450, align 4, !tbaa !5
  %1452 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1453 = call i32 @s2n_print_stacktrace(ptr noundef %1452) #10
  %1454 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1455 = trunc nuw i8 %1454 to i1
  br i1 %1455, label %1456, label %1460

1456:                                             ; preds = %1449
  %1457 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1458 = call i32 @fileno(ptr noundef %1457) #10
  %1459 = call i32 @isatty(i32 noundef %1458) #10
  %.not190 = icmp eq i32 %1459, 0
  br i1 %.not190, label %1460, label %1461

1460:                                             ; preds = %1456, %1449
  br label %1461

1461:                                             ; preds = %1456, %1460
  %.str.5.sink778 = phi ptr [ @.str.5, %1460 ], [ @.str.2, %1456 ]
  store i32 %1451, ptr %1450, align 4, !tbaa !5
  %1462 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1463 = load i32, ptr @test_count, align 4, !tbaa !5
  %1464 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1465 = load i32, ptr %1464, align 4, !tbaa !5
  %1466 = call ptr @s2n_strerror(i32 noundef %1465, ptr noundef nonnull @.str.4) #10
  %1467 = load i32, ptr %1464, align 4, !tbaa !5
  %1468 = call ptr @s2n_strerror_debug(i32 noundef %1467, ptr noundef nonnull @.str.4) #10
  %1469 = load i32, ptr %1450, align 4, !tbaa !5
  %1470 = call ptr @strerror(i32 noundef %1469) #10
  %1471 = load i32, ptr %1450, align 4, !tbaa !5
  %1472 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1462, ptr noundef nonnull %.str.5.sink778, i32 noundef %1463, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 156, ptr noundef %1466, ptr noundef %1468, ptr noundef %1470, i32 noundef %1471) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1473:                                             ; preds = %1444
  %1474 = load i32, ptr @test_count, align 4, !tbaa !5
  %1475 = add nsw i32 %1474, 1
  store i32 %1475, ptr @test_count, align 4, !tbaa !5
  %1476 = call i32 @s2n_stuffer_write_bytes(ptr noundef nonnull %9, ptr noundef nonnull @.str.34, i32 noundef 13) #10
  %1477 = icmp eq i32 %1476, -1
  br i1 %1477, label %1478, label %1502

1478:                                             ; preds = %1473
  %1479 = tail call ptr @__errno_location() #11
  %1480 = load i32, ptr %1479, align 4, !tbaa !5
  %1481 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1482 = call i32 @s2n_print_stacktrace(ptr noundef %1481) #10
  %1483 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1484 = trunc nuw i8 %1483 to i1
  br i1 %1484, label %1485, label %1489

1485:                                             ; preds = %1478
  %1486 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1487 = call i32 @fileno(ptr noundef %1486) #10
  %1488 = call i32 @isatty(i32 noundef %1487) #10
  %.not189 = icmp eq i32 %1488, 0
  br i1 %.not189, label %1489, label %1490

1489:                                             ; preds = %1485, %1478
  br label %1490

1490:                                             ; preds = %1485, %1489
  %.str.5.sink789 = phi ptr [ @.str.5, %1489 ], [ @.str.2, %1485 ]
  store i32 %1480, ptr %1479, align 4, !tbaa !5
  %1491 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1492 = load i32, ptr @test_count, align 4, !tbaa !5
  %1493 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1494 = load i32, ptr %1493, align 4, !tbaa !5
  %1495 = call ptr @s2n_strerror(i32 noundef %1494, ptr noundef nonnull @.str.4) #10
  %1496 = load i32, ptr %1493, align 4, !tbaa !5
  %1497 = call ptr @s2n_strerror_debug(i32 noundef %1496, ptr noundef nonnull @.str.4) #10
  %1498 = load i32, ptr %1479, align 4, !tbaa !5
  %1499 = call ptr @strerror(i32 noundef %1498) #10
  %1500 = load i32, ptr %1479, align 4, !tbaa !5
  %1501 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1491, ptr noundef nonnull %.str.5.sink789, i32 noundef %1492, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 157, ptr noundef %1495, ptr noundef %1497, ptr noundef %1499, i32 noundef %1500) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1502:                                             ; preds = %1473
  call void @llvm.lifetime.start.p0(i64 704, ptr nonnull %10) #10
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(704) %10, i8 0, i64 704, i1 false)
  %1503 = load ptr, ptr %8, align 8, !tbaa !9
  %1504 = getelementptr inbounds i8, ptr %1503, i64 8
  %1505 = load i8, ptr %1504, align 8, !tbaa !44
  %.not228 = icmp eq i8 %1505, 0
  br i1 %.not228, label %._crit_edge, label %.lr.ph

.lr.ph:                                           ; preds = %1502
  %1506 = getelementptr inbounds i8, ptr %1389, i64 220
  %1507 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  br label %1512

._crit_edge:                                      ; preds = %1690, %1502
  %1508 = load i32, ptr @test_count, align 4, !tbaa !5
  %1509 = add nsw i32 %1508, 1
  store i32 %1509, ptr @test_count, align 4, !tbaa !5
  %1510 = call i32 @s2n_connection_free(ptr noundef nonnull %1389) #10
  %1511 = icmp eq i32 %1510, -1
  br i1 %1511, label %1698, label %1722

1512:                                             ; preds = %.lr.ph, %1690
  %1513 = phi ptr [ %1503, %.lr.ph ], [ %1693, %1690 ]
  %.0227 = phi i64 [ 0, %.lr.ph ], [ %1692, %1690 ]
  %1514 = load ptr, ptr %1513, align 8, !tbaa !46
  %1515 = getelementptr inbounds ptr, ptr %1514, i64 %.0227
  %1516 = load ptr, ptr %1515, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %11) #10
  store i8 0, ptr %11, align 1, !tbaa !43
  %1517 = load i32, ptr @test_count, align 4, !tbaa !5
  %1518 = add nsw i32 %1517, 1
  store i32 %1518, ptr @test_count, align 4, !tbaa !5
  %1519 = load i16, ptr %1516, align 8, !tbaa !47
  %1520 = call i32 @s2n_extension_supported_iana_value_to_id(i16 noundef zeroext %1519, ptr noundef nonnull %11) #10
  %1521 = icmp eq i32 %1520, -1
  br i1 %1521, label %1522, label %1545

1522:                                             ; preds = %1512
  %1523 = tail call ptr @__errno_location() #11
  %1524 = load i32, ptr %1523, align 4, !tbaa !5
  %1525 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1526 = call i32 @s2n_print_stacktrace(ptr noundef %1525) #10
  %1527 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1528 = trunc nuw i8 %1527 to i1
  br i1 %1528, label %1529, label %1533

1529:                                             ; preds = %1522
  %1530 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1531 = call i32 @fileno(ptr noundef %1530) #10
  %1532 = call i32 @isatty(i32 noundef %1531) #10
  %.not188 = icmp eq i32 %1532, 0
  br i1 %.not188, label %1533, label %1534

1533:                                             ; preds = %1529, %1522
  br label %1534

1534:                                             ; preds = %1529, %1533
  %.str.5.sink800 = phi ptr [ @.str.5, %1533 ], [ @.str.2, %1529 ]
  store i32 %1524, ptr %1523, align 4, !tbaa !5
  %1535 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1536 = load i32, ptr @test_count, align 4, !tbaa !5
  %1537 = load i32, ptr %1507, align 4, !tbaa !5
  %1538 = call ptr @s2n_strerror(i32 noundef %1537, ptr noundef nonnull @.str.4) #10
  %1539 = load i32, ptr %1507, align 4, !tbaa !5
  %1540 = call ptr @s2n_strerror_debug(i32 noundef %1539, ptr noundef nonnull @.str.4) #10
  %1541 = load i32, ptr %1523, align 4, !tbaa !5
  %1542 = call ptr @strerror(i32 noundef %1541) #10
  %1543 = load i32, ptr %1523, align 4, !tbaa !5
  %1544 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1535, ptr noundef nonnull %.str.5.sink800, i32 noundef %1536, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 163, ptr noundef %1538, ptr noundef %1540, ptr noundef %1542, i32 noundef %1543) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1545:                                             ; preds = %1512
  %1546 = load i8, ptr %11, align 1, !tbaa !43
  %1547 = zext i8 %1546 to i64
  %1548 = getelementptr inbounds [21 x %struct.s2n_parsed_extension], ptr %10, i64 0, i64 %1547
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %1548, ptr noundef nonnull align 8 dereferenceable(24) %9, i64 24, i1 false), !tbaa.struct !49
  %1549 = load i16, ptr %1516, align 8, !tbaa !47
  %1550 = getelementptr inbounds i8, ptr %1548, i64 24
  store i16 %1549, ptr %1550, align 8, !tbaa !50
  store i8 33, ptr %1506, align 4, !tbaa !52
  %1551 = load i32, ptr @test_count, align 4, !tbaa !5
  %1552 = add nsw i32 %1551, 1
  store i32 %1552, ptr @test_count, align 4, !tbaa !5
  %1553 = call i32 @s2n_extension_process(ptr noundef nonnull %1516, ptr noundef nonnull %1389, ptr noundef nonnull %10) #10
  %1554 = icmp eq i32 %1553, -1
  br i1 %1554, label %1555, label %1578

1555:                                             ; preds = %1545
  %1556 = tail call ptr @__errno_location() #11
  %1557 = load i32, ptr %1556, align 4, !tbaa !5
  %1558 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1559 = call i32 @s2n_print_stacktrace(ptr noundef %1558) #10
  %1560 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1561 = trunc nuw i8 %1560 to i1
  br i1 %1561, label %1562, label %1566

1562:                                             ; preds = %1555
  %1563 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1564 = call i32 @fileno(ptr noundef %1563) #10
  %1565 = call i32 @isatty(i32 noundef %1564) #10
  %.not187 = icmp eq i32 %1565, 0
  br i1 %.not187, label %1566, label %1567

1566:                                             ; preds = %1562, %1555
  br label %1567

1567:                                             ; preds = %1562, %1566
  %.str.5.sink809 = phi ptr [ @.str.5, %1566 ], [ @.str.2, %1562 ]
  store i32 %1557, ptr %1556, align 4, !tbaa !5
  %1568 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1569 = load i32, ptr @test_count, align 4, !tbaa !5
  %1570 = load i32, ptr %1507, align 4, !tbaa !5
  %1571 = call ptr @s2n_strerror(i32 noundef %1570, ptr noundef nonnull @.str.4) #10
  %1572 = load i32, ptr %1507, align 4, !tbaa !5
  %1573 = call ptr @s2n_strerror_debug(i32 noundef %1572, ptr noundef nonnull @.str.4) #10
  %1574 = load i32, ptr %1556, align 4, !tbaa !5
  %1575 = call ptr @strerror(i32 noundef %1574) #10
  %1576 = load i32, ptr %1556, align 4, !tbaa !5
  %1577 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1568, ptr noundef nonnull %.str.5.sink809, i32 noundef %1569, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 171, ptr noundef %1571, ptr noundef %1573, ptr noundef %1575, i32 noundef %1576) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1578:                                             ; preds = %1545
  %1579 = load i32, ptr @test_count, align 4, !tbaa !5
  %1580 = add nsw i32 %1579, 1
  store i32 %1580, ptr @test_count, align 4, !tbaa !5
  %1581 = getelementptr inbounds i8, ptr %1548, i64 28
  %1582 = load i8, ptr %1581, align 4
  %1583 = and i8 %1582, 1
  %.not182 = icmp eq i8 %1583, 0
  br i1 %.not182, label %1584, label %1607

1584:                                             ; preds = %1578
  %1585 = tail call ptr @__errno_location() #11
  %1586 = load i32, ptr %1585, align 4, !tbaa !5
  %1587 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1588 = call i32 @s2n_print_stacktrace(ptr noundef %1587) #10
  %1589 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1590 = trunc nuw i8 %1589 to i1
  br i1 %1590, label %1591, label %1595

1591:                                             ; preds = %1584
  %1592 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1593 = call i32 @fileno(ptr noundef %1592) #10
  %1594 = call i32 @isatty(i32 noundef %1593) #10
  %.not183 = icmp eq i32 %1594, 0
  br i1 %.not183, label %1595, label %1596

1595:                                             ; preds = %1591, %1584
  br label %1596

1596:                                             ; preds = %1591, %1595
  %.str.5.sink818 = phi ptr [ @.str.5, %1595 ], [ @.str.2, %1591 ]
  store i32 %1586, ptr %1585, align 4, !tbaa !5
  %1597 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1598 = load i32, ptr @test_count, align 4, !tbaa !5
  %1599 = load i32, ptr %1507, align 4, !tbaa !5
  %1600 = call ptr @s2n_strerror(i32 noundef %1599, ptr noundef nonnull @.str.4) #10
  %1601 = load i32, ptr %1507, align 4, !tbaa !5
  %1602 = call ptr @s2n_strerror_debug(i32 noundef %1601, ptr noundef nonnull @.str.4) #10
  %1603 = load i32, ptr %1585, align 4, !tbaa !5
  %1604 = call ptr @strerror(i32 noundef %1603) #10
  %1605 = load i32, ptr %1585, align 4, !tbaa !5
  %1606 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1597, ptr noundef nonnull %.str.5.sink818, i32 noundef %1598, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 174, ptr noundef %1600, ptr noundef %1602, ptr noundef %1604, i32 noundef %1605) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1607:                                             ; preds = %1578
  %1608 = and i8 %1582, -2
  store i8 %1608, ptr %1581, align 4
  store i8 34, ptr %1506, align 4, !tbaa !52
  %1609 = add nsw i32 %1579, 2
  store i32 %1609, ptr @test_count, align 4, !tbaa !5
  %1610 = call i32 @s2n_extension_process(ptr noundef nonnull %1516, ptr noundef nonnull %1389, ptr noundef nonnull %10) #10
  %1611 = icmp eq i32 %1610, -1
  br i1 %1611, label %1635, label %1612

1612:                                             ; preds = %1607
  %1613 = tail call ptr @__errno_location() #11
  %1614 = load i32, ptr %1613, align 4, !tbaa !5
  %1615 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1616 = call i32 @s2n_print_stacktrace(ptr noundef %1615) #10
  %1617 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1618 = trunc nuw i8 %1617 to i1
  br i1 %1618, label %1619, label %1623

1619:                                             ; preds = %1612
  %1620 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1621 = call i32 @fileno(ptr noundef %1620) #10
  %1622 = call i32 @isatty(i32 noundef %1621) #10
  %.not184 = icmp eq i32 %1622, 0
  br i1 %.not184, label %1623, label %1624

1623:                                             ; preds = %1619, %1612
  br label %1624

1624:                                             ; preds = %1619, %1623
  %.str.5.sink827 = phi ptr [ @.str.5, %1623 ], [ @.str.2, %1619 ]
  store i32 %1614, ptr %1613, align 4, !tbaa !5
  %1625 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1626 = load i32, ptr @test_count, align 4, !tbaa !5
  %1627 = load i32, ptr %1507, align 4, !tbaa !5
  %1628 = call ptr @s2n_strerror(i32 noundef %1627, ptr noundef nonnull @.str.4) #10
  %1629 = load i32, ptr %1507, align 4, !tbaa !5
  %1630 = call ptr @s2n_strerror_debug(i32 noundef %1629, ptr noundef nonnull @.str.4) #10
  %1631 = load i32, ptr %1613, align 4, !tbaa !5
  %1632 = call ptr @strerror(i32 noundef %1631) #10
  %1633 = load i32, ptr %1613, align 4, !tbaa !5
  %1634 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1625, ptr noundef nonnull %.str.5.sink827, i32 noundef %1626, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 178, ptr noundef %1628, ptr noundef %1630, ptr noundef %1632, i32 noundef %1633) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1635:                                             ; preds = %1607
  %1636 = load i32, ptr @test_count, align 4, !tbaa !5
  %1637 = add nsw i32 %1636, 1
  store i32 %1637, ptr @test_count, align 4, !tbaa !5
  %1638 = load i32, ptr %1507, align 4, !tbaa !5
  %1639 = icmp eq i32 %1638, 0
  br i1 %1639, label %1640, label %1663

1640:                                             ; preds = %1635
  %1641 = tail call ptr @__errno_location() #11
  %1642 = load i32, ptr %1641, align 4, !tbaa !5
  %1643 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1644 = call i32 @s2n_print_stacktrace(ptr noundef %1643) #10
  %1645 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1646 = trunc nuw i8 %1645 to i1
  br i1 %1646, label %1647, label %1651

1647:                                             ; preds = %1640
  %1648 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1649 = call i32 @fileno(ptr noundef %1648) #10
  %1650 = call i32 @isatty(i32 noundef %1649) #10
  %.not186 = icmp eq i32 %1650, 0
  br i1 %.not186, label %1651, label %1652

1651:                                             ; preds = %1647, %1640
  br label %1652

1652:                                             ; preds = %1647, %1651
  %.str.5.sink836 = phi ptr [ @.str.5, %1651 ], [ @.str.2, %1647 ]
  store i32 %1642, ptr %1641, align 4, !tbaa !5
  %1653 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1654 = load i32, ptr @test_count, align 4, !tbaa !5
  %1655 = load i32, ptr %1507, align 4, !tbaa !5
  %1656 = call ptr @s2n_strerror(i32 noundef %1655, ptr noundef nonnull @.str.4) #10
  %1657 = load i32, ptr %1507, align 4, !tbaa !5
  %1658 = call ptr @s2n_strerror_debug(i32 noundef %1657, ptr noundef nonnull @.str.4) #10
  %1659 = load i32, ptr %1641, align 4, !tbaa !5
  %1660 = call ptr @strerror(i32 noundef %1659) #10
  %1661 = load i32, ptr %1641, align 4, !tbaa !5
  %1662 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1653, ptr noundef nonnull %.str.5.sink836, i32 noundef %1654, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 178, ptr noundef %1656, ptr noundef %1658, ptr noundef %1660, i32 noundef %1661) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1663:                                             ; preds = %1635
  %1664 = add nsw i32 %1636, 2
  store i32 %1664, ptr @test_count, align 4, !tbaa !5
  %1665 = call ptr @s2n_strerror_debug(i32 noundef %1638, ptr noundef nonnull @.str.4) #10
  %1666 = icmp eq ptr %1665, null
  br i1 %1666, label %1667, label %1690

1667:                                             ; preds = %1663
  %1668 = tail call ptr @__errno_location() #11
  %1669 = load i32, ptr %1668, align 4, !tbaa !5
  %1670 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1671 = call i32 @s2n_print_stacktrace(ptr noundef %1670) #10
  %1672 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1673 = trunc nuw i8 %1672 to i1
  br i1 %1673, label %1674, label %1678

1674:                                             ; preds = %1667
  %1675 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1676 = call i32 @fileno(ptr noundef %1675) #10
  %1677 = call i32 @isatty(i32 noundef %1676) #10
  %.not185 = icmp eq i32 %1677, 0
  br i1 %.not185, label %1678, label %1679

1678:                                             ; preds = %1674, %1667
  br label %1679

1679:                                             ; preds = %1674, %1678
  %.str.5.sink845 = phi ptr [ @.str.5, %1678 ], [ @.str.2, %1674 ]
  store i32 %1669, ptr %1668, align 4, !tbaa !5
  %1680 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1681 = load i32, ptr @test_count, align 4, !tbaa !5
  %1682 = load i32, ptr %1507, align 4, !tbaa !5
  %1683 = call ptr @s2n_strerror(i32 noundef %1682, ptr noundef nonnull @.str.4) #10
  %1684 = load i32, ptr %1507, align 4, !tbaa !5
  %1685 = call ptr @s2n_strerror_debug(i32 noundef %1684, ptr noundef nonnull @.str.4) #10
  %1686 = load i32, ptr %1668, align 4, !tbaa !5
  %1687 = call ptr @strerror(i32 noundef %1686) #10
  %1688 = load i32, ptr %1668, align 4, !tbaa !5
  %1689 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1680, ptr noundef nonnull %.str.5.sink845, i32 noundef %1681, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 178, ptr noundef %1683, ptr noundef %1685, ptr noundef %1687, i32 noundef %1688) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1690:                                             ; preds = %1663
  store i32 0, ptr %1507, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #10
  %1691 = tail call ptr @__errno_location() #11
  store i32 0, ptr %1691, align 4, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %11) #10
  %1692 = add nuw nsw i64 %.0227, 1
  %1693 = load ptr, ptr %8, align 8, !tbaa !9
  %1694 = getelementptr inbounds i8, ptr %1693, i64 8
  %1695 = load i8, ptr %1694, align 8, !tbaa !44
  %1696 = zext i8 %1695 to i64
  %1697 = icmp ult i64 %1692, %1696
  br i1 %1697, label %1512, label %._crit_edge, !llvm.loop !53

1698:                                             ; preds = %._crit_edge
  %1699 = tail call ptr @__errno_location() #11
  %1700 = load i32, ptr %1699, align 4, !tbaa !5
  %1701 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1702 = call i32 @s2n_print_stacktrace(ptr noundef %1701) #10
  %1703 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1704 = trunc nuw i8 %1703 to i1
  br i1 %1704, label %1705, label %1709

1705:                                             ; preds = %1698
  %1706 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1707 = call i32 @fileno(ptr noundef %1706) #10
  %1708 = call i32 @isatty(i32 noundef %1707) #10
  %.not181 = icmp eq i32 %1708, 0
  br i1 %.not181, label %1709, label %1710

1709:                                             ; preds = %1705, %1698
  br label %1710

1710:                                             ; preds = %1705, %1709
  %.str.5.sink854 = phi ptr [ @.str.5, %1709 ], [ @.str.2, %1705 ]
  store i32 %1700, ptr %1699, align 4, !tbaa !5
  %1711 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1712 = load i32, ptr @test_count, align 4, !tbaa !5
  %1713 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1714 = load i32, ptr %1713, align 4, !tbaa !5
  %1715 = call ptr @s2n_strerror(i32 noundef %1714, ptr noundef nonnull @.str.4) #10
  %1716 = load i32, ptr %1713, align 4, !tbaa !5
  %1717 = call ptr @s2n_strerror_debug(i32 noundef %1716, ptr noundef nonnull @.str.4) #10
  %1718 = load i32, ptr %1699, align 4, !tbaa !5
  %1719 = call ptr @strerror(i32 noundef %1718) #10
  %1720 = load i32, ptr %1699, align 4, !tbaa !5
  %1721 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1711, ptr noundef nonnull %.str.5.sink854, i32 noundef %1712, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 181, ptr noundef %1715, ptr noundef %1717, ptr noundef %1719, i32 noundef %1720) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1722:                                             ; preds = %._crit_edge
  %1723 = load i32, ptr @test_count, align 4, !tbaa !5
  %1724 = add nsw i32 %1723, 1
  store i32 %1724, ptr @test_count, align 4, !tbaa !5
  %1725 = call i32 @s2n_stuffer_free(ptr noundef nonnull %9) #10
  %1726 = icmp eq i32 %1725, -1
  br i1 %1726, label %1727, label %1751

1727:                                             ; preds = %1722
  %1728 = tail call ptr @__errno_location() #11
  %1729 = load i32, ptr %1728, align 4, !tbaa !5
  %1730 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1731 = call i32 @s2n_print_stacktrace(ptr noundef %1730) #10
  %1732 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1733 = trunc nuw i8 %1732 to i1
  br i1 %1733, label %1734, label %1738

1734:                                             ; preds = %1727
  %1735 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1736 = call i32 @fileno(ptr noundef %1735) #10
  %1737 = call i32 @isatty(i32 noundef %1736) #10
  %.not180 = icmp eq i32 %1737, 0
  br i1 %.not180, label %1738, label %1739

1738:                                             ; preds = %1734, %1727
  br label %1739

1739:                                             ; preds = %1734, %1738
  %.str.5.sink865 = phi ptr [ @.str.5, %1738 ], [ @.str.2, %1734 ]
  store i32 %1729, ptr %1728, align 4, !tbaa !5
  %1740 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1741 = load i32, ptr @test_count, align 4, !tbaa !5
  %1742 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1743 = load i32, ptr %1742, align 4, !tbaa !5
  %1744 = call ptr @s2n_strerror(i32 noundef %1743, ptr noundef nonnull @.str.4) #10
  %1745 = load i32, ptr %1742, align 4, !tbaa !5
  %1746 = call ptr @s2n_strerror_debug(i32 noundef %1745, ptr noundef nonnull @.str.4) #10
  %1747 = load i32, ptr %1728, align 4, !tbaa !5
  %1748 = call ptr @strerror(i32 noundef %1747) #10
  %1749 = load i32, ptr %1728, align 4, !tbaa !5
  %1750 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1740, ptr noundef nonnull %.str.5.sink865, i32 noundef %1741, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 182, ptr noundef %1744, ptr noundef %1746, ptr noundef %1748, i32 noundef %1749) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1751:                                             ; preds = %1722
  call void @llvm.lifetime.end.p0(i64 704, ptr nonnull %10) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %9) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #10
  %1752 = call i32 @s2n_cleanup() #10
  %1753 = icmp eq i32 %1752, -1
  br i1 %1753, label %1754, label %1778

1754:                                             ; preds = %1751
  %1755 = tail call ptr @__errno_location() #11
  %1756 = load i32, ptr %1755, align 4, !tbaa !5
  %1757 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1758 = call i32 @s2n_print_stacktrace(ptr noundef %1757) #10
  %1759 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1760 = trunc nuw i8 %1759 to i1
  br i1 %1760, label %1761, label %1765

1761:                                             ; preds = %1754
  %1762 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1763 = call i32 @fileno(ptr noundef %1762) #10
  %1764 = call i32 @isatty(i32 noundef %1763) #10
  %.not179 = icmp eq i32 %1764, 0
  br i1 %.not179, label %1765, label %1766

1765:                                             ; preds = %1761, %1754
  br label %1766

1766:                                             ; preds = %1761, %1765
  %.str.5.sink876 = phi ptr [ @.str.5, %1765 ], [ @.str.2, %1761 ]
  store i32 %1756, ptr %1755, 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 nonnull @.str.4) #10
  %1772 = load i32, ptr %1769, align 4, !tbaa !5
  %1773 = call ptr @s2n_strerror_debug(i32 noundef %1772, ptr noundef nonnull @.str.4) #10
  %1774 = load i32, ptr %1755, align 4, !tbaa !5
  %1775 = call ptr @strerror(i32 noundef %1774) #10
  %1776 = load i32, ptr %1755, align 4, !tbaa !5
  %1777 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1767, ptr noundef nonnull %.str.5.sink876, i32 noundef %1768, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 185, ptr noundef %1771, ptr noundef %1773, ptr noundef %1775, i32 noundef %1776) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1778:                                             ; preds = %1751
  %1779 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #10
  %1780 = icmp eq i32 %1779, -1
  br i1 %1780, label %1781, label %1805

1781:                                             ; preds = %1778
  %1782 = tail call ptr @__errno_location() #11
  %1783 = load i32, ptr %1782, align 4, !tbaa !5
  %1784 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1785 = call i32 @s2n_print_stacktrace(ptr noundef %1784) #10
  %1786 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1787 = trunc nuw i8 %1786 to i1
  br i1 %1787, label %1788, label %1792

1788:                                             ; preds = %1781
  %1789 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1790 = call i32 @fileno(ptr noundef %1789) #10
  %1791 = call i32 @isatty(i32 noundef %1790) #10
  %.not178 = icmp eq i32 %1791, 0
  br i1 %.not178, label %1792, label %1793

1792:                                             ; preds = %1788, %1781
  br label %1793

1793:                                             ; preds = %1788, %1792
  %.str.5.sink887 = phi ptr [ @.str.5, %1792 ], [ @.str.2, %1788 ]
  store i32 %1783, ptr %1782, align 4, !tbaa !5
  %1794 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1795 = load i32, ptr @test_count, align 4, !tbaa !5
  %1796 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1797 = load i32, ptr %1796, align 4, !tbaa !5
  %1798 = call ptr @s2n_strerror(i32 noundef %1797, ptr noundef nonnull @.str.4) #10
  %1799 = load i32, ptr %1796, align 4, !tbaa !5
  %1800 = call ptr @s2n_strerror_debug(i32 noundef %1799, ptr noundef nonnull @.str.4) #10
  %1801 = load i32, ptr %1782, align 4, !tbaa !5
  %1802 = call ptr @strerror(i32 noundef %1801) #10
  %1803 = load i32, ptr %1782, align 4, !tbaa !5
  %1804 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1794, ptr noundef nonnull %.str.5.sink887, i32 noundef %1795, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.1, i32 noundef 185, ptr noundef %1798, ptr noundef %1800, ptr noundef %1802, i32 noundef %1803) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1805:                                             ; preds = %1778
  %1806 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1807 = trunc nuw i8 %1806 to i1
  br i1 %1807, label %1808, label %1819

1808:                                             ; preds = %1805
  %1809 = load ptr, ptr @stdout, align 8, !tbaa !9
  %1810 = call i32 @fileno(ptr noundef %1809) #10
  %1811 = call i32 @isatty(i32 noundef %1810) #10
  %.not175 = icmp eq i32 %1811, 0
  br i1 %.not175, label %1819, label %1812

1812:                                             ; preds = %1808
  %1813 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not177 = icmp eq i32 %1813, 0
  %1814 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not177, label %1817, label %1815

1815:                                             ; preds = %1812
  %1816 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1814, ptr noundef nonnull @.str.46, i32 noundef %1813) #10
  br label %1826

1817:                                             ; preds = %1812
  %1818 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1814, ptr noundef nonnull @.str.47) #10
  br label %1826

1819:                                             ; preds = %1808, %1805
  %1820 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not176 = icmp eq i32 %1820, 0
  %1821 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not176, label %1824, label %1822

1822:                                             ; preds = %1819
  %1823 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1821, ptr noundef nonnull @.str.48, i32 noundef %1820) #10
  br label %1826

1824:                                             ; preds = %1819
  %1825 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1821, ptr noundef nonnull @.str.49) #10
  br label %1826

1826:                                             ; preds = %1822, %1824, %1815, %1817
  ret i32 0
}

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

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

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) local_unnamed_addr #2

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

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

declare i32 @s2n_print_stacktrace(ptr noundef) local_unnamed_addr #2

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

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

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

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

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

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

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

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

declare i32 @s2n_enable_atexit() local_unnamed_addr #2

declare i32 @s2n_init() local_unnamed_addr #2

declare i32 @s2n_disable_tls13_in_test(...) local_unnamed_addr #2

declare zeroext i1 @s2n_use_default_tls13_config(...) local_unnamed_addr #2

declare ptr @s2n_connection_new(i32 noundef) local_unnamed_addr #2

declare i32 @s2n_connection_get_security_policy(ptr noundef, ptr noundef) local_unnamed_addr #2

declare zeroext i1 @s2n_security_policy_supports_tls13(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_connection_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_enable_tls13_in_test(...) local_unnamed_addr #2

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

declare zeroext i1 @s2n_is_valid_tls13_cipher(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_extension_type_list_get(i32 noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_connection_allow_all_response_extensions(ptr noundef) local_unnamed_addr #2

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

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

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

declare i32 @s2n_extension_supported_iana_value_to_id(i16 noundef zeroext, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_extension_process(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare void @s2n_debug_info_reset() local_unnamed_addr #2

declare i32 @s2n_stuffer_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_cleanup() local_unnamed_addr #2

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nofree nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #4 = { mustprogress nofree nosync nounwind willreturn memory(none) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #7 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #9 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #10 = { nounwind }
attributes #11 = { nounwind willreturn memory(none) }
attributes #12 = { cold nounwind }
attributes #13 = { 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, !7, i64 218}
!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 = !{!16, !7, i64 219}
!43 = !{!7, !7, i64 0}
!44 = !{!45, !7, i64 8}
!45 = !{!"", !10, i64 0, !7, i64 8}
!46 = !{!45, !10, i64 0}
!47 = !{!48, !31, i64 0}
!48 = !{!"", !31, i64 0, !6, i64 2, !31, i64 4, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32}
!49 = !{i64 0, i64 8, !9, i64 8, i64 4, !5, i64 12, i64 4, !5, i64 16, i64 1, !43}
!50 = !{!51, !31, i64 24}
!51 = !{!"", !25, i64 0, !31, i64 24, !31, i64 26, !6, i64 28}
!52 = !{!16, !7, i64 220}
!53 = distinct !{!53, !54}
!54 = !{!"llvm.loop.mustprogress"}


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