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

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

%struct.s2n_cipher_suite = type { i8, ptr, ptr, [2 x i8], ptr, i32, ptr, [2 x ptr], i8, ptr, ptr, i32, i8 }
%struct.s2n_signature_scheme = type { i16, ptr, i32, i32, i8, i8, i16, ptr }
%struct.s2n_stuffer = type { %struct.s2n_blob, i32, i32, i32, i8 }
%struct.s2n_blob = type { ptr, i32, i32, i8 }
%struct.s2n_result = type { i32 }
%struct.s2n_tls13_cert_verify_test = type { ptr, ptr, ptr, ptr }
%struct.s2n_connection = type { i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, [22 x i8], [22 x i8], [22 x i8], i32, i32, %struct.s2n_timer, i64, i64, [32 x i8], i8, i8, i8, i8, i8, i8, i8, ptr, ptr, %struct.s2n_secrets, ptr, ptr, %struct.s2n_kex_parameters, %struct.s2n_handshake_parameters, %struct.s2n_psk_parameters, ptr, i8, i32, [5 x i8], %struct.s2n_stuffer, %struct.s2n_stuffer, %struct.s2n_stuffer, %struct.s2n_stuffer, i32, i64, [2 x i8], %struct.s2n_stuffer, i8, i8, i8, i8, %struct.s2n_atomic_flag, %struct.s2n_atomic_flag, %struct.s2n_handshake, i16, i32, i16, i64, i8, i64, i64, i64, %struct.s2n_atomic_flag, %struct.s2n_atomic_flag, [256 x i8], [256 x i8], i32, %struct.s2n_blob, i32, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_client_hello, %struct.s2n_x509_validator, ptr, ptr, i8, i32, %struct.s2n_blob, i32, %struct.s2n_ticket_fields, [138 x i8], %struct.s2n_stuffer, %struct.s2n_blob, %struct.s2n_blob, i8, i8, i8, i16, i16, i32, i32, %struct.s2n_blob, i32, %struct.s2n_post_handshake, %struct.s2n_atomic_flag, i8, i8 }
%struct.s2n_timer = type { i64 }
%struct.s2n_secrets = type { %union.anon, i32 }
%union.anon = type { %struct.s2n_tls13_secrets }
%struct.s2n_tls13_secrets = type { [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], i32 }
%struct.s2n_kex_parameters = type { %struct.s2n_dh_params, %struct.s2n_ecc_evp_params, [4 x ptr], %struct.s2n_ecc_evp_params, %struct.s2n_kem_group_params, %struct.s2n_kem_group_params, [8 x ptr], %struct.s2n_kem_params, %struct.s2n_blob, %struct.s2n_blob }
%struct.s2n_dh_params = type { ptr }
%struct.s2n_ecc_evp_params = type { ptr, ptr }
%struct.s2n_kem_group_params = type { ptr, %struct.s2n_kem_params, %struct.s2n_ecc_evp_params }
%struct.s2n_kem_params = type { ptr, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob, i8 }
%struct.s2n_handshake_parameters = type { %struct.s2n_pkey, %struct.s2n_pkey, %struct.s2n_blob, i32, %struct.s2n_sig_scheme_list, ptr, ptr, ptr, [4 x ptr], [4 x ptr], i8, i8, [32 x i8], [32 x i8] }
%struct.s2n_pkey = type { ptr, ptr, ptr, ptr, ptr, ptr }
%struct.s2n_sig_scheme_list = type { [128 x i16], i8 }
%struct.s2n_psk_parameters = type { i32, %struct.s2n_array, i16, i16, ptr, i32 }
%struct.s2n_array = type { %struct.s2n_blob, i32, i32 }
%struct.s2n_handshake = type { %struct.s2n_stuffer, ptr, [8 x i8], [48 x i8], [48 x i8], i8, i32, i32, i32, i32, %struct.s2n_offered_early_data, i8, i32 }
%struct.s2n_offered_early_data = type { ptr }
%struct.s2n_client_hello = type { %struct.s2n_blob, %struct.s2n_parsed_extensions_list, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob, i8, i8, i8 }
%struct.s2n_parsed_extensions_list = type { [21 x %struct.s2n_parsed_extension], %struct.s2n_blob, i16 }
%struct.s2n_parsed_extension = type { %struct.s2n_blob, i16, i16, i8 }
%struct.s2n_x509_validator = type { ptr, ptr, i8, i8, i16, ptr, i32, ptr, %struct.s2n_cert_validation_info, i8 }
%struct.s2n_cert_validation_info = type { i8, [3 x i8] }
%struct.s2n_ticket_fields = type { %struct.s2n_blob, i32 }
%struct.s2n_post_handshake = type { %struct.s2n_stuffer, [4 x i8] }
%struct.s2n_atomic_flag = type { i32 }
%struct.s2n_crypto_parameters = type { ptr, %struct.s2n_session_key, %struct.s2n_session_key, %struct.s2n_hmac_state, %struct.s2n_hmac_state, [16 x i8], [16 x i8], [8 x i8], [8 x i8] }
%struct.s2n_session_key = type { ptr }
%struct.s2n_hmac_state = type { i32, i16, i32, i16, i8, %struct.s2n_hash_state, %struct.s2n_hash_state, %struct.s2n_hash_state, %struct.s2n_hash_state, [128 x i8], [64 x i8] }
%struct.s2n_hash_state = type { ptr, i32, i8, i64, %union.anon.0 }
%union.anon.0 = type { %struct.s2n_hash_evp_digest }
%struct.s2n_hash_evp_digest = type { %struct.s2n_evp_digest, %struct.s2n_evp_digest }
%struct.s2n_evp_digest = type { ptr, ptr }
%struct.s2n_handshake_hashes = type { %struct.s2n_hash_state, %struct.s2n_hash_state, %struct.s2n_hash_state, %struct.s2n_hash_state, %struct.s2n_hash_state, %struct.s2n_hash_state, %struct.s2n_hash_state, [48 x i8], %struct.s2n_hash_state }

@s2n_use_color_in_output = external dso_local global i8, align 1
@s2n_errno = external thread_local global i32, align 4
@goodbye = external dso_local global [17 x i8], align 16
@test_count = external dso_local global i32, align 4
@stderr = external global ptr, align 8
@.str.3 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [197 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [121 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [121 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [143 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [71 x i8], align 1
@s2n_tls13_aes_256_gcm_sha384 = external global %struct.s2n_cipher_suite, align 8
@.str.36 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [113 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [126 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [122 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [104 x i8], align 1

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

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

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

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

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

; Function Attrs: inlinehint nounwind uwtable
declare hidden zeroext i1 @s2n_result_is_ok(i32) #3

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

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

declare i32 @s2n_print_stacktrace(ptr noundef) #5

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

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

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

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

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

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

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

declare i32 @s2n_hash_update(ptr noundef, ptr noundef, i32 noundef) #5

declare i32 @s2n_stuffer_copy(ptr noundef, ptr noundef, i32 noundef) #5

; Function Attrs: nounwind uwtable
define dso_local i32 @run_tests(ptr noundef %0, i32 noundef %1) #0 {
  %3 = alloca ptr, align 8
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca %struct.s2n_signature_scheme, align 8
  %8 = alloca [12000 x i8], align 16
  %9 = alloca [12000 x i8], align 16
  %10 = alloca i32, align 4
  %11 = alloca i32, align 4
  %12 = alloca ptr, align 8
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca ptr, align 8
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca %struct.s2n_stuffer, align 8
  %20 = alloca %struct.s2n_stuffer, align 8
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca %struct.s2n_blob, align 8
  %27 = alloca i32, align 4
  %28 = alloca ptr, align 8
  %29 = alloca i32, align 4
  %30 = alloca ptr, align 8
  %31 = alloca i32, align 4
  %32 = alloca %struct.s2n_result, align 4
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca %struct.s2n_result, align 4
  %44 = alloca %struct.s2n_result, align 4
  %45 = alloca ptr, align 8
  %46 = alloca i32, align 4
  %47 = alloca ptr, align 8
  %48 = alloca i32, align 4
  %49 = alloca %struct.s2n_result, align 4
  %50 = alloca i32, align 4
  %51 = alloca i32, align 4
  %52 = alloca i64, align 8
  %53 = alloca i64, align 8
  %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 %struct.s2n_result, align 4
  %61 = alloca %struct.s2n_result, align 4
  %62 = alloca ptr, align 8
  %63 = alloca i32, align 4
  %64 = alloca ptr, align 8
  %65 = alloca i32, align 4
  %66 = alloca %struct.s2n_result, align 4
  %67 = alloca i32, align 4
  %68 = alloca i32, align 4
  %69 = alloca i32, align 4
  %70 = alloca i32, align 4
  %71 = alloca i32, align 4
  %72 = alloca %struct.s2n_result, align 4
  %73 = alloca %struct.s2n_result, align 4
  %74 = alloca ptr, align 8
  %75 = alloca i32, align 4
  %76 = alloca ptr, align 8
  %77 = alloca i32, align 4
  %78 = alloca %struct.s2n_result, align 4
  %79 = alloca i32, align 4
  %80 = alloca %struct.s2n_stuffer, align 8
  %81 = alloca i32, align 4
  %82 = alloca i32, align 4
  %83 = alloca i32, align 4
  %84 = alloca i32, align 4
  %85 = alloca i32, align 4
  %86 = alloca %struct.s2n_result, align 4
  %87 = alloca %struct.s2n_result, align 4
  %88 = alloca %struct.s2n_result, align 4
  %89 = alloca %struct.s2n_result, align 4
  store ptr %0, ptr %3, align 8, !tbaa !5
  store i32 %1, ptr %4, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %5) #10
  %90 = load ptr, ptr %3, align 8, !tbaa !5
  %91 = getelementptr inbounds %struct.s2n_tls13_cert_verify_test, ptr %90, i32 0, i32 0
  %92 = load ptr, ptr %91, align 8, !tbaa !11
  store ptr %92, ptr %5, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %6) #10
  %93 = load ptr, ptr %3, align 8, !tbaa !5
  %94 = getelementptr inbounds %struct.s2n_tls13_cert_verify_test, ptr %93, i32 0, i32 1
  %95 = load ptr, ptr %94, align 8, !tbaa !13
  store ptr %95, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 40, ptr %7) #10
  %96 = load ptr, ptr %3, align 8, !tbaa !5
  %97 = getelementptr inbounds %struct.s2n_tls13_cert_verify_test, ptr %96, i32 0, i32 2
  %98 = load ptr, ptr %97, align 8, !tbaa !14
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %7, ptr align 8 %98, i64 40, i1 false), !tbaa.struct !15
  call void @llvm.lifetime.start.p0(i64 12000, ptr %8) #10
  call void @llvm.memset.p0.i64(ptr align 16 %8, i8 0, i64 12000, i1 false)
  call void @llvm.lifetime.start.p0(i64 12000, ptr %9) #10
  call void @llvm.memset.p0.i64(ptr align 16 %9, i8 0, i64 12000, i1 false)
  br label %99

99:                                               ; preds = %2
  %100 = load i32, ptr @test_count, align 4, !tbaa !9
  %101 = add nsw i32 %100, 1
  store i32 %101, ptr @test_count, align 4, !tbaa !9
  %102 = load ptr, ptr %5, align 8, !tbaa !5
  %103 = getelementptr inbounds [12000 x i8], ptr %8, i64 0, i64 0
  %104 = call i32 @s2n_read_test_pem(ptr noundef %102, ptr noundef %103, i64 noundef 12000)
  %105 = icmp eq i32 %104, -1
  br i1 %105, label %106, label %159

106:                                              ; preds = %99
  br label %107

107:                                              ; preds = %106
  br label %108

108:                                              ; preds = %107
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #10
  %109 = call ptr @__errno_location() #11
  %110 = load i32, ptr %109, align 4, !tbaa !9
  store i32 %110, ptr %10, align 4, !tbaa !9
  %111 = load ptr, ptr @stderr, align 8, !tbaa !5
  %112 = call i32 @s2n_print_stacktrace(ptr noundef %111)
  %113 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %114 = trunc i8 %113 to i1
  br i1 %114, label %115, label %137

115:                                              ; preds = %108
  %116 = load ptr, ptr @stderr, align 8, !tbaa !5
  %117 = call i32 @fileno(ptr noundef %116) #10
  %118 = call i32 @isatty(i32 noundef %117) #10
  %119 = icmp ne i32 %118, 0
  br i1 %119, label %120, label %137

120:                                              ; preds = %115
  %121 = load i32, ptr %10, align 4, !tbaa !9
  %122 = call ptr @__errno_location() #11
  store i32 %121, ptr %122, align 4, !tbaa !9
  %123 = load ptr, ptr @stderr, align 8, !tbaa !5
  %124 = load i32, ptr @test_count, align 4, !tbaa !9
  %125 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %126 = load i32, ptr %125, align 4, !tbaa !9
  %127 = call ptr @s2n_strerror(i32 noundef %126, ptr noundef @.str.6)
  %128 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %129 = load i32, ptr %128, align 4, !tbaa !9
  %130 = call ptr @s2n_strerror_debug(i32 noundef %129, ptr noundef @.str.6)
  %131 = call ptr @__errno_location() #11
  %132 = load i32, ptr %131, align 4, !tbaa !9
  %133 = call ptr @strerror(i32 noundef %132) #10
  %134 = call ptr @__errno_location() #11
  %135 = load i32, ptr %134, align 4, !tbaa !9
  %136 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %123, ptr noundef @.str.3, i32 noundef %124, ptr noundef @.str.19, ptr noundef @.str.5, i32 noundef 101, ptr noundef %127, ptr noundef %130, ptr noundef %133, i32 noundef %135) #10
  br label %154

137:                                              ; preds = %115, %108
  %138 = load i32, ptr %10, align 4, !tbaa !9
  %139 = call ptr @__errno_location() #11
  store i32 %138, ptr %139, align 4, !tbaa !9
  %140 = load ptr, ptr @stderr, align 8, !tbaa !5
  %141 = load i32, ptr @test_count, align 4, !tbaa !9
  %142 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %143 = load i32, ptr %142, align 4, !tbaa !9
  %144 = call ptr @s2n_strerror(i32 noundef %143, ptr noundef @.str.6)
  %145 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %146 = load i32, ptr %145, align 4, !tbaa !9
  %147 = call ptr @s2n_strerror_debug(i32 noundef %146, ptr noundef @.str.6)
  %148 = call ptr @__errno_location() #11
  %149 = load i32, ptr %148, align 4, !tbaa !9
  %150 = call ptr @strerror(i32 noundef %149) #10
  %151 = call ptr @__errno_location() #11
  %152 = load i32, ptr %151, align 4, !tbaa !9
  %153 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %140, ptr noundef @.str.7, i32 noundef %141, ptr noundef @.str.19, ptr noundef @.str.5, i32 noundef 101, ptr noundef %144, ptr noundef %147, ptr noundef %150, i32 noundef %152) #10
  br label %154

154:                                              ; preds = %137, %120
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #10
  br label %155

155:                                              ; preds = %154
  br label %156

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

157:                                              ; No predecessors!
  br label %158

158:                                              ; preds = %157
  br label %159

159:                                              ; preds = %158, %99
  br label %160

160:                                              ; preds = %159
  br label %161

161:                                              ; preds = %160
  br label %162

162:                                              ; preds = %161
  %163 = load i32, ptr @test_count, align 4, !tbaa !9
  %164 = add nsw i32 %163, 1
  store i32 %164, ptr @test_count, align 4, !tbaa !9
  %165 = load ptr, ptr %6, align 8, !tbaa !5
  %166 = getelementptr inbounds [12000 x i8], ptr %9, i64 0, i64 0
  %167 = call i32 @s2n_read_test_pem(ptr noundef %165, ptr noundef %166, i64 noundef 12000)
  %168 = icmp eq i32 %167, -1
  br i1 %168, label %169, label %222

169:                                              ; preds = %162
  br label %170

170:                                              ; preds = %169
  br label %171

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

178:                                              ; preds = %171
  %179 = load ptr, ptr @stderr, align 8, !tbaa !5
  %180 = call i32 @fileno(ptr noundef %179) #10
  %181 = call i32 @isatty(i32 noundef %180) #10
  %182 = icmp ne i32 %181, 0
  br i1 %182, label %183, label %200

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

200:                                              ; preds = %178, %171
  %201 = load i32, ptr %11, align 4, !tbaa !9
  %202 = call ptr @__errno_location() #11
  store i32 %201, ptr %202, align 4, !tbaa !9
  %203 = load ptr, ptr @stderr, align 8, !tbaa !5
  %204 = load i32, ptr @test_count, align 4, !tbaa !9
  %205 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %206 = load i32, ptr %205, align 4, !tbaa !9
  %207 = call ptr @s2n_strerror(i32 noundef %206, ptr noundef @.str.6)
  %208 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %209 = load i32, ptr %208, align 4, !tbaa !9
  %210 = call ptr @s2n_strerror_debug(i32 noundef %209, ptr noundef @.str.6)
  %211 = call ptr @__errno_location() #11
  %212 = load i32, ptr %211, align 4, !tbaa !9
  %213 = call ptr @strerror(i32 noundef %212) #10
  %214 = call ptr @__errno_location() #11
  %215 = load i32, ptr %214, align 4, !tbaa !9
  %216 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %203, ptr noundef @.str.7, i32 noundef %204, ptr noundef @.str.20, ptr noundef @.str.5, i32 noundef 102, ptr noundef %207, ptr noundef %210, ptr noundef %213, i32 noundef %215) #10
  br label %217

217:                                              ; preds = %200, %183
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #10
  br label %218

218:                                              ; preds = %217
  br label %219

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

220:                                              ; No predecessors!
  br label %221

221:                                              ; preds = %220
  br label %222

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

223:                                              ; preds = %222
  br label %224

224:                                              ; preds = %223
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #10
  %225 = call ptr @s2n_cert_chain_and_key_new()
  store ptr %225, ptr %12, align 8, !tbaa !5
  br label %226

226:                                              ; preds = %224
  %227 = load i32, ptr @test_count, align 4, !tbaa !9
  %228 = add nsw i32 %227, 1
  store i32 %228, ptr @test_count, align 4, !tbaa !9
  %229 = load ptr, ptr %12, align 8, !tbaa !5
  %230 = icmp eq ptr %229, null
  br i1 %230, label %231, label %284

231:                                              ; preds = %226
  br label %232

232:                                              ; preds = %231
  br label %233

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

240:                                              ; preds = %233
  %241 = load ptr, ptr @stderr, align 8, !tbaa !5
  %242 = call i32 @fileno(ptr noundef %241) #10
  %243 = call i32 @isatty(i32 noundef %242) #10
  %244 = icmp ne i32 %243, 0
  br i1 %244, label %245, label %262

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

262:                                              ; preds = %240, %233
  %263 = load i32, ptr %13, align 4, !tbaa !9
  %264 = call ptr @__errno_location() #11
  store i32 %263, ptr %264, align 4, !tbaa !9
  %265 = load ptr, ptr @stderr, align 8, !tbaa !5
  %266 = load i32, ptr @test_count, align 4, !tbaa !9
  %267 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %268 = load i32, ptr %267, align 4, !tbaa !9
  %269 = call ptr @s2n_strerror(i32 noundef %268, ptr noundef @.str.6)
  %270 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %271 = load i32, ptr %270, align 4, !tbaa !9
  %272 = call ptr @s2n_strerror_debug(i32 noundef %271, ptr noundef @.str.6)
  %273 = call ptr @__errno_location() #11
  %274 = load i32, ptr %273, align 4, !tbaa !9
  %275 = call ptr @strerror(i32 noundef %274) #10
  %276 = call ptr @__errno_location() #11
  %277 = load i32, ptr %276, align 4, !tbaa !9
  %278 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %265, ptr noundef @.str.7, i32 noundef %266, ptr noundef @.str.21, ptr noundef @.str.5, i32 noundef 106, ptr noundef %269, ptr noundef %272, ptr noundef %275, i32 noundef %277) #10
  br label %279

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

280:                                              ; preds = %279
  br label %281

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

282:                                              ; No predecessors!
  br label %283

283:                                              ; preds = %282
  br label %284

284:                                              ; preds = %283, %226
  br label %285

285:                                              ; preds = %284
  br label %286

286:                                              ; preds = %285
  br label %287

287:                                              ; preds = %286
  %288 = load i32, ptr @test_count, align 4, !tbaa !9
  %289 = add nsw i32 %288, 1
  store i32 %289, ptr @test_count, align 4, !tbaa !9
  %290 = load ptr, ptr %12, align 8, !tbaa !5
  %291 = getelementptr inbounds [12000 x i8], ptr %8, i64 0, i64 0
  %292 = getelementptr inbounds [12000 x i8], ptr %9, i64 0, i64 0
  %293 = call i32 @s2n_cert_chain_and_key_load_pem(ptr noundef %290, ptr noundef %291, ptr noundef %292)
  %294 = icmp eq i32 %293, -1
  br i1 %294, label %295, label %348

295:                                              ; preds = %287
  br label %296

296:                                              ; preds = %295
  br label %297

297:                                              ; preds = %296
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #10
  %298 = call ptr @__errno_location() #11
  %299 = load i32, ptr %298, align 4, !tbaa !9
  store i32 %299, ptr %14, align 4, !tbaa !9
  %300 = load ptr, ptr @stderr, align 8, !tbaa !5
  %301 = call i32 @s2n_print_stacktrace(ptr noundef %300)
  %302 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %303 = trunc i8 %302 to i1
  br i1 %303, label %304, label %326

304:                                              ; preds = %297
  %305 = load ptr, ptr @stderr, align 8, !tbaa !5
  %306 = call i32 @fileno(ptr noundef %305) #10
  %307 = call i32 @isatty(i32 noundef %306) #10
  %308 = icmp ne i32 %307, 0
  br i1 %308, label %309, label %326

309:                                              ; preds = %304
  %310 = load i32, ptr %14, align 4, !tbaa !9
  %311 = call ptr @__errno_location() #11
  store i32 %310, ptr %311, align 4, !tbaa !9
  %312 = load ptr, ptr @stderr, align 8, !tbaa !5
  %313 = load i32, ptr @test_count, align 4, !tbaa !9
  %314 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %315 = load i32, ptr %314, align 4, !tbaa !9
  %316 = call ptr @s2n_strerror(i32 noundef %315, ptr noundef @.str.6)
  %317 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %318 = load i32, ptr %317, align 4, !tbaa !9
  %319 = call ptr @s2n_strerror_debug(i32 noundef %318, ptr noundef @.str.6)
  %320 = call ptr @__errno_location() #11
  %321 = load i32, ptr %320, align 4, !tbaa !9
  %322 = call ptr @strerror(i32 noundef %321) #10
  %323 = call ptr @__errno_location() #11
  %324 = load i32, ptr %323, align 4, !tbaa !9
  %325 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %312, ptr noundef @.str.3, i32 noundef %313, ptr noundef @.str.22, ptr noundef @.str.5, i32 noundef 107, ptr noundef %316, ptr noundef %319, ptr noundef %322, i32 noundef %324) #10
  br label %343

326:                                              ; preds = %304, %297
  %327 = load i32, ptr %14, align 4, !tbaa !9
  %328 = call ptr @__errno_location() #11
  store i32 %327, ptr %328, align 4, !tbaa !9
  %329 = load ptr, ptr @stderr, align 8, !tbaa !5
  %330 = load i32, ptr @test_count, align 4, !tbaa !9
  %331 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %332 = load i32, ptr %331, align 4, !tbaa !9
  %333 = call ptr @s2n_strerror(i32 noundef %332, ptr noundef @.str.6)
  %334 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %335 = load i32, ptr %334, align 4, !tbaa !9
  %336 = call ptr @s2n_strerror_debug(i32 noundef %335, ptr noundef @.str.6)
  %337 = call ptr @__errno_location() #11
  %338 = load i32, ptr %337, align 4, !tbaa !9
  %339 = call ptr @strerror(i32 noundef %338) #10
  %340 = call ptr @__errno_location() #11
  %341 = load i32, ptr %340, align 4, !tbaa !9
  %342 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %329, ptr noundef @.str.7, i32 noundef %330, ptr noundef @.str.22, ptr noundef @.str.5, i32 noundef 107, ptr noundef %333, ptr noundef %336, ptr noundef %339, i32 noundef %341) #10
  br label %343

343:                                              ; preds = %326, %309
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #10
  br label %344

344:                                              ; preds = %343
  br label %345

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

346:                                              ; No predecessors!
  br label %347

347:                                              ; preds = %346
  br label %348

348:                                              ; preds = %347, %287
  br label %349

349:                                              ; preds = %348
  br label %350

350:                                              ; preds = %349
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #10
  %351 = call ptr @s2n_config_new()
  store ptr %351, ptr %15, align 8, !tbaa !5
  br label %352

352:                                              ; preds = %350
  %353 = load i32, ptr @test_count, align 4, !tbaa !9
  %354 = add nsw i32 %353, 1
  store i32 %354, ptr @test_count, align 4, !tbaa !9
  %355 = load ptr, ptr %15, align 8, !tbaa !5
  %356 = icmp eq ptr %355, null
  br i1 %356, label %357, label %410

357:                                              ; preds = %352
  br label %358

358:                                              ; preds = %357
  br label %359

359:                                              ; preds = %358
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #10
  %360 = call ptr @__errno_location() #11
  %361 = load i32, ptr %360, align 4, !tbaa !9
  store i32 %361, ptr %16, align 4, !tbaa !9
  %362 = load ptr, ptr @stderr, align 8, !tbaa !5
  %363 = call i32 @s2n_print_stacktrace(ptr noundef %362)
  %364 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %365 = trunc i8 %364 to i1
  br i1 %365, label %366, label %388

366:                                              ; preds = %359
  %367 = load ptr, ptr @stderr, align 8, !tbaa !5
  %368 = call i32 @fileno(ptr noundef %367) #10
  %369 = call i32 @isatty(i32 noundef %368) #10
  %370 = icmp ne i32 %369, 0
  br i1 %370, label %371, label %388

371:                                              ; preds = %366
  %372 = load i32, ptr %16, align 4, !tbaa !9
  %373 = call ptr @__errno_location() #11
  store i32 %372, ptr %373, align 4, !tbaa !9
  %374 = load ptr, ptr @stderr, align 8, !tbaa !5
  %375 = load i32, ptr @test_count, align 4, !tbaa !9
  %376 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %377 = load i32, ptr %376, align 4, !tbaa !9
  %378 = call ptr @s2n_strerror(i32 noundef %377, ptr noundef @.str.6)
  %379 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %380 = load i32, ptr %379, align 4, !tbaa !9
  %381 = call ptr @s2n_strerror_debug(i32 noundef %380, ptr noundef @.str.6)
  %382 = call ptr @__errno_location() #11
  %383 = load i32, ptr %382, align 4, !tbaa !9
  %384 = call ptr @strerror(i32 noundef %383) #10
  %385 = call ptr @__errno_location() #11
  %386 = load i32, ptr %385, align 4, !tbaa !9
  %387 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %374, ptr noundef @.str.3, i32 noundef %375, ptr noundef @.str.23, ptr noundef @.str.5, i32 noundef 110, ptr noundef %378, ptr noundef %381, ptr noundef %384, i32 noundef %386) #10
  br label %405

388:                                              ; preds = %366, %359
  %389 = load i32, ptr %16, align 4, !tbaa !9
  %390 = call ptr @__errno_location() #11
  store i32 %389, ptr %390, align 4, !tbaa !9
  %391 = load ptr, ptr @stderr, align 8, !tbaa !5
  %392 = load i32, ptr @test_count, align 4, !tbaa !9
  %393 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %394 = load i32, ptr %393, align 4, !tbaa !9
  %395 = call ptr @s2n_strerror(i32 noundef %394, ptr noundef @.str.6)
  %396 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %397 = load i32, ptr %396, align 4, !tbaa !9
  %398 = call ptr @s2n_strerror_debug(i32 noundef %397, ptr noundef @.str.6)
  %399 = call ptr @__errno_location() #11
  %400 = load i32, ptr %399, align 4, !tbaa !9
  %401 = call ptr @strerror(i32 noundef %400) #10
  %402 = call ptr @__errno_location() #11
  %403 = load i32, ptr %402, align 4, !tbaa !9
  %404 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %391, ptr noundef @.str.7, i32 noundef %392, ptr noundef @.str.23, ptr noundef @.str.5, i32 noundef 110, ptr noundef %395, ptr noundef %398, ptr noundef %401, i32 noundef %403) #10
  br label %405

405:                                              ; preds = %388, %371
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #10
  br label %406

406:                                              ; preds = %405
  br label %407

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

408:                                              ; No predecessors!
  br label %409

409:                                              ; preds = %408
  br label %410

410:                                              ; preds = %409, %352
  br label %411

411:                                              ; preds = %410
  br label %412

412:                                              ; preds = %411
  br label %413

413:                                              ; preds = %412
  %414 = load i32, ptr @test_count, align 4, !tbaa !9
  %415 = add nsw i32 %414, 1
  store i32 %415, ptr @test_count, align 4, !tbaa !9
  %416 = load ptr, ptr %15, align 8, !tbaa !5
  %417 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %416, ptr noundef @.str.24)
  %418 = icmp eq i32 %417, -1
  br i1 %418, label %419, label %472

419:                                              ; preds = %413
  br label %420

420:                                              ; preds = %419
  br label %421

421:                                              ; preds = %420
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #10
  %422 = call ptr @__errno_location() #11
  %423 = load i32, ptr %422, align 4, !tbaa !9
  store i32 %423, ptr %17, align 4, !tbaa !9
  %424 = load ptr, ptr @stderr, align 8, !tbaa !5
  %425 = call i32 @s2n_print_stacktrace(ptr noundef %424)
  %426 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %427 = trunc i8 %426 to i1
  br i1 %427, label %428, label %450

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

433:                                              ; preds = %428
  %434 = load i32, ptr %17, align 4, !tbaa !9
  %435 = call ptr @__errno_location() #11
  store i32 %434, ptr %435, align 4, !tbaa !9
  %436 = load ptr, ptr @stderr, align 8, !tbaa !5
  %437 = load i32, ptr @test_count, align 4, !tbaa !9
  %438 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %439 = load i32, ptr %438, align 4, !tbaa !9
  %440 = call ptr @s2n_strerror(i32 noundef %439, ptr noundef @.str.6)
  %441 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %442 = load i32, ptr %441, align 4, !tbaa !9
  %443 = call ptr @s2n_strerror_debug(i32 noundef %442, ptr noundef @.str.6)
  %444 = call ptr @__errno_location() #11
  %445 = load i32, ptr %444, align 4, !tbaa !9
  %446 = call ptr @strerror(i32 noundef %445) #10
  %447 = call ptr @__errno_location() #11
  %448 = load i32, ptr %447, align 4, !tbaa !9
  %449 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %436, ptr noundef @.str.3, i32 noundef %437, ptr noundef @.str.25, ptr noundef @.str.5, i32 noundef 111, ptr noundef %440, ptr noundef %443, ptr noundef %446, i32 noundef %448) #10
  br label %467

450:                                              ; preds = %428, %421
  %451 = load i32, ptr %17, align 4, !tbaa !9
  %452 = call ptr @__errno_location() #11
  store i32 %451, ptr %452, align 4, !tbaa !9
  %453 = load ptr, ptr @stderr, align 8, !tbaa !5
  %454 = load i32, ptr @test_count, align 4, !tbaa !9
  %455 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %456 = load i32, ptr %455, align 4, !tbaa !9
  %457 = call ptr @s2n_strerror(i32 noundef %456, ptr noundef @.str.6)
  %458 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %459 = load i32, ptr %458, align 4, !tbaa !9
  %460 = call ptr @s2n_strerror_debug(i32 noundef %459, ptr noundef @.str.6)
  %461 = call ptr @__errno_location() #11
  %462 = load i32, ptr %461, align 4, !tbaa !9
  %463 = call ptr @strerror(i32 noundef %462) #10
  %464 = call ptr @__errno_location() #11
  %465 = load i32, ptr %464, align 4, !tbaa !9
  %466 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %453, ptr noundef @.str.7, i32 noundef %454, ptr noundef @.str.25, ptr noundef @.str.5, i32 noundef 111, ptr noundef %457, ptr noundef %460, ptr noundef %463, i32 noundef %465) #10
  br label %467

467:                                              ; preds = %450, %433
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #10
  br label %468

468:                                              ; preds = %467
  br label %469

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

470:                                              ; No predecessors!
  br label %471

471:                                              ; preds = %470
  br label %472

472:                                              ; preds = %471, %413
  br label %473

473:                                              ; preds = %472
  br label %474

474:                                              ; preds = %473
  br label %475

475:                                              ; preds = %474
  %476 = load i32, ptr @test_count, align 4, !tbaa !9
  %477 = add nsw i32 %476, 1
  store i32 %477, ptr @test_count, align 4, !tbaa !9
  %478 = load ptr, ptr %15, align 8, !tbaa !5
  %479 = load ptr, ptr %12, align 8, !tbaa !5
  %480 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %478, ptr noundef %479)
  %481 = icmp eq i32 %480, -1
  br i1 %481, label %482, label %535

482:                                              ; preds = %475
  br label %483

483:                                              ; preds = %482
  br label %484

484:                                              ; preds = %483
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #10
  %485 = call ptr @__errno_location() #11
  %486 = load i32, ptr %485, align 4, !tbaa !9
  store i32 %486, ptr %18, align 4, !tbaa !9
  %487 = load ptr, ptr @stderr, align 8, !tbaa !5
  %488 = call i32 @s2n_print_stacktrace(ptr noundef %487)
  %489 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %490 = trunc i8 %489 to i1
  br i1 %490, label %491, label %513

491:                                              ; preds = %484
  %492 = load ptr, ptr @stderr, align 8, !tbaa !5
  %493 = call i32 @fileno(ptr noundef %492) #10
  %494 = call i32 @isatty(i32 noundef %493) #10
  %495 = icmp ne i32 %494, 0
  br i1 %495, label %496, label %513

496:                                              ; preds = %491
  %497 = load i32, ptr %18, align 4, !tbaa !9
  %498 = call ptr @__errno_location() #11
  store i32 %497, ptr %498, align 4, !tbaa !9
  %499 = load ptr, ptr @stderr, align 8, !tbaa !5
  %500 = load i32, ptr @test_count, align 4, !tbaa !9
  %501 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %502 = load i32, ptr %501, align 4, !tbaa !9
  %503 = call ptr @s2n_strerror(i32 noundef %502, ptr noundef @.str.6)
  %504 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %505 = load i32, ptr %504, align 4, !tbaa !9
  %506 = call ptr @s2n_strerror_debug(i32 noundef %505, ptr noundef @.str.6)
  %507 = call ptr @__errno_location() #11
  %508 = load i32, ptr %507, align 4, !tbaa !9
  %509 = call ptr @strerror(i32 noundef %508) #10
  %510 = call ptr @__errno_location() #11
  %511 = load i32, ptr %510, align 4, !tbaa !9
  %512 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %499, ptr noundef @.str.3, i32 noundef %500, ptr noundef @.str.26, ptr noundef @.str.5, i32 noundef 112, ptr noundef %503, ptr noundef %506, ptr noundef %509, i32 noundef %511) #10
  br label %530

513:                                              ; preds = %491, %484
  %514 = load i32, ptr %18, align 4, !tbaa !9
  %515 = call ptr @__errno_location() #11
  store i32 %514, ptr %515, align 4, !tbaa !9
  %516 = load ptr, ptr @stderr, align 8, !tbaa !5
  %517 = load i32, ptr @test_count, align 4, !tbaa !9
  %518 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %519 = load i32, ptr %518, align 4, !tbaa !9
  %520 = call ptr @s2n_strerror(i32 noundef %519, ptr noundef @.str.6)
  %521 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %522 = load i32, ptr %521, align 4, !tbaa !9
  %523 = call ptr @s2n_strerror_debug(i32 noundef %522, ptr noundef @.str.6)
  %524 = call ptr @__errno_location() #11
  %525 = load i32, ptr %524, align 4, !tbaa !9
  %526 = call ptr @strerror(i32 noundef %525) #10
  %527 = call ptr @__errno_location() #11
  %528 = load i32, ptr %527, align 4, !tbaa !9
  %529 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %516, ptr noundef @.str.7, i32 noundef %517, ptr noundef @.str.26, ptr noundef @.str.5, i32 noundef 112, ptr noundef %520, ptr noundef %523, ptr noundef %526, i32 noundef %528) #10
  br label %530

530:                                              ; preds = %513, %496
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #10
  br label %531

531:                                              ; preds = %530
  br label %532

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

533:                                              ; No predecessors!
  br label %534

534:                                              ; preds = %533
  br label %535

535:                                              ; preds = %534, %475
  br label %536

536:                                              ; preds = %535
  br label %537

537:                                              ; preds = %536
  call void @llvm.lifetime.start.p0(i64 40, ptr %19) #10
  call void @llvm.memset.p0.i64(ptr align 8 %19, i8 0, i64 40, i1 false)
  call void @llvm.lifetime.start.p0(i64 40, ptr %20) #10
  call void @llvm.memset.p0.i64(ptr align 8 %20, i8 0, i64 40, i1 false)
  br label %538

538:                                              ; preds = %537
  %539 = load i32, ptr @test_count, align 4, !tbaa !9
  %540 = add nsw i32 %539, 1
  store i32 %540, ptr @test_count, align 4, !tbaa !9
  %541 = call i32 @s2n_stuffer_alloc(ptr noundef %19, i32 noundef 12000)
  %542 = icmp eq i32 %541, -1
  br i1 %542, label %543, label %596

543:                                              ; preds = %538
  br label %544

544:                                              ; preds = %543
  br label %545

545:                                              ; preds = %544
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #10
  %546 = call ptr @__errno_location() #11
  %547 = load i32, ptr %546, align 4, !tbaa !9
  store i32 %547, ptr %21, align 4, !tbaa !9
  %548 = load ptr, ptr @stderr, align 8, !tbaa !5
  %549 = call i32 @s2n_print_stacktrace(ptr noundef %548)
  %550 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %551 = trunc i8 %550 to i1
  br i1 %551, label %552, label %574

552:                                              ; preds = %545
  %553 = load ptr, ptr @stderr, align 8, !tbaa !5
  %554 = call i32 @fileno(ptr noundef %553) #10
  %555 = call i32 @isatty(i32 noundef %554) #10
  %556 = icmp ne i32 %555, 0
  br i1 %556, label %557, label %574

557:                                              ; preds = %552
  %558 = load i32, ptr %21, align 4, !tbaa !9
  %559 = call ptr @__errno_location() #11
  store i32 %558, ptr %559, align 4, !tbaa !9
  %560 = load ptr, ptr @stderr, align 8, !tbaa !5
  %561 = load i32, ptr @test_count, align 4, !tbaa !9
  %562 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %563 = load i32, ptr %562, align 4, !tbaa !9
  %564 = call ptr @s2n_strerror(i32 noundef %563, ptr noundef @.str.6)
  %565 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %566 = load i32, ptr %565, align 4, !tbaa !9
  %567 = call ptr @s2n_strerror_debug(i32 noundef %566, ptr noundef @.str.6)
  %568 = call ptr @__errno_location() #11
  %569 = load i32, ptr %568, align 4, !tbaa !9
  %570 = call ptr @strerror(i32 noundef %569) #10
  %571 = call ptr @__errno_location() #11
  %572 = load i32, ptr %571, align 4, !tbaa !9
  %573 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %560, ptr noundef @.str.3, i32 noundef %561, ptr noundef @.str.27, ptr noundef @.str.5, i32 noundef 117, ptr noundef %564, ptr noundef %567, ptr noundef %570, i32 noundef %572) #10
  br label %591

574:                                              ; preds = %552, %545
  %575 = load i32, ptr %21, align 4, !tbaa !9
  %576 = call ptr @__errno_location() #11
  store i32 %575, ptr %576, align 4, !tbaa !9
  %577 = load ptr, ptr @stderr, align 8, !tbaa !5
  %578 = load i32, ptr @test_count, align 4, !tbaa !9
  %579 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %580 = load i32, ptr %579, align 4, !tbaa !9
  %581 = call ptr @s2n_strerror(i32 noundef %580, ptr noundef @.str.6)
  %582 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %583 = load i32, ptr %582, align 4, !tbaa !9
  %584 = call ptr @s2n_strerror_debug(i32 noundef %583, ptr noundef @.str.6)
  %585 = call ptr @__errno_location() #11
  %586 = load i32, ptr %585, align 4, !tbaa !9
  %587 = call ptr @strerror(i32 noundef %586) #10
  %588 = call ptr @__errno_location() #11
  %589 = load i32, ptr %588, align 4, !tbaa !9
  %590 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %577, ptr noundef @.str.7, i32 noundef %578, ptr noundef @.str.27, ptr noundef @.str.5, i32 noundef 117, ptr noundef %581, ptr noundef %584, ptr noundef %587, i32 noundef %589) #10
  br label %591

591:                                              ; preds = %574, %557
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #10
  br label %592

592:                                              ; preds = %591
  br label %593

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

594:                                              ; No predecessors!
  br label %595

595:                                              ; preds = %594
  br label %596

596:                                              ; preds = %595, %538
  br label %597

597:                                              ; preds = %596
  br label %598

598:                                              ; preds = %597
  br label %599

599:                                              ; preds = %598
  %600 = load i32, ptr @test_count, align 4, !tbaa !9
  %601 = add nsw i32 %600, 1
  store i32 %601, ptr @test_count, align 4, !tbaa !9
  %602 = call i32 @s2n_stuffer_alloc(ptr noundef %20, i32 noundef 12000)
  %603 = icmp eq i32 %602, -1
  br i1 %603, label %604, label %657

604:                                              ; preds = %599
  br label %605

605:                                              ; preds = %604
  br label %606

606:                                              ; preds = %605
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #10
  %607 = call ptr @__errno_location() #11
  %608 = load i32, ptr %607, align 4, !tbaa !9
  store i32 %608, ptr %22, align 4, !tbaa !9
  %609 = load ptr, ptr @stderr, align 8, !tbaa !5
  %610 = call i32 @s2n_print_stacktrace(ptr noundef %609)
  %611 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %612 = trunc i8 %611 to i1
  br i1 %612, label %613, label %635

613:                                              ; preds = %606
  %614 = load ptr, ptr @stderr, align 8, !tbaa !5
  %615 = call i32 @fileno(ptr noundef %614) #10
  %616 = call i32 @isatty(i32 noundef %615) #10
  %617 = icmp ne i32 %616, 0
  br i1 %617, label %618, label %635

618:                                              ; preds = %613
  %619 = load i32, ptr %22, align 4, !tbaa !9
  %620 = call ptr @__errno_location() #11
  store i32 %619, ptr %620, align 4, !tbaa !9
  %621 = load ptr, ptr @stderr, align 8, !tbaa !5
  %622 = load i32, ptr @test_count, align 4, !tbaa !9
  %623 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %624 = load i32, ptr %623, align 4, !tbaa !9
  %625 = call ptr @s2n_strerror(i32 noundef %624, ptr noundef @.str.6)
  %626 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %627 = load i32, ptr %626, align 4, !tbaa !9
  %628 = call ptr @s2n_strerror_debug(i32 noundef %627, ptr noundef @.str.6)
  %629 = call ptr @__errno_location() #11
  %630 = load i32, ptr %629, align 4, !tbaa !9
  %631 = call ptr @strerror(i32 noundef %630) #10
  %632 = call ptr @__errno_location() #11
  %633 = load i32, ptr %632, align 4, !tbaa !9
  %634 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %621, ptr noundef @.str.3, i32 noundef %622, ptr noundef @.str.28, ptr noundef @.str.5, i32 noundef 118, ptr noundef %625, ptr noundef %628, ptr noundef %631, i32 noundef %633) #10
  br label %652

635:                                              ; preds = %613, %606
  %636 = load i32, ptr %22, align 4, !tbaa !9
  %637 = call ptr @__errno_location() #11
  store i32 %636, ptr %637, align 4, !tbaa !9
  %638 = load ptr, ptr @stderr, align 8, !tbaa !5
  %639 = load i32, ptr @test_count, align 4, !tbaa !9
  %640 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %641 = load i32, ptr %640, align 4, !tbaa !9
  %642 = call ptr @s2n_strerror(i32 noundef %641, ptr noundef @.str.6)
  %643 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %644 = load i32, ptr %643, align 4, !tbaa !9
  %645 = call ptr @s2n_strerror_debug(i32 noundef %644, ptr noundef @.str.6)
  %646 = call ptr @__errno_location() #11
  %647 = load i32, ptr %646, align 4, !tbaa !9
  %648 = call ptr @strerror(i32 noundef %647) #10
  %649 = call ptr @__errno_location() #11
  %650 = load i32, ptr %649, align 4, !tbaa !9
  %651 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %638, ptr noundef @.str.7, i32 noundef %639, ptr noundef @.str.28, ptr noundef @.str.5, i32 noundef 118, ptr noundef %642, ptr noundef %645, ptr noundef %648, i32 noundef %650) #10
  br label %652

652:                                              ; preds = %635, %618
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #10
  br label %653

653:                                              ; preds = %652
  br label %654

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

655:                                              ; No predecessors!
  br label %656

656:                                              ; preds = %655
  br label %657

657:                                              ; preds = %656, %599
  br label %658

658:                                              ; preds = %657
  br label %659

659:                                              ; preds = %658
  br label %660

660:                                              ; preds = %659
  %661 = load i32, ptr @test_count, align 4, !tbaa !9
  %662 = add nsw i32 %661, 1
  store i32 %662, ptr @test_count, align 4, !tbaa !9
  %663 = getelementptr inbounds [12000 x i8], ptr %8, i64 0, i64 0
  %664 = call i32 @s2n_stuffer_write_bytes(ptr noundef %19, ptr noundef %663, i32 noundef 12000)
  %665 = icmp eq i32 %664, -1
  br i1 %665, label %666, label %719

666:                                              ; preds = %660
  br label %667

667:                                              ; preds = %666
  br label %668

668:                                              ; preds = %667
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #10
  %669 = call ptr @__errno_location() #11
  %670 = load i32, ptr %669, align 4, !tbaa !9
  store i32 %670, ptr %23, align 4, !tbaa !9
  %671 = load ptr, ptr @stderr, align 8, !tbaa !5
  %672 = call i32 @s2n_print_stacktrace(ptr noundef %671)
  %673 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %674 = trunc i8 %673 to i1
  br i1 %674, label %675, label %697

675:                                              ; preds = %668
  %676 = load ptr, ptr @stderr, align 8, !tbaa !5
  %677 = call i32 @fileno(ptr noundef %676) #10
  %678 = call i32 @isatty(i32 noundef %677) #10
  %679 = icmp ne i32 %678, 0
  br i1 %679, label %680, label %697

680:                                              ; preds = %675
  %681 = load i32, ptr %23, align 4, !tbaa !9
  %682 = call ptr @__errno_location() #11
  store i32 %681, ptr %682, align 4, !tbaa !9
  %683 = load ptr, ptr @stderr, align 8, !tbaa !5
  %684 = load i32, ptr @test_count, align 4, !tbaa !9
  %685 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %686 = load i32, ptr %685, align 4, !tbaa !9
  %687 = call ptr @s2n_strerror(i32 noundef %686, ptr noundef @.str.6)
  %688 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %689 = load i32, ptr %688, align 4, !tbaa !9
  %690 = call ptr @s2n_strerror_debug(i32 noundef %689, ptr noundef @.str.6)
  %691 = call ptr @__errno_location() #11
  %692 = load i32, ptr %691, align 4, !tbaa !9
  %693 = call ptr @strerror(i32 noundef %692) #10
  %694 = call ptr @__errno_location() #11
  %695 = load i32, ptr %694, align 4, !tbaa !9
  %696 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %683, ptr noundef @.str.3, i32 noundef %684, ptr noundef @.str.29, ptr noundef @.str.5, i32 noundef 119, ptr noundef %687, ptr noundef %690, ptr noundef %693, i32 noundef %695) #10
  br label %714

697:                                              ; preds = %675, %668
  %698 = load i32, ptr %23, align 4, !tbaa !9
  %699 = call ptr @__errno_location() #11
  store i32 %698, ptr %699, align 4, !tbaa !9
  %700 = load ptr, ptr @stderr, align 8, !tbaa !5
  %701 = load i32, ptr @test_count, align 4, !tbaa !9
  %702 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %703 = load i32, ptr %702, align 4, !tbaa !9
  %704 = call ptr @s2n_strerror(i32 noundef %703, ptr noundef @.str.6)
  %705 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %706 = load i32, ptr %705, align 4, !tbaa !9
  %707 = call ptr @s2n_strerror_debug(i32 noundef %706, ptr noundef @.str.6)
  %708 = call ptr @__errno_location() #11
  %709 = load i32, ptr %708, align 4, !tbaa !9
  %710 = call ptr @strerror(i32 noundef %709) #10
  %711 = call ptr @__errno_location() #11
  %712 = load i32, ptr %711, align 4, !tbaa !9
  %713 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %700, ptr noundef @.str.7, i32 noundef %701, ptr noundef @.str.29, ptr noundef @.str.5, i32 noundef 119, ptr noundef %704, ptr noundef %707, ptr noundef %710, i32 noundef %712) #10
  br label %714

714:                                              ; preds = %697, %680
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #10
  br label %715

715:                                              ; preds = %714
  br label %716

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

717:                                              ; No predecessors!
  br label %718

718:                                              ; preds = %717
  br label %719

719:                                              ; preds = %718, %660
  br label %720

720:                                              ; preds = %719
  br label %721

721:                                              ; preds = %720
  br label %722

722:                                              ; preds = %721
  %723 = load i32, ptr @test_count, align 4, !tbaa !9
  %724 = add nsw i32 %723, 1
  store i32 %724, ptr @test_count, align 4, !tbaa !9
  %725 = call i32 @s2n_stuffer_certificate_from_pem(ptr noundef %19, ptr noundef %20)
  %726 = icmp eq i32 %725, -1
  br i1 %726, label %727, label %780

727:                                              ; preds = %722
  br label %728

728:                                              ; preds = %727
  br label %729

729:                                              ; preds = %728
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #10
  %730 = call ptr @__errno_location() #11
  %731 = load i32, ptr %730, align 4, !tbaa !9
  store i32 %731, ptr %24, align 4, !tbaa !9
  %732 = load ptr, ptr @stderr, align 8, !tbaa !5
  %733 = call i32 @s2n_print_stacktrace(ptr noundef %732)
  %734 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %735 = trunc i8 %734 to i1
  br i1 %735, label %736, label %758

736:                                              ; preds = %729
  %737 = load ptr, ptr @stderr, align 8, !tbaa !5
  %738 = call i32 @fileno(ptr noundef %737) #10
  %739 = call i32 @isatty(i32 noundef %738) #10
  %740 = icmp ne i32 %739, 0
  br i1 %740, label %741, label %758

741:                                              ; preds = %736
  %742 = load i32, ptr %24, align 4, !tbaa !9
  %743 = call ptr @__errno_location() #11
  store i32 %742, ptr %743, align 4, !tbaa !9
  %744 = load ptr, ptr @stderr, align 8, !tbaa !5
  %745 = load i32, ptr @test_count, align 4, !tbaa !9
  %746 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %747 = load i32, ptr %746, align 4, !tbaa !9
  %748 = call ptr @s2n_strerror(i32 noundef %747, ptr noundef @.str.6)
  %749 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %750 = load i32, ptr %749, align 4, !tbaa !9
  %751 = call ptr @s2n_strerror_debug(i32 noundef %750, ptr noundef @.str.6)
  %752 = call ptr @__errno_location() #11
  %753 = load i32, ptr %752, align 4, !tbaa !9
  %754 = call ptr @strerror(i32 noundef %753) #10
  %755 = call ptr @__errno_location() #11
  %756 = load i32, ptr %755, align 4, !tbaa !9
  %757 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %744, ptr noundef @.str.3, i32 noundef %745, ptr noundef @.str.30, ptr noundef @.str.5, i32 noundef 120, ptr noundef %748, ptr noundef %751, ptr noundef %754, i32 noundef %756) #10
  br label %775

758:                                              ; preds = %736, %729
  %759 = load i32, ptr %24, align 4, !tbaa !9
  %760 = call ptr @__errno_location() #11
  store i32 %759, ptr %760, align 4, !tbaa !9
  %761 = load ptr, ptr @stderr, align 8, !tbaa !5
  %762 = load i32, ptr @test_count, align 4, !tbaa !9
  %763 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %764 = load i32, ptr %763, align 4, !tbaa !9
  %765 = call ptr @s2n_strerror(i32 noundef %764, ptr noundef @.str.6)
  %766 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %767 = load i32, ptr %766, align 4, !tbaa !9
  %768 = call ptr @s2n_strerror_debug(i32 noundef %767, ptr noundef @.str.6)
  %769 = call ptr @__errno_location() #11
  %770 = load i32, ptr %769, align 4, !tbaa !9
  %771 = call ptr @strerror(i32 noundef %770) #10
  %772 = call ptr @__errno_location() #11
  %773 = load i32, ptr %772, align 4, !tbaa !9
  %774 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %761, ptr noundef @.str.7, i32 noundef %762, ptr noundef @.str.30, ptr noundef @.str.5, i32 noundef 120, ptr noundef %765, ptr noundef %768, ptr noundef %771, i32 noundef %773) #10
  br label %775

775:                                              ; preds = %758, %741
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #10
  br label %776

776:                                              ; preds = %775
  br label %777

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

778:                                              ; No predecessors!
  br label %779

779:                                              ; preds = %778
  br label %780

780:                                              ; preds = %779, %722
  br label %781

781:                                              ; preds = %780
  br label %782

782:                                              ; preds = %781
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #10
  %783 = getelementptr inbounds %struct.s2n_stuffer, ptr %20, i32 0, i32 2
  %784 = load i32, ptr %783, align 4, !tbaa !23
  %785 = getelementptr inbounds %struct.s2n_stuffer, ptr %20, i32 0, i32 1
  %786 = load i32, ptr %785, align 8, !tbaa !26
  %787 = sub i32 %784, %786
  store i32 %787, ptr %25, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 24, ptr %26) #10
  call void @llvm.memset.p0.i64(ptr align 8 %26, i8 0, i64 24, i1 false)
  br label %788

788:                                              ; preds = %782
  %789 = load i32, ptr @test_count, align 4, !tbaa !9
  %790 = add nsw i32 %789, 1
  store i32 %790, ptr @test_count, align 4, !tbaa !9
  %791 = load i32, ptr %25, align 4, !tbaa !9
  %792 = call ptr @s2n_stuffer_raw_read(ptr noundef %20, i32 noundef %791)
  %793 = load i32, ptr %25, align 4, !tbaa !9
  %794 = call i32 @s2n_blob_init(ptr noundef %26, ptr noundef %792, i32 noundef %793)
  %795 = icmp eq i32 %794, -1
  br i1 %795, label %796, label %849

796:                                              ; preds = %788
  br label %797

797:                                              ; preds = %796
  br label %798

798:                                              ; preds = %797
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #10
  %799 = call ptr @__errno_location() #11
  %800 = load i32, ptr %799, align 4, !tbaa !9
  store i32 %800, ptr %27, align 4, !tbaa !9
  %801 = load ptr, ptr @stderr, align 8, !tbaa !5
  %802 = call i32 @s2n_print_stacktrace(ptr noundef %801)
  %803 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %804 = trunc i8 %803 to i1
  br i1 %804, label %805, label %827

805:                                              ; preds = %798
  %806 = load ptr, ptr @stderr, align 8, !tbaa !5
  %807 = call i32 @fileno(ptr noundef %806) #10
  %808 = call i32 @isatty(i32 noundef %807) #10
  %809 = icmp ne i32 %808, 0
  br i1 %809, label %810, label %827

810:                                              ; preds = %805
  %811 = load i32, ptr %27, align 4, !tbaa !9
  %812 = call ptr @__errno_location() #11
  store i32 %811, ptr %812, align 4, !tbaa !9
  %813 = load ptr, ptr @stderr, align 8, !tbaa !5
  %814 = load i32, ptr @test_count, align 4, !tbaa !9
  %815 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %816 = load i32, ptr %815, align 4, !tbaa !9
  %817 = call ptr @s2n_strerror(i32 noundef %816, ptr noundef @.str.6)
  %818 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %819 = load i32, ptr %818, align 4, !tbaa !9
  %820 = call ptr @s2n_strerror_debug(i32 noundef %819, ptr noundef @.str.6)
  %821 = call ptr @__errno_location() #11
  %822 = load i32, ptr %821, align 4, !tbaa !9
  %823 = call ptr @strerror(i32 noundef %822) #10
  %824 = call ptr @__errno_location() #11
  %825 = load i32, ptr %824, align 4, !tbaa !9
  %826 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %813, ptr noundef @.str.3, i32 noundef %814, ptr noundef @.str.31, ptr noundef @.str.5, i32 noundef 124, ptr noundef %817, ptr noundef %820, ptr noundef %823, i32 noundef %825) #10
  br label %844

827:                                              ; preds = %805, %798
  %828 = load i32, ptr %27, align 4, !tbaa !9
  %829 = call ptr @__errno_location() #11
  store i32 %828, ptr %829, align 4, !tbaa !9
  %830 = load ptr, ptr @stderr, align 8, !tbaa !5
  %831 = load i32, ptr @test_count, align 4, !tbaa !9
  %832 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %833 = load i32, ptr %832, align 4, !tbaa !9
  %834 = call ptr @s2n_strerror(i32 noundef %833, ptr noundef @.str.6)
  %835 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %836 = load i32, ptr %835, align 4, !tbaa !9
  %837 = call ptr @s2n_strerror_debug(i32 noundef %836, ptr noundef @.str.6)
  %838 = call ptr @__errno_location() #11
  %839 = load i32, ptr %838, align 4, !tbaa !9
  %840 = call ptr @strerror(i32 noundef %839) #10
  %841 = call ptr @__errno_location() #11
  %842 = load i32, ptr %841, align 4, !tbaa !9
  %843 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %830, ptr noundef @.str.7, i32 noundef %831, ptr noundef @.str.31, ptr noundef @.str.5, i32 noundef 124, ptr noundef %834, ptr noundef %837, ptr noundef %840, i32 noundef %842) #10
  br label %844

844:                                              ; preds = %827, %810
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #10
  br label %845

845:                                              ; preds = %844
  br label %846

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

847:                                              ; No predecessors!
  br label %848

848:                                              ; preds = %847
  br label %849

849:                                              ; preds = %848, %788
  br label %850

850:                                              ; preds = %849
  br label %851

851:                                              ; preds = %850
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #10
  %852 = load i32, ptr %4, align 4, !tbaa !9
  %853 = add i32 %852, 1
  %854 = urem i32 %853, 2
  %855 = call ptr @s2n_connection_new(i32 noundef %854)
  store ptr %855, ptr %28, align 8, !tbaa !5
  br label %856

856:                                              ; preds = %851
  %857 = load i32, ptr @test_count, align 4, !tbaa !9
  %858 = add nsw i32 %857, 1
  store i32 %858, ptr @test_count, align 4, !tbaa !9
  %859 = load ptr, ptr %28, align 8, !tbaa !5
  %860 = icmp eq ptr %859, null
  br i1 %860, label %861, label %914

861:                                              ; preds = %856
  br label %862

862:                                              ; preds = %861
  br label %863

863:                                              ; preds = %862
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #10
  %864 = call ptr @__errno_location() #11
  %865 = load i32, ptr %864, align 4, !tbaa !9
  store i32 %865, ptr %29, align 4, !tbaa !9
  %866 = load ptr, ptr @stderr, align 8, !tbaa !5
  %867 = call i32 @s2n_print_stacktrace(ptr noundef %866)
  %868 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %869 = trunc i8 %868 to i1
  br i1 %869, label %870, label %892

870:                                              ; preds = %863
  %871 = load ptr, ptr @stderr, align 8, !tbaa !5
  %872 = call i32 @fileno(ptr noundef %871) #10
  %873 = call i32 @isatty(i32 noundef %872) #10
  %874 = icmp ne i32 %873, 0
  br i1 %874, label %875, label %892

875:                                              ; preds = %870
  %876 = load i32, ptr %29, align 4, !tbaa !9
  %877 = call ptr @__errno_location() #11
  store i32 %876, ptr %877, align 4, !tbaa !9
  %878 = load ptr, ptr @stderr, align 8, !tbaa !5
  %879 = load i32, ptr @test_count, align 4, !tbaa !9
  %880 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %881 = load i32, ptr %880, align 4, !tbaa !9
  %882 = call ptr @s2n_strerror(i32 noundef %881, ptr noundef @.str.6)
  %883 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %884 = load i32, ptr %883, align 4, !tbaa !9
  %885 = call ptr @s2n_strerror_debug(i32 noundef %884, ptr noundef @.str.6)
  %886 = call ptr @__errno_location() #11
  %887 = load i32, ptr %886, align 4, !tbaa !9
  %888 = call ptr @strerror(i32 noundef %887) #10
  %889 = call ptr @__errno_location() #11
  %890 = load i32, ptr %889, align 4, !tbaa !9
  %891 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %878, ptr noundef @.str.3, i32 noundef %879, ptr noundef @.str.32, ptr noundef @.str.5, i32 noundef 130, ptr noundef %882, ptr noundef %885, ptr noundef %888, i32 noundef %890) #10
  br label %909

892:                                              ; preds = %870, %863
  %893 = load i32, ptr %29, align 4, !tbaa !9
  %894 = call ptr @__errno_location() #11
  store i32 %893, ptr %894, align 4, !tbaa !9
  %895 = load ptr, ptr @stderr, align 8, !tbaa !5
  %896 = load i32, ptr @test_count, align 4, !tbaa !9
  %897 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %898 = load i32, ptr %897, align 4, !tbaa !9
  %899 = call ptr @s2n_strerror(i32 noundef %898, ptr noundef @.str.6)
  %900 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %901 = load i32, ptr %900, align 4, !tbaa !9
  %902 = call ptr @s2n_strerror_debug(i32 noundef %901, ptr noundef @.str.6)
  %903 = call ptr @__errno_location() #11
  %904 = load i32, ptr %903, align 4, !tbaa !9
  %905 = call ptr @strerror(i32 noundef %904) #10
  %906 = call ptr @__errno_location() #11
  %907 = load i32, ptr %906, align 4, !tbaa !9
  %908 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %895, ptr noundef @.str.7, i32 noundef %896, ptr noundef @.str.32, ptr noundef @.str.5, i32 noundef 130, ptr noundef %899, ptr noundef %902, ptr noundef %905, i32 noundef %907) #10
  br label %909

909:                                              ; preds = %892, %875
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #10
  br label %910

910:                                              ; preds = %909
  br label %911

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

912:                                              ; No predecessors!
  br label %913

913:                                              ; preds = %912
  br label %914

914:                                              ; preds = %913, %856
  br label %915

915:                                              ; preds = %914
  br label %916

916:                                              ; preds = %915
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #10
  %917 = load i32, ptr %4, align 4, !tbaa !9
  %918 = call ptr @s2n_connection_new(i32 noundef %917)
  store ptr %918, ptr %30, align 8, !tbaa !5
  br label %919

919:                                              ; preds = %916
  %920 = load i32, ptr @test_count, align 4, !tbaa !9
  %921 = add nsw i32 %920, 1
  store i32 %921, ptr @test_count, align 4, !tbaa !9
  %922 = load ptr, ptr %30, align 8, !tbaa !5
  %923 = icmp eq ptr %922, null
  br i1 %923, label %924, label %977

924:                                              ; preds = %919
  br label %925

925:                                              ; preds = %924
  br label %926

926:                                              ; preds = %925
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #10
  %927 = call ptr @__errno_location() #11
  %928 = load i32, ptr %927, align 4, !tbaa !9
  store i32 %928, ptr %31, align 4, !tbaa !9
  %929 = load ptr, ptr @stderr, align 8, !tbaa !5
  %930 = call i32 @s2n_print_stacktrace(ptr noundef %929)
  %931 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %932 = trunc i8 %931 to i1
  br i1 %932, label %933, label %955

933:                                              ; preds = %926
  %934 = load ptr, ptr @stderr, align 8, !tbaa !5
  %935 = call i32 @fileno(ptr noundef %934) #10
  %936 = call i32 @isatty(i32 noundef %935) #10
  %937 = icmp ne i32 %936, 0
  br i1 %937, label %938, label %955

938:                                              ; preds = %933
  %939 = load i32, ptr %31, align 4, !tbaa !9
  %940 = call ptr @__errno_location() #11
  store i32 %939, ptr %940, align 4, !tbaa !9
  %941 = load ptr, ptr @stderr, align 8, !tbaa !5
  %942 = load i32, ptr @test_count, align 4, !tbaa !9
  %943 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %944 = load i32, ptr %943, align 4, !tbaa !9
  %945 = call ptr @s2n_strerror(i32 noundef %944, ptr noundef @.str.6)
  %946 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %947 = load i32, ptr %946, align 4, !tbaa !9
  %948 = call ptr @s2n_strerror_debug(i32 noundef %947, ptr noundef @.str.6)
  %949 = call ptr @__errno_location() #11
  %950 = load i32, ptr %949, align 4, !tbaa !9
  %951 = call ptr @strerror(i32 noundef %950) #10
  %952 = call ptr @__errno_location() #11
  %953 = load i32, ptr %952, align 4, !tbaa !9
  %954 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %941, ptr noundef @.str.3, i32 noundef %942, ptr noundef @.str.33, ptr noundef @.str.5, i32 noundef 134, ptr noundef %945, ptr noundef %948, ptr noundef %951, i32 noundef %953) #10
  br label %972

955:                                              ; preds = %933, %926
  %956 = load i32, ptr %31, align 4, !tbaa !9
  %957 = call ptr @__errno_location() #11
  store i32 %956, ptr %957, align 4, !tbaa !9
  %958 = load ptr, ptr @stderr, align 8, !tbaa !5
  %959 = load i32, ptr @test_count, align 4, !tbaa !9
  %960 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %961 = load i32, ptr %960, align 4, !tbaa !9
  %962 = call ptr @s2n_strerror(i32 noundef %961, ptr noundef @.str.6)
  %963 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %964 = load i32, ptr %963, align 4, !tbaa !9
  %965 = call ptr @s2n_strerror_debug(i32 noundef %964, ptr noundef @.str.6)
  %966 = call ptr @__errno_location() #11
  %967 = load i32, ptr %966, align 4, !tbaa !9
  %968 = call ptr @strerror(i32 noundef %967) #10
  %969 = call ptr @__errno_location() #11
  %970 = load i32, ptr %969, align 4, !tbaa !9
  %971 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %958, ptr noundef @.str.7, i32 noundef %959, ptr noundef @.str.33, ptr noundef @.str.5, i32 noundef 134, ptr noundef %962, ptr noundef %965, ptr noundef %968, i32 noundef %970) #10
  br label %972

972:                                              ; preds = %955, %938
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #10
  br label %973

973:                                              ; preds = %972
  br label %974

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

975:                                              ; No predecessors!
  br label %976

976:                                              ; preds = %975
  br label %977

977:                                              ; preds = %976, %919
  br label %978

978:                                              ; preds = %977
  br label %979

979:                                              ; preds = %978
  br label %980

980:                                              ; preds = %979
  %981 = load i32, ptr @test_count, align 4, !tbaa !9
  %982 = add nsw i32 %981, 1
  store i32 %982, ptr @test_count, align 4, !tbaa !9
  %983 = load ptr, ptr %28, align 8, !tbaa !5
  %984 = load ptr, ptr %30, align 8, !tbaa !5
  %985 = load ptr, ptr %15, align 8, !tbaa !5
  %986 = load ptr, ptr %12, align 8, !tbaa !5
  %987 = call i32 @s2n_cert_verify_connection_setup_and_send(ptr noundef %983, ptr noundef %984, ptr noundef %985, ptr noundef %986, ptr noundef %7, ptr noundef %26)
  %988 = getelementptr inbounds %struct.s2n_result, ptr %32, i32 0, i32 0
  store i32 %987, ptr %988, align 4
  %989 = getelementptr inbounds %struct.s2n_result, ptr %32, i32 0, i32 0
  %990 = load i32, ptr %989, align 4
  %991 = call zeroext i1 @s2n_result_is_ok(i32 %990)
  br i1 %991, label %1045, label %992

992:                                              ; preds = %980
  br label %993

993:                                              ; preds = %992
  br label %994

994:                                              ; preds = %993
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #10
  %995 = call ptr @__errno_location() #11
  %996 = load i32, ptr %995, align 4, !tbaa !9
  store i32 %996, ptr %33, align 4, !tbaa !9
  %997 = load ptr, ptr @stderr, align 8, !tbaa !5
  %998 = call i32 @s2n_print_stacktrace(ptr noundef %997)
  %999 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %1000 = trunc i8 %999 to i1
  br i1 %1000, label %1001, label %1023

1001:                                             ; preds = %994
  %1002 = load ptr, ptr @stderr, align 8, !tbaa !5
  %1003 = call i32 @fileno(ptr noundef %1002) #10
  %1004 = call i32 @isatty(i32 noundef %1003) #10
  %1005 = icmp ne i32 %1004, 0
  br i1 %1005, label %1006, label %1023

1006:                                             ; preds = %1001
  %1007 = load i32, ptr %33, align 4, !tbaa !9
  %1008 = call ptr @__errno_location() #11
  store i32 %1007, ptr %1008, align 4, !tbaa !9
  %1009 = load ptr, ptr @stderr, align 8, !tbaa !5
  %1010 = load i32, ptr @test_count, align 4, !tbaa !9
  %1011 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1012 = load i32, ptr %1011, align 4, !tbaa !9
  %1013 = call ptr @s2n_strerror(i32 noundef %1012, ptr noundef @.str.6)
  %1014 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1015 = load i32, ptr %1014, align 4, !tbaa !9
  %1016 = call ptr @s2n_strerror_debug(i32 noundef %1015, ptr noundef @.str.6)
  %1017 = call ptr @__errno_location() #11
  %1018 = load i32, ptr %1017, align 4, !tbaa !9
  %1019 = call ptr @strerror(i32 noundef %1018) #10
  %1020 = call ptr @__errno_location() #11
  %1021 = load i32, ptr %1020, align 4, !tbaa !9
  %1022 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1009, ptr noundef @.str.3, i32 noundef %1010, ptr noundef @.str.34, ptr noundef @.str.5, i32 noundef 136, ptr noundef %1013, ptr noundef %1016, ptr noundef %1019, i32 noundef %1021) #10
  br label %1040

1023:                                             ; preds = %1001, %994
  %1024 = load i32, ptr %33, align 4, !tbaa !9
  %1025 = call ptr @__errno_location() #11
  store i32 %1024, ptr %1025, align 4, !tbaa !9
  %1026 = load ptr, ptr @stderr, align 8, !tbaa !5
  %1027 = load i32, ptr @test_count, align 4, !tbaa !9
  %1028 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1029 = load i32, ptr %1028, align 4, !tbaa !9
  %1030 = call ptr @s2n_strerror(i32 noundef %1029, ptr noundef @.str.6)
  %1031 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1032 = load i32, ptr %1031, align 4, !tbaa !9
  %1033 = call ptr @s2n_strerror_debug(i32 noundef %1032, ptr noundef @.str.6)
  %1034 = call ptr @__errno_location() #11
  %1035 = load i32, ptr %1034, align 4, !tbaa !9
  %1036 = call ptr @strerror(i32 noundef %1035) #10
  %1037 = call ptr @__errno_location() #11
  %1038 = load i32, ptr %1037, align 4, !tbaa !9
  %1039 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1026, ptr noundef @.str.7, i32 noundef %1027, ptr noundef @.str.34, ptr noundef @.str.5, i32 noundef 136, ptr noundef %1030, ptr noundef %1033, ptr noundef %1036, i32 noundef %1038) #10
  br label %1040

1040:                                             ; preds = %1023, %1006
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #10
  br label %1041

1041:                                             ; preds = %1040
  br label %1042

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

1043:                                             ; No predecessors!
  br label %1044

1044:                                             ; preds = %1043
  br label %1045

1045:                                             ; preds = %1044, %980
  br label %1046

1046:                                             ; preds = %1045
  br label %1047

1047:                                             ; preds = %1046
  br label %1048

1048:                                             ; preds = %1047
  %1049 = load i32, ptr @test_count, align 4, !tbaa !9
  %1050 = add nsw i32 %1049, 1
  store i32 %1050, ptr @test_count, align 4, !tbaa !9
  %1051 = load ptr, ptr %30, align 8, !tbaa !5
  %1052 = call i32 @s2n_tls13_cert_verify_recv(ptr noundef %1051)
  %1053 = icmp eq i32 %1052, -1
  br i1 %1053, label %1054, label %1107

1054:                                             ; preds = %1048
  br label %1055

1055:                                             ; preds = %1054
  br label %1056

1056:                                             ; preds = %1055
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #10
  %1057 = call ptr @__errno_location() #11
  %1058 = load i32, ptr %1057, align 4, !tbaa !9
  store i32 %1058, ptr %34, align 4, !tbaa !9
  %1059 = load ptr, ptr @stderr, align 8, !tbaa !5
  %1060 = call i32 @s2n_print_stacktrace(ptr noundef %1059)
  %1061 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %1062 = trunc i8 %1061 to i1
  br i1 %1062, label %1063, label %1085

1063:                                             ; preds = %1056
  %1064 = load ptr, ptr @stderr, align 8, !tbaa !5
  %1065 = call i32 @fileno(ptr noundef %1064) #10
  %1066 = call i32 @isatty(i32 noundef %1065) #10
  %1067 = icmp ne i32 %1066, 0
  br i1 %1067, label %1068, label %1085

1068:                                             ; preds = %1063
  %1069 = load i32, ptr %34, align 4, !tbaa !9
  %1070 = call ptr @__errno_location() #11
  store i32 %1069, ptr %1070, align 4, !tbaa !9
  %1071 = load ptr, ptr @stderr, align 8, !tbaa !5
  %1072 = load i32, ptr @test_count, align 4, !tbaa !9
  %1073 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1074 = load i32, ptr %1073, align 4, !tbaa !9
  %1075 = call ptr @s2n_strerror(i32 noundef %1074, ptr noundef @.str.6)
  %1076 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1077 = load i32, ptr %1076, align 4, !tbaa !9
  %1078 = call ptr @s2n_strerror_debug(i32 noundef %1077, ptr noundef @.str.6)
  %1079 = call ptr @__errno_location() #11
  %1080 = load i32, ptr %1079, align 4, !tbaa !9
  %1081 = call ptr @strerror(i32 noundef %1080) #10
  %1082 = call ptr @__errno_location() #11
  %1083 = load i32, ptr %1082, align 4, !tbaa !9
  %1084 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1071, ptr noundef @.str.3, i32 noundef %1072, ptr noundef @.str.35, ptr noundef @.str.5, i32 noundef 139, ptr noundef %1075, ptr noundef %1078, ptr noundef %1081, i32 noundef %1083) #10
  br label %1102

1085:                                             ; preds = %1063, %1056
  %1086 = load i32, ptr %34, align 4, !tbaa !9
  %1087 = call ptr @__errno_location() #11
  store i32 %1086, ptr %1087, align 4, !tbaa !9
  %1088 = load ptr, ptr @stderr, align 8, !tbaa !5
  %1089 = load i32, ptr @test_count, align 4, !tbaa !9
  %1090 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1091 = load i32, ptr %1090, align 4, !tbaa !9
  %1092 = call ptr @s2n_strerror(i32 noundef %1091, ptr noundef @.str.6)
  %1093 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1094 = load i32, ptr %1093, align 4, !tbaa !9
  %1095 = call ptr @s2n_strerror_debug(i32 noundef %1094, ptr noundef @.str.6)
  %1096 = call ptr @__errno_location() #11
  %1097 = load i32, ptr %1096, align 4, !tbaa !9
  %1098 = call ptr @strerror(i32 noundef %1097) #10
  %1099 = call ptr @__errno_location() #11
  %1100 = load i32, ptr %1099, align 4, !tbaa !9
  %1101 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1088, ptr noundef @.str.7, i32 noundef %1089, ptr noundef @.str.35, ptr noundef @.str.5, i32 noundef 139, ptr noundef %1092, ptr noundef %1095, ptr noundef %1098, i32 noundef %1100) #10
  br label %1102

1102:                                             ; preds = %1085, %1068
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #10
  br label %1103

1103:                                             ; preds = %1102
  br label %1104

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

1105:                                             ; No predecessors!
  br label %1106

1106:                                             ; preds = %1105
  br label %1107

1107:                                             ; preds = %1106, %1048
  br label %1108

1108:                                             ; preds = %1107
  br label %1109

1109:                                             ; preds = %1108
  br label %1110

1110:                                             ; preds = %1109
  %1111 = load i32, ptr @test_count, align 4, !tbaa !9
  %1112 = add nsw i32 %1111, 1
  store i32 %1112, ptr @test_count, align 4, !tbaa !9
  %1113 = load ptr, ptr %28, align 8, !tbaa !5
  %1114 = call i32 @s2n_tls13_cert_verify_send(ptr noundef %1113)
  %1115 = icmp eq i32 %1114, -1
  br i1 %1115, label %1116, label %1169

1116:                                             ; preds = %1110
  br label %1117

1117:                                             ; preds = %1116
  br label %1118

1118:                                             ; preds = %1117
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #10
  %1119 = call ptr @__errno_location() #11
  %1120 = load i32, ptr %1119, align 4, !tbaa !9
  store i32 %1120, ptr %35, align 4, !tbaa !9
  %1121 = load ptr, ptr @stderr, align 8, !tbaa !5
  %1122 = call i32 @s2n_print_stacktrace(ptr noundef %1121)
  %1123 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %1124 = trunc i8 %1123 to i1
  br i1 %1124, label %1125, label %1147

1125:                                             ; preds = %1118
  %1126 = load ptr, ptr @stderr, align 8, !tbaa !5
  %1127 = call i32 @fileno(ptr noundef %1126) #10
  %1128 = call i32 @isatty(i32 noundef %1127) #10
  %1129 = icmp ne i32 %1128, 0
  br i1 %1129, label %1130, label %1147

1130:                                             ; preds = %1125
  %1131 = load i32, ptr %35, align 4, !tbaa !9
  %1132 = call ptr @__errno_location() #11
  store i32 %1131, ptr %1132, align 4, !tbaa !9
  %1133 = load ptr, ptr @stderr, align 8, !tbaa !5
  %1134 = load i32, ptr @test_count, align 4, !tbaa !9
  %1135 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1136 = load i32, ptr %1135, align 4, !tbaa !9
  %1137 = call ptr @s2n_strerror(i32 noundef %1136, ptr noundef @.str.6)
  %1138 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1139 = load i32, ptr %1138, align 4, !tbaa !9
  %1140 = call ptr @s2n_strerror_debug(i32 noundef %1139, ptr noundef @.str.6)
  %1141 = call ptr @__errno_location() #11
  %1142 = load i32, ptr %1141, align 4, !tbaa !9
  %1143 = call ptr @strerror(i32 noundef %1142) #10
  %1144 = call ptr @__errno_location() #11
  %1145 = load i32, ptr %1144, align 4, !tbaa !9
  %1146 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1133, ptr noundef @.str.3, i32 noundef %1134, ptr noundef @.str.17, ptr noundef @.str.5, i32 noundef 142, ptr noundef %1137, ptr noundef %1140, ptr noundef %1143, i32 noundef %1145) #10
  br label %1164

1147:                                             ; preds = %1125, %1118
  %1148 = load i32, ptr %35, align 4, !tbaa !9
  %1149 = call ptr @__errno_location() #11
  store i32 %1148, ptr %1149, align 4, !tbaa !9
  %1150 = load ptr, ptr @stderr, align 8, !tbaa !5
  %1151 = load i32, ptr @test_count, align 4, !tbaa !9
  %1152 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1153 = load i32, ptr %1152, align 4, !tbaa !9
  %1154 = call ptr @s2n_strerror(i32 noundef %1153, ptr noundef @.str.6)
  %1155 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1156 = load i32, ptr %1155, align 4, !tbaa !9
  %1157 = call ptr @s2n_strerror_debug(i32 noundef %1156, ptr noundef @.str.6)
  %1158 = call ptr @__errno_location() #11
  %1159 = load i32, ptr %1158, align 4, !tbaa !9
  %1160 = call ptr @strerror(i32 noundef %1159) #10
  %1161 = call ptr @__errno_location() #11
  %1162 = load i32, ptr %1161, align 4, !tbaa !9
  %1163 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1150, ptr noundef @.str.7, i32 noundef %1151, ptr noundef @.str.17, ptr noundef @.str.5, i32 noundef 142, ptr noundef %1154, ptr noundef %1157, ptr noundef %1160, i32 noundef %1162) #10
  br label %1164

1164:                                             ; preds = %1147, %1130
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #10
  br label %1165

1165:                                             ; preds = %1164
  br label %1166

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

1167:                                             ; No predecessors!
  br label %1168

1168:                                             ; preds = %1167
  br label %1169

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

1170:                                             ; preds = %1169
  br label %1171

1171:                                             ; preds = %1170
  br label %1172

1172:                                             ; preds = %1171
  %1173 = load i32, ptr @test_count, align 4, !tbaa !9
  %1174 = add nsw i32 %1173, 1
  store i32 %1174, ptr @test_count, align 4, !tbaa !9
  %1175 = load ptr, ptr %28, align 8, !tbaa !5
  %1176 = getelementptr inbounds %struct.s2n_connection, ptr %1175, i32 0, i32 52
  %1177 = getelementptr inbounds %struct.s2n_handshake, ptr %1176, i32 0, i32 0
  %1178 = load ptr, ptr %30, align 8, !tbaa !5
  %1179 = getelementptr inbounds %struct.s2n_connection, ptr %1178, i32 0, i32 52
  %1180 = getelementptr inbounds %struct.s2n_handshake, ptr %1179, i32 0, i32 0
  %1181 = load ptr, ptr %28, align 8, !tbaa !5
  %1182 = getelementptr inbounds %struct.s2n_connection, ptr %1181, i32 0, i32 52
  %1183 = getelementptr inbounds %struct.s2n_handshake, ptr %1182, i32 0, i32 0
  %1184 = getelementptr inbounds %struct.s2n_stuffer, ptr %1183, i32 0, i32 2
  %1185 = load i32, ptr %1184, align 4, !tbaa !27
  %1186 = load ptr, ptr %28, align 8, !tbaa !5
  %1187 = getelementptr inbounds %struct.s2n_connection, ptr %1186, i32 0, i32 52
  %1188 = getelementptr inbounds %struct.s2n_handshake, ptr %1187, i32 0, i32 0
  %1189 = getelementptr inbounds %struct.s2n_stuffer, ptr %1188, i32 0, i32 1
  %1190 = load i32, ptr %1189, align 8, !tbaa !51
  %1191 = sub i32 %1185, %1190
  %1192 = call i32 @s2n_stuffer_copy(ptr noundef %1177, ptr noundef %1180, i32 noundef %1191)
  %1193 = icmp eq i32 %1192, -1
  br i1 %1193, label %1194, label %1247

1194:                                             ; preds = %1172
  br label %1195

1195:                                             ; preds = %1194
  br label %1196

1196:                                             ; preds = %1195
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #10
  %1197 = call ptr @__errno_location() #11
  %1198 = load i32, ptr %1197, align 4, !tbaa !9
  store i32 %1198, ptr %36, align 4, !tbaa !9
  %1199 = load ptr, ptr @stderr, align 8, !tbaa !5
  %1200 = call i32 @s2n_print_stacktrace(ptr noundef %1199)
  %1201 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %1202 = trunc i8 %1201 to i1
  br i1 %1202, label %1203, label %1225

1203:                                             ; preds = %1196
  %1204 = load ptr, ptr @stderr, align 8, !tbaa !5
  %1205 = call i32 @fileno(ptr noundef %1204) #10
  %1206 = call i32 @isatty(i32 noundef %1205) #10
  %1207 = icmp ne i32 %1206, 0
  br i1 %1207, label %1208, label %1225

1208:                                             ; preds = %1203
  %1209 = load i32, ptr %36, align 4, !tbaa !9
  %1210 = call ptr @__errno_location() #11
  store i32 %1209, ptr %1210, align 4, !tbaa !9
  %1211 = load ptr, ptr @stderr, align 8, !tbaa !5
  %1212 = load i32, ptr @test_count, align 4, !tbaa !9
  %1213 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1214 = load i32, ptr %1213, align 4, !tbaa !9
  %1215 = call ptr @s2n_strerror(i32 noundef %1214, ptr noundef @.str.6)
  %1216 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1217 = load i32, ptr %1216, align 4, !tbaa !9
  %1218 = call ptr @s2n_strerror_debug(i32 noundef %1217, ptr noundef @.str.6)
  %1219 = call ptr @__errno_location() #11
  %1220 = load i32, ptr %1219, align 4, !tbaa !9
  %1221 = call ptr @strerror(i32 noundef %1220) #10
  %1222 = call ptr @__errno_location() #11
  %1223 = load i32, ptr %1222, align 4, !tbaa !9
  %1224 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1211, ptr noundef @.str.3, i32 noundef %1212, ptr noundef @.str.18, ptr noundef @.str.5, i32 noundef 144, ptr noundef %1215, ptr noundef %1218, ptr noundef %1221, i32 noundef %1223) #10
  br label %1242

1225:                                             ; preds = %1203, %1196
  %1226 = load i32, ptr %36, align 4, !tbaa !9
  %1227 = call ptr @__errno_location() #11
  store i32 %1226, ptr %1227, align 4, !tbaa !9
  %1228 = load ptr, ptr @stderr, align 8, !tbaa !5
  %1229 = load i32, ptr @test_count, align 4, !tbaa !9
  %1230 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1231 = load i32, ptr %1230, align 4, !tbaa !9
  %1232 = call ptr @s2n_strerror(i32 noundef %1231, ptr noundef @.str.6)
  %1233 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1234 = load i32, ptr %1233, align 4, !tbaa !9
  %1235 = call ptr @s2n_strerror_debug(i32 noundef %1234, ptr noundef @.str.6)
  %1236 = call ptr @__errno_location() #11
  %1237 = load i32, ptr %1236, align 4, !tbaa !9
  %1238 = call ptr @strerror(i32 noundef %1237) #10
  %1239 = call ptr @__errno_location() #11
  %1240 = load i32, ptr %1239, align 4, !tbaa !9
  %1241 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1228, ptr noundef @.str.7, i32 noundef %1229, ptr noundef @.str.18, ptr noundef @.str.5, i32 noundef 144, ptr noundef %1232, ptr noundef %1235, ptr noundef %1238, i32 noundef %1240) #10
  br label %1242

1242:                                             ; preds = %1225, %1208
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #10
  br label %1243

1243:                                             ; preds = %1242
  br label %1244

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

1245:                                             ; No predecessors!
  br label %1246

1246:                                             ; preds = %1245
  br label %1247

1247:                                             ; preds = %1246, %1172
  br label %1248

1248:                                             ; preds = %1247
  br label %1249

1249:                                             ; preds = %1248
  br label %1250

1250:                                             ; preds = %1249
  %1251 = load i32, ptr @test_count, align 4, !tbaa !9
  %1252 = add nsw i32 %1251, 1
  store i32 %1252, ptr @test_count, align 4, !tbaa !9
  %1253 = load ptr, ptr %30, align 8, !tbaa !5
  %1254 = call i32 @s2n_tls13_cert_verify_recv(ptr noundef %1253)
  %1255 = icmp eq i32 %1254, -1
  br i1 %1255, label %1256, label %1309

1256:                                             ; preds = %1250
  br label %1257

1257:                                             ; preds = %1256
  br label %1258

1258:                                             ; preds = %1257
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #10
  %1259 = call ptr @__errno_location() #11
  %1260 = load i32, ptr %1259, align 4, !tbaa !9
  store i32 %1260, ptr %37, align 4, !tbaa !9
  %1261 = load ptr, ptr @stderr, align 8, !tbaa !5
  %1262 = call i32 @s2n_print_stacktrace(ptr noundef %1261)
  %1263 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %1264 = trunc i8 %1263 to i1
  br i1 %1264, label %1265, label %1287

1265:                                             ; preds = %1258
  %1266 = load ptr, ptr @stderr, align 8, !tbaa !5
  %1267 = call i32 @fileno(ptr noundef %1266) #10
  %1268 = call i32 @isatty(i32 noundef %1267) #10
  %1269 = icmp ne i32 %1268, 0
  br i1 %1269, label %1270, label %1287

1270:                                             ; preds = %1265
  %1271 = load i32, ptr %37, align 4, !tbaa !9
  %1272 = call ptr @__errno_location() #11
  store i32 %1271, ptr %1272, align 4, !tbaa !9
  %1273 = load ptr, ptr @stderr, align 8, !tbaa !5
  %1274 = load i32, ptr @test_count, align 4, !tbaa !9
  %1275 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1276 = load i32, ptr %1275, align 4, !tbaa !9
  %1277 = call ptr @s2n_strerror(i32 noundef %1276, ptr noundef @.str.6)
  %1278 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1279 = load i32, ptr %1278, align 4, !tbaa !9
  %1280 = call ptr @s2n_strerror_debug(i32 noundef %1279, ptr noundef @.str.6)
  %1281 = call ptr @__errno_location() #11
  %1282 = load i32, ptr %1281, align 4, !tbaa !9
  %1283 = call ptr @strerror(i32 noundef %1282) #10
  %1284 = call ptr @__errno_location() #11
  %1285 = load i32, ptr %1284, align 4, !tbaa !9
  %1286 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1273, ptr noundef @.str.3, i32 noundef %1274, ptr noundef @.str.35, ptr noundef @.str.5, i32 noundef 145, ptr noundef %1277, ptr noundef %1280, ptr noundef %1283, i32 noundef %1285) #10
  br label %1304

1287:                                             ; preds = %1265, %1258
  %1288 = load i32, ptr %37, align 4, !tbaa !9
  %1289 = call ptr @__errno_location() #11
  store i32 %1288, ptr %1289, align 4, !tbaa !9
  %1290 = load ptr, ptr @stderr, align 8, !tbaa !5
  %1291 = load i32, ptr @test_count, align 4, !tbaa !9
  %1292 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1293 = load i32, ptr %1292, align 4, !tbaa !9
  %1294 = call ptr @s2n_strerror(i32 noundef %1293, ptr noundef @.str.6)
  %1295 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1296 = load i32, ptr %1295, align 4, !tbaa !9
  %1297 = call ptr @s2n_strerror_debug(i32 noundef %1296, ptr noundef @.str.6)
  %1298 = call ptr @__errno_location() #11
  %1299 = load i32, ptr %1298, align 4, !tbaa !9
  %1300 = call ptr @strerror(i32 noundef %1299) #10
  %1301 = call ptr @__errno_location() #11
  %1302 = load i32, ptr %1301, align 4, !tbaa !9
  %1303 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1290, ptr noundef @.str.7, i32 noundef %1291, ptr noundef @.str.35, ptr noundef @.str.5, i32 noundef 145, ptr noundef %1294, ptr noundef %1297, ptr noundef %1300, i32 noundef %1302) #10
  br label %1304

1304:                                             ; preds = %1287, %1270
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #10
  br label %1305

1305:                                             ; preds = %1304
  br label %1306

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

1307:                                             ; No predecessors!
  br label %1308

1308:                                             ; preds = %1307
  br label %1309

1309:                                             ; preds = %1308, %1250
  br label %1310

1310:                                             ; preds = %1309
  br label %1311

1311:                                             ; preds = %1310
  %1312 = load ptr, ptr %30, align 8, !tbaa !5
  %1313 = getelementptr inbounds %struct.s2n_connection, ptr %1312, i32 0, i32 27
  %1314 = load ptr, ptr %1313, align 8, !tbaa !52
  %1315 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %1314, i32 0, i32 0
  store ptr @s2n_tls13_aes_256_gcm_sha384, ptr %1315, align 8, !tbaa !53
  br label %1316

1316:                                             ; preds = %1311
  %1317 = load i32, ptr @test_count, align 4, !tbaa !9
  %1318 = add nsw i32 %1317, 1
  store i32 %1318, ptr @test_count, align 4, !tbaa !9
  %1319 = load ptr, ptr %28, align 8, !tbaa !5
  %1320 = call i32 @s2n_tls13_cert_verify_send(ptr noundef %1319)
  %1321 = icmp eq i32 %1320, -1
  br i1 %1321, label %1322, label %1375

1322:                                             ; preds = %1316
  br label %1323

1323:                                             ; preds = %1322
  br label %1324

1324:                                             ; preds = %1323
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #10
  %1325 = call ptr @__errno_location() #11
  %1326 = load i32, ptr %1325, align 4, !tbaa !9
  store i32 %1326, ptr %38, align 4, !tbaa !9
  %1327 = load ptr, ptr @stderr, align 8, !tbaa !5
  %1328 = call i32 @s2n_print_stacktrace(ptr noundef %1327)
  %1329 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %1330 = trunc i8 %1329 to i1
  br i1 %1330, label %1331, label %1353

1331:                                             ; preds = %1324
  %1332 = load ptr, ptr @stderr, align 8, !tbaa !5
  %1333 = call i32 @fileno(ptr noundef %1332) #10
  %1334 = call i32 @isatty(i32 noundef %1333) #10
  %1335 = icmp ne i32 %1334, 0
  br i1 %1335, label %1336, label %1353

1336:                                             ; preds = %1331
  %1337 = load i32, ptr %38, align 4, !tbaa !9
  %1338 = call ptr @__errno_location() #11
  store i32 %1337, ptr %1338, align 4, !tbaa !9
  %1339 = load ptr, ptr @stderr, align 8, !tbaa !5
  %1340 = load i32, ptr @test_count, align 4, !tbaa !9
  %1341 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1342 = load i32, ptr %1341, align 4, !tbaa !9
  %1343 = call ptr @s2n_strerror(i32 noundef %1342, ptr noundef @.str.6)
  %1344 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1345 = load i32, ptr %1344, align 4, !tbaa !9
  %1346 = call ptr @s2n_strerror_debug(i32 noundef %1345, ptr noundef @.str.6)
  %1347 = call ptr @__errno_location() #11
  %1348 = load i32, ptr %1347, align 4, !tbaa !9
  %1349 = call ptr @strerror(i32 noundef %1348) #10
  %1350 = call ptr @__errno_location() #11
  %1351 = load i32, ptr %1350, align 4, !tbaa !9
  %1352 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1339, ptr noundef @.str.3, i32 noundef %1340, ptr noundef @.str.17, ptr noundef @.str.5, i32 noundef 149, ptr noundef %1343, ptr noundef %1346, ptr noundef %1349, i32 noundef %1351) #10
  br label %1370

1353:                                             ; preds = %1331, %1324
  %1354 = load i32, ptr %38, align 4, !tbaa !9
  %1355 = call ptr @__errno_location() #11
  store i32 %1354, ptr %1355, align 4, !tbaa !9
  %1356 = load ptr, ptr @stderr, align 8, !tbaa !5
  %1357 = load i32, ptr @test_count, align 4, !tbaa !9
  %1358 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1359 = load i32, ptr %1358, align 4, !tbaa !9
  %1360 = call ptr @s2n_strerror(i32 noundef %1359, ptr noundef @.str.6)
  %1361 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1362 = load i32, ptr %1361, align 4, !tbaa !9
  %1363 = call ptr @s2n_strerror_debug(i32 noundef %1362, ptr noundef @.str.6)
  %1364 = call ptr @__errno_location() #11
  %1365 = load i32, ptr %1364, align 4, !tbaa !9
  %1366 = call ptr @strerror(i32 noundef %1365) #10
  %1367 = call ptr @__errno_location() #11
  %1368 = load i32, ptr %1367, align 4, !tbaa !9
  %1369 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1356, ptr noundef @.str.7, i32 noundef %1357, ptr noundef @.str.17, ptr noundef @.str.5, i32 noundef 149, ptr noundef %1360, ptr noundef %1363, ptr noundef %1366, i32 noundef %1368) #10
  br label %1370

1370:                                             ; preds = %1353, %1336
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #10
  br label %1371

1371:                                             ; preds = %1370
  br label %1372

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

1373:                                             ; No predecessors!
  br label %1374

1374:                                             ; preds = %1373
  br label %1375

1375:                                             ; preds = %1374, %1316
  br label %1376

1376:                                             ; preds = %1375
  br label %1377

1377:                                             ; preds = %1376
  br label %1378

1378:                                             ; preds = %1377
  %1379 = load i32, ptr @test_count, align 4, !tbaa !9
  %1380 = add nsw i32 %1379, 1
  store i32 %1380, ptr @test_count, align 4, !tbaa !9
  %1381 = load ptr, ptr %28, align 8, !tbaa !5
  %1382 = getelementptr inbounds %struct.s2n_connection, ptr %1381, i32 0, i32 52
  %1383 = getelementptr inbounds %struct.s2n_handshake, ptr %1382, i32 0, i32 0
  %1384 = load ptr, ptr %30, align 8, !tbaa !5
  %1385 = getelementptr inbounds %struct.s2n_connection, ptr %1384, i32 0, i32 52
  %1386 = getelementptr inbounds %struct.s2n_handshake, ptr %1385, i32 0, i32 0
  %1387 = load ptr, ptr %28, align 8, !tbaa !5
  %1388 = getelementptr inbounds %struct.s2n_connection, ptr %1387, i32 0, i32 52
  %1389 = getelementptr inbounds %struct.s2n_handshake, ptr %1388, i32 0, i32 0
  %1390 = getelementptr inbounds %struct.s2n_stuffer, ptr %1389, i32 0, i32 2
  %1391 = load i32, ptr %1390, align 4, !tbaa !27
  %1392 = load ptr, ptr %28, align 8, !tbaa !5
  %1393 = getelementptr inbounds %struct.s2n_connection, ptr %1392, i32 0, i32 52
  %1394 = getelementptr inbounds %struct.s2n_handshake, ptr %1393, i32 0, i32 0
  %1395 = getelementptr inbounds %struct.s2n_stuffer, ptr %1394, i32 0, i32 1
  %1396 = load i32, ptr %1395, align 8, !tbaa !51
  %1397 = sub i32 %1391, %1396
  %1398 = call i32 @s2n_stuffer_copy(ptr noundef %1383, ptr noundef %1386, i32 noundef %1397)
  %1399 = icmp eq i32 %1398, -1
  br i1 %1399, label %1400, label %1453

1400:                                             ; preds = %1378
  br label %1401

1401:                                             ; preds = %1400
  br label %1402

1402:                                             ; preds = %1401
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #10
  %1403 = call ptr @__errno_location() #11
  %1404 = load i32, ptr %1403, align 4, !tbaa !9
  store i32 %1404, ptr %39, align 4, !tbaa !9
  %1405 = load ptr, ptr @stderr, align 8, !tbaa !5
  %1406 = call i32 @s2n_print_stacktrace(ptr noundef %1405)
  %1407 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %1408 = trunc i8 %1407 to i1
  br i1 %1408, label %1409, label %1431

1409:                                             ; preds = %1402
  %1410 = load ptr, ptr @stderr, align 8, !tbaa !5
  %1411 = call i32 @fileno(ptr noundef %1410) #10
  %1412 = call i32 @isatty(i32 noundef %1411) #10
  %1413 = icmp ne i32 %1412, 0
  br i1 %1413, label %1414, label %1431

1414:                                             ; preds = %1409
  %1415 = load i32, ptr %39, align 4, !tbaa !9
  %1416 = call ptr @__errno_location() #11
  store i32 %1415, ptr %1416, align 4, !tbaa !9
  %1417 = load ptr, ptr @stderr, align 8, !tbaa !5
  %1418 = load i32, ptr @test_count, align 4, !tbaa !9
  %1419 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1420 = load i32, ptr %1419, align 4, !tbaa !9
  %1421 = call ptr @s2n_strerror(i32 noundef %1420, ptr noundef @.str.6)
  %1422 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1423 = load i32, ptr %1422, align 4, !tbaa !9
  %1424 = call ptr @s2n_strerror_debug(i32 noundef %1423, ptr noundef @.str.6)
  %1425 = call ptr @__errno_location() #11
  %1426 = load i32, ptr %1425, align 4, !tbaa !9
  %1427 = call ptr @strerror(i32 noundef %1426) #10
  %1428 = call ptr @__errno_location() #11
  %1429 = load i32, ptr %1428, align 4, !tbaa !9
  %1430 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1417, ptr noundef @.str.3, i32 noundef %1418, ptr noundef @.str.18, ptr noundef @.str.5, i32 noundef 151, ptr noundef %1421, ptr noundef %1424, ptr noundef %1427, i32 noundef %1429) #10
  br label %1448

1431:                                             ; preds = %1409, %1402
  %1432 = load i32, ptr %39, align 4, !tbaa !9
  %1433 = call ptr @__errno_location() #11
  store i32 %1432, ptr %1433, align 4, !tbaa !9
  %1434 = load ptr, ptr @stderr, align 8, !tbaa !5
  %1435 = load i32, ptr @test_count, align 4, !tbaa !9
  %1436 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1437 = load i32, ptr %1436, align 4, !tbaa !9
  %1438 = call ptr @s2n_strerror(i32 noundef %1437, ptr noundef @.str.6)
  %1439 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1440 = load i32, ptr %1439, align 4, !tbaa !9
  %1441 = call ptr @s2n_strerror_debug(i32 noundef %1440, ptr noundef @.str.6)
  %1442 = call ptr @__errno_location() #11
  %1443 = load i32, ptr %1442, align 4, !tbaa !9
  %1444 = call ptr @strerror(i32 noundef %1443) #10
  %1445 = call ptr @__errno_location() #11
  %1446 = load i32, ptr %1445, align 4, !tbaa !9
  %1447 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1434, ptr noundef @.str.7, i32 noundef %1435, ptr noundef @.str.18, ptr noundef @.str.5, i32 noundef 151, ptr noundef %1438, ptr noundef %1441, ptr noundef %1444, i32 noundef %1446) #10
  br label %1448

1448:                                             ; preds = %1431, %1414
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #10
  br label %1449

1449:                                             ; preds = %1448
  br label %1450

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

1451:                                             ; No predecessors!
  br label %1452

1452:                                             ; preds = %1451
  br label %1453

1453:                                             ; preds = %1452, %1378
  br label %1454

1454:                                             ; preds = %1453
  br label %1455

1455:                                             ; preds = %1454
  br label %1456

1456:                                             ; preds = %1455
  br label %1457

1457:                                             ; preds = %1456
  br label %1458

1458:                                             ; preds = %1457
  %1459 = load i32, ptr @test_count, align 4, !tbaa !9
  %1460 = add nsw i32 %1459, 1
  store i32 %1460, ptr @test_count, align 4, !tbaa !9
  %1461 = load ptr, ptr %30, align 8, !tbaa !5
  %1462 = call i32 @s2n_tls13_cert_verify_recv(ptr noundef %1461)
  %1463 = icmp eq i32 %1462, -1
  br i1 %1463, label %1517, label %1464

1464:                                             ; preds = %1458
  br label %1465

1465:                                             ; preds = %1464
  br label %1466

1466:                                             ; preds = %1465
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #10
  %1467 = call ptr @__errno_location() #11
  %1468 = load i32, ptr %1467, align 4, !tbaa !9
  store i32 %1468, ptr %40, align 4, !tbaa !9
  %1469 = load ptr, ptr @stderr, align 8, !tbaa !5
  %1470 = call i32 @s2n_print_stacktrace(ptr noundef %1469)
  %1471 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %1472 = trunc i8 %1471 to i1
  br i1 %1472, label %1473, label %1495

1473:                                             ; preds = %1466
  %1474 = load ptr, ptr @stderr, align 8, !tbaa !5
  %1475 = call i32 @fileno(ptr noundef %1474) #10
  %1476 = call i32 @isatty(i32 noundef %1475) #10
  %1477 = icmp ne i32 %1476, 0
  br i1 %1477, label %1478, label %1495

1478:                                             ; preds = %1473
  %1479 = load i32, ptr %40, align 4, !tbaa !9
  %1480 = call ptr @__errno_location() #11
  store i32 %1479, ptr %1480, align 4, !tbaa !9
  %1481 = load ptr, ptr @stderr, align 8, !tbaa !5
  %1482 = load i32, ptr @test_count, align 4, !tbaa !9
  %1483 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1484 = load i32, ptr %1483, align 4, !tbaa !9
  %1485 = call ptr @s2n_strerror(i32 noundef %1484, ptr noundef @.str.6)
  %1486 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1487 = load i32, ptr %1486, align 4, !tbaa !9
  %1488 = call ptr @s2n_strerror_debug(i32 noundef %1487, ptr noundef @.str.6)
  %1489 = call ptr @__errno_location() #11
  %1490 = load i32, ptr %1489, align 4, !tbaa !9
  %1491 = call ptr @strerror(i32 noundef %1490) #10
  %1492 = call ptr @__errno_location() #11
  %1493 = load i32, ptr %1492, align 4, !tbaa !9
  %1494 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1481, ptr noundef @.str.3, i32 noundef %1482, ptr noundef @.str.36, ptr noundef @.str.5, i32 noundef 153, ptr noundef %1485, ptr noundef %1488, ptr noundef %1491, i32 noundef %1493) #10
  br label %1512

1495:                                             ; preds = %1473, %1466
  %1496 = load i32, ptr %40, align 4, !tbaa !9
  %1497 = call ptr @__errno_location() #11
  store i32 %1496, ptr %1497, align 4, !tbaa !9
  %1498 = load ptr, ptr @stderr, align 8, !tbaa !5
  %1499 = load i32, ptr @test_count, align 4, !tbaa !9
  %1500 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1501 = load i32, ptr %1500, align 4, !tbaa !9
  %1502 = call ptr @s2n_strerror(i32 noundef %1501, ptr noundef @.str.6)
  %1503 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1504 = load i32, ptr %1503, align 4, !tbaa !9
  %1505 = call ptr @s2n_strerror_debug(i32 noundef %1504, ptr noundef @.str.6)
  %1506 = call ptr @__errno_location() #11
  %1507 = load i32, ptr %1506, align 4, !tbaa !9
  %1508 = call ptr @strerror(i32 noundef %1507) #10
  %1509 = call ptr @__errno_location() #11
  %1510 = load i32, ptr %1509, align 4, !tbaa !9
  %1511 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1498, ptr noundef @.str.7, i32 noundef %1499, ptr noundef @.str.36, ptr noundef @.str.5, i32 noundef 153, ptr noundef %1502, ptr noundef %1505, ptr noundef %1508, i32 noundef %1510) #10
  br label %1512

1512:                                             ; preds = %1495, %1478
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #10
  br label %1513

1513:                                             ; preds = %1512
  br label %1514

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

1515:                                             ; No predecessors!
  br label %1516

1516:                                             ; preds = %1515
  br label %1517

1517:                                             ; preds = %1516, %1458
  br label %1518

1518:                                             ; preds = %1517
  br label %1519

1519:                                             ; preds = %1518
  br label %1520

1520:                                             ; preds = %1519
  %1521 = load i32, ptr @test_count, align 4, !tbaa !9
  %1522 = add nsw i32 %1521, 1
  store i32 %1522, ptr @test_count, align 4, !tbaa !9
  %1523 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1524 = load i32, ptr %1523, align 4, !tbaa !9
  %1525 = icmp eq i32 %1524, 335544353
  br i1 %1525, label %1579, label %1526

1526:                                             ; preds = %1520
  br label %1527

1527:                                             ; preds = %1526
  br label %1528

1528:                                             ; preds = %1527
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #10
  %1529 = call ptr @__errno_location() #11
  %1530 = load i32, ptr %1529, align 4, !tbaa !9
  store i32 %1530, ptr %41, align 4, !tbaa !9
  %1531 = load ptr, ptr @stderr, align 8, !tbaa !5
  %1532 = call i32 @s2n_print_stacktrace(ptr noundef %1531)
  %1533 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %1534 = trunc i8 %1533 to i1
  br i1 %1534, label %1535, label %1557

1535:                                             ; preds = %1528
  %1536 = load ptr, ptr @stderr, align 8, !tbaa !5
  %1537 = call i32 @fileno(ptr noundef %1536) #10
  %1538 = call i32 @isatty(i32 noundef %1537) #10
  %1539 = icmp ne i32 %1538, 0
  br i1 %1539, label %1540, label %1557

1540:                                             ; preds = %1535
  %1541 = load i32, ptr %41, align 4, !tbaa !9
  %1542 = call ptr @__errno_location() #11
  store i32 %1541, ptr %1542, align 4, !tbaa !9
  %1543 = load ptr, ptr @stderr, align 8, !tbaa !5
  %1544 = load i32, ptr @test_count, align 4, !tbaa !9
  %1545 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1546 = load i32, ptr %1545, align 4, !tbaa !9
  %1547 = call ptr @s2n_strerror(i32 noundef %1546, ptr noundef @.str.6)
  %1548 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1549 = load i32, ptr %1548, align 4, !tbaa !9
  %1550 = call ptr @s2n_strerror_debug(i32 noundef %1549, ptr noundef @.str.6)
  %1551 = call ptr @__errno_location() #11
  %1552 = load i32, ptr %1551, align 4, !tbaa !9
  %1553 = call ptr @strerror(i32 noundef %1552) #10
  %1554 = call ptr @__errno_location() #11
  %1555 = load i32, ptr %1554, align 4, !tbaa !9
  %1556 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1543, ptr noundef @.str.3, i32 noundef %1544, ptr noundef @.str.37, ptr noundef @.str.5, i32 noundef 153, ptr noundef %1547, ptr noundef %1550, ptr noundef %1553, i32 noundef %1555) #10
  br label %1574

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

1574:                                             ; preds = %1557, %1540
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #10
  br label %1575

1575:                                             ; preds = %1574
  br label %1576

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

1577:                                             ; No predecessors!
  br label %1578

1578:                                             ; preds = %1577
  br label %1579

1579:                                             ; preds = %1578, %1520
  br label %1580

1580:                                             ; preds = %1579
  br label %1581

1581:                                             ; preds = %1580
  br label %1582

1582:                                             ; preds = %1581
  %1583 = load i32, ptr @test_count, align 4, !tbaa !9
  %1584 = add nsw i32 %1583, 1
  store i32 %1584, ptr @test_count, align 4, !tbaa !9
  %1585 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1586 = load i32, ptr %1585, align 4, !tbaa !9
  %1587 = call ptr @s2n_strerror_debug(i32 noundef %1586, ptr noundef @.str.6)
  %1588 = icmp eq ptr %1587, null
  br i1 %1588, label %1589, label %1642

1589:                                             ; preds = %1582
  br label %1590

1590:                                             ; preds = %1589
  br label %1591

1591:                                             ; preds = %1590
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #10
  %1592 = call ptr @__errno_location() #11
  %1593 = load i32, ptr %1592, align 4, !tbaa !9
  store i32 %1593, ptr %42, align 4, !tbaa !9
  %1594 = load ptr, ptr @stderr, align 8, !tbaa !5
  %1595 = call i32 @s2n_print_stacktrace(ptr noundef %1594)
  %1596 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %1597 = trunc i8 %1596 to i1
  br i1 %1597, label %1598, label %1620

1598:                                             ; preds = %1591
  %1599 = load ptr, ptr @stderr, align 8, !tbaa !5
  %1600 = call i32 @fileno(ptr noundef %1599) #10
  %1601 = call i32 @isatty(i32 noundef %1600) #10
  %1602 = icmp ne i32 %1601, 0
  br i1 %1602, label %1603, label %1620

1603:                                             ; preds = %1598
  %1604 = load i32, ptr %42, align 4, !tbaa !9
  %1605 = call ptr @__errno_location() #11
  store i32 %1604, ptr %1605, align 4, !tbaa !9
  %1606 = load ptr, ptr @stderr, align 8, !tbaa !5
  %1607 = load i32, ptr @test_count, align 4, !tbaa !9
  %1608 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1609 = load i32, ptr %1608, align 4, !tbaa !9
  %1610 = call ptr @s2n_strerror(i32 noundef %1609, ptr noundef @.str.6)
  %1611 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1612 = load i32, ptr %1611, align 4, !tbaa !9
  %1613 = call ptr @s2n_strerror_debug(i32 noundef %1612, ptr noundef @.str.6)
  %1614 = call ptr @__errno_location() #11
  %1615 = load i32, ptr %1614, align 4, !tbaa !9
  %1616 = call ptr @strerror(i32 noundef %1615) #10
  %1617 = call ptr @__errno_location() #11
  %1618 = load i32, ptr %1617, align 4, !tbaa !9
  %1619 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1606, ptr noundef @.str.3, i32 noundef %1607, ptr noundef @.str.38, ptr noundef @.str.5, i32 noundef 153, ptr noundef %1610, ptr noundef %1613, ptr noundef %1616, i32 noundef %1618) #10
  br label %1637

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

1637:                                             ; preds = %1620, %1603
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #10
  br label %1638

1638:                                             ; preds = %1637
  br label %1639

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

1640:                                             ; No predecessors!
  br label %1641

1641:                                             ; preds = %1640
  br label %1642

1642:                                             ; preds = %1641, %1582
  br label %1643

1643:                                             ; preds = %1642
  br label %1644

1644:                                             ; preds = %1643
  br label %1645

1645:                                             ; preds = %1644
  br label %1646

1646:                                             ; preds = %1645
  br label %1647

1647:                                             ; preds = %1646
  %1648 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1648, align 4, !tbaa !9
  call void @s2n_debug_info_reset()
  %1649 = call ptr @__errno_location() #11
  store i32 0, ptr %1649, align 4, !tbaa !9
  br label %1650

1650:                                             ; preds = %1647
  br label %1651

1651:                                             ; preds = %1650
  br label %1652

1652:                                             ; preds = %1651
  br label %1653

1653:                                             ; preds = %1652
  %1654 = call i32 @s2n_connection_ptr_free(ptr noundef %30)
  %1655 = getelementptr inbounds %struct.s2n_result, ptr %43, i32 0, i32 0
  store i32 %1654, ptr %1655, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #10
  %1656 = call i32 @s2n_connection_ptr_free(ptr noundef %28)
  %1657 = getelementptr inbounds %struct.s2n_result, ptr %44, i32 0, i32 0
  store i32 %1656, ptr %1657, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #10
  %1658 = load i32, ptr %4, align 4, !tbaa !9
  %1659 = add i32 %1658, 1
  %1660 = urem i32 %1659, 2
  %1661 = call ptr @s2n_connection_new(i32 noundef %1660)
  store ptr %1661, ptr %45, align 8, !tbaa !5
  br label %1662

1662:                                             ; preds = %1653
  %1663 = load i32, ptr @test_count, align 4, !tbaa !9
  %1664 = add nsw i32 %1663, 1
  store i32 %1664, ptr @test_count, align 4, !tbaa !9
  %1665 = load ptr, ptr %45, align 8, !tbaa !5
  %1666 = icmp eq ptr %1665, null
  br i1 %1666, label %1667, label %1720

1667:                                             ; preds = %1662
  br label %1668

1668:                                             ; preds = %1667
  br label %1669

1669:                                             ; preds = %1668
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #10
  %1670 = call ptr @__errno_location() #11
  %1671 = load i32, ptr %1670, align 4, !tbaa !9
  store i32 %1671, ptr %46, align 4, !tbaa !9
  %1672 = load ptr, ptr @stderr, align 8, !tbaa !5
  %1673 = call i32 @s2n_print_stacktrace(ptr noundef %1672)
  %1674 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %1675 = trunc i8 %1674 to i1
  br i1 %1675, label %1676, label %1698

1676:                                             ; preds = %1669
  %1677 = load ptr, ptr @stderr, align 8, !tbaa !5
  %1678 = call i32 @fileno(ptr noundef %1677) #10
  %1679 = call i32 @isatty(i32 noundef %1678) #10
  %1680 = icmp ne i32 %1679, 0
  br i1 %1680, label %1681, label %1698

1681:                                             ; preds = %1676
  %1682 = load i32, ptr %46, align 4, !tbaa !9
  %1683 = call ptr @__errno_location() #11
  store i32 %1682, ptr %1683, align 4, !tbaa !9
  %1684 = load ptr, ptr @stderr, align 8, !tbaa !5
  %1685 = load i32, ptr @test_count, align 4, !tbaa !9
  %1686 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1687 = load i32, ptr %1686, align 4, !tbaa !9
  %1688 = call ptr @s2n_strerror(i32 noundef %1687, ptr noundef @.str.6)
  %1689 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1690 = load i32, ptr %1689, align 4, !tbaa !9
  %1691 = call ptr @s2n_strerror_debug(i32 noundef %1690, ptr noundef @.str.6)
  %1692 = call ptr @__errno_location() #11
  %1693 = load i32, ptr %1692, align 4, !tbaa !9
  %1694 = call ptr @strerror(i32 noundef %1693) #10
  %1695 = call ptr @__errno_location() #11
  %1696 = load i32, ptr %1695, align 4, !tbaa !9
  %1697 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1684, ptr noundef @.str.3, i32 noundef %1685, ptr noundef @.str.32, ptr noundef @.str.5, i32 noundef 160, ptr noundef %1688, ptr noundef %1691, ptr noundef %1694, i32 noundef %1696) #10
  br label %1715

1698:                                             ; preds = %1676, %1669
  %1699 = load i32, ptr %46, align 4, !tbaa !9
  %1700 = call ptr @__errno_location() #11
  store i32 %1699, ptr %1700, align 4, !tbaa !9
  %1701 = load ptr, ptr @stderr, align 8, !tbaa !5
  %1702 = load i32, ptr @test_count, align 4, !tbaa !9
  %1703 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1704 = load i32, ptr %1703, align 4, !tbaa !9
  %1705 = call ptr @s2n_strerror(i32 noundef %1704, ptr noundef @.str.6)
  %1706 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1707 = load i32, ptr %1706, align 4, !tbaa !9
  %1708 = call ptr @s2n_strerror_debug(i32 noundef %1707, ptr noundef @.str.6)
  %1709 = call ptr @__errno_location() #11
  %1710 = load i32, ptr %1709, align 4, !tbaa !9
  %1711 = call ptr @strerror(i32 noundef %1710) #10
  %1712 = call ptr @__errno_location() #11
  %1713 = load i32, ptr %1712, align 4, !tbaa !9
  %1714 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1701, ptr noundef @.str.7, i32 noundef %1702, ptr noundef @.str.32, ptr noundef @.str.5, i32 noundef 160, ptr noundef %1705, ptr noundef %1708, ptr noundef %1711, i32 noundef %1713) #10
  br label %1715

1715:                                             ; preds = %1698, %1681
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #10
  br label %1716

1716:                                             ; preds = %1715
  br label %1717

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

1718:                                             ; No predecessors!
  br label %1719

1719:                                             ; preds = %1718
  br label %1720

1720:                                             ; preds = %1719, %1662
  br label %1721

1721:                                             ; preds = %1720
  br label %1722

1722:                                             ; preds = %1721
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #10
  %1723 = load i32, ptr %4, align 4, !tbaa !9
  %1724 = call ptr @s2n_connection_new(i32 noundef %1723)
  store ptr %1724, ptr %47, align 8, !tbaa !5
  br label %1725

1725:                                             ; preds = %1722
  %1726 = load i32, ptr @test_count, align 4, !tbaa !9
  %1727 = add nsw i32 %1726, 1
  store i32 %1727, ptr @test_count, align 4, !tbaa !9
  %1728 = load ptr, ptr %47, align 8, !tbaa !5
  %1729 = icmp eq ptr %1728, null
  br i1 %1729, label %1730, label %1783

1730:                                             ; preds = %1725
  br label %1731

1731:                                             ; preds = %1730
  br label %1732

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

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

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

1761:                                             ; preds = %1739, %1732
  %1762 = load i32, ptr %48, align 4, !tbaa !9
  %1763 = call ptr @__errno_location() #11
  store i32 %1762, ptr %1763, align 4, !tbaa !9
  %1764 = load ptr, ptr @stderr, align 8, !tbaa !5
  %1765 = load i32, ptr @test_count, align 4, !tbaa !9
  %1766 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1767 = load i32, ptr %1766, align 4, !tbaa !9
  %1768 = call ptr @s2n_strerror(i32 noundef %1767, ptr noundef @.str.6)
  %1769 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1770 = load i32, ptr %1769, align 4, !tbaa !9
  %1771 = call ptr @s2n_strerror_debug(i32 noundef %1770, ptr noundef @.str.6)
  %1772 = call ptr @__errno_location() #11
  %1773 = load i32, ptr %1772, align 4, !tbaa !9
  %1774 = call ptr @strerror(i32 noundef %1773) #10
  %1775 = call ptr @__errno_location() #11
  %1776 = load i32, ptr %1775, align 4, !tbaa !9
  %1777 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1764, ptr noundef @.str.7, i32 noundef %1765, ptr noundef @.str.33, ptr noundef @.str.5, i32 noundef 164, ptr noundef %1768, ptr noundef %1771, ptr noundef %1774, i32 noundef %1776) #10
  br label %1778

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

1779:                                             ; preds = %1778
  br label %1780

1780:                                             ; preds = %1779
  call void @exit(i32 noundef 1) #12
  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 !9
  %1788 = add nsw i32 %1787, 1
  store i32 %1788, ptr @test_count, align 4, !tbaa !9
  %1789 = load ptr, ptr %45, align 8, !tbaa !5
  %1790 = load ptr, ptr %47, align 8, !tbaa !5
  %1791 = load ptr, ptr %15, align 8, !tbaa !5
  %1792 = load ptr, ptr %12, align 8, !tbaa !5
  %1793 = call i32 @s2n_cert_verify_connection_setup_and_send(ptr noundef %1789, ptr noundef %1790, ptr noundef %1791, ptr noundef %1792, ptr noundef %7, ptr noundef %26)
  %1794 = getelementptr inbounds %struct.s2n_result, ptr %49, i32 0, i32 0
  store i32 %1793, ptr %1794, align 4
  %1795 = getelementptr inbounds %struct.s2n_result, ptr %49, i32 0, i32 0
  %1796 = load i32, ptr %1795, align 4
  %1797 = call zeroext i1 @s2n_result_is_ok(i32 %1796)
  br i1 %1797, label %1851, label %1798

1798:                                             ; preds = %1786
  br label %1799

1799:                                             ; preds = %1798
  br label %1800

1800:                                             ; preds = %1799
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #10
  %1801 = call ptr @__errno_location() #11
  %1802 = load i32, ptr %1801, align 4, !tbaa !9
  store i32 %1802, ptr %50, align 4, !tbaa !9
  %1803 = load ptr, ptr @stderr, align 8, !tbaa !5
  %1804 = call i32 @s2n_print_stacktrace(ptr noundef %1803)
  %1805 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %1806 = trunc i8 %1805 to i1
  br i1 %1806, label %1807, label %1829

1807:                                             ; preds = %1800
  %1808 = load ptr, ptr @stderr, align 8, !tbaa !5
  %1809 = call i32 @fileno(ptr noundef %1808) #10
  %1810 = call i32 @isatty(i32 noundef %1809) #10
  %1811 = icmp ne i32 %1810, 0
  br i1 %1811, label %1812, label %1829

1812:                                             ; preds = %1807
  %1813 = load i32, ptr %50, align 4, !tbaa !9
  %1814 = call ptr @__errno_location() #11
  store i32 %1813, ptr %1814, align 4, !tbaa !9
  %1815 = load ptr, ptr @stderr, align 8, !tbaa !5
  %1816 = load i32, ptr @test_count, align 4, !tbaa !9
  %1817 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1818 = load i32, ptr %1817, align 4, !tbaa !9
  %1819 = call ptr @s2n_strerror(i32 noundef %1818, ptr noundef @.str.6)
  %1820 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1821 = load i32, ptr %1820, align 4, !tbaa !9
  %1822 = call ptr @s2n_strerror_debug(i32 noundef %1821, ptr noundef @.str.6)
  %1823 = call ptr @__errno_location() #11
  %1824 = load i32, ptr %1823, align 4, !tbaa !9
  %1825 = call ptr @strerror(i32 noundef %1824) #10
  %1826 = call ptr @__errno_location() #11
  %1827 = load i32, ptr %1826, align 4, !tbaa !9
  %1828 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1815, ptr noundef @.str.3, i32 noundef %1816, ptr noundef @.str.34, ptr noundef @.str.5, i32 noundef 166, ptr noundef %1819, ptr noundef %1822, ptr noundef %1825, i32 noundef %1827) #10
  br label %1846

1829:                                             ; preds = %1807, %1800
  %1830 = load i32, ptr %50, align 4, !tbaa !9
  %1831 = call ptr @__errno_location() #11
  store i32 %1830, ptr %1831, align 4, !tbaa !9
  %1832 = load ptr, ptr @stderr, align 8, !tbaa !5
  %1833 = load i32, ptr @test_count, align 4, !tbaa !9
  %1834 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1835 = load i32, ptr %1834, align 4, !tbaa !9
  %1836 = call ptr @s2n_strerror(i32 noundef %1835, ptr noundef @.str.6)
  %1837 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1838 = load i32, ptr %1837, align 4, !tbaa !9
  %1839 = call ptr @s2n_strerror_debug(i32 noundef %1838, ptr noundef @.str.6)
  %1840 = call ptr @__errno_location() #11
  %1841 = load i32, ptr %1840, align 4, !tbaa !9
  %1842 = call ptr @strerror(i32 noundef %1841) #10
  %1843 = call ptr @__errno_location() #11
  %1844 = load i32, ptr %1843, align 4, !tbaa !9
  %1845 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1832, ptr noundef @.str.7, i32 noundef %1833, ptr noundef @.str.34, ptr noundef @.str.5, i32 noundef 166, ptr noundef %1836, ptr noundef %1839, ptr noundef %1842, i32 noundef %1844) #10
  br label %1846

1846:                                             ; preds = %1829, %1812
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #10
  br label %1847

1847:                                             ; preds = %1846
  br label %1848

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

1849:                                             ; No predecessors!
  br label %1850

1850:                                             ; preds = %1849
  br label %1851

1851:                                             ; preds = %1850, %1786
  br label %1852

1852:                                             ; preds = %1851
  br label %1853

1853:                                             ; preds = %1852
  br label %1854

1854:                                             ; preds = %1853
  %1855 = load i32, ptr @test_count, align 4, !tbaa !9
  %1856 = add nsw i32 %1855, 1
  store i32 %1856, ptr @test_count, align 4, !tbaa !9
  %1857 = load ptr, ptr %47, align 8, !tbaa !5
  %1858 = getelementptr inbounds %struct.s2n_connection, ptr %1857, i32 0, i32 52
  %1859 = getelementptr inbounds %struct.s2n_handshake, ptr %1858, i32 0, i32 1
  %1860 = load ptr, ptr %1859, align 8, !tbaa !58
  %1861 = getelementptr inbounds %struct.s2n_handshake_hashes, ptr %1860, i32 0, i32 3
  %1862 = call i32 @s2n_hash_update(ptr noundef %1861, ptr noundef @goodbye, i32 noundef 17)
  %1863 = icmp eq i32 %1862, -1
  br i1 %1863, label %1864, label %1917

1864:                                             ; preds = %1854
  br label %1865

1865:                                             ; preds = %1864
  br label %1866

1866:                                             ; preds = %1865
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #10
  %1867 = call ptr @__errno_location() #11
  %1868 = load i32, ptr %1867, align 4, !tbaa !9
  store i32 %1868, ptr %51, align 4, !tbaa !9
  %1869 = load ptr, ptr @stderr, align 8, !tbaa !5
  %1870 = call i32 @s2n_print_stacktrace(ptr noundef %1869)
  %1871 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %1872 = trunc i8 %1871 to i1
  br i1 %1872, label %1873, label %1895

1873:                                             ; preds = %1866
  %1874 = load ptr, ptr @stderr, align 8, !tbaa !5
  %1875 = call i32 @fileno(ptr noundef %1874) #10
  %1876 = call i32 @isatty(i32 noundef %1875) #10
  %1877 = icmp ne i32 %1876, 0
  br i1 %1877, label %1878, label %1895

1878:                                             ; preds = %1873
  %1879 = load i32, ptr %51, align 4, !tbaa !9
  %1880 = call ptr @__errno_location() #11
  store i32 %1879, ptr %1880, align 4, !tbaa !9
  %1881 = load ptr, ptr @stderr, align 8, !tbaa !5
  %1882 = load i32, ptr @test_count, align 4, !tbaa !9
  %1883 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1884 = load i32, ptr %1883, align 4, !tbaa !9
  %1885 = call ptr @s2n_strerror(i32 noundef %1884, ptr noundef @.str.6)
  %1886 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1887 = load i32, ptr %1886, align 4, !tbaa !9
  %1888 = call ptr @s2n_strerror_debug(i32 noundef %1887, ptr noundef @.str.6)
  %1889 = call ptr @__errno_location() #11
  %1890 = load i32, ptr %1889, align 4, !tbaa !9
  %1891 = call ptr @strerror(i32 noundef %1890) #10
  %1892 = call ptr @__errno_location() #11
  %1893 = load i32, ptr %1892, align 4, !tbaa !9
  %1894 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1881, ptr noundef @.str.3, i32 noundef %1882, ptr noundef @.str.39, ptr noundef @.str.5, i32 noundef 169, ptr noundef %1885, ptr noundef %1888, ptr noundef %1891, i32 noundef %1893) #10
  br label %1912

1895:                                             ; preds = %1873, %1866
  %1896 = load i32, ptr %51, align 4, !tbaa !9
  %1897 = call ptr @__errno_location() #11
  store i32 %1896, ptr %1897, align 4, !tbaa !9
  %1898 = load ptr, ptr @stderr, align 8, !tbaa !5
  %1899 = load i32, ptr @test_count, align 4, !tbaa !9
  %1900 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1901 = load i32, ptr %1900, align 4, !tbaa !9
  %1902 = call ptr @s2n_strerror(i32 noundef %1901, ptr noundef @.str.6)
  %1903 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1904 = load i32, ptr %1903, align 4, !tbaa !9
  %1905 = call ptr @s2n_strerror_debug(i32 noundef %1904, ptr noundef @.str.6)
  %1906 = call ptr @__errno_location() #11
  %1907 = load i32, ptr %1906, align 4, !tbaa !9
  %1908 = call ptr @strerror(i32 noundef %1907) #10
  %1909 = call ptr @__errno_location() #11
  %1910 = load i32, ptr %1909, align 4, !tbaa !9
  %1911 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1898, ptr noundef @.str.7, i32 noundef %1899, ptr noundef @.str.39, ptr noundef @.str.5, i32 noundef 169, ptr noundef %1902, ptr noundef %1905, ptr noundef %1908, i32 noundef %1910) #10
  br label %1912

1912:                                             ; preds = %1895, %1878
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #10
  br label %1913

1913:                                             ; preds = %1912
  br label %1914

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

1915:                                             ; No predecessors!
  br label %1916

1916:                                             ; preds = %1915
  br label %1917

1917:                                             ; preds = %1916, %1854
  br label %1918

1918:                                             ; preds = %1917
  br label %1919

1919:                                             ; preds = %1918
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #10
  store i64 0, ptr %52, align 8, !tbaa !59
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #10
  store i64 0, ptr %53, align 8, !tbaa !59
  br label %1920

1920:                                             ; preds = %1919
  %1921 = load i32, ptr @test_count, align 4, !tbaa !9
  %1922 = add nsw i32 %1921, 1
  store i32 %1922, ptr @test_count, align 4, !tbaa !9
  %1923 = load ptr, ptr %47, align 8, !tbaa !5
  %1924 = getelementptr inbounds %struct.s2n_connection, ptr %1923, i32 0, i32 52
  %1925 = getelementptr inbounds %struct.s2n_handshake, ptr %1924, i32 0, i32 1
  %1926 = load ptr, ptr %1925, align 8, !tbaa !58
  %1927 = getelementptr inbounds %struct.s2n_handshake_hashes, ptr %1926, i32 0, i32 3
  %1928 = call i32 @s2n_hash_get_currently_in_hash_total(ptr noundef %1927, ptr noundef %52)
  %1929 = icmp eq i32 %1928, -1
  br i1 %1929, label %1930, label %1983

1930:                                             ; preds = %1920
  br label %1931

1931:                                             ; preds = %1930
  br label %1932

1932:                                             ; preds = %1931
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #10
  %1933 = call ptr @__errno_location() #11
  %1934 = load i32, ptr %1933, align 4, !tbaa !9
  store i32 %1934, ptr %54, align 4, !tbaa !9
  %1935 = load ptr, ptr @stderr, align 8, !tbaa !5
  %1936 = call i32 @s2n_print_stacktrace(ptr noundef %1935)
  %1937 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %1938 = trunc i8 %1937 to i1
  br i1 %1938, label %1939, label %1961

1939:                                             ; preds = %1932
  %1940 = load ptr, ptr @stderr, align 8, !tbaa !5
  %1941 = call i32 @fileno(ptr noundef %1940) #10
  %1942 = call i32 @isatty(i32 noundef %1941) #10
  %1943 = icmp ne i32 %1942, 0
  br i1 %1943, label %1944, label %1961

1944:                                             ; preds = %1939
  %1945 = load i32, ptr %54, align 4, !tbaa !9
  %1946 = call ptr @__errno_location() #11
  store i32 %1945, ptr %1946, align 4, !tbaa !9
  %1947 = load ptr, ptr @stderr, align 8, !tbaa !5
  %1948 = load i32, ptr @test_count, align 4, !tbaa !9
  %1949 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1950 = load i32, ptr %1949, align 4, !tbaa !9
  %1951 = call ptr @s2n_strerror(i32 noundef %1950, ptr noundef @.str.6)
  %1952 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1953 = load i32, ptr %1952, align 4, !tbaa !9
  %1954 = call ptr @s2n_strerror_debug(i32 noundef %1953, ptr noundef @.str.6)
  %1955 = call ptr @__errno_location() #11
  %1956 = load i32, ptr %1955, align 4, !tbaa !9
  %1957 = call ptr @strerror(i32 noundef %1956) #10
  %1958 = call ptr @__errno_location() #11
  %1959 = load i32, ptr %1958, align 4, !tbaa !9
  %1960 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1947, ptr noundef @.str.3, i32 noundef %1948, ptr noundef @.str.40, ptr noundef @.str.5, i32 noundef 173, ptr noundef %1951, ptr noundef %1954, ptr noundef %1957, i32 noundef %1959) #10
  br label %1978

1961:                                             ; preds = %1939, %1932
  %1962 = load i32, ptr %54, align 4, !tbaa !9
  %1963 = call ptr @__errno_location() #11
  store i32 %1962, ptr %1963, align 4, !tbaa !9
  %1964 = load ptr, ptr @stderr, align 8, !tbaa !5
  %1965 = load i32, ptr @test_count, align 4, !tbaa !9
  %1966 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1967 = load i32, ptr %1966, align 4, !tbaa !9
  %1968 = call ptr @s2n_strerror(i32 noundef %1967, ptr noundef @.str.6)
  %1969 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1970 = load i32, ptr %1969, align 4, !tbaa !9
  %1971 = call ptr @s2n_strerror_debug(i32 noundef %1970, ptr noundef @.str.6)
  %1972 = call ptr @__errno_location() #11
  %1973 = load i32, ptr %1972, align 4, !tbaa !9
  %1974 = call ptr @strerror(i32 noundef %1973) #10
  %1975 = call ptr @__errno_location() #11
  %1976 = load i32, ptr %1975, align 4, !tbaa !9
  %1977 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1964, ptr noundef @.str.7, i32 noundef %1965, ptr noundef @.str.40, ptr noundef @.str.5, i32 noundef 173, ptr noundef %1968, ptr noundef %1971, ptr noundef %1974, i32 noundef %1976) #10
  br label %1978

1978:                                             ; preds = %1961, %1944
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #10
  br label %1979

1979:                                             ; preds = %1978
  br label %1980

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

1981:                                             ; No predecessors!
  br label %1982

1982:                                             ; preds = %1981
  br label %1983

1983:                                             ; preds = %1982, %1920
  br label %1984

1984:                                             ; preds = %1983
  br label %1985

1985:                                             ; preds = %1984
  br label %1986

1986:                                             ; preds = %1985
  %1987 = load i32, ptr @test_count, align 4, !tbaa !9
  %1988 = add nsw i32 %1987, 1
  store i32 %1988, ptr @test_count, align 4, !tbaa !9
  %1989 = load ptr, ptr %45, align 8, !tbaa !5
  %1990 = getelementptr inbounds %struct.s2n_connection, ptr %1989, i32 0, i32 52
  %1991 = getelementptr inbounds %struct.s2n_handshake, ptr %1990, i32 0, i32 1
  %1992 = load ptr, ptr %1991, align 8, !tbaa !58
  %1993 = getelementptr inbounds %struct.s2n_handshake_hashes, ptr %1992, i32 0, i32 3
  %1994 = call i32 @s2n_hash_get_currently_in_hash_total(ptr noundef %1993, ptr noundef %53)
  %1995 = icmp eq i32 %1994, -1
  br i1 %1995, label %1996, label %2049

1996:                                             ; preds = %1986
  br label %1997

1997:                                             ; preds = %1996
  br label %1998

1998:                                             ; preds = %1997
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #10
  %1999 = call ptr @__errno_location() #11
  %2000 = load i32, ptr %1999, align 4, !tbaa !9
  store i32 %2000, ptr %55, align 4, !tbaa !9
  %2001 = load ptr, ptr @stderr, align 8, !tbaa !5
  %2002 = call i32 @s2n_print_stacktrace(ptr noundef %2001)
  %2003 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %2004 = trunc i8 %2003 to i1
  br i1 %2004, label %2005, label %2027

2005:                                             ; preds = %1998
  %2006 = load ptr, ptr @stderr, align 8, !tbaa !5
  %2007 = call i32 @fileno(ptr noundef %2006) #10
  %2008 = call i32 @isatty(i32 noundef %2007) #10
  %2009 = icmp ne i32 %2008, 0
  br i1 %2009, label %2010, label %2027

2010:                                             ; preds = %2005
  %2011 = load i32, ptr %55, align 4, !tbaa !9
  %2012 = call ptr @__errno_location() #11
  store i32 %2011, ptr %2012, align 4, !tbaa !9
  %2013 = load ptr, ptr @stderr, align 8, !tbaa !5
  %2014 = load i32, ptr @test_count, align 4, !tbaa !9
  %2015 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2016 = load i32, ptr %2015, align 4, !tbaa !9
  %2017 = call ptr @s2n_strerror(i32 noundef %2016, ptr noundef @.str.6)
  %2018 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2019 = load i32, ptr %2018, align 4, !tbaa !9
  %2020 = call ptr @s2n_strerror_debug(i32 noundef %2019, ptr noundef @.str.6)
  %2021 = call ptr @__errno_location() #11
  %2022 = load i32, ptr %2021, align 4, !tbaa !9
  %2023 = call ptr @strerror(i32 noundef %2022) #10
  %2024 = call ptr @__errno_location() #11
  %2025 = load i32, ptr %2024, align 4, !tbaa !9
  %2026 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2013, ptr noundef @.str.3, i32 noundef %2014, ptr noundef @.str.41, ptr noundef @.str.5, i32 noundef 174, ptr noundef %2017, ptr noundef %2020, ptr noundef %2023, i32 noundef %2025) #10
  br label %2044

2027:                                             ; preds = %2005, %1998
  %2028 = load i32, ptr %55, align 4, !tbaa !9
  %2029 = call ptr @__errno_location() #11
  store i32 %2028, ptr %2029, align 4, !tbaa !9
  %2030 = load ptr, ptr @stderr, align 8, !tbaa !5
  %2031 = load i32, ptr @test_count, align 4, !tbaa !9
  %2032 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2033 = load i32, ptr %2032, align 4, !tbaa !9
  %2034 = call ptr @s2n_strerror(i32 noundef %2033, ptr noundef @.str.6)
  %2035 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2036 = load i32, ptr %2035, align 4, !tbaa !9
  %2037 = call ptr @s2n_strerror_debug(i32 noundef %2036, ptr noundef @.str.6)
  %2038 = call ptr @__errno_location() #11
  %2039 = load i32, ptr %2038, align 4, !tbaa !9
  %2040 = call ptr @strerror(i32 noundef %2039) #10
  %2041 = call ptr @__errno_location() #11
  %2042 = load i32, ptr %2041, align 4, !tbaa !9
  %2043 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2030, ptr noundef @.str.7, i32 noundef %2031, ptr noundef @.str.41, ptr noundef @.str.5, i32 noundef 174, ptr noundef %2034, ptr noundef %2037, ptr noundef %2040, i32 noundef %2042) #10
  br label %2044

2044:                                             ; preds = %2027, %2010
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #10
  br label %2045

2045:                                             ; preds = %2044
  br label %2046

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

2047:                                             ; No predecessors!
  br label %2048

2048:                                             ; preds = %2047
  br label %2049

2049:                                             ; preds = %2048, %1986
  br label %2050

2050:                                             ; preds = %2049
  br label %2051

2051:                                             ; preds = %2050
  br label %2052

2052:                                             ; preds = %2051
  %2053 = load i32, ptr @test_count, align 4, !tbaa !9
  %2054 = add nsw i32 %2053, 1
  store i32 %2054, ptr @test_count, align 4, !tbaa !9
  %2055 = load i64, ptr %53, align 8, !tbaa !59
  %2056 = load i64, ptr %52, align 8, !tbaa !59
  %2057 = icmp eq i64 %2055, %2056
  br i1 %2057, label %2058, label %2111

2058:                                             ; preds = %2052
  br label %2059

2059:                                             ; preds = %2058
  br label %2060

2060:                                             ; preds = %2059
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #10
  %2061 = call ptr @__errno_location() #11
  %2062 = load i32, ptr %2061, align 4, !tbaa !9
  store i32 %2062, ptr %56, align 4, !tbaa !9
  %2063 = load ptr, ptr @stderr, align 8, !tbaa !5
  %2064 = call i32 @s2n_print_stacktrace(ptr noundef %2063)
  %2065 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %2066 = trunc i8 %2065 to i1
  br i1 %2066, label %2067, label %2089

2067:                                             ; preds = %2060
  %2068 = load ptr, ptr @stderr, align 8, !tbaa !5
  %2069 = call i32 @fileno(ptr noundef %2068) #10
  %2070 = call i32 @isatty(i32 noundef %2069) #10
  %2071 = icmp ne i32 %2070, 0
  br i1 %2071, label %2072, label %2089

2072:                                             ; preds = %2067
  %2073 = load i32, ptr %56, align 4, !tbaa !9
  %2074 = call ptr @__errno_location() #11
  store i32 %2073, ptr %2074, align 4, !tbaa !9
  %2075 = load ptr, ptr @stderr, align 8, !tbaa !5
  %2076 = load i32, ptr @test_count, align 4, !tbaa !9
  %2077 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2078 = load i32, ptr %2077, align 4, !tbaa !9
  %2079 = call ptr @s2n_strerror(i32 noundef %2078, ptr noundef @.str.6)
  %2080 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2081 = load i32, ptr %2080, align 4, !tbaa !9
  %2082 = call ptr @s2n_strerror_debug(i32 noundef %2081, ptr noundef @.str.6)
  %2083 = call ptr @__errno_location() #11
  %2084 = load i32, ptr %2083, align 4, !tbaa !9
  %2085 = call ptr @strerror(i32 noundef %2084) #10
  %2086 = call ptr @__errno_location() #11
  %2087 = load i32, ptr %2086, align 4, !tbaa !9
  %2088 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2075, ptr noundef @.str.3, i32 noundef %2076, ptr noundef @.str.42, ptr noundef @.str.5, i32 noundef 175, ptr noundef %2079, ptr noundef %2082, ptr noundef %2085, i32 noundef %2087) #10
  br label %2106

2089:                                             ; preds = %2067, %2060
  %2090 = load i32, ptr %56, align 4, !tbaa !9
  %2091 = call ptr @__errno_location() #11
  store i32 %2090, ptr %2091, align 4, !tbaa !9
  %2092 = load ptr, ptr @stderr, align 8, !tbaa !5
  %2093 = load i32, ptr @test_count, align 4, !tbaa !9
  %2094 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2095 = load i32, ptr %2094, align 4, !tbaa !9
  %2096 = call ptr @s2n_strerror(i32 noundef %2095, ptr noundef @.str.6)
  %2097 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2098 = load i32, ptr %2097, align 4, !tbaa !9
  %2099 = call ptr @s2n_strerror_debug(i32 noundef %2098, ptr noundef @.str.6)
  %2100 = call ptr @__errno_location() #11
  %2101 = load i32, ptr %2100, align 4, !tbaa !9
  %2102 = call ptr @strerror(i32 noundef %2101) #10
  %2103 = call ptr @__errno_location() #11
  %2104 = load i32, ptr %2103, align 4, !tbaa !9
  %2105 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2092, ptr noundef @.str.7, i32 noundef %2093, ptr noundef @.str.42, ptr noundef @.str.5, i32 noundef 175, ptr noundef %2096, ptr noundef %2099, ptr noundef %2102, i32 noundef %2104) #10
  br label %2106

2106:                                             ; preds = %2089, %2072
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #10
  br label %2107

2107:                                             ; preds = %2106
  br label %2108

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

2109:                                             ; No predecessors!
  br label %2110

2110:                                             ; preds = %2109
  br label %2111

2111:                                             ; preds = %2110, %2052
  br label %2112

2112:                                             ; preds = %2111
  br label %2113

2113:                                             ; preds = %2112
  br label %2114

2114:                                             ; preds = %2113
  br label %2115

2115:                                             ; preds = %2114
  br label %2116

2116:                                             ; preds = %2115
  %2117 = load i32, ptr @test_count, align 4, !tbaa !9
  %2118 = add nsw i32 %2117, 1
  store i32 %2118, ptr @test_count, align 4, !tbaa !9
  %2119 = load ptr, ptr %47, align 8, !tbaa !5
  %2120 = call i32 @s2n_tls13_cert_verify_recv(ptr noundef %2119)
  %2121 = icmp eq i32 %2120, -1
  br i1 %2121, label %2175, label %2122

2122:                                             ; preds = %2116
  br label %2123

2123:                                             ; preds = %2122
  br label %2124

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

2131:                                             ; preds = %2124
  %2132 = load ptr, ptr @stderr, align 8, !tbaa !5
  %2133 = call i32 @fileno(ptr noundef %2132) #10
  %2134 = call i32 @isatty(i32 noundef %2133) #10
  %2135 = icmp ne i32 %2134, 0
  br i1 %2135, label %2136, label %2153

2136:                                             ; preds = %2131
  %2137 = load i32, ptr %57, align 4, !tbaa !9
  %2138 = call ptr @__errno_location() #11
  store i32 %2137, ptr %2138, align 4, !tbaa !9
  %2139 = load ptr, ptr @stderr, align 8, !tbaa !5
  %2140 = load i32, ptr @test_count, align 4, !tbaa !9
  %2141 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2142 = load i32, ptr %2141, align 4, !tbaa !9
  %2143 = call ptr @s2n_strerror(i32 noundef %2142, ptr noundef @.str.6)
  %2144 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2145 = load i32, ptr %2144, align 4, !tbaa !9
  %2146 = call ptr @s2n_strerror_debug(i32 noundef %2145, ptr noundef @.str.6)
  %2147 = call ptr @__errno_location() #11
  %2148 = load i32, ptr %2147, align 4, !tbaa !9
  %2149 = call ptr @strerror(i32 noundef %2148) #10
  %2150 = call ptr @__errno_location() #11
  %2151 = load i32, ptr %2150, align 4, !tbaa !9
  %2152 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2139, ptr noundef @.str.3, i32 noundef %2140, ptr noundef @.str.36, ptr noundef @.str.5, i32 noundef 177, ptr noundef %2143, ptr noundef %2146, ptr noundef %2149, i32 noundef %2151) #10
  br label %2170

2153:                                             ; preds = %2131, %2124
  %2154 = load i32, ptr %57, align 4, !tbaa !9
  %2155 = call ptr @__errno_location() #11
  store i32 %2154, ptr %2155, align 4, !tbaa !9
  %2156 = load ptr, ptr @stderr, align 8, !tbaa !5
  %2157 = load i32, ptr @test_count, align 4, !tbaa !9
  %2158 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2159 = load i32, ptr %2158, align 4, !tbaa !9
  %2160 = call ptr @s2n_strerror(i32 noundef %2159, ptr noundef @.str.6)
  %2161 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2162 = load i32, ptr %2161, align 4, !tbaa !9
  %2163 = call ptr @s2n_strerror_debug(i32 noundef %2162, ptr noundef @.str.6)
  %2164 = call ptr @__errno_location() #11
  %2165 = load i32, ptr %2164, align 4, !tbaa !9
  %2166 = call ptr @strerror(i32 noundef %2165) #10
  %2167 = call ptr @__errno_location() #11
  %2168 = load i32, ptr %2167, align 4, !tbaa !9
  %2169 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2156, ptr noundef @.str.7, i32 noundef %2157, ptr noundef @.str.36, ptr noundef @.str.5, i32 noundef 177, ptr noundef %2160, ptr noundef %2163, ptr noundef %2166, i32 noundef %2168) #10
  br label %2170

2170:                                             ; preds = %2153, %2136
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #10
  br label %2171

2171:                                             ; preds = %2170
  br label %2172

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

2173:                                             ; No predecessors!
  br label %2174

2174:                                             ; preds = %2173
  br label %2175

2175:                                             ; preds = %2174, %2116
  br label %2176

2176:                                             ; preds = %2175
  br label %2177

2177:                                             ; preds = %2176
  br label %2178

2178:                                             ; preds = %2177
  %2179 = load i32, ptr @test_count, align 4, !tbaa !9
  %2180 = add nsw i32 %2179, 1
  store i32 %2180, ptr @test_count, align 4, !tbaa !9
  %2181 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2182 = load i32, ptr %2181, align 4, !tbaa !9
  %2183 = icmp eq i32 %2182, 335544353
  br i1 %2183, label %2237, label %2184

2184:                                             ; preds = %2178
  br label %2185

2185:                                             ; preds = %2184
  br label %2186

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

2193:                                             ; preds = %2186
  %2194 = load ptr, ptr @stderr, align 8, !tbaa !5
  %2195 = call i32 @fileno(ptr noundef %2194) #10
  %2196 = call i32 @isatty(i32 noundef %2195) #10
  %2197 = icmp ne i32 %2196, 0
  br i1 %2197, label %2198, label %2215

2198:                                             ; preds = %2193
  %2199 = load i32, ptr %58, align 4, !tbaa !9
  %2200 = call ptr @__errno_location() #11
  store i32 %2199, ptr %2200, align 4, !tbaa !9
  %2201 = load ptr, ptr @stderr, align 8, !tbaa !5
  %2202 = load i32, ptr @test_count, align 4, !tbaa !9
  %2203 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2204 = load i32, ptr %2203, align 4, !tbaa !9
  %2205 = call ptr @s2n_strerror(i32 noundef %2204, ptr noundef @.str.6)
  %2206 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2207 = load i32, ptr %2206, align 4, !tbaa !9
  %2208 = call ptr @s2n_strerror_debug(i32 noundef %2207, ptr noundef @.str.6)
  %2209 = call ptr @__errno_location() #11
  %2210 = load i32, ptr %2209, align 4, !tbaa !9
  %2211 = call ptr @strerror(i32 noundef %2210) #10
  %2212 = call ptr @__errno_location() #11
  %2213 = load i32, ptr %2212, align 4, !tbaa !9
  %2214 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2201, ptr noundef @.str.3, i32 noundef %2202, ptr noundef @.str.37, ptr noundef @.str.5, i32 noundef 177, ptr noundef %2205, ptr noundef %2208, ptr noundef %2211, i32 noundef %2213) #10
  br label %2232

2215:                                             ; preds = %2193, %2186
  %2216 = load i32, ptr %58, align 4, !tbaa !9
  %2217 = call ptr @__errno_location() #11
  store i32 %2216, ptr %2217, align 4, !tbaa !9
  %2218 = load ptr, ptr @stderr, align 8, !tbaa !5
  %2219 = load i32, ptr @test_count, align 4, !tbaa !9
  %2220 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2221 = load i32, ptr %2220, align 4, !tbaa !9
  %2222 = call ptr @s2n_strerror(i32 noundef %2221, ptr noundef @.str.6)
  %2223 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2224 = load i32, ptr %2223, align 4, !tbaa !9
  %2225 = call ptr @s2n_strerror_debug(i32 noundef %2224, ptr noundef @.str.6)
  %2226 = call ptr @__errno_location() #11
  %2227 = load i32, ptr %2226, align 4, !tbaa !9
  %2228 = call ptr @strerror(i32 noundef %2227) #10
  %2229 = call ptr @__errno_location() #11
  %2230 = load i32, ptr %2229, align 4, !tbaa !9
  %2231 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2218, ptr noundef @.str.7, i32 noundef %2219, ptr noundef @.str.37, ptr noundef @.str.5, i32 noundef 177, ptr noundef %2222, ptr noundef %2225, ptr noundef %2228, i32 noundef %2230) #10
  br label %2232

2232:                                             ; preds = %2215, %2198
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #10
  br label %2233

2233:                                             ; preds = %2232
  br label %2234

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

2235:                                             ; No predecessors!
  br label %2236

2236:                                             ; preds = %2235
  br label %2237

2237:                                             ; preds = %2236, %2178
  br label %2238

2238:                                             ; preds = %2237
  br label %2239

2239:                                             ; preds = %2238
  br label %2240

2240:                                             ; preds = %2239
  %2241 = load i32, ptr @test_count, align 4, !tbaa !9
  %2242 = add nsw i32 %2241, 1
  store i32 %2242, ptr @test_count, align 4, !tbaa !9
  %2243 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2244 = load i32, ptr %2243, align 4, !tbaa !9
  %2245 = call ptr @s2n_strerror_debug(i32 noundef %2244, ptr noundef @.str.6)
  %2246 = icmp eq ptr %2245, null
  br i1 %2246, label %2247, label %2300

2247:                                             ; preds = %2240
  br label %2248

2248:                                             ; preds = %2247
  br label %2249

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

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

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

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

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

2296:                                             ; preds = %2295
  br label %2297

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

2298:                                             ; No predecessors!
  br label %2299

2299:                                             ; preds = %2298
  br label %2300

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

2301:                                             ; preds = %2300
  br label %2302

2302:                                             ; preds = %2301
  br label %2303

2303:                                             ; preds = %2302
  br label %2304

2304:                                             ; preds = %2303
  br label %2305

2305:                                             ; preds = %2304
  %2306 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %2306, align 4, !tbaa !9
  call void @s2n_debug_info_reset()
  %2307 = call ptr @__errno_location() #11
  store i32 0, ptr %2307, align 4, !tbaa !9
  br label %2308

2308:                                             ; preds = %2305
  br label %2309

2309:                                             ; preds = %2308
  br label %2310

2310:                                             ; preds = %2309
  br label %2311

2311:                                             ; preds = %2310
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #10
  %2312 = call i32 @s2n_connection_ptr_free(ptr noundef %47)
  %2313 = getelementptr inbounds %struct.s2n_result, ptr %60, i32 0, i32 0
  store i32 %2312, ptr %2313, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #10
  %2314 = call i32 @s2n_connection_ptr_free(ptr noundef %45)
  %2315 = getelementptr inbounds %struct.s2n_result, ptr %61, i32 0, i32 0
  store i32 %2314, ptr %2315, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %62) #10
  %2316 = load i32, ptr %4, align 4, !tbaa !9
  %2317 = add i32 %2316, 1
  %2318 = urem i32 %2317, 2
  %2319 = call ptr @s2n_connection_new(i32 noundef %2318)
  store ptr %2319, ptr %62, align 8, !tbaa !5
  br label %2320

2320:                                             ; preds = %2311
  %2321 = load i32, ptr @test_count, align 4, !tbaa !9
  %2322 = add nsw i32 %2321, 1
  store i32 %2322, ptr @test_count, align 4, !tbaa !9
  %2323 = load ptr, ptr %62, align 8, !tbaa !5
  %2324 = icmp eq ptr %2323, null
  br i1 %2324, label %2325, label %2378

2325:                                             ; preds = %2320
  br label %2326

2326:                                             ; preds = %2325
  br label %2327

2327:                                             ; preds = %2326
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #10
  %2328 = call ptr @__errno_location() #11
  %2329 = load i32, ptr %2328, align 4, !tbaa !9
  store i32 %2329, ptr %63, align 4, !tbaa !9
  %2330 = load ptr, ptr @stderr, align 8, !tbaa !5
  %2331 = call i32 @s2n_print_stacktrace(ptr noundef %2330)
  %2332 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %2333 = trunc i8 %2332 to i1
  br i1 %2333, label %2334, label %2356

2334:                                             ; preds = %2327
  %2335 = load ptr, ptr @stderr, align 8, !tbaa !5
  %2336 = call i32 @fileno(ptr noundef %2335) #10
  %2337 = call i32 @isatty(i32 noundef %2336) #10
  %2338 = icmp ne i32 %2337, 0
  br i1 %2338, label %2339, label %2356

2339:                                             ; preds = %2334
  %2340 = load i32, ptr %63, align 4, !tbaa !9
  %2341 = call ptr @__errno_location() #11
  store i32 %2340, ptr %2341, align 4, !tbaa !9
  %2342 = load ptr, ptr @stderr, align 8, !tbaa !5
  %2343 = load i32, ptr @test_count, align 4, !tbaa !9
  %2344 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2345 = load i32, ptr %2344, align 4, !tbaa !9
  %2346 = call ptr @s2n_strerror(i32 noundef %2345, ptr noundef @.str.6)
  %2347 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2348 = load i32, ptr %2347, align 4, !tbaa !9
  %2349 = call ptr @s2n_strerror_debug(i32 noundef %2348, ptr noundef @.str.6)
  %2350 = call ptr @__errno_location() #11
  %2351 = load i32, ptr %2350, align 4, !tbaa !9
  %2352 = call ptr @strerror(i32 noundef %2351) #10
  %2353 = call ptr @__errno_location() #11
  %2354 = load i32, ptr %2353, align 4, !tbaa !9
  %2355 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2342, ptr noundef @.str.3, i32 noundef %2343, ptr noundef @.str.32, ptr noundef @.str.5, i32 noundef 184, ptr noundef %2346, ptr noundef %2349, ptr noundef %2352, i32 noundef %2354) #10
  br label %2373

2356:                                             ; preds = %2334, %2327
  %2357 = load i32, ptr %63, align 4, !tbaa !9
  %2358 = call ptr @__errno_location() #11
  store i32 %2357, ptr %2358, align 4, !tbaa !9
  %2359 = load ptr, ptr @stderr, align 8, !tbaa !5
  %2360 = load i32, ptr @test_count, align 4, !tbaa !9
  %2361 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2362 = load i32, ptr %2361, align 4, !tbaa !9
  %2363 = call ptr @s2n_strerror(i32 noundef %2362, ptr noundef @.str.6)
  %2364 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2365 = load i32, ptr %2364, align 4, !tbaa !9
  %2366 = call ptr @s2n_strerror_debug(i32 noundef %2365, ptr noundef @.str.6)
  %2367 = call ptr @__errno_location() #11
  %2368 = load i32, ptr %2367, align 4, !tbaa !9
  %2369 = call ptr @strerror(i32 noundef %2368) #10
  %2370 = call ptr @__errno_location() #11
  %2371 = load i32, ptr %2370, align 4, !tbaa !9
  %2372 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2359, ptr noundef @.str.7, i32 noundef %2360, ptr noundef @.str.32, ptr noundef @.str.5, i32 noundef 184, ptr noundef %2363, ptr noundef %2366, ptr noundef %2369, i32 noundef %2371) #10
  br label %2373

2373:                                             ; preds = %2356, %2339
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #10
  br label %2374

2374:                                             ; preds = %2373
  br label %2375

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

2376:                                             ; No predecessors!
  br label %2377

2377:                                             ; preds = %2376
  br label %2378

2378:                                             ; preds = %2377, %2320
  br label %2379

2379:                                             ; preds = %2378
  br label %2380

2380:                                             ; preds = %2379
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #10
  %2381 = load i32, ptr %4, align 4, !tbaa !9
  %2382 = call ptr @s2n_connection_new(i32 noundef %2381)
  store ptr %2382, ptr %64, align 8, !tbaa !5
  br label %2383

2383:                                             ; preds = %2380
  %2384 = load i32, ptr @test_count, align 4, !tbaa !9
  %2385 = add nsw i32 %2384, 1
  store i32 %2385, ptr @test_count, align 4, !tbaa !9
  %2386 = load ptr, ptr %64, align 8, !tbaa !5
  %2387 = icmp eq ptr %2386, null
  br i1 %2387, label %2388, label %2441

2388:                                             ; preds = %2383
  br label %2389

2389:                                             ; preds = %2388
  br label %2390

2390:                                             ; preds = %2389
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #10
  %2391 = call ptr @__errno_location() #11
  %2392 = load i32, ptr %2391, align 4, !tbaa !9
  store i32 %2392, ptr %65, align 4, !tbaa !9
  %2393 = load ptr, ptr @stderr, align 8, !tbaa !5
  %2394 = call i32 @s2n_print_stacktrace(ptr noundef %2393)
  %2395 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %2396 = trunc i8 %2395 to i1
  br i1 %2396, label %2397, label %2419

2397:                                             ; preds = %2390
  %2398 = load ptr, ptr @stderr, align 8, !tbaa !5
  %2399 = call i32 @fileno(ptr noundef %2398) #10
  %2400 = call i32 @isatty(i32 noundef %2399) #10
  %2401 = icmp ne i32 %2400, 0
  br i1 %2401, label %2402, label %2419

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

2419:                                             ; preds = %2397, %2390
  %2420 = load i32, ptr %65, align 4, !tbaa !9
  %2421 = call ptr @__errno_location() #11
  store i32 %2420, ptr %2421, align 4, !tbaa !9
  %2422 = load ptr, ptr @stderr, align 8, !tbaa !5
  %2423 = load i32, ptr @test_count, align 4, !tbaa !9
  %2424 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2425 = load i32, ptr %2424, align 4, !tbaa !9
  %2426 = call ptr @s2n_strerror(i32 noundef %2425, ptr noundef @.str.6)
  %2427 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2428 = load i32, ptr %2427, align 4, !tbaa !9
  %2429 = call ptr @s2n_strerror_debug(i32 noundef %2428, ptr noundef @.str.6)
  %2430 = call ptr @__errno_location() #11
  %2431 = load i32, ptr %2430, align 4, !tbaa !9
  %2432 = call ptr @strerror(i32 noundef %2431) #10
  %2433 = call ptr @__errno_location() #11
  %2434 = load i32, ptr %2433, align 4, !tbaa !9
  %2435 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2422, ptr noundef @.str.7, i32 noundef %2423, ptr noundef @.str.33, ptr noundef @.str.5, i32 noundef 188, ptr noundef %2426, ptr noundef %2429, ptr noundef %2432, i32 noundef %2434) #10
  br label %2436

2436:                                             ; preds = %2419, %2402
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #10
  br label %2437

2437:                                             ; preds = %2436
  br label %2438

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

2439:                                             ; No predecessors!
  br label %2440

2440:                                             ; preds = %2439
  br label %2441

2441:                                             ; preds = %2440, %2383
  br label %2442

2442:                                             ; preds = %2441
  br label %2443

2443:                                             ; preds = %2442
  br label %2444

2444:                                             ; preds = %2443
  %2445 = load i32, ptr @test_count, align 4, !tbaa !9
  %2446 = add nsw i32 %2445, 1
  store i32 %2446, ptr @test_count, align 4, !tbaa !9
  %2447 = load ptr, ptr %62, align 8, !tbaa !5
  %2448 = load ptr, ptr %64, align 8, !tbaa !5
  %2449 = load ptr, ptr %15, align 8, !tbaa !5
  %2450 = load ptr, ptr %12, align 8, !tbaa !5
  %2451 = call i32 @s2n_cert_verify_connection_setup_and_send(ptr noundef %2447, ptr noundef %2448, ptr noundef %2449, ptr noundef %2450, ptr noundef %7, ptr noundef %26)
  %2452 = getelementptr inbounds %struct.s2n_result, ptr %66, i32 0, i32 0
  store i32 %2451, ptr %2452, align 4
  %2453 = getelementptr inbounds %struct.s2n_result, ptr %66, i32 0, i32 0
  %2454 = load i32, ptr %2453, align 4
  %2455 = call zeroext i1 @s2n_result_is_ok(i32 %2454)
  br i1 %2455, label %2509, label %2456

2456:                                             ; preds = %2444
  br label %2457

2457:                                             ; preds = %2456
  br label %2458

2458:                                             ; preds = %2457
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #10
  %2459 = call ptr @__errno_location() #11
  %2460 = load i32, ptr %2459, align 4, !tbaa !9
  store i32 %2460, ptr %67, align 4, !tbaa !9
  %2461 = load ptr, ptr @stderr, align 8, !tbaa !5
  %2462 = call i32 @s2n_print_stacktrace(ptr noundef %2461)
  %2463 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %2464 = trunc i8 %2463 to i1
  br i1 %2464, label %2465, label %2487

2465:                                             ; preds = %2458
  %2466 = load ptr, ptr @stderr, align 8, !tbaa !5
  %2467 = call i32 @fileno(ptr noundef %2466) #10
  %2468 = call i32 @isatty(i32 noundef %2467) #10
  %2469 = icmp ne i32 %2468, 0
  br i1 %2469, label %2470, label %2487

2470:                                             ; preds = %2465
  %2471 = load i32, ptr %67, align 4, !tbaa !9
  %2472 = call ptr @__errno_location() #11
  store i32 %2471, ptr %2472, align 4, !tbaa !9
  %2473 = load ptr, ptr @stderr, align 8, !tbaa !5
  %2474 = load i32, ptr @test_count, align 4, !tbaa !9
  %2475 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2476 = load i32, ptr %2475, align 4, !tbaa !9
  %2477 = call ptr @s2n_strerror(i32 noundef %2476, ptr noundef @.str.6)
  %2478 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2479 = load i32, ptr %2478, align 4, !tbaa !9
  %2480 = call ptr @s2n_strerror_debug(i32 noundef %2479, ptr noundef @.str.6)
  %2481 = call ptr @__errno_location() #11
  %2482 = load i32, ptr %2481, align 4, !tbaa !9
  %2483 = call ptr @strerror(i32 noundef %2482) #10
  %2484 = call ptr @__errno_location() #11
  %2485 = load i32, ptr %2484, align 4, !tbaa !9
  %2486 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2473, ptr noundef @.str.3, i32 noundef %2474, ptr noundef @.str.34, ptr noundef @.str.5, i32 noundef 190, ptr noundef %2477, ptr noundef %2480, ptr noundef %2483, i32 noundef %2485) #10
  br label %2504

2487:                                             ; preds = %2465, %2458
  %2488 = load i32, ptr %67, align 4, !tbaa !9
  %2489 = call ptr @__errno_location() #11
  store i32 %2488, ptr %2489, align 4, !tbaa !9
  %2490 = load ptr, ptr @stderr, align 8, !tbaa !5
  %2491 = load i32, ptr @test_count, align 4, !tbaa !9
  %2492 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2493 = load i32, ptr %2492, align 4, !tbaa !9
  %2494 = call ptr @s2n_strerror(i32 noundef %2493, ptr noundef @.str.6)
  %2495 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2496 = load i32, ptr %2495, align 4, !tbaa !9
  %2497 = call ptr @s2n_strerror_debug(i32 noundef %2496, ptr noundef @.str.6)
  %2498 = call ptr @__errno_location() #11
  %2499 = load i32, ptr %2498, align 4, !tbaa !9
  %2500 = call ptr @strerror(i32 noundef %2499) #10
  %2501 = call ptr @__errno_location() #11
  %2502 = load i32, ptr %2501, align 4, !tbaa !9
  %2503 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2490, ptr noundef @.str.7, i32 noundef %2491, ptr noundef @.str.34, ptr noundef @.str.5, i32 noundef 190, ptr noundef %2494, ptr noundef %2497, ptr noundef %2500, i32 noundef %2502) #10
  br label %2504

2504:                                             ; preds = %2487, %2470
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #10
  br label %2505

2505:                                             ; preds = %2504
  br label %2506

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

2507:                                             ; No predecessors!
  br label %2508

2508:                                             ; preds = %2507
  br label %2509

2509:                                             ; preds = %2508, %2444
  br label %2510

2510:                                             ; preds = %2509
  br label %2511

2511:                                             ; preds = %2510
  br label %2512

2512:                                             ; preds = %2511
  %2513 = load i32, ptr @test_count, align 4, !tbaa !9
  %2514 = add nsw i32 %2513, 1
  store i32 %2514, ptr @test_count, align 4, !tbaa !9
  %2515 = load ptr, ptr %64, align 8, !tbaa !5
  %2516 = getelementptr inbounds %struct.s2n_connection, ptr %2515, i32 0, i32 52
  %2517 = getelementptr inbounds %struct.s2n_handshake, ptr %2516, i32 0, i32 0
  %2518 = getelementptr inbounds %struct.s2n_stuffer, ptr %2517, i32 0, i32 2
  %2519 = load i32, ptr %2518, align 4, !tbaa !27
  %2520 = load ptr, ptr %64, align 8, !tbaa !5
  %2521 = getelementptr inbounds %struct.s2n_connection, ptr %2520, i32 0, i32 52
  %2522 = getelementptr inbounds %struct.s2n_handshake, ptr %2521, i32 0, i32 0
  %2523 = getelementptr inbounds %struct.s2n_stuffer, ptr %2522, i32 0, i32 1
  %2524 = load i32, ptr %2523, align 8, !tbaa !51
  %2525 = sub i32 %2519, %2524
  %2526 = icmp ult i32 10, %2525
  br i1 %2526, label %2580, label %2527

2527:                                             ; preds = %2512
  br label %2528

2528:                                             ; preds = %2527
  br label %2529

2529:                                             ; preds = %2528
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #10
  %2530 = call ptr @__errno_location() #11
  %2531 = load i32, ptr %2530, align 4, !tbaa !9
  store i32 %2531, ptr %68, align 4, !tbaa !9
  %2532 = load ptr, ptr @stderr, align 8, !tbaa !5
  %2533 = call i32 @s2n_print_stacktrace(ptr noundef %2532)
  %2534 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %2535 = trunc i8 %2534 to i1
  br i1 %2535, label %2536, label %2558

2536:                                             ; preds = %2529
  %2537 = load ptr, ptr @stderr, align 8, !tbaa !5
  %2538 = call i32 @fileno(ptr noundef %2537) #10
  %2539 = call i32 @isatty(i32 noundef %2538) #10
  %2540 = icmp ne i32 %2539, 0
  br i1 %2540, label %2541, label %2558

2541:                                             ; preds = %2536
  %2542 = load i32, ptr %68, align 4, !tbaa !9
  %2543 = call ptr @__errno_location() #11
  store i32 %2542, ptr %2543, align 4, !tbaa !9
  %2544 = load ptr, ptr @stderr, align 8, !tbaa !5
  %2545 = load i32, ptr @test_count, align 4, !tbaa !9
  %2546 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2547 = load i32, ptr %2546, align 4, !tbaa !9
  %2548 = call ptr @s2n_strerror(i32 noundef %2547, ptr noundef @.str.6)
  %2549 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2550 = load i32, ptr %2549, align 4, !tbaa !9
  %2551 = call ptr @s2n_strerror_debug(i32 noundef %2550, ptr noundef @.str.6)
  %2552 = call ptr @__errno_location() #11
  %2553 = load i32, ptr %2552, align 4, !tbaa !9
  %2554 = call ptr @strerror(i32 noundef %2553) #10
  %2555 = call ptr @__errno_location() #11
  %2556 = load i32, ptr %2555, align 4, !tbaa !9
  %2557 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2544, ptr noundef @.str.3, i32 noundef %2545, ptr noundef @.str.43, ptr noundef @.str.5, i32 noundef 193, ptr noundef %2548, ptr noundef %2551, ptr noundef %2554, i32 noundef %2556) #10
  br label %2575

2558:                                             ; preds = %2536, %2529
  %2559 = load i32, ptr %68, align 4, !tbaa !9
  %2560 = call ptr @__errno_location() #11
  store i32 %2559, ptr %2560, align 4, !tbaa !9
  %2561 = load ptr, ptr @stderr, align 8, !tbaa !5
  %2562 = load i32, ptr @test_count, align 4, !tbaa !9
  %2563 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2564 = load i32, ptr %2563, align 4, !tbaa !9
  %2565 = call ptr @s2n_strerror(i32 noundef %2564, ptr noundef @.str.6)
  %2566 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2567 = load i32, ptr %2566, align 4, !tbaa !9
  %2568 = call ptr @s2n_strerror_debug(i32 noundef %2567, ptr noundef @.str.6)
  %2569 = call ptr @__errno_location() #11
  %2570 = load i32, ptr %2569, align 4, !tbaa !9
  %2571 = call ptr @strerror(i32 noundef %2570) #10
  %2572 = call ptr @__errno_location() #11
  %2573 = load i32, ptr %2572, align 4, !tbaa !9
  %2574 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2561, ptr noundef @.str.7, i32 noundef %2562, ptr noundef @.str.43, ptr noundef @.str.5, i32 noundef 193, ptr noundef %2565, ptr noundef %2568, ptr noundef %2571, i32 noundef %2573) #10
  br label %2575

2575:                                             ; preds = %2558, %2541
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #10
  br label %2576

2576:                                             ; preds = %2575
  br label %2577

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

2578:                                             ; No predecessors!
  br label %2579

2579:                                             ; preds = %2578
  br label %2580

2580:                                             ; preds = %2579, %2512
  br label %2581

2581:                                             ; preds = %2580
  br label %2582

2582:                                             ; preds = %2581
  %2583 = load ptr, ptr %64, align 8, !tbaa !5
  %2584 = getelementptr inbounds %struct.s2n_connection, ptr %2583, i32 0, i32 52
  %2585 = getelementptr inbounds %struct.s2n_handshake, ptr %2584, i32 0, i32 0
  %2586 = getelementptr inbounds %struct.s2n_stuffer, ptr %2585, i32 0, i32 0
  %2587 = getelementptr inbounds %struct.s2n_blob, ptr %2586, i32 0, i32 0
  %2588 = load ptr, ptr %2587, align 8, !tbaa !60
  %2589 = getelementptr inbounds i8, ptr %2588, i64 10
  %2590 = load i8, ptr %2589, align 1, !tbaa !18
  %2591 = zext i8 %2590 to i32
  %2592 = xor i32 %2591, 1
  %2593 = trunc i32 %2592 to i8
  store i8 %2593, ptr %2589, align 1, !tbaa !18
  br label %2594

2594:                                             ; preds = %2582
  br label %2595

2595:                                             ; preds = %2594
  br label %2596

2596:                                             ; preds = %2595
  %2597 = load i32, ptr @test_count, align 4, !tbaa !9
  %2598 = add nsw i32 %2597, 1
  store i32 %2598, ptr @test_count, align 4, !tbaa !9
  %2599 = load ptr, ptr %64, align 8, !tbaa !5
  %2600 = call i32 @s2n_tls13_cert_verify_recv(ptr noundef %2599)
  %2601 = icmp eq i32 %2600, -1
  br i1 %2601, label %2655, label %2602

2602:                                             ; preds = %2596
  br label %2603

2603:                                             ; preds = %2602
  br label %2604

2604:                                             ; preds = %2603
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #10
  %2605 = call ptr @__errno_location() #11
  %2606 = load i32, ptr %2605, align 4, !tbaa !9
  store i32 %2606, ptr %69, align 4, !tbaa !9
  %2607 = load ptr, ptr @stderr, align 8, !tbaa !5
  %2608 = call i32 @s2n_print_stacktrace(ptr noundef %2607)
  %2609 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %2610 = trunc i8 %2609 to i1
  br i1 %2610, label %2611, label %2633

2611:                                             ; preds = %2604
  %2612 = load ptr, ptr @stderr, align 8, !tbaa !5
  %2613 = call i32 @fileno(ptr noundef %2612) #10
  %2614 = call i32 @isatty(i32 noundef %2613) #10
  %2615 = icmp ne i32 %2614, 0
  br i1 %2615, label %2616, label %2633

2616:                                             ; preds = %2611
  %2617 = load i32, ptr %69, align 4, !tbaa !9
  %2618 = call ptr @__errno_location() #11
  store i32 %2617, ptr %2618, align 4, !tbaa !9
  %2619 = load ptr, ptr @stderr, align 8, !tbaa !5
  %2620 = load i32, ptr @test_count, align 4, !tbaa !9
  %2621 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2622 = load i32, ptr %2621, align 4, !tbaa !9
  %2623 = call ptr @s2n_strerror(i32 noundef %2622, ptr noundef @.str.6)
  %2624 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2625 = load i32, ptr %2624, align 4, !tbaa !9
  %2626 = call ptr @s2n_strerror_debug(i32 noundef %2625, ptr noundef @.str.6)
  %2627 = call ptr @__errno_location() #11
  %2628 = load i32, ptr %2627, align 4, !tbaa !9
  %2629 = call ptr @strerror(i32 noundef %2628) #10
  %2630 = call ptr @__errno_location() #11
  %2631 = load i32, ptr %2630, align 4, !tbaa !9
  %2632 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2619, ptr noundef @.str.3, i32 noundef %2620, ptr noundef @.str.36, ptr noundef @.str.5, i32 noundef 196, ptr noundef %2623, ptr noundef %2626, ptr noundef %2629, i32 noundef %2631) #10
  br label %2650

2633:                                             ; preds = %2611, %2604
  %2634 = load i32, ptr %69, align 4, !tbaa !9
  %2635 = call ptr @__errno_location() #11
  store i32 %2634, ptr %2635, align 4, !tbaa !9
  %2636 = load ptr, ptr @stderr, align 8, !tbaa !5
  %2637 = load i32, ptr @test_count, align 4, !tbaa !9
  %2638 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2639 = load i32, ptr %2638, align 4, !tbaa !9
  %2640 = call ptr @s2n_strerror(i32 noundef %2639, ptr noundef @.str.6)
  %2641 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2642 = load i32, ptr %2641, align 4, !tbaa !9
  %2643 = call ptr @s2n_strerror_debug(i32 noundef %2642, ptr noundef @.str.6)
  %2644 = call ptr @__errno_location() #11
  %2645 = load i32, ptr %2644, align 4, !tbaa !9
  %2646 = call ptr @strerror(i32 noundef %2645) #10
  %2647 = call ptr @__errno_location() #11
  %2648 = load i32, ptr %2647, align 4, !tbaa !9
  %2649 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2636, ptr noundef @.str.7, i32 noundef %2637, ptr noundef @.str.36, ptr noundef @.str.5, i32 noundef 196, ptr noundef %2640, ptr noundef %2643, ptr noundef %2646, i32 noundef %2648) #10
  br label %2650

2650:                                             ; preds = %2633, %2616
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #10
  br label %2651

2651:                                             ; preds = %2650
  br label %2652

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

2653:                                             ; No predecessors!
  br label %2654

2654:                                             ; preds = %2653
  br label %2655

2655:                                             ; preds = %2654, %2596
  br label %2656

2656:                                             ; preds = %2655
  br label %2657

2657:                                             ; preds = %2656
  br label %2658

2658:                                             ; preds = %2657
  %2659 = load i32, ptr @test_count, align 4, !tbaa !9
  %2660 = add nsw i32 %2659, 1
  store i32 %2660, ptr @test_count, align 4, !tbaa !9
  %2661 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2662 = load i32, ptr %2661, align 4, !tbaa !9
  %2663 = icmp eq i32 %2662, 335544353
  br i1 %2663, label %2717, label %2664

2664:                                             ; preds = %2658
  br label %2665

2665:                                             ; preds = %2664
  br label %2666

2666:                                             ; preds = %2665
  call void @llvm.lifetime.start.p0(i64 4, ptr %70) #10
  %2667 = call ptr @__errno_location() #11
  %2668 = load i32, ptr %2667, align 4, !tbaa !9
  store i32 %2668, ptr %70, align 4, !tbaa !9
  %2669 = load ptr, ptr @stderr, align 8, !tbaa !5
  %2670 = call i32 @s2n_print_stacktrace(ptr noundef %2669)
  %2671 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %2672 = trunc i8 %2671 to i1
  br i1 %2672, label %2673, label %2695

2673:                                             ; preds = %2666
  %2674 = load ptr, ptr @stderr, align 8, !tbaa !5
  %2675 = call i32 @fileno(ptr noundef %2674) #10
  %2676 = call i32 @isatty(i32 noundef %2675) #10
  %2677 = icmp ne i32 %2676, 0
  br i1 %2677, label %2678, label %2695

2678:                                             ; preds = %2673
  %2679 = load i32, ptr %70, align 4, !tbaa !9
  %2680 = call ptr @__errno_location() #11
  store i32 %2679, ptr %2680, align 4, !tbaa !9
  %2681 = load ptr, ptr @stderr, align 8, !tbaa !5
  %2682 = load i32, ptr @test_count, align 4, !tbaa !9
  %2683 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2684 = load i32, ptr %2683, align 4, !tbaa !9
  %2685 = call ptr @s2n_strerror(i32 noundef %2684, ptr noundef @.str.6)
  %2686 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2687 = load i32, ptr %2686, align 4, !tbaa !9
  %2688 = call ptr @s2n_strerror_debug(i32 noundef %2687, ptr noundef @.str.6)
  %2689 = call ptr @__errno_location() #11
  %2690 = load i32, ptr %2689, align 4, !tbaa !9
  %2691 = call ptr @strerror(i32 noundef %2690) #10
  %2692 = call ptr @__errno_location() #11
  %2693 = load i32, ptr %2692, align 4, !tbaa !9
  %2694 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2681, ptr noundef @.str.3, i32 noundef %2682, ptr noundef @.str.37, ptr noundef @.str.5, i32 noundef 196, ptr noundef %2685, ptr noundef %2688, ptr noundef %2691, i32 noundef %2693) #10
  br label %2712

2695:                                             ; preds = %2673, %2666
  %2696 = load i32, ptr %70, align 4, !tbaa !9
  %2697 = call ptr @__errno_location() #11
  store i32 %2696, ptr %2697, align 4, !tbaa !9
  %2698 = load ptr, ptr @stderr, align 8, !tbaa !5
  %2699 = load i32, ptr @test_count, align 4, !tbaa !9
  %2700 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2701 = load i32, ptr %2700, align 4, !tbaa !9
  %2702 = call ptr @s2n_strerror(i32 noundef %2701, ptr noundef @.str.6)
  %2703 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2704 = load i32, ptr %2703, align 4, !tbaa !9
  %2705 = call ptr @s2n_strerror_debug(i32 noundef %2704, ptr noundef @.str.6)
  %2706 = call ptr @__errno_location() #11
  %2707 = load i32, ptr %2706, align 4, !tbaa !9
  %2708 = call ptr @strerror(i32 noundef %2707) #10
  %2709 = call ptr @__errno_location() #11
  %2710 = load i32, ptr %2709, align 4, !tbaa !9
  %2711 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2698, ptr noundef @.str.7, i32 noundef %2699, ptr noundef @.str.37, ptr noundef @.str.5, i32 noundef 196, ptr noundef %2702, ptr noundef %2705, ptr noundef %2708, i32 noundef %2710) #10
  br label %2712

2712:                                             ; preds = %2695, %2678
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #10
  br label %2713

2713:                                             ; preds = %2712
  br label %2714

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

2715:                                             ; No predecessors!
  br label %2716

2716:                                             ; preds = %2715
  br label %2717

2717:                                             ; preds = %2716, %2658
  br label %2718

2718:                                             ; preds = %2717
  br label %2719

2719:                                             ; preds = %2718
  br label %2720

2720:                                             ; preds = %2719
  %2721 = load i32, ptr @test_count, align 4, !tbaa !9
  %2722 = add nsw i32 %2721, 1
  store i32 %2722, ptr @test_count, align 4, !tbaa !9
  %2723 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2724 = load i32, ptr %2723, align 4, !tbaa !9
  %2725 = call ptr @s2n_strerror_debug(i32 noundef %2724, ptr noundef @.str.6)
  %2726 = icmp eq ptr %2725, null
  br i1 %2726, label %2727, label %2780

2727:                                             ; preds = %2720
  br label %2728

2728:                                             ; preds = %2727
  br label %2729

2729:                                             ; preds = %2728
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #10
  %2730 = call ptr @__errno_location() #11
  %2731 = load i32, ptr %2730, align 4, !tbaa !9
  store i32 %2731, ptr %71, align 4, !tbaa !9
  %2732 = load ptr, ptr @stderr, align 8, !tbaa !5
  %2733 = call i32 @s2n_print_stacktrace(ptr noundef %2732)
  %2734 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %2735 = trunc i8 %2734 to i1
  br i1 %2735, label %2736, label %2758

2736:                                             ; preds = %2729
  %2737 = load ptr, ptr @stderr, align 8, !tbaa !5
  %2738 = call i32 @fileno(ptr noundef %2737) #10
  %2739 = call i32 @isatty(i32 noundef %2738) #10
  %2740 = icmp ne i32 %2739, 0
  br i1 %2740, label %2741, label %2758

2741:                                             ; preds = %2736
  %2742 = load i32, ptr %71, align 4, !tbaa !9
  %2743 = call ptr @__errno_location() #11
  store i32 %2742, ptr %2743, align 4, !tbaa !9
  %2744 = load ptr, ptr @stderr, align 8, !tbaa !5
  %2745 = load i32, ptr @test_count, align 4, !tbaa !9
  %2746 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2747 = load i32, ptr %2746, align 4, !tbaa !9
  %2748 = call ptr @s2n_strerror(i32 noundef %2747, ptr noundef @.str.6)
  %2749 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2750 = load i32, ptr %2749, align 4, !tbaa !9
  %2751 = call ptr @s2n_strerror_debug(i32 noundef %2750, ptr noundef @.str.6)
  %2752 = call ptr @__errno_location() #11
  %2753 = load i32, ptr %2752, align 4, !tbaa !9
  %2754 = call ptr @strerror(i32 noundef %2753) #10
  %2755 = call ptr @__errno_location() #11
  %2756 = load i32, ptr %2755, align 4, !tbaa !9
  %2757 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2744, ptr noundef @.str.3, i32 noundef %2745, ptr noundef @.str.38, ptr noundef @.str.5, i32 noundef 196, ptr noundef %2748, ptr noundef %2751, ptr noundef %2754, i32 noundef %2756) #10
  br label %2775

2758:                                             ; preds = %2736, %2729
  %2759 = load i32, ptr %71, align 4, !tbaa !9
  %2760 = call ptr @__errno_location() #11
  store i32 %2759, ptr %2760, align 4, !tbaa !9
  %2761 = load ptr, ptr @stderr, align 8, !tbaa !5
  %2762 = load i32, ptr @test_count, align 4, !tbaa !9
  %2763 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2764 = load i32, ptr %2763, align 4, !tbaa !9
  %2765 = call ptr @s2n_strerror(i32 noundef %2764, ptr noundef @.str.6)
  %2766 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2767 = load i32, ptr %2766, align 4, !tbaa !9
  %2768 = call ptr @s2n_strerror_debug(i32 noundef %2767, ptr noundef @.str.6)
  %2769 = call ptr @__errno_location() #11
  %2770 = load i32, ptr %2769, align 4, !tbaa !9
  %2771 = call ptr @strerror(i32 noundef %2770) #10
  %2772 = call ptr @__errno_location() #11
  %2773 = load i32, ptr %2772, align 4, !tbaa !9
  %2774 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2761, ptr noundef @.str.7, i32 noundef %2762, ptr noundef @.str.38, ptr noundef @.str.5, i32 noundef 196, ptr noundef %2765, ptr noundef %2768, ptr noundef %2771, i32 noundef %2773) #10
  br label %2775

2775:                                             ; preds = %2758, %2741
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #10
  br label %2776

2776:                                             ; preds = %2775
  br label %2777

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

2778:                                             ; No predecessors!
  br label %2779

2779:                                             ; preds = %2778
  br label %2780

2780:                                             ; preds = %2779, %2720
  br label %2781

2781:                                             ; preds = %2780
  br label %2782

2782:                                             ; preds = %2781
  br label %2783

2783:                                             ; preds = %2782
  br label %2784

2784:                                             ; preds = %2783
  br label %2785

2785:                                             ; preds = %2784
  %2786 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %2786, align 4, !tbaa !9
  call void @s2n_debug_info_reset()
  %2787 = call ptr @__errno_location() #11
  store i32 0, ptr %2787, align 4, !tbaa !9
  br label %2788

2788:                                             ; preds = %2785
  br label %2789

2789:                                             ; preds = %2788
  br label %2790

2790:                                             ; preds = %2789
  br label %2791

2791:                                             ; preds = %2790
  %2792 = call i32 @s2n_connection_ptr_free(ptr noundef %64)
  %2793 = getelementptr inbounds %struct.s2n_result, ptr %72, i32 0, i32 0
  store i32 %2792, ptr %2793, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #10
  %2794 = call i32 @s2n_connection_ptr_free(ptr noundef %62)
  %2795 = getelementptr inbounds %struct.s2n_result, ptr %73, i32 0, i32 0
  store i32 %2794, ptr %2795, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %74) #10
  %2796 = load i32, ptr %4, align 4, !tbaa !9
  %2797 = add i32 %2796, 1
  %2798 = urem i32 %2797, 2
  %2799 = call ptr @s2n_connection_new(i32 noundef %2798)
  store ptr %2799, ptr %74, align 8, !tbaa !5
  br label %2800

2800:                                             ; preds = %2791
  %2801 = load i32, ptr @test_count, align 4, !tbaa !9
  %2802 = add nsw i32 %2801, 1
  store i32 %2802, ptr @test_count, align 4, !tbaa !9
  %2803 = load ptr, ptr %74, align 8, !tbaa !5
  %2804 = icmp eq ptr %2803, null
  br i1 %2804, label %2805, label %2858

2805:                                             ; preds = %2800
  br label %2806

2806:                                             ; preds = %2805
  br label %2807

2807:                                             ; preds = %2806
  call void @llvm.lifetime.start.p0(i64 4, ptr %75) #10
  %2808 = call ptr @__errno_location() #11
  %2809 = load i32, ptr %2808, align 4, !tbaa !9
  store i32 %2809, ptr %75, align 4, !tbaa !9
  %2810 = load ptr, ptr @stderr, align 8, !tbaa !5
  %2811 = call i32 @s2n_print_stacktrace(ptr noundef %2810)
  %2812 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %2813 = trunc i8 %2812 to i1
  br i1 %2813, label %2814, label %2836

2814:                                             ; preds = %2807
  %2815 = load ptr, ptr @stderr, align 8, !tbaa !5
  %2816 = call i32 @fileno(ptr noundef %2815) #10
  %2817 = call i32 @isatty(i32 noundef %2816) #10
  %2818 = icmp ne i32 %2817, 0
  br i1 %2818, label %2819, label %2836

2819:                                             ; preds = %2814
  %2820 = load i32, ptr %75, align 4, !tbaa !9
  %2821 = call ptr @__errno_location() #11
  store i32 %2820, ptr %2821, align 4, !tbaa !9
  %2822 = load ptr, ptr @stderr, align 8, !tbaa !5
  %2823 = load i32, ptr @test_count, align 4, !tbaa !9
  %2824 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2825 = load i32, ptr %2824, align 4, !tbaa !9
  %2826 = call ptr @s2n_strerror(i32 noundef %2825, ptr noundef @.str.6)
  %2827 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2828 = load i32, ptr %2827, align 4, !tbaa !9
  %2829 = call ptr @s2n_strerror_debug(i32 noundef %2828, ptr noundef @.str.6)
  %2830 = call ptr @__errno_location() #11
  %2831 = load i32, ptr %2830, align 4, !tbaa !9
  %2832 = call ptr @strerror(i32 noundef %2831) #10
  %2833 = call ptr @__errno_location() #11
  %2834 = load i32, ptr %2833, align 4, !tbaa !9
  %2835 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2822, ptr noundef @.str.3, i32 noundef %2823, ptr noundef @.str.32, ptr noundef @.str.5, i32 noundef 203, ptr noundef %2826, ptr noundef %2829, ptr noundef %2832, i32 noundef %2834) #10
  br label %2853

2836:                                             ; preds = %2814, %2807
  %2837 = load i32, ptr %75, align 4, !tbaa !9
  %2838 = call ptr @__errno_location() #11
  store i32 %2837, ptr %2838, align 4, !tbaa !9
  %2839 = load ptr, ptr @stderr, align 8, !tbaa !5
  %2840 = load i32, ptr @test_count, align 4, !tbaa !9
  %2841 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2842 = load i32, ptr %2841, align 4, !tbaa !9
  %2843 = call ptr @s2n_strerror(i32 noundef %2842, ptr noundef @.str.6)
  %2844 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2845 = load i32, ptr %2844, align 4, !tbaa !9
  %2846 = call ptr @s2n_strerror_debug(i32 noundef %2845, ptr noundef @.str.6)
  %2847 = call ptr @__errno_location() #11
  %2848 = load i32, ptr %2847, align 4, !tbaa !9
  %2849 = call ptr @strerror(i32 noundef %2848) #10
  %2850 = call ptr @__errno_location() #11
  %2851 = load i32, ptr %2850, align 4, !tbaa !9
  %2852 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2839, ptr noundef @.str.7, i32 noundef %2840, ptr noundef @.str.32, ptr noundef @.str.5, i32 noundef 203, ptr noundef %2843, ptr noundef %2846, ptr noundef %2849, i32 noundef %2851) #10
  br label %2853

2853:                                             ; preds = %2836, %2819
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #10
  br label %2854

2854:                                             ; preds = %2853
  br label %2855

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

2856:                                             ; No predecessors!
  br label %2857

2857:                                             ; preds = %2856
  br label %2858

2858:                                             ; preds = %2857, %2800
  br label %2859

2859:                                             ; preds = %2858
  br label %2860

2860:                                             ; preds = %2859
  call void @llvm.lifetime.start.p0(i64 8, ptr %76) #10
  %2861 = load i32, ptr %4, align 4, !tbaa !9
  %2862 = call ptr @s2n_connection_new(i32 noundef %2861)
  store ptr %2862, ptr %76, align 8, !tbaa !5
  br label %2863

2863:                                             ; preds = %2860
  %2864 = load i32, ptr @test_count, align 4, !tbaa !9
  %2865 = add nsw i32 %2864, 1
  store i32 %2865, ptr @test_count, align 4, !tbaa !9
  %2866 = load ptr, ptr %76, align 8, !tbaa !5
  %2867 = icmp eq ptr %2866, null
  br i1 %2867, label %2868, label %2921

2868:                                             ; preds = %2863
  br label %2869

2869:                                             ; preds = %2868
  br label %2870

2870:                                             ; preds = %2869
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #10
  %2871 = call ptr @__errno_location() #11
  %2872 = load i32, ptr %2871, align 4, !tbaa !9
  store i32 %2872, ptr %77, align 4, !tbaa !9
  %2873 = load ptr, ptr @stderr, align 8, !tbaa !5
  %2874 = call i32 @s2n_print_stacktrace(ptr noundef %2873)
  %2875 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %2876 = trunc i8 %2875 to i1
  br i1 %2876, label %2877, label %2899

2877:                                             ; preds = %2870
  %2878 = load ptr, ptr @stderr, align 8, !tbaa !5
  %2879 = call i32 @fileno(ptr noundef %2878) #10
  %2880 = call i32 @isatty(i32 noundef %2879) #10
  %2881 = icmp ne i32 %2880, 0
  br i1 %2881, label %2882, label %2899

2882:                                             ; preds = %2877
  %2883 = load i32, ptr %77, align 4, !tbaa !9
  %2884 = call ptr @__errno_location() #11
  store i32 %2883, ptr %2884, align 4, !tbaa !9
  %2885 = load ptr, ptr @stderr, align 8, !tbaa !5
  %2886 = load i32, ptr @test_count, align 4, !tbaa !9
  %2887 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2888 = load i32, ptr %2887, align 4, !tbaa !9
  %2889 = call ptr @s2n_strerror(i32 noundef %2888, ptr noundef @.str.6)
  %2890 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2891 = load i32, ptr %2890, align 4, !tbaa !9
  %2892 = call ptr @s2n_strerror_debug(i32 noundef %2891, ptr noundef @.str.6)
  %2893 = call ptr @__errno_location() #11
  %2894 = load i32, ptr %2893, align 4, !tbaa !9
  %2895 = call ptr @strerror(i32 noundef %2894) #10
  %2896 = call ptr @__errno_location() #11
  %2897 = load i32, ptr %2896, align 4, !tbaa !9
  %2898 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2885, ptr noundef @.str.3, i32 noundef %2886, ptr noundef @.str.33, ptr noundef @.str.5, i32 noundef 207, ptr noundef %2889, ptr noundef %2892, ptr noundef %2895, i32 noundef %2897) #10
  br label %2916

2899:                                             ; preds = %2877, %2870
  %2900 = load i32, ptr %77, align 4, !tbaa !9
  %2901 = call ptr @__errno_location() #11
  store i32 %2900, ptr %2901, align 4, !tbaa !9
  %2902 = load ptr, ptr @stderr, align 8, !tbaa !5
  %2903 = load i32, ptr @test_count, align 4, !tbaa !9
  %2904 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2905 = load i32, ptr %2904, align 4, !tbaa !9
  %2906 = call ptr @s2n_strerror(i32 noundef %2905, ptr noundef @.str.6)
  %2907 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2908 = load i32, ptr %2907, align 4, !tbaa !9
  %2909 = call ptr @s2n_strerror_debug(i32 noundef %2908, ptr noundef @.str.6)
  %2910 = call ptr @__errno_location() #11
  %2911 = load i32, ptr %2910, align 4, !tbaa !9
  %2912 = call ptr @strerror(i32 noundef %2911) #10
  %2913 = call ptr @__errno_location() #11
  %2914 = load i32, ptr %2913, align 4, !tbaa !9
  %2915 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2902, ptr noundef @.str.7, i32 noundef %2903, ptr noundef @.str.33, ptr noundef @.str.5, i32 noundef 207, ptr noundef %2906, ptr noundef %2909, ptr noundef %2912, i32 noundef %2914) #10
  br label %2916

2916:                                             ; preds = %2899, %2882
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #10
  br label %2917

2917:                                             ; preds = %2916
  br label %2918

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

2919:                                             ; No predecessors!
  br label %2920

2920:                                             ; preds = %2919
  br label %2921

2921:                                             ; preds = %2920, %2863
  br label %2922

2922:                                             ; preds = %2921
  br label %2923

2923:                                             ; preds = %2922
  br label %2924

2924:                                             ; preds = %2923
  %2925 = load i32, ptr @test_count, align 4, !tbaa !9
  %2926 = add nsw i32 %2925, 1
  store i32 %2926, ptr @test_count, align 4, !tbaa !9
  %2927 = load ptr, ptr %74, align 8, !tbaa !5
  %2928 = load ptr, ptr %76, align 8, !tbaa !5
  %2929 = load ptr, ptr %15, align 8, !tbaa !5
  %2930 = load ptr, ptr %12, align 8, !tbaa !5
  %2931 = call i32 @s2n_cert_verify_connection_setup_and_send(ptr noundef %2927, ptr noundef %2928, ptr noundef %2929, ptr noundef %2930, ptr noundef %7, ptr noundef %26)
  %2932 = getelementptr inbounds %struct.s2n_result, ptr %78, i32 0, i32 0
  store i32 %2931, ptr %2932, align 4
  %2933 = getelementptr inbounds %struct.s2n_result, ptr %78, i32 0, i32 0
  %2934 = load i32, ptr %2933, align 4
  %2935 = call zeroext i1 @s2n_result_is_ok(i32 %2934)
  br i1 %2935, label %2989, label %2936

2936:                                             ; preds = %2924
  br label %2937

2937:                                             ; preds = %2936
  br label %2938

2938:                                             ; preds = %2937
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #10
  %2939 = call ptr @__errno_location() #11
  %2940 = load i32, ptr %2939, align 4, !tbaa !9
  store i32 %2940, ptr %79, align 4, !tbaa !9
  %2941 = load ptr, ptr @stderr, align 8, !tbaa !5
  %2942 = call i32 @s2n_print_stacktrace(ptr noundef %2941)
  %2943 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %2944 = trunc i8 %2943 to i1
  br i1 %2944, label %2945, label %2967

2945:                                             ; preds = %2938
  %2946 = load ptr, ptr @stderr, align 8, !tbaa !5
  %2947 = call i32 @fileno(ptr noundef %2946) #10
  %2948 = call i32 @isatty(i32 noundef %2947) #10
  %2949 = icmp ne i32 %2948, 0
  br i1 %2949, label %2950, label %2967

2950:                                             ; preds = %2945
  %2951 = load i32, ptr %79, align 4, !tbaa !9
  %2952 = call ptr @__errno_location() #11
  store i32 %2951, ptr %2952, align 4, !tbaa !9
  %2953 = load ptr, ptr @stderr, align 8, !tbaa !5
  %2954 = load i32, ptr @test_count, align 4, !tbaa !9
  %2955 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2956 = load i32, ptr %2955, align 4, !tbaa !9
  %2957 = call ptr @s2n_strerror(i32 noundef %2956, ptr noundef @.str.6)
  %2958 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2959 = load i32, ptr %2958, align 4, !tbaa !9
  %2960 = call ptr @s2n_strerror_debug(i32 noundef %2959, ptr noundef @.str.6)
  %2961 = call ptr @__errno_location() #11
  %2962 = load i32, ptr %2961, align 4, !tbaa !9
  %2963 = call ptr @strerror(i32 noundef %2962) #10
  %2964 = call ptr @__errno_location() #11
  %2965 = load i32, ptr %2964, align 4, !tbaa !9
  %2966 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2953, ptr noundef @.str.3, i32 noundef %2954, ptr noundef @.str.34, ptr noundef @.str.5, i32 noundef 209, ptr noundef %2957, ptr noundef %2960, ptr noundef %2963, i32 noundef %2965) #10
  br label %2984

2967:                                             ; preds = %2945, %2938
  %2968 = load i32, ptr %79, align 4, !tbaa !9
  %2969 = call ptr @__errno_location() #11
  store i32 %2968, ptr %2969, align 4, !tbaa !9
  %2970 = load ptr, ptr @stderr, align 8, !tbaa !5
  %2971 = load i32, ptr @test_count, align 4, !tbaa !9
  %2972 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2973 = load i32, ptr %2972, align 4, !tbaa !9
  %2974 = call ptr @s2n_strerror(i32 noundef %2973, ptr noundef @.str.6)
  %2975 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2976 = load i32, ptr %2975, align 4, !tbaa !9
  %2977 = call ptr @s2n_strerror_debug(i32 noundef %2976, ptr noundef @.str.6)
  %2978 = call ptr @__errno_location() #11
  %2979 = load i32, ptr %2978, align 4, !tbaa !9
  %2980 = call ptr @strerror(i32 noundef %2979) #10
  %2981 = call ptr @__errno_location() #11
  %2982 = load i32, ptr %2981, align 4, !tbaa !9
  %2983 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2970, ptr noundef @.str.7, i32 noundef %2971, ptr noundef @.str.34, ptr noundef @.str.5, i32 noundef 209, ptr noundef %2974, ptr noundef %2977, ptr noundef %2980, i32 noundef %2982) #10
  br label %2984

2984:                                             ; preds = %2967, %2950
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #10
  br label %2985

2985:                                             ; preds = %2984
  br label %2986

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

2987:                                             ; No predecessors!
  br label %2988

2988:                                             ; preds = %2987
  br label %2989

2989:                                             ; preds = %2988, %2924
  br label %2990

2990:                                             ; preds = %2989
  br label %2991

2991:                                             ; preds = %2990
  call void @llvm.lifetime.start.p0(i64 40, ptr %80) #10
  %2992 = load ptr, ptr %76, align 8, !tbaa !5
  %2993 = getelementptr inbounds %struct.s2n_connection, ptr %2992, i32 0, i32 52
  %2994 = getelementptr inbounds %struct.s2n_handshake, ptr %2993, i32 0, i32 0
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %80, ptr align 8 %2994, i64 40, i1 false), !tbaa.struct !61
  br label %2995

2995:                                             ; preds = %2991
  %2996 = load i32, ptr @test_count, align 4, !tbaa !9
  %2997 = add nsw i32 %2996, 1
  store i32 %2997, ptr @test_count, align 4, !tbaa !9
  %2998 = call i32 @s2n_stuffer_rewrite(ptr noundef %80)
  %2999 = icmp eq i32 %2998, -1
  br i1 %2999, label %3000, label %3053

3000:                                             ; preds = %2995
  br label %3001

3001:                                             ; preds = %3000
  br label %3002

3002:                                             ; preds = %3001
  call void @llvm.lifetime.start.p0(i64 4, ptr %81) #10
  %3003 = call ptr @__errno_location() #11
  %3004 = load i32, ptr %3003, align 4, !tbaa !9
  store i32 %3004, ptr %81, align 4, !tbaa !9
  %3005 = load ptr, ptr @stderr, align 8, !tbaa !5
  %3006 = call i32 @s2n_print_stacktrace(ptr noundef %3005)
  %3007 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %3008 = trunc i8 %3007 to i1
  br i1 %3008, label %3009, label %3031

3009:                                             ; preds = %3002
  %3010 = load ptr, ptr @stderr, align 8, !tbaa !5
  %3011 = call i32 @fileno(ptr noundef %3010) #10
  %3012 = call i32 @isatty(i32 noundef %3011) #10
  %3013 = icmp ne i32 %3012, 0
  br i1 %3013, label %3014, label %3031

3014:                                             ; preds = %3009
  %3015 = load i32, ptr %81, align 4, !tbaa !9
  %3016 = call ptr @__errno_location() #11
  store i32 %3015, ptr %3016, align 4, !tbaa !9
  %3017 = load ptr, ptr @stderr, align 8, !tbaa !5
  %3018 = load i32, ptr @test_count, align 4, !tbaa !9
  %3019 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3020 = load i32, ptr %3019, align 4, !tbaa !9
  %3021 = call ptr @s2n_strerror(i32 noundef %3020, ptr noundef @.str.6)
  %3022 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3023 = load i32, ptr %3022, align 4, !tbaa !9
  %3024 = call ptr @s2n_strerror_debug(i32 noundef %3023, ptr noundef @.str.6)
  %3025 = call ptr @__errno_location() #11
  %3026 = load i32, ptr %3025, align 4, !tbaa !9
  %3027 = call ptr @strerror(i32 noundef %3026) #10
  %3028 = call ptr @__errno_location() #11
  %3029 = load i32, ptr %3028, align 4, !tbaa !9
  %3030 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3017, ptr noundef @.str.3, i32 noundef %3018, ptr noundef @.str.44, ptr noundef @.str.5, i32 noundef 213, ptr noundef %3021, ptr noundef %3024, ptr noundef %3027, i32 noundef %3029) #10
  br label %3048

3031:                                             ; preds = %3009, %3002
  %3032 = load i32, ptr %81, align 4, !tbaa !9
  %3033 = call ptr @__errno_location() #11
  store i32 %3032, ptr %3033, align 4, !tbaa !9
  %3034 = load ptr, ptr @stderr, align 8, !tbaa !5
  %3035 = load i32, ptr @test_count, align 4, !tbaa !9
  %3036 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3037 = load i32, ptr %3036, align 4, !tbaa !9
  %3038 = call ptr @s2n_strerror(i32 noundef %3037, ptr noundef @.str.6)
  %3039 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3040 = load i32, ptr %3039, align 4, !tbaa !9
  %3041 = call ptr @s2n_strerror_debug(i32 noundef %3040, ptr noundef @.str.6)
  %3042 = call ptr @__errno_location() #11
  %3043 = load i32, ptr %3042, align 4, !tbaa !9
  %3044 = call ptr @strerror(i32 noundef %3043) #10
  %3045 = call ptr @__errno_location() #11
  %3046 = load i32, ptr %3045, align 4, !tbaa !9
  %3047 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3034, ptr noundef @.str.7, i32 noundef %3035, ptr noundef @.str.44, ptr noundef @.str.5, i32 noundef 213, ptr noundef %3038, ptr noundef %3041, ptr noundef %3044, i32 noundef %3046) #10
  br label %3048

3048:                                             ; preds = %3031, %3014
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #10
  br label %3049

3049:                                             ; preds = %3048
  br label %3050

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

3051:                                             ; No predecessors!
  br label %3052

3052:                                             ; preds = %3051
  br label %3053

3053:                                             ; preds = %3052, %2995
  br label %3054

3054:                                             ; preds = %3053
  br label %3055

3055:                                             ; preds = %3054
  br label %3056

3056:                                             ; preds = %3055
  %3057 = load i32, ptr @test_count, align 4, !tbaa !9
  %3058 = add nsw i32 %3057, 1
  store i32 %3058, ptr @test_count, align 4, !tbaa !9
  %3059 = load ptr, ptr %3, align 8, !tbaa !5
  %3060 = getelementptr inbounds %struct.s2n_tls13_cert_verify_test, ptr %3059, i32 0, i32 3
  %3061 = load ptr, ptr %3060, align 8, !tbaa !62
  %3062 = getelementptr inbounds %struct.s2n_signature_scheme, ptr %3061, i32 0, i32 0
  %3063 = load i16, ptr %3062, align 8, !tbaa !63
  %3064 = call i32 @s2n_stuffer_write_uint16(ptr noundef %80, i16 noundef zeroext %3063)
  %3065 = icmp eq i32 %3064, -1
  br i1 %3065, label %3066, label %3119

3066:                                             ; preds = %3056
  br label %3067

3067:                                             ; preds = %3066
  br label %3068

3068:                                             ; preds = %3067
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #10
  %3069 = call ptr @__errno_location() #11
  %3070 = load i32, ptr %3069, align 4, !tbaa !9
  store i32 %3070, ptr %82, align 4, !tbaa !9
  %3071 = load ptr, ptr @stderr, align 8, !tbaa !5
  %3072 = call i32 @s2n_print_stacktrace(ptr noundef %3071)
  %3073 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %3074 = trunc i8 %3073 to i1
  br i1 %3074, label %3075, label %3097

3075:                                             ; preds = %3068
  %3076 = load ptr, ptr @stderr, align 8, !tbaa !5
  %3077 = call i32 @fileno(ptr noundef %3076) #10
  %3078 = call i32 @isatty(i32 noundef %3077) #10
  %3079 = icmp ne i32 %3078, 0
  br i1 %3079, label %3080, label %3097

3080:                                             ; preds = %3075
  %3081 = load i32, ptr %82, align 4, !tbaa !9
  %3082 = call ptr @__errno_location() #11
  store i32 %3081, ptr %3082, align 4, !tbaa !9
  %3083 = load ptr, ptr @stderr, align 8, !tbaa !5
  %3084 = load i32, ptr @test_count, align 4, !tbaa !9
  %3085 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3086 = load i32, ptr %3085, align 4, !tbaa !9
  %3087 = call ptr @s2n_strerror(i32 noundef %3086, ptr noundef @.str.6)
  %3088 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3089 = load i32, ptr %3088, align 4, !tbaa !9
  %3090 = call ptr @s2n_strerror_debug(i32 noundef %3089, ptr noundef @.str.6)
  %3091 = call ptr @__errno_location() #11
  %3092 = load i32, ptr %3091, align 4, !tbaa !9
  %3093 = call ptr @strerror(i32 noundef %3092) #10
  %3094 = call ptr @__errno_location() #11
  %3095 = load i32, ptr %3094, align 4, !tbaa !9
  %3096 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3083, ptr noundef @.str.3, i32 noundef %3084, ptr noundef @.str.45, ptr noundef @.str.5, i32 noundef 214, ptr noundef %3087, ptr noundef %3090, ptr noundef %3093, i32 noundef %3095) #10
  br label %3114

3097:                                             ; preds = %3075, %3068
  %3098 = load i32, ptr %82, align 4, !tbaa !9
  %3099 = call ptr @__errno_location() #11
  store i32 %3098, ptr %3099, align 4, !tbaa !9
  %3100 = load ptr, ptr @stderr, align 8, !tbaa !5
  %3101 = load i32, ptr @test_count, align 4, !tbaa !9
  %3102 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3103 = load i32, ptr %3102, align 4, !tbaa !9
  %3104 = call ptr @s2n_strerror(i32 noundef %3103, ptr noundef @.str.6)
  %3105 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3106 = load i32, ptr %3105, align 4, !tbaa !9
  %3107 = call ptr @s2n_strerror_debug(i32 noundef %3106, ptr noundef @.str.6)
  %3108 = call ptr @__errno_location() #11
  %3109 = load i32, ptr %3108, align 4, !tbaa !9
  %3110 = call ptr @strerror(i32 noundef %3109) #10
  %3111 = call ptr @__errno_location() #11
  %3112 = load i32, ptr %3111, align 4, !tbaa !9
  %3113 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3100, ptr noundef @.str.7, i32 noundef %3101, ptr noundef @.str.45, ptr noundef @.str.5, i32 noundef 214, ptr noundef %3104, ptr noundef %3107, ptr noundef %3110, i32 noundef %3112) #10
  br label %3114

3114:                                             ; preds = %3097, %3080
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #10
  br label %3115

3115:                                             ; preds = %3114
  br label %3116

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

3117:                                             ; No predecessors!
  br label %3118

3118:                                             ; preds = %3117
  br label %3119

3119:                                             ; preds = %3118, %3056
  br label %3120

3120:                                             ; preds = %3119
  br label %3121

3121:                                             ; preds = %3120
  br label %3122

3122:                                             ; preds = %3121
  br label %3123

3123:                                             ; preds = %3122
  br label %3124

3124:                                             ; preds = %3123
  %3125 = load i32, ptr @test_count, align 4, !tbaa !9
  %3126 = add nsw i32 %3125, 1
  store i32 %3126, ptr @test_count, align 4, !tbaa !9
  %3127 = load ptr, ptr %76, align 8, !tbaa !5
  %3128 = call i32 @s2n_tls13_cert_verify_recv(ptr noundef %3127)
  %3129 = icmp eq i32 %3128, -1
  br i1 %3129, label %3183, label %3130

3130:                                             ; preds = %3124
  br label %3131

3131:                                             ; preds = %3130
  br label %3132

3132:                                             ; preds = %3131
  call void @llvm.lifetime.start.p0(i64 4, ptr %83) #10
  %3133 = call ptr @__errno_location() #11
  %3134 = load i32, ptr %3133, align 4, !tbaa !9
  store i32 %3134, ptr %83, align 4, !tbaa !9
  %3135 = load ptr, ptr @stderr, align 8, !tbaa !5
  %3136 = call i32 @s2n_print_stacktrace(ptr noundef %3135)
  %3137 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %3138 = trunc i8 %3137 to i1
  br i1 %3138, label %3139, label %3161

3139:                                             ; preds = %3132
  %3140 = load ptr, ptr @stderr, align 8, !tbaa !5
  %3141 = call i32 @fileno(ptr noundef %3140) #10
  %3142 = call i32 @isatty(i32 noundef %3141) #10
  %3143 = icmp ne i32 %3142, 0
  br i1 %3143, label %3144, label %3161

3144:                                             ; preds = %3139
  %3145 = load i32, ptr %83, align 4, !tbaa !9
  %3146 = call ptr @__errno_location() #11
  store i32 %3145, ptr %3146, align 4, !tbaa !9
  %3147 = load ptr, ptr @stderr, align 8, !tbaa !5
  %3148 = load i32, ptr @test_count, align 4, !tbaa !9
  %3149 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3150 = load i32, ptr %3149, align 4, !tbaa !9
  %3151 = call ptr @s2n_strerror(i32 noundef %3150, ptr noundef @.str.6)
  %3152 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3153 = load i32, ptr %3152, align 4, !tbaa !9
  %3154 = call ptr @s2n_strerror_debug(i32 noundef %3153, ptr noundef @.str.6)
  %3155 = call ptr @__errno_location() #11
  %3156 = load i32, ptr %3155, align 4, !tbaa !9
  %3157 = call ptr @strerror(i32 noundef %3156) #10
  %3158 = call ptr @__errno_location() #11
  %3159 = load i32, ptr %3158, align 4, !tbaa !9
  %3160 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3147, ptr noundef @.str.3, i32 noundef %3148, ptr noundef @.str.36, ptr noundef @.str.5, i32 noundef 216, ptr noundef %3151, ptr noundef %3154, ptr noundef %3157, i32 noundef %3159) #10
  br label %3178

3161:                                             ; preds = %3139, %3132
  %3162 = load i32, ptr %83, align 4, !tbaa !9
  %3163 = call ptr @__errno_location() #11
  store i32 %3162, ptr %3163, align 4, !tbaa !9
  %3164 = load ptr, ptr @stderr, align 8, !tbaa !5
  %3165 = load i32, ptr @test_count, align 4, !tbaa !9
  %3166 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3167 = load i32, ptr %3166, align 4, !tbaa !9
  %3168 = call ptr @s2n_strerror(i32 noundef %3167, ptr noundef @.str.6)
  %3169 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3170 = load i32, ptr %3169, align 4, !tbaa !9
  %3171 = call ptr @s2n_strerror_debug(i32 noundef %3170, ptr noundef @.str.6)
  %3172 = call ptr @__errno_location() #11
  %3173 = load i32, ptr %3172, align 4, !tbaa !9
  %3174 = call ptr @strerror(i32 noundef %3173) #10
  %3175 = call ptr @__errno_location() #11
  %3176 = load i32, ptr %3175, align 4, !tbaa !9
  %3177 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3164, ptr noundef @.str.7, i32 noundef %3165, ptr noundef @.str.36, ptr noundef @.str.5, i32 noundef 216, ptr noundef %3168, ptr noundef %3171, ptr noundef %3174, i32 noundef %3176) #10
  br label %3178

3178:                                             ; preds = %3161, %3144
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #10
  br label %3179

3179:                                             ; preds = %3178
  br label %3180

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

3181:                                             ; No predecessors!
  br label %3182

3182:                                             ; preds = %3181
  br label %3183

3183:                                             ; preds = %3182, %3124
  br label %3184

3184:                                             ; preds = %3183
  br label %3185

3185:                                             ; preds = %3184
  br label %3186

3186:                                             ; preds = %3185
  %3187 = load i32, ptr @test_count, align 4, !tbaa !9
  %3188 = add nsw i32 %3187, 1
  store i32 %3188, ptr @test_count, align 4, !tbaa !9
  %3189 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3190 = load i32, ptr %3189, align 4, !tbaa !9
  %3191 = icmp eq i32 %3190, 335544353
  br i1 %3191, label %3245, label %3192

3192:                                             ; preds = %3186
  br label %3193

3193:                                             ; preds = %3192
  br label %3194

3194:                                             ; preds = %3193
  call void @llvm.lifetime.start.p0(i64 4, ptr %84) #10
  %3195 = call ptr @__errno_location() #11
  %3196 = load i32, ptr %3195, align 4, !tbaa !9
  store i32 %3196, ptr %84, align 4, !tbaa !9
  %3197 = load ptr, ptr @stderr, align 8, !tbaa !5
  %3198 = call i32 @s2n_print_stacktrace(ptr noundef %3197)
  %3199 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %3200 = trunc i8 %3199 to i1
  br i1 %3200, label %3201, label %3223

3201:                                             ; preds = %3194
  %3202 = load ptr, ptr @stderr, align 8, !tbaa !5
  %3203 = call i32 @fileno(ptr noundef %3202) #10
  %3204 = call i32 @isatty(i32 noundef %3203) #10
  %3205 = icmp ne i32 %3204, 0
  br i1 %3205, label %3206, label %3223

3206:                                             ; preds = %3201
  %3207 = load i32, ptr %84, align 4, !tbaa !9
  %3208 = call ptr @__errno_location() #11
  store i32 %3207, ptr %3208, align 4, !tbaa !9
  %3209 = load ptr, ptr @stderr, align 8, !tbaa !5
  %3210 = load i32, ptr @test_count, align 4, !tbaa !9
  %3211 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3212 = load i32, ptr %3211, align 4, !tbaa !9
  %3213 = call ptr @s2n_strerror(i32 noundef %3212, ptr noundef @.str.6)
  %3214 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3215 = load i32, ptr %3214, align 4, !tbaa !9
  %3216 = call ptr @s2n_strerror_debug(i32 noundef %3215, ptr noundef @.str.6)
  %3217 = call ptr @__errno_location() #11
  %3218 = load i32, ptr %3217, align 4, !tbaa !9
  %3219 = call ptr @strerror(i32 noundef %3218) #10
  %3220 = call ptr @__errno_location() #11
  %3221 = load i32, ptr %3220, align 4, !tbaa !9
  %3222 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3209, ptr noundef @.str.3, i32 noundef %3210, ptr noundef @.str.37, ptr noundef @.str.5, i32 noundef 216, ptr noundef %3213, ptr noundef %3216, ptr noundef %3219, i32 noundef %3221) #10
  br label %3240

3223:                                             ; preds = %3201, %3194
  %3224 = load i32, ptr %84, align 4, !tbaa !9
  %3225 = call ptr @__errno_location() #11
  store i32 %3224, ptr %3225, align 4, !tbaa !9
  %3226 = load ptr, ptr @stderr, align 8, !tbaa !5
  %3227 = load i32, ptr @test_count, align 4, !tbaa !9
  %3228 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3229 = load i32, ptr %3228, align 4, !tbaa !9
  %3230 = call ptr @s2n_strerror(i32 noundef %3229, ptr noundef @.str.6)
  %3231 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3232 = load i32, ptr %3231, align 4, !tbaa !9
  %3233 = call ptr @s2n_strerror_debug(i32 noundef %3232, ptr noundef @.str.6)
  %3234 = call ptr @__errno_location() #11
  %3235 = load i32, ptr %3234, align 4, !tbaa !9
  %3236 = call ptr @strerror(i32 noundef %3235) #10
  %3237 = call ptr @__errno_location() #11
  %3238 = load i32, ptr %3237, align 4, !tbaa !9
  %3239 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3226, ptr noundef @.str.7, i32 noundef %3227, ptr noundef @.str.37, ptr noundef @.str.5, i32 noundef 216, ptr noundef %3230, ptr noundef %3233, ptr noundef %3236, i32 noundef %3238) #10
  br label %3240

3240:                                             ; preds = %3223, %3206
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #10
  br label %3241

3241:                                             ; preds = %3240
  br label %3242

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

3243:                                             ; No predecessors!
  br label %3244

3244:                                             ; preds = %3243
  br label %3245

3245:                                             ; preds = %3244, %3186
  br label %3246

3246:                                             ; preds = %3245
  br label %3247

3247:                                             ; preds = %3246
  br label %3248

3248:                                             ; preds = %3247
  %3249 = load i32, ptr @test_count, align 4, !tbaa !9
  %3250 = add nsw i32 %3249, 1
  store i32 %3250, ptr @test_count, align 4, !tbaa !9
  %3251 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3252 = load i32, ptr %3251, align 4, !tbaa !9
  %3253 = call ptr @s2n_strerror_debug(i32 noundef %3252, ptr noundef @.str.6)
  %3254 = icmp eq ptr %3253, null
  br i1 %3254, label %3255, label %3308

3255:                                             ; preds = %3248
  br label %3256

3256:                                             ; preds = %3255
  br label %3257

3257:                                             ; preds = %3256
  call void @llvm.lifetime.start.p0(i64 4, ptr %85) #10
  %3258 = call ptr @__errno_location() #11
  %3259 = load i32, ptr %3258, align 4, !tbaa !9
  store i32 %3259, ptr %85, align 4, !tbaa !9
  %3260 = load ptr, ptr @stderr, align 8, !tbaa !5
  %3261 = call i32 @s2n_print_stacktrace(ptr noundef %3260)
  %3262 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %3263 = trunc i8 %3262 to i1
  br i1 %3263, label %3264, label %3286

3264:                                             ; preds = %3257
  %3265 = load ptr, ptr @stderr, align 8, !tbaa !5
  %3266 = call i32 @fileno(ptr noundef %3265) #10
  %3267 = call i32 @isatty(i32 noundef %3266) #10
  %3268 = icmp ne i32 %3267, 0
  br i1 %3268, label %3269, label %3286

3269:                                             ; preds = %3264
  %3270 = load i32, ptr %85, align 4, !tbaa !9
  %3271 = call ptr @__errno_location() #11
  store i32 %3270, ptr %3271, align 4, !tbaa !9
  %3272 = load ptr, ptr @stderr, align 8, !tbaa !5
  %3273 = load i32, ptr @test_count, align 4, !tbaa !9
  %3274 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3275 = load i32, ptr %3274, align 4, !tbaa !9
  %3276 = call ptr @s2n_strerror(i32 noundef %3275, ptr noundef @.str.6)
  %3277 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3278 = load i32, ptr %3277, align 4, !tbaa !9
  %3279 = call ptr @s2n_strerror_debug(i32 noundef %3278, ptr noundef @.str.6)
  %3280 = call ptr @__errno_location() #11
  %3281 = load i32, ptr %3280, align 4, !tbaa !9
  %3282 = call ptr @strerror(i32 noundef %3281) #10
  %3283 = call ptr @__errno_location() #11
  %3284 = load i32, ptr %3283, align 4, !tbaa !9
  %3285 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3272, ptr noundef @.str.3, i32 noundef %3273, ptr noundef @.str.38, ptr noundef @.str.5, i32 noundef 216, ptr noundef %3276, ptr noundef %3279, ptr noundef %3282, i32 noundef %3284) #10
  br label %3303

3286:                                             ; preds = %3264, %3257
  %3287 = load i32, ptr %85, align 4, !tbaa !9
  %3288 = call ptr @__errno_location() #11
  store i32 %3287, ptr %3288, align 4, !tbaa !9
  %3289 = load ptr, ptr @stderr, align 8, !tbaa !5
  %3290 = load i32, ptr @test_count, align 4, !tbaa !9
  %3291 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3292 = load i32, ptr %3291, align 4, !tbaa !9
  %3293 = call ptr @s2n_strerror(i32 noundef %3292, ptr noundef @.str.6)
  %3294 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3295 = load i32, ptr %3294, align 4, !tbaa !9
  %3296 = call ptr @s2n_strerror_debug(i32 noundef %3295, ptr noundef @.str.6)
  %3297 = call ptr @__errno_location() #11
  %3298 = load i32, ptr %3297, align 4, !tbaa !9
  %3299 = call ptr @strerror(i32 noundef %3298) #10
  %3300 = call ptr @__errno_location() #11
  %3301 = load i32, ptr %3300, align 4, !tbaa !9
  %3302 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3289, ptr noundef @.str.7, i32 noundef %3290, ptr noundef @.str.38, ptr noundef @.str.5, i32 noundef 216, ptr noundef %3293, ptr noundef %3296, ptr noundef %3299, i32 noundef %3301) #10
  br label %3303

3303:                                             ; preds = %3286, %3269
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #10
  br label %3304

3304:                                             ; preds = %3303
  br label %3305

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

3306:                                             ; No predecessors!
  br label %3307

3307:                                             ; preds = %3306
  br label %3308

3308:                                             ; preds = %3307, %3248
  br label %3309

3309:                                             ; preds = %3308
  br label %3310

3310:                                             ; preds = %3309
  br label %3311

3311:                                             ; preds = %3310
  br label %3312

3312:                                             ; preds = %3311
  br label %3313

3313:                                             ; preds = %3312
  %3314 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %3314, align 4, !tbaa !9
  call void @s2n_debug_info_reset()
  %3315 = call ptr @__errno_location() #11
  store i32 0, ptr %3315, align 4, !tbaa !9
  br label %3316

3316:                                             ; preds = %3313
  br label %3317

3317:                                             ; preds = %3316
  br label %3318

3318:                                             ; preds = %3317
  br label %3319

3319:                                             ; preds = %3318
  call void @llvm.lifetime.end.p0(i64 40, ptr %80) #10
  %3320 = call i32 @s2n_connection_ptr_free(ptr noundef %76)
  %3321 = getelementptr inbounds %struct.s2n_result, ptr %86, i32 0, i32 0
  store i32 %3320, ptr %3321, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #10
  %3322 = call i32 @s2n_connection_ptr_free(ptr noundef %74)
  %3323 = getelementptr inbounds %struct.s2n_result, ptr %87, i32 0, i32 0
  store i32 %3322, ptr %3323, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %26) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #10
  %3324 = call i32 @s2n_stuffer_free(ptr noundef %20)
  call void @llvm.lifetime.end.p0(i64 40, ptr %20) #10
  %3325 = call i32 @s2n_stuffer_free(ptr noundef %19)
  call void @llvm.lifetime.end.p0(i64 40, ptr %19) #10
  %3326 = call i32 @s2n_config_ptr_free(ptr noundef %15)
  %3327 = getelementptr inbounds %struct.s2n_result, ptr %88, i32 0, i32 0
  store i32 %3326, ptr %3327, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #10
  %3328 = call i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef %12)
  %3329 = getelementptr inbounds %struct.s2n_result, ptr %89, i32 0, i32 0
  store i32 %3328, ptr %3329, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #10
  call void @llvm.lifetime.end.p0(i64 12000, ptr %9) #10
  call void @llvm.lifetime.end.p0(i64 12000, ptr %8) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr %7) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %5) #10
  ret i32 0
}

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

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

declare i32 @s2n_read_test_pem(ptr noundef, ptr noundef, i64 noundef) #5

declare ptr @s2n_cert_chain_and_key_new() #5

declare i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef) #5

declare i32 @s2n_cert_chain_and_key_load_pem(ptr noundef, ptr noundef, ptr noundef) #5

declare ptr @s2n_config_new() #5

declare i32 @s2n_config_ptr_free(ptr noundef) #5

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

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

declare i32 @s2n_stuffer_free(ptr noundef) #5

declare i32 @s2n_stuffer_alloc(ptr noundef, i32 noundef) #5

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

declare i32 @s2n_stuffer_certificate_from_pem(ptr noundef, ptr noundef) #5

declare i32 @s2n_blob_init(ptr noundef, ptr noundef, i32 noundef) #5

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

declare ptr @s2n_connection_new(i32 noundef) #5

declare i32 @s2n_connection_ptr_free(ptr noundef) #5

declare void @s2n_debug_info_reset() #5

declare i32 @s2n_hash_get_currently_in_hash_total(ptr noundef, ptr noundef) #5

declare i32 @s2n_stuffer_rewrite(ptr noundef) #5

declare i32 @s2n_stuffer_write_uint16(ptr noundef, i16 noundef zeroext) #5

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{!12, !6, i64 0}
!12 = !{!"s2n_tls13_cert_verify_test", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24}
!13 = !{!12, !6, i64 8}
!14 = !{!12, !6, i64 16}
!15 = !{i64 0, i64 2, !16, i64 8, i64 8, !5, i64 16, i64 4, !9, i64 20, i64 4, !9, i64 24, i64 1, !18, i64 25, i64 1, !18, i64 26, i64 2, !16, i64 32, i64 8, !5}
!16 = !{!17, !17, i64 0}
!17 = !{!"short", !7, i64 0}
!18 = !{!7, !7, i64 0}
!19 = !{!20, !20, i64 0}
!20 = !{!"_Bool", !7, i64 0}
!21 = !{i8 0, i8 2}
!22 = !{}
!23 = !{!24, !10, i64 28}
!24 = !{!"s2n_stuffer", !25, i64 0, !10, i64 24, !10, i64 28, !10, i64 32, !10, i64 36, !10, i64 36, !10, i64 36}
!25 = !{!"s2n_blob", !6, i64 0, !10, i64 8, !10, i64 12, !10, i64 16}
!26 = !{!24, !10, i64 24}
!27 = !{!28, !10, i64 2044}
!28 = !{!"s2n_connection", !10, i64 0, !10, i64 0, !10, i64 0, !10, i64 0, !10, i64 0, !10, i64 0, !10, i64 0, !10, i64 0, !10, i64 1, !10, i64 1, !10, i64 1, !10, i64 1, !10, i64 1, !10, i64 1, !10, i64 1, !10, i64 1, !10, i64 2, !10, i64 2, !10, i64 2, !10, i64 2, !10, i64 2, !10, i64 2, !10, i64 2, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !6, i64 56, !6, i64 64, !6, i64 72, !7, i64 80, !7, i64 102, !7, i64 124, !10, i64 148, !10, i64 152, !29, i64 160, !30, i64 168, !30, 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, !6, i64 224, !6, i64 232, !31, i64 240, !6, i64 632, !6, i64 640, !32, i64 648, !37, i64 1144, !40, i64 1688, !6, i64 1752, !7, i64 1760, !10, i64 1764, !7, i64 1768, !24, i64 1776, !24, i64 1816, !24, i64 1856, !24, i64 1896, !10, i64 1936, !30, i64 1944, !7, i64 1952, !24, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !20, i64 2003, !42, i64 2004, !42, i64 2008, !43, i64 2016, !17, i64 2208, !10, i64 2212, !17, i64 2216, !30, i64 2224, !7, i64 2232, !30, i64 2240, !30, i64 2248, !30, i64 2256, !42, i64 2264, !42, i64 2268, !7, i64 2272, !7, i64 2528, !10, i64 2784, !25, i64 2792, !10, i64 2816, !25, i64 2824, !25, i64 2848, !25, i64 2872, !45, i64 2896, !47, i64 3704, !6, i64 3760, !6, i64 3768, !7, i64 3776, !10, i64 3780, !25, i64 3784, !10, i64 3808, !49, i64 3816, !7, i64 3848, !24, i64 3992, !25, i64 4032, !25, i64 4056, !20, i64 4080, !20, i64 4081, !20, i64 4082, !17, i64 4084, !17, i64 4086, !10, i64 4088, !10, i64 4092, !25, i64 4096, !10, i64 4120, !50, i64 4128, !42, i64 4176, !7, i64 4180, !7, i64 4181}
!29 = !{!"s2n_timer", !30, i64 0}
!30 = !{!"long", !7, i64 0}
!31 = !{!"s2n_secrets", !7, i64 0, !10, i64 388}
!32 = !{!"s2n_kex_parameters", !33, i64 0, !34, i64 8, !7, i64 24, !34, i64 56, !35, i64 72, !35, i64 184, !7, i64 296, !36, i64 360, !25, i64 448, !25, i64 472}
!33 = !{!"s2n_dh_params", !6, i64 0}
!34 = !{!"s2n_ecc_evp_params", !6, i64 0, !6, i64 8}
!35 = !{!"s2n_kem_group_params", !6, i64 0, !36, i64 8, !34, i64 96}
!36 = !{!"s2n_kem_params", !6, i64 0, !25, i64 8, !25, i64 32, !25, i64 56, !20, i64 80}
!37 = !{!"s2n_handshake_parameters", !38, i64 0, !38, i64 48, !25, i64 96, !10, i64 120, !39, i64 124, !6, i64 384, !6, i64 392, !6, i64 400, !7, i64 408, !7, i64 440, !7, i64 472, !7, i64 473, !7, i64 474, !7, i64 506}
!38 = !{!"s2n_pkey", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40}
!39 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!40 = !{!"s2n_psk_parameters", !10, i64 0, !41, i64 8, !17, i64 40, !17, i64 42, !6, i64 48, !10, i64 56}
!41 = !{!"s2n_array", !25, i64 0, !10, i64 24, !10, i64 28}
!42 = !{!"", !10, i64 0}
!43 = !{!"s2n_handshake", !24, i64 0, !6, i64 40, !7, i64 48, !7, i64 56, !7, i64 104, !7, i64 152, !10, i64 156, !10, i64 160, !10, i64 164, !10, i64 168, !44, i64 176, !10, i64 184, !10, i64 184, !10, i64 184, !10, i64 184, !10, i64 188}
!44 = !{!"s2n_offered_early_data", !6, i64 0}
!45 = !{!"s2n_client_hello", !25, i64 0, !46, i64 24, !25, i64 728, !25, i64 752, !25, i64 776, !7, i64 800, !7, i64 801, !10, i64 802, !10, i64 802, !10, i64 802, !10, i64 802, !10, i64 802, !10, i64 802, !10, i64 802}
!46 = !{!"", !7, i64 0, !25, i64 672, !17, i64 696}
!47 = !{!"s2n_x509_validator", !6, i64 0, !6, i64 8, !7, i64 16, !7, i64 17, !17, i64 18, !6, i64 24, !10, i64 32, !6, i64 40, !48, i64 48, !20, i64 52}
!48 = !{!"s2n_cert_validation_info", !10, i64 0, !10, i64 0}
!49 = !{!"s2n_ticket_fields", !25, i64 0, !10, i64 24}
!50 = !{!"s2n_post_handshake", !24, i64 0, !7, i64 40}
!51 = !{!28, !10, i64 2040}
!52 = !{!28, !6, i64 232}
!53 = !{!54, !6, i64 0}
!54 = !{!"s2n_crypto_parameters", !6, i64 0, !55, i64 8, !55, i64 16, !56, i64 24, !56, i64 456, !7, i64 888, !7, i64 904, !7, i64 920, !7, i64 928}
!55 = !{!"s2n_session_key", !6, i64 0}
!56 = !{!"s2n_hmac_state", !10, i64 0, !17, i64 4, !10, i64 8, !17, i64 12, !7, i64 14, !57, i64 16, !57, i64 72, !57, i64 128, !57, i64 184, !7, i64 240, !7, i64 368}
!57 = !{!"s2n_hash_state", !6, i64 0, !10, i64 8, !7, i64 12, !30, i64 16, !7, i64 24}
!58 = !{!28, !6, i64 2056}
!59 = !{!30, !30, i64 0}
!60 = !{!28, !6, i64 2016}
!61 = !{i64 0, i64 8, !5, i64 8, i64 4, !9, i64 12, i64 4, !9, i64 16, i64 1, !18, i64 24, i64 4, !9, i64 28, i64 4, !9, i64 32, i64 4, !9, i64 36, i64 1, !18}
!62 = !{!12, !6, i64 24}
!63 = !{!64, !17, i64 0}
!64 = !{!"s2n_signature_scheme", !17, i64 0, !6, i64 8, !10, i64 16, !10, i64 20, !7, i64 24, !7, i64 25, !17, i64 26, !6, i64 32}


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

@s2n_use_color_in_output = external dso_local local_unnamed_addr global i8, align 1
@s2n_errno = external thread_local local_unnamed_addr global i32, align 4
@goodbye = external dso_local global [17 x i8], align 16
@test_count = external dso_local local_unnamed_addr global i32, align 4
@stderr = external local_unnamed_addr global ptr, align 8
@.str.3 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [197 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [121 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [121 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [143 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [71 x i8], align 1
@s2n_tls13_aes_256_gcm_sha384 = external global %struct.s2n_cipher_suite, align 8
@.str.36 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [113 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [126 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [122 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [104 x i8], align 1

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

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

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

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

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

; Function Attrs: inlinehint nounwind uwtable
declare hidden zeroext i1 @s2n_result_is_ok(i32) local_unnamed_addr #3

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

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

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

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

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

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

declare ptr @s2n_strerror_debug(i32 noundef, ptr noundef) local_unnamed_addr #5

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

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

declare i32 @s2n_hash_update(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #5

declare i32 @s2n_stuffer_copy(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #5

; Function Attrs: nounwind uwtable
define dso_local noundef i32 @run_tests(ptr nocapture noundef readonly %0, i32 noundef %1) local_unnamed_addr #0 {
  %3 = alloca %struct.s2n_signature_scheme, align 8
  %4 = alloca [12000 x i8], align 16
  %5 = alloca [12000 x i8], align 16
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca %struct.s2n_stuffer, align 8
  %9 = alloca %struct.s2n_stuffer, align 8
  %10 = alloca %struct.s2n_blob, align 8
  %11 = alloca ptr, align 8
  %12 = alloca ptr, align 8
  %13 = alloca ptr, align 8
  %14 = alloca ptr, align 8
  %15 = alloca i64, align 8
  %16 = alloca i64, align 8
  %17 = alloca ptr, align 8
  %18 = alloca ptr, align 8
  %19 = alloca ptr, align 8
  %20 = alloca ptr, align 8
  %21 = alloca %struct.s2n_stuffer, align 8
  %22 = load ptr, ptr %0, align 8, !tbaa !5
  %23 = getelementptr inbounds i8, ptr %0, i64 8
  %24 = load ptr, ptr %23, align 8, !tbaa !10
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %3) #11
  %25 = getelementptr inbounds i8, ptr %0, i64 16
  %26 = load ptr, ptr %25, align 8, !tbaa !11
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef nonnull align 8 dereferenceable(40) %26, i64 40, i1 false), !tbaa.struct !12
  call void @llvm.lifetime.start.p0(i64 12000, ptr nonnull %4) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(12000) %4, i8 0, i64 12000, i1 false)
  call void @llvm.lifetime.start.p0(i64 12000, ptr nonnull %5) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(12000) %5, i8 0, i64 12000, i1 false)
  %27 = load i32, ptr @test_count, align 4, !tbaa !16
  %28 = add nsw i32 %27, 1
  store i32 %28, ptr @test_count, align 4, !tbaa !16
  %29 = call i32 @s2n_read_test_pem(ptr noundef %22, ptr noundef nonnull %4, i64 noundef 12000) #11
  %30 = icmp eq i32 %29, -1
  br i1 %30, label %31, label %55

31:                                               ; preds = %2
  %32 = tail call ptr @__errno_location() #12
  %33 = load i32, ptr %32, align 4, !tbaa !16
  %34 = load ptr, ptr @stderr, align 8, !tbaa !15
  %35 = call i32 @s2n_print_stacktrace(ptr noundef %34) #11
  %36 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %37 = trunc nuw i8 %36 to i1
  br i1 %37, label %38, label %42

38:                                               ; preds = %31
  %39 = load ptr, ptr @stderr, align 8, !tbaa !15
  %40 = call i32 @fileno(ptr noundef %39) #11
  %41 = call i32 @isatty(i32 noundef %40) #11
  %.not173 = icmp eq i32 %41, 0
  br i1 %.not173, label %42, label %43

42:                                               ; preds = %38, %31
  br label %43

43:                                               ; preds = %38, %42
  %.str.7.sink = phi ptr [ @.str.7, %42 ], [ @.str.3, %38 ]
  store i32 %33, ptr %32, align 4, !tbaa !16
  %44 = load ptr, ptr @stderr, align 8, !tbaa !15
  %45 = load i32, ptr @test_count, align 4, !tbaa !16
  %46 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %47 = load i32, ptr %46, align 4, !tbaa !16
  %48 = call ptr @s2n_strerror(i32 noundef %47, ptr noundef nonnull @.str.6) #11
  %49 = load i32, ptr %46, align 4, !tbaa !16
  %50 = call ptr @s2n_strerror_debug(i32 noundef %49, ptr noundef nonnull @.str.6) #11
  %51 = load i32, ptr %32, align 4, !tbaa !16
  %52 = call ptr @strerror(i32 noundef %51) #11
  %53 = load i32, ptr %32, align 4, !tbaa !16
  %54 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %44, ptr noundef nonnull %.str.7.sink, i32 noundef %45, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.5, i32 noundef 101, ptr noundef %48, ptr noundef %50, ptr noundef %52, i32 noundef %53) #13
  call void @exit(i32 noundef 1) #14
  unreachable

55:                                               ; preds = %2
  %56 = load i32, ptr @test_count, align 4, !tbaa !16
  %57 = add nsw i32 %56, 1
  store i32 %57, ptr @test_count, align 4, !tbaa !16
  %58 = call i32 @s2n_read_test_pem(ptr noundef %24, ptr noundef nonnull %5, i64 noundef 12000) #11
  %59 = icmp eq i32 %58, -1
  br i1 %59, label %60, label %84

60:                                               ; preds = %55
  %61 = tail call ptr @__errno_location() #12
  %62 = load i32, ptr %61, align 4, !tbaa !16
  %63 = load ptr, ptr @stderr, align 8, !tbaa !15
  %64 = call i32 @s2n_print_stacktrace(ptr noundef %63) #11
  %65 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %66 = trunc nuw i8 %65 to i1
  br i1 %66, label %67, label %71

67:                                               ; preds = %60
  %68 = load ptr, ptr @stderr, align 8, !tbaa !15
  %69 = call i32 @fileno(ptr noundef %68) #11
  %70 = call i32 @isatty(i32 noundef %69) #11
  %.not172 = icmp eq i32 %70, 0
  br i1 %.not172, label %71, label %72

71:                                               ; preds = %67, %60
  br label %72

72:                                               ; preds = %67, %71
  %.str.7.sink184 = phi ptr [ @.str.7, %71 ], [ @.str.3, %67 ]
  store i32 %62, ptr %61, align 4, !tbaa !16
  %73 = load ptr, ptr @stderr, align 8, !tbaa !15
  %74 = load i32, ptr @test_count, align 4, !tbaa !16
  %75 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %76 = load i32, ptr %75, align 4, !tbaa !16
  %77 = call ptr @s2n_strerror(i32 noundef %76, ptr noundef nonnull @.str.6) #11
  %78 = load i32, ptr %75, align 4, !tbaa !16
  %79 = call ptr @s2n_strerror_debug(i32 noundef %78, ptr noundef nonnull @.str.6) #11
  %80 = load i32, ptr %61, align 4, !tbaa !16
  %81 = call ptr @strerror(i32 noundef %80) #11
  %82 = load i32, ptr %61, align 4, !tbaa !16
  %83 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %73, ptr noundef nonnull %.str.7.sink184, i32 noundef %74, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.5, i32 noundef 102, ptr noundef %77, ptr noundef %79, ptr noundef %81, i32 noundef %82) #13
  call void @exit(i32 noundef 1) #14
  unreachable

84:                                               ; preds = %55
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #11
  %85 = call ptr @s2n_cert_chain_and_key_new() #11
  store ptr %85, ptr %6, align 8, !tbaa !15
  %86 = load i32, ptr @test_count, align 4, !tbaa !16
  %87 = add nsw i32 %86, 1
  store i32 %87, ptr @test_count, align 4, !tbaa !16
  %88 = icmp eq ptr %85, null
  br i1 %88, label %89, label %113

89:                                               ; preds = %84
  %90 = tail call ptr @__errno_location() #12
  %91 = load i32, ptr %90, align 4, !tbaa !16
  %92 = load ptr, ptr @stderr, align 8, !tbaa !15
  %93 = call i32 @s2n_print_stacktrace(ptr noundef %92) #11
  %94 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %95 = trunc nuw i8 %94 to i1
  br i1 %95, label %96, label %100

96:                                               ; preds = %89
  %97 = load ptr, ptr @stderr, align 8, !tbaa !15
  %98 = call i32 @fileno(ptr noundef %97) #11
  %99 = call i32 @isatty(i32 noundef %98) #11
  %.not171 = icmp eq i32 %99, 0
  br i1 %.not171, label %100, label %101

100:                                              ; preds = %96, %89
  br label %101

101:                                              ; preds = %96, %100
  %.str.7.sink195 = phi ptr [ @.str.7, %100 ], [ @.str.3, %96 ]
  store i32 %91, ptr %90, align 4, !tbaa !16
  %102 = load ptr, ptr @stderr, align 8, !tbaa !15
  %103 = load i32, ptr @test_count, align 4, !tbaa !16
  %104 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %105 = load i32, ptr %104, align 4, !tbaa !16
  %106 = call ptr @s2n_strerror(i32 noundef %105, ptr noundef nonnull @.str.6) #11
  %107 = load i32, ptr %104, align 4, !tbaa !16
  %108 = call ptr @s2n_strerror_debug(i32 noundef %107, ptr noundef nonnull @.str.6) #11
  %109 = load i32, ptr %90, align 4, !tbaa !16
  %110 = call ptr @strerror(i32 noundef %109) #11
  %111 = load i32, ptr %90, align 4, !tbaa !16
  %112 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %102, ptr noundef nonnull %.str.7.sink195, i32 noundef %103, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.5, i32 noundef 106, ptr noundef %106, ptr noundef %108, ptr noundef %110, i32 noundef %111) #13
  call void @exit(i32 noundef 1) #14
  unreachable

113:                                              ; preds = %84
  %114 = add nsw i32 %86, 2
  store i32 %114, ptr @test_count, align 4, !tbaa !16
  %115 = call i32 @s2n_cert_chain_and_key_load_pem(ptr noundef nonnull %85, ptr noundef nonnull %4, ptr noundef nonnull %5) #11
  %116 = icmp eq i32 %115, -1
  br i1 %116, label %117, label %141

117:                                              ; preds = %113
  %118 = tail call ptr @__errno_location() #12
  %119 = load i32, ptr %118, align 4, !tbaa !16
  %120 = load ptr, ptr @stderr, align 8, !tbaa !15
  %121 = call i32 @s2n_print_stacktrace(ptr noundef %120) #11
  %122 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %123 = trunc nuw i8 %122 to i1
  br i1 %123, label %124, label %128

124:                                              ; preds = %117
  %125 = load ptr, ptr @stderr, align 8, !tbaa !15
  %126 = call i32 @fileno(ptr noundef %125) #11
  %127 = call i32 @isatty(i32 noundef %126) #11
  %.not170 = icmp eq i32 %127, 0
  br i1 %.not170, label %128, label %129

128:                                              ; preds = %124, %117
  br label %129

129:                                              ; preds = %124, %128
  %.str.7.sink206 = phi ptr [ @.str.7, %128 ], [ @.str.3, %124 ]
  store i32 %119, ptr %118, align 4, !tbaa !16
  %130 = load ptr, ptr @stderr, align 8, !tbaa !15
  %131 = load i32, ptr @test_count, align 4, !tbaa !16
  %132 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %133 = load i32, ptr %132, align 4, !tbaa !16
  %134 = call ptr @s2n_strerror(i32 noundef %133, ptr noundef nonnull @.str.6) #11
  %135 = load i32, ptr %132, align 4, !tbaa !16
  %136 = call ptr @s2n_strerror_debug(i32 noundef %135, ptr noundef nonnull @.str.6) #11
  %137 = load i32, ptr %118, align 4, !tbaa !16
  %138 = call ptr @strerror(i32 noundef %137) #11
  %139 = load i32, ptr %118, align 4, !tbaa !16
  %140 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %130, ptr noundef nonnull %.str.7.sink206, i32 noundef %131, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.5, i32 noundef 107, ptr noundef %134, ptr noundef %136, ptr noundef %138, i32 noundef %139) #13
  call void @exit(i32 noundef 1) #14
  unreachable

141:                                              ; preds = %113
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #11
  %142 = call ptr @s2n_config_new() #11
  store ptr %142, ptr %7, align 8, !tbaa !15
  %143 = load i32, ptr @test_count, align 4, !tbaa !16
  %144 = add nsw i32 %143, 1
  store i32 %144, ptr @test_count, align 4, !tbaa !16
  %145 = icmp eq ptr %142, null
  br i1 %145, label %146, label %170

146:                                              ; preds = %141
  %147 = tail call ptr @__errno_location() #12
  %148 = load i32, ptr %147, align 4, !tbaa !16
  %149 = load ptr, ptr @stderr, align 8, !tbaa !15
  %150 = call i32 @s2n_print_stacktrace(ptr noundef %149) #11
  %151 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %152 = trunc nuw i8 %151 to i1
  br i1 %152, label %153, label %157

153:                                              ; preds = %146
  %154 = load ptr, ptr @stderr, align 8, !tbaa !15
  %155 = call i32 @fileno(ptr noundef %154) #11
  %156 = call i32 @isatty(i32 noundef %155) #11
  %.not169 = icmp eq i32 %156, 0
  br i1 %.not169, label %157, label %158

157:                                              ; preds = %153, %146
  br label %158

158:                                              ; preds = %153, %157
  %.str.7.sink217 = phi ptr [ @.str.7, %157 ], [ @.str.3, %153 ]
  store i32 %148, ptr %147, align 4, !tbaa !16
  %159 = load ptr, ptr @stderr, align 8, !tbaa !15
  %160 = load i32, ptr @test_count, align 4, !tbaa !16
  %161 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %162 = load i32, ptr %161, align 4, !tbaa !16
  %163 = call ptr @s2n_strerror(i32 noundef %162, ptr noundef nonnull @.str.6) #11
  %164 = load i32, ptr %161, align 4, !tbaa !16
  %165 = call ptr @s2n_strerror_debug(i32 noundef %164, ptr noundef nonnull @.str.6) #11
  %166 = load i32, ptr %147, align 4, !tbaa !16
  %167 = call ptr @strerror(i32 noundef %166) #11
  %168 = load i32, ptr %147, align 4, !tbaa !16
  %169 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %159, ptr noundef nonnull %.str.7.sink217, i32 noundef %160, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.5, i32 noundef 110, ptr noundef %163, ptr noundef %165, ptr noundef %167, i32 noundef %168) #13
  call void @exit(i32 noundef 1) #14
  unreachable

170:                                              ; preds = %141
  %171 = add nsw i32 %143, 2
  store i32 %171, ptr @test_count, align 4, !tbaa !16
  %172 = call i32 @s2n_config_set_cipher_preferences(ptr noundef nonnull %142, ptr noundef nonnull @.str.24) #11
  %173 = icmp eq i32 %172, -1
  br i1 %173, label %174, label %198

174:                                              ; preds = %170
  %175 = tail call ptr @__errno_location() #12
  %176 = load i32, ptr %175, align 4, !tbaa !16
  %177 = load ptr, ptr @stderr, align 8, !tbaa !15
  %178 = call i32 @s2n_print_stacktrace(ptr noundef %177) #11
  %179 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %180 = trunc nuw i8 %179 to i1
  br i1 %180, label %181, label %185

181:                                              ; preds = %174
  %182 = load ptr, ptr @stderr, align 8, !tbaa !15
  %183 = call i32 @fileno(ptr noundef %182) #11
  %184 = call i32 @isatty(i32 noundef %183) #11
  %.not168 = icmp eq i32 %184, 0
  br i1 %.not168, label %185, label %186

185:                                              ; preds = %181, %174
  br label %186

186:                                              ; preds = %181, %185
  %.str.7.sink228 = phi ptr [ @.str.7, %185 ], [ @.str.3, %181 ]
  store i32 %176, ptr %175, align 4, !tbaa !16
  %187 = load ptr, ptr @stderr, align 8, !tbaa !15
  %188 = load i32, ptr @test_count, align 4, !tbaa !16
  %189 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %190 = load i32, ptr %189, align 4, !tbaa !16
  %191 = call ptr @s2n_strerror(i32 noundef %190, ptr noundef nonnull @.str.6) #11
  %192 = load i32, ptr %189, align 4, !tbaa !16
  %193 = call ptr @s2n_strerror_debug(i32 noundef %192, ptr noundef nonnull @.str.6) #11
  %194 = load i32, ptr %175, align 4, !tbaa !16
  %195 = call ptr @strerror(i32 noundef %194) #11
  %196 = load i32, ptr %175, align 4, !tbaa !16
  %197 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %187, ptr noundef nonnull %.str.7.sink228, i32 noundef %188, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.5, i32 noundef 111, ptr noundef %191, ptr noundef %193, ptr noundef %195, i32 noundef %196) #13
  call void @exit(i32 noundef 1) #14
  unreachable

198:                                              ; preds = %170
  %199 = load i32, ptr @test_count, align 4, !tbaa !16
  %200 = add nsw i32 %199, 1
  store i32 %200, ptr @test_count, align 4, !tbaa !16
  %201 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef nonnull %142, ptr noundef nonnull %85) #11
  %202 = icmp eq i32 %201, -1
  br i1 %202, label %203, label %227

203:                                              ; preds = %198
  %204 = tail call ptr @__errno_location() #12
  %205 = load i32, ptr %204, align 4, !tbaa !16
  %206 = load ptr, ptr @stderr, align 8, !tbaa !15
  %207 = call i32 @s2n_print_stacktrace(ptr noundef %206) #11
  %208 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %209 = trunc nuw i8 %208 to i1
  br i1 %209, label %210, label %214

210:                                              ; preds = %203
  %211 = load ptr, ptr @stderr, align 8, !tbaa !15
  %212 = call i32 @fileno(ptr noundef %211) #11
  %213 = call i32 @isatty(i32 noundef %212) #11
  %.not167 = icmp eq i32 %213, 0
  br i1 %.not167, label %214, label %215

214:                                              ; preds = %210, %203
  br label %215

215:                                              ; preds = %210, %214
  %.str.7.sink239 = phi ptr [ @.str.7, %214 ], [ @.str.3, %210 ]
  store i32 %205, ptr %204, align 4, !tbaa !16
  %216 = load ptr, ptr @stderr, align 8, !tbaa !15
  %217 = load i32, ptr @test_count, align 4, !tbaa !16
  %218 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %219 = load i32, ptr %218, align 4, !tbaa !16
  %220 = call ptr @s2n_strerror(i32 noundef %219, ptr noundef nonnull @.str.6) #11
  %221 = load i32, ptr %218, align 4, !tbaa !16
  %222 = call ptr @s2n_strerror_debug(i32 noundef %221, ptr noundef nonnull @.str.6) #11
  %223 = load i32, ptr %204, align 4, !tbaa !16
  %224 = call ptr @strerror(i32 noundef %223) #11
  %225 = load i32, ptr %204, align 4, !tbaa !16
  %226 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %216, ptr noundef nonnull %.str.7.sink239, i32 noundef %217, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.5, i32 noundef 112, ptr noundef %220, ptr noundef %222, ptr noundef %224, i32 noundef %225) #13
  call void @exit(i32 noundef 1) #14
  unreachable

227:                                              ; preds = %198
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %8) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %8, i8 0, i64 40, i1 false)
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %9) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %9, i8 0, i64 40, i1 false)
  %228 = load i32, ptr @test_count, align 4, !tbaa !16
  %229 = add nsw i32 %228, 1
  store i32 %229, ptr @test_count, align 4, !tbaa !16
  %230 = call i32 @s2n_stuffer_alloc(ptr noundef nonnull %8, i32 noundef 12000) #11
  %231 = icmp eq i32 %230, -1
  br i1 %231, label %232, label %256

232:                                              ; preds = %227
  %233 = tail call ptr @__errno_location() #12
  %234 = load i32, ptr %233, align 4, !tbaa !16
  %235 = load ptr, ptr @stderr, align 8, !tbaa !15
  %236 = call i32 @s2n_print_stacktrace(ptr noundef %235) #11
  %237 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %238 = trunc nuw i8 %237 to i1
  br i1 %238, label %239, label %243

239:                                              ; preds = %232
  %240 = load ptr, ptr @stderr, align 8, !tbaa !15
  %241 = call i32 @fileno(ptr noundef %240) #11
  %242 = call i32 @isatty(i32 noundef %241) #11
  %.not166 = icmp eq i32 %242, 0
  br i1 %.not166, label %243, label %244

243:                                              ; preds = %239, %232
  br label %244

244:                                              ; preds = %239, %243
  %.str.7.sink250 = phi ptr [ @.str.7, %243 ], [ @.str.3, %239 ]
  store i32 %234, ptr %233, align 4, !tbaa !16
  %245 = load ptr, ptr @stderr, align 8, !tbaa !15
  %246 = load i32, ptr @test_count, align 4, !tbaa !16
  %247 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %248 = load i32, ptr %247, align 4, !tbaa !16
  %249 = call ptr @s2n_strerror(i32 noundef %248, ptr noundef nonnull @.str.6) #11
  %250 = load i32, ptr %247, align 4, !tbaa !16
  %251 = call ptr @s2n_strerror_debug(i32 noundef %250, ptr noundef nonnull @.str.6) #11
  %252 = load i32, ptr %233, align 4, !tbaa !16
  %253 = call ptr @strerror(i32 noundef %252) #11
  %254 = load i32, ptr %233, align 4, !tbaa !16
  %255 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %245, ptr noundef nonnull %.str.7.sink250, i32 noundef %246, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.5, i32 noundef 117, ptr noundef %249, ptr noundef %251, ptr noundef %253, i32 noundef %254) #13
  call void @exit(i32 noundef 1) #14
  unreachable

256:                                              ; preds = %227
  %257 = load i32, ptr @test_count, align 4, !tbaa !16
  %258 = add nsw i32 %257, 1
  store i32 %258, ptr @test_count, align 4, !tbaa !16
  %259 = call i32 @s2n_stuffer_alloc(ptr noundef nonnull %9, i32 noundef 12000) #11
  %260 = icmp eq i32 %259, -1
  br i1 %260, label %261, label %285

261:                                              ; preds = %256
  %262 = tail call ptr @__errno_location() #12
  %263 = load i32, ptr %262, align 4, !tbaa !16
  %264 = load ptr, ptr @stderr, align 8, !tbaa !15
  %265 = call i32 @s2n_print_stacktrace(ptr noundef %264) #11
  %266 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %267 = trunc nuw i8 %266 to i1
  br i1 %267, label %268, label %272

268:                                              ; preds = %261
  %269 = load ptr, ptr @stderr, align 8, !tbaa !15
  %270 = call i32 @fileno(ptr noundef %269) #11
  %271 = call i32 @isatty(i32 noundef %270) #11
  %.not165 = icmp eq i32 %271, 0
  br i1 %.not165, label %272, label %273

272:                                              ; preds = %268, %261
  br label %273

273:                                              ; preds = %268, %272
  %.str.7.sink261 = phi ptr [ @.str.7, %272 ], [ @.str.3, %268 ]
  store i32 %263, ptr %262, align 4, !tbaa !16
  %274 = load ptr, ptr @stderr, align 8, !tbaa !15
  %275 = load i32, ptr @test_count, align 4, !tbaa !16
  %276 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %277 = load i32, ptr %276, align 4, !tbaa !16
  %278 = call ptr @s2n_strerror(i32 noundef %277, ptr noundef nonnull @.str.6) #11
  %279 = load i32, ptr %276, align 4, !tbaa !16
  %280 = call ptr @s2n_strerror_debug(i32 noundef %279, ptr noundef nonnull @.str.6) #11
  %281 = load i32, ptr %262, align 4, !tbaa !16
  %282 = call ptr @strerror(i32 noundef %281) #11
  %283 = load i32, ptr %262, align 4, !tbaa !16
  %284 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %274, ptr noundef nonnull %.str.7.sink261, i32 noundef %275, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.5, i32 noundef 118, ptr noundef %278, ptr noundef %280, ptr noundef %282, i32 noundef %283) #13
  call void @exit(i32 noundef 1) #14
  unreachable

285:                                              ; preds = %256
  %286 = load i32, ptr @test_count, align 4, !tbaa !16
  %287 = add nsw i32 %286, 1
  store i32 %287, ptr @test_count, align 4, !tbaa !16
  %288 = call i32 @s2n_stuffer_write_bytes(ptr noundef nonnull %8, ptr noundef nonnull %4, i32 noundef 12000) #11
  %289 = icmp eq i32 %288, -1
  br i1 %289, label %290, label %314

290:                                              ; preds = %285
  %291 = tail call ptr @__errno_location() #12
  %292 = load i32, ptr %291, align 4, !tbaa !16
  %293 = load ptr, ptr @stderr, align 8, !tbaa !15
  %294 = call i32 @s2n_print_stacktrace(ptr noundef %293) #11
  %295 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %296 = trunc nuw i8 %295 to i1
  br i1 %296, label %297, label %301

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

301:                                              ; preds = %297, %290
  br label %302

302:                                              ; preds = %297, %301
  %.str.7.sink272 = phi ptr [ @.str.7, %301 ], [ @.str.3, %297 ]
  store i32 %292, ptr %291, align 4, !tbaa !16
  %303 = load ptr, ptr @stderr, align 8, !tbaa !15
  %304 = load i32, ptr @test_count, align 4, !tbaa !16
  %305 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %306 = load i32, ptr %305, align 4, !tbaa !16
  %307 = call ptr @s2n_strerror(i32 noundef %306, ptr noundef nonnull @.str.6) #11
  %308 = load i32, ptr %305, align 4, !tbaa !16
  %309 = call ptr @s2n_strerror_debug(i32 noundef %308, ptr noundef nonnull @.str.6) #11
  %310 = load i32, ptr %291, align 4, !tbaa !16
  %311 = call ptr @strerror(i32 noundef %310) #11
  %312 = load i32, ptr %291, align 4, !tbaa !16
  %313 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %303, ptr noundef nonnull %.str.7.sink272, i32 noundef %304, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.5, i32 noundef 119, ptr noundef %307, ptr noundef %309, ptr noundef %311, i32 noundef %312) #13
  call void @exit(i32 noundef 1) #14
  unreachable

314:                                              ; preds = %285
  %315 = load i32, ptr @test_count, align 4, !tbaa !16
  %316 = add nsw i32 %315, 1
  store i32 %316, ptr @test_count, align 4, !tbaa !16
  %317 = call i32 @s2n_stuffer_certificate_from_pem(ptr noundef nonnull %8, ptr noundef nonnull %9) #11
  %318 = icmp eq i32 %317, -1
  br i1 %318, label %319, label %343

319:                                              ; preds = %314
  %320 = tail call ptr @__errno_location() #12
  %321 = load i32, ptr %320, align 4, !tbaa !16
  %322 = load ptr, ptr @stderr, align 8, !tbaa !15
  %323 = call i32 @s2n_print_stacktrace(ptr noundef %322) #11
  %324 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %325 = trunc nuw i8 %324 to i1
  br i1 %325, label %326, label %330

326:                                              ; preds = %319
  %327 = load ptr, ptr @stderr, align 8, !tbaa !15
  %328 = call i32 @fileno(ptr noundef %327) #11
  %329 = call i32 @isatty(i32 noundef %328) #11
  %.not163 = icmp eq i32 %329, 0
  br i1 %.not163, label %330, label %331

330:                                              ; preds = %326, %319
  br label %331

331:                                              ; preds = %326, %330
  %.str.7.sink283 = phi ptr [ @.str.7, %330 ], [ @.str.3, %326 ]
  store i32 %321, ptr %320, align 4, !tbaa !16
  %332 = load ptr, ptr @stderr, align 8, !tbaa !15
  %333 = load i32, ptr @test_count, align 4, !tbaa !16
  %334 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %335 = load i32, ptr %334, align 4, !tbaa !16
  %336 = call ptr @s2n_strerror(i32 noundef %335, ptr noundef nonnull @.str.6) #11
  %337 = load i32, ptr %334, align 4, !tbaa !16
  %338 = call ptr @s2n_strerror_debug(i32 noundef %337, ptr noundef nonnull @.str.6) #11
  %339 = load i32, ptr %320, align 4, !tbaa !16
  %340 = call ptr @strerror(i32 noundef %339) #11
  %341 = load i32, ptr %320, align 4, !tbaa !16
  %342 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %332, ptr noundef nonnull %.str.7.sink283, i32 noundef %333, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.5, i32 noundef 120, ptr noundef %336, ptr noundef %338, ptr noundef %340, i32 noundef %341) #13
  call void @exit(i32 noundef 1) #14
  unreachable

343:                                              ; preds = %314
  %344 = getelementptr inbounds i8, ptr %9, i64 28
  %345 = load i32, ptr %344, align 4, !tbaa !23
  %346 = getelementptr inbounds i8, ptr %9, i64 24
  %347 = load i32, ptr %346, align 8, !tbaa !26
  %348 = sub i32 %345, %347
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %10) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %10, i8 0, i64 24, i1 false)
  %349 = load i32, ptr @test_count, align 4, !tbaa !16
  %350 = add nsw i32 %349, 1
  store i32 %350, ptr @test_count, align 4, !tbaa !16
  %351 = call ptr @s2n_stuffer_raw_read(ptr noundef nonnull %9, i32 noundef %348) #11
  %352 = call i32 @s2n_blob_init(ptr noundef nonnull %10, ptr noundef %351, i32 noundef %348) #11
  %353 = icmp eq i32 %352, -1
  br i1 %353, label %354, label %378

354:                                              ; preds = %343
  %355 = tail call ptr @__errno_location() #12
  %356 = load i32, ptr %355, align 4, !tbaa !16
  %357 = load ptr, ptr @stderr, align 8, !tbaa !15
  %358 = call i32 @s2n_print_stacktrace(ptr noundef %357) #11
  %359 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %360 = trunc nuw i8 %359 to i1
  br i1 %360, label %361, label %365

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

365:                                              ; preds = %361, %354
  br label %366

366:                                              ; preds = %361, %365
  %.str.7.sink294 = phi ptr [ @.str.7, %365 ], [ @.str.3, %361 ]
  store i32 %356, ptr %355, align 4, !tbaa !16
  %367 = load ptr, ptr @stderr, align 8, !tbaa !15
  %368 = load i32, ptr @test_count, align 4, !tbaa !16
  %369 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %370 = load i32, ptr %369, align 4, !tbaa !16
  %371 = call ptr @s2n_strerror(i32 noundef %370, ptr noundef nonnull @.str.6) #11
  %372 = load i32, ptr %369, align 4, !tbaa !16
  %373 = call ptr @s2n_strerror_debug(i32 noundef %372, ptr noundef nonnull @.str.6) #11
  %374 = load i32, ptr %355, align 4, !tbaa !16
  %375 = call ptr @strerror(i32 noundef %374) #11
  %376 = load i32, ptr %355, align 4, !tbaa !16
  %377 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %367, ptr noundef nonnull %.str.7.sink294, i32 noundef %368, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.5, i32 noundef 124, ptr noundef %371, ptr noundef %373, ptr noundef %375, i32 noundef %376) #13
  call void @exit(i32 noundef 1) #14
  unreachable

378:                                              ; preds = %343
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #11
  %379 = and i32 %1, 1
  %380 = xor i32 %379, 1
  %381 = call ptr @s2n_connection_new(i32 noundef %380) #11
  store ptr %381, ptr %11, align 8, !tbaa !15
  %382 = load i32, ptr @test_count, align 4, !tbaa !16
  %383 = add nsw i32 %382, 1
  store i32 %383, ptr @test_count, align 4, !tbaa !16
  %384 = icmp eq ptr %381, null
  br i1 %384, label %385, label %409

385:                                              ; preds = %378
  %386 = tail call ptr @__errno_location() #12
  %387 = load i32, ptr %386, align 4, !tbaa !16
  %388 = load ptr, ptr @stderr, align 8, !tbaa !15
  %389 = call i32 @s2n_print_stacktrace(ptr noundef %388) #11
  %390 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %391 = trunc nuw i8 %390 to i1
  br i1 %391, label %392, label %396

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

396:                                              ; preds = %392, %385
  br label %397

397:                                              ; preds = %392, %396
  %.str.7.sink305 = phi ptr [ @.str.7, %396 ], [ @.str.3, %392 ]
  store i32 %387, ptr %386, align 4, !tbaa !16
  %398 = load ptr, ptr @stderr, align 8, !tbaa !15
  %399 = load i32, ptr @test_count, align 4, !tbaa !16
  %400 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %401 = load i32, ptr %400, align 4, !tbaa !16
  %402 = call ptr @s2n_strerror(i32 noundef %401, ptr noundef nonnull @.str.6) #11
  %403 = load i32, ptr %400, align 4, !tbaa !16
  %404 = call ptr @s2n_strerror_debug(i32 noundef %403, ptr noundef nonnull @.str.6) #11
  %405 = load i32, ptr %386, align 4, !tbaa !16
  %406 = call ptr @strerror(i32 noundef %405) #11
  %407 = load i32, ptr %386, align 4, !tbaa !16
  %408 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %398, ptr noundef nonnull %.str.7.sink305, i32 noundef %399, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.5, i32 noundef 130, ptr noundef %402, ptr noundef %404, ptr noundef %406, i32 noundef %407) #13
  call void @exit(i32 noundef 1) #14
  unreachable

409:                                              ; preds = %378
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #11
  %410 = call ptr @s2n_connection_new(i32 noundef %1) #11
  store ptr %410, ptr %12, align 8, !tbaa !15
  %411 = load i32, ptr @test_count, align 4, !tbaa !16
  %412 = add nsw i32 %411, 1
  store i32 %412, ptr @test_count, align 4, !tbaa !16
  %413 = icmp eq ptr %410, null
  br i1 %413, label %414, label %438

414:                                              ; preds = %409
  %415 = tail call ptr @__errno_location() #12
  %416 = load i32, ptr %415, align 4, !tbaa !16
  %417 = load ptr, ptr @stderr, align 8, !tbaa !15
  %418 = call i32 @s2n_print_stacktrace(ptr noundef %417) #11
  %419 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %420 = trunc nuw i8 %419 to i1
  br i1 %420, label %421, label %425

421:                                              ; preds = %414
  %422 = load ptr, ptr @stderr, align 8, !tbaa !15
  %423 = call i32 @fileno(ptr noundef %422) #11
  %424 = call i32 @isatty(i32 noundef %423) #11
  %.not160 = icmp eq i32 %424, 0
  br i1 %.not160, label %425, label %426

425:                                              ; preds = %421, %414
  br label %426

426:                                              ; preds = %421, %425
  %.str.7.sink316 = phi ptr [ @.str.7, %425 ], [ @.str.3, %421 ]
  store i32 %416, ptr %415, align 4, !tbaa !16
  %427 = load ptr, ptr @stderr, align 8, !tbaa !15
  %428 = load i32, ptr @test_count, align 4, !tbaa !16
  %429 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %430 = load i32, ptr %429, align 4, !tbaa !16
  %431 = call ptr @s2n_strerror(i32 noundef %430, ptr noundef nonnull @.str.6) #11
  %432 = load i32, ptr %429, align 4, !tbaa !16
  %433 = call ptr @s2n_strerror_debug(i32 noundef %432, ptr noundef nonnull @.str.6) #11
  %434 = load i32, ptr %415, align 4, !tbaa !16
  %435 = call ptr @strerror(i32 noundef %434) #11
  %436 = load i32, ptr %415, align 4, !tbaa !16
  %437 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %427, ptr noundef nonnull %.str.7.sink316, i32 noundef %428, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.5, i32 noundef 134, ptr noundef %431, ptr noundef %433, ptr noundef %435, i32 noundef %436) #13
  call void @exit(i32 noundef 1) #14
  unreachable

438:                                              ; preds = %409
  %439 = add nsw i32 %411, 2
  store i32 %439, ptr @test_count, align 4, !tbaa !16
  %440 = load ptr, ptr %11, align 8, !tbaa !15
  %441 = call i32 @s2n_cert_verify_connection_setup_and_send(ptr noundef %440, ptr noundef nonnull %410, ptr noundef nonnull %142, ptr noundef nonnull %85, ptr noundef nonnull %3, ptr noundef nonnull %10)
  %442 = call zeroext i1 @s2n_result_is_ok(i32 %441)
  br i1 %442, label %467, label %443

443:                                              ; preds = %438
  %444 = tail call ptr @__errno_location() #12
  %445 = load i32, ptr %444, align 4, !tbaa !16
  %446 = load ptr, ptr @stderr, align 8, !tbaa !15
  %447 = call i32 @s2n_print_stacktrace(ptr noundef %446) #11
  %448 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %449 = trunc nuw i8 %448 to i1
  br i1 %449, label %450, label %454

450:                                              ; preds = %443
  %451 = load ptr, ptr @stderr, align 8, !tbaa !15
  %452 = call i32 @fileno(ptr noundef %451) #11
  %453 = call i32 @isatty(i32 noundef %452) #11
  %.not = icmp eq i32 %453, 0
  br i1 %.not, label %454, label %455

454:                                              ; preds = %450, %443
  br label %455

455:                                              ; preds = %450, %454
  %.str.7.sink327 = phi ptr [ @.str.7, %454 ], [ @.str.3, %450 ]
  store i32 %445, ptr %444, align 4, !tbaa !16
  %456 = load ptr, ptr @stderr, align 8, !tbaa !15
  %457 = load i32, ptr @test_count, align 4, !tbaa !16
  %458 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %459 = load i32, ptr %458, align 4, !tbaa !16
  %460 = call ptr @s2n_strerror(i32 noundef %459, ptr noundef nonnull @.str.6) #11
  %461 = load i32, ptr %458, align 4, !tbaa !16
  %462 = call ptr @s2n_strerror_debug(i32 noundef %461, ptr noundef nonnull @.str.6) #11
  %463 = load i32, ptr %444, align 4, !tbaa !16
  %464 = call ptr @strerror(i32 noundef %463) #11
  %465 = load i32, ptr %444, align 4, !tbaa !16
  %466 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %456, ptr noundef nonnull %.str.7.sink327, i32 noundef %457, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.5, i32 noundef 136, ptr noundef %460, ptr noundef %462, ptr noundef %464, i32 noundef %465) #13
  call void @exit(i32 noundef 1) #14
  unreachable

467:                                              ; preds = %438
  %468 = load i32, ptr @test_count, align 4, !tbaa !16
  %469 = add nsw i32 %468, 1
  store i32 %469, ptr @test_count, align 4, !tbaa !16
  %470 = load ptr, ptr %12, align 8, !tbaa !15
  %471 = call i32 @s2n_tls13_cert_verify_recv(ptr noundef %470)
  %472 = icmp eq i32 %471, -1
  br i1 %472, label %473, label %497

473:                                              ; preds = %467
  %474 = tail call ptr @__errno_location() #12
  %475 = load i32, ptr %474, align 4, !tbaa !16
  %476 = load ptr, ptr @stderr, align 8, !tbaa !15
  %477 = call i32 @s2n_print_stacktrace(ptr noundef %476) #11
  %478 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %479 = trunc nuw i8 %478 to i1
  br i1 %479, label %480, label %484

480:                                              ; preds = %473
  %481 = load ptr, ptr @stderr, align 8, !tbaa !15
  %482 = call i32 @fileno(ptr noundef %481) #11
  %483 = call i32 @isatty(i32 noundef %482) #11
  %.not159 = icmp eq i32 %483, 0
  br i1 %.not159, label %484, label %485

484:                                              ; preds = %480, %473
  br label %485

485:                                              ; preds = %480, %484
  %.str.7.sink338 = phi ptr [ @.str.7, %484 ], [ @.str.3, %480 ]
  store i32 %475, ptr %474, align 4, !tbaa !16
  %486 = load ptr, ptr @stderr, align 8, !tbaa !15
  %487 = load i32, ptr @test_count, align 4, !tbaa !16
  %488 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %489 = load i32, ptr %488, align 4, !tbaa !16
  %490 = call ptr @s2n_strerror(i32 noundef %489, ptr noundef nonnull @.str.6) #11
  %491 = load i32, ptr %488, align 4, !tbaa !16
  %492 = call ptr @s2n_strerror_debug(i32 noundef %491, ptr noundef nonnull @.str.6) #11
  %493 = load i32, ptr %474, align 4, !tbaa !16
  %494 = call ptr @strerror(i32 noundef %493) #11
  %495 = load i32, ptr %474, align 4, !tbaa !16
  %496 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %486, ptr noundef nonnull %.str.7.sink338, i32 noundef %487, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.5, i32 noundef 139, ptr noundef %490, ptr noundef %492, ptr noundef %494, i32 noundef %495) #13
  call void @exit(i32 noundef 1) #14
  unreachable

497:                                              ; preds = %467
  %498 = load i32, ptr @test_count, align 4, !tbaa !16
  %499 = add nsw i32 %498, 1
  store i32 %499, ptr @test_count, align 4, !tbaa !16
  %500 = load ptr, ptr %11, align 8, !tbaa !15
  %501 = call i32 @s2n_tls13_cert_verify_send(ptr noundef %500)
  %502 = icmp eq i32 %501, -1
  br i1 %502, label %503, label %527

503:                                              ; preds = %497
  %504 = tail call ptr @__errno_location() #12
  %505 = load i32, ptr %504, align 4, !tbaa !16
  %506 = load ptr, ptr @stderr, align 8, !tbaa !15
  %507 = call i32 @s2n_print_stacktrace(ptr noundef %506) #11
  %508 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %509 = trunc nuw i8 %508 to i1
  br i1 %509, label %510, label %514

510:                                              ; preds = %503
  %511 = load ptr, ptr @stderr, align 8, !tbaa !15
  %512 = call i32 @fileno(ptr noundef %511) #11
  %513 = call i32 @isatty(i32 noundef %512) #11
  %.not158 = icmp eq i32 %513, 0
  br i1 %.not158, label %514, label %515

514:                                              ; preds = %510, %503
  br label %515

515:                                              ; preds = %510, %514
  %.str.7.sink349 = phi ptr [ @.str.7, %514 ], [ @.str.3, %510 ]
  store i32 %505, ptr %504, align 4, !tbaa !16
  %516 = load ptr, ptr @stderr, align 8, !tbaa !15
  %517 = load i32, ptr @test_count, align 4, !tbaa !16
  %518 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %519 = load i32, ptr %518, align 4, !tbaa !16
  %520 = call ptr @s2n_strerror(i32 noundef %519, ptr noundef nonnull @.str.6) #11
  %521 = load i32, ptr %518, align 4, !tbaa !16
  %522 = call ptr @s2n_strerror_debug(i32 noundef %521, ptr noundef nonnull @.str.6) #11
  %523 = load i32, ptr %504, align 4, !tbaa !16
  %524 = call ptr @strerror(i32 noundef %523) #11
  %525 = load i32, ptr %504, align 4, !tbaa !16
  %526 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %516, ptr noundef nonnull %.str.7.sink349, i32 noundef %517, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.5, i32 noundef 142, ptr noundef %520, ptr noundef %522, ptr noundef %524, i32 noundef %525) #13
  call void @exit(i32 noundef 1) #14
  unreachable

527:                                              ; preds = %497
  %528 = load i32, ptr @test_count, align 4, !tbaa !16
  %529 = add nsw i32 %528, 1
  store i32 %529, ptr @test_count, align 4, !tbaa !16
  %530 = load ptr, ptr %11, align 8, !tbaa !15
  %531 = getelementptr inbounds i8, ptr %530, i64 2016
  %532 = load ptr, ptr %12, align 8, !tbaa !15
  %533 = getelementptr inbounds i8, ptr %532, i64 2016
  %534 = getelementptr inbounds i8, ptr %530, i64 2044
  %535 = load i32, ptr %534, align 4, !tbaa !27
  %536 = getelementptr inbounds i8, ptr %530, i64 2040
  %537 = load i32, ptr %536, align 8, !tbaa !51
  %538 = sub i32 %535, %537
  %539 = call i32 @s2n_stuffer_copy(ptr noundef nonnull %531, ptr noundef nonnull %533, i32 noundef %538) #11
  %540 = icmp eq i32 %539, -1
  br i1 %540, label %541, label %565

541:                                              ; preds = %527
  %542 = tail call ptr @__errno_location() #12
  %543 = load i32, ptr %542, align 4, !tbaa !16
  %544 = load ptr, ptr @stderr, align 8, !tbaa !15
  %545 = call i32 @s2n_print_stacktrace(ptr noundef %544) #11
  %546 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %547 = trunc nuw i8 %546 to i1
  br i1 %547, label %548, label %552

548:                                              ; preds = %541
  %549 = load ptr, ptr @stderr, align 8, !tbaa !15
  %550 = call i32 @fileno(ptr noundef %549) #11
  %551 = call i32 @isatty(i32 noundef %550) #11
  %.not157 = icmp eq i32 %551, 0
  br i1 %.not157, label %552, label %553

552:                                              ; preds = %548, %541
  br label %553

553:                                              ; preds = %548, %552
  %.str.7.sink360 = phi ptr [ @.str.7, %552 ], [ @.str.3, %548 ]
  store i32 %543, ptr %542, align 4, !tbaa !16
  %554 = load ptr, ptr @stderr, align 8, !tbaa !15
  %555 = load i32, ptr @test_count, align 4, !tbaa !16
  %556 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %557 = load i32, ptr %556, align 4, !tbaa !16
  %558 = call ptr @s2n_strerror(i32 noundef %557, ptr noundef nonnull @.str.6) #11
  %559 = load i32, ptr %556, align 4, !tbaa !16
  %560 = call ptr @s2n_strerror_debug(i32 noundef %559, ptr noundef nonnull @.str.6) #11
  %561 = load i32, ptr %542, align 4, !tbaa !16
  %562 = call ptr @strerror(i32 noundef %561) #11
  %563 = load i32, ptr %542, align 4, !tbaa !16
  %564 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %554, ptr noundef nonnull %.str.7.sink360, i32 noundef %555, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.5, i32 noundef 144, ptr noundef %558, ptr noundef %560, ptr noundef %562, i32 noundef %563) #13
  call void @exit(i32 noundef 1) #14
  unreachable

565:                                              ; preds = %527
  %566 = load i32, ptr @test_count, align 4, !tbaa !16
  %567 = add nsw i32 %566, 1
  store i32 %567, ptr @test_count, align 4, !tbaa !16
  %568 = load ptr, ptr %12, align 8, !tbaa !15
  %569 = call i32 @s2n_tls13_cert_verify_recv(ptr noundef %568)
  %570 = icmp eq i32 %569, -1
  br i1 %570, label %571, label %595

571:                                              ; preds = %565
  %572 = tail call ptr @__errno_location() #12
  %573 = load i32, ptr %572, align 4, !tbaa !16
  %574 = load ptr, ptr @stderr, align 8, !tbaa !15
  %575 = call i32 @s2n_print_stacktrace(ptr noundef %574) #11
  %576 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %577 = trunc nuw i8 %576 to i1
  br i1 %577, label %578, label %582

578:                                              ; preds = %571
  %579 = load ptr, ptr @stderr, align 8, !tbaa !15
  %580 = call i32 @fileno(ptr noundef %579) #11
  %581 = call i32 @isatty(i32 noundef %580) #11
  %.not156 = icmp eq i32 %581, 0
  br i1 %.not156, label %582, label %583

582:                                              ; preds = %578, %571
  br label %583

583:                                              ; preds = %578, %582
  %.str.7.sink371 = phi ptr [ @.str.7, %582 ], [ @.str.3, %578 ]
  store i32 %573, ptr %572, align 4, !tbaa !16
  %584 = load ptr, ptr @stderr, align 8, !tbaa !15
  %585 = load i32, ptr @test_count, align 4, !tbaa !16
  %586 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %587 = load i32, ptr %586, align 4, !tbaa !16
  %588 = call ptr @s2n_strerror(i32 noundef %587, ptr noundef nonnull @.str.6) #11
  %589 = load i32, ptr %586, align 4, !tbaa !16
  %590 = call ptr @s2n_strerror_debug(i32 noundef %589, ptr noundef nonnull @.str.6) #11
  %591 = load i32, ptr %572, align 4, !tbaa !16
  %592 = call ptr @strerror(i32 noundef %591) #11
  %593 = load i32, ptr %572, align 4, !tbaa !16
  %594 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %584, ptr noundef nonnull %.str.7.sink371, i32 noundef %585, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.5, i32 noundef 145, ptr noundef %588, ptr noundef %590, ptr noundef %592, i32 noundef %593) #13
  call void @exit(i32 noundef 1) #14
  unreachable

595:                                              ; preds = %565
  %596 = load ptr, ptr %12, align 8, !tbaa !15
  %597 = getelementptr inbounds i8, ptr %596, i64 232
  %598 = load ptr, ptr %597, align 8, !tbaa !52
  store ptr @s2n_tls13_aes_256_gcm_sha384, ptr %598, align 8, !tbaa !53
  %599 = load i32, ptr @test_count, align 4, !tbaa !16
  %600 = add nsw i32 %599, 1
  store i32 %600, ptr @test_count, align 4, !tbaa !16
  %601 = load ptr, ptr %11, align 8, !tbaa !15
  %602 = call i32 @s2n_tls13_cert_verify_send(ptr noundef %601)
  %603 = icmp eq i32 %602, -1
  br i1 %603, label %604, label %628

604:                                              ; preds = %595
  %605 = tail call ptr @__errno_location() #12
  %606 = load i32, ptr %605, align 4, !tbaa !16
  %607 = load ptr, ptr @stderr, align 8, !tbaa !15
  %608 = call i32 @s2n_print_stacktrace(ptr noundef %607) #11
  %609 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %610 = trunc nuw i8 %609 to i1
  br i1 %610, label %611, label %615

611:                                              ; preds = %604
  %612 = load ptr, ptr @stderr, align 8, !tbaa !15
  %613 = call i32 @fileno(ptr noundef %612) #11
  %614 = call i32 @isatty(i32 noundef %613) #11
  %.not155 = icmp eq i32 %614, 0
  br i1 %.not155, label %615, label %616

615:                                              ; preds = %611, %604
  br label %616

616:                                              ; preds = %611, %615
  %.str.7.sink382 = phi ptr [ @.str.7, %615 ], [ @.str.3, %611 ]
  store i32 %606, ptr %605, align 4, !tbaa !16
  %617 = load ptr, ptr @stderr, align 8, !tbaa !15
  %618 = load i32, ptr @test_count, align 4, !tbaa !16
  %619 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %620 = load i32, ptr %619, align 4, !tbaa !16
  %621 = call ptr @s2n_strerror(i32 noundef %620, ptr noundef nonnull @.str.6) #11
  %622 = load i32, ptr %619, align 4, !tbaa !16
  %623 = call ptr @s2n_strerror_debug(i32 noundef %622, ptr noundef nonnull @.str.6) #11
  %624 = load i32, ptr %605, align 4, !tbaa !16
  %625 = call ptr @strerror(i32 noundef %624) #11
  %626 = load i32, ptr %605, align 4, !tbaa !16
  %627 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %617, ptr noundef nonnull %.str.7.sink382, i32 noundef %618, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.5, i32 noundef 149, ptr noundef %621, ptr noundef %623, ptr noundef %625, i32 noundef %626) #13
  call void @exit(i32 noundef 1) #14
  unreachable

628:                                              ; preds = %595
  %629 = load i32, ptr @test_count, align 4, !tbaa !16
  %630 = add nsw i32 %629, 1
  store i32 %630, ptr @test_count, align 4, !tbaa !16
  %631 = load ptr, ptr %11, align 8, !tbaa !15
  %632 = getelementptr inbounds i8, ptr %631, i64 2016
  %633 = load ptr, ptr %12, align 8, !tbaa !15
  %634 = getelementptr inbounds i8, ptr %633, i64 2016
  %635 = getelementptr inbounds i8, ptr %631, i64 2044
  %636 = load i32, ptr %635, align 4, !tbaa !27
  %637 = getelementptr inbounds i8, ptr %631, i64 2040
  %638 = load i32, ptr %637, align 8, !tbaa !51
  %639 = sub i32 %636, %638
  %640 = call i32 @s2n_stuffer_copy(ptr noundef nonnull %632, ptr noundef nonnull %634, i32 noundef %639) #11
  %641 = icmp eq i32 %640, -1
  br i1 %641, label %642, label %666

642:                                              ; preds = %628
  %643 = tail call ptr @__errno_location() #12
  %644 = load i32, ptr %643, align 4, !tbaa !16
  %645 = load ptr, ptr @stderr, align 8, !tbaa !15
  %646 = call i32 @s2n_print_stacktrace(ptr noundef %645) #11
  %647 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %648 = trunc nuw i8 %647 to i1
  br i1 %648, label %649, label %653

649:                                              ; preds = %642
  %650 = load ptr, ptr @stderr, align 8, !tbaa !15
  %651 = call i32 @fileno(ptr noundef %650) #11
  %652 = call i32 @isatty(i32 noundef %651) #11
  %.not154 = icmp eq i32 %652, 0
  br i1 %.not154, label %653, label %654

653:                                              ; preds = %649, %642
  br label %654

654:                                              ; preds = %649, %653
  %.str.7.sink393 = phi ptr [ @.str.7, %653 ], [ @.str.3, %649 ]
  store i32 %644, ptr %643, align 4, !tbaa !16
  %655 = load ptr, ptr @stderr, align 8, !tbaa !15
  %656 = load i32, ptr @test_count, align 4, !tbaa !16
  %657 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %658 = load i32, ptr %657, align 4, !tbaa !16
  %659 = call ptr @s2n_strerror(i32 noundef %658, ptr noundef nonnull @.str.6) #11
  %660 = load i32, ptr %657, align 4, !tbaa !16
  %661 = call ptr @s2n_strerror_debug(i32 noundef %660, ptr noundef nonnull @.str.6) #11
  %662 = load i32, ptr %643, align 4, !tbaa !16
  %663 = call ptr @strerror(i32 noundef %662) #11
  %664 = load i32, ptr %643, align 4, !tbaa !16
  %665 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %655, ptr noundef nonnull %.str.7.sink393, i32 noundef %656, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.5, i32 noundef 151, ptr noundef %659, ptr noundef %661, ptr noundef %663, i32 noundef %664) #13
  call void @exit(i32 noundef 1) #14
  unreachable

666:                                              ; preds = %628
  %667 = load i32, ptr @test_count, align 4, !tbaa !16
  %668 = add nsw i32 %667, 1
  store i32 %668, ptr @test_count, align 4, !tbaa !16
  %669 = load ptr, ptr %12, align 8, !tbaa !15
  %670 = call i32 @s2n_tls13_cert_verify_recv(ptr noundef %669)
  %671 = icmp eq i32 %670, -1
  br i1 %671, label %696, label %672

672:                                              ; preds = %666
  %673 = tail call ptr @__errno_location() #12
  %674 = load i32, ptr %673, align 4, !tbaa !16
  %675 = load ptr, ptr @stderr, align 8, !tbaa !15
  %676 = call i32 @s2n_print_stacktrace(ptr noundef %675) #11
  %677 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %678 = trunc nuw i8 %677 to i1
  br i1 %678, label %679, label %683

679:                                              ; preds = %672
  %680 = load ptr, ptr @stderr, align 8, !tbaa !15
  %681 = call i32 @fileno(ptr noundef %680) #11
  %682 = call i32 @isatty(i32 noundef %681) #11
  %.not126 = icmp eq i32 %682, 0
  br i1 %.not126, label %683, label %684

683:                                              ; preds = %679, %672
  br label %684

684:                                              ; preds = %679, %683
  %.str.7.sink404 = phi ptr [ @.str.7, %683 ], [ @.str.3, %679 ]
  store i32 %674, ptr %673, align 4, !tbaa !16
  %685 = load ptr, ptr @stderr, align 8, !tbaa !15
  %686 = load i32, ptr @test_count, align 4, !tbaa !16
  %687 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %688 = load i32, ptr %687, align 4, !tbaa !16
  %689 = call ptr @s2n_strerror(i32 noundef %688, ptr noundef nonnull @.str.6) #11
  %690 = load i32, ptr %687, align 4, !tbaa !16
  %691 = call ptr @s2n_strerror_debug(i32 noundef %690, ptr noundef nonnull @.str.6) #11
  %692 = load i32, ptr %673, align 4, !tbaa !16
  %693 = call ptr @strerror(i32 noundef %692) #11
  %694 = load i32, ptr %673, align 4, !tbaa !16
  %695 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %685, ptr noundef nonnull %.str.7.sink404, i32 noundef %686, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.5, i32 noundef 153, ptr noundef %689, ptr noundef %691, ptr noundef %693, i32 noundef %694) #13
  call void @exit(i32 noundef 1) #14
  unreachable

696:                                              ; preds = %666
  %697 = load i32, ptr @test_count, align 4, !tbaa !16
  %698 = add nsw i32 %697, 1
  store i32 %698, ptr @test_count, align 4, !tbaa !16
  %699 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %700 = load i32, ptr %699, align 4, !tbaa !16
  %701 = icmp eq i32 %700, 335544353
  br i1 %701, label %725, label %702

702:                                              ; preds = %696
  %703 = tail call ptr @__errno_location() #12
  %704 = load i32, ptr %703, align 4, !tbaa !16
  %705 = load ptr, ptr @stderr, align 8, !tbaa !15
  %706 = call i32 @s2n_print_stacktrace(ptr noundef %705) #11
  %707 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %708 = trunc nuw i8 %707 to i1
  br i1 %708, label %709, label %713

709:                                              ; preds = %702
  %710 = load ptr, ptr @stderr, align 8, !tbaa !15
  %711 = call i32 @fileno(ptr noundef %710) #11
  %712 = call i32 @isatty(i32 noundef %711) #11
  %.not127 = icmp eq i32 %712, 0
  br i1 %.not127, label %713, label %714

713:                                              ; preds = %709, %702
  br label %714

714:                                              ; preds = %709, %713
  %.str.7.sink415 = phi ptr [ @.str.7, %713 ], [ @.str.3, %709 ]
  store i32 %704, ptr %703, align 4, !tbaa !16
  %715 = load ptr, ptr @stderr, align 8, !tbaa !15
  %716 = load i32, ptr @test_count, align 4, !tbaa !16
  %717 = load i32, ptr %699, align 4, !tbaa !16
  %718 = call ptr @s2n_strerror(i32 noundef %717, ptr noundef nonnull @.str.6) #11
  %719 = load i32, ptr %699, align 4, !tbaa !16
  %720 = call ptr @s2n_strerror_debug(i32 noundef %719, ptr noundef nonnull @.str.6) #11
  %721 = load i32, ptr %703, align 4, !tbaa !16
  %722 = call ptr @strerror(i32 noundef %721) #11
  %723 = load i32, ptr %703, align 4, !tbaa !16
  %724 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %715, ptr noundef nonnull %.str.7.sink415, i32 noundef %716, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.5, i32 noundef 153, ptr noundef %718, ptr noundef %720, ptr noundef %722, i32 noundef %723) #13
  call void @exit(i32 noundef 1) #14
  unreachable

725:                                              ; preds = %696
  %726 = add nsw i32 %697, 2
  store i32 %726, ptr @test_count, align 4, !tbaa !16
  %727 = call ptr @s2n_strerror_debug(i32 noundef 335544353, ptr noundef nonnull @.str.6) #11
  %728 = icmp eq ptr %727, null
  br i1 %728, label %729, label %752

729:                                              ; preds = %725
  %730 = tail call ptr @__errno_location() #12
  %731 = load i32, ptr %730, align 4, !tbaa !16
  %732 = load ptr, ptr @stderr, align 8, !tbaa !15
  %733 = call i32 @s2n_print_stacktrace(ptr noundef %732) #11
  %734 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %735 = trunc nuw i8 %734 to i1
  br i1 %735, label %736, label %740

736:                                              ; preds = %729
  %737 = load ptr, ptr @stderr, align 8, !tbaa !15
  %738 = call i32 @fileno(ptr noundef %737) #11
  %739 = call i32 @isatty(i32 noundef %738) #11
  %.not153 = icmp eq i32 %739, 0
  br i1 %.not153, label %740, label %741

740:                                              ; preds = %736, %729
  br label %741

741:                                              ; preds = %736, %740
  %.str.7.sink424 = phi ptr [ @.str.7, %740 ], [ @.str.3, %736 ]
  store i32 %731, ptr %730, align 4, !tbaa !16
  %742 = load ptr, ptr @stderr, align 8, !tbaa !15
  %743 = load i32, ptr @test_count, align 4, !tbaa !16
  %744 = load i32, ptr %699, align 4, !tbaa !16
  %745 = call ptr @s2n_strerror(i32 noundef %744, ptr noundef nonnull @.str.6) #11
  %746 = load i32, ptr %699, align 4, !tbaa !16
  %747 = call ptr @s2n_strerror_debug(i32 noundef %746, ptr noundef nonnull @.str.6) #11
  %748 = load i32, ptr %730, align 4, !tbaa !16
  %749 = call ptr @strerror(i32 noundef %748) #11
  %750 = load i32, ptr %730, align 4, !tbaa !16
  %751 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %742, ptr noundef nonnull %.str.7.sink424, i32 noundef %743, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.5, i32 noundef 153, ptr noundef %745, ptr noundef %747, ptr noundef %749, i32 noundef %750) #13
  call void @exit(i32 noundef 1) #14
  unreachable

752:                                              ; preds = %725
  store i32 0, ptr %699, align 4, !tbaa !16
  call void @s2n_debug_info_reset() #11
  %753 = tail call ptr @__errno_location() #12
  store i32 0, ptr %753, align 4, !tbaa !16
  %754 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %12) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #11
  %755 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %11) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #11
  %756 = call ptr @s2n_connection_new(i32 noundef %380) #11
  store ptr %756, ptr %13, align 8, !tbaa !15
  %757 = load i32, ptr @test_count, align 4, !tbaa !16
  %758 = add nsw i32 %757, 1
  store i32 %758, ptr @test_count, align 4, !tbaa !16
  %759 = icmp eq ptr %756, null
  br i1 %759, label %760, label %782

760:                                              ; preds = %752
  %761 = load i32, ptr %753, align 4, !tbaa !16
  %762 = load ptr, ptr @stderr, align 8, !tbaa !15
  %763 = call i32 @s2n_print_stacktrace(ptr noundef %762) #11
  %764 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %765 = trunc nuw i8 %764 to i1
  br i1 %765, label %766, label %770

766:                                              ; preds = %760
  %767 = load ptr, ptr @stderr, align 8, !tbaa !15
  %768 = call i32 @fileno(ptr noundef %767) #11
  %769 = call i32 @isatty(i32 noundef %768) #11
  %.not152 = icmp eq i32 %769, 0
  br i1 %.not152, label %770, label %771

770:                                              ; preds = %766, %760
  br label %771

771:                                              ; preds = %766, %770
  %.str.7.sink433 = phi ptr [ @.str.7, %770 ], [ @.str.3, %766 ]
  store i32 %761, ptr %753, align 4, !tbaa !16
  %772 = load ptr, ptr @stderr, align 8, !tbaa !15
  %773 = load i32, ptr @test_count, align 4, !tbaa !16
  %774 = load i32, ptr %699, align 4, !tbaa !16
  %775 = call ptr @s2n_strerror(i32 noundef %774, ptr noundef nonnull @.str.6) #11
  %776 = load i32, ptr %699, align 4, !tbaa !16
  %777 = call ptr @s2n_strerror_debug(i32 noundef %776, ptr noundef nonnull @.str.6) #11
  %778 = load i32, ptr %753, align 4, !tbaa !16
  %779 = call ptr @strerror(i32 noundef %778) #11
  %780 = load i32, ptr %753, align 4, !tbaa !16
  %781 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %772, ptr noundef nonnull %.str.7.sink433, i32 noundef %773, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.5, i32 noundef 160, ptr noundef %775, ptr noundef %777, ptr noundef %779, i32 noundef %780) #13
  call void @exit(i32 noundef 1) #14
  unreachable

782:                                              ; preds = %752
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #11
  %783 = call ptr @s2n_connection_new(i32 noundef %1) #11
  store ptr %783, ptr %14, align 8, !tbaa !15
  %784 = load i32, ptr @test_count, align 4, !tbaa !16
  %785 = add nsw i32 %784, 1
  store i32 %785, ptr @test_count, align 4, !tbaa !16
  %786 = icmp eq ptr %783, null
  br i1 %786, label %787, label %809

787:                                              ; preds = %782
  %788 = load i32, ptr %753, align 4, !tbaa !16
  %789 = load ptr, ptr @stderr, align 8, !tbaa !15
  %790 = call i32 @s2n_print_stacktrace(ptr noundef %789) #11
  %791 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %792 = trunc nuw i8 %791 to i1
  br i1 %792, label %793, label %797

793:                                              ; preds = %787
  %794 = load ptr, ptr @stderr, align 8, !tbaa !15
  %795 = call i32 @fileno(ptr noundef %794) #11
  %796 = call i32 @isatty(i32 noundef %795) #11
  %.not151 = icmp eq i32 %796, 0
  br i1 %.not151, label %797, label %798

797:                                              ; preds = %793, %787
  br label %798

798:                                              ; preds = %793, %797
  %.str.7.sink442 = phi ptr [ @.str.7, %797 ], [ @.str.3, %793 ]
  store i32 %788, ptr %753, align 4, !tbaa !16
  %799 = load ptr, ptr @stderr, align 8, !tbaa !15
  %800 = load i32, ptr @test_count, align 4, !tbaa !16
  %801 = load i32, ptr %699, align 4, !tbaa !16
  %802 = call ptr @s2n_strerror(i32 noundef %801, ptr noundef nonnull @.str.6) #11
  %803 = load i32, ptr %699, align 4, !tbaa !16
  %804 = call ptr @s2n_strerror_debug(i32 noundef %803, ptr noundef nonnull @.str.6) #11
  %805 = load i32, ptr %753, align 4, !tbaa !16
  %806 = call ptr @strerror(i32 noundef %805) #11
  %807 = load i32, ptr %753, align 4, !tbaa !16
  %808 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %799, ptr noundef nonnull %.str.7.sink442, i32 noundef %800, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.5, i32 noundef 164, ptr noundef %802, ptr noundef %804, ptr noundef %806, i32 noundef %807) #13
  call void @exit(i32 noundef 1) #14
  unreachable

809:                                              ; preds = %782
  %810 = add nsw i32 %784, 2
  store i32 %810, ptr @test_count, align 4, !tbaa !16
  %811 = load ptr, ptr %13, align 8, !tbaa !15
  %812 = call i32 @s2n_cert_verify_connection_setup_and_send(ptr noundef %811, ptr noundef nonnull %783, ptr noundef nonnull %142, ptr noundef nonnull %85, ptr noundef nonnull %3, ptr noundef nonnull %10)
  %813 = call zeroext i1 @s2n_result_is_ok(i32 %812)
  br i1 %813, label %836, label %814

814:                                              ; preds = %809
  %815 = load i32, ptr %753, align 4, !tbaa !16
  %816 = load ptr, ptr @stderr, align 8, !tbaa !15
  %817 = call i32 @s2n_print_stacktrace(ptr noundef %816) #11
  %818 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %819 = trunc nuw i8 %818 to i1
  br i1 %819, label %820, label %824

820:                                              ; preds = %814
  %821 = load ptr, ptr @stderr, align 8, !tbaa !15
  %822 = call i32 @fileno(ptr noundef %821) #11
  %823 = call i32 @isatty(i32 noundef %822) #11
  %.not128 = icmp eq i32 %823, 0
  br i1 %.not128, label %824, label %825

824:                                              ; preds = %820, %814
  br label %825

825:                                              ; preds = %820, %824
  %.str.7.sink451 = phi ptr [ @.str.7, %824 ], [ @.str.3, %820 ]
  store i32 %815, ptr %753, align 4, !tbaa !16
  %826 = load ptr, ptr @stderr, align 8, !tbaa !15
  %827 = load i32, ptr @test_count, align 4, !tbaa !16
  %828 = load i32, ptr %699, align 4, !tbaa !16
  %829 = call ptr @s2n_strerror(i32 noundef %828, ptr noundef nonnull @.str.6) #11
  %830 = load i32, ptr %699, align 4, !tbaa !16
  %831 = call ptr @s2n_strerror_debug(i32 noundef %830, ptr noundef nonnull @.str.6) #11
  %832 = load i32, ptr %753, align 4, !tbaa !16
  %833 = call ptr @strerror(i32 noundef %832) #11
  %834 = load i32, ptr %753, align 4, !tbaa !16
  %835 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %826, ptr noundef nonnull %.str.7.sink451, i32 noundef %827, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.5, i32 noundef 166, ptr noundef %829, ptr noundef %831, ptr noundef %833, i32 noundef %834) #13
  call void @exit(i32 noundef 1) #14
  unreachable

836:                                              ; preds = %809
  %837 = load i32, ptr @test_count, align 4, !tbaa !16
  %838 = add nsw i32 %837, 1
  store i32 %838, ptr @test_count, align 4, !tbaa !16
  %839 = load ptr, ptr %14, align 8, !tbaa !15
  %840 = getelementptr inbounds i8, ptr %839, i64 2056
  %841 = load ptr, ptr %840, align 8, !tbaa !58
  %842 = getelementptr inbounds i8, ptr %841, i64 168
  %843 = call i32 @s2n_hash_update(ptr noundef nonnull %842, ptr noundef nonnull @goodbye, i32 noundef 17) #11
  %844 = icmp eq i32 %843, -1
  br i1 %844, label %845, label %867

845:                                              ; preds = %836
  %846 = load i32, ptr %753, align 4, !tbaa !16
  %847 = load ptr, ptr @stderr, align 8, !tbaa !15
  %848 = call i32 @s2n_print_stacktrace(ptr noundef %847) #11
  %849 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %850 = trunc nuw i8 %849 to i1
  br i1 %850, label %851, label %855

851:                                              ; preds = %845
  %852 = load ptr, ptr @stderr, align 8, !tbaa !15
  %853 = call i32 @fileno(ptr noundef %852) #11
  %854 = call i32 @isatty(i32 noundef %853) #11
  %.not150 = icmp eq i32 %854, 0
  br i1 %.not150, label %855, label %856

855:                                              ; preds = %851, %845
  br label %856

856:                                              ; preds = %851, %855
  %.str.7.sink460 = phi ptr [ @.str.7, %855 ], [ @.str.3, %851 ]
  store i32 %846, ptr %753, align 4, !tbaa !16
  %857 = load ptr, ptr @stderr, align 8, !tbaa !15
  %858 = load i32, ptr @test_count, align 4, !tbaa !16
  %859 = load i32, ptr %699, align 4, !tbaa !16
  %860 = call ptr @s2n_strerror(i32 noundef %859, ptr noundef nonnull @.str.6) #11
  %861 = load i32, ptr %699, align 4, !tbaa !16
  %862 = call ptr @s2n_strerror_debug(i32 noundef %861, ptr noundef nonnull @.str.6) #11
  %863 = load i32, ptr %753, align 4, !tbaa !16
  %864 = call ptr @strerror(i32 noundef %863) #11
  %865 = load i32, ptr %753, align 4, !tbaa !16
  %866 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %857, ptr noundef nonnull %.str.7.sink460, i32 noundef %858, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.5, i32 noundef 169, ptr noundef %860, ptr noundef %862, ptr noundef %864, i32 noundef %865) #13
  call void @exit(i32 noundef 1) #14
  unreachable

867:                                              ; preds = %836
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #11
  store i64 0, ptr %15, align 8, !tbaa !59
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #11
  store i64 0, ptr %16, align 8, !tbaa !59
  %868 = load i32, ptr @test_count, align 4, !tbaa !16
  %869 = add nsw i32 %868, 1
  store i32 %869, ptr @test_count, align 4, !tbaa !16
  %870 = load ptr, ptr %14, align 8, !tbaa !15
  %871 = getelementptr inbounds i8, ptr %870, i64 2056
  %872 = load ptr, ptr %871, align 8, !tbaa !58
  %873 = getelementptr inbounds i8, ptr %872, i64 168
  %874 = call i32 @s2n_hash_get_currently_in_hash_total(ptr noundef nonnull %873, ptr noundef nonnull %15) #11
  %875 = icmp eq i32 %874, -1
  br i1 %875, label %876, label %898

876:                                              ; preds = %867
  %877 = load i32, ptr %753, align 4, !tbaa !16
  %878 = load ptr, ptr @stderr, align 8, !tbaa !15
  %879 = call i32 @s2n_print_stacktrace(ptr noundef %878) #11
  %880 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %881 = trunc nuw i8 %880 to i1
  br i1 %881, label %882, label %886

882:                                              ; preds = %876
  %883 = load ptr, ptr @stderr, align 8, !tbaa !15
  %884 = call i32 @fileno(ptr noundef %883) #11
  %885 = call i32 @isatty(i32 noundef %884) #11
  %.not149 = icmp eq i32 %885, 0
  br i1 %.not149, label %886, label %887

886:                                              ; preds = %882, %876
  br label %887

887:                                              ; preds = %882, %886
  %.str.7.sink469 = phi ptr [ @.str.7, %886 ], [ @.str.3, %882 ]
  store i32 %877, ptr %753, align 4, !tbaa !16
  %888 = load ptr, ptr @stderr, align 8, !tbaa !15
  %889 = load i32, ptr @test_count, align 4, !tbaa !16
  %890 = load i32, ptr %699, align 4, !tbaa !16
  %891 = call ptr @s2n_strerror(i32 noundef %890, ptr noundef nonnull @.str.6) #11
  %892 = load i32, ptr %699, align 4, !tbaa !16
  %893 = call ptr @s2n_strerror_debug(i32 noundef %892, ptr noundef nonnull @.str.6) #11
  %894 = load i32, ptr %753, align 4, !tbaa !16
  %895 = call ptr @strerror(i32 noundef %894) #11
  %896 = load i32, ptr %753, align 4, !tbaa !16
  %897 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %888, ptr noundef nonnull %.str.7.sink469, i32 noundef %889, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.5, i32 noundef 173, ptr noundef %891, ptr noundef %893, ptr noundef %895, i32 noundef %896) #13
  call void @exit(i32 noundef 1) #14
  unreachable

898:                                              ; preds = %867
  %899 = load i32, ptr @test_count, align 4, !tbaa !16
  %900 = add nsw i32 %899, 1
  store i32 %900, ptr @test_count, align 4, !tbaa !16
  %901 = load ptr, ptr %13, align 8, !tbaa !15
  %902 = getelementptr inbounds i8, ptr %901, i64 2056
  %903 = load ptr, ptr %902, align 8, !tbaa !58
  %904 = getelementptr inbounds i8, ptr %903, i64 168
  %905 = call i32 @s2n_hash_get_currently_in_hash_total(ptr noundef nonnull %904, ptr noundef nonnull %16) #11
  %906 = icmp eq i32 %905, -1
  br i1 %906, label %907, label %929

907:                                              ; preds = %898
  %908 = load i32, ptr %753, align 4, !tbaa !16
  %909 = load ptr, ptr @stderr, align 8, !tbaa !15
  %910 = call i32 @s2n_print_stacktrace(ptr noundef %909) #11
  %911 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %912 = trunc nuw i8 %911 to i1
  br i1 %912, label %913, label %917

913:                                              ; preds = %907
  %914 = load ptr, ptr @stderr, align 8, !tbaa !15
  %915 = call i32 @fileno(ptr noundef %914) #11
  %916 = call i32 @isatty(i32 noundef %915) #11
  %.not148 = icmp eq i32 %916, 0
  br i1 %.not148, label %917, label %918

917:                                              ; preds = %913, %907
  br label %918

918:                                              ; preds = %913, %917
  %.str.7.sink478 = phi ptr [ @.str.7, %917 ], [ @.str.3, %913 ]
  store i32 %908, ptr %753, align 4, !tbaa !16
  %919 = load ptr, ptr @stderr, align 8, !tbaa !15
  %920 = load i32, ptr @test_count, align 4, !tbaa !16
  %921 = load i32, ptr %699, align 4, !tbaa !16
  %922 = call ptr @s2n_strerror(i32 noundef %921, ptr noundef nonnull @.str.6) #11
  %923 = load i32, ptr %699, align 4, !tbaa !16
  %924 = call ptr @s2n_strerror_debug(i32 noundef %923, ptr noundef nonnull @.str.6) #11
  %925 = load i32, ptr %753, align 4, !tbaa !16
  %926 = call ptr @strerror(i32 noundef %925) #11
  %927 = load i32, ptr %753, align 4, !tbaa !16
  %928 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %919, ptr noundef nonnull %.str.7.sink478, i32 noundef %920, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.5, i32 noundef 174, ptr noundef %922, ptr noundef %924, ptr noundef %926, i32 noundef %927) #13
  call void @exit(i32 noundef 1) #14
  unreachable

929:                                              ; preds = %898
  %930 = load i32, ptr @test_count, align 4, !tbaa !16
  %931 = add nsw i32 %930, 1
  store i32 %931, ptr @test_count, align 4, !tbaa !16
  %932 = load i64, ptr %16, align 8, !tbaa !59
  %933 = load i64, ptr %15, align 8, !tbaa !59
  %934 = icmp eq i64 %932, %933
  br i1 %934, label %935, label %957

935:                                              ; preds = %929
  %936 = load i32, ptr %753, align 4, !tbaa !16
  %937 = load ptr, ptr @stderr, align 8, !tbaa !15
  %938 = call i32 @s2n_print_stacktrace(ptr noundef %937) #11
  %939 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %940 = trunc nuw i8 %939 to i1
  br i1 %940, label %941, label %945

941:                                              ; preds = %935
  %942 = load ptr, ptr @stderr, align 8, !tbaa !15
  %943 = call i32 @fileno(ptr noundef %942) #11
  %944 = call i32 @isatty(i32 noundef %943) #11
  %.not147 = icmp eq i32 %944, 0
  br i1 %.not147, label %945, label %946

945:                                              ; preds = %941, %935
  br label %946

946:                                              ; preds = %941, %945
  %.str.7.sink487 = phi ptr [ @.str.7, %945 ], [ @.str.3, %941 ]
  store i32 %936, ptr %753, align 4, !tbaa !16
  %947 = load ptr, ptr @stderr, align 8, !tbaa !15
  %948 = load i32, ptr @test_count, align 4, !tbaa !16
  %949 = load i32, ptr %699, align 4, !tbaa !16
  %950 = call ptr @s2n_strerror(i32 noundef %949, ptr noundef nonnull @.str.6) #11
  %951 = load i32, ptr %699, align 4, !tbaa !16
  %952 = call ptr @s2n_strerror_debug(i32 noundef %951, ptr noundef nonnull @.str.6) #11
  %953 = load i32, ptr %753, align 4, !tbaa !16
  %954 = call ptr @strerror(i32 noundef %953) #11
  %955 = load i32, ptr %753, align 4, !tbaa !16
  %956 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %947, ptr noundef nonnull %.str.7.sink487, i32 noundef %948, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.5, i32 noundef 175, ptr noundef %950, ptr noundef %952, ptr noundef %954, i32 noundef %955) #13
  call void @exit(i32 noundef 1) #14
  unreachable

957:                                              ; preds = %929
  %958 = add nsw i32 %930, 2
  store i32 %958, ptr @test_count, align 4, !tbaa !16
  %959 = load ptr, ptr %14, align 8, !tbaa !15
  %960 = call i32 @s2n_tls13_cert_verify_recv(ptr noundef %959)
  %961 = icmp eq i32 %960, -1
  br i1 %961, label %984, label %962

962:                                              ; preds = %957
  %963 = load i32, ptr %753, align 4, !tbaa !16
  %964 = load ptr, ptr @stderr, align 8, !tbaa !15
  %965 = call i32 @s2n_print_stacktrace(ptr noundef %964) #11
  %966 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %967 = trunc nuw i8 %966 to i1
  br i1 %967, label %968, label %972

968:                                              ; preds = %962
  %969 = load ptr, ptr @stderr, align 8, !tbaa !15
  %970 = call i32 @fileno(ptr noundef %969) #11
  %971 = call i32 @isatty(i32 noundef %970) #11
  %.not129 = icmp eq i32 %971, 0
  br i1 %.not129, label %972, label %973

972:                                              ; preds = %968, %962
  br label %973

973:                                              ; preds = %968, %972
  %.str.7.sink496 = phi ptr [ @.str.7, %972 ], [ @.str.3, %968 ]
  store i32 %963, ptr %753, align 4, !tbaa !16
  %974 = load ptr, ptr @stderr, align 8, !tbaa !15
  %975 = load i32, ptr @test_count, align 4, !tbaa !16
  %976 = load i32, ptr %699, align 4, !tbaa !16
  %977 = call ptr @s2n_strerror(i32 noundef %976, ptr noundef nonnull @.str.6) #11
  %978 = load i32, ptr %699, align 4, !tbaa !16
  %979 = call ptr @s2n_strerror_debug(i32 noundef %978, ptr noundef nonnull @.str.6) #11
  %980 = load i32, ptr %753, align 4, !tbaa !16
  %981 = call ptr @strerror(i32 noundef %980) #11
  %982 = load i32, ptr %753, align 4, !tbaa !16
  %983 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %974, ptr noundef nonnull %.str.7.sink496, i32 noundef %975, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.5, i32 noundef 177, ptr noundef %977, ptr noundef %979, ptr noundef %981, i32 noundef %982) #13
  call void @exit(i32 noundef 1) #14
  unreachable

984:                                              ; preds = %957
  %985 = load i32, ptr @test_count, align 4, !tbaa !16
  %986 = add nsw i32 %985, 1
  store i32 %986, ptr @test_count, align 4, !tbaa !16
  %987 = load i32, ptr %699, align 4, !tbaa !16
  %988 = icmp eq i32 %987, 335544353
  br i1 %988, label %1011, label %989

989:                                              ; preds = %984
  %990 = load i32, ptr %753, align 4, !tbaa !16
  %991 = load ptr, ptr @stderr, align 8, !tbaa !15
  %992 = call i32 @s2n_print_stacktrace(ptr noundef %991) #11
  %993 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %994 = trunc nuw i8 %993 to i1
  br i1 %994, label %995, label %999

995:                                              ; preds = %989
  %996 = load ptr, ptr @stderr, align 8, !tbaa !15
  %997 = call i32 @fileno(ptr noundef %996) #11
  %998 = call i32 @isatty(i32 noundef %997) #11
  %.not130 = icmp eq i32 %998, 0
  br i1 %.not130, label %999, label %1000

999:                                              ; preds = %995, %989
  br label %1000

1000:                                             ; preds = %995, %999
  %.str.7.sink505 = phi ptr [ @.str.7, %999 ], [ @.str.3, %995 ]
  store i32 %990, ptr %753, align 4, !tbaa !16
  %1001 = load ptr, ptr @stderr, align 8, !tbaa !15
  %1002 = load i32, ptr @test_count, align 4, !tbaa !16
  %1003 = load i32, ptr %699, align 4, !tbaa !16
  %1004 = call ptr @s2n_strerror(i32 noundef %1003, ptr noundef nonnull @.str.6) #11
  %1005 = load i32, ptr %699, align 4, !tbaa !16
  %1006 = call ptr @s2n_strerror_debug(i32 noundef %1005, ptr noundef nonnull @.str.6) #11
  %1007 = load i32, ptr %753, align 4, !tbaa !16
  %1008 = call ptr @strerror(i32 noundef %1007) #11
  %1009 = load i32, ptr %753, align 4, !tbaa !16
  %1010 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1001, ptr noundef nonnull %.str.7.sink505, i32 noundef %1002, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.5, i32 noundef 177, ptr noundef %1004, ptr noundef %1006, ptr noundef %1008, i32 noundef %1009) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1011:                                             ; preds = %984
  %1012 = add nsw i32 %985, 2
  store i32 %1012, ptr @test_count, align 4, !tbaa !16
  %1013 = call ptr @s2n_strerror_debug(i32 noundef 335544353, ptr noundef nonnull @.str.6) #11
  %1014 = icmp eq ptr %1013, null
  br i1 %1014, label %1015, label %1037

1015:                                             ; preds = %1011
  %1016 = load i32, ptr %753, align 4, !tbaa !16
  %1017 = load ptr, ptr @stderr, align 8, !tbaa !15
  %1018 = call i32 @s2n_print_stacktrace(ptr noundef %1017) #11
  %1019 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %1020 = trunc nuw i8 %1019 to i1
  br i1 %1020, label %1021, label %1025

1021:                                             ; preds = %1015
  %1022 = load ptr, ptr @stderr, align 8, !tbaa !15
  %1023 = call i32 @fileno(ptr noundef %1022) #11
  %1024 = call i32 @isatty(i32 noundef %1023) #11
  %.not146 = icmp eq i32 %1024, 0
  br i1 %.not146, label %1025, label %1026

1025:                                             ; preds = %1021, %1015
  br label %1026

1026:                                             ; preds = %1021, %1025
  %.str.7.sink514 = phi ptr [ @.str.7, %1025 ], [ @.str.3, %1021 ]
  store i32 %1016, ptr %753, align 4, !tbaa !16
  %1027 = load ptr, ptr @stderr, align 8, !tbaa !15
  %1028 = load i32, ptr @test_count, align 4, !tbaa !16
  %1029 = load i32, ptr %699, align 4, !tbaa !16
  %1030 = call ptr @s2n_strerror(i32 noundef %1029, ptr noundef nonnull @.str.6) #11
  %1031 = load i32, ptr %699, align 4, !tbaa !16
  %1032 = call ptr @s2n_strerror_debug(i32 noundef %1031, ptr noundef nonnull @.str.6) #11
  %1033 = load i32, ptr %753, align 4, !tbaa !16
  %1034 = call ptr @strerror(i32 noundef %1033) #11
  %1035 = load i32, ptr %753, align 4, !tbaa !16
  %1036 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1027, ptr noundef nonnull %.str.7.sink514, i32 noundef %1028, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.5, i32 noundef 177, ptr noundef %1030, ptr noundef %1032, ptr noundef %1034, i32 noundef %1035) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1037:                                             ; preds = %1011
  store i32 0, ptr %699, align 4, !tbaa !16
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %753, align 4, !tbaa !16
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #11
  %1038 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %14) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #11
  %1039 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %13) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #11
  %1040 = call ptr @s2n_connection_new(i32 noundef %380) #11
  store ptr %1040, ptr %17, align 8, !tbaa !15
  %1041 = load i32, ptr @test_count, align 4, !tbaa !16
  %1042 = add nsw i32 %1041, 1
  store i32 %1042, ptr @test_count, align 4, !tbaa !16
  %1043 = icmp eq ptr %1040, null
  br i1 %1043, label %1044, label %1066

1044:                                             ; preds = %1037
  %1045 = load i32, ptr %753, align 4, !tbaa !16
  %1046 = load ptr, ptr @stderr, align 8, !tbaa !15
  %1047 = call i32 @s2n_print_stacktrace(ptr noundef %1046) #11
  %1048 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %1049 = trunc nuw i8 %1048 to i1
  br i1 %1049, label %1050, label %1054

1050:                                             ; preds = %1044
  %1051 = load ptr, ptr @stderr, align 8, !tbaa !15
  %1052 = call i32 @fileno(ptr noundef %1051) #11
  %1053 = call i32 @isatty(i32 noundef %1052) #11
  %.not145 = icmp eq i32 %1053, 0
  br i1 %.not145, label %1054, label %1055

1054:                                             ; preds = %1050, %1044
  br label %1055

1055:                                             ; preds = %1050, %1054
  %.str.7.sink523 = phi ptr [ @.str.7, %1054 ], [ @.str.3, %1050 ]
  store i32 %1045, ptr %753, align 4, !tbaa !16
  %1056 = load ptr, ptr @stderr, align 8, !tbaa !15
  %1057 = load i32, ptr @test_count, align 4, !tbaa !16
  %1058 = load i32, ptr %699, align 4, !tbaa !16
  %1059 = call ptr @s2n_strerror(i32 noundef %1058, ptr noundef nonnull @.str.6) #11
  %1060 = load i32, ptr %699, align 4, !tbaa !16
  %1061 = call ptr @s2n_strerror_debug(i32 noundef %1060, ptr noundef nonnull @.str.6) #11
  %1062 = load i32, ptr %753, align 4, !tbaa !16
  %1063 = call ptr @strerror(i32 noundef %1062) #11
  %1064 = load i32, ptr %753, align 4, !tbaa !16
  %1065 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1056, ptr noundef nonnull %.str.7.sink523, i32 noundef %1057, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.5, i32 noundef 184, ptr noundef %1059, ptr noundef %1061, ptr noundef %1063, i32 noundef %1064) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1066:                                             ; preds = %1037
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #11
  %1067 = call ptr @s2n_connection_new(i32 noundef %1) #11
  store ptr %1067, ptr %18, align 8, !tbaa !15
  %1068 = load i32, ptr @test_count, align 4, !tbaa !16
  %1069 = add nsw i32 %1068, 1
  store i32 %1069, ptr @test_count, align 4, !tbaa !16
  %1070 = icmp eq ptr %1067, null
  br i1 %1070, label %1071, label %1093

1071:                                             ; preds = %1066
  %1072 = load i32, ptr %753, align 4, !tbaa !16
  %1073 = load ptr, ptr @stderr, align 8, !tbaa !15
  %1074 = call i32 @s2n_print_stacktrace(ptr noundef %1073) #11
  %1075 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %1076 = trunc nuw i8 %1075 to i1
  br i1 %1076, label %1077, label %1081

1077:                                             ; preds = %1071
  %1078 = load ptr, ptr @stderr, align 8, !tbaa !15
  %1079 = call i32 @fileno(ptr noundef %1078) #11
  %1080 = call i32 @isatty(i32 noundef %1079) #11
  %.not144 = icmp eq i32 %1080, 0
  br i1 %.not144, label %1081, label %1082

1081:                                             ; preds = %1077, %1071
  br label %1082

1082:                                             ; preds = %1077, %1081
  %.str.7.sink532 = phi ptr [ @.str.7, %1081 ], [ @.str.3, %1077 ]
  store i32 %1072, ptr %753, align 4, !tbaa !16
  %1083 = load ptr, ptr @stderr, align 8, !tbaa !15
  %1084 = load i32, ptr @test_count, align 4, !tbaa !16
  %1085 = load i32, ptr %699, align 4, !tbaa !16
  %1086 = call ptr @s2n_strerror(i32 noundef %1085, ptr noundef nonnull @.str.6) #11
  %1087 = load i32, ptr %699, align 4, !tbaa !16
  %1088 = call ptr @s2n_strerror_debug(i32 noundef %1087, ptr noundef nonnull @.str.6) #11
  %1089 = load i32, ptr %753, align 4, !tbaa !16
  %1090 = call ptr @strerror(i32 noundef %1089) #11
  %1091 = load i32, ptr %753, align 4, !tbaa !16
  %1092 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1083, ptr noundef nonnull %.str.7.sink532, i32 noundef %1084, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.5, i32 noundef 188, ptr noundef %1086, ptr noundef %1088, ptr noundef %1090, i32 noundef %1091) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1093:                                             ; preds = %1066
  %1094 = add nsw i32 %1068, 2
  store i32 %1094, ptr @test_count, align 4, !tbaa !16
  %1095 = load ptr, ptr %17, align 8, !tbaa !15
  %1096 = call i32 @s2n_cert_verify_connection_setup_and_send(ptr noundef %1095, ptr noundef nonnull %1067, ptr noundef nonnull %142, ptr noundef nonnull %85, ptr noundef nonnull %3, ptr noundef nonnull %10)
  %1097 = call zeroext i1 @s2n_result_is_ok(i32 %1096)
  br i1 %1097, label %1120, label %1098

1098:                                             ; preds = %1093
  %1099 = load i32, ptr %753, align 4, !tbaa !16
  %1100 = load ptr, ptr @stderr, align 8, !tbaa !15
  %1101 = call i32 @s2n_print_stacktrace(ptr noundef %1100) #11
  %1102 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %1103 = trunc nuw i8 %1102 to i1
  br i1 %1103, label %1104, label %1108

1104:                                             ; preds = %1098
  %1105 = load ptr, ptr @stderr, align 8, !tbaa !15
  %1106 = call i32 @fileno(ptr noundef %1105) #11
  %1107 = call i32 @isatty(i32 noundef %1106) #11
  %.not131 = icmp eq i32 %1107, 0
  br i1 %.not131, label %1108, label %1109

1108:                                             ; preds = %1104, %1098
  br label %1109

1109:                                             ; preds = %1104, %1108
  %.str.7.sink541 = phi ptr [ @.str.7, %1108 ], [ @.str.3, %1104 ]
  store i32 %1099, ptr %753, align 4, !tbaa !16
  %1110 = load ptr, ptr @stderr, align 8, !tbaa !15
  %1111 = load i32, ptr @test_count, align 4, !tbaa !16
  %1112 = load i32, ptr %699, align 4, !tbaa !16
  %1113 = call ptr @s2n_strerror(i32 noundef %1112, ptr noundef nonnull @.str.6) #11
  %1114 = load i32, ptr %699, align 4, !tbaa !16
  %1115 = call ptr @s2n_strerror_debug(i32 noundef %1114, ptr noundef nonnull @.str.6) #11
  %1116 = load i32, ptr %753, align 4, !tbaa !16
  %1117 = call ptr @strerror(i32 noundef %1116) #11
  %1118 = load i32, ptr %753, align 4, !tbaa !16
  %1119 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1110, ptr noundef nonnull %.str.7.sink541, i32 noundef %1111, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.5, i32 noundef 190, ptr noundef %1113, ptr noundef %1115, ptr noundef %1117, i32 noundef %1118) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1120:                                             ; preds = %1093
  %1121 = load i32, ptr @test_count, align 4, !tbaa !16
  %1122 = add nsw i32 %1121, 1
  store i32 %1122, ptr @test_count, align 4, !tbaa !16
  %1123 = load ptr, ptr %18, align 8, !tbaa !15
  %1124 = getelementptr inbounds i8, ptr %1123, i64 2044
  %1125 = load i32, ptr %1124, align 4, !tbaa !27
  %1126 = getelementptr inbounds i8, ptr %1123, i64 2040
  %1127 = load i32, ptr %1126, align 8, !tbaa !51
  %1128 = sub i32 %1125, %1127
  %1129 = icmp ugt i32 %1128, 10
  br i1 %1129, label %1152, label %1130

1130:                                             ; preds = %1120
  %1131 = load i32, ptr %753, align 4, !tbaa !16
  %1132 = load ptr, ptr @stderr, align 8, !tbaa !15
  %1133 = call i32 @s2n_print_stacktrace(ptr noundef %1132) #11
  %1134 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %1135 = trunc nuw i8 %1134 to i1
  br i1 %1135, label %1136, label %1140

1136:                                             ; preds = %1130
  %1137 = load ptr, ptr @stderr, align 8, !tbaa !15
  %1138 = call i32 @fileno(ptr noundef %1137) #11
  %1139 = call i32 @isatty(i32 noundef %1138) #11
  %.not132 = icmp eq i32 %1139, 0
  br i1 %.not132, label %1140, label %1141

1140:                                             ; preds = %1136, %1130
  br label %1141

1141:                                             ; preds = %1136, %1140
  %.str.7.sink550 = phi ptr [ @.str.7, %1140 ], [ @.str.3, %1136 ]
  store i32 %1131, ptr %753, align 4, !tbaa !16
  %1142 = load ptr, ptr @stderr, align 8, !tbaa !15
  %1143 = load i32, ptr @test_count, align 4, !tbaa !16
  %1144 = load i32, ptr %699, align 4, !tbaa !16
  %1145 = call ptr @s2n_strerror(i32 noundef %1144, ptr noundef nonnull @.str.6) #11
  %1146 = load i32, ptr %699, align 4, !tbaa !16
  %1147 = call ptr @s2n_strerror_debug(i32 noundef %1146, ptr noundef nonnull @.str.6) #11
  %1148 = load i32, ptr %753, align 4, !tbaa !16
  %1149 = call ptr @strerror(i32 noundef %1148) #11
  %1150 = load i32, ptr %753, align 4, !tbaa !16
  %1151 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1142, ptr noundef nonnull %.str.7.sink550, i32 noundef %1143, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.5, i32 noundef 193, ptr noundef %1145, ptr noundef %1147, ptr noundef %1149, i32 noundef %1150) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1152:                                             ; preds = %1120
  %1153 = getelementptr inbounds i8, ptr %1123, i64 2016
  %1154 = load ptr, ptr %1153, align 8, !tbaa !60
  %1155 = getelementptr inbounds i8, ptr %1154, i64 10
  %1156 = load i8, ptr %1155, align 1, !tbaa !18
  %1157 = xor i8 %1156, 1
  store i8 %1157, ptr %1155, align 1, !tbaa !18
  %1158 = add nsw i32 %1121, 2
  store i32 %1158, ptr @test_count, align 4, !tbaa !16
  %1159 = call i32 @s2n_tls13_cert_verify_recv(ptr noundef nonnull %1123)
  %1160 = icmp eq i32 %1159, -1
  br i1 %1160, label %1183, label %1161

1161:                                             ; preds = %1152
  %1162 = load i32, ptr %753, align 4, !tbaa !16
  %1163 = load ptr, ptr @stderr, align 8, !tbaa !15
  %1164 = call i32 @s2n_print_stacktrace(ptr noundef %1163) #11
  %1165 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %1166 = trunc nuw i8 %1165 to i1
  br i1 %1166, label %1167, label %1171

1167:                                             ; preds = %1161
  %1168 = load ptr, ptr @stderr, align 8, !tbaa !15
  %1169 = call i32 @fileno(ptr noundef %1168) #11
  %1170 = call i32 @isatty(i32 noundef %1169) #11
  %.not133 = icmp eq i32 %1170, 0
  br i1 %.not133, label %1171, label %1172

1171:                                             ; preds = %1167, %1161
  br label %1172

1172:                                             ; preds = %1167, %1171
  %.str.7.sink559 = phi ptr [ @.str.7, %1171 ], [ @.str.3, %1167 ]
  store i32 %1162, ptr %753, align 4, !tbaa !16
  %1173 = load ptr, ptr @stderr, align 8, !tbaa !15
  %1174 = load i32, ptr @test_count, align 4, !tbaa !16
  %1175 = load i32, ptr %699, align 4, !tbaa !16
  %1176 = call ptr @s2n_strerror(i32 noundef %1175, ptr noundef nonnull @.str.6) #11
  %1177 = load i32, ptr %699, align 4, !tbaa !16
  %1178 = call ptr @s2n_strerror_debug(i32 noundef %1177, ptr noundef nonnull @.str.6) #11
  %1179 = load i32, ptr %753, align 4, !tbaa !16
  %1180 = call ptr @strerror(i32 noundef %1179) #11
  %1181 = load i32, ptr %753, align 4, !tbaa !16
  %1182 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1173, ptr noundef nonnull %.str.7.sink559, i32 noundef %1174, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.5, i32 noundef 196, ptr noundef %1176, ptr noundef %1178, ptr noundef %1180, i32 noundef %1181) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1183:                                             ; preds = %1152
  %1184 = load i32, ptr @test_count, align 4, !tbaa !16
  %1185 = add nsw i32 %1184, 1
  store i32 %1185, ptr @test_count, align 4, !tbaa !16
  %1186 = load i32, ptr %699, align 4, !tbaa !16
  %1187 = icmp eq i32 %1186, 335544353
  br i1 %1187, label %1210, label %1188

1188:                                             ; preds = %1183
  %1189 = load i32, ptr %753, align 4, !tbaa !16
  %1190 = load ptr, ptr @stderr, align 8, !tbaa !15
  %1191 = call i32 @s2n_print_stacktrace(ptr noundef %1190) #11
  %1192 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %1193 = trunc nuw i8 %1192 to i1
  br i1 %1193, label %1194, label %1198

1194:                                             ; preds = %1188
  %1195 = load ptr, ptr @stderr, align 8, !tbaa !15
  %1196 = call i32 @fileno(ptr noundef %1195) #11
  %1197 = call i32 @isatty(i32 noundef %1196) #11
  %.not134 = icmp eq i32 %1197, 0
  br i1 %.not134, label %1198, label %1199

1198:                                             ; preds = %1194, %1188
  br label %1199

1199:                                             ; preds = %1194, %1198
  %.str.7.sink568 = phi ptr [ @.str.7, %1198 ], [ @.str.3, %1194 ]
  store i32 %1189, ptr %753, align 4, !tbaa !16
  %1200 = load ptr, ptr @stderr, align 8, !tbaa !15
  %1201 = load i32, ptr @test_count, align 4, !tbaa !16
  %1202 = load i32, ptr %699, align 4, !tbaa !16
  %1203 = call ptr @s2n_strerror(i32 noundef %1202, ptr noundef nonnull @.str.6) #11
  %1204 = load i32, ptr %699, align 4, !tbaa !16
  %1205 = call ptr @s2n_strerror_debug(i32 noundef %1204, ptr noundef nonnull @.str.6) #11
  %1206 = load i32, ptr %753, align 4, !tbaa !16
  %1207 = call ptr @strerror(i32 noundef %1206) #11
  %1208 = load i32, ptr %753, align 4, !tbaa !16
  %1209 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1200, ptr noundef nonnull %.str.7.sink568, i32 noundef %1201, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.5, i32 noundef 196, ptr noundef %1203, ptr noundef %1205, ptr noundef %1207, i32 noundef %1208) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1210:                                             ; preds = %1183
  %1211 = add nsw i32 %1184, 2
  store i32 %1211, ptr @test_count, align 4, !tbaa !16
  %1212 = call ptr @s2n_strerror_debug(i32 noundef 335544353, ptr noundef nonnull @.str.6) #11
  %1213 = icmp eq ptr %1212, null
  br i1 %1213, label %1214, label %1236

1214:                                             ; preds = %1210
  %1215 = load i32, ptr %753, align 4, !tbaa !16
  %1216 = load ptr, ptr @stderr, align 8, !tbaa !15
  %1217 = call i32 @s2n_print_stacktrace(ptr noundef %1216) #11
  %1218 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %1219 = trunc nuw i8 %1218 to i1
  br i1 %1219, label %1220, label %1224

1220:                                             ; preds = %1214
  %1221 = load ptr, ptr @stderr, align 8, !tbaa !15
  %1222 = call i32 @fileno(ptr noundef %1221) #11
  %1223 = call i32 @isatty(i32 noundef %1222) #11
  %.not143 = icmp eq i32 %1223, 0
  br i1 %.not143, label %1224, label %1225

1224:                                             ; preds = %1220, %1214
  br label %1225

1225:                                             ; preds = %1220, %1224
  %.str.7.sink577 = phi ptr [ @.str.7, %1224 ], [ @.str.3, %1220 ]
  store i32 %1215, ptr %753, align 4, !tbaa !16
  %1226 = load ptr, ptr @stderr, align 8, !tbaa !15
  %1227 = load i32, ptr @test_count, align 4, !tbaa !16
  %1228 = load i32, ptr %699, align 4, !tbaa !16
  %1229 = call ptr @s2n_strerror(i32 noundef %1228, ptr noundef nonnull @.str.6) #11
  %1230 = load i32, ptr %699, align 4, !tbaa !16
  %1231 = call ptr @s2n_strerror_debug(i32 noundef %1230, ptr noundef nonnull @.str.6) #11
  %1232 = load i32, ptr %753, align 4, !tbaa !16
  %1233 = call ptr @strerror(i32 noundef %1232) #11
  %1234 = load i32, ptr %753, align 4, !tbaa !16
  %1235 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1226, ptr noundef nonnull %.str.7.sink577, i32 noundef %1227, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.5, i32 noundef 196, ptr noundef %1229, ptr noundef %1231, ptr noundef %1233, i32 noundef %1234) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1236:                                             ; preds = %1210
  store i32 0, ptr %699, align 4, !tbaa !16
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %753, align 4, !tbaa !16
  %1237 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %18) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #11
  %1238 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %17) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #11
  %1239 = call ptr @s2n_connection_new(i32 noundef %380) #11
  store ptr %1239, ptr %19, align 8, !tbaa !15
  %1240 = load i32, ptr @test_count, align 4, !tbaa !16
  %1241 = add nsw i32 %1240, 1
  store i32 %1241, ptr @test_count, align 4, !tbaa !16
  %1242 = icmp eq ptr %1239, null
  br i1 %1242, label %1243, label %1265

1243:                                             ; preds = %1236
  %1244 = load i32, ptr %753, align 4, !tbaa !16
  %1245 = load ptr, ptr @stderr, align 8, !tbaa !15
  %1246 = call i32 @s2n_print_stacktrace(ptr noundef %1245) #11
  %1247 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %1248 = trunc nuw i8 %1247 to i1
  br i1 %1248, label %1249, label %1253

1249:                                             ; preds = %1243
  %1250 = load ptr, ptr @stderr, align 8, !tbaa !15
  %1251 = call i32 @fileno(ptr noundef %1250) #11
  %1252 = call i32 @isatty(i32 noundef %1251) #11
  %.not142 = icmp eq i32 %1252, 0
  br i1 %.not142, label %1253, label %1254

1253:                                             ; preds = %1249, %1243
  br label %1254

1254:                                             ; preds = %1249, %1253
  %.str.7.sink586 = phi ptr [ @.str.7, %1253 ], [ @.str.3, %1249 ]
  store i32 %1244, ptr %753, align 4, !tbaa !16
  %1255 = load ptr, ptr @stderr, align 8, !tbaa !15
  %1256 = load i32, ptr @test_count, align 4, !tbaa !16
  %1257 = load i32, ptr %699, align 4, !tbaa !16
  %1258 = call ptr @s2n_strerror(i32 noundef %1257, ptr noundef nonnull @.str.6) #11
  %1259 = load i32, ptr %699, align 4, !tbaa !16
  %1260 = call ptr @s2n_strerror_debug(i32 noundef %1259, ptr noundef nonnull @.str.6) #11
  %1261 = load i32, ptr %753, align 4, !tbaa !16
  %1262 = call ptr @strerror(i32 noundef %1261) #11
  %1263 = load i32, ptr %753, align 4, !tbaa !16
  %1264 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1255, ptr noundef nonnull %.str.7.sink586, i32 noundef %1256, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.5, i32 noundef 203, ptr noundef %1258, ptr noundef %1260, ptr noundef %1262, i32 noundef %1263) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1265:                                             ; preds = %1236
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #11
  %1266 = call ptr @s2n_connection_new(i32 noundef %1) #11
  store ptr %1266, ptr %20, align 8, !tbaa !15
  %1267 = load i32, ptr @test_count, align 4, !tbaa !16
  %1268 = add nsw i32 %1267, 1
  store i32 %1268, ptr @test_count, align 4, !tbaa !16
  %1269 = icmp eq ptr %1266, null
  br i1 %1269, label %1270, label %1292

1270:                                             ; preds = %1265
  %1271 = load i32, ptr %753, align 4, !tbaa !16
  %1272 = load ptr, ptr @stderr, align 8, !tbaa !15
  %1273 = call i32 @s2n_print_stacktrace(ptr noundef %1272) #11
  %1274 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %1275 = trunc nuw i8 %1274 to i1
  br i1 %1275, label %1276, label %1280

1276:                                             ; preds = %1270
  %1277 = load ptr, ptr @stderr, align 8, !tbaa !15
  %1278 = call i32 @fileno(ptr noundef %1277) #11
  %1279 = call i32 @isatty(i32 noundef %1278) #11
  %.not141 = icmp eq i32 %1279, 0
  br i1 %.not141, label %1280, label %1281

1280:                                             ; preds = %1276, %1270
  br label %1281

1281:                                             ; preds = %1276, %1280
  %.str.7.sink595 = phi ptr [ @.str.7, %1280 ], [ @.str.3, %1276 ]
  store i32 %1271, ptr %753, align 4, !tbaa !16
  %1282 = load ptr, ptr @stderr, align 8, !tbaa !15
  %1283 = load i32, ptr @test_count, align 4, !tbaa !16
  %1284 = load i32, ptr %699, align 4, !tbaa !16
  %1285 = call ptr @s2n_strerror(i32 noundef %1284, ptr noundef nonnull @.str.6) #11
  %1286 = load i32, ptr %699, align 4, !tbaa !16
  %1287 = call ptr @s2n_strerror_debug(i32 noundef %1286, ptr noundef nonnull @.str.6) #11
  %1288 = load i32, ptr %753, align 4, !tbaa !16
  %1289 = call ptr @strerror(i32 noundef %1288) #11
  %1290 = load i32, ptr %753, align 4, !tbaa !16
  %1291 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1282, ptr noundef nonnull %.str.7.sink595, i32 noundef %1283, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.5, i32 noundef 207, ptr noundef %1285, ptr noundef %1287, ptr noundef %1289, i32 noundef %1290) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1292:                                             ; preds = %1265
  %1293 = add nsw i32 %1267, 2
  store i32 %1293, ptr @test_count, align 4, !tbaa !16
  %1294 = call i32 @s2n_cert_verify_connection_setup_and_send(ptr noundef nonnull %1239, ptr noundef nonnull %1266, ptr noundef nonnull %142, ptr noundef nonnull %85, ptr noundef nonnull %3, ptr noundef nonnull %10)
  %1295 = call zeroext i1 @s2n_result_is_ok(i32 %1294)
  br i1 %1295, label %1318, label %1296

1296:                                             ; preds = %1292
  %1297 = load i32, ptr %753, align 4, !tbaa !16
  %1298 = load ptr, ptr @stderr, align 8, !tbaa !15
  %1299 = call i32 @s2n_print_stacktrace(ptr noundef %1298) #11
  %1300 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %1301 = trunc nuw i8 %1300 to i1
  br i1 %1301, label %1302, label %1306

1302:                                             ; preds = %1296
  %1303 = load ptr, ptr @stderr, align 8, !tbaa !15
  %1304 = call i32 @fileno(ptr noundef %1303) #11
  %1305 = call i32 @isatty(i32 noundef %1304) #11
  %.not135 = icmp eq i32 %1305, 0
  br i1 %.not135, label %1306, label %1307

1306:                                             ; preds = %1302, %1296
  br label %1307

1307:                                             ; preds = %1302, %1306
  %.str.7.sink604 = phi ptr [ @.str.7, %1306 ], [ @.str.3, %1302 ]
  store i32 %1297, ptr %753, align 4, !tbaa !16
  %1308 = load ptr, ptr @stderr, align 8, !tbaa !15
  %1309 = load i32, ptr @test_count, align 4, !tbaa !16
  %1310 = load i32, ptr %699, align 4, !tbaa !16
  %1311 = call ptr @s2n_strerror(i32 noundef %1310, ptr noundef nonnull @.str.6) #11
  %1312 = load i32, ptr %699, align 4, !tbaa !16
  %1313 = call ptr @s2n_strerror_debug(i32 noundef %1312, ptr noundef nonnull @.str.6) #11
  %1314 = load i32, ptr %753, align 4, !tbaa !16
  %1315 = call ptr @strerror(i32 noundef %1314) #11
  %1316 = load i32, ptr %753, align 4, !tbaa !16
  %1317 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1308, ptr noundef nonnull %.str.7.sink604, i32 noundef %1309, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.5, i32 noundef 209, ptr noundef %1311, ptr noundef %1313, ptr noundef %1315, i32 noundef %1316) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1318:                                             ; preds = %1292
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %21) #11
  %1319 = getelementptr inbounds i8, ptr %1266, i64 2016
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %21, ptr noundef nonnull align 8 dereferenceable(40) %1319, i64 40, i1 false), !tbaa.struct !61
  %1320 = load i32, ptr @test_count, align 4, !tbaa !16
  %1321 = add nsw i32 %1320, 1
  store i32 %1321, ptr @test_count, align 4, !tbaa !16
  %1322 = call i32 @s2n_stuffer_rewrite(ptr noundef nonnull %21) #11
  %1323 = icmp eq i32 %1322, -1
  br i1 %1323, label %1324, label %1346

1324:                                             ; preds = %1318
  %1325 = load i32, ptr %753, align 4, !tbaa !16
  %1326 = load ptr, ptr @stderr, align 8, !tbaa !15
  %1327 = call i32 @s2n_print_stacktrace(ptr noundef %1326) #11
  %1328 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %1329 = trunc nuw i8 %1328 to i1
  br i1 %1329, label %1330, label %1334

1330:                                             ; preds = %1324
  %1331 = load ptr, ptr @stderr, align 8, !tbaa !15
  %1332 = call i32 @fileno(ptr noundef %1331) #11
  %1333 = call i32 @isatty(i32 noundef %1332) #11
  %.not140 = icmp eq i32 %1333, 0
  br i1 %.not140, label %1334, label %1335

1334:                                             ; preds = %1330, %1324
  br label %1335

1335:                                             ; preds = %1330, %1334
  %.str.7.sink613 = phi ptr [ @.str.7, %1334 ], [ @.str.3, %1330 ]
  store i32 %1325, ptr %753, align 4, !tbaa !16
  %1336 = load ptr, ptr @stderr, align 8, !tbaa !15
  %1337 = load i32, ptr @test_count, align 4, !tbaa !16
  %1338 = load i32, ptr %699, align 4, !tbaa !16
  %1339 = call ptr @s2n_strerror(i32 noundef %1338, ptr noundef nonnull @.str.6) #11
  %1340 = load i32, ptr %699, align 4, !tbaa !16
  %1341 = call ptr @s2n_strerror_debug(i32 noundef %1340, ptr noundef nonnull @.str.6) #11
  %1342 = load i32, ptr %753, align 4, !tbaa !16
  %1343 = call ptr @strerror(i32 noundef %1342) #11
  %1344 = load i32, ptr %753, align 4, !tbaa !16
  %1345 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1336, ptr noundef nonnull %.str.7.sink613, i32 noundef %1337, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.5, i32 noundef 213, ptr noundef %1339, ptr noundef %1341, ptr noundef %1343, i32 noundef %1344) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1346:                                             ; preds = %1318
  %1347 = load i32, ptr @test_count, align 4, !tbaa !16
  %1348 = add nsw i32 %1347, 1
  store i32 %1348, ptr @test_count, align 4, !tbaa !16
  %1349 = getelementptr inbounds i8, ptr %0, i64 24
  %1350 = load ptr, ptr %1349, align 8, !tbaa !62
  %1351 = load i16, ptr %1350, align 8, !tbaa !63
  %1352 = call i32 @s2n_stuffer_write_uint16(ptr noundef nonnull %21, i16 noundef zeroext %1351) #11
  %1353 = icmp eq i32 %1352, -1
  br i1 %1353, label %1354, label %1376

1354:                                             ; preds = %1346
  %1355 = load i32, ptr %753, align 4, !tbaa !16
  %1356 = load ptr, ptr @stderr, align 8, !tbaa !15
  %1357 = call i32 @s2n_print_stacktrace(ptr noundef %1356) #11
  %1358 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %1359 = trunc nuw i8 %1358 to i1
  br i1 %1359, label %1360, label %1364

1360:                                             ; preds = %1354
  %1361 = load ptr, ptr @stderr, align 8, !tbaa !15
  %1362 = call i32 @fileno(ptr noundef %1361) #11
  %1363 = call i32 @isatty(i32 noundef %1362) #11
  %.not139 = icmp eq i32 %1363, 0
  br i1 %.not139, label %1364, label %1365

1364:                                             ; preds = %1360, %1354
  br label %1365

1365:                                             ; preds = %1360, %1364
  %.str.7.sink622 = phi ptr [ @.str.7, %1364 ], [ @.str.3, %1360 ]
  store i32 %1355, ptr %753, align 4, !tbaa !16
  %1366 = load ptr, ptr @stderr, align 8, !tbaa !15
  %1367 = load i32, ptr @test_count, align 4, !tbaa !16
  %1368 = load i32, ptr %699, align 4, !tbaa !16
  %1369 = call ptr @s2n_strerror(i32 noundef %1368, ptr noundef nonnull @.str.6) #11
  %1370 = load i32, ptr %699, align 4, !tbaa !16
  %1371 = call ptr @s2n_strerror_debug(i32 noundef %1370, ptr noundef nonnull @.str.6) #11
  %1372 = load i32, ptr %753, align 4, !tbaa !16
  %1373 = call ptr @strerror(i32 noundef %1372) #11
  %1374 = load i32, ptr %753, align 4, !tbaa !16
  %1375 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1366, ptr noundef nonnull %.str.7.sink622, i32 noundef %1367, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.5, i32 noundef 214, ptr noundef %1369, ptr noundef %1371, ptr noundef %1373, i32 noundef %1374) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1376:                                             ; preds = %1346
  %1377 = load i32, ptr @test_count, align 4, !tbaa !16
  %1378 = add nsw i32 %1377, 1
  store i32 %1378, ptr @test_count, align 4, !tbaa !16
  %1379 = call i32 @s2n_tls13_cert_verify_recv(ptr noundef nonnull %1266)
  %1380 = icmp eq i32 %1379, -1
  br i1 %1380, label %1403, label %1381

1381:                                             ; preds = %1376
  %1382 = load i32, ptr %753, align 4, !tbaa !16
  %1383 = load ptr, ptr @stderr, align 8, !tbaa !15
  %1384 = call i32 @s2n_print_stacktrace(ptr noundef %1383) #11
  %1385 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %1386 = trunc nuw i8 %1385 to i1
  br i1 %1386, label %1387, label %1391

1387:                                             ; preds = %1381
  %1388 = load ptr, ptr @stderr, align 8, !tbaa !15
  %1389 = call i32 @fileno(ptr noundef %1388) #11
  %1390 = call i32 @isatty(i32 noundef %1389) #11
  %.not136 = icmp eq i32 %1390, 0
  br i1 %.not136, label %1391, label %1392

1391:                                             ; preds = %1387, %1381
  br label %1392

1392:                                             ; preds = %1387, %1391
  %.str.7.sink631 = phi ptr [ @.str.7, %1391 ], [ @.str.3, %1387 ]
  store i32 %1382, ptr %753, align 4, !tbaa !16
  %1393 = load ptr, ptr @stderr, align 8, !tbaa !15
  %1394 = load i32, ptr @test_count, align 4, !tbaa !16
  %1395 = load i32, ptr %699, align 4, !tbaa !16
  %1396 = call ptr @s2n_strerror(i32 noundef %1395, ptr noundef nonnull @.str.6) #11
  %1397 = load i32, ptr %699, align 4, !tbaa !16
  %1398 = call ptr @s2n_strerror_debug(i32 noundef %1397, ptr noundef nonnull @.str.6) #11
  %1399 = load i32, ptr %753, align 4, !tbaa !16
  %1400 = call ptr @strerror(i32 noundef %1399) #11
  %1401 = load i32, ptr %753, align 4, !tbaa !16
  %1402 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1393, ptr noundef nonnull %.str.7.sink631, i32 noundef %1394, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.5, i32 noundef 216, ptr noundef %1396, ptr noundef %1398, ptr noundef %1400, i32 noundef %1401) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1403:                                             ; preds = %1376
  %1404 = load i32, ptr @test_count, align 4, !tbaa !16
  %1405 = add nsw i32 %1404, 1
  store i32 %1405, ptr @test_count, align 4, !tbaa !16
  %1406 = load i32, ptr %699, align 4, !tbaa !16
  %1407 = icmp eq i32 %1406, 335544353
  br i1 %1407, label %1430, label %1408

1408:                                             ; preds = %1403
  %1409 = load i32, ptr %753, align 4, !tbaa !16
  %1410 = load ptr, ptr @stderr, align 8, !tbaa !15
  %1411 = call i32 @s2n_print_stacktrace(ptr noundef %1410) #11
  %1412 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %1413 = trunc nuw i8 %1412 to i1
  br i1 %1413, label %1414, label %1418

1414:                                             ; preds = %1408
  %1415 = load ptr, ptr @stderr, align 8, !tbaa !15
  %1416 = call i32 @fileno(ptr noundef %1415) #11
  %1417 = call i32 @isatty(i32 noundef %1416) #11
  %.not137 = icmp eq i32 %1417, 0
  br i1 %.not137, label %1418, label %1419

1418:                                             ; preds = %1414, %1408
  br label %1419

1419:                                             ; preds = %1414, %1418
  %.str.7.sink640 = phi ptr [ @.str.7, %1418 ], [ @.str.3, %1414 ]
  store i32 %1409, ptr %753, align 4, !tbaa !16
  %1420 = load ptr, ptr @stderr, align 8, !tbaa !15
  %1421 = load i32, ptr @test_count, align 4, !tbaa !16
  %1422 = load i32, ptr %699, align 4, !tbaa !16
  %1423 = call ptr @s2n_strerror(i32 noundef %1422, ptr noundef nonnull @.str.6) #11
  %1424 = load i32, ptr %699, align 4, !tbaa !16
  %1425 = call ptr @s2n_strerror_debug(i32 noundef %1424, ptr noundef nonnull @.str.6) #11
  %1426 = load i32, ptr %753, align 4, !tbaa !16
  %1427 = call ptr @strerror(i32 noundef %1426) #11
  %1428 = load i32, ptr %753, align 4, !tbaa !16
  %1429 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1420, ptr noundef nonnull %.str.7.sink640, i32 noundef %1421, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.5, i32 noundef 216, ptr noundef %1423, ptr noundef %1425, ptr noundef %1427, i32 noundef %1428) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1430:                                             ; preds = %1403
  %1431 = add nsw i32 %1404, 2
  store i32 %1431, ptr @test_count, align 4, !tbaa !16
  %1432 = call ptr @s2n_strerror_debug(i32 noundef 335544353, ptr noundef nonnull @.str.6) #11
  %1433 = icmp eq ptr %1432, null
  br i1 %1433, label %1434, label %1456

1434:                                             ; preds = %1430
  %1435 = load i32, ptr %753, align 4, !tbaa !16
  %1436 = load ptr, ptr @stderr, align 8, !tbaa !15
  %1437 = call i32 @s2n_print_stacktrace(ptr noundef %1436) #11
  %1438 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !19, !range !21, !noundef !22
  %1439 = trunc nuw i8 %1438 to i1
  br i1 %1439, label %1440, label %1444

1440:                                             ; preds = %1434
  %1441 = load ptr, ptr @stderr, align 8, !tbaa !15
  %1442 = call i32 @fileno(ptr noundef %1441) #11
  %1443 = call i32 @isatty(i32 noundef %1442) #11
  %.not138 = icmp eq i32 %1443, 0
  br i1 %.not138, label %1444, label %1445

1444:                                             ; preds = %1440, %1434
  br label %1445

1445:                                             ; preds = %1440, %1444
  %.str.7.sink649 = phi ptr [ @.str.7, %1444 ], [ @.str.3, %1440 ]
  store i32 %1435, ptr %753, align 4, !tbaa !16
  %1446 = load ptr, ptr @stderr, align 8, !tbaa !15
  %1447 = load i32, ptr @test_count, align 4, !tbaa !16
  %1448 = load i32, ptr %699, align 4, !tbaa !16
  %1449 = call ptr @s2n_strerror(i32 noundef %1448, ptr noundef nonnull @.str.6) #11
  %1450 = load i32, ptr %699, align 4, !tbaa !16
  %1451 = call ptr @s2n_strerror_debug(i32 noundef %1450, ptr noundef nonnull @.str.6) #11
  %1452 = load i32, ptr %753, align 4, !tbaa !16
  %1453 = call ptr @strerror(i32 noundef %1452) #11
  %1454 = load i32, ptr %753, align 4, !tbaa !16
  %1455 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1446, ptr noundef nonnull %.str.7.sink649, i32 noundef %1447, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.5, i32 noundef 216, ptr noundef %1449, ptr noundef %1451, ptr noundef %1453, i32 noundef %1454) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1456:                                             ; preds = %1430
  store i32 0, ptr %699, align 4, !tbaa !16
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %753, align 4, !tbaa !16
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %21) #11
  %1457 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %20) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #11
  %1458 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %19) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %10) #11
  %1459 = call i32 @s2n_stuffer_free(ptr noundef nonnull %9) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %9) #11
  %1460 = call i32 @s2n_stuffer_free(ptr noundef nonnull %8) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %8) #11
  %1461 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %7) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #11
  %1462 = call i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef nonnull %6) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #11
  call void @llvm.lifetime.end.p0(i64 12000, ptr nonnull %5) #11
  call void @llvm.lifetime.end.p0(i64 12000, ptr nonnull %4) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %3) #11
  ret i32 0
}

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

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

declare i32 @s2n_read_test_pem(ptr noundef, ptr noundef, i64 noundef) local_unnamed_addr #5

declare ptr @s2n_cert_chain_and_key_new() local_unnamed_addr #5

declare i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef) local_unnamed_addr #5

declare i32 @s2n_cert_chain_and_key_load_pem(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #5

declare ptr @s2n_config_new() local_unnamed_addr #5

declare i32 @s2n_config_ptr_free(ptr noundef) local_unnamed_addr #5

declare i32 @s2n_config_set_cipher_preferences(ptr noundef, ptr noundef) local_unnamed_addr #5

declare i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef, ptr noundef) local_unnamed_addr #5

declare i32 @s2n_stuffer_free(ptr noundef) local_unnamed_addr #5

declare i32 @s2n_stuffer_alloc(ptr noundef, i32 noundef) local_unnamed_addr #5

declare i32 @s2n_stuffer_write_bytes(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #5

declare i32 @s2n_stuffer_certificate_from_pem(ptr noundef, ptr noundef) local_unnamed_addr #5

declare i32 @s2n_blob_init(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #5

declare ptr @s2n_stuffer_raw_read(ptr noundef, i32 noundef) local_unnamed_addr #5

declare ptr @s2n_connection_new(i32 noundef) local_unnamed_addr #5

declare i32 @s2n_connection_ptr_free(ptr noundef) local_unnamed_addr #5

declare void @s2n_debug_info_reset() local_unnamed_addr #5

declare i32 @s2n_hash_get_currently_in_hash_total(ptr noundef, ptr noundef) local_unnamed_addr #5

declare i32 @s2n_stuffer_rewrite(ptr noundef) local_unnamed_addr #5

declare i32 @s2n_stuffer_write_uint16(ptr noundef, i16 noundef zeroext) local_unnamed_addr #5

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #3 = { inlinehint 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 #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 = { "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 = { 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 = { 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 #8 = { 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 #9 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #10 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #11 = { nounwind }
attributes #12 = { nounwind willreturn memory(none) }
attributes #13 = { cold nounwind }
attributes #14 = { 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, !7, i64 0}
!6 = !{!"s2n_tls13_cert_verify_test", !7, i64 0, !7, i64 8, !7, i64 16, !7, i64 24}
!7 = !{!"any pointer", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C/C++ TBAA"}
!10 = !{!6, !7, i64 8}
!11 = !{!6, !7, i64 16}
!12 = !{i64 0, i64 2, !13, i64 8, i64 8, !15, i64 16, i64 4, !16, i64 20, i64 4, !16, i64 24, i64 1, !18, i64 25, i64 1, !18, i64 26, i64 2, !13, i64 32, i64 8, !15}
!13 = !{!14, !14, i64 0}
!14 = !{!"short", !8, i64 0}
!15 = !{!7, !7, i64 0}
!16 = !{!17, !17, i64 0}
!17 = !{!"int", !8, i64 0}
!18 = !{!8, !8, i64 0}
!19 = !{!20, !20, i64 0}
!20 = !{!"_Bool", !8, i64 0}
!21 = !{i8 0, i8 2}
!22 = !{}
!23 = !{!24, !17, i64 28}
!24 = !{!"s2n_stuffer", !25, i64 0, !17, i64 24, !17, i64 28, !17, i64 32, !17, i64 36, !17, i64 36, !17, i64 36}
!25 = !{!"s2n_blob", !7, i64 0, !17, i64 8, !17, i64 12, !17, i64 16}
!26 = !{!24, !17, i64 24}
!27 = !{!28, !17, i64 2044}
!28 = !{!"s2n_connection", !17, i64 0, !17, i64 0, !17, i64 0, !17, i64 0, !17, i64 0, !17, i64 0, !17, i64 0, !17, i64 0, !17, i64 1, !17, i64 1, !17, i64 1, !17, i64 1, !17, i64 1, !17, i64 1, !17, i64 1, !17, i64 1, !17, i64 2, !17, i64 2, !17, i64 2, !17, i64 2, !17, i64 2, !17, i64 2, !17, i64 2, !7, i64 8, !7, i64 16, !7, i64 24, !7, i64 32, !7, i64 40, !7, i64 48, !7, i64 56, !7, i64 64, !7, i64 72, !8, i64 80, !8, i64 102, !8, i64 124, !17, i64 148, !17, i64 152, !29, i64 160, !30, i64 168, !30, i64 176, !8, i64 184, !8, i64 216, !8, i64 217, !8, i64 218, !8, i64 219, !8, i64 220, !8, i64 221, !8, i64 222, !7, i64 224, !7, i64 232, !31, i64 240, !7, i64 632, !7, i64 640, !32, i64 648, !37, i64 1144, !40, i64 1688, !7, i64 1752, !8, i64 1760, !17, i64 1764, !8, i64 1768, !24, i64 1776, !24, i64 1816, !24, i64 1856, !24, i64 1896, !17, i64 1936, !30, i64 1944, !8, i64 1952, !24, i64 1960, !8, i64 2000, !8, i64 2001, !8, i64 2002, !20, i64 2003, !42, i64 2004, !42, i64 2008, !43, i64 2016, !14, i64 2208, !17, i64 2212, !14, i64 2216, !30, i64 2224, !8, i64 2232, !30, i64 2240, !30, i64 2248, !30, i64 2256, !42, i64 2264, !42, i64 2268, !8, i64 2272, !8, i64 2528, !17, i64 2784, !25, i64 2792, !17, i64 2816, !25, i64 2824, !25, i64 2848, !25, i64 2872, !45, i64 2896, !47, i64 3704, !7, i64 3760, !7, i64 3768, !8, i64 3776, !17, i64 3780, !25, i64 3784, !17, i64 3808, !49, i64 3816, !8, i64 3848, !24, i64 3992, !25, i64 4032, !25, i64 4056, !20, i64 4080, !20, i64 4081, !20, i64 4082, !14, i64 4084, !14, i64 4086, !17, i64 4088, !17, i64 4092, !25, i64 4096, !17, i64 4120, !50, i64 4128, !42, i64 4176, !8, i64 4180, !8, i64 4181}
!29 = !{!"s2n_timer", !30, i64 0}
!30 = !{!"long", !8, i64 0}
!31 = !{!"s2n_secrets", !8, i64 0, !17, i64 388}
!32 = !{!"s2n_kex_parameters", !33, i64 0, !34, i64 8, !8, i64 24, !34, i64 56, !35, i64 72, !35, i64 184, !8, i64 296, !36, i64 360, !25, i64 448, !25, i64 472}
!33 = !{!"s2n_dh_params", !7, i64 0}
!34 = !{!"s2n_ecc_evp_params", !7, i64 0, !7, i64 8}
!35 = !{!"s2n_kem_group_params", !7, i64 0, !36, i64 8, !34, i64 96}
!36 = !{!"s2n_kem_params", !7, i64 0, !25, i64 8, !25, i64 32, !25, i64 56, !20, i64 80}
!37 = !{!"s2n_handshake_parameters", !38, i64 0, !38, i64 48, !25, i64 96, !17, i64 120, !39, i64 124, !7, i64 384, !7, i64 392, !7, i64 400, !8, i64 408, !8, i64 440, !8, i64 472, !8, i64 473, !8, i64 474, !8, i64 506}
!38 = !{!"s2n_pkey", !7, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !7, i64 32, !7, i64 40}
!39 = !{!"s2n_sig_scheme_list", !8, i64 0, !8, i64 256}
!40 = !{!"s2n_psk_parameters", !17, i64 0, !41, i64 8, !14, i64 40, !14, i64 42, !7, i64 48, !17, i64 56}
!41 = !{!"s2n_array", !25, i64 0, !17, i64 24, !17, i64 28}
!42 = !{!"", !17, i64 0}
!43 = !{!"s2n_handshake", !24, i64 0, !7, i64 40, !8, i64 48, !8, i64 56, !8, i64 104, !8, i64 152, !17, i64 156, !17, i64 160, !17, i64 164, !17, i64 168, !44, i64 176, !17, i64 184, !17, i64 184, !17, i64 184, !17, i64 184, !17, i64 188}
!44 = !{!"s2n_offered_early_data", !7, i64 0}
!45 = !{!"s2n_client_hello", !25, i64 0, !46, i64 24, !25, i64 728, !25, i64 752, !25, i64 776, !8, i64 800, !8, i64 801, !17, i64 802, !17, i64 802, !17, i64 802, !17, i64 802, !17, i64 802, !17, i64 802, !17, i64 802}
!46 = !{!"", !8, i64 0, !25, i64 672, !14, i64 696}
!47 = !{!"s2n_x509_validator", !7, i64 0, !7, i64 8, !8, i64 16, !8, i64 17, !14, i64 18, !7, i64 24, !17, i64 32, !7, i64 40, !48, i64 48, !20, i64 52}
!48 = !{!"s2n_cert_validation_info", !17, i64 0, !17, i64 0}
!49 = !{!"s2n_ticket_fields", !25, i64 0, !17, i64 24}
!50 = !{!"s2n_post_handshake", !24, i64 0, !8, i64 40}
!51 = !{!28, !17, i64 2040}
!52 = !{!28, !7, i64 232}
!53 = !{!54, !7, i64 0}
!54 = !{!"s2n_crypto_parameters", !7, i64 0, !55, i64 8, !55, i64 16, !56, i64 24, !56, i64 456, !8, i64 888, !8, i64 904, !8, i64 920, !8, i64 928}
!55 = !{!"s2n_session_key", !7, i64 0}
!56 = !{!"s2n_hmac_state", !17, i64 0, !14, i64 4, !17, i64 8, !14, i64 12, !8, i64 14, !57, i64 16, !57, i64 72, !57, i64 128, !57, i64 184, !8, i64 240, !8, i64 368}
!57 = !{!"s2n_hash_state", !7, i64 0, !17, i64 8, !8, i64 12, !30, i64 16, !8, i64 24}
!58 = !{!28, !7, i64 2056}
!59 = !{!30, !30, i64 0}
!60 = !{!28, !7, i64 2016}
!61 = !{i64 0, i64 8, !15, i64 8, i64 4, !16, i64 12, i64 4, !16, i64 16, i64 1, !18, i64 24, i64 4, !16, i64 28, i64 4, !16, i64 32, i64 4, !16, i64 36, i64 1, !18}
!62 = !{!6, !7, i64 24}
!63 = !{!64, !14, i64 0}
!64 = !{!"s2n_signature_scheme", !14, i64 0, !7, i64 8, !17, i64 16, !17, i64 20, !8, i64 24, !8, i64 25, !14, i64 26, !7, i64 32}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,PostOrderFunctionAttrsPass,SROAPass,SimplifyCFGPass,TailCallElimPass