; LLVM IR from aws/s2n-tls :: tests/unit (s2n_aes_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_record_algorithm = type { ptr, i32, i32, i64 }
%struct.s2n_blob = type { ptr, i32, i32, i8 }
%struct.s2n_result = type { i32 }
%struct.s2n_connection = type { i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, [22 x i8], [22 x i8], [22 x i8], i32, i32, %struct.s2n_timer, i64, i64, [32 x i8], i8, i8, i8, i8, i8, i8, i8, ptr, ptr, %struct.s2n_secrets, ptr, ptr, %struct.s2n_kex_parameters, %struct.s2n_handshake_parameters, %struct.s2n_psk_parameters, ptr, i8, i32, [5 x i8], %struct.s2n_stuffer, %struct.s2n_stuffer, %struct.s2n_stuffer, %struct.s2n_stuffer, i32, i64, [2 x i8], %struct.s2n_stuffer, i8, i8, i8, i8, %struct.s2n_atomic_flag, %struct.s2n_atomic_flag, %struct.s2n_handshake, i16, i32, i16, i64, i8, i64, i64, i64, %struct.s2n_atomic_flag, %struct.s2n_atomic_flag, [256 x i8], [256 x i8], i32, %struct.s2n_blob, i32, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_client_hello, %struct.s2n_x509_validator, ptr, ptr, i8, i32, %struct.s2n_blob, i32, %struct.s2n_ticket_fields, [138 x i8], %struct.s2n_stuffer, %struct.s2n_blob, %struct.s2n_blob, i8, i8, i8, i16, i16, i32, i32, %struct.s2n_blob, i32, %struct.s2n_post_handshake, %struct.s2n_atomic_flag, i8, i8 }
%struct.s2n_timer = type { i64 }
%struct.s2n_secrets = type { %union.anon, i32 }
%union.anon = type { %struct.s2n_tls13_secrets }
%struct.s2n_tls13_secrets = type { [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], i32 }
%struct.s2n_kex_parameters = type { %struct.s2n_dh_params, %struct.s2n_ecc_evp_params, [4 x ptr], %struct.s2n_ecc_evp_params, %struct.s2n_kem_group_params, %struct.s2n_kem_group_params, [8 x ptr], %struct.s2n_kem_params, %struct.s2n_blob, %struct.s2n_blob }
%struct.s2n_dh_params = type { ptr }
%struct.s2n_ecc_evp_params = type { ptr, ptr }
%struct.s2n_kem_group_params = type { ptr, %struct.s2n_kem_params, %struct.s2n_ecc_evp_params }
%struct.s2n_kem_params = type { ptr, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob, i8 }
%struct.s2n_handshake_parameters = type { %struct.s2n_pkey, %struct.s2n_pkey, %struct.s2n_blob, i32, %struct.s2n_sig_scheme_list, ptr, ptr, ptr, [4 x ptr], [4 x ptr], i8, i8, [32 x i8], [32 x i8] }
%struct.s2n_pkey = type { ptr, ptr, ptr, ptr, ptr, ptr }
%struct.s2n_sig_scheme_list = type { [128 x i16], i8 }
%struct.s2n_psk_parameters = type { i32, %struct.s2n_array, i16, i16, ptr, i32 }
%struct.s2n_array = type { %struct.s2n_blob, i32, i32 }
%struct.s2n_handshake = type { %struct.s2n_stuffer, ptr, [8 x i8], [48 x i8], [48 x i8], i8, i32, i32, i32, i32, %struct.s2n_offered_early_data, i8, i32 }
%struct.s2n_offered_early_data = type { ptr }
%struct.s2n_client_hello = type { %struct.s2n_blob, %struct.s2n_parsed_extensions_list, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob, i8, i8, i8 }
%struct.s2n_parsed_extensions_list = type { [21 x %struct.s2n_parsed_extension], %struct.s2n_blob, i16 }
%struct.s2n_parsed_extension = type { %struct.s2n_blob, i16, i16, i8 }
%struct.s2n_x509_validator = type { ptr, ptr, i8, i8, i16, ptr, i32, ptr, %struct.s2n_cert_validation_info, i8 }
%struct.s2n_cert_validation_info = type { i8, [3 x i8] }
%struct.s2n_ticket_fields = type { %struct.s2n_blob, i32 }
%struct.s2n_stuffer = type { %struct.s2n_blob, i32, i32, i32, i8 }
%struct.s2n_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_cipher_suite = type { i8, ptr, ptr, [2 x i8], ptr, i32, ptr, [2 x ptr], i8, ptr, ptr, i32, i8 }
%struct.s2n_cipher = type { i32, %union.anon.1, i8, ptr, ptr, ptr, ptr, ptr, ptr }
%union.anon.1 = type { %struct.s2n_composite_cipher }
%struct.s2n_composite_cipher = type { i8, i8, i8, ptr, ptr, ptr, ptr }

@s2n_use_color_in_output = external dso_local global i8, align 1
@__const.main.mac_key = external hidden unnamed_addr constant [15 x i8], align 1
@__const.main.aes128_key = external hidden unnamed_addr constant [16 x i8], align 16
@__const.main.aes256_key = external hidden unnamed_addr constant [32 x i8], align 16
@test_count = external dso_local global i32, align 4
@stderr = external global ptr, align 8
@.str = external hidden unnamed_addr constant [101 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [71 x i8], align 1
@s2n_errno = external thread_local global i32, align 4
@.str.3 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [80 x i8], align 1
@stdout = external global ptr, align 8
@.str.7 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [62 x i8], align 1
@s2n_record_alg_aes128_sha = external constant %struct.s2n_record_algorithm, align 8
@.str.14 = external hidden unnamed_addr constant [111 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [111 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [134 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [134 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [117 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [117 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [126 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [118 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [118 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [54 x i8], align 1
@s2n_record_alg_aes256_sha = external constant %struct.s2n_record_algorithm, align 8
@.str.43 = external hidden unnamed_addr constant [134 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [134 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [25 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local i32 @main(i32 noundef %0, ptr noundef %1) #0 {
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca [15 x i8], align 1
  %8 = alloca [16 x i8], align 16
  %9 = alloca [32 x i8], align 16
  %10 = alloca %struct.s2n_blob, align 8
  %11 = alloca i32, align 4
  %12 = alloca %struct.s2n_blob, align 8
  %13 = alloca i32, align 4
  %14 = alloca [8088 x i8], align 16
  %15 = alloca %struct.s2n_blob, align 8
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca %struct.s2n_result, align 4
  %23 = alloca i32, align 4
  %24 = alloca %struct.s2n_result, align 4
  %25 = alloca i32, align 4
  %26 = alloca %struct.s2n_result, align 4
  %27 = alloca i32, align 4
  %28 = alloca %struct.s2n_result, align 4
  %29 = alloca i32, align 4
  %30 = alloca %struct.s2n_result, align 4
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca i64, align 8
  %35 = alloca %struct.s2n_blob, align 8
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca %struct.s2n_result, align 4
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca i16, align 2
  %45 = alloca i32, align 4
  %46 = alloca i32, align 4
  %47 = alloca i32, align 4
  %48 = alloca i32, align 4
  %49 = alloca i32, align 4
  %50 = alloca i32, align 4
  %51 = alloca i32, align 4
  %52 = alloca i32, align 4
  %53 = alloca i32, align 4
  %54 = alloca i32, align 4
  %55 = alloca i8, align 1
  %56 = alloca i16, align 2
  %57 = alloca i32, align 4
  %58 = alloca i32, align 4
  %59 = alloca i32, align 4
  %60 = alloca i32, align 4
  %61 = alloca i32, align 4
  %62 = alloca i32, align 4
  %63 = alloca %struct.s2n_result, align 4
  %64 = alloca i32, align 4
  %65 = alloca %struct.s2n_result, align 4
  %66 = alloca i32, align 4
  %67 = alloca i32, align 4
  %68 = alloca i32, align 4
  %69 = alloca %struct.s2n_result, align 4
  %70 = alloca i32, align 4
  %71 = alloca %struct.s2n_result, align 4
  %72 = alloca i32, align 4
  %73 = alloca %struct.s2n_result, align 4
  %74 = alloca i32, align 4
  %75 = alloca %struct.s2n_result, align 4
  %76 = alloca i32, align 4
  %77 = alloca i32, align 4
  %78 = alloca i32, align 4
  %79 = alloca i64, align 8
  %80 = alloca %struct.s2n_blob, align 8
  %81 = alloca i32, align 4
  %82 = alloca i32, align 4
  %83 = alloca i32, align 4
  %84 = alloca %struct.s2n_result, align 4
  %85 = alloca i32, align 4
  %86 = alloca i32, align 4
  %87 = alloca i32, align 4
  %88 = alloca i32, align 4
  %89 = alloca i16, align 2
  %90 = alloca i32, align 4
  %91 = alloca i32, align 4
  %92 = alloca i32, align 4
  %93 = alloca i32, align 4
  %94 = alloca i32, align 4
  %95 = alloca i32, align 4
  %96 = alloca i32, align 4
  %97 = alloca i32, align 4
  %98 = alloca i32, align 4
  %99 = alloca i32, align 4
  %100 = alloca i8, align 1
  %101 = alloca i16, align 2
  %102 = alloca i32, align 4
  %103 = alloca i32, align 4
  %104 = alloca i32, align 4
  %105 = alloca i32, align 4
  %106 = alloca i32, align 4
  %107 = alloca i32, align 4
  %108 = alloca %struct.s2n_result, align 4
  %109 = alloca i32, align 4
  %110 = alloca %struct.s2n_result, align 4
  %111 = alloca i32, align 4
  %112 = alloca i32, align 4
  %113 = alloca i32, align 4
  %114 = alloca i32, align 4
  %115 = alloca i32, align 4
  store i32 0, ptr %3, align 4
  store i32 %0, ptr %4, align 4, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %6) #11
  store ptr null, ptr %6, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 15, ptr %7) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %7, ptr align 1 @__const.main.mac_key, i64 15, i1 false)
  call void @llvm.lifetime.start.p0(i64 16, ptr %8) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %8, ptr align 16 @__const.main.aes128_key, i64 16, i1 false)
  call void @llvm.lifetime.start.p0(i64 32, ptr %9) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %9, ptr align 16 @__const.main.aes256_key, i64 32, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr %10) #11
  call void @llvm.memset.p0.i64(ptr align 8 %10, i8 0, i64 24, i1 false)
  br label %116

116:                                              ; preds = %2
  %117 = load i32, ptr @test_count, align 4, !tbaa !5
  %118 = add nsw i32 %117, 1
  store i32 %118, ptr @test_count, align 4, !tbaa !5
  %119 = getelementptr inbounds [16 x i8], ptr %8, i64 0, i64 0
  %120 = call i32 @s2n_blob_init(ptr noundef %10, ptr noundef %119, i32 noundef 16)
  %121 = icmp eq i32 %120, -1
  br i1 %121, label %122, label %175

122:                                              ; preds = %116
  br label %123

123:                                              ; preds = %122
  br label %124

124:                                              ; preds = %123
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #11
  %125 = call ptr @__errno_location() #12
  %126 = load i32, ptr %125, align 4, !tbaa !5
  store i32 %126, ptr %11, align 4, !tbaa !5
  %127 = load ptr, ptr @stderr, align 8, !tbaa !9
  %128 = call i32 @s2n_print_stacktrace(ptr noundef %127)
  %129 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %130 = trunc i8 %129 to i1
  br i1 %130, label %131, label %153

131:                                              ; preds = %124
  %132 = load ptr, ptr @stderr, align 8, !tbaa !9
  %133 = call i32 @fileno(ptr noundef %132) #11
  %134 = call i32 @isatty(i32 noundef %133) #11
  %135 = icmp ne i32 %134, 0
  br i1 %135, label %136, label %153

136:                                              ; preds = %131
  %137 = load i32, ptr %11, align 4, !tbaa !5
  %138 = call ptr @__errno_location() #12
  store i32 %137, ptr %138, align 4, !tbaa !5
  %139 = load ptr, ptr @stderr, align 8, !tbaa !9
  %140 = load i32, ptr @test_count, align 4, !tbaa !5
  %141 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %142 = load i32, ptr %141, align 4, !tbaa !5
  %143 = call ptr @s2n_strerror(i32 noundef %142, ptr noundef @.str.3)
  %144 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %145 = load i32, ptr %144, align 4, !tbaa !5
  %146 = call ptr @s2n_strerror_debug(i32 noundef %145, ptr noundef @.str.3)
  %147 = call ptr @__errno_location() #12
  %148 = load i32, ptr %147, align 4, !tbaa !5
  %149 = call ptr @strerror(i32 noundef %148) #11
  %150 = call ptr @__errno_location() #12
  %151 = load i32, ptr %150, align 4, !tbaa !5
  %152 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %139, ptr noundef @.str, i32 noundef %140, ptr noundef @.str.1, ptr noundef @.str.2, i32 noundef 37, ptr noundef %143, ptr noundef %146, ptr noundef %149, i32 noundef %151) #11
  br label %170

153:                                              ; preds = %131, %124
  %154 = load i32, ptr %11, align 4, !tbaa !5
  %155 = call ptr @__errno_location() #12
  store i32 %154, ptr %155, align 4, !tbaa !5
  %156 = load ptr, ptr @stderr, align 8, !tbaa !9
  %157 = load i32, ptr @test_count, align 4, !tbaa !5
  %158 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %159 = load i32, ptr %158, align 4, !tbaa !5
  %160 = call ptr @s2n_strerror(i32 noundef %159, ptr noundef @.str.3)
  %161 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %162 = load i32, ptr %161, align 4, !tbaa !5
  %163 = call ptr @s2n_strerror_debug(i32 noundef %162, ptr noundef @.str.3)
  %164 = call ptr @__errno_location() #12
  %165 = load i32, ptr %164, align 4, !tbaa !5
  %166 = call ptr @strerror(i32 noundef %165) #11
  %167 = call ptr @__errno_location() #12
  %168 = load i32, ptr %167, align 4, !tbaa !5
  %169 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %156, ptr noundef @.str.4, i32 noundef %157, ptr noundef @.str.1, ptr noundef @.str.2, i32 noundef 37, ptr noundef %160, ptr noundef %163, ptr noundef %166, i32 noundef %168) #11
  br label %170

170:                                              ; preds = %153, %136
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #11
  br label %171

171:                                              ; preds = %170
  br label %172

172:                                              ; preds = %171
  call void @exit(i32 noundef 1) #13
  unreachable

173:                                              ; No predecessors!
  br label %174

174:                                              ; preds = %173
  br label %175

175:                                              ; preds = %174, %116
  br label %176

176:                                              ; preds = %175
  br label %177

177:                                              ; preds = %176
  call void @llvm.lifetime.start.p0(i64 24, ptr %12) #11
  call void @llvm.memset.p0.i64(ptr align 8 %12, i8 0, i64 24, i1 false)
  br label %178

178:                                              ; preds = %177
  %179 = load i32, ptr @test_count, align 4, !tbaa !5
  %180 = add nsw i32 %179, 1
  store i32 %180, ptr @test_count, align 4, !tbaa !5
  %181 = getelementptr inbounds [32 x i8], ptr %9, i64 0, i64 0
  %182 = call i32 @s2n_blob_init(ptr noundef %12, ptr noundef %181, i32 noundef 32)
  %183 = icmp eq i32 %182, -1
  br i1 %183, label %184, label %237

184:                                              ; preds = %178
  br label %185

185:                                              ; preds = %184
  br label %186

186:                                              ; preds = %185
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #11
  %187 = call ptr @__errno_location() #12
  %188 = load i32, ptr %187, align 4, !tbaa !5
  store i32 %188, ptr %13, align 4, !tbaa !5
  %189 = load ptr, ptr @stderr, align 8, !tbaa !9
  %190 = call i32 @s2n_print_stacktrace(ptr noundef %189)
  %191 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %192 = trunc i8 %191 to i1
  br i1 %192, label %193, label %215

193:                                              ; preds = %186
  %194 = load ptr, ptr @stderr, align 8, !tbaa !9
  %195 = call i32 @fileno(ptr noundef %194) #11
  %196 = call i32 @isatty(i32 noundef %195) #11
  %197 = icmp ne i32 %196, 0
  br i1 %197, label %198, label %215

198:                                              ; preds = %193
  %199 = load i32, ptr %13, align 4, !tbaa !5
  %200 = call ptr @__errno_location() #12
  store i32 %199, ptr %200, align 4, !tbaa !5
  %201 = load ptr, ptr @stderr, align 8, !tbaa !9
  %202 = load i32, ptr @test_count, align 4, !tbaa !5
  %203 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %204 = load i32, ptr %203, align 4, !tbaa !5
  %205 = call ptr @s2n_strerror(i32 noundef %204, ptr noundef @.str.3)
  %206 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %207 = load i32, ptr %206, align 4, !tbaa !5
  %208 = call ptr @s2n_strerror_debug(i32 noundef %207, ptr noundef @.str.3)
  %209 = call ptr @__errno_location() #12
  %210 = load i32, ptr %209, align 4, !tbaa !5
  %211 = call ptr @strerror(i32 noundef %210) #11
  %212 = call ptr @__errno_location() #12
  %213 = load i32, ptr %212, align 4, !tbaa !5
  %214 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %201, ptr noundef @.str, i32 noundef %202, ptr noundef @.str.5, ptr noundef @.str.2, i32 noundef 39, ptr noundef %205, ptr noundef %208, ptr noundef %211, i32 noundef %213) #11
  br label %232

215:                                              ; preds = %193, %186
  %216 = load i32, ptr %13, align 4, !tbaa !5
  %217 = call ptr @__errno_location() #12
  store i32 %216, ptr %217, align 4, !tbaa !5
  %218 = load ptr, ptr @stderr, align 8, !tbaa !9
  %219 = load i32, ptr @test_count, align 4, !tbaa !5
  %220 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %221 = load i32, ptr %220, align 4, !tbaa !5
  %222 = call ptr @s2n_strerror(i32 noundef %221, ptr noundef @.str.3)
  %223 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %224 = load i32, ptr %223, align 4, !tbaa !5
  %225 = call ptr @s2n_strerror_debug(i32 noundef %224, ptr noundef @.str.3)
  %226 = call ptr @__errno_location() #12
  %227 = load i32, ptr %226, align 4, !tbaa !5
  %228 = call ptr @strerror(i32 noundef %227) #11
  %229 = call ptr @__errno_location() #12
  %230 = load i32, ptr %229, align 4, !tbaa !5
  %231 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %218, ptr noundef @.str.4, i32 noundef %219, ptr noundef @.str.5, ptr noundef @.str.2, i32 noundef 39, ptr noundef %222, ptr noundef %225, ptr noundef %228, i32 noundef %230) #11
  br label %232

232:                                              ; preds = %215, %198
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #11
  br label %233

233:                                              ; preds = %232
  br label %234

234:                                              ; preds = %233
  call void @exit(i32 noundef 1) #13
  unreachable

235:                                              ; No predecessors!
  br label %236

236:                                              ; preds = %235
  br label %237

237:                                              ; preds = %236, %178
  br label %238

238:                                              ; preds = %237
  br label %239

239:                                              ; preds = %238
  call void @llvm.lifetime.start.p0(i64 8088, ptr %14) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr %15) #11
  call void @llvm.memset.p0.i64(ptr align 8 %15, i8 0, i64 24, i1 false)
  br label %240

240:                                              ; preds = %239
  %241 = load i32, ptr @test_count, align 4, !tbaa !5
  %242 = add nsw i32 %241, 1
  store i32 %242, ptr @test_count, align 4, !tbaa !5
  %243 = getelementptr inbounds [8088 x i8], ptr %14, i64 0, i64 0
  %244 = call i32 @s2n_blob_init(ptr noundef %15, ptr noundef %243, i32 noundef 8088)
  %245 = icmp eq i32 %244, -1
  br i1 %245, label %246, label %299

246:                                              ; preds = %240
  br label %247

247:                                              ; preds = %246
  br label %248

248:                                              ; preds = %247
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #11
  %249 = call ptr @__errno_location() #12
  %250 = load i32, ptr %249, align 4, !tbaa !5
  store i32 %250, ptr %16, align 4, !tbaa !5
  %251 = load ptr, ptr @stderr, align 8, !tbaa !9
  %252 = call i32 @s2n_print_stacktrace(ptr noundef %251)
  %253 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %254 = trunc i8 %253 to i1
  br i1 %254, label %255, label %277

255:                                              ; preds = %248
  %256 = load ptr, ptr @stderr, align 8, !tbaa !9
  %257 = call i32 @fileno(ptr noundef %256) #11
  %258 = call i32 @isatty(i32 noundef %257) #11
  %259 = icmp ne i32 %258, 0
  br i1 %259, label %260, label %277

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

277:                                              ; preds = %255, %248
  %278 = load i32, ptr %16, align 4, !tbaa !5
  %279 = call ptr @__errno_location() #12
  store i32 %278, ptr %279, align 4, !tbaa !5
  %280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %281 = load i32, ptr @test_count, align 4, !tbaa !5
  %282 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %283 = load i32, ptr %282, align 4, !tbaa !5
  %284 = call ptr @s2n_strerror(i32 noundef %283, ptr noundef @.str.3)
  %285 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %286 = load i32, ptr %285, align 4, !tbaa !5
  %287 = call ptr @s2n_strerror_debug(i32 noundef %286, ptr noundef @.str.3)
  %288 = call ptr @__errno_location() #12
  %289 = load i32, ptr %288, align 4, !tbaa !5
  %290 = call ptr @strerror(i32 noundef %289) #11
  %291 = call ptr @__errno_location() #12
  %292 = load i32, ptr %291, align 4, !tbaa !5
  %293 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %280, ptr noundef @.str.4, i32 noundef %281, ptr noundef @.str.6, ptr noundef @.str.2, i32 noundef 42, ptr noundef %284, ptr noundef %287, ptr noundef %290, i32 noundef %292) #11
  br label %294

294:                                              ; preds = %277, %260
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #11
  br label %295

295:                                              ; preds = %294
  br label %296

296:                                              ; preds = %295
  call void @exit(i32 noundef 1) #13
  unreachable

297:                                              ; No predecessors!
  br label %298

298:                                              ; preds = %297
  br label %299

299:                                              ; preds = %298, %240
  br label %300

300:                                              ; preds = %299
  br label %301

301:                                              ; preds = %300
  br label %302

302:                                              ; preds = %301
  br label %303

303:                                              ; preds = %302
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %304 = load ptr, ptr @stdout, align 8, !tbaa !9
  %305 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %304, ptr noundef @.str.7, ptr noundef @.str.2) #11
  %306 = load ptr, ptr @stdout, align 8, !tbaa !9
  %307 = call i32 @fflush(ptr noundef %306)
  br label %308

308:                                              ; preds = %303
  %309 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %310 = icmp eq i32 %309, -1
  br i1 %310, label %311, label %364

311:                                              ; preds = %308
  br label %312

312:                                              ; preds = %311
  br label %313

313:                                              ; preds = %312
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #11
  %314 = call ptr @__errno_location() #12
  %315 = load i32, ptr %314, align 4, !tbaa !5
  store i32 %315, ptr %17, align 4, !tbaa !5
  %316 = load ptr, ptr @stderr, align 8, !tbaa !9
  %317 = call i32 @s2n_print_stacktrace(ptr noundef %316)
  %318 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %319 = trunc i8 %318 to i1
  br i1 %319, label %320, label %342

320:                                              ; preds = %313
  %321 = load ptr, ptr @stderr, align 8, !tbaa !9
  %322 = call i32 @fileno(ptr noundef %321) #11
  %323 = call i32 @isatty(i32 noundef %322) #11
  %324 = icmp ne i32 %323, 0
  br i1 %324, label %325, label %342

325:                                              ; preds = %320
  %326 = load i32, ptr %17, align 4, !tbaa !5
  %327 = call ptr @__errno_location() #12
  store i32 %326, ptr %327, align 4, !tbaa !5
  %328 = load ptr, ptr @stderr, align 8, !tbaa !9
  %329 = load i32, ptr @test_count, align 4, !tbaa !5
  %330 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %331 = load i32, ptr %330, align 4, !tbaa !5
  %332 = call ptr @s2n_strerror(i32 noundef %331, ptr noundef @.str.3)
  %333 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %334 = load i32, ptr %333, align 4, !tbaa !5
  %335 = call ptr @s2n_strerror_debug(i32 noundef %334, ptr noundef @.str.3)
  %336 = call ptr @__errno_location() #12
  %337 = load i32, ptr %336, align 4, !tbaa !5
  %338 = call ptr @strerror(i32 noundef %337) #11
  %339 = call ptr @__errno_location() #12
  %340 = load i32, ptr %339, align 4, !tbaa !5
  %341 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %328, ptr noundef @.str, i32 noundef %329, ptr noundef @.str.8, ptr noundef @.str.2, i32 noundef 44, ptr noundef %332, ptr noundef %335, ptr noundef %338, i32 noundef %340) #11
  br label %359

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

359:                                              ; preds = %342, %325
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #11
  br label %360

360:                                              ; preds = %359
  br label %361

361:                                              ; preds = %360
  call void @exit(i32 noundef 1) #13
  unreachable

362:                                              ; No predecessors!
  br label %363

363:                                              ; preds = %362
  br label %364

364:                                              ; preds = %363, %308
  br label %365

365:                                              ; preds = %364
  br label %366

366:                                              ; preds = %365
  br label %367

367:                                              ; preds = %366
  %368 = load i32, ptr @test_count, align 4, !tbaa !5
  %369 = add nsw i32 %368, 1
  store i32 %369, ptr @test_count, align 4, !tbaa !5
  %370 = call i32 @s2n_enable_atexit()
  %371 = icmp eq i32 %370, -1
  br i1 %371, label %372, label %425

372:                                              ; preds = %367
  br label %373

373:                                              ; preds = %372
  br label %374

374:                                              ; preds = %373
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #11
  %375 = call ptr @__errno_location() #12
  %376 = load i32, ptr %375, align 4, !tbaa !5
  store i32 %376, ptr %18, align 4, !tbaa !5
  %377 = load ptr, ptr @stderr, align 8, !tbaa !9
  %378 = call i32 @s2n_print_stacktrace(ptr noundef %377)
  %379 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %380 = trunc i8 %379 to i1
  br i1 %380, label %381, label %403

381:                                              ; preds = %374
  %382 = load ptr, ptr @stderr, align 8, !tbaa !9
  %383 = call i32 @fileno(ptr noundef %382) #11
  %384 = call i32 @isatty(i32 noundef %383) #11
  %385 = icmp ne i32 %384, 0
  br i1 %385, label %386, label %403

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

403:                                              ; preds = %381, %374
  %404 = load i32, ptr %18, align 4, !tbaa !5
  %405 = call ptr @__errno_location() #12
  store i32 %404, ptr %405, align 4, !tbaa !5
  %406 = load ptr, ptr @stderr, align 8, !tbaa !9
  %407 = load i32, ptr @test_count, align 4, !tbaa !5
  %408 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %409 = load i32, ptr %408, align 4, !tbaa !5
  %410 = call ptr @s2n_strerror(i32 noundef %409, ptr noundef @.str.3)
  %411 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %412 = load i32, ptr %411, align 4, !tbaa !5
  %413 = call ptr @s2n_strerror_debug(i32 noundef %412, ptr noundef @.str.3)
  %414 = call ptr @__errno_location() #12
  %415 = load i32, ptr %414, align 4, !tbaa !5
  %416 = call ptr @strerror(i32 noundef %415) #11
  %417 = call ptr @__errno_location() #12
  %418 = load i32, ptr %417, align 4, !tbaa !5
  %419 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %406, ptr noundef @.str.4, i32 noundef %407, ptr noundef @.str.9, ptr noundef @.str.2, i32 noundef 44, ptr noundef %410, ptr noundef %413, ptr noundef %416, i32 noundef %418) #11
  br label %420

420:                                              ; preds = %403, %386
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #11
  br label %421

421:                                              ; preds = %420
  br label %422

422:                                              ; preds = %421
  call void @exit(i32 noundef 1) #13
  unreachable

423:                                              ; No predecessors!
  br label %424

424:                                              ; preds = %423
  br label %425

425:                                              ; preds = %424, %367
  br label %426

426:                                              ; preds = %425
  br label %427

427:                                              ; preds = %426
  br label %428

428:                                              ; preds = %427
  br label %429

429:                                              ; preds = %428
  br label %430

430:                                              ; preds = %429
  %431 = call i32 @s2n_init()
  %432 = icmp eq i32 %431, -1
  br i1 %432, label %433, label %486

433:                                              ; preds = %430
  br label %434

434:                                              ; preds = %433
  br label %435

435:                                              ; preds = %434
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #11
  %436 = call ptr @__errno_location() #12
  %437 = load i32, ptr %436, align 4, !tbaa !5
  store i32 %437, ptr %19, align 4, !tbaa !5
  %438 = load ptr, ptr @stderr, align 8, !tbaa !9
  %439 = call i32 @s2n_print_stacktrace(ptr noundef %438)
  %440 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %441 = trunc i8 %440 to i1
  br i1 %441, label %442, label %464

442:                                              ; preds = %435
  %443 = load ptr, ptr @stderr, align 8, !tbaa !9
  %444 = call i32 @fileno(ptr noundef %443) #11
  %445 = call i32 @isatty(i32 noundef %444) #11
  %446 = icmp ne i32 %445, 0
  br i1 %446, label %447, label %464

447:                                              ; preds = %442
  %448 = load i32, ptr %19, align 4, !tbaa !5
  %449 = call ptr @__errno_location() #12
  store i32 %448, ptr %449, align 4, !tbaa !5
  %450 = load ptr, ptr @stderr, align 8, !tbaa !9
  %451 = load i32, ptr @test_count, align 4, !tbaa !5
  %452 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %453 = load i32, ptr %452, align 4, !tbaa !5
  %454 = call ptr @s2n_strerror(i32 noundef %453, ptr noundef @.str.3)
  %455 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %456 = load i32, ptr %455, align 4, !tbaa !5
  %457 = call ptr @s2n_strerror_debug(i32 noundef %456, ptr noundef @.str.3)
  %458 = call ptr @__errno_location() #12
  %459 = load i32, ptr %458, align 4, !tbaa !5
  %460 = call ptr @strerror(i32 noundef %459) #11
  %461 = call ptr @__errno_location() #12
  %462 = load i32, ptr %461, align 4, !tbaa !5
  %463 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %450, ptr noundef @.str, i32 noundef %451, ptr noundef @.str.10, ptr noundef @.str.2, i32 noundef 44, ptr noundef %454, ptr noundef %457, ptr noundef %460, i32 noundef %462) #11
  br label %481

464:                                              ; preds = %442, %435
  %465 = load i32, ptr %19, align 4, !tbaa !5
  %466 = call ptr @__errno_location() #12
  store i32 %465, ptr %466, align 4, !tbaa !5
  %467 = load ptr, ptr @stderr, align 8, !tbaa !9
  %468 = load i32, ptr @test_count, align 4, !tbaa !5
  %469 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %470 = load i32, ptr %469, align 4, !tbaa !5
  %471 = call ptr @s2n_strerror(i32 noundef %470, ptr noundef @.str.3)
  %472 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %473 = load i32, ptr %472, align 4, !tbaa !5
  %474 = call ptr @s2n_strerror_debug(i32 noundef %473, ptr noundef @.str.3)
  %475 = call ptr @__errno_location() #12
  %476 = load i32, ptr %475, align 4, !tbaa !5
  %477 = call ptr @strerror(i32 noundef %476) #11
  %478 = call ptr @__errno_location() #12
  %479 = load i32, ptr %478, align 4, !tbaa !5
  %480 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %467, ptr noundef @.str.4, i32 noundef %468, ptr noundef @.str.10, ptr noundef @.str.2, i32 noundef 44, ptr noundef %471, ptr noundef %474, ptr noundef %477, i32 noundef %479) #11
  br label %481

481:                                              ; preds = %464, %447
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #11
  br label %482

482:                                              ; preds = %481
  br label %483

483:                                              ; preds = %482
  call void @exit(i32 noundef 1) #13
  unreachable

484:                                              ; No predecessors!
  br label %485

485:                                              ; preds = %484
  br label %486

486:                                              ; preds = %485, %430
  br label %487

487:                                              ; preds = %486
  br label %488

488:                                              ; preds = %487
  br label %489

489:                                              ; preds = %488
  br label %490

490:                                              ; preds = %489
  br label %491

491:                                              ; preds = %490
  %492 = load i32, ptr @test_count, align 4, !tbaa !5
  %493 = add nsw i32 %492, 1
  store i32 %493, ptr @test_count, align 4, !tbaa !5
  %494 = call i32 (...) @s2n_disable_tls13_in_test()
  %495 = icmp eq i32 %494, -1
  br i1 %495, label %496, label %549

496:                                              ; preds = %491
  br label %497

497:                                              ; preds = %496
  br label %498

498:                                              ; preds = %497
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #11
  %499 = call ptr @__errno_location() #12
  %500 = load i32, ptr %499, align 4, !tbaa !5
  store i32 %500, ptr %20, align 4, !tbaa !5
  %501 = load ptr, ptr @stderr, align 8, !tbaa !9
  %502 = call i32 @s2n_print_stacktrace(ptr noundef %501)
  %503 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %504 = trunc i8 %503 to i1
  br i1 %504, label %505, label %527

505:                                              ; preds = %498
  %506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %507 = call i32 @fileno(ptr noundef %506) #11
  %508 = call i32 @isatty(i32 noundef %507) #11
  %509 = icmp ne i32 %508, 0
  br i1 %509, label %510, label %527

510:                                              ; preds = %505
  %511 = load i32, ptr %20, align 4, !tbaa !5
  %512 = call ptr @__errno_location() #12
  store i32 %511, ptr %512, align 4, !tbaa !5
  %513 = load ptr, ptr @stderr, align 8, !tbaa !9
  %514 = load i32, ptr @test_count, align 4, !tbaa !5
  %515 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %516 = load i32, ptr %515, align 4, !tbaa !5
  %517 = call ptr @s2n_strerror(i32 noundef %516, ptr noundef @.str.3)
  %518 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %519 = load i32, ptr %518, align 4, !tbaa !5
  %520 = call ptr @s2n_strerror_debug(i32 noundef %519, ptr noundef @.str.3)
  %521 = call ptr @__errno_location() #12
  %522 = load i32, ptr %521, align 4, !tbaa !5
  %523 = call ptr @strerror(i32 noundef %522) #11
  %524 = call ptr @__errno_location() #12
  %525 = load i32, ptr %524, align 4, !tbaa !5
  %526 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %513, ptr noundef @.str, i32 noundef %514, ptr noundef @.str.11, ptr noundef @.str.2, i32 noundef 45, ptr noundef %517, ptr noundef %520, ptr noundef %523, i32 noundef %525) #11
  br label %544

527:                                              ; preds = %505, %498
  %528 = load i32, ptr %20, align 4, !tbaa !5
  %529 = call ptr @__errno_location() #12
  store i32 %528, ptr %529, align 4, !tbaa !5
  %530 = load ptr, ptr @stderr, align 8, !tbaa !9
  %531 = load i32, ptr @test_count, align 4, !tbaa !5
  %532 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %533 = load i32, ptr %532, align 4, !tbaa !5
  %534 = call ptr @s2n_strerror(i32 noundef %533, ptr noundef @.str.3)
  %535 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %536 = load i32, ptr %535, align 4, !tbaa !5
  %537 = call ptr @s2n_strerror_debug(i32 noundef %536, ptr noundef @.str.3)
  %538 = call ptr @__errno_location() #12
  %539 = load i32, ptr %538, align 4, !tbaa !5
  %540 = call ptr @strerror(i32 noundef %539) #11
  %541 = call ptr @__errno_location() #12
  %542 = load i32, ptr %541, align 4, !tbaa !5
  %543 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %530, ptr noundef @.str.4, i32 noundef %531, ptr noundef @.str.11, ptr noundef @.str.2, i32 noundef 45, ptr noundef %534, ptr noundef %537, ptr noundef %540, i32 noundef %542) #11
  br label %544

544:                                              ; preds = %527, %510
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #11
  br label %545

545:                                              ; preds = %544
  br label %546

546:                                              ; preds = %545
  call void @exit(i32 noundef 1) #13
  unreachable

547:                                              ; No predecessors!
  br label %548

548:                                              ; preds = %547
  br label %549

549:                                              ; preds = %548, %491
  br label %550

550:                                              ; preds = %549
  br label %551

551:                                              ; preds = %550
  br label %552

552:                                              ; preds = %551
  %553 = load i32, ptr @test_count, align 4, !tbaa !5
  %554 = add nsw i32 %553, 1
  store i32 %554, ptr @test_count, align 4, !tbaa !5
  %555 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %555, ptr %6, align 8, !tbaa !9
  %556 = icmp eq ptr %555, null
  br i1 %556, label %557, label %610

557:                                              ; preds = %552
  br label %558

558:                                              ; preds = %557
  br label %559

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

566:                                              ; preds = %559
  %567 = load ptr, ptr @stderr, align 8, !tbaa !9
  %568 = call i32 @fileno(ptr noundef %567) #11
  %569 = call i32 @isatty(i32 noundef %568) #11
  %570 = icmp ne i32 %569, 0
  br i1 %570, label %571, label %588

571:                                              ; preds = %566
  %572 = load i32, ptr %21, align 4, !tbaa !5
  %573 = call ptr @__errno_location() #12
  store i32 %572, ptr %573, align 4, !tbaa !5
  %574 = load ptr, ptr @stderr, align 8, !tbaa !9
  %575 = load i32, ptr @test_count, align 4, !tbaa !5
  %576 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %577 = load i32, ptr %576, align 4, !tbaa !5
  %578 = call ptr @s2n_strerror(i32 noundef %577, ptr noundef @.str.3)
  %579 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %580 = load i32, ptr %579, align 4, !tbaa !5
  %581 = call ptr @s2n_strerror_debug(i32 noundef %580, ptr noundef @.str.3)
  %582 = call ptr @__errno_location() #12
  %583 = load i32, ptr %582, align 4, !tbaa !5
  %584 = call ptr @strerror(i32 noundef %583) #11
  %585 = call ptr @__errno_location() #12
  %586 = load i32, ptr %585, align 4, !tbaa !5
  %587 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %574, ptr noundef @.str, i32 noundef %575, ptr noundef @.str.12, ptr noundef @.str.2, i32 noundef 47, ptr noundef %578, ptr noundef %581, ptr noundef %584, i32 noundef %586) #11
  br label %605

588:                                              ; preds = %566, %559
  %589 = load i32, ptr %21, align 4, !tbaa !5
  %590 = call ptr @__errno_location() #12
  store i32 %589, ptr %590, align 4, !tbaa !5
  %591 = load ptr, ptr @stderr, align 8, !tbaa !9
  %592 = load i32, ptr @test_count, align 4, !tbaa !5
  %593 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %594 = load i32, ptr %593, align 4, !tbaa !5
  %595 = call ptr @s2n_strerror(i32 noundef %594, ptr noundef @.str.3)
  %596 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %597 = load i32, ptr %596, align 4, !tbaa !5
  %598 = call ptr @s2n_strerror_debug(i32 noundef %597, ptr noundef @.str.3)
  %599 = call ptr @__errno_location() #12
  %600 = load i32, ptr %599, align 4, !tbaa !5
  %601 = call ptr @strerror(i32 noundef %600) #11
  %602 = call ptr @__errno_location() #12
  %603 = load i32, ptr %602, align 4, !tbaa !5
  %604 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %591, ptr noundef @.str.4, i32 noundef %592, ptr noundef @.str.12, ptr noundef @.str.2, i32 noundef 47, ptr noundef %595, ptr noundef %598, ptr noundef %601, i32 noundef %603) #11
  br label %605

605:                                              ; preds = %588, %571
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #11
  br label %606

606:                                              ; preds = %605
  br label %607

607:                                              ; preds = %606
  call void @exit(i32 noundef 1) #13
  unreachable

608:                                              ; No predecessors!
  br label %609

609:                                              ; preds = %608
  br label %610

610:                                              ; preds = %609, %552
  br label %611

611:                                              ; preds = %610
  br label %612

612:                                              ; preds = %611
  br label %613

613:                                              ; preds = %612
  %614 = load i32, ptr @test_count, align 4, !tbaa !5
  %615 = add nsw i32 %614, 1
  store i32 %615, ptr @test_count, align 4, !tbaa !5
  %616 = call i32 @s2n_get_public_random_data(ptr noundef %15)
  %617 = getelementptr inbounds %struct.s2n_result, ptr %22, i32 0, i32 0
  store i32 %616, ptr %617, align 4
  %618 = getelementptr inbounds %struct.s2n_result, ptr %22, i32 0, i32 0
  %619 = load i32, ptr %618, align 4
  %620 = call zeroext i1 @s2n_result_is_ok(i32 %619)
  br i1 %620, label %674, label %621

621:                                              ; preds = %613
  br label %622

622:                                              ; preds = %621
  br label %623

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

630:                                              ; preds = %623
  %631 = load ptr, ptr @stderr, align 8, !tbaa !9
  %632 = call i32 @fileno(ptr noundef %631) #11
  %633 = call i32 @isatty(i32 noundef %632) #11
  %634 = icmp ne i32 %633, 0
  br i1 %634, label %635, label %652

635:                                              ; preds = %630
  %636 = load i32, ptr %23, align 4, !tbaa !5
  %637 = call ptr @__errno_location() #12
  store i32 %636, ptr %637, align 4, !tbaa !5
  %638 = load ptr, ptr @stderr, align 8, !tbaa !9
  %639 = load i32, ptr @test_count, align 4, !tbaa !5
  %640 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %641 = load i32, ptr %640, align 4, !tbaa !5
  %642 = call ptr @s2n_strerror(i32 noundef %641, ptr noundef @.str.3)
  %643 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %644 = load i32, ptr %643, align 4, !tbaa !5
  %645 = call ptr @s2n_strerror_debug(i32 noundef %644, ptr noundef @.str.3)
  %646 = call ptr @__errno_location() #12
  %647 = load i32, ptr %646, align 4, !tbaa !5
  %648 = call ptr @strerror(i32 noundef %647) #11
  %649 = call ptr @__errno_location() #12
  %650 = load i32, ptr %649, align 4, !tbaa !5
  %651 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %638, ptr noundef @.str, i32 noundef %639, ptr noundef @.str.13, ptr noundef @.str.2, i32 noundef 48, ptr noundef %642, ptr noundef %645, ptr noundef %648, i32 noundef %650) #11
  br label %669

652:                                              ; preds = %630, %623
  %653 = load i32, ptr %23, align 4, !tbaa !5
  %654 = call ptr @__errno_location() #12
  store i32 %653, ptr %654, align 4, !tbaa !5
  %655 = load ptr, ptr @stderr, align 8, !tbaa !9
  %656 = load i32, ptr @test_count, align 4, !tbaa !5
  %657 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %658 = load i32, ptr %657, align 4, !tbaa !5
  %659 = call ptr @s2n_strerror(i32 noundef %658, ptr noundef @.str.3)
  %660 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %661 = load i32, ptr %660, align 4, !tbaa !5
  %662 = call ptr @s2n_strerror_debug(i32 noundef %661, ptr noundef @.str.3)
  %663 = call ptr @__errno_location() #12
  %664 = load i32, ptr %663, align 4, !tbaa !5
  %665 = call ptr @strerror(i32 noundef %664) #11
  %666 = call ptr @__errno_location() #12
  %667 = load i32, ptr %666, align 4, !tbaa !5
  %668 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %655, ptr noundef @.str.4, i32 noundef %656, ptr noundef @.str.13, ptr noundef @.str.2, i32 noundef 48, ptr noundef %659, ptr noundef %662, ptr noundef %665, i32 noundef %667) #11
  br label %669

669:                                              ; preds = %652, %635
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #11
  br label %670

670:                                              ; preds = %669
  br label %671

671:                                              ; preds = %670
  call void @exit(i32 noundef 1) #13
  unreachable

672:                                              ; No predecessors!
  br label %673

673:                                              ; preds = %672
  br label %674

674:                                              ; preds = %673, %613
  br label %675

675:                                              ; preds = %674
  br label %676

676:                                              ; preds = %675
  %677 = load ptr, ptr %6, align 8, !tbaa !9
  %678 = getelementptr inbounds %struct.s2n_connection, ptr %677, i32 0, i32 27
  %679 = load ptr, ptr %678, align 8, !tbaa !15
  %680 = load ptr, ptr %6, align 8, !tbaa !9
  %681 = getelementptr inbounds %struct.s2n_connection, ptr %680, i32 0, i32 30
  store ptr %679, ptr %681, align 8, !tbaa !42
  %682 = load ptr, ptr %6, align 8, !tbaa !9
  %683 = getelementptr inbounds %struct.s2n_connection, ptr %682, i32 0, i32 27
  %684 = load ptr, ptr %683, align 8, !tbaa !15
  %685 = load ptr, ptr %6, align 8, !tbaa !9
  %686 = getelementptr inbounds %struct.s2n_connection, ptr %685, i32 0, i32 29
  store ptr %684, ptr %686, align 8, !tbaa !43
  %687 = load ptr, ptr %6, align 8, !tbaa !9
  %688 = getelementptr inbounds %struct.s2n_connection, ptr %687, i32 0, i32 27
  %689 = load ptr, ptr %688, align 8, !tbaa !15
  %690 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %689, i32 0, i32 0
  %691 = load ptr, ptr %690, align 8, !tbaa !44
  %692 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %691, i32 0, i32 6
  store ptr @s2n_record_alg_aes128_sha, ptr %692, align 8, !tbaa !49
  br label %693

693:                                              ; preds = %676
  %694 = load i32, ptr @test_count, align 4, !tbaa !5
  %695 = add nsw i32 %694, 1
  store i32 %695, ptr @test_count, align 4, !tbaa !5
  %696 = load ptr, ptr %6, align 8, !tbaa !9
  %697 = getelementptr inbounds %struct.s2n_connection, ptr %696, i32 0, i32 27
  %698 = load ptr, ptr %697, align 8, !tbaa !15
  %699 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %698, i32 0, i32 0
  %700 = load ptr, ptr %699, align 8, !tbaa !44
  %701 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %700, i32 0, i32 6
  %702 = load ptr, ptr %701, align 8, !tbaa !49
  %703 = getelementptr inbounds %struct.s2n_record_algorithm, ptr %702, i32 0, i32 0
  %704 = load ptr, ptr %703, align 8, !tbaa !51
  %705 = getelementptr inbounds %struct.s2n_cipher, ptr %704, i32 0, i32 4
  %706 = load ptr, ptr %705, align 8, !tbaa !53
  %707 = load ptr, ptr %6, align 8, !tbaa !9
  %708 = getelementptr inbounds %struct.s2n_connection, ptr %707, i32 0, i32 27
  %709 = load ptr, ptr %708, align 8, !tbaa !15
  %710 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %709, i32 0, i32 2
  %711 = call i32 %706(ptr noundef %710)
  %712 = getelementptr inbounds %struct.s2n_result, ptr %24, i32 0, i32 0
  store i32 %711, ptr %712, align 4
  %713 = getelementptr inbounds %struct.s2n_result, ptr %24, i32 0, i32 0
  %714 = load i32, ptr %713, align 4
  %715 = call zeroext i1 @s2n_result_is_ok(i32 %714)
  br i1 %715, label %769, label %716

716:                                              ; preds = %693
  br label %717

717:                                              ; preds = %716
  br label %718

718:                                              ; preds = %717
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #11
  %719 = call ptr @__errno_location() #12
  %720 = load i32, ptr %719, align 4, !tbaa !5
  store i32 %720, ptr %25, align 4, !tbaa !5
  %721 = load ptr, ptr @stderr, align 8, !tbaa !9
  %722 = call i32 @s2n_print_stacktrace(ptr noundef %721)
  %723 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %724 = trunc i8 %723 to i1
  br i1 %724, label %725, label %747

725:                                              ; preds = %718
  %726 = load ptr, ptr @stderr, align 8, !tbaa !9
  %727 = call i32 @fileno(ptr noundef %726) #11
  %728 = call i32 @isatty(i32 noundef %727) #11
  %729 = icmp ne i32 %728, 0
  br i1 %729, label %730, label %747

730:                                              ; preds = %725
  %731 = load i32, ptr %25, align 4, !tbaa !5
  %732 = call ptr @__errno_location() #12
  store i32 %731, ptr %732, align 4, !tbaa !5
  %733 = load ptr, ptr @stderr, align 8, !tbaa !9
  %734 = load i32, ptr @test_count, align 4, !tbaa !5
  %735 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %736 = load i32, ptr %735, align 4, !tbaa !5
  %737 = call ptr @s2n_strerror(i32 noundef %736, ptr noundef @.str.3)
  %738 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %739 = load i32, ptr %738, align 4, !tbaa !5
  %740 = call ptr @s2n_strerror_debug(i32 noundef %739, ptr noundef @.str.3)
  %741 = call ptr @__errno_location() #12
  %742 = load i32, ptr %741, align 4, !tbaa !5
  %743 = call ptr @strerror(i32 noundef %742) #11
  %744 = call ptr @__errno_location() #12
  %745 = load i32, ptr %744, align 4, !tbaa !5
  %746 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %733, ptr noundef @.str, i32 noundef %734, ptr noundef @.str.14, ptr noundef @.str.2, i32 noundef 56, ptr noundef %737, ptr noundef %740, ptr noundef %743, i32 noundef %745) #11
  br label %764

747:                                              ; preds = %725, %718
  %748 = load i32, ptr %25, align 4, !tbaa !5
  %749 = call ptr @__errno_location() #12
  store i32 %748, ptr %749, align 4, !tbaa !5
  %750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %751 = load i32, ptr @test_count, align 4, !tbaa !5
  %752 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %753 = load i32, ptr %752, align 4, !tbaa !5
  %754 = call ptr @s2n_strerror(i32 noundef %753, ptr noundef @.str.3)
  %755 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %756 = load i32, ptr %755, align 4, !tbaa !5
  %757 = call ptr @s2n_strerror_debug(i32 noundef %756, ptr noundef @.str.3)
  %758 = call ptr @__errno_location() #12
  %759 = load i32, ptr %758, align 4, !tbaa !5
  %760 = call ptr @strerror(i32 noundef %759) #11
  %761 = call ptr @__errno_location() #12
  %762 = load i32, ptr %761, align 4, !tbaa !5
  %763 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %750, ptr noundef @.str.4, i32 noundef %751, ptr noundef @.str.14, ptr noundef @.str.2, i32 noundef 56, ptr noundef %754, ptr noundef %757, ptr noundef %760, i32 noundef %762) #11
  br label %764

764:                                              ; preds = %747, %730
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #11
  br label %765

765:                                              ; preds = %764
  br label %766

766:                                              ; preds = %765
  call void @exit(i32 noundef 1) #13
  unreachable

767:                                              ; No predecessors!
  br label %768

768:                                              ; preds = %767
  br label %769

769:                                              ; preds = %768, %693
  br label %770

770:                                              ; preds = %769
  br label %771

771:                                              ; preds = %770
  br label %772

772:                                              ; preds = %771
  %773 = load i32, ptr @test_count, align 4, !tbaa !5
  %774 = add nsw i32 %773, 1
  store i32 %774, ptr @test_count, align 4, !tbaa !5
  %775 = load ptr, ptr %6, align 8, !tbaa !9
  %776 = getelementptr inbounds %struct.s2n_connection, ptr %775, i32 0, i32 27
  %777 = load ptr, ptr %776, align 8, !tbaa !15
  %778 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %777, i32 0, i32 0
  %779 = load ptr, ptr %778, align 8, !tbaa !44
  %780 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %779, i32 0, i32 6
  %781 = load ptr, ptr %780, align 8, !tbaa !49
  %782 = getelementptr inbounds %struct.s2n_record_algorithm, ptr %781, i32 0, i32 0
  %783 = load ptr, ptr %782, align 8, !tbaa !51
  %784 = getelementptr inbounds %struct.s2n_cipher, ptr %783, i32 0, i32 4
  %785 = load ptr, ptr %784, align 8, !tbaa !53
  %786 = load ptr, ptr %6, align 8, !tbaa !9
  %787 = getelementptr inbounds %struct.s2n_connection, ptr %786, i32 0, i32 27
  %788 = load ptr, ptr %787, align 8, !tbaa !15
  %789 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %788, i32 0, i32 1
  %790 = call i32 %785(ptr noundef %789)
  %791 = getelementptr inbounds %struct.s2n_result, ptr %26, i32 0, i32 0
  store i32 %790, ptr %791, align 4
  %792 = getelementptr inbounds %struct.s2n_result, ptr %26, i32 0, i32 0
  %793 = load i32, ptr %792, align 4
  %794 = call zeroext i1 @s2n_result_is_ok(i32 %793)
  br i1 %794, label %848, label %795

795:                                              ; preds = %772
  br label %796

796:                                              ; preds = %795
  br label %797

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

804:                                              ; preds = %797
  %805 = load ptr, ptr @stderr, align 8, !tbaa !9
  %806 = call i32 @fileno(ptr noundef %805) #11
  %807 = call i32 @isatty(i32 noundef %806) #11
  %808 = icmp ne i32 %807, 0
  br i1 %808, label %809, label %826

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

826:                                              ; preds = %804, %797
  %827 = load i32, ptr %27, align 4, !tbaa !5
  %828 = call ptr @__errno_location() #12
  store i32 %827, ptr %828, align 4, !tbaa !5
  %829 = load ptr, ptr @stderr, align 8, !tbaa !9
  %830 = load i32, ptr @test_count, align 4, !tbaa !5
  %831 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %832 = load i32, ptr %831, align 4, !tbaa !5
  %833 = call ptr @s2n_strerror(i32 noundef %832, ptr noundef @.str.3)
  %834 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %835 = load i32, ptr %834, align 4, !tbaa !5
  %836 = call ptr @s2n_strerror_debug(i32 noundef %835, ptr noundef @.str.3)
  %837 = call ptr @__errno_location() #12
  %838 = load i32, ptr %837, align 4, !tbaa !5
  %839 = call ptr @strerror(i32 noundef %838) #11
  %840 = call ptr @__errno_location() #12
  %841 = load i32, ptr %840, align 4, !tbaa !5
  %842 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %829, ptr noundef @.str.4, i32 noundef %830, ptr noundef @.str.15, ptr noundef @.str.2, i32 noundef 57, ptr noundef %833, ptr noundef %836, ptr noundef %839, i32 noundef %841) #11
  br label %843

843:                                              ; preds = %826, %809
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #11
  br label %844

844:                                              ; preds = %843
  br label %845

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

846:                                              ; No predecessors!
  br label %847

847:                                              ; preds = %846
  br label %848

848:                                              ; preds = %847, %772
  br label %849

849:                                              ; preds = %848
  br label %850

850:                                              ; preds = %849
  br label %851

851:                                              ; preds = %850
  %852 = load i32, ptr @test_count, align 4, !tbaa !5
  %853 = add nsw i32 %852, 1
  store i32 %853, ptr @test_count, align 4, !tbaa !5
  %854 = load ptr, ptr %6, align 8, !tbaa !9
  %855 = getelementptr inbounds %struct.s2n_connection, ptr %854, i32 0, i32 27
  %856 = load ptr, ptr %855, align 8, !tbaa !15
  %857 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %856, i32 0, i32 0
  %858 = load ptr, ptr %857, align 8, !tbaa !44
  %859 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %858, i32 0, i32 6
  %860 = load ptr, ptr %859, align 8, !tbaa !49
  %861 = getelementptr inbounds %struct.s2n_record_algorithm, ptr %860, i32 0, i32 0
  %862 = load ptr, ptr %861, align 8, !tbaa !51
  %863 = getelementptr inbounds %struct.s2n_cipher, ptr %862, i32 0, i32 6
  %864 = load ptr, ptr %863, align 8, !tbaa !55
  %865 = load ptr, ptr %6, align 8, !tbaa !9
  %866 = getelementptr inbounds %struct.s2n_connection, ptr %865, i32 0, i32 27
  %867 = load ptr, ptr %866, align 8, !tbaa !15
  %868 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %867, i32 0, i32 2
  %869 = call i32 %864(ptr noundef %868, ptr noundef %10)
  %870 = getelementptr inbounds %struct.s2n_result, ptr %28, i32 0, i32 0
  store i32 %869, ptr %870, align 4
  %871 = getelementptr inbounds %struct.s2n_result, ptr %28, i32 0, i32 0
  %872 = load i32, ptr %871, align 4
  %873 = call zeroext i1 @s2n_result_is_ok(i32 %872)
  br i1 %873, label %927, label %874

874:                                              ; preds = %851
  br label %875

875:                                              ; preds = %874
  br label %876

876:                                              ; preds = %875
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #11
  %877 = call ptr @__errno_location() #12
  %878 = load i32, ptr %877, align 4, !tbaa !5
  store i32 %878, ptr %29, align 4, !tbaa !5
  %879 = load ptr, ptr @stderr, align 8, !tbaa !9
  %880 = call i32 @s2n_print_stacktrace(ptr noundef %879)
  %881 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %882 = trunc i8 %881 to i1
  br i1 %882, label %883, label %905

883:                                              ; preds = %876
  %884 = load ptr, ptr @stderr, align 8, !tbaa !9
  %885 = call i32 @fileno(ptr noundef %884) #11
  %886 = call i32 @isatty(i32 noundef %885) #11
  %887 = icmp ne i32 %886, 0
  br i1 %887, label %888, label %905

888:                                              ; preds = %883
  %889 = load i32, ptr %29, align 4, !tbaa !5
  %890 = call ptr @__errno_location() #12
  store i32 %889, ptr %890, align 4, !tbaa !5
  %891 = load ptr, ptr @stderr, align 8, !tbaa !9
  %892 = load i32, ptr @test_count, align 4, !tbaa !5
  %893 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %894 = load i32, ptr %893, align 4, !tbaa !5
  %895 = call ptr @s2n_strerror(i32 noundef %894, ptr noundef @.str.3)
  %896 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %897 = load i32, ptr %896, align 4, !tbaa !5
  %898 = call ptr @s2n_strerror_debug(i32 noundef %897, ptr noundef @.str.3)
  %899 = call ptr @__errno_location() #12
  %900 = load i32, ptr %899, align 4, !tbaa !5
  %901 = call ptr @strerror(i32 noundef %900) #11
  %902 = call ptr @__errno_location() #12
  %903 = load i32, ptr %902, align 4, !tbaa !5
  %904 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %891, ptr noundef @.str, i32 noundef %892, ptr noundef @.str.16, ptr noundef @.str.2, i32 noundef 58, ptr noundef %895, ptr noundef %898, ptr noundef %901, i32 noundef %903) #11
  br label %922

905:                                              ; preds = %883, %876
  %906 = load i32, ptr %29, align 4, !tbaa !5
  %907 = call ptr @__errno_location() #12
  store i32 %906, ptr %907, align 4, !tbaa !5
  %908 = load ptr, ptr @stderr, align 8, !tbaa !9
  %909 = load i32, ptr @test_count, align 4, !tbaa !5
  %910 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %911 = load i32, ptr %910, align 4, !tbaa !5
  %912 = call ptr @s2n_strerror(i32 noundef %911, ptr noundef @.str.3)
  %913 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %914 = load i32, ptr %913, align 4, !tbaa !5
  %915 = call ptr @s2n_strerror_debug(i32 noundef %914, ptr noundef @.str.3)
  %916 = call ptr @__errno_location() #12
  %917 = load i32, ptr %916, align 4, !tbaa !5
  %918 = call ptr @strerror(i32 noundef %917) #11
  %919 = call ptr @__errno_location() #12
  %920 = load i32, ptr %919, align 4, !tbaa !5
  %921 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %908, ptr noundef @.str.4, i32 noundef %909, ptr noundef @.str.16, ptr noundef @.str.2, i32 noundef 58, ptr noundef %912, ptr noundef %915, ptr noundef %918, i32 noundef %920) #11
  br label %922

922:                                              ; preds = %905, %888
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #11
  br label %923

923:                                              ; preds = %922
  br label %924

924:                                              ; preds = %923
  call void @exit(i32 noundef 1) #13
  unreachable

925:                                              ; No predecessors!
  br label %926

926:                                              ; preds = %925
  br label %927

927:                                              ; preds = %926, %851
  br label %928

928:                                              ; preds = %927
  br label %929

929:                                              ; preds = %928
  br label %930

930:                                              ; preds = %929
  %931 = load i32, ptr @test_count, align 4, !tbaa !5
  %932 = add nsw i32 %931, 1
  store i32 %932, ptr @test_count, align 4, !tbaa !5
  %933 = load ptr, ptr %6, align 8, !tbaa !9
  %934 = getelementptr inbounds %struct.s2n_connection, ptr %933, i32 0, i32 27
  %935 = load ptr, ptr %934, align 8, !tbaa !15
  %936 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %935, i32 0, i32 0
  %937 = load ptr, ptr %936, align 8, !tbaa !44
  %938 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %937, i32 0, i32 6
  %939 = load ptr, ptr %938, align 8, !tbaa !49
  %940 = getelementptr inbounds %struct.s2n_record_algorithm, ptr %939, i32 0, i32 0
  %941 = load ptr, ptr %940, align 8, !tbaa !51
  %942 = getelementptr inbounds %struct.s2n_cipher, ptr %941, i32 0, i32 5
  %943 = load ptr, ptr %942, align 8, !tbaa !56
  %944 = load ptr, ptr %6, align 8, !tbaa !9
  %945 = getelementptr inbounds %struct.s2n_connection, ptr %944, i32 0, i32 27
  %946 = load ptr, ptr %945, align 8, !tbaa !15
  %947 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %946, i32 0, i32 1
  %948 = call i32 %943(ptr noundef %947, ptr noundef %10)
  %949 = getelementptr inbounds %struct.s2n_result, ptr %30, i32 0, i32 0
  store i32 %948, ptr %949, align 4
  %950 = getelementptr inbounds %struct.s2n_result, ptr %30, i32 0, i32 0
  %951 = load i32, ptr %950, align 4
  %952 = call zeroext i1 @s2n_result_is_ok(i32 %951)
  br i1 %952, label %1006, label %953

953:                                              ; preds = %930
  br label %954

954:                                              ; preds = %953
  br label %955

955:                                              ; preds = %954
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #11
  %956 = call ptr @__errno_location() #12
  %957 = load i32, ptr %956, align 4, !tbaa !5
  store i32 %957, ptr %31, align 4, !tbaa !5
  %958 = load ptr, ptr @stderr, align 8, !tbaa !9
  %959 = call i32 @s2n_print_stacktrace(ptr noundef %958)
  %960 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %961 = trunc i8 %960 to i1
  br i1 %961, label %962, label %984

962:                                              ; preds = %955
  %963 = load ptr, ptr @stderr, align 8, !tbaa !9
  %964 = call i32 @fileno(ptr noundef %963) #11
  %965 = call i32 @isatty(i32 noundef %964) #11
  %966 = icmp ne i32 %965, 0
  br i1 %966, label %967, label %984

967:                                              ; preds = %962
  %968 = load i32, ptr %31, align 4, !tbaa !5
  %969 = call ptr @__errno_location() #12
  store i32 %968, ptr %969, align 4, !tbaa !5
  %970 = load ptr, ptr @stderr, align 8, !tbaa !9
  %971 = load i32, ptr @test_count, align 4, !tbaa !5
  %972 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %973 = load i32, ptr %972, align 4, !tbaa !5
  %974 = call ptr @s2n_strerror(i32 noundef %973, ptr noundef @.str.3)
  %975 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %976 = load i32, ptr %975, align 4, !tbaa !5
  %977 = call ptr @s2n_strerror_debug(i32 noundef %976, ptr noundef @.str.3)
  %978 = call ptr @__errno_location() #12
  %979 = load i32, ptr %978, align 4, !tbaa !5
  %980 = call ptr @strerror(i32 noundef %979) #11
  %981 = call ptr @__errno_location() #12
  %982 = load i32, ptr %981, align 4, !tbaa !5
  %983 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %970, ptr noundef @.str, i32 noundef %971, ptr noundef @.str.17, ptr noundef @.str.2, i32 noundef 59, ptr noundef %974, ptr noundef %977, ptr noundef %980, i32 noundef %982) #11
  br label %1001

984:                                              ; preds = %962, %955
  %985 = load i32, ptr %31, align 4, !tbaa !5
  %986 = call ptr @__errno_location() #12
  store i32 %985, ptr %986, align 4, !tbaa !5
  %987 = load ptr, ptr @stderr, align 8, !tbaa !9
  %988 = load i32, ptr @test_count, align 4, !tbaa !5
  %989 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %990 = load i32, ptr %989, align 4, !tbaa !5
  %991 = call ptr @s2n_strerror(i32 noundef %990, ptr noundef @.str.3)
  %992 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %993 = load i32, ptr %992, align 4, !tbaa !5
  %994 = call ptr @s2n_strerror_debug(i32 noundef %993, ptr noundef @.str.3)
  %995 = call ptr @__errno_location() #12
  %996 = load i32, ptr %995, align 4, !tbaa !5
  %997 = call ptr @strerror(i32 noundef %996) #11
  %998 = call ptr @__errno_location() #12
  %999 = load i32, ptr %998, align 4, !tbaa !5
  %1000 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %987, ptr noundef @.str.4, i32 noundef %988, ptr noundef @.str.17, ptr noundef @.str.2, i32 noundef 59, ptr noundef %991, ptr noundef %994, ptr noundef %997, i32 noundef %999) #11
  br label %1001

1001:                                             ; preds = %984, %967
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #11
  br label %1002

1002:                                             ; preds = %1001
  br label %1003

1003:                                             ; preds = %1002
  call void @exit(i32 noundef 1) #13
  unreachable

1004:                                             ; No predecessors!
  br label %1005

1005:                                             ; preds = %1004
  br label %1006

1006:                                             ; preds = %1005, %930
  br label %1007

1007:                                             ; preds = %1006
  br label %1008

1008:                                             ; preds = %1007
  br label %1009

1009:                                             ; preds = %1008
  %1010 = load i32, ptr @test_count, align 4, !tbaa !5
  %1011 = add nsw i32 %1010, 1
  store i32 %1011, ptr @test_count, align 4, !tbaa !5
  %1012 = load ptr, ptr %6, align 8, !tbaa !9
  %1013 = getelementptr inbounds %struct.s2n_connection, ptr %1012, i32 0, i32 27
  %1014 = load ptr, ptr %1013, align 8, !tbaa !15
  %1015 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %1014, i32 0, i32 3
  %1016 = getelementptr inbounds [15 x i8], ptr %7, i64 0, i64 0
  %1017 = call i32 @s2n_hmac_init(ptr noundef %1015, i32 noundef 2, ptr noundef %1016, i32 noundef 15)
  %1018 = icmp eq i32 %1017, -1
  br i1 %1018, label %1019, label %1072

1019:                                             ; preds = %1009
  br label %1020

1020:                                             ; preds = %1019
  br label %1021

1021:                                             ; preds = %1020
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #11
  %1022 = call ptr @__errno_location() #12
  %1023 = load i32, ptr %1022, align 4, !tbaa !5
  store i32 %1023, ptr %32, align 4, !tbaa !5
  %1024 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1025 = call i32 @s2n_print_stacktrace(ptr noundef %1024)
  %1026 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1027 = trunc i8 %1026 to i1
  br i1 %1027, label %1028, label %1050

1028:                                             ; preds = %1021
  %1029 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1030 = call i32 @fileno(ptr noundef %1029) #11
  %1031 = call i32 @isatty(i32 noundef %1030) #11
  %1032 = icmp ne i32 %1031, 0
  br i1 %1032, label %1033, label %1050

1033:                                             ; preds = %1028
  %1034 = load i32, ptr %32, align 4, !tbaa !5
  %1035 = call ptr @__errno_location() #12
  store i32 %1034, ptr %1035, align 4, !tbaa !5
  %1036 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1037 = load i32, ptr @test_count, align 4, !tbaa !5
  %1038 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1039 = load i32, ptr %1038, align 4, !tbaa !5
  %1040 = call ptr @s2n_strerror(i32 noundef %1039, ptr noundef @.str.3)
  %1041 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1042 = load i32, ptr %1041, align 4, !tbaa !5
  %1043 = call ptr @s2n_strerror_debug(i32 noundef %1042, ptr noundef @.str.3)
  %1044 = call ptr @__errno_location() #12
  %1045 = load i32, ptr %1044, align 4, !tbaa !5
  %1046 = call ptr @strerror(i32 noundef %1045) #11
  %1047 = call ptr @__errno_location() #12
  %1048 = load i32, ptr %1047, align 4, !tbaa !5
  %1049 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1036, ptr noundef @.str, i32 noundef %1037, ptr noundef @.str.18, ptr noundef @.str.2, i32 noundef 60, ptr noundef %1040, ptr noundef %1043, ptr noundef %1046, i32 noundef %1048) #11
  br label %1067

1050:                                             ; preds = %1028, %1021
  %1051 = load i32, ptr %32, align 4, !tbaa !5
  %1052 = call ptr @__errno_location() #12
  store i32 %1051, ptr %1052, align 4, !tbaa !5
  %1053 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1054 = load i32, ptr @test_count, align 4, !tbaa !5
  %1055 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1056 = load i32, ptr %1055, align 4, !tbaa !5
  %1057 = call ptr @s2n_strerror(i32 noundef %1056, ptr noundef @.str.3)
  %1058 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1059 = load i32, ptr %1058, align 4, !tbaa !5
  %1060 = call ptr @s2n_strerror_debug(i32 noundef %1059, ptr noundef @.str.3)
  %1061 = call ptr @__errno_location() #12
  %1062 = load i32, ptr %1061, align 4, !tbaa !5
  %1063 = call ptr @strerror(i32 noundef %1062) #11
  %1064 = call ptr @__errno_location() #12
  %1065 = load i32, ptr %1064, align 4, !tbaa !5
  %1066 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1053, ptr noundef @.str.4, i32 noundef %1054, ptr noundef @.str.18, ptr noundef @.str.2, i32 noundef 60, ptr noundef %1057, ptr noundef %1060, ptr noundef %1063, i32 noundef %1065) #11
  br label %1067

1067:                                             ; preds = %1050, %1033
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #11
  br label %1068

1068:                                             ; preds = %1067
  br label %1069

1069:                                             ; preds = %1068
  call void @exit(i32 noundef 1) #13
  unreachable

1070:                                             ; No predecessors!
  br label %1071

1071:                                             ; preds = %1070
  br label %1072

1072:                                             ; preds = %1071, %1009
  br label %1073

1073:                                             ; preds = %1072
  br label %1074

1074:                                             ; preds = %1073
  br label %1075

1075:                                             ; preds = %1074
  %1076 = load i32, ptr @test_count, align 4, !tbaa !5
  %1077 = add nsw i32 %1076, 1
  store i32 %1077, ptr @test_count, align 4, !tbaa !5
  %1078 = load ptr, ptr %6, align 8, !tbaa !9
  %1079 = getelementptr inbounds %struct.s2n_connection, ptr %1078, i32 0, i32 27
  %1080 = load ptr, ptr %1079, align 8, !tbaa !15
  %1081 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %1080, i32 0, i32 4
  %1082 = getelementptr inbounds [15 x i8], ptr %7, i64 0, i64 0
  %1083 = call i32 @s2n_hmac_init(ptr noundef %1081, i32 noundef 2, ptr noundef %1082, i32 noundef 15)
  %1084 = icmp eq i32 %1083, -1
  br i1 %1084, label %1085, label %1138

1085:                                             ; preds = %1075
  br label %1086

1086:                                             ; preds = %1085
  br label %1087

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

1094:                                             ; preds = %1087
  %1095 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1096 = call i32 @fileno(ptr noundef %1095) #11
  %1097 = call i32 @isatty(i32 noundef %1096) #11
  %1098 = icmp ne i32 %1097, 0
  br i1 %1098, label %1099, label %1116

1099:                                             ; preds = %1094
  %1100 = load i32, ptr %33, align 4, !tbaa !5
  %1101 = call ptr @__errno_location() #12
  store i32 %1100, ptr %1101, align 4, !tbaa !5
  %1102 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1103 = load i32, ptr @test_count, align 4, !tbaa !5
  %1104 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1105 = load i32, ptr %1104, align 4, !tbaa !5
  %1106 = call ptr @s2n_strerror(i32 noundef %1105, ptr noundef @.str.3)
  %1107 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1108 = load i32, ptr %1107, align 4, !tbaa !5
  %1109 = call ptr @s2n_strerror_debug(i32 noundef %1108, ptr noundef @.str.3)
  %1110 = call ptr @__errno_location() #12
  %1111 = load i32, ptr %1110, align 4, !tbaa !5
  %1112 = call ptr @strerror(i32 noundef %1111) #11
  %1113 = call ptr @__errno_location() #12
  %1114 = load i32, ptr %1113, align 4, !tbaa !5
  %1115 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1102, ptr noundef @.str, i32 noundef %1103, ptr noundef @.str.19, ptr noundef @.str.2, i32 noundef 61, ptr noundef %1106, ptr noundef %1109, ptr noundef %1112, i32 noundef %1114) #11
  br label %1133

1116:                                             ; preds = %1094, %1087
  %1117 = load i32, ptr %33, align 4, !tbaa !5
  %1118 = call ptr @__errno_location() #12
  store i32 %1117, ptr %1118, align 4, !tbaa !5
  %1119 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1120 = load i32, ptr @test_count, align 4, !tbaa !5
  %1121 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1122 = load i32, ptr %1121, align 4, !tbaa !5
  %1123 = call ptr @s2n_strerror(i32 noundef %1122, ptr noundef @.str.3)
  %1124 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1125 = load i32, ptr %1124, align 4, !tbaa !5
  %1126 = call ptr @s2n_strerror_debug(i32 noundef %1125, ptr noundef @.str.3)
  %1127 = call ptr @__errno_location() #12
  %1128 = load i32, ptr %1127, align 4, !tbaa !5
  %1129 = call ptr @strerror(i32 noundef %1128) #11
  %1130 = call ptr @__errno_location() #12
  %1131 = load i32, ptr %1130, align 4, !tbaa !5
  %1132 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1119, ptr noundef @.str.4, i32 noundef %1120, ptr noundef @.str.19, ptr noundef @.str.2, i32 noundef 61, ptr noundef %1123, ptr noundef %1126, ptr noundef %1129, i32 noundef %1131) #11
  br label %1133

1133:                                             ; preds = %1116, %1099
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #11
  br label %1134

1134:                                             ; preds = %1133
  br label %1135

1135:                                             ; preds = %1134
  call void @exit(i32 noundef 1) #13
  unreachable

1136:                                             ; No predecessors!
  br label %1137

1137:                                             ; preds = %1136
  br label %1138

1138:                                             ; preds = %1137, %1075
  br label %1139

1139:                                             ; preds = %1138
  br label %1140

1140:                                             ; preds = %1139
  %1141 = load ptr, ptr %6, align 8, !tbaa !9
  %1142 = getelementptr inbounds %struct.s2n_connection, ptr %1141, i32 0, i32 23
  store i8 32, ptr %1142, align 4, !tbaa !57
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #11
  store i64 0, ptr %34, align 8, !tbaa !58
  br label %1143

1143:                                             ; preds = %2626, %1140
  %1144 = load i64, ptr %34, align 8, !tbaa !58
  %1145 = icmp ule i64 %1144, 8088
  br i1 %1145, label %1147, label %1146

1146:                                             ; preds = %1143
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #11
  br label %2629

1147:                                             ; preds = %1143
  call void @llvm.lifetime.start.p0(i64 24, ptr %35) #11
  call void @llvm.memset.p0.i64(ptr align 8 %35, i8 0, i64 24, i1 false)
  br label %1148

1148:                                             ; preds = %1147
  %1149 = load i32, ptr @test_count, align 4, !tbaa !5
  %1150 = add nsw i32 %1149, 1
  store i32 %1150, ptr @test_count, align 4, !tbaa !5
  %1151 = getelementptr inbounds [8088 x i8], ptr %14, i64 0, i64 0
  %1152 = load i64, ptr %34, align 8, !tbaa !58
  %1153 = trunc i64 %1152 to i32
  %1154 = call i32 @s2n_blob_init(ptr noundef %35, ptr noundef %1151, i32 noundef %1153)
  %1155 = icmp eq i32 %1154, -1
  br i1 %1155, label %1156, label %1209

1156:                                             ; preds = %1148
  br label %1157

1157:                                             ; preds = %1156
  br label %1158

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

1165:                                             ; preds = %1158
  %1166 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1167 = call i32 @fileno(ptr noundef %1166) #11
  %1168 = call i32 @isatty(i32 noundef %1167) #11
  %1169 = icmp ne i32 %1168, 0
  br i1 %1169, label %1170, label %1187

1170:                                             ; preds = %1165
  %1171 = load i32, ptr %36, align 4, !tbaa !5
  %1172 = call ptr @__errno_location() #12
  store i32 %1171, ptr %1172, align 4, !tbaa !5
  %1173 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1174 = load i32, ptr @test_count, align 4, !tbaa !5
  %1175 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1176 = load i32, ptr %1175, align 4, !tbaa !5
  %1177 = call ptr @s2n_strerror(i32 noundef %1176, ptr noundef @.str.3)
  %1178 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1179 = load i32, ptr %1178, align 4, !tbaa !5
  %1180 = call ptr @s2n_strerror_debug(i32 noundef %1179, ptr noundef @.str.3)
  %1181 = call ptr @__errno_location() #12
  %1182 = load i32, ptr %1181, align 4, !tbaa !5
  %1183 = call ptr @strerror(i32 noundef %1182) #11
  %1184 = call ptr @__errno_location() #12
  %1185 = load i32, ptr %1184, align 4, !tbaa !5
  %1186 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1173, ptr noundef @.str, i32 noundef %1174, ptr noundef @.str.20, ptr noundef @.str.2, i32 noundef 66, ptr noundef %1177, ptr noundef %1180, ptr noundef %1183, i32 noundef %1185) #11
  br label %1204

1187:                                             ; preds = %1165, %1158
  %1188 = load i32, ptr %36, align 4, !tbaa !5
  %1189 = call ptr @__errno_location() #12
  store i32 %1188, ptr %1189, align 4, !tbaa !5
  %1190 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1191 = load i32, ptr @test_count, align 4, !tbaa !5
  %1192 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1193 = load i32, ptr %1192, align 4, !tbaa !5
  %1194 = call ptr @s2n_strerror(i32 noundef %1193, ptr noundef @.str.3)
  %1195 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1196 = load i32, ptr %1195, align 4, !tbaa !5
  %1197 = call ptr @s2n_strerror_debug(i32 noundef %1196, ptr noundef @.str.3)
  %1198 = call ptr @__errno_location() #12
  %1199 = load i32, ptr %1198, align 4, !tbaa !5
  %1200 = call ptr @strerror(i32 noundef %1199) #11
  %1201 = call ptr @__errno_location() #12
  %1202 = load i32, ptr %1201, align 4, !tbaa !5
  %1203 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1190, ptr noundef @.str.4, i32 noundef %1191, ptr noundef @.str.20, ptr noundef @.str.2, i32 noundef 66, ptr noundef %1194, ptr noundef %1197, ptr noundef %1200, i32 noundef %1202) #11
  br label %1204

1204:                                             ; preds = %1187, %1170
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #11
  br label %1205

1205:                                             ; preds = %1204
  br label %1206

1206:                                             ; preds = %1205
  call void @exit(i32 noundef 1) #13
  unreachable

1207:                                             ; No predecessors!
  br label %1208

1208:                                             ; preds = %1207
  br label %1209

1209:                                             ; preds = %1208, %1148
  br label %1210

1210:                                             ; preds = %1209
  br label %1211

1211:                                             ; preds = %1210
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #11
  store i32 0, ptr %37, align 4, !tbaa !5
  br label %1212

1212:                                             ; preds = %1211
  %1213 = load i32, ptr @test_count, align 4, !tbaa !5
  %1214 = add nsw i32 %1213, 1
  store i32 %1214, ptr @test_count, align 4, !tbaa !5
  %1215 = load ptr, ptr %6, align 8, !tbaa !9
  %1216 = getelementptr inbounds %struct.s2n_connection, ptr %1215, i32 0, i32 41
  %1217 = call i32 @s2n_stuffer_wipe(ptr noundef %1216)
  %1218 = icmp eq i32 %1217, -1
  br i1 %1218, label %1219, label %1272

1219:                                             ; preds = %1212
  br label %1220

1220:                                             ; preds = %1219
  br label %1221

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

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

1233:                                             ; preds = %1228
  %1234 = load i32, ptr %38, align 4, !tbaa !5
  %1235 = call ptr @__errno_location() #12
  store i32 %1234, ptr %1235, align 4, !tbaa !5
  %1236 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1237 = load i32, ptr @test_count, align 4, !tbaa !5
  %1238 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1239 = load i32, ptr %1238, align 4, !tbaa !5
  %1240 = call ptr @s2n_strerror(i32 noundef %1239, ptr noundef @.str.3)
  %1241 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1242 = load i32, ptr %1241, align 4, !tbaa !5
  %1243 = call ptr @s2n_strerror_debug(i32 noundef %1242, ptr noundef @.str.3)
  %1244 = call ptr @__errno_location() #12
  %1245 = load i32, ptr %1244, align 4, !tbaa !5
  %1246 = call ptr @strerror(i32 noundef %1245) #11
  %1247 = call ptr @__errno_location() #12
  %1248 = load i32, ptr %1247, align 4, !tbaa !5
  %1249 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1236, ptr noundef @.str, i32 noundef %1237, ptr noundef @.str.21, ptr noundef @.str.2, i32 noundef 69, ptr noundef %1240, ptr noundef %1243, ptr noundef %1246, i32 noundef %1248) #11
  br label %1267

1250:                                             ; preds = %1228, %1221
  %1251 = load i32, ptr %38, align 4, !tbaa !5
  %1252 = call ptr @__errno_location() #12
  store i32 %1251, ptr %1252, align 4, !tbaa !5
  %1253 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1254 = load i32, ptr @test_count, align 4, !tbaa !5
  %1255 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1256 = load i32, ptr %1255, align 4, !tbaa !5
  %1257 = call ptr @s2n_strerror(i32 noundef %1256, ptr noundef @.str.3)
  %1258 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1259 = load i32, ptr %1258, align 4, !tbaa !5
  %1260 = call ptr @s2n_strerror_debug(i32 noundef %1259, ptr noundef @.str.3)
  %1261 = call ptr @__errno_location() #12
  %1262 = load i32, ptr %1261, align 4, !tbaa !5
  %1263 = call ptr @strerror(i32 noundef %1262) #11
  %1264 = call ptr @__errno_location() #12
  %1265 = load i32, ptr %1264, align 4, !tbaa !5
  %1266 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1253, ptr noundef @.str.4, i32 noundef %1254, ptr noundef @.str.21, ptr noundef @.str.2, i32 noundef 69, ptr noundef %1257, ptr noundef %1260, ptr noundef %1263, i32 noundef %1265) #11
  br label %1267

1267:                                             ; preds = %1250, %1233
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #11
  br label %1268

1268:                                             ; preds = %1267
  br label %1269

1269:                                             ; preds = %1268
  call void @exit(i32 noundef 1) #13
  unreachable

1270:                                             ; No predecessors!
  br label %1271

1271:                                             ; preds = %1270
  br label %1272

1272:                                             ; preds = %1271, %1212
  br label %1273

1273:                                             ; preds = %1272
  br label %1274

1274:                                             ; preds = %1273
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #11
  %1275 = load ptr, ptr %6, align 8, !tbaa !9
  %1276 = call i32 @s2n_record_write(ptr noundef %1275, i8 noundef zeroext 23, ptr noundef %35)
  %1277 = getelementptr inbounds %struct.s2n_result, ptr %39, i32 0, i32 0
  store i32 %1276, ptr %1277, align 4
  %1278 = load i64, ptr %34, align 8, !tbaa !58
  %1279 = icmp ule i64 %1278, 8087
  br i1 %1279, label %1280, label %1345

1280:                                             ; preds = %1274
  br label %1281

1281:                                             ; preds = %1280
  %1282 = load i32, ptr @test_count, align 4, !tbaa !5
  %1283 = add nsw i32 %1282, 1
  store i32 %1283, ptr @test_count, align 4, !tbaa !5
  %1284 = getelementptr inbounds %struct.s2n_result, ptr %39, i32 0, i32 0
  %1285 = load i32, ptr %1284, align 4
  %1286 = call zeroext i1 @s2n_result_is_ok(i32 %1285)
  br i1 %1286, label %1340, label %1287

1287:                                             ; preds = %1281
  br label %1288

1288:                                             ; preds = %1287
  br label %1289

1289:                                             ; preds = %1288
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #11
  %1290 = call ptr @__errno_location() #12
  %1291 = load i32, ptr %1290, align 4, !tbaa !5
  store i32 %1291, ptr %40, align 4, !tbaa !5
  %1292 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1293 = call i32 @s2n_print_stacktrace(ptr noundef %1292)
  %1294 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1295 = trunc i8 %1294 to i1
  br i1 %1295, label %1296, label %1318

1296:                                             ; preds = %1289
  %1297 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1298 = call i32 @fileno(ptr noundef %1297) #11
  %1299 = call i32 @isatty(i32 noundef %1298) #11
  %1300 = icmp ne i32 %1299, 0
  br i1 %1300, label %1301, label %1318

1301:                                             ; preds = %1296
  %1302 = load i32, ptr %40, align 4, !tbaa !5
  %1303 = call ptr @__errno_location() #12
  store i32 %1302, ptr %1303, align 4, !tbaa !5
  %1304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1305 = load i32, ptr @test_count, align 4, !tbaa !5
  %1306 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1307 = load i32, ptr %1306, align 4, !tbaa !5
  %1308 = call ptr @s2n_strerror(i32 noundef %1307, ptr noundef @.str.3)
  %1309 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1310 = load i32, ptr %1309, align 4, !tbaa !5
  %1311 = call ptr @s2n_strerror_debug(i32 noundef %1310, ptr noundef @.str.3)
  %1312 = call ptr @__errno_location() #12
  %1313 = load i32, ptr %1312, align 4, !tbaa !5
  %1314 = call ptr @strerror(i32 noundef %1313) #11
  %1315 = call ptr @__errno_location() #12
  %1316 = load i32, ptr %1315, align 4, !tbaa !5
  %1317 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1304, ptr noundef @.str, i32 noundef %1305, ptr noundef @.str.22, ptr noundef @.str.2, i32 noundef 73, ptr noundef %1308, ptr noundef %1311, ptr noundef %1314, i32 noundef %1316) #11
  br label %1335

1318:                                             ; preds = %1296, %1289
  %1319 = load i32, ptr %40, align 4, !tbaa !5
  %1320 = call ptr @__errno_location() #12
  store i32 %1319, ptr %1320, align 4, !tbaa !5
  %1321 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1322 = load i32, ptr @test_count, align 4, !tbaa !5
  %1323 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1324 = load i32, ptr %1323, align 4, !tbaa !5
  %1325 = call ptr @s2n_strerror(i32 noundef %1324, ptr noundef @.str.3)
  %1326 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1327 = load i32, ptr %1326, align 4, !tbaa !5
  %1328 = call ptr @s2n_strerror_debug(i32 noundef %1327, ptr noundef @.str.3)
  %1329 = call ptr @__errno_location() #12
  %1330 = load i32, ptr %1329, align 4, !tbaa !5
  %1331 = call ptr @strerror(i32 noundef %1330) #11
  %1332 = call ptr @__errno_location() #12
  %1333 = load i32, ptr %1332, align 4, !tbaa !5
  %1334 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1321, ptr noundef @.str.4, i32 noundef %1322, ptr noundef @.str.22, ptr noundef @.str.2, i32 noundef 73, ptr noundef %1325, ptr noundef %1328, ptr noundef %1331, i32 noundef %1333) #11
  br label %1335

1335:                                             ; preds = %1318, %1301
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #11
  br label %1336

1336:                                             ; preds = %1335
  br label %1337

1337:                                             ; preds = %1336
  call void @exit(i32 noundef 1) #13
  unreachable

1338:                                             ; No predecessors!
  br label %1339

1339:                                             ; preds = %1338
  br label %1340

1340:                                             ; preds = %1339, %1281
  br label %1341

1341:                                             ; preds = %1340
  br label %1342

1342:                                             ; preds = %1341
  %1343 = load i64, ptr %34, align 8, !tbaa !58
  %1344 = trunc i64 %1343 to i32
  store i32 %1344, ptr %37, align 4, !tbaa !5
  br label %1544

1345:                                             ; preds = %1274
  br label %1346

1346:                                             ; preds = %1345
  br label %1347

1347:                                             ; preds = %1346
  br label %1348

1348:                                             ; preds = %1347
  %1349 = load i32, ptr @test_count, align 4, !tbaa !5
  %1350 = add nsw i32 %1349, 1
  store i32 %1350, ptr @test_count, align 4, !tbaa !5
  %1351 = getelementptr inbounds %struct.s2n_result, ptr %39, i32 0, i32 0
  %1352 = load i32, ptr %1351, align 4
  %1353 = call zeroext i1 @s2n_result_is_error(i32 %1352)
  br i1 %1353, label %1407, label %1354

1354:                                             ; preds = %1348
  br label %1355

1355:                                             ; preds = %1354
  br label %1356

1356:                                             ; preds = %1355
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #11
  %1357 = call ptr @__errno_location() #12
  %1358 = load i32, ptr %1357, align 4, !tbaa !5
  store i32 %1358, ptr %41, align 4, !tbaa !5
  %1359 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1360 = call i32 @s2n_print_stacktrace(ptr noundef %1359)
  %1361 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1362 = trunc i8 %1361 to i1
  br i1 %1362, label %1363, label %1385

1363:                                             ; preds = %1356
  %1364 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1365 = call i32 @fileno(ptr noundef %1364) #11
  %1366 = call i32 @isatty(i32 noundef %1365) #11
  %1367 = icmp ne i32 %1366, 0
  br i1 %1367, label %1368, label %1385

1368:                                             ; preds = %1363
  %1369 = load i32, ptr %41, align 4, !tbaa !5
  %1370 = call ptr @__errno_location() #12
  store i32 %1369, ptr %1370, align 4, !tbaa !5
  %1371 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1372 = load i32, ptr @test_count, align 4, !tbaa !5
  %1373 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1374 = load i32, ptr %1373, align 4, !tbaa !5
  %1375 = call ptr @s2n_strerror(i32 noundef %1374, ptr noundef @.str.3)
  %1376 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1377 = load i32, ptr %1376, align 4, !tbaa !5
  %1378 = call ptr @s2n_strerror_debug(i32 noundef %1377, ptr noundef @.str.3)
  %1379 = call ptr @__errno_location() #12
  %1380 = load i32, ptr %1379, align 4, !tbaa !5
  %1381 = call ptr @strerror(i32 noundef %1380) #11
  %1382 = call ptr @__errno_location() #12
  %1383 = load i32, ptr %1382, align 4, !tbaa !5
  %1384 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1371, ptr noundef @.str, i32 noundef %1372, ptr noundef @.str.23, ptr noundef @.str.2, i32 noundef 76, ptr noundef %1375, ptr noundef %1378, ptr noundef %1381, i32 noundef %1383) #11
  br label %1402

1385:                                             ; preds = %1363, %1356
  %1386 = load i32, ptr %41, align 4, !tbaa !5
  %1387 = call ptr @__errno_location() #12
  store i32 %1386, ptr %1387, align 4, !tbaa !5
  %1388 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1389 = load i32, ptr @test_count, align 4, !tbaa !5
  %1390 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1391 = load i32, ptr %1390, align 4, !tbaa !5
  %1392 = call ptr @s2n_strerror(i32 noundef %1391, ptr noundef @.str.3)
  %1393 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1394 = load i32, ptr %1393, align 4, !tbaa !5
  %1395 = call ptr @s2n_strerror_debug(i32 noundef %1394, ptr noundef @.str.3)
  %1396 = call ptr @__errno_location() #12
  %1397 = load i32, ptr %1396, align 4, !tbaa !5
  %1398 = call ptr @strerror(i32 noundef %1397) #11
  %1399 = call ptr @__errno_location() #12
  %1400 = load i32, ptr %1399, align 4, !tbaa !5
  %1401 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1388, ptr noundef @.str.4, i32 noundef %1389, ptr noundef @.str.23, ptr noundef @.str.2, i32 noundef 76, ptr noundef %1392, ptr noundef %1395, ptr noundef %1398, i32 noundef %1400) #11
  br label %1402

1402:                                             ; preds = %1385, %1368
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #11
  br label %1403

1403:                                             ; preds = %1402
  br label %1404

1404:                                             ; preds = %1403
  call void @exit(i32 noundef 1) #13
  unreachable

1405:                                             ; No predecessors!
  br label %1406

1406:                                             ; preds = %1405
  br label %1407

1407:                                             ; preds = %1406, %1348
  br label %1408

1408:                                             ; preds = %1407
  br label %1409

1409:                                             ; preds = %1408
  br label %1410

1410:                                             ; preds = %1409
  %1411 = load i32, ptr @test_count, align 4, !tbaa !5
  %1412 = add nsw i32 %1411, 1
  store i32 %1412, ptr @test_count, align 4, !tbaa !5
  %1413 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1414 = load i32, ptr %1413, align 4, !tbaa !5
  %1415 = icmp eq i32 %1414, 335544390
  br i1 %1415, label %1469, label %1416

1416:                                             ; preds = %1410
  br label %1417

1417:                                             ; preds = %1416
  br label %1418

1418:                                             ; preds = %1417
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #11
  %1419 = call ptr @__errno_location() #12
  %1420 = load i32, ptr %1419, align 4, !tbaa !5
  store i32 %1420, ptr %42, align 4, !tbaa !5
  %1421 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1422 = call i32 @s2n_print_stacktrace(ptr noundef %1421)
  %1423 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1424 = trunc i8 %1423 to i1
  br i1 %1424, label %1425, label %1447

1425:                                             ; preds = %1418
  %1426 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1427 = call i32 @fileno(ptr noundef %1426) #11
  %1428 = call i32 @isatty(i32 noundef %1427) #11
  %1429 = icmp ne i32 %1428, 0
  br i1 %1429, label %1430, label %1447

1430:                                             ; preds = %1425
  %1431 = load i32, ptr %42, align 4, !tbaa !5
  %1432 = call ptr @__errno_location() #12
  store i32 %1431, ptr %1432, align 4, !tbaa !5
  %1433 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1434 = load i32, ptr @test_count, align 4, !tbaa !5
  %1435 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1436 = load i32, ptr %1435, align 4, !tbaa !5
  %1437 = call ptr @s2n_strerror(i32 noundef %1436, ptr noundef @.str.3)
  %1438 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1439 = load i32, ptr %1438, align 4, !tbaa !5
  %1440 = call ptr @s2n_strerror_debug(i32 noundef %1439, ptr noundef @.str.3)
  %1441 = call ptr @__errno_location() #12
  %1442 = load i32, ptr %1441, align 4, !tbaa !5
  %1443 = call ptr @strerror(i32 noundef %1442) #11
  %1444 = call ptr @__errno_location() #12
  %1445 = load i32, ptr %1444, align 4, !tbaa !5
  %1446 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1433, ptr noundef @.str, i32 noundef %1434, ptr noundef @.str.24, ptr noundef @.str.2, i32 noundef 76, ptr noundef %1437, ptr noundef %1440, ptr noundef %1443, i32 noundef %1445) #11
  br label %1464

1447:                                             ; preds = %1425, %1418
  %1448 = load i32, ptr %42, align 4, !tbaa !5
  %1449 = call ptr @__errno_location() #12
  store i32 %1448, ptr %1449, align 4, !tbaa !5
  %1450 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1451 = load i32, ptr @test_count, align 4, !tbaa !5
  %1452 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1453 = load i32, ptr %1452, align 4, !tbaa !5
  %1454 = call ptr @s2n_strerror(i32 noundef %1453, ptr noundef @.str.3)
  %1455 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1456 = load i32, ptr %1455, align 4, !tbaa !5
  %1457 = call ptr @s2n_strerror_debug(i32 noundef %1456, ptr noundef @.str.3)
  %1458 = call ptr @__errno_location() #12
  %1459 = load i32, ptr %1458, align 4, !tbaa !5
  %1460 = call ptr @strerror(i32 noundef %1459) #11
  %1461 = call ptr @__errno_location() #12
  %1462 = load i32, ptr %1461, align 4, !tbaa !5
  %1463 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1450, ptr noundef @.str.4, i32 noundef %1451, ptr noundef @.str.24, ptr noundef @.str.2, i32 noundef 76, ptr noundef %1454, ptr noundef %1457, ptr noundef %1460, i32 noundef %1462) #11
  br label %1464

1464:                                             ; preds = %1447, %1430
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #11
  br label %1465

1465:                                             ; preds = %1464
  br label %1466

1466:                                             ; preds = %1465
  call void @exit(i32 noundef 1) #13
  unreachable

1467:                                             ; No predecessors!
  br label %1468

1468:                                             ; preds = %1467
  br label %1469

1469:                                             ; preds = %1468, %1410
  br label %1470

1470:                                             ; preds = %1469
  br label %1471

1471:                                             ; preds = %1470
  br label %1472

1472:                                             ; preds = %1471
  %1473 = load i32, ptr @test_count, align 4, !tbaa !5
  %1474 = add nsw i32 %1473, 1
  store i32 %1474, ptr @test_count, align 4, !tbaa !5
  %1475 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1476 = load i32, ptr %1475, align 4, !tbaa !5
  %1477 = call ptr @s2n_strerror_debug(i32 noundef %1476, ptr noundef @.str.3)
  %1478 = icmp eq ptr %1477, null
  br i1 %1478, label %1479, label %1532

1479:                                             ; preds = %1472
  br label %1480

1480:                                             ; preds = %1479
  br label %1481

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

1488:                                             ; preds = %1481
  %1489 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1490 = call i32 @fileno(ptr noundef %1489) #11
  %1491 = call i32 @isatty(i32 noundef %1490) #11
  %1492 = icmp ne i32 %1491, 0
  br i1 %1492, label %1493, label %1510

1493:                                             ; preds = %1488
  %1494 = load i32, ptr %43, align 4, !tbaa !5
  %1495 = call ptr @__errno_location() #12
  store i32 %1494, ptr %1495, align 4, !tbaa !5
  %1496 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1497 = load i32, ptr @test_count, align 4, !tbaa !5
  %1498 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1499 = load i32, ptr %1498, align 4, !tbaa !5
  %1500 = call ptr @s2n_strerror(i32 noundef %1499, ptr noundef @.str.3)
  %1501 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1502 = load i32, ptr %1501, align 4, !tbaa !5
  %1503 = call ptr @s2n_strerror_debug(i32 noundef %1502, ptr noundef @.str.3)
  %1504 = call ptr @__errno_location() #12
  %1505 = load i32, ptr %1504, align 4, !tbaa !5
  %1506 = call ptr @strerror(i32 noundef %1505) #11
  %1507 = call ptr @__errno_location() #12
  %1508 = load i32, ptr %1507, align 4, !tbaa !5
  %1509 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1496, ptr noundef @.str, i32 noundef %1497, ptr noundef @.str.25, ptr noundef @.str.2, i32 noundef 76, ptr noundef %1500, ptr noundef %1503, ptr noundef %1506, i32 noundef %1508) #11
  br label %1527

1510:                                             ; preds = %1488, %1481
  %1511 = load i32, ptr %43, align 4, !tbaa !5
  %1512 = call ptr @__errno_location() #12
  store i32 %1511, ptr %1512, align 4, !tbaa !5
  %1513 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1514 = load i32, ptr @test_count, align 4, !tbaa !5
  %1515 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1516 = load i32, ptr %1515, align 4, !tbaa !5
  %1517 = call ptr @s2n_strerror(i32 noundef %1516, ptr noundef @.str.3)
  %1518 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1519 = load i32, ptr %1518, align 4, !tbaa !5
  %1520 = call ptr @s2n_strerror_debug(i32 noundef %1519, ptr noundef @.str.3)
  %1521 = call ptr @__errno_location() #12
  %1522 = load i32, ptr %1521, align 4, !tbaa !5
  %1523 = call ptr @strerror(i32 noundef %1522) #11
  %1524 = call ptr @__errno_location() #12
  %1525 = load i32, ptr %1524, align 4, !tbaa !5
  %1526 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1513, ptr noundef @.str.4, i32 noundef %1514, ptr noundef @.str.25, ptr noundef @.str.2, i32 noundef 76, ptr noundef %1517, ptr noundef %1520, ptr noundef %1523, i32 noundef %1525) #11
  br label %1527

1527:                                             ; preds = %1510, %1493
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #11
  br label %1528

1528:                                             ; preds = %1527
  br label %1529

1529:                                             ; preds = %1528
  call void @exit(i32 noundef 1) #13
  unreachable

1530:                                             ; No predecessors!
  br label %1531

1531:                                             ; preds = %1530
  br label %1532

1532:                                             ; preds = %1531, %1472
  br label %1533

1533:                                             ; preds = %1532
  br label %1534

1534:                                             ; preds = %1533
  br label %1535

1535:                                             ; preds = %1534
  br label %1536

1536:                                             ; preds = %1535
  br label %1537

1537:                                             ; preds = %1536
  %1538 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1538, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1539 = call ptr @__errno_location() #12
  store i32 0, ptr %1539, align 4, !tbaa !5
  br label %1540

1540:                                             ; preds = %1537
  br label %1541

1541:                                             ; preds = %1540
  br label %1542

1542:                                             ; preds = %1541
  br label %1543

1543:                                             ; preds = %1542
  store i32 8087, ptr %37, align 4, !tbaa !5
  br label %1544

1544:                                             ; preds = %1543, %1342
  call void @llvm.lifetime.start.p0(i64 2, ptr %44) #11
  %1545 = load i32, ptr %37, align 4, !tbaa !5
  %1546 = add nsw i32 %1545, 1
  %1547 = add nsw i32 %1546, 20
  %1548 = add nsw i32 %1547, 16
  %1549 = trunc i32 %1548 to i16
  store i16 %1549, ptr %44, align 2, !tbaa !59
  %1550 = load i16, ptr %44, align 2, !tbaa !59
  %1551 = zext i16 %1550 to i32
  %1552 = srem i32 %1551, 16
  %1553 = icmp ne i32 %1552, 0
  br i1 %1553, label %1554, label %1563

1554:                                             ; preds = %1544
  %1555 = load i16, ptr %44, align 2, !tbaa !59
  %1556 = zext i16 %1555 to i32
  %1557 = srem i32 %1556, 16
  %1558 = sub nsw i32 16, %1557
  %1559 = load i16, ptr %44, align 2, !tbaa !59
  %1560 = zext i16 %1559 to i32
  %1561 = add nsw i32 %1560, %1558
  %1562 = trunc i32 %1561 to i16
  store i16 %1562, ptr %44, align 2, !tbaa !59
  br label %1563

1563:                                             ; preds = %1554, %1544
  br label %1564

1564:                                             ; preds = %1563
  %1565 = load i32, ptr @test_count, align 4, !tbaa !5
  %1566 = add nsw i32 %1565, 1
  store i32 %1566, ptr @test_count, align 4, !tbaa !5
  %1567 = load ptr, ptr %6, align 8, !tbaa !9
  %1568 = getelementptr inbounds %struct.s2n_connection, ptr %1567, i32 0, i32 41
  %1569 = getelementptr inbounds %struct.s2n_stuffer, ptr %1568, i32 0, i32 0
  %1570 = getelementptr inbounds %struct.s2n_blob, ptr %1569, i32 0, i32 0
  %1571 = load ptr, ptr %1570, align 8, !tbaa !60
  %1572 = getelementptr inbounds i8, ptr %1571, i64 0
  %1573 = load i8, ptr %1572, align 1, !tbaa !61
  %1574 = zext i8 %1573 to i32
  %1575 = icmp eq i32 %1574, 23
  br i1 %1575, label %1629, label %1576

1576:                                             ; preds = %1564
  br label %1577

1577:                                             ; preds = %1576
  br label %1578

1578:                                             ; preds = %1577
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #11
  %1579 = call ptr @__errno_location() #12
  %1580 = load i32, ptr %1579, align 4, !tbaa !5
  store i32 %1580, ptr %45, align 4, !tbaa !5
  %1581 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1582 = call i32 @s2n_print_stacktrace(ptr noundef %1581)
  %1583 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1584 = trunc i8 %1583 to i1
  br i1 %1584, label %1585, label %1607

1585:                                             ; preds = %1578
  %1586 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1587 = call i32 @fileno(ptr noundef %1586) #11
  %1588 = call i32 @isatty(i32 noundef %1587) #11
  %1589 = icmp ne i32 %1588, 0
  br i1 %1589, label %1590, label %1607

1590:                                             ; preds = %1585
  %1591 = load i32, ptr %45, align 4, !tbaa !5
  %1592 = call ptr @__errno_location() #12
  store i32 %1591, ptr %1592, align 4, !tbaa !5
  %1593 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1594 = load i32, ptr @test_count, align 4, !tbaa !5
  %1595 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1596 = load i32, ptr %1595, align 4, !tbaa !5
  %1597 = call ptr @s2n_strerror(i32 noundef %1596, ptr noundef @.str.3)
  %1598 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1599 = load i32, ptr %1598, align 4, !tbaa !5
  %1600 = call ptr @s2n_strerror_debug(i32 noundef %1599, ptr noundef @.str.3)
  %1601 = call ptr @__errno_location() #12
  %1602 = load i32, ptr %1601, align 4, !tbaa !5
  %1603 = call ptr @strerror(i32 noundef %1602) #11
  %1604 = call ptr @__errno_location() #12
  %1605 = load i32, ptr %1604, align 4, !tbaa !5
  %1606 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1593, ptr noundef @.str, i32 noundef %1594, ptr noundef @.str.26, ptr noundef @.str.2, i32 noundef 84, ptr noundef %1597, ptr noundef %1600, ptr noundef %1603, i32 noundef %1605) #11
  br label %1624

1607:                                             ; preds = %1585, %1578
  %1608 = load i32, ptr %45, align 4, !tbaa !5
  %1609 = call ptr @__errno_location() #12
  store i32 %1608, ptr %1609, align 4, !tbaa !5
  %1610 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1611 = load i32, ptr @test_count, align 4, !tbaa !5
  %1612 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1613 = load i32, ptr %1612, align 4, !tbaa !5
  %1614 = call ptr @s2n_strerror(i32 noundef %1613, ptr noundef @.str.3)
  %1615 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1616 = load i32, ptr %1615, align 4, !tbaa !5
  %1617 = call ptr @s2n_strerror_debug(i32 noundef %1616, ptr noundef @.str.3)
  %1618 = call ptr @__errno_location() #12
  %1619 = load i32, ptr %1618, align 4, !tbaa !5
  %1620 = call ptr @strerror(i32 noundef %1619) #11
  %1621 = call ptr @__errno_location() #12
  %1622 = load i32, ptr %1621, align 4, !tbaa !5
  %1623 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1610, ptr noundef @.str.4, i32 noundef %1611, ptr noundef @.str.26, ptr noundef @.str.2, i32 noundef 84, ptr noundef %1614, ptr noundef %1617, ptr noundef %1620, i32 noundef %1622) #11
  br label %1624

1624:                                             ; preds = %1607, %1590
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #11
  br label %1625

1625:                                             ; preds = %1624
  br label %1626

1626:                                             ; preds = %1625
  call void @exit(i32 noundef 1) #13
  unreachable

1627:                                             ; No predecessors!
  br label %1628

1628:                                             ; preds = %1627
  br label %1629

1629:                                             ; preds = %1628, %1564
  br label %1630

1630:                                             ; preds = %1629
  br label %1631

1631:                                             ; preds = %1630
  br label %1632

1632:                                             ; preds = %1631
  %1633 = load i32, ptr @test_count, align 4, !tbaa !5
  %1634 = add nsw i32 %1633, 1
  store i32 %1634, ptr @test_count, align 4, !tbaa !5
  %1635 = load ptr, ptr %6, align 8, !tbaa !9
  %1636 = getelementptr inbounds %struct.s2n_connection, ptr %1635, i32 0, i32 41
  %1637 = getelementptr inbounds %struct.s2n_stuffer, ptr %1636, i32 0, i32 0
  %1638 = getelementptr inbounds %struct.s2n_blob, ptr %1637, i32 0, i32 0
  %1639 = load ptr, ptr %1638, align 8, !tbaa !60
  %1640 = getelementptr inbounds i8, ptr %1639, i64 1
  %1641 = load i8, ptr %1640, align 1, !tbaa !61
  %1642 = zext i8 %1641 to i32
  %1643 = icmp eq i32 %1642, 3
  br i1 %1643, label %1697, label %1644

1644:                                             ; preds = %1632
  br label %1645

1645:                                             ; preds = %1644
  br label %1646

1646:                                             ; preds = %1645
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #11
  %1647 = call ptr @__errno_location() #12
  %1648 = load i32, ptr %1647, align 4, !tbaa !5
  store i32 %1648, ptr %46, align 4, !tbaa !5
  %1649 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1650 = call i32 @s2n_print_stacktrace(ptr noundef %1649)
  %1651 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1652 = trunc i8 %1651 to i1
  br i1 %1652, label %1653, label %1675

1653:                                             ; preds = %1646
  %1654 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1655 = call i32 @fileno(ptr noundef %1654) #11
  %1656 = call i32 @isatty(i32 noundef %1655) #11
  %1657 = icmp ne i32 %1656, 0
  br i1 %1657, label %1658, label %1675

1658:                                             ; preds = %1653
  %1659 = load i32, ptr %46, align 4, !tbaa !5
  %1660 = call ptr @__errno_location() #12
  store i32 %1659, ptr %1660, align 4, !tbaa !5
  %1661 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1662 = load i32, ptr @test_count, align 4, !tbaa !5
  %1663 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1664 = load i32, ptr %1663, align 4, !tbaa !5
  %1665 = call ptr @s2n_strerror(i32 noundef %1664, ptr noundef @.str.3)
  %1666 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1667 = load i32, ptr %1666, align 4, !tbaa !5
  %1668 = call ptr @s2n_strerror_debug(i32 noundef %1667, ptr noundef @.str.3)
  %1669 = call ptr @__errno_location() #12
  %1670 = load i32, ptr %1669, align 4, !tbaa !5
  %1671 = call ptr @strerror(i32 noundef %1670) #11
  %1672 = call ptr @__errno_location() #12
  %1673 = load i32, ptr %1672, align 4, !tbaa !5
  %1674 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1661, ptr noundef @.str, i32 noundef %1662, ptr noundef @.str.27, ptr noundef @.str.2, i32 noundef 85, ptr noundef %1665, ptr noundef %1668, ptr noundef %1671, i32 noundef %1673) #11
  br label %1692

1675:                                             ; preds = %1653, %1646
  %1676 = load i32, ptr %46, align 4, !tbaa !5
  %1677 = call ptr @__errno_location() #12
  store i32 %1676, ptr %1677, align 4, !tbaa !5
  %1678 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1679 = load i32, ptr @test_count, align 4, !tbaa !5
  %1680 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1681 = load i32, ptr %1680, align 4, !tbaa !5
  %1682 = call ptr @s2n_strerror(i32 noundef %1681, ptr noundef @.str.3)
  %1683 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1684 = load i32, ptr %1683, align 4, !tbaa !5
  %1685 = call ptr @s2n_strerror_debug(i32 noundef %1684, ptr noundef @.str.3)
  %1686 = call ptr @__errno_location() #12
  %1687 = load i32, ptr %1686, align 4, !tbaa !5
  %1688 = call ptr @strerror(i32 noundef %1687) #11
  %1689 = call ptr @__errno_location() #12
  %1690 = load i32, ptr %1689, align 4, !tbaa !5
  %1691 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1678, ptr noundef @.str.4, i32 noundef %1679, ptr noundef @.str.27, ptr noundef @.str.2, i32 noundef 85, ptr noundef %1682, ptr noundef %1685, ptr noundef %1688, i32 noundef %1690) #11
  br label %1692

1692:                                             ; preds = %1675, %1658
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #11
  br label %1693

1693:                                             ; preds = %1692
  br label %1694

1694:                                             ; preds = %1693
  call void @exit(i32 noundef 1) #13
  unreachable

1695:                                             ; No predecessors!
  br label %1696

1696:                                             ; preds = %1695
  br label %1697

1697:                                             ; preds = %1696, %1632
  br label %1698

1698:                                             ; preds = %1697
  br label %1699

1699:                                             ; preds = %1698
  br label %1700

1700:                                             ; preds = %1699
  %1701 = load i32, ptr @test_count, align 4, !tbaa !5
  %1702 = add nsw i32 %1701, 1
  store i32 %1702, ptr @test_count, align 4, !tbaa !5
  %1703 = load ptr, ptr %6, align 8, !tbaa !9
  %1704 = getelementptr inbounds %struct.s2n_connection, ptr %1703, i32 0, i32 41
  %1705 = getelementptr inbounds %struct.s2n_stuffer, ptr %1704, i32 0, i32 0
  %1706 = getelementptr inbounds %struct.s2n_blob, ptr %1705, i32 0, i32 0
  %1707 = load ptr, ptr %1706, align 8, !tbaa !60
  %1708 = getelementptr inbounds i8, ptr %1707, i64 2
  %1709 = load i8, ptr %1708, align 1, !tbaa !61
  %1710 = zext i8 %1709 to i32
  %1711 = icmp eq i32 %1710, 2
  br i1 %1711, label %1765, label %1712

1712:                                             ; preds = %1700
  br label %1713

1713:                                             ; preds = %1712
  br label %1714

1714:                                             ; preds = %1713
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #11
  %1715 = call ptr @__errno_location() #12
  %1716 = load i32, ptr %1715, align 4, !tbaa !5
  store i32 %1716, ptr %47, align 4, !tbaa !5
  %1717 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1718 = call i32 @s2n_print_stacktrace(ptr noundef %1717)
  %1719 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1720 = trunc i8 %1719 to i1
  br i1 %1720, label %1721, label %1743

1721:                                             ; preds = %1714
  %1722 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1723 = call i32 @fileno(ptr noundef %1722) #11
  %1724 = call i32 @isatty(i32 noundef %1723) #11
  %1725 = icmp ne i32 %1724, 0
  br i1 %1725, label %1726, label %1743

1726:                                             ; preds = %1721
  %1727 = load i32, ptr %47, align 4, !tbaa !5
  %1728 = call ptr @__errno_location() #12
  store i32 %1727, ptr %1728, align 4, !tbaa !5
  %1729 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1730 = load i32, ptr @test_count, align 4, !tbaa !5
  %1731 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1732 = load i32, ptr %1731, align 4, !tbaa !5
  %1733 = call ptr @s2n_strerror(i32 noundef %1732, ptr noundef @.str.3)
  %1734 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1735 = load i32, ptr %1734, align 4, !tbaa !5
  %1736 = call ptr @s2n_strerror_debug(i32 noundef %1735, ptr noundef @.str.3)
  %1737 = call ptr @__errno_location() #12
  %1738 = load i32, ptr %1737, align 4, !tbaa !5
  %1739 = call ptr @strerror(i32 noundef %1738) #11
  %1740 = call ptr @__errno_location() #12
  %1741 = load i32, ptr %1740, align 4, !tbaa !5
  %1742 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1729, ptr noundef @.str, i32 noundef %1730, ptr noundef @.str.28, ptr noundef @.str.2, i32 noundef 86, ptr noundef %1733, ptr noundef %1736, ptr noundef %1739, i32 noundef %1741) #11
  br label %1760

1743:                                             ; preds = %1721, %1714
  %1744 = load i32, ptr %47, align 4, !tbaa !5
  %1745 = call ptr @__errno_location() #12
  store i32 %1744, ptr %1745, align 4, !tbaa !5
  %1746 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1747 = load i32, ptr @test_count, align 4, !tbaa !5
  %1748 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1749 = load i32, ptr %1748, align 4, !tbaa !5
  %1750 = call ptr @s2n_strerror(i32 noundef %1749, ptr noundef @.str.3)
  %1751 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1752 = load i32, ptr %1751, align 4, !tbaa !5
  %1753 = call ptr @s2n_strerror_debug(i32 noundef %1752, ptr noundef @.str.3)
  %1754 = call ptr @__errno_location() #12
  %1755 = load i32, ptr %1754, align 4, !tbaa !5
  %1756 = call ptr @strerror(i32 noundef %1755) #11
  %1757 = call ptr @__errno_location() #12
  %1758 = load i32, ptr %1757, align 4, !tbaa !5
  %1759 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1746, ptr noundef @.str.4, i32 noundef %1747, ptr noundef @.str.28, ptr noundef @.str.2, i32 noundef 86, ptr noundef %1750, ptr noundef %1753, ptr noundef %1756, i32 noundef %1758) #11
  br label %1760

1760:                                             ; preds = %1743, %1726
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #11
  br label %1761

1761:                                             ; preds = %1760
  br label %1762

1762:                                             ; preds = %1761
  call void @exit(i32 noundef 1) #13
  unreachable

1763:                                             ; No predecessors!
  br label %1764

1764:                                             ; preds = %1763
  br label %1765

1765:                                             ; preds = %1764, %1700
  br label %1766

1766:                                             ; preds = %1765
  br label %1767

1767:                                             ; preds = %1766
  br label %1768

1768:                                             ; preds = %1767
  %1769 = load i32, ptr @test_count, align 4, !tbaa !5
  %1770 = add nsw i32 %1769, 1
  store i32 %1770, ptr @test_count, align 4, !tbaa !5
  %1771 = load ptr, ptr %6, align 8, !tbaa !9
  %1772 = getelementptr inbounds %struct.s2n_connection, ptr %1771, i32 0, i32 41
  %1773 = getelementptr inbounds %struct.s2n_stuffer, ptr %1772, i32 0, i32 0
  %1774 = getelementptr inbounds %struct.s2n_blob, ptr %1773, i32 0, i32 0
  %1775 = load ptr, ptr %1774, align 8, !tbaa !60
  %1776 = getelementptr inbounds i8, ptr %1775, i64 3
  %1777 = load i8, ptr %1776, align 1, !tbaa !61
  %1778 = zext i8 %1777 to i32
  %1779 = load i16, ptr %44, align 2, !tbaa !59
  %1780 = zext i16 %1779 to i32
  %1781 = ashr i32 %1780, 8
  %1782 = and i32 %1781, 255
  %1783 = icmp eq i32 %1778, %1782
  br i1 %1783, label %1837, label %1784

1784:                                             ; preds = %1768
  br label %1785

1785:                                             ; preds = %1784
  br label %1786

1786:                                             ; preds = %1785
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #11
  %1787 = call ptr @__errno_location() #12
  %1788 = load i32, ptr %1787, align 4, !tbaa !5
  store i32 %1788, ptr %48, align 4, !tbaa !5
  %1789 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1790 = call i32 @s2n_print_stacktrace(ptr noundef %1789)
  %1791 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1792 = trunc i8 %1791 to i1
  br i1 %1792, label %1793, label %1815

1793:                                             ; preds = %1786
  %1794 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1795 = call i32 @fileno(ptr noundef %1794) #11
  %1796 = call i32 @isatty(i32 noundef %1795) #11
  %1797 = icmp ne i32 %1796, 0
  br i1 %1797, label %1798, label %1815

1798:                                             ; preds = %1793
  %1799 = load i32, ptr %48, align 4, !tbaa !5
  %1800 = call ptr @__errno_location() #12
  store i32 %1799, ptr %1800, align 4, !tbaa !5
  %1801 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1802 = load i32, ptr @test_count, align 4, !tbaa !5
  %1803 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1804 = load i32, ptr %1803, align 4, !tbaa !5
  %1805 = call ptr @s2n_strerror(i32 noundef %1804, ptr noundef @.str.3)
  %1806 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1807 = load i32, ptr %1806, align 4, !tbaa !5
  %1808 = call ptr @s2n_strerror_debug(i32 noundef %1807, ptr noundef @.str.3)
  %1809 = call ptr @__errno_location() #12
  %1810 = load i32, ptr %1809, align 4, !tbaa !5
  %1811 = call ptr @strerror(i32 noundef %1810) #11
  %1812 = call ptr @__errno_location() #12
  %1813 = load i32, ptr %1812, align 4, !tbaa !5
  %1814 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1801, ptr noundef @.str, i32 noundef %1802, ptr noundef @.str.29, ptr noundef @.str.2, i32 noundef 87, ptr noundef %1805, ptr noundef %1808, ptr noundef %1811, i32 noundef %1813) #11
  br label %1832

1815:                                             ; preds = %1793, %1786
  %1816 = load i32, ptr %48, align 4, !tbaa !5
  %1817 = call ptr @__errno_location() #12
  store i32 %1816, ptr %1817, align 4, !tbaa !5
  %1818 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1819 = load i32, ptr @test_count, align 4, !tbaa !5
  %1820 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1821 = load i32, ptr %1820, align 4, !tbaa !5
  %1822 = call ptr @s2n_strerror(i32 noundef %1821, ptr noundef @.str.3)
  %1823 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1824 = load i32, ptr %1823, align 4, !tbaa !5
  %1825 = call ptr @s2n_strerror_debug(i32 noundef %1824, ptr noundef @.str.3)
  %1826 = call ptr @__errno_location() #12
  %1827 = load i32, ptr %1826, align 4, !tbaa !5
  %1828 = call ptr @strerror(i32 noundef %1827) #11
  %1829 = call ptr @__errno_location() #12
  %1830 = load i32, ptr %1829, align 4, !tbaa !5
  %1831 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1818, ptr noundef @.str.4, i32 noundef %1819, ptr noundef @.str.29, ptr noundef @.str.2, i32 noundef 87, ptr noundef %1822, ptr noundef %1825, ptr noundef %1828, i32 noundef %1830) #11
  br label %1832

1832:                                             ; preds = %1815, %1798
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #11
  br label %1833

1833:                                             ; preds = %1832
  br label %1834

1834:                                             ; preds = %1833
  call void @exit(i32 noundef 1) #13
  unreachable

1835:                                             ; No predecessors!
  br label %1836

1836:                                             ; preds = %1835
  br label %1837

1837:                                             ; preds = %1836, %1768
  br label %1838

1838:                                             ; preds = %1837
  br label %1839

1839:                                             ; preds = %1838
  br label %1840

1840:                                             ; preds = %1839
  %1841 = load i32, ptr @test_count, align 4, !tbaa !5
  %1842 = add nsw i32 %1841, 1
  store i32 %1842, ptr @test_count, align 4, !tbaa !5
  %1843 = load ptr, ptr %6, align 8, !tbaa !9
  %1844 = getelementptr inbounds %struct.s2n_connection, ptr %1843, i32 0, i32 41
  %1845 = getelementptr inbounds %struct.s2n_stuffer, ptr %1844, i32 0, i32 0
  %1846 = getelementptr inbounds %struct.s2n_blob, ptr %1845, i32 0, i32 0
  %1847 = load ptr, ptr %1846, align 8, !tbaa !60
  %1848 = getelementptr inbounds i8, ptr %1847, i64 4
  %1849 = load i8, ptr %1848, align 1, !tbaa !61
  %1850 = zext i8 %1849 to i32
  %1851 = load i16, ptr %44, align 2, !tbaa !59
  %1852 = zext i16 %1851 to i32
  %1853 = and i32 %1852, 255
  %1854 = icmp eq i32 %1850, %1853
  br i1 %1854, label %1908, label %1855

1855:                                             ; preds = %1840
  br label %1856

1856:                                             ; preds = %1855
  br label %1857

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

1864:                                             ; preds = %1857
  %1865 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1866 = call i32 @fileno(ptr noundef %1865) #11
  %1867 = call i32 @isatty(i32 noundef %1866) #11
  %1868 = icmp ne i32 %1867, 0
  br i1 %1868, label %1869, label %1886

1869:                                             ; preds = %1864
  %1870 = load i32, ptr %49, align 4, !tbaa !5
  %1871 = call ptr @__errno_location() #12
  store i32 %1870, ptr %1871, align 4, !tbaa !5
  %1872 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1873 = load i32, ptr @test_count, align 4, !tbaa !5
  %1874 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1875 = load i32, ptr %1874, align 4, !tbaa !5
  %1876 = call ptr @s2n_strerror(i32 noundef %1875, ptr noundef @.str.3)
  %1877 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1878 = load i32, ptr %1877, align 4, !tbaa !5
  %1879 = call ptr @s2n_strerror_debug(i32 noundef %1878, ptr noundef @.str.3)
  %1880 = call ptr @__errno_location() #12
  %1881 = load i32, ptr %1880, align 4, !tbaa !5
  %1882 = call ptr @strerror(i32 noundef %1881) #11
  %1883 = call ptr @__errno_location() #12
  %1884 = load i32, ptr %1883, align 4, !tbaa !5
  %1885 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1872, ptr noundef @.str, i32 noundef %1873, ptr noundef @.str.30, ptr noundef @.str.2, i32 noundef 88, ptr noundef %1876, ptr noundef %1879, ptr noundef %1882, i32 noundef %1884) #11
  br label %1903

1886:                                             ; preds = %1864, %1857
  %1887 = load i32, ptr %49, align 4, !tbaa !5
  %1888 = call ptr @__errno_location() #12
  store i32 %1887, ptr %1888, align 4, !tbaa !5
  %1889 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1890 = load i32, ptr @test_count, align 4, !tbaa !5
  %1891 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1892 = load i32, ptr %1891, align 4, !tbaa !5
  %1893 = call ptr @s2n_strerror(i32 noundef %1892, ptr noundef @.str.3)
  %1894 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1895 = load i32, ptr %1894, align 4, !tbaa !5
  %1896 = call ptr @s2n_strerror_debug(i32 noundef %1895, ptr noundef @.str.3)
  %1897 = call ptr @__errno_location() #12
  %1898 = load i32, ptr %1897, align 4, !tbaa !5
  %1899 = call ptr @strerror(i32 noundef %1898) #11
  %1900 = call ptr @__errno_location() #12
  %1901 = load i32, ptr %1900, align 4, !tbaa !5
  %1902 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1889, ptr noundef @.str.4, i32 noundef %1890, ptr noundef @.str.30, ptr noundef @.str.2, i32 noundef 88, ptr noundef %1893, ptr noundef %1896, ptr noundef %1899, i32 noundef %1901) #11
  br label %1903

1903:                                             ; preds = %1886, %1869
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #11
  br label %1904

1904:                                             ; preds = %1903
  br label %1905

1905:                                             ; preds = %1904
  call void @exit(i32 noundef 1) #13
  unreachable

1906:                                             ; No predecessors!
  br label %1907

1907:                                             ; preds = %1906
  br label %1908

1908:                                             ; preds = %1907, %1840
  br label %1909

1909:                                             ; preds = %1908
  br label %1910

1910:                                             ; preds = %1909
  %1911 = load i32, ptr %37, align 4, !tbaa !5
  %1912 = icmp sgt i32 %1911, 10
  br i1 %1912, label %1913, label %1984

1913:                                             ; preds = %1910
  br label %1914

1914:                                             ; preds = %1913
  %1915 = load i32, ptr @test_count, align 4, !tbaa !5
  %1916 = add nsw i32 %1915, 1
  store i32 %1916, ptr @test_count, align 4, !tbaa !5
  %1917 = load ptr, ptr %6, align 8, !tbaa !9
  %1918 = getelementptr inbounds %struct.s2n_connection, ptr %1917, i32 0, i32 41
  %1919 = getelementptr inbounds %struct.s2n_stuffer, ptr %1918, i32 0, i32 0
  %1920 = getelementptr inbounds %struct.s2n_blob, ptr %1919, i32 0, i32 0
  %1921 = load ptr, ptr %1920, align 8, !tbaa !60
  %1922 = getelementptr inbounds i8, ptr %1921, i64 5
  %1923 = getelementptr inbounds [8088 x i8], ptr %14, i64 0, i64 0
  %1924 = load i32, ptr %37, align 4, !tbaa !5
  %1925 = sext i32 %1924 to i64
  %1926 = call i32 @memcmp(ptr noundef %1922, ptr noundef %1923, i64 noundef %1925) #14
  %1927 = icmp eq i32 %1926, 0
  br i1 %1927, label %1928, label %1981

1928:                                             ; preds = %1914
  br label %1929

1929:                                             ; preds = %1928
  br label %1930

1930:                                             ; preds = %1929
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #11
  %1931 = call ptr @__errno_location() #12
  %1932 = load i32, ptr %1931, align 4, !tbaa !5
  store i32 %1932, ptr %50, align 4, !tbaa !5
  %1933 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1934 = call i32 @s2n_print_stacktrace(ptr noundef %1933)
  %1935 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1936 = trunc i8 %1935 to i1
  br i1 %1936, label %1937, label %1959

1937:                                             ; preds = %1930
  %1938 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1939 = call i32 @fileno(ptr noundef %1938) #11
  %1940 = call i32 @isatty(i32 noundef %1939) #11
  %1941 = icmp ne i32 %1940, 0
  br i1 %1941, label %1942, label %1959

1942:                                             ; preds = %1937
  %1943 = load i32, ptr %50, align 4, !tbaa !5
  %1944 = call ptr @__errno_location() #12
  store i32 %1943, ptr %1944, align 4, !tbaa !5
  %1945 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1946 = load i32, ptr @test_count, align 4, !tbaa !5
  %1947 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1948 = load i32, ptr %1947, align 4, !tbaa !5
  %1949 = call ptr @s2n_strerror(i32 noundef %1948, ptr noundef @.str.3)
  %1950 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1951 = load i32, ptr %1950, align 4, !tbaa !5
  %1952 = call ptr @s2n_strerror_debug(i32 noundef %1951, ptr noundef @.str.3)
  %1953 = call ptr @__errno_location() #12
  %1954 = load i32, ptr %1953, align 4, !tbaa !5
  %1955 = call ptr @strerror(i32 noundef %1954) #11
  %1956 = call ptr @__errno_location() #12
  %1957 = load i32, ptr %1956, align 4, !tbaa !5
  %1958 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1945, ptr noundef @.str, i32 noundef %1946, ptr noundef @.str.31, ptr noundef @.str.2, i32 noundef 92, ptr noundef %1949, ptr noundef %1952, ptr noundef %1955, i32 noundef %1957) #11
  br label %1976

1959:                                             ; preds = %1937, %1930
  %1960 = load i32, ptr %50, align 4, !tbaa !5
  %1961 = call ptr @__errno_location() #12
  store i32 %1960, ptr %1961, align 4, !tbaa !5
  %1962 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1963 = load i32, ptr @test_count, align 4, !tbaa !5
  %1964 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1965 = load i32, ptr %1964, align 4, !tbaa !5
  %1966 = call ptr @s2n_strerror(i32 noundef %1965, ptr noundef @.str.3)
  %1967 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1968 = load i32, ptr %1967, align 4, !tbaa !5
  %1969 = call ptr @s2n_strerror_debug(i32 noundef %1968, ptr noundef @.str.3)
  %1970 = call ptr @__errno_location() #12
  %1971 = load i32, ptr %1970, align 4, !tbaa !5
  %1972 = call ptr @strerror(i32 noundef %1971) #11
  %1973 = call ptr @__errno_location() #12
  %1974 = load i32, ptr %1973, align 4, !tbaa !5
  %1975 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1962, ptr noundef @.str.4, i32 noundef %1963, ptr noundef @.str.31, ptr noundef @.str.2, i32 noundef 92, ptr noundef %1966, ptr noundef %1969, ptr noundef %1972, i32 noundef %1974) #11
  br label %1976

1976:                                             ; preds = %1959, %1942
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #11
  br label %1977

1977:                                             ; preds = %1976
  br label %1978

1978:                                             ; preds = %1977
  call void @exit(i32 noundef 1) #13
  unreachable

1979:                                             ; No predecessors!
  br label %1980

1980:                                             ; preds = %1979
  br label %1981

1981:                                             ; preds = %1980, %1914
  br label %1982

1982:                                             ; preds = %1981
  br label %1983

1983:                                             ; preds = %1982
  br label %1984

1984:                                             ; preds = %1983, %1910
  br label %1985

1985:                                             ; preds = %1984
  %1986 = load i32, ptr @test_count, align 4, !tbaa !5
  %1987 = add nsw i32 %1986, 1
  store i32 %1987, ptr @test_count, align 4, !tbaa !5
  %1988 = load ptr, ptr %6, align 8, !tbaa !9
  %1989 = getelementptr inbounds %struct.s2n_connection, ptr %1988, i32 0, i32 40
  %1990 = call i32 @s2n_stuffer_wipe(ptr noundef %1989)
  %1991 = icmp eq i32 %1990, -1
  br i1 %1991, label %1992, label %2045

1992:                                             ; preds = %1985
  br label %1993

1993:                                             ; preds = %1992
  br label %1994

1994:                                             ; preds = %1993
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #11
  %1995 = call ptr @__errno_location() #12
  %1996 = load i32, ptr %1995, align 4, !tbaa !5
  store i32 %1996, ptr %51, align 4, !tbaa !5
  %1997 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1998 = call i32 @s2n_print_stacktrace(ptr noundef %1997)
  %1999 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2000 = trunc i8 %1999 to i1
  br i1 %2000, label %2001, label %2023

2001:                                             ; preds = %1994
  %2002 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2003 = call i32 @fileno(ptr noundef %2002) #11
  %2004 = call i32 @isatty(i32 noundef %2003) #11
  %2005 = icmp ne i32 %2004, 0
  br i1 %2005, label %2006, label %2023

2006:                                             ; preds = %2001
  %2007 = load i32, ptr %51, align 4, !tbaa !5
  %2008 = call ptr @__errno_location() #12
  store i32 %2007, ptr %2008, align 4, !tbaa !5
  %2009 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2010 = load i32, ptr @test_count, align 4, !tbaa !5
  %2011 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2012 = load i32, ptr %2011, align 4, !tbaa !5
  %2013 = call ptr @s2n_strerror(i32 noundef %2012, ptr noundef @.str.3)
  %2014 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2015 = load i32, ptr %2014, align 4, !tbaa !5
  %2016 = call ptr @s2n_strerror_debug(i32 noundef %2015, ptr noundef @.str.3)
  %2017 = call ptr @__errno_location() #12
  %2018 = load i32, ptr %2017, align 4, !tbaa !5
  %2019 = call ptr @strerror(i32 noundef %2018) #11
  %2020 = call ptr @__errno_location() #12
  %2021 = load i32, ptr %2020, align 4, !tbaa !5
  %2022 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2009, ptr noundef @.str, i32 noundef %2010, ptr noundef @.str.32, ptr noundef @.str.2, i32 noundef 96, ptr noundef %2013, ptr noundef %2016, ptr noundef %2019, i32 noundef %2021) #11
  br label %2040

2023:                                             ; preds = %2001, %1994
  %2024 = load i32, ptr %51, align 4, !tbaa !5
  %2025 = call ptr @__errno_location() #12
  store i32 %2024, ptr %2025, align 4, !tbaa !5
  %2026 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2027 = load i32, ptr @test_count, align 4, !tbaa !5
  %2028 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2029 = load i32, ptr %2028, align 4, !tbaa !5
  %2030 = call ptr @s2n_strerror(i32 noundef %2029, ptr noundef @.str.3)
  %2031 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2032 = load i32, ptr %2031, align 4, !tbaa !5
  %2033 = call ptr @s2n_strerror_debug(i32 noundef %2032, ptr noundef @.str.3)
  %2034 = call ptr @__errno_location() #12
  %2035 = load i32, ptr %2034, align 4, !tbaa !5
  %2036 = call ptr @strerror(i32 noundef %2035) #11
  %2037 = call ptr @__errno_location() #12
  %2038 = load i32, ptr %2037, align 4, !tbaa !5
  %2039 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2026, ptr noundef @.str.4, i32 noundef %2027, ptr noundef @.str.32, ptr noundef @.str.2, i32 noundef 96, ptr noundef %2030, ptr noundef %2033, ptr noundef %2036, i32 noundef %2038) #11
  br label %2040

2040:                                             ; preds = %2023, %2006
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #11
  br label %2041

2041:                                             ; preds = %2040
  br label %2042

2042:                                             ; preds = %2041
  call void @exit(i32 noundef 1) #13
  unreachable

2043:                                             ; No predecessors!
  br label %2044

2044:                                             ; preds = %2043
  br label %2045

2045:                                             ; preds = %2044, %1985
  br label %2046

2046:                                             ; preds = %2045
  br label %2047

2047:                                             ; preds = %2046
  br label %2048

2048:                                             ; preds = %2047
  %2049 = load i32, ptr @test_count, align 4, !tbaa !5
  %2050 = add nsw i32 %2049, 1
  store i32 %2050, ptr @test_count, align 4, !tbaa !5
  %2051 = load ptr, ptr %6, align 8, !tbaa !9
  %2052 = getelementptr inbounds %struct.s2n_connection, ptr %2051, i32 0, i32 38
  %2053 = call i32 @s2n_stuffer_wipe(ptr noundef %2052)
  %2054 = icmp eq i32 %2053, -1
  br i1 %2054, label %2055, label %2108

2055:                                             ; preds = %2048
  br label %2056

2056:                                             ; preds = %2055
  br label %2057

2057:                                             ; preds = %2056
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #11
  %2058 = call ptr @__errno_location() #12
  %2059 = load i32, ptr %2058, align 4, !tbaa !5
  store i32 %2059, ptr %52, align 4, !tbaa !5
  %2060 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2061 = call i32 @s2n_print_stacktrace(ptr noundef %2060)
  %2062 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2063 = trunc i8 %2062 to i1
  br i1 %2063, label %2064, label %2086

2064:                                             ; preds = %2057
  %2065 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2066 = call i32 @fileno(ptr noundef %2065) #11
  %2067 = call i32 @isatty(i32 noundef %2066) #11
  %2068 = icmp ne i32 %2067, 0
  br i1 %2068, label %2069, label %2086

2069:                                             ; preds = %2064
  %2070 = load i32, ptr %52, align 4, !tbaa !5
  %2071 = call ptr @__errno_location() #12
  store i32 %2070, ptr %2071, align 4, !tbaa !5
  %2072 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2073 = load i32, ptr @test_count, align 4, !tbaa !5
  %2074 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2075 = load i32, ptr %2074, align 4, !tbaa !5
  %2076 = call ptr @s2n_strerror(i32 noundef %2075, ptr noundef @.str.3)
  %2077 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2078 = load i32, ptr %2077, align 4, !tbaa !5
  %2079 = call ptr @s2n_strerror_debug(i32 noundef %2078, ptr noundef @.str.3)
  %2080 = call ptr @__errno_location() #12
  %2081 = load i32, ptr %2080, align 4, !tbaa !5
  %2082 = call ptr @strerror(i32 noundef %2081) #11
  %2083 = call ptr @__errno_location() #12
  %2084 = load i32, ptr %2083, align 4, !tbaa !5
  %2085 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2072, ptr noundef @.str, i32 noundef %2073, ptr noundef @.str.33, ptr noundef @.str.2, i32 noundef 97, ptr noundef %2076, ptr noundef %2079, ptr noundef %2082, i32 noundef %2084) #11
  br label %2103

2086:                                             ; preds = %2064, %2057
  %2087 = load i32, ptr %52, align 4, !tbaa !5
  %2088 = call ptr @__errno_location() #12
  store i32 %2087, ptr %2088, align 4, !tbaa !5
  %2089 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2090 = load i32, ptr @test_count, align 4, !tbaa !5
  %2091 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2092 = load i32, ptr %2091, align 4, !tbaa !5
  %2093 = call ptr @s2n_strerror(i32 noundef %2092, ptr noundef @.str.3)
  %2094 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2095 = load i32, ptr %2094, align 4, !tbaa !5
  %2096 = call ptr @s2n_strerror_debug(i32 noundef %2095, ptr noundef @.str.3)
  %2097 = call ptr @__errno_location() #12
  %2098 = load i32, ptr %2097, align 4, !tbaa !5
  %2099 = call ptr @strerror(i32 noundef %2098) #11
  %2100 = call ptr @__errno_location() #12
  %2101 = load i32, ptr %2100, align 4, !tbaa !5
  %2102 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2089, ptr noundef @.str.4, i32 noundef %2090, ptr noundef @.str.33, ptr noundef @.str.2, i32 noundef 97, ptr noundef %2093, ptr noundef %2096, ptr noundef %2099, i32 noundef %2101) #11
  br label %2103

2103:                                             ; preds = %2086, %2069
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #11
  br label %2104

2104:                                             ; preds = %2103
  br label %2105

2105:                                             ; preds = %2104
  call void @exit(i32 noundef 1) #13
  unreachable

2106:                                             ; No predecessors!
  br label %2107

2107:                                             ; preds = %2106
  br label %2108

2108:                                             ; preds = %2107, %2048
  br label %2109

2109:                                             ; preds = %2108
  br label %2110

2110:                                             ; preds = %2109
  br label %2111

2111:                                             ; preds = %2110
  %2112 = load i32, ptr @test_count, align 4, !tbaa !5
  %2113 = add nsw i32 %2112, 1
  store i32 %2113, ptr @test_count, align 4, !tbaa !5
  %2114 = load ptr, ptr %6, align 8, !tbaa !9
  %2115 = getelementptr inbounds %struct.s2n_connection, ptr %2114, i32 0, i32 41
  %2116 = load ptr, ptr %6, align 8, !tbaa !9
  %2117 = getelementptr inbounds %struct.s2n_connection, ptr %2116, i32 0, i32 38
  %2118 = call i32 @s2n_stuffer_copy(ptr noundef %2115, ptr noundef %2117, i32 noundef 5)
  %2119 = icmp eq i32 %2118, -1
  br i1 %2119, label %2120, label %2173

2120:                                             ; preds = %2111
  br label %2121

2121:                                             ; preds = %2120
  br label %2122

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

2129:                                             ; preds = %2122
  %2130 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2131 = call i32 @fileno(ptr noundef %2130) #11
  %2132 = call i32 @isatty(i32 noundef %2131) #11
  %2133 = icmp ne i32 %2132, 0
  br i1 %2133, label %2134, label %2151

2134:                                             ; preds = %2129
  %2135 = load i32, ptr %53, align 4, !tbaa !5
  %2136 = call ptr @__errno_location() #12
  store i32 %2135, ptr %2136, align 4, !tbaa !5
  %2137 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2138 = load i32, ptr @test_count, align 4, !tbaa !5
  %2139 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2140 = load i32, ptr %2139, align 4, !tbaa !5
  %2141 = call ptr @s2n_strerror(i32 noundef %2140, ptr noundef @.str.3)
  %2142 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2143 = load i32, ptr %2142, align 4, !tbaa !5
  %2144 = call ptr @s2n_strerror_debug(i32 noundef %2143, ptr noundef @.str.3)
  %2145 = call ptr @__errno_location() #12
  %2146 = load i32, ptr %2145, align 4, !tbaa !5
  %2147 = call ptr @strerror(i32 noundef %2146) #11
  %2148 = call ptr @__errno_location() #12
  %2149 = load i32, ptr %2148, align 4, !tbaa !5
  %2150 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2137, ptr noundef @.str, i32 noundef %2138, ptr noundef @.str.34, ptr noundef @.str.2, i32 noundef 98, ptr noundef %2141, ptr noundef %2144, ptr noundef %2147, i32 noundef %2149) #11
  br label %2168

2151:                                             ; preds = %2129, %2122
  %2152 = load i32, ptr %53, align 4, !tbaa !5
  %2153 = call ptr @__errno_location() #12
  store i32 %2152, ptr %2153, align 4, !tbaa !5
  %2154 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2155 = load i32, ptr @test_count, align 4, !tbaa !5
  %2156 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2157 = load i32, ptr %2156, align 4, !tbaa !5
  %2158 = call ptr @s2n_strerror(i32 noundef %2157, ptr noundef @.str.3)
  %2159 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2160 = load i32, ptr %2159, align 4, !tbaa !5
  %2161 = call ptr @s2n_strerror_debug(i32 noundef %2160, ptr noundef @.str.3)
  %2162 = call ptr @__errno_location() #12
  %2163 = load i32, ptr %2162, align 4, !tbaa !5
  %2164 = call ptr @strerror(i32 noundef %2163) #11
  %2165 = call ptr @__errno_location() #12
  %2166 = load i32, ptr %2165, align 4, !tbaa !5
  %2167 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2154, ptr noundef @.str.4, i32 noundef %2155, ptr noundef @.str.34, ptr noundef @.str.2, i32 noundef 98, ptr noundef %2158, ptr noundef %2161, ptr noundef %2164, i32 noundef %2166) #11
  br label %2168

2168:                                             ; preds = %2151, %2134
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #11
  br label %2169

2169:                                             ; preds = %2168
  br label %2170

2170:                                             ; preds = %2169
  call void @exit(i32 noundef 1) #13
  unreachable

2171:                                             ; No predecessors!
  br label %2172

2172:                                             ; preds = %2171
  br label %2173

2173:                                             ; preds = %2172, %2111
  br label %2174

2174:                                             ; preds = %2173
  br label %2175

2175:                                             ; preds = %2174
  br label %2176

2176:                                             ; preds = %2175
  %2177 = load i32, ptr @test_count, align 4, !tbaa !5
  %2178 = add nsw i32 %2177, 1
  store i32 %2178, ptr @test_count, align 4, !tbaa !5
  %2179 = load ptr, ptr %6, align 8, !tbaa !9
  %2180 = getelementptr inbounds %struct.s2n_connection, ptr %2179, i32 0, i32 41
  %2181 = load ptr, ptr %6, align 8, !tbaa !9
  %2182 = getelementptr inbounds %struct.s2n_connection, ptr %2181, i32 0, i32 40
  %2183 = load ptr, ptr %6, align 8, !tbaa !9
  %2184 = getelementptr inbounds %struct.s2n_connection, ptr %2183, i32 0, i32 41
  %2185 = getelementptr inbounds %struct.s2n_stuffer, ptr %2184, i32 0, i32 2
  %2186 = load i32, ptr %2185, align 4, !tbaa !62
  %2187 = load ptr, ptr %6, align 8, !tbaa !9
  %2188 = getelementptr inbounds %struct.s2n_connection, ptr %2187, i32 0, i32 41
  %2189 = getelementptr inbounds %struct.s2n_stuffer, ptr %2188, i32 0, i32 1
  %2190 = load i32, ptr %2189, align 8, !tbaa !63
  %2191 = sub i32 %2186, %2190
  %2192 = call i32 @s2n_stuffer_copy(ptr noundef %2180, ptr noundef %2182, i32 noundef %2191)
  %2193 = icmp eq i32 %2192, -1
  br i1 %2193, label %2194, label %2247

2194:                                             ; preds = %2176
  br label %2195

2195:                                             ; preds = %2194
  br label %2196

2196:                                             ; preds = %2195
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #11
  %2197 = call ptr @__errno_location() #12
  %2198 = load i32, ptr %2197, align 4, !tbaa !5
  store i32 %2198, ptr %54, align 4, !tbaa !5
  %2199 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2200 = call i32 @s2n_print_stacktrace(ptr noundef %2199)
  %2201 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2202 = trunc i8 %2201 to i1
  br i1 %2202, label %2203, label %2225

2203:                                             ; preds = %2196
  %2204 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2205 = call i32 @fileno(ptr noundef %2204) #11
  %2206 = call i32 @isatty(i32 noundef %2205) #11
  %2207 = icmp ne i32 %2206, 0
  br i1 %2207, label %2208, label %2225

2208:                                             ; preds = %2203
  %2209 = load i32, ptr %54, align 4, !tbaa !5
  %2210 = call ptr @__errno_location() #12
  store i32 %2209, ptr %2210, align 4, !tbaa !5
  %2211 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2212 = load i32, ptr @test_count, align 4, !tbaa !5
  %2213 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2214 = load i32, ptr %2213, align 4, !tbaa !5
  %2215 = call ptr @s2n_strerror(i32 noundef %2214, ptr noundef @.str.3)
  %2216 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2217 = load i32, ptr %2216, align 4, !tbaa !5
  %2218 = call ptr @s2n_strerror_debug(i32 noundef %2217, ptr noundef @.str.3)
  %2219 = call ptr @__errno_location() #12
  %2220 = load i32, ptr %2219, align 4, !tbaa !5
  %2221 = call ptr @strerror(i32 noundef %2220) #11
  %2222 = call ptr @__errno_location() #12
  %2223 = load i32, ptr %2222, align 4, !tbaa !5
  %2224 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2211, ptr noundef @.str, i32 noundef %2212, ptr noundef @.str.35, ptr noundef @.str.2, i32 noundef 99, ptr noundef %2215, ptr noundef %2218, ptr noundef %2221, i32 noundef %2223) #11
  br label %2242

2225:                                             ; preds = %2203, %2196
  %2226 = load i32, ptr %54, align 4, !tbaa !5
  %2227 = call ptr @__errno_location() #12
  store i32 %2226, ptr %2227, align 4, !tbaa !5
  %2228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2229 = load i32, ptr @test_count, align 4, !tbaa !5
  %2230 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2231 = load i32, ptr %2230, align 4, !tbaa !5
  %2232 = call ptr @s2n_strerror(i32 noundef %2231, ptr noundef @.str.3)
  %2233 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2234 = load i32, ptr %2233, align 4, !tbaa !5
  %2235 = call ptr @s2n_strerror_debug(i32 noundef %2234, ptr noundef @.str.3)
  %2236 = call ptr @__errno_location() #12
  %2237 = load i32, ptr %2236, align 4, !tbaa !5
  %2238 = call ptr @strerror(i32 noundef %2237) #11
  %2239 = call ptr @__errno_location() #12
  %2240 = load i32, ptr %2239, align 4, !tbaa !5
  %2241 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2228, ptr noundef @.str.4, i32 noundef %2229, ptr noundef @.str.35, ptr noundef @.str.2, i32 noundef 99, ptr noundef %2232, ptr noundef %2235, ptr noundef %2238, i32 noundef %2240) #11
  br label %2242

2242:                                             ; preds = %2225, %2208
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #11
  br label %2243

2243:                                             ; preds = %2242
  br label %2244

2244:                                             ; preds = %2243
  call void @exit(i32 noundef 1) #13
  unreachable

2245:                                             ; No predecessors!
  br label %2246

2246:                                             ; preds = %2245
  br label %2247

2247:                                             ; preds = %2246, %2176
  br label %2248

2248:                                             ; preds = %2247
  br label %2249

2249:                                             ; preds = %2248
  call void @llvm.lifetime.start.p0(i64 1, ptr %55) #11
  store i8 0, ptr %55, align 1, !tbaa !61
  call void @llvm.lifetime.start.p0(i64 2, ptr %56) #11
  store i16 0, ptr %56, align 2, !tbaa !59
  br label %2250

2250:                                             ; preds = %2249
  %2251 = load i32, ptr @test_count, align 4, !tbaa !5
  %2252 = add nsw i32 %2251, 1
  store i32 %2252, ptr @test_count, align 4, !tbaa !5
  %2253 = load ptr, ptr %6, align 8, !tbaa !9
  %2254 = call i32 @s2n_record_header_parse(ptr noundef %2253, ptr noundef %55, ptr noundef %56)
  %2255 = icmp eq i32 %2254, -1
  br i1 %2255, label %2256, label %2309

2256:                                             ; preds = %2250
  br label %2257

2257:                                             ; preds = %2256
  br label %2258

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

2265:                                             ; preds = %2258
  %2266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2267 = call i32 @fileno(ptr noundef %2266) #11
  %2268 = call i32 @isatty(i32 noundef %2267) #11
  %2269 = icmp ne i32 %2268, 0
  br i1 %2269, label %2270, label %2287

2270:                                             ; preds = %2265
  %2271 = load i32, ptr %57, align 4, !tbaa !5
  %2272 = call ptr @__errno_location() #12
  store i32 %2271, ptr %2272, align 4, !tbaa !5
  %2273 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2274 = load i32, ptr @test_count, align 4, !tbaa !5
  %2275 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2276 = load i32, ptr %2275, align 4, !tbaa !5
  %2277 = call ptr @s2n_strerror(i32 noundef %2276, ptr noundef @.str.3)
  %2278 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2279 = load i32, ptr %2278, align 4, !tbaa !5
  %2280 = call ptr @s2n_strerror_debug(i32 noundef %2279, ptr noundef @.str.3)
  %2281 = call ptr @__errno_location() #12
  %2282 = load i32, ptr %2281, align 4, !tbaa !5
  %2283 = call ptr @strerror(i32 noundef %2282) #11
  %2284 = call ptr @__errno_location() #12
  %2285 = load i32, ptr %2284, align 4, !tbaa !5
  %2286 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2273, ptr noundef @.str, i32 noundef %2274, ptr noundef @.str.36, ptr noundef @.str.2, i32 noundef 104, ptr noundef %2277, ptr noundef %2280, ptr noundef %2283, i32 noundef %2285) #11
  br label %2304

2287:                                             ; preds = %2265, %2258
  %2288 = load i32, ptr %57, align 4, !tbaa !5
  %2289 = call ptr @__errno_location() #12
  store i32 %2288, ptr %2289, align 4, !tbaa !5
  %2290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2291 = load i32, ptr @test_count, align 4, !tbaa !5
  %2292 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2293 = load i32, ptr %2292, align 4, !tbaa !5
  %2294 = call ptr @s2n_strerror(i32 noundef %2293, ptr noundef @.str.3)
  %2295 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2296 = load i32, ptr %2295, align 4, !tbaa !5
  %2297 = call ptr @s2n_strerror_debug(i32 noundef %2296, ptr noundef @.str.3)
  %2298 = call ptr @__errno_location() #12
  %2299 = load i32, ptr %2298, align 4, !tbaa !5
  %2300 = call ptr @strerror(i32 noundef %2299) #11
  %2301 = call ptr @__errno_location() #12
  %2302 = load i32, ptr %2301, align 4, !tbaa !5
  %2303 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2290, ptr noundef @.str.4, i32 noundef %2291, ptr noundef @.str.36, ptr noundef @.str.2, i32 noundef 104, ptr noundef %2294, ptr noundef %2297, ptr noundef %2300, i32 noundef %2302) #11
  br label %2304

2304:                                             ; preds = %2287, %2270
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #11
  br label %2305

2305:                                             ; preds = %2304
  br label %2306

2306:                                             ; preds = %2305
  call void @exit(i32 noundef 1) #13
  unreachable

2307:                                             ; No predecessors!
  br label %2308

2308:                                             ; preds = %2307
  br label %2309

2309:                                             ; preds = %2308, %2250
  br label %2310

2310:                                             ; preds = %2309
  br label %2311

2311:                                             ; preds = %2310
  br label %2312

2312:                                             ; preds = %2311
  %2313 = load i32, ptr @test_count, align 4, !tbaa !5
  %2314 = add nsw i32 %2313, 1
  store i32 %2314, ptr @test_count, align 4, !tbaa !5
  %2315 = load ptr, ptr %6, align 8, !tbaa !9
  %2316 = call i32 @s2n_record_parse(ptr noundef %2315)
  %2317 = icmp eq i32 %2316, -1
  br i1 %2317, label %2318, label %2371

2318:                                             ; preds = %2312
  br label %2319

2319:                                             ; preds = %2318
  br label %2320

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

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

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

2349:                                             ; preds = %2327, %2320
  %2350 = load i32, ptr %58, align 4, !tbaa !5
  %2351 = call ptr @__errno_location() #12
  store i32 %2350, ptr %2351, align 4, !tbaa !5
  %2352 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2353 = load i32, ptr @test_count, align 4, !tbaa !5
  %2354 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2355 = load i32, ptr %2354, align 4, !tbaa !5
  %2356 = call ptr @s2n_strerror(i32 noundef %2355, ptr noundef @.str.3)
  %2357 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2358 = load i32, ptr %2357, align 4, !tbaa !5
  %2359 = call ptr @s2n_strerror_debug(i32 noundef %2358, ptr noundef @.str.3)
  %2360 = call ptr @__errno_location() #12
  %2361 = load i32, ptr %2360, align 4, !tbaa !5
  %2362 = call ptr @strerror(i32 noundef %2361) #11
  %2363 = call ptr @__errno_location() #12
  %2364 = load i32, ptr %2363, align 4, !tbaa !5
  %2365 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2352, ptr noundef @.str.4, i32 noundef %2353, ptr noundef @.str.37, ptr noundef @.str.2, i32 noundef 105, ptr noundef %2356, ptr noundef %2359, ptr noundef %2362, i32 noundef %2364) #11
  br label %2366

2366:                                             ; preds = %2349, %2332
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #11
  br label %2367

2367:                                             ; preds = %2366
  br label %2368

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

2369:                                             ; No predecessors!
  br label %2370

2370:                                             ; preds = %2369
  br label %2371

2371:                                             ; preds = %2370, %2312
  br label %2372

2372:                                             ; preds = %2371
  br label %2373

2373:                                             ; preds = %2372
  br label %2374

2374:                                             ; preds = %2373
  %2375 = load i32, ptr @test_count, align 4, !tbaa !5
  %2376 = add nsw i32 %2375, 1
  store i32 %2376, ptr @test_count, align 4, !tbaa !5
  %2377 = load i8, ptr %55, align 1, !tbaa !61
  %2378 = zext i8 %2377 to i32
  %2379 = icmp eq i32 %2378, 23
  br i1 %2379, label %2433, label %2380

2380:                                             ; preds = %2374
  br label %2381

2381:                                             ; preds = %2380
  br label %2382

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

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

2394:                                             ; preds = %2389
  %2395 = load i32, ptr %59, align 4, !tbaa !5
  %2396 = call ptr @__errno_location() #12
  store i32 %2395, ptr %2396, align 4, !tbaa !5
  %2397 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2398 = load i32, ptr @test_count, align 4, !tbaa !5
  %2399 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2400 = load i32, ptr %2399, align 4, !tbaa !5
  %2401 = call ptr @s2n_strerror(i32 noundef %2400, ptr noundef @.str.3)
  %2402 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2403 = load i32, ptr %2402, align 4, !tbaa !5
  %2404 = call ptr @s2n_strerror_debug(i32 noundef %2403, ptr noundef @.str.3)
  %2405 = call ptr @__errno_location() #12
  %2406 = load i32, ptr %2405, align 4, !tbaa !5
  %2407 = call ptr @strerror(i32 noundef %2406) #11
  %2408 = call ptr @__errno_location() #12
  %2409 = load i32, ptr %2408, align 4, !tbaa !5
  %2410 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2397, ptr noundef @.str, i32 noundef %2398, ptr noundef @.str.38, ptr noundef @.str.2, i32 noundef 106, ptr noundef %2401, ptr noundef %2404, ptr noundef %2407, i32 noundef %2409) #11
  br label %2428

2411:                                             ; preds = %2389, %2382
  %2412 = load i32, ptr %59, align 4, !tbaa !5
  %2413 = call ptr @__errno_location() #12
  store i32 %2412, ptr %2413, align 4, !tbaa !5
  %2414 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2415 = load i32, ptr @test_count, align 4, !tbaa !5
  %2416 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2417 = load i32, ptr %2416, align 4, !tbaa !5
  %2418 = call ptr @s2n_strerror(i32 noundef %2417, ptr noundef @.str.3)
  %2419 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2420 = load i32, ptr %2419, align 4, !tbaa !5
  %2421 = call ptr @s2n_strerror_debug(i32 noundef %2420, ptr noundef @.str.3)
  %2422 = call ptr @__errno_location() #12
  %2423 = load i32, ptr %2422, align 4, !tbaa !5
  %2424 = call ptr @strerror(i32 noundef %2423) #11
  %2425 = call ptr @__errno_location() #12
  %2426 = load i32, ptr %2425, align 4, !tbaa !5
  %2427 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2414, ptr noundef @.str.4, i32 noundef %2415, ptr noundef @.str.38, ptr noundef @.str.2, i32 noundef 106, ptr noundef %2418, ptr noundef %2421, ptr noundef %2424, i32 noundef %2426) #11
  br label %2428

2428:                                             ; preds = %2411, %2394
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #11
  br label %2429

2429:                                             ; preds = %2428
  br label %2430

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

2431:                                             ; No predecessors!
  br label %2432

2432:                                             ; preds = %2431
  br label %2433

2433:                                             ; preds = %2432, %2374
  br label %2434

2434:                                             ; preds = %2433
  br label %2435

2435:                                             ; preds = %2434
  br label %2436

2436:                                             ; preds = %2435
  %2437 = load i32, ptr @test_count, align 4, !tbaa !5
  %2438 = add nsw i32 %2437, 1
  store i32 %2438, ptr @test_count, align 4, !tbaa !5
  %2439 = load i16, ptr %56, align 2, !tbaa !59
  %2440 = zext i16 %2439 to i32
  %2441 = load i16, ptr %44, align 2, !tbaa !59
  %2442 = zext i16 %2441 to i32
  %2443 = icmp eq i32 %2440, %2442
  br i1 %2443, label %2497, label %2444

2444:                                             ; preds = %2436
  br label %2445

2445:                                             ; preds = %2444
  br label %2446

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

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

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

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

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

2493:                                             ; preds = %2492
  br label %2494

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

2495:                                             ; No predecessors!
  br label %2496

2496:                                             ; preds = %2495
  br label %2497

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

2498:                                             ; preds = %2497
  br label %2499

2499:                                             ; preds = %2498
  br label %2500

2500:                                             ; preds = %2499
  %2501 = load i32, ptr @test_count, align 4, !tbaa !5
  %2502 = add nsw i32 %2501, 1
  store i32 %2502, ptr @test_count, align 4, !tbaa !5
  %2503 = load ptr, ptr %6, align 8, !tbaa !9
  %2504 = getelementptr inbounds %struct.s2n_connection, ptr %2503, i32 0, i32 38
  %2505 = call i32 @s2n_stuffer_wipe(ptr noundef %2504)
  %2506 = icmp eq i32 %2505, -1
  br i1 %2506, label %2507, label %2560

2507:                                             ; preds = %2500
  br label %2508

2508:                                             ; preds = %2507
  br label %2509

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

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

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

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

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

2556:                                             ; preds = %2555
  br label %2557

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

2558:                                             ; No predecessors!
  br label %2559

2559:                                             ; preds = %2558
  br label %2560

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

2561:                                             ; preds = %2560
  br label %2562

2562:                                             ; preds = %2561
  br label %2563

2563:                                             ; preds = %2562
  %2564 = load i32, ptr @test_count, align 4, !tbaa !5
  %2565 = add nsw i32 %2564, 1
  store i32 %2565, ptr @test_count, align 4, !tbaa !5
  %2566 = load ptr, ptr %6, align 8, !tbaa !9
  %2567 = getelementptr inbounds %struct.s2n_connection, ptr %2566, i32 0, i32 40
  %2568 = call i32 @s2n_stuffer_wipe(ptr noundef %2567)
  %2569 = icmp eq i32 %2568, -1
  br i1 %2569, label %2570, label %2623

2570:                                             ; preds = %2563
  br label %2571

2571:                                             ; preds = %2570
  br label %2572

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

2579:                                             ; preds = %2572
  %2580 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2581 = call i32 @fileno(ptr noundef %2580) #11
  %2582 = call i32 @isatty(i32 noundef %2581) #11
  %2583 = icmp ne i32 %2582, 0
  br i1 %2583, label %2584, label %2601

2584:                                             ; preds = %2579
  %2585 = load i32, ptr %62, align 4, !tbaa !5
  %2586 = call ptr @__errno_location() #12
  store i32 %2585, ptr %2586, align 4, !tbaa !5
  %2587 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2588 = load i32, ptr @test_count, align 4, !tbaa !5
  %2589 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2590 = load i32, ptr %2589, align 4, !tbaa !5
  %2591 = call ptr @s2n_strerror(i32 noundef %2590, ptr noundef @.str.3)
  %2592 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2593 = load i32, ptr %2592, align 4, !tbaa !5
  %2594 = call ptr @s2n_strerror_debug(i32 noundef %2593, ptr noundef @.str.3)
  %2595 = call ptr @__errno_location() #12
  %2596 = load i32, ptr %2595, align 4, !tbaa !5
  %2597 = call ptr @strerror(i32 noundef %2596) #11
  %2598 = call ptr @__errno_location() #12
  %2599 = load i32, ptr %2598, align 4, !tbaa !5
  %2600 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2587, ptr noundef @.str, i32 noundef %2588, ptr noundef @.str.32, ptr noundef @.str.2, i32 noundef 110, ptr noundef %2591, ptr noundef %2594, ptr noundef %2597, i32 noundef %2599) #11
  br label %2618

2601:                                             ; preds = %2579, %2572
  %2602 = load i32, ptr %62, align 4, !tbaa !5
  %2603 = call ptr @__errno_location() #12
  store i32 %2602, ptr %2603, align 4, !tbaa !5
  %2604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2605 = load i32, ptr @test_count, align 4, !tbaa !5
  %2606 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2607 = load i32, ptr %2606, align 4, !tbaa !5
  %2608 = call ptr @s2n_strerror(i32 noundef %2607, ptr noundef @.str.3)
  %2609 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2610 = load i32, ptr %2609, align 4, !tbaa !5
  %2611 = call ptr @s2n_strerror_debug(i32 noundef %2610, ptr noundef @.str.3)
  %2612 = call ptr @__errno_location() #12
  %2613 = load i32, ptr %2612, align 4, !tbaa !5
  %2614 = call ptr @strerror(i32 noundef %2613) #11
  %2615 = call ptr @__errno_location() #12
  %2616 = load i32, ptr %2615, align 4, !tbaa !5
  %2617 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2604, ptr noundef @.str.4, i32 noundef %2605, ptr noundef @.str.32, ptr noundef @.str.2, i32 noundef 110, ptr noundef %2608, ptr noundef %2611, ptr noundef %2614, i32 noundef %2616) #11
  br label %2618

2618:                                             ; preds = %2601, %2584
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #11
  br label %2619

2619:                                             ; preds = %2618
  br label %2620

2620:                                             ; preds = %2619
  call void @exit(i32 noundef 1) #13
  unreachable

2621:                                             ; No predecessors!
  br label %2622

2622:                                             ; preds = %2621
  br label %2623

2623:                                             ; preds = %2622, %2563
  br label %2624

2624:                                             ; preds = %2623
  br label %2625

2625:                                             ; preds = %2624
  call void @llvm.lifetime.end.p0(i64 2, ptr %56) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %55) #11
  call void @llvm.lifetime.end.p0(i64 2, ptr %44) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %35) #11
  br label %2626

2626:                                             ; preds = %2625
  %2627 = load i64, ptr %34, align 8, !tbaa !58
  %2628 = add i64 %2627, 1
  store i64 %2628, ptr %34, align 8, !tbaa !58
  br label %1143, !llvm.loop !64

2629:                                             ; preds = %1146
  br label %2630

2630:                                             ; preds = %2629
  %2631 = load i32, ptr @test_count, align 4, !tbaa !5
  %2632 = add nsw i32 %2631, 1
  store i32 %2632, ptr @test_count, align 4, !tbaa !5
  %2633 = load ptr, ptr %6, align 8, !tbaa !9
  %2634 = getelementptr inbounds %struct.s2n_connection, ptr %2633, i32 0, i32 27
  %2635 = load ptr, ptr %2634, align 8, !tbaa !15
  %2636 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %2635, i32 0, i32 0
  %2637 = load ptr, ptr %2636, align 8, !tbaa !44
  %2638 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %2637, i32 0, i32 6
  %2639 = load ptr, ptr %2638, align 8, !tbaa !49
  %2640 = getelementptr inbounds %struct.s2n_record_algorithm, ptr %2639, i32 0, i32 0
  %2641 = load ptr, ptr %2640, align 8, !tbaa !51
  %2642 = getelementptr inbounds %struct.s2n_cipher, ptr %2641, i32 0, i32 7
  %2643 = load ptr, ptr %2642, align 8, !tbaa !66
  %2644 = load ptr, ptr %6, align 8, !tbaa !9
  %2645 = getelementptr inbounds %struct.s2n_connection, ptr %2644, i32 0, i32 27
  %2646 = load ptr, ptr %2645, align 8, !tbaa !15
  %2647 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %2646, i32 0, i32 2
  %2648 = call i32 %2643(ptr noundef %2647)
  %2649 = getelementptr inbounds %struct.s2n_result, ptr %63, i32 0, i32 0
  store i32 %2648, ptr %2649, align 4
  %2650 = getelementptr inbounds %struct.s2n_result, ptr %63, i32 0, i32 0
  %2651 = load i32, ptr %2650, align 4
  %2652 = call zeroext i1 @s2n_result_is_ok(i32 %2651)
  br i1 %2652, label %2706, label %2653

2653:                                             ; preds = %2630
  br label %2654

2654:                                             ; preds = %2653
  br label %2655

2655:                                             ; preds = %2654
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #11
  %2656 = call ptr @__errno_location() #12
  %2657 = load i32, ptr %2656, align 4, !tbaa !5
  store i32 %2657, ptr %64, align 4, !tbaa !5
  %2658 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2659 = call i32 @s2n_print_stacktrace(ptr noundef %2658)
  %2660 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2661 = trunc i8 %2660 to i1
  br i1 %2661, label %2662, label %2684

2662:                                             ; preds = %2655
  %2663 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2664 = call i32 @fileno(ptr noundef %2663) #11
  %2665 = call i32 @isatty(i32 noundef %2664) #11
  %2666 = icmp ne i32 %2665, 0
  br i1 %2666, label %2667, label %2684

2667:                                             ; preds = %2662
  %2668 = load i32, ptr %64, align 4, !tbaa !5
  %2669 = call ptr @__errno_location() #12
  store i32 %2668, ptr %2669, align 4, !tbaa !5
  %2670 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2671 = load i32, ptr @test_count, align 4, !tbaa !5
  %2672 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2673 = load i32, ptr %2672, align 4, !tbaa !5
  %2674 = call ptr @s2n_strerror(i32 noundef %2673, ptr noundef @.str.3)
  %2675 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2676 = load i32, ptr %2675, align 4, !tbaa !5
  %2677 = call ptr @s2n_strerror_debug(i32 noundef %2676, ptr noundef @.str.3)
  %2678 = call ptr @__errno_location() #12
  %2679 = load i32, ptr %2678, align 4, !tbaa !5
  %2680 = call ptr @strerror(i32 noundef %2679) #11
  %2681 = call ptr @__errno_location() #12
  %2682 = load i32, ptr %2681, align 4, !tbaa !5
  %2683 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2670, ptr noundef @.str, i32 noundef %2671, ptr noundef @.str.40, ptr noundef @.str.2, i32 noundef 113, ptr noundef %2674, ptr noundef %2677, ptr noundef %2680, i32 noundef %2682) #11
  br label %2701

2684:                                             ; preds = %2662, %2655
  %2685 = load i32, ptr %64, align 4, !tbaa !5
  %2686 = call ptr @__errno_location() #12
  store i32 %2685, ptr %2686, align 4, !tbaa !5
  %2687 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2688 = load i32, ptr @test_count, align 4, !tbaa !5
  %2689 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2690 = load i32, ptr %2689, align 4, !tbaa !5
  %2691 = call ptr @s2n_strerror(i32 noundef %2690, ptr noundef @.str.3)
  %2692 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2693 = load i32, ptr %2692, align 4, !tbaa !5
  %2694 = call ptr @s2n_strerror_debug(i32 noundef %2693, ptr noundef @.str.3)
  %2695 = call ptr @__errno_location() #12
  %2696 = load i32, ptr %2695, align 4, !tbaa !5
  %2697 = call ptr @strerror(i32 noundef %2696) #11
  %2698 = call ptr @__errno_location() #12
  %2699 = load i32, ptr %2698, align 4, !tbaa !5
  %2700 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2687, ptr noundef @.str.4, i32 noundef %2688, ptr noundef @.str.40, ptr noundef @.str.2, i32 noundef 113, ptr noundef %2691, ptr noundef %2694, ptr noundef %2697, i32 noundef %2699) #11
  br label %2701

2701:                                             ; preds = %2684, %2667
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #11
  br label %2702

2702:                                             ; preds = %2701
  br label %2703

2703:                                             ; preds = %2702
  call void @exit(i32 noundef 1) #13
  unreachable

2704:                                             ; No predecessors!
  br label %2705

2705:                                             ; preds = %2704
  br label %2706

2706:                                             ; preds = %2705, %2630
  br label %2707

2707:                                             ; preds = %2706
  br label %2708

2708:                                             ; preds = %2707
  br label %2709

2709:                                             ; preds = %2708
  %2710 = load i32, ptr @test_count, align 4, !tbaa !5
  %2711 = add nsw i32 %2710, 1
  store i32 %2711, ptr @test_count, align 4, !tbaa !5
  %2712 = load ptr, ptr %6, align 8, !tbaa !9
  %2713 = getelementptr inbounds %struct.s2n_connection, ptr %2712, i32 0, i32 27
  %2714 = load ptr, ptr %2713, align 8, !tbaa !15
  %2715 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %2714, i32 0, i32 0
  %2716 = load ptr, ptr %2715, align 8, !tbaa !44
  %2717 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %2716, i32 0, i32 6
  %2718 = load ptr, ptr %2717, align 8, !tbaa !49
  %2719 = getelementptr inbounds %struct.s2n_record_algorithm, ptr %2718, i32 0, i32 0
  %2720 = load ptr, ptr %2719, align 8, !tbaa !51
  %2721 = getelementptr inbounds %struct.s2n_cipher, ptr %2720, i32 0, i32 7
  %2722 = load ptr, ptr %2721, align 8, !tbaa !66
  %2723 = load ptr, ptr %6, align 8, !tbaa !9
  %2724 = getelementptr inbounds %struct.s2n_connection, ptr %2723, i32 0, i32 27
  %2725 = load ptr, ptr %2724, align 8, !tbaa !15
  %2726 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %2725, i32 0, i32 1
  %2727 = call i32 %2722(ptr noundef %2726)
  %2728 = getelementptr inbounds %struct.s2n_result, ptr %65, i32 0, i32 0
  store i32 %2727, ptr %2728, align 4
  %2729 = getelementptr inbounds %struct.s2n_result, ptr %65, i32 0, i32 0
  %2730 = load i32, ptr %2729, align 4
  %2731 = call zeroext i1 @s2n_result_is_ok(i32 %2730)
  br i1 %2731, label %2785, label %2732

2732:                                             ; preds = %2709
  br label %2733

2733:                                             ; preds = %2732
  br label %2734

2734:                                             ; preds = %2733
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #11
  %2735 = call ptr @__errno_location() #12
  %2736 = load i32, ptr %2735, align 4, !tbaa !5
  store i32 %2736, ptr %66, align 4, !tbaa !5
  %2737 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2738 = call i32 @s2n_print_stacktrace(ptr noundef %2737)
  %2739 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2740 = trunc i8 %2739 to i1
  br i1 %2740, label %2741, label %2763

2741:                                             ; preds = %2734
  %2742 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2743 = call i32 @fileno(ptr noundef %2742) #11
  %2744 = call i32 @isatty(i32 noundef %2743) #11
  %2745 = icmp ne i32 %2744, 0
  br i1 %2745, label %2746, label %2763

2746:                                             ; preds = %2741
  %2747 = load i32, ptr %66, align 4, !tbaa !5
  %2748 = call ptr @__errno_location() #12
  store i32 %2747, ptr %2748, align 4, !tbaa !5
  %2749 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2750 = load i32, ptr @test_count, align 4, !tbaa !5
  %2751 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2752 = load i32, ptr %2751, align 4, !tbaa !5
  %2753 = call ptr @s2n_strerror(i32 noundef %2752, ptr noundef @.str.3)
  %2754 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2755 = load i32, ptr %2754, align 4, !tbaa !5
  %2756 = call ptr @s2n_strerror_debug(i32 noundef %2755, ptr noundef @.str.3)
  %2757 = call ptr @__errno_location() #12
  %2758 = load i32, ptr %2757, align 4, !tbaa !5
  %2759 = call ptr @strerror(i32 noundef %2758) #11
  %2760 = call ptr @__errno_location() #12
  %2761 = load i32, ptr %2760, align 4, !tbaa !5
  %2762 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2749, ptr noundef @.str, i32 noundef %2750, ptr noundef @.str.41, ptr noundef @.str.2, i32 noundef 114, ptr noundef %2753, ptr noundef %2756, ptr noundef %2759, i32 noundef %2761) #11
  br label %2780

2763:                                             ; preds = %2741, %2734
  %2764 = load i32, ptr %66, align 4, !tbaa !5
  %2765 = call ptr @__errno_location() #12
  store i32 %2764, ptr %2765, align 4, !tbaa !5
  %2766 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2767 = load i32, ptr @test_count, align 4, !tbaa !5
  %2768 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2769 = load i32, ptr %2768, align 4, !tbaa !5
  %2770 = call ptr @s2n_strerror(i32 noundef %2769, ptr noundef @.str.3)
  %2771 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2772 = load i32, ptr %2771, align 4, !tbaa !5
  %2773 = call ptr @s2n_strerror_debug(i32 noundef %2772, ptr noundef @.str.3)
  %2774 = call ptr @__errno_location() #12
  %2775 = load i32, ptr %2774, align 4, !tbaa !5
  %2776 = call ptr @strerror(i32 noundef %2775) #11
  %2777 = call ptr @__errno_location() #12
  %2778 = load i32, ptr %2777, align 4, !tbaa !5
  %2779 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2766, ptr noundef @.str.4, i32 noundef %2767, ptr noundef @.str.41, ptr noundef @.str.2, i32 noundef 114, ptr noundef %2770, ptr noundef %2773, ptr noundef %2776, i32 noundef %2778) #11
  br label %2780

2780:                                             ; preds = %2763, %2746
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #11
  br label %2781

2781:                                             ; preds = %2780
  br label %2782

2782:                                             ; preds = %2781
  call void @exit(i32 noundef 1) #13
  unreachable

2783:                                             ; No predecessors!
  br label %2784

2784:                                             ; preds = %2783
  br label %2785

2785:                                             ; preds = %2784, %2709
  br label %2786

2786:                                             ; preds = %2785
  br label %2787

2787:                                             ; preds = %2786
  br label %2788

2788:                                             ; preds = %2787
  %2789 = load i32, ptr @test_count, align 4, !tbaa !5
  %2790 = add nsw i32 %2789, 1
  store i32 %2790, ptr @test_count, align 4, !tbaa !5
  %2791 = load ptr, ptr %6, align 8, !tbaa !9
  %2792 = call i32 @s2n_connection_free(ptr noundef %2791)
  %2793 = icmp eq i32 %2792, -1
  br i1 %2793, label %2794, label %2847

2794:                                             ; preds = %2788
  br label %2795

2795:                                             ; preds = %2794
  br label %2796

2796:                                             ; preds = %2795
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #11
  %2797 = call ptr @__errno_location() #12
  %2798 = load i32, ptr %2797, align 4, !tbaa !5
  store i32 %2798, ptr %67, align 4, !tbaa !5
  %2799 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2800 = call i32 @s2n_print_stacktrace(ptr noundef %2799)
  %2801 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2802 = trunc i8 %2801 to i1
  br i1 %2802, label %2803, label %2825

2803:                                             ; preds = %2796
  %2804 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2805 = call i32 @fileno(ptr noundef %2804) #11
  %2806 = call i32 @isatty(i32 noundef %2805) #11
  %2807 = icmp ne i32 %2806, 0
  br i1 %2807, label %2808, label %2825

2808:                                             ; preds = %2803
  %2809 = load i32, ptr %67, align 4, !tbaa !5
  %2810 = call ptr @__errno_location() #12
  store i32 %2809, ptr %2810, align 4, !tbaa !5
  %2811 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2812 = load i32, ptr @test_count, align 4, !tbaa !5
  %2813 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2814 = load i32, ptr %2813, align 4, !tbaa !5
  %2815 = call ptr @s2n_strerror(i32 noundef %2814, ptr noundef @.str.3)
  %2816 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2817 = load i32, ptr %2816, align 4, !tbaa !5
  %2818 = call ptr @s2n_strerror_debug(i32 noundef %2817, ptr noundef @.str.3)
  %2819 = call ptr @__errno_location() #12
  %2820 = load i32, ptr %2819, align 4, !tbaa !5
  %2821 = call ptr @strerror(i32 noundef %2820) #11
  %2822 = call ptr @__errno_location() #12
  %2823 = load i32, ptr %2822, align 4, !tbaa !5
  %2824 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2811, ptr noundef @.str, i32 noundef %2812, ptr noundef @.str.42, ptr noundef @.str.2, i32 noundef 115, ptr noundef %2815, ptr noundef %2818, ptr noundef %2821, i32 noundef %2823) #11
  br label %2842

2825:                                             ; preds = %2803, %2796
  %2826 = load i32, ptr %67, align 4, !tbaa !5
  %2827 = call ptr @__errno_location() #12
  store i32 %2826, ptr %2827, align 4, !tbaa !5
  %2828 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2829 = load i32, ptr @test_count, align 4, !tbaa !5
  %2830 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2831 = load i32, ptr %2830, align 4, !tbaa !5
  %2832 = call ptr @s2n_strerror(i32 noundef %2831, ptr noundef @.str.3)
  %2833 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2834 = load i32, ptr %2833, align 4, !tbaa !5
  %2835 = call ptr @s2n_strerror_debug(i32 noundef %2834, ptr noundef @.str.3)
  %2836 = call ptr @__errno_location() #12
  %2837 = load i32, ptr %2836, align 4, !tbaa !5
  %2838 = call ptr @strerror(i32 noundef %2837) #11
  %2839 = call ptr @__errno_location() #12
  %2840 = load i32, ptr %2839, align 4, !tbaa !5
  %2841 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2828, ptr noundef @.str.4, i32 noundef %2829, ptr noundef @.str.42, ptr noundef @.str.2, i32 noundef 115, ptr noundef %2832, ptr noundef %2835, ptr noundef %2838, i32 noundef %2840) #11
  br label %2842

2842:                                             ; preds = %2825, %2808
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #11
  br label %2843

2843:                                             ; preds = %2842
  br label %2844

2844:                                             ; preds = %2843
  call void @exit(i32 noundef 1) #13
  unreachable

2845:                                             ; No predecessors!
  br label %2846

2846:                                             ; preds = %2845
  br label %2847

2847:                                             ; preds = %2846, %2788
  br label %2848

2848:                                             ; preds = %2847
  br label %2849

2849:                                             ; preds = %2848
  br label %2850

2850:                                             ; preds = %2849
  %2851 = load i32, ptr @test_count, align 4, !tbaa !5
  %2852 = add nsw i32 %2851, 1
  store i32 %2852, ptr @test_count, align 4, !tbaa !5
  %2853 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %2853, ptr %6, align 8, !tbaa !9
  %2854 = icmp eq ptr %2853, null
  br i1 %2854, label %2855, label %2908

2855:                                             ; preds = %2850
  br label %2856

2856:                                             ; preds = %2855
  br label %2857

2857:                                             ; preds = %2856
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #11
  %2858 = call ptr @__errno_location() #12
  %2859 = load i32, ptr %2858, align 4, !tbaa !5
  store i32 %2859, ptr %68, align 4, !tbaa !5
  %2860 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2861 = call i32 @s2n_print_stacktrace(ptr noundef %2860)
  %2862 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2863 = trunc i8 %2862 to i1
  br i1 %2863, label %2864, label %2886

2864:                                             ; preds = %2857
  %2865 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2866 = call i32 @fileno(ptr noundef %2865) #11
  %2867 = call i32 @isatty(i32 noundef %2866) #11
  %2868 = icmp ne i32 %2867, 0
  br i1 %2868, label %2869, label %2886

2869:                                             ; preds = %2864
  %2870 = load i32, ptr %68, align 4, !tbaa !5
  %2871 = call ptr @__errno_location() #12
  store i32 %2870, ptr %2871, align 4, !tbaa !5
  %2872 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2873 = load i32, ptr @test_count, align 4, !tbaa !5
  %2874 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2875 = load i32, ptr %2874, align 4, !tbaa !5
  %2876 = call ptr @s2n_strerror(i32 noundef %2875, ptr noundef @.str.3)
  %2877 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2878 = load i32, ptr %2877, align 4, !tbaa !5
  %2879 = call ptr @s2n_strerror_debug(i32 noundef %2878, ptr noundef @.str.3)
  %2880 = call ptr @__errno_location() #12
  %2881 = load i32, ptr %2880, align 4, !tbaa !5
  %2882 = call ptr @strerror(i32 noundef %2881) #11
  %2883 = call ptr @__errno_location() #12
  %2884 = load i32, ptr %2883, align 4, !tbaa !5
  %2885 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2872, ptr noundef @.str, i32 noundef %2873, ptr noundef @.str.12, ptr noundef @.str.2, i32 noundef 118, ptr noundef %2876, ptr noundef %2879, ptr noundef %2882, i32 noundef %2884) #11
  br label %2903

2886:                                             ; preds = %2864, %2857
  %2887 = load i32, ptr %68, align 4, !tbaa !5
  %2888 = call ptr @__errno_location() #12
  store i32 %2887, ptr %2888, align 4, !tbaa !5
  %2889 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2890 = load i32, ptr @test_count, align 4, !tbaa !5
  %2891 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2892 = load i32, ptr %2891, align 4, !tbaa !5
  %2893 = call ptr @s2n_strerror(i32 noundef %2892, ptr noundef @.str.3)
  %2894 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2895 = load i32, ptr %2894, align 4, !tbaa !5
  %2896 = call ptr @s2n_strerror_debug(i32 noundef %2895, ptr noundef @.str.3)
  %2897 = call ptr @__errno_location() #12
  %2898 = load i32, ptr %2897, align 4, !tbaa !5
  %2899 = call ptr @strerror(i32 noundef %2898) #11
  %2900 = call ptr @__errno_location() #12
  %2901 = load i32, ptr %2900, align 4, !tbaa !5
  %2902 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2889, ptr noundef @.str.4, i32 noundef %2890, ptr noundef @.str.12, ptr noundef @.str.2, i32 noundef 118, ptr noundef %2893, ptr noundef %2896, ptr noundef %2899, i32 noundef %2901) #11
  br label %2903

2903:                                             ; preds = %2886, %2869
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #11
  br label %2904

2904:                                             ; preds = %2903
  br label %2905

2905:                                             ; preds = %2904
  call void @exit(i32 noundef 1) #13
  unreachable

2906:                                             ; No predecessors!
  br label %2907

2907:                                             ; preds = %2906
  br label %2908

2908:                                             ; preds = %2907, %2850
  br label %2909

2909:                                             ; preds = %2908
  br label %2910

2910:                                             ; preds = %2909
  %2911 = load ptr, ptr %6, align 8, !tbaa !9
  %2912 = getelementptr inbounds %struct.s2n_connection, ptr %2911, i32 0, i32 27
  %2913 = load ptr, ptr %2912, align 8, !tbaa !15
  %2914 = load ptr, ptr %6, align 8, !tbaa !9
  %2915 = getelementptr inbounds %struct.s2n_connection, ptr %2914, i32 0, i32 30
  store ptr %2913, ptr %2915, align 8, !tbaa !42
  %2916 = load ptr, ptr %6, align 8, !tbaa !9
  %2917 = getelementptr inbounds %struct.s2n_connection, ptr %2916, i32 0, i32 27
  %2918 = load ptr, ptr %2917, align 8, !tbaa !15
  %2919 = load ptr, ptr %6, align 8, !tbaa !9
  %2920 = getelementptr inbounds %struct.s2n_connection, ptr %2919, i32 0, i32 29
  store ptr %2918, ptr %2920, align 8, !tbaa !43
  %2921 = load ptr, ptr %6, align 8, !tbaa !9
  %2922 = getelementptr inbounds %struct.s2n_connection, ptr %2921, i32 0, i32 27
  %2923 = load ptr, ptr %2922, align 8, !tbaa !15
  %2924 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %2923, i32 0, i32 0
  %2925 = load ptr, ptr %2924, align 8, !tbaa !44
  %2926 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %2925, i32 0, i32 6
  store ptr @s2n_record_alg_aes256_sha, ptr %2926, align 8, !tbaa !49
  br label %2927

2927:                                             ; preds = %2910
  %2928 = load i32, ptr @test_count, align 4, !tbaa !5
  %2929 = add nsw i32 %2928, 1
  store i32 %2929, ptr @test_count, align 4, !tbaa !5
  %2930 = load ptr, ptr %6, align 8, !tbaa !9
  %2931 = getelementptr inbounds %struct.s2n_connection, ptr %2930, i32 0, i32 27
  %2932 = load ptr, ptr %2931, align 8, !tbaa !15
  %2933 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %2932, i32 0, i32 0
  %2934 = load ptr, ptr %2933, align 8, !tbaa !44
  %2935 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %2934, i32 0, i32 6
  %2936 = load ptr, ptr %2935, align 8, !tbaa !49
  %2937 = getelementptr inbounds %struct.s2n_record_algorithm, ptr %2936, i32 0, i32 0
  %2938 = load ptr, ptr %2937, align 8, !tbaa !51
  %2939 = getelementptr inbounds %struct.s2n_cipher, ptr %2938, i32 0, i32 4
  %2940 = load ptr, ptr %2939, align 8, !tbaa !53
  %2941 = load ptr, ptr %6, align 8, !tbaa !9
  %2942 = getelementptr inbounds %struct.s2n_connection, ptr %2941, i32 0, i32 27
  %2943 = load ptr, ptr %2942, align 8, !tbaa !15
  %2944 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %2943, i32 0, i32 2
  %2945 = call i32 %2940(ptr noundef %2944)
  %2946 = getelementptr inbounds %struct.s2n_result, ptr %69, i32 0, i32 0
  store i32 %2945, ptr %2946, align 4
  %2947 = getelementptr inbounds %struct.s2n_result, ptr %69, i32 0, i32 0
  %2948 = load i32, ptr %2947, align 4
  %2949 = call zeroext i1 @s2n_result_is_ok(i32 %2948)
  br i1 %2949, label %3003, label %2950

2950:                                             ; preds = %2927
  br label %2951

2951:                                             ; preds = %2950
  br label %2952

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

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

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

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

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

2999:                                             ; preds = %2998
  br label %3000

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

3001:                                             ; No predecessors!
  br label %3002

3002:                                             ; preds = %3001
  br label %3003

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

3004:                                             ; preds = %3003
  br label %3005

3005:                                             ; preds = %3004
  br label %3006

3006:                                             ; preds = %3005
  %3007 = load i32, ptr @test_count, align 4, !tbaa !5
  %3008 = add nsw i32 %3007, 1
  store i32 %3008, ptr @test_count, align 4, !tbaa !5
  %3009 = load ptr, ptr %6, align 8, !tbaa !9
  %3010 = getelementptr inbounds %struct.s2n_connection, ptr %3009, i32 0, i32 27
  %3011 = load ptr, ptr %3010, align 8, !tbaa !15
  %3012 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %3011, i32 0, i32 0
  %3013 = load ptr, ptr %3012, align 8, !tbaa !44
  %3014 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %3013, i32 0, i32 6
  %3015 = load ptr, ptr %3014, align 8, !tbaa !49
  %3016 = getelementptr inbounds %struct.s2n_record_algorithm, ptr %3015, i32 0, i32 0
  %3017 = load ptr, ptr %3016, align 8, !tbaa !51
  %3018 = getelementptr inbounds %struct.s2n_cipher, ptr %3017, i32 0, i32 4
  %3019 = load ptr, ptr %3018, align 8, !tbaa !53
  %3020 = load ptr, ptr %6, align 8, !tbaa !9
  %3021 = getelementptr inbounds %struct.s2n_connection, ptr %3020, i32 0, i32 27
  %3022 = load ptr, ptr %3021, align 8, !tbaa !15
  %3023 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %3022, i32 0, i32 1
  %3024 = call i32 %3019(ptr noundef %3023)
  %3025 = getelementptr inbounds %struct.s2n_result, ptr %71, i32 0, i32 0
  store i32 %3024, ptr %3025, align 4
  %3026 = getelementptr inbounds %struct.s2n_result, ptr %71, i32 0, i32 0
  %3027 = load i32, ptr %3026, align 4
  %3028 = call zeroext i1 @s2n_result_is_ok(i32 %3027)
  br i1 %3028, label %3082, label %3029

3029:                                             ; preds = %3006
  br label %3030

3030:                                             ; preds = %3029
  br label %3031

3031:                                             ; preds = %3030
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #11
  %3032 = call ptr @__errno_location() #12
  %3033 = load i32, ptr %3032, align 4, !tbaa !5
  store i32 %3033, ptr %72, align 4, !tbaa !5
  %3034 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3035 = call i32 @s2n_print_stacktrace(ptr noundef %3034)
  %3036 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3037 = trunc i8 %3036 to i1
  br i1 %3037, label %3038, label %3060

3038:                                             ; preds = %3031
  %3039 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3040 = call i32 @fileno(ptr noundef %3039) #11
  %3041 = call i32 @isatty(i32 noundef %3040) #11
  %3042 = icmp ne i32 %3041, 0
  br i1 %3042, label %3043, label %3060

3043:                                             ; preds = %3038
  %3044 = load i32, ptr %72, align 4, !tbaa !5
  %3045 = call ptr @__errno_location() #12
  store i32 %3044, ptr %3045, align 4, !tbaa !5
  %3046 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3047 = load i32, ptr @test_count, align 4, !tbaa !5
  %3048 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3049 = load i32, ptr %3048, align 4, !tbaa !5
  %3050 = call ptr @s2n_strerror(i32 noundef %3049, ptr noundef @.str.3)
  %3051 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3052 = load i32, ptr %3051, align 4, !tbaa !5
  %3053 = call ptr @s2n_strerror_debug(i32 noundef %3052, ptr noundef @.str.3)
  %3054 = call ptr @__errno_location() #12
  %3055 = load i32, ptr %3054, align 4, !tbaa !5
  %3056 = call ptr @strerror(i32 noundef %3055) #11
  %3057 = call ptr @__errno_location() #12
  %3058 = load i32, ptr %3057, align 4, !tbaa !5
  %3059 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3046, ptr noundef @.str, i32 noundef %3047, ptr noundef @.str.15, ptr noundef @.str.2, i32 noundef 123, ptr noundef %3050, ptr noundef %3053, ptr noundef %3056, i32 noundef %3058) #11
  br label %3077

3060:                                             ; preds = %3038, %3031
  %3061 = load i32, ptr %72, align 4, !tbaa !5
  %3062 = call ptr @__errno_location() #12
  store i32 %3061, ptr %3062, align 4, !tbaa !5
  %3063 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3064 = load i32, ptr @test_count, align 4, !tbaa !5
  %3065 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3066 = load i32, ptr %3065, align 4, !tbaa !5
  %3067 = call ptr @s2n_strerror(i32 noundef %3066, ptr noundef @.str.3)
  %3068 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3069 = load i32, ptr %3068, align 4, !tbaa !5
  %3070 = call ptr @s2n_strerror_debug(i32 noundef %3069, ptr noundef @.str.3)
  %3071 = call ptr @__errno_location() #12
  %3072 = load i32, ptr %3071, align 4, !tbaa !5
  %3073 = call ptr @strerror(i32 noundef %3072) #11
  %3074 = call ptr @__errno_location() #12
  %3075 = load i32, ptr %3074, align 4, !tbaa !5
  %3076 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3063, ptr noundef @.str.4, i32 noundef %3064, ptr noundef @.str.15, ptr noundef @.str.2, i32 noundef 123, ptr noundef %3067, ptr noundef %3070, ptr noundef %3073, i32 noundef %3075) #11
  br label %3077

3077:                                             ; preds = %3060, %3043
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #11
  br label %3078

3078:                                             ; preds = %3077
  br label %3079

3079:                                             ; preds = %3078
  call void @exit(i32 noundef 1) #13
  unreachable

3080:                                             ; No predecessors!
  br label %3081

3081:                                             ; preds = %3080
  br label %3082

3082:                                             ; preds = %3081, %3006
  br label %3083

3083:                                             ; preds = %3082
  br label %3084

3084:                                             ; preds = %3083
  br label %3085

3085:                                             ; preds = %3084
  %3086 = load i32, ptr @test_count, align 4, !tbaa !5
  %3087 = add nsw i32 %3086, 1
  store i32 %3087, ptr @test_count, align 4, !tbaa !5
  %3088 = load ptr, ptr %6, align 8, !tbaa !9
  %3089 = getelementptr inbounds %struct.s2n_connection, ptr %3088, i32 0, i32 27
  %3090 = load ptr, ptr %3089, align 8, !tbaa !15
  %3091 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %3090, i32 0, i32 0
  %3092 = load ptr, ptr %3091, align 8, !tbaa !44
  %3093 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %3092, i32 0, i32 6
  %3094 = load ptr, ptr %3093, align 8, !tbaa !49
  %3095 = getelementptr inbounds %struct.s2n_record_algorithm, ptr %3094, i32 0, i32 0
  %3096 = load ptr, ptr %3095, align 8, !tbaa !51
  %3097 = getelementptr inbounds %struct.s2n_cipher, ptr %3096, i32 0, i32 6
  %3098 = load ptr, ptr %3097, align 8, !tbaa !55
  %3099 = load ptr, ptr %6, align 8, !tbaa !9
  %3100 = getelementptr inbounds %struct.s2n_connection, ptr %3099, i32 0, i32 27
  %3101 = load ptr, ptr %3100, align 8, !tbaa !15
  %3102 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %3101, i32 0, i32 2
  %3103 = call i32 %3098(ptr noundef %3102, ptr noundef %12)
  %3104 = getelementptr inbounds %struct.s2n_result, ptr %73, i32 0, i32 0
  store i32 %3103, ptr %3104, align 4
  %3105 = getelementptr inbounds %struct.s2n_result, ptr %73, i32 0, i32 0
  %3106 = load i32, ptr %3105, align 4
  %3107 = call zeroext i1 @s2n_result_is_ok(i32 %3106)
  br i1 %3107, label %3161, label %3108

3108:                                             ; preds = %3085
  br label %3109

3109:                                             ; preds = %3108
  br label %3110

3110:                                             ; preds = %3109
  call void @llvm.lifetime.start.p0(i64 4, ptr %74) #11
  %3111 = call ptr @__errno_location() #12
  %3112 = load i32, ptr %3111, align 4, !tbaa !5
  store i32 %3112, ptr %74, align 4, !tbaa !5
  %3113 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3114 = call i32 @s2n_print_stacktrace(ptr noundef %3113)
  %3115 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3116 = trunc i8 %3115 to i1
  br i1 %3116, label %3117, label %3139

3117:                                             ; preds = %3110
  %3118 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3119 = call i32 @fileno(ptr noundef %3118) #11
  %3120 = call i32 @isatty(i32 noundef %3119) #11
  %3121 = icmp ne i32 %3120, 0
  br i1 %3121, label %3122, label %3139

3122:                                             ; preds = %3117
  %3123 = load i32, ptr %74, align 4, !tbaa !5
  %3124 = call ptr @__errno_location() #12
  store i32 %3123, ptr %3124, align 4, !tbaa !5
  %3125 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3126 = load i32, ptr @test_count, align 4, !tbaa !5
  %3127 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3128 = load i32, ptr %3127, align 4, !tbaa !5
  %3129 = call ptr @s2n_strerror(i32 noundef %3128, ptr noundef @.str.3)
  %3130 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3131 = load i32, ptr %3130, align 4, !tbaa !5
  %3132 = call ptr @s2n_strerror_debug(i32 noundef %3131, ptr noundef @.str.3)
  %3133 = call ptr @__errno_location() #12
  %3134 = load i32, ptr %3133, align 4, !tbaa !5
  %3135 = call ptr @strerror(i32 noundef %3134) #11
  %3136 = call ptr @__errno_location() #12
  %3137 = load i32, ptr %3136, align 4, !tbaa !5
  %3138 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3125, ptr noundef @.str, i32 noundef %3126, ptr noundef @.str.43, ptr noundef @.str.2, i32 noundef 124, ptr noundef %3129, ptr noundef %3132, ptr noundef %3135, i32 noundef %3137) #11
  br label %3156

3139:                                             ; preds = %3117, %3110
  %3140 = load i32, ptr %74, align 4, !tbaa !5
  %3141 = call ptr @__errno_location() #12
  store i32 %3140, ptr %3141, align 4, !tbaa !5
  %3142 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3143 = load i32, ptr @test_count, align 4, !tbaa !5
  %3144 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3145 = load i32, ptr %3144, align 4, !tbaa !5
  %3146 = call ptr @s2n_strerror(i32 noundef %3145, ptr noundef @.str.3)
  %3147 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3148 = load i32, ptr %3147, align 4, !tbaa !5
  %3149 = call ptr @s2n_strerror_debug(i32 noundef %3148, ptr noundef @.str.3)
  %3150 = call ptr @__errno_location() #12
  %3151 = load i32, ptr %3150, align 4, !tbaa !5
  %3152 = call ptr @strerror(i32 noundef %3151) #11
  %3153 = call ptr @__errno_location() #12
  %3154 = load i32, ptr %3153, align 4, !tbaa !5
  %3155 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3142, ptr noundef @.str.4, i32 noundef %3143, ptr noundef @.str.43, ptr noundef @.str.2, i32 noundef 124, ptr noundef %3146, ptr noundef %3149, ptr noundef %3152, i32 noundef %3154) #11
  br label %3156

3156:                                             ; preds = %3139, %3122
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #11
  br label %3157

3157:                                             ; preds = %3156
  br label %3158

3158:                                             ; preds = %3157
  call void @exit(i32 noundef 1) #13
  unreachable

3159:                                             ; No predecessors!
  br label %3160

3160:                                             ; preds = %3159
  br label %3161

3161:                                             ; preds = %3160, %3085
  br label %3162

3162:                                             ; preds = %3161
  br label %3163

3163:                                             ; preds = %3162
  br label %3164

3164:                                             ; preds = %3163
  %3165 = load i32, ptr @test_count, align 4, !tbaa !5
  %3166 = add nsw i32 %3165, 1
  store i32 %3166, ptr @test_count, align 4, !tbaa !5
  %3167 = load ptr, ptr %6, align 8, !tbaa !9
  %3168 = getelementptr inbounds %struct.s2n_connection, ptr %3167, i32 0, i32 27
  %3169 = load ptr, ptr %3168, align 8, !tbaa !15
  %3170 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %3169, i32 0, i32 0
  %3171 = load ptr, ptr %3170, align 8, !tbaa !44
  %3172 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %3171, i32 0, i32 6
  %3173 = load ptr, ptr %3172, align 8, !tbaa !49
  %3174 = getelementptr inbounds %struct.s2n_record_algorithm, ptr %3173, i32 0, i32 0
  %3175 = load ptr, ptr %3174, align 8, !tbaa !51
  %3176 = getelementptr inbounds %struct.s2n_cipher, ptr %3175, i32 0, i32 5
  %3177 = load ptr, ptr %3176, align 8, !tbaa !56
  %3178 = load ptr, ptr %6, align 8, !tbaa !9
  %3179 = getelementptr inbounds %struct.s2n_connection, ptr %3178, i32 0, i32 27
  %3180 = load ptr, ptr %3179, align 8, !tbaa !15
  %3181 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %3180, i32 0, i32 1
  %3182 = call i32 %3177(ptr noundef %3181, ptr noundef %12)
  %3183 = getelementptr inbounds %struct.s2n_result, ptr %75, i32 0, i32 0
  store i32 %3182, ptr %3183, align 4
  %3184 = getelementptr inbounds %struct.s2n_result, ptr %75, i32 0, i32 0
  %3185 = load i32, ptr %3184, align 4
  %3186 = call zeroext i1 @s2n_result_is_ok(i32 %3185)
  br i1 %3186, label %3240, label %3187

3187:                                             ; preds = %3164
  br label %3188

3188:                                             ; preds = %3187
  br label %3189

3189:                                             ; preds = %3188
  call void @llvm.lifetime.start.p0(i64 4, ptr %76) #11
  %3190 = call ptr @__errno_location() #12
  %3191 = load i32, ptr %3190, align 4, !tbaa !5
  store i32 %3191, ptr %76, align 4, !tbaa !5
  %3192 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3193 = call i32 @s2n_print_stacktrace(ptr noundef %3192)
  %3194 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3195 = trunc i8 %3194 to i1
  br i1 %3195, label %3196, label %3218

3196:                                             ; preds = %3189
  %3197 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3198 = call i32 @fileno(ptr noundef %3197) #11
  %3199 = call i32 @isatty(i32 noundef %3198) #11
  %3200 = icmp ne i32 %3199, 0
  br i1 %3200, label %3201, label %3218

3201:                                             ; preds = %3196
  %3202 = load i32, ptr %76, align 4, !tbaa !5
  %3203 = call ptr @__errno_location() #12
  store i32 %3202, ptr %3203, align 4, !tbaa !5
  %3204 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3205 = load i32, ptr @test_count, align 4, !tbaa !5
  %3206 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3207 = load i32, ptr %3206, align 4, !tbaa !5
  %3208 = call ptr @s2n_strerror(i32 noundef %3207, ptr noundef @.str.3)
  %3209 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3210 = load i32, ptr %3209, align 4, !tbaa !5
  %3211 = call ptr @s2n_strerror_debug(i32 noundef %3210, ptr noundef @.str.3)
  %3212 = call ptr @__errno_location() #12
  %3213 = load i32, ptr %3212, align 4, !tbaa !5
  %3214 = call ptr @strerror(i32 noundef %3213) #11
  %3215 = call ptr @__errno_location() #12
  %3216 = load i32, ptr %3215, align 4, !tbaa !5
  %3217 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3204, ptr noundef @.str, i32 noundef %3205, ptr noundef @.str.44, ptr noundef @.str.2, i32 noundef 125, ptr noundef %3208, ptr noundef %3211, ptr noundef %3214, i32 noundef %3216) #11
  br label %3235

3218:                                             ; preds = %3196, %3189
  %3219 = load i32, ptr %76, align 4, !tbaa !5
  %3220 = call ptr @__errno_location() #12
  store i32 %3219, ptr %3220, align 4, !tbaa !5
  %3221 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3222 = load i32, ptr @test_count, align 4, !tbaa !5
  %3223 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3224 = load i32, ptr %3223, align 4, !tbaa !5
  %3225 = call ptr @s2n_strerror(i32 noundef %3224, ptr noundef @.str.3)
  %3226 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3227 = load i32, ptr %3226, align 4, !tbaa !5
  %3228 = call ptr @s2n_strerror_debug(i32 noundef %3227, ptr noundef @.str.3)
  %3229 = call ptr @__errno_location() #12
  %3230 = load i32, ptr %3229, align 4, !tbaa !5
  %3231 = call ptr @strerror(i32 noundef %3230) #11
  %3232 = call ptr @__errno_location() #12
  %3233 = load i32, ptr %3232, align 4, !tbaa !5
  %3234 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3221, ptr noundef @.str.4, i32 noundef %3222, ptr noundef @.str.44, ptr noundef @.str.2, i32 noundef 125, ptr noundef %3225, ptr noundef %3228, ptr noundef %3231, i32 noundef %3233) #11
  br label %3235

3235:                                             ; preds = %3218, %3201
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #11
  br label %3236

3236:                                             ; preds = %3235
  br label %3237

3237:                                             ; preds = %3236
  call void @exit(i32 noundef 1) #13
  unreachable

3238:                                             ; No predecessors!
  br label %3239

3239:                                             ; preds = %3238
  br label %3240

3240:                                             ; preds = %3239, %3164
  br label %3241

3241:                                             ; preds = %3240
  br label %3242

3242:                                             ; preds = %3241
  br label %3243

3243:                                             ; preds = %3242
  %3244 = load i32, ptr @test_count, align 4, !tbaa !5
  %3245 = add nsw i32 %3244, 1
  store i32 %3245, ptr @test_count, align 4, !tbaa !5
  %3246 = load ptr, ptr %6, align 8, !tbaa !9
  %3247 = getelementptr inbounds %struct.s2n_connection, ptr %3246, i32 0, i32 27
  %3248 = load ptr, ptr %3247, align 8, !tbaa !15
  %3249 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %3248, i32 0, i32 3
  %3250 = getelementptr inbounds [15 x i8], ptr %7, i64 0, i64 0
  %3251 = call i32 @s2n_hmac_init(ptr noundef %3249, i32 noundef 2, ptr noundef %3250, i32 noundef 15)
  %3252 = icmp eq i32 %3251, -1
  br i1 %3252, label %3253, label %3306

3253:                                             ; preds = %3243
  br label %3254

3254:                                             ; preds = %3253
  br label %3255

3255:                                             ; preds = %3254
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #11
  %3256 = call ptr @__errno_location() #12
  %3257 = load i32, ptr %3256, align 4, !tbaa !5
  store i32 %3257, ptr %77, align 4, !tbaa !5
  %3258 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3259 = call i32 @s2n_print_stacktrace(ptr noundef %3258)
  %3260 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3261 = trunc i8 %3260 to i1
  br i1 %3261, label %3262, label %3284

3262:                                             ; preds = %3255
  %3263 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3264 = call i32 @fileno(ptr noundef %3263) #11
  %3265 = call i32 @isatty(i32 noundef %3264) #11
  %3266 = icmp ne i32 %3265, 0
  br i1 %3266, label %3267, label %3284

3267:                                             ; preds = %3262
  %3268 = load i32, ptr %77, align 4, !tbaa !5
  %3269 = call ptr @__errno_location() #12
  store i32 %3268, ptr %3269, align 4, !tbaa !5
  %3270 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3271 = load i32, ptr @test_count, align 4, !tbaa !5
  %3272 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3273 = load i32, ptr %3272, align 4, !tbaa !5
  %3274 = call ptr @s2n_strerror(i32 noundef %3273, ptr noundef @.str.3)
  %3275 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3276 = load i32, ptr %3275, align 4, !tbaa !5
  %3277 = call ptr @s2n_strerror_debug(i32 noundef %3276, ptr noundef @.str.3)
  %3278 = call ptr @__errno_location() #12
  %3279 = load i32, ptr %3278, align 4, !tbaa !5
  %3280 = call ptr @strerror(i32 noundef %3279) #11
  %3281 = call ptr @__errno_location() #12
  %3282 = load i32, ptr %3281, align 4, !tbaa !5
  %3283 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3270, ptr noundef @.str, i32 noundef %3271, ptr noundef @.str.18, ptr noundef @.str.2, i32 noundef 126, ptr noundef %3274, ptr noundef %3277, ptr noundef %3280, i32 noundef %3282) #11
  br label %3301

3284:                                             ; preds = %3262, %3255
  %3285 = load i32, ptr %77, align 4, !tbaa !5
  %3286 = call ptr @__errno_location() #12
  store i32 %3285, ptr %3286, align 4, !tbaa !5
  %3287 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3288 = load i32, ptr @test_count, align 4, !tbaa !5
  %3289 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3290 = load i32, ptr %3289, align 4, !tbaa !5
  %3291 = call ptr @s2n_strerror(i32 noundef %3290, ptr noundef @.str.3)
  %3292 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3293 = load i32, ptr %3292, align 4, !tbaa !5
  %3294 = call ptr @s2n_strerror_debug(i32 noundef %3293, ptr noundef @.str.3)
  %3295 = call ptr @__errno_location() #12
  %3296 = load i32, ptr %3295, align 4, !tbaa !5
  %3297 = call ptr @strerror(i32 noundef %3296) #11
  %3298 = call ptr @__errno_location() #12
  %3299 = load i32, ptr %3298, align 4, !tbaa !5
  %3300 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3287, ptr noundef @.str.4, i32 noundef %3288, ptr noundef @.str.18, ptr noundef @.str.2, i32 noundef 126, ptr noundef %3291, ptr noundef %3294, ptr noundef %3297, i32 noundef %3299) #11
  br label %3301

3301:                                             ; preds = %3284, %3267
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #11
  br label %3302

3302:                                             ; preds = %3301
  br label %3303

3303:                                             ; preds = %3302
  call void @exit(i32 noundef 1) #13
  unreachable

3304:                                             ; No predecessors!
  br label %3305

3305:                                             ; preds = %3304
  br label %3306

3306:                                             ; preds = %3305, %3243
  br label %3307

3307:                                             ; preds = %3306
  br label %3308

3308:                                             ; preds = %3307
  br label %3309

3309:                                             ; preds = %3308
  %3310 = load i32, ptr @test_count, align 4, !tbaa !5
  %3311 = add nsw i32 %3310, 1
  store i32 %3311, ptr @test_count, align 4, !tbaa !5
  %3312 = load ptr, ptr %6, align 8, !tbaa !9
  %3313 = getelementptr inbounds %struct.s2n_connection, ptr %3312, i32 0, i32 27
  %3314 = load ptr, ptr %3313, align 8, !tbaa !15
  %3315 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %3314, i32 0, i32 4
  %3316 = getelementptr inbounds [15 x i8], ptr %7, i64 0, i64 0
  %3317 = call i32 @s2n_hmac_init(ptr noundef %3315, i32 noundef 2, ptr noundef %3316, i32 noundef 15)
  %3318 = icmp eq i32 %3317, -1
  br i1 %3318, label %3319, label %3372

3319:                                             ; preds = %3309
  br label %3320

3320:                                             ; preds = %3319
  br label %3321

3321:                                             ; preds = %3320
  call void @llvm.lifetime.start.p0(i64 4, ptr %78) #11
  %3322 = call ptr @__errno_location() #12
  %3323 = load i32, ptr %3322, align 4, !tbaa !5
  store i32 %3323, ptr %78, align 4, !tbaa !5
  %3324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3325 = call i32 @s2n_print_stacktrace(ptr noundef %3324)
  %3326 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3327 = trunc i8 %3326 to i1
  br i1 %3327, label %3328, label %3350

3328:                                             ; preds = %3321
  %3329 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3330 = call i32 @fileno(ptr noundef %3329) #11
  %3331 = call i32 @isatty(i32 noundef %3330) #11
  %3332 = icmp ne i32 %3331, 0
  br i1 %3332, label %3333, label %3350

3333:                                             ; preds = %3328
  %3334 = load i32, ptr %78, align 4, !tbaa !5
  %3335 = call ptr @__errno_location() #12
  store i32 %3334, ptr %3335, align 4, !tbaa !5
  %3336 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3337 = load i32, ptr @test_count, align 4, !tbaa !5
  %3338 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3339 = load i32, ptr %3338, align 4, !tbaa !5
  %3340 = call ptr @s2n_strerror(i32 noundef %3339, ptr noundef @.str.3)
  %3341 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3342 = load i32, ptr %3341, align 4, !tbaa !5
  %3343 = call ptr @s2n_strerror_debug(i32 noundef %3342, ptr noundef @.str.3)
  %3344 = call ptr @__errno_location() #12
  %3345 = load i32, ptr %3344, align 4, !tbaa !5
  %3346 = call ptr @strerror(i32 noundef %3345) #11
  %3347 = call ptr @__errno_location() #12
  %3348 = load i32, ptr %3347, align 4, !tbaa !5
  %3349 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3336, ptr noundef @.str, i32 noundef %3337, ptr noundef @.str.19, ptr noundef @.str.2, i32 noundef 127, ptr noundef %3340, ptr noundef %3343, ptr noundef %3346, i32 noundef %3348) #11
  br label %3367

3350:                                             ; preds = %3328, %3321
  %3351 = load i32, ptr %78, align 4, !tbaa !5
  %3352 = call ptr @__errno_location() #12
  store i32 %3351, ptr %3352, align 4, !tbaa !5
  %3353 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3354 = load i32, ptr @test_count, align 4, !tbaa !5
  %3355 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3356 = load i32, ptr %3355, align 4, !tbaa !5
  %3357 = call ptr @s2n_strerror(i32 noundef %3356, ptr noundef @.str.3)
  %3358 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3359 = load i32, ptr %3358, align 4, !tbaa !5
  %3360 = call ptr @s2n_strerror_debug(i32 noundef %3359, ptr noundef @.str.3)
  %3361 = call ptr @__errno_location() #12
  %3362 = load i32, ptr %3361, align 4, !tbaa !5
  %3363 = call ptr @strerror(i32 noundef %3362) #11
  %3364 = call ptr @__errno_location() #12
  %3365 = load i32, ptr %3364, align 4, !tbaa !5
  %3366 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3353, ptr noundef @.str.4, i32 noundef %3354, ptr noundef @.str.19, ptr noundef @.str.2, i32 noundef 127, ptr noundef %3357, ptr noundef %3360, ptr noundef %3363, i32 noundef %3365) #11
  br label %3367

3367:                                             ; preds = %3350, %3333
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #11
  br label %3368

3368:                                             ; preds = %3367
  br label %3369

3369:                                             ; preds = %3368
  call void @exit(i32 noundef 1) #13
  unreachable

3370:                                             ; No predecessors!
  br label %3371

3371:                                             ; preds = %3370
  br label %3372

3372:                                             ; preds = %3371, %3309
  br label %3373

3373:                                             ; preds = %3372
  br label %3374

3374:                                             ; preds = %3373
  %3375 = load ptr, ptr %6, align 8, !tbaa !9
  %3376 = getelementptr inbounds %struct.s2n_connection, ptr %3375, i32 0, i32 23
  store i8 32, ptr %3376, align 4, !tbaa !57
  call void @llvm.lifetime.start.p0(i64 8, ptr %79) #11
  store i64 0, ptr %79, align 8, !tbaa !58
  br label %3377

3377:                                             ; preds = %4860, %3374
  %3378 = load i64, ptr %79, align 8, !tbaa !58
  %3379 = icmp ule i64 %3378, 8088
  br i1 %3379, label %3381, label %3380

3380:                                             ; preds = %3377
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #11
  br label %4863

3381:                                             ; preds = %3377
  call void @llvm.lifetime.start.p0(i64 24, ptr %80) #11
  call void @llvm.memset.p0.i64(ptr align 8 %80, i8 0, i64 24, i1 false)
  br label %3382

3382:                                             ; preds = %3381
  %3383 = load i32, ptr @test_count, align 4, !tbaa !5
  %3384 = add nsw i32 %3383, 1
  store i32 %3384, ptr @test_count, align 4, !tbaa !5
  %3385 = getelementptr inbounds [8088 x i8], ptr %14, i64 0, i64 0
  %3386 = load i64, ptr %79, align 8, !tbaa !58
  %3387 = trunc i64 %3386 to i32
  %3388 = call i32 @s2n_blob_init(ptr noundef %80, ptr noundef %3385, i32 noundef %3387)
  %3389 = icmp eq i32 %3388, -1
  br i1 %3389, label %3390, label %3443

3390:                                             ; preds = %3382
  br label %3391

3391:                                             ; preds = %3390
  br label %3392

3392:                                             ; preds = %3391
  call void @llvm.lifetime.start.p0(i64 4, ptr %81) #11
  %3393 = call ptr @__errno_location() #12
  %3394 = load i32, ptr %3393, align 4, !tbaa !5
  store i32 %3394, ptr %81, align 4, !tbaa !5
  %3395 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3396 = call i32 @s2n_print_stacktrace(ptr noundef %3395)
  %3397 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3398 = trunc i8 %3397 to i1
  br i1 %3398, label %3399, label %3421

3399:                                             ; preds = %3392
  %3400 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3401 = call i32 @fileno(ptr noundef %3400) #11
  %3402 = call i32 @isatty(i32 noundef %3401) #11
  %3403 = icmp ne i32 %3402, 0
  br i1 %3403, label %3404, label %3421

3404:                                             ; preds = %3399
  %3405 = load i32, ptr %81, align 4, !tbaa !5
  %3406 = call ptr @__errno_location() #12
  store i32 %3405, ptr %3406, align 4, !tbaa !5
  %3407 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3408 = load i32, ptr @test_count, align 4, !tbaa !5
  %3409 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3410 = load i32, ptr %3409, align 4, !tbaa !5
  %3411 = call ptr @s2n_strerror(i32 noundef %3410, ptr noundef @.str.3)
  %3412 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3413 = load i32, ptr %3412, align 4, !tbaa !5
  %3414 = call ptr @s2n_strerror_debug(i32 noundef %3413, ptr noundef @.str.3)
  %3415 = call ptr @__errno_location() #12
  %3416 = load i32, ptr %3415, align 4, !tbaa !5
  %3417 = call ptr @strerror(i32 noundef %3416) #11
  %3418 = call ptr @__errno_location() #12
  %3419 = load i32, ptr %3418, align 4, !tbaa !5
  %3420 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3407, ptr noundef @.str, i32 noundef %3408, ptr noundef @.str.20, ptr noundef @.str.2, i32 noundef 132, ptr noundef %3411, ptr noundef %3414, ptr noundef %3417, i32 noundef %3419) #11
  br label %3438

3421:                                             ; preds = %3399, %3392
  %3422 = load i32, ptr %81, align 4, !tbaa !5
  %3423 = call ptr @__errno_location() #12
  store i32 %3422, ptr %3423, align 4, !tbaa !5
  %3424 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3425 = load i32, ptr @test_count, align 4, !tbaa !5
  %3426 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3427 = load i32, ptr %3426, align 4, !tbaa !5
  %3428 = call ptr @s2n_strerror(i32 noundef %3427, ptr noundef @.str.3)
  %3429 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3430 = load i32, ptr %3429, align 4, !tbaa !5
  %3431 = call ptr @s2n_strerror_debug(i32 noundef %3430, ptr noundef @.str.3)
  %3432 = call ptr @__errno_location() #12
  %3433 = load i32, ptr %3432, align 4, !tbaa !5
  %3434 = call ptr @strerror(i32 noundef %3433) #11
  %3435 = call ptr @__errno_location() #12
  %3436 = load i32, ptr %3435, align 4, !tbaa !5
  %3437 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3424, ptr noundef @.str.4, i32 noundef %3425, ptr noundef @.str.20, ptr noundef @.str.2, i32 noundef 132, ptr noundef %3428, ptr noundef %3431, ptr noundef %3434, i32 noundef %3436) #11
  br label %3438

3438:                                             ; preds = %3421, %3404
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #11
  br label %3439

3439:                                             ; preds = %3438
  br label %3440

3440:                                             ; preds = %3439
  call void @exit(i32 noundef 1) #13
  unreachable

3441:                                             ; No predecessors!
  br label %3442

3442:                                             ; preds = %3441
  br label %3443

3443:                                             ; preds = %3442, %3382
  br label %3444

3444:                                             ; preds = %3443
  br label %3445

3445:                                             ; preds = %3444
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #11
  store i32 0, ptr %82, align 4, !tbaa !5
  br label %3446

3446:                                             ; preds = %3445
  %3447 = load i32, ptr @test_count, align 4, !tbaa !5
  %3448 = add nsw i32 %3447, 1
  store i32 %3448, ptr @test_count, align 4, !tbaa !5
  %3449 = load ptr, ptr %6, align 8, !tbaa !9
  %3450 = getelementptr inbounds %struct.s2n_connection, ptr %3449, i32 0, i32 41
  %3451 = call i32 @s2n_stuffer_wipe(ptr noundef %3450)
  %3452 = icmp eq i32 %3451, -1
  br i1 %3452, label %3453, label %3506

3453:                                             ; preds = %3446
  br label %3454

3454:                                             ; preds = %3453
  br label %3455

3455:                                             ; preds = %3454
  call void @llvm.lifetime.start.p0(i64 4, ptr %83) #11
  %3456 = call ptr @__errno_location() #12
  %3457 = load i32, ptr %3456, align 4, !tbaa !5
  store i32 %3457, ptr %83, align 4, !tbaa !5
  %3458 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3459 = call i32 @s2n_print_stacktrace(ptr noundef %3458)
  %3460 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3461 = trunc i8 %3460 to i1
  br i1 %3461, label %3462, label %3484

3462:                                             ; preds = %3455
  %3463 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3464 = call i32 @fileno(ptr noundef %3463) #11
  %3465 = call i32 @isatty(i32 noundef %3464) #11
  %3466 = icmp ne i32 %3465, 0
  br i1 %3466, label %3467, label %3484

3467:                                             ; preds = %3462
  %3468 = load i32, ptr %83, align 4, !tbaa !5
  %3469 = call ptr @__errno_location() #12
  store i32 %3468, ptr %3469, align 4, !tbaa !5
  %3470 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3471 = load i32, ptr @test_count, align 4, !tbaa !5
  %3472 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3473 = load i32, ptr %3472, align 4, !tbaa !5
  %3474 = call ptr @s2n_strerror(i32 noundef %3473, ptr noundef @.str.3)
  %3475 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3476 = load i32, ptr %3475, align 4, !tbaa !5
  %3477 = call ptr @s2n_strerror_debug(i32 noundef %3476, ptr noundef @.str.3)
  %3478 = call ptr @__errno_location() #12
  %3479 = load i32, ptr %3478, align 4, !tbaa !5
  %3480 = call ptr @strerror(i32 noundef %3479) #11
  %3481 = call ptr @__errno_location() #12
  %3482 = load i32, ptr %3481, align 4, !tbaa !5
  %3483 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3470, ptr noundef @.str, i32 noundef %3471, ptr noundef @.str.21, ptr noundef @.str.2, i32 noundef 135, ptr noundef %3474, ptr noundef %3477, ptr noundef %3480, i32 noundef %3482) #11
  br label %3501

3484:                                             ; preds = %3462, %3455
  %3485 = load i32, ptr %83, align 4, !tbaa !5
  %3486 = call ptr @__errno_location() #12
  store i32 %3485, ptr %3486, align 4, !tbaa !5
  %3487 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3488 = load i32, ptr @test_count, align 4, !tbaa !5
  %3489 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3490 = load i32, ptr %3489, align 4, !tbaa !5
  %3491 = call ptr @s2n_strerror(i32 noundef %3490, ptr noundef @.str.3)
  %3492 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3493 = load i32, ptr %3492, align 4, !tbaa !5
  %3494 = call ptr @s2n_strerror_debug(i32 noundef %3493, ptr noundef @.str.3)
  %3495 = call ptr @__errno_location() #12
  %3496 = load i32, ptr %3495, align 4, !tbaa !5
  %3497 = call ptr @strerror(i32 noundef %3496) #11
  %3498 = call ptr @__errno_location() #12
  %3499 = load i32, ptr %3498, align 4, !tbaa !5
  %3500 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3487, ptr noundef @.str.4, i32 noundef %3488, ptr noundef @.str.21, ptr noundef @.str.2, i32 noundef 135, ptr noundef %3491, ptr noundef %3494, ptr noundef %3497, i32 noundef %3499) #11
  br label %3501

3501:                                             ; preds = %3484, %3467
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #11
  br label %3502

3502:                                             ; preds = %3501
  br label %3503

3503:                                             ; preds = %3502
  call void @exit(i32 noundef 1) #13
  unreachable

3504:                                             ; No predecessors!
  br label %3505

3505:                                             ; preds = %3504
  br label %3506

3506:                                             ; preds = %3505, %3446
  br label %3507

3507:                                             ; preds = %3506
  br label %3508

3508:                                             ; preds = %3507
  call void @llvm.lifetime.start.p0(i64 4, ptr %84) #11
  %3509 = load ptr, ptr %6, align 8, !tbaa !9
  %3510 = call i32 @s2n_record_write(ptr noundef %3509, i8 noundef zeroext 23, ptr noundef %80)
  %3511 = getelementptr inbounds %struct.s2n_result, ptr %84, i32 0, i32 0
  store i32 %3510, ptr %3511, align 4
  %3512 = load i64, ptr %79, align 8, !tbaa !58
  %3513 = icmp ule i64 %3512, 8087
  br i1 %3513, label %3514, label %3579

3514:                                             ; preds = %3508
  br label %3515

3515:                                             ; preds = %3514
  %3516 = load i32, ptr @test_count, align 4, !tbaa !5
  %3517 = add nsw i32 %3516, 1
  store i32 %3517, ptr @test_count, align 4, !tbaa !5
  %3518 = getelementptr inbounds %struct.s2n_result, ptr %84, i32 0, i32 0
  %3519 = load i32, ptr %3518, align 4
  %3520 = call zeroext i1 @s2n_result_is_ok(i32 %3519)
  br i1 %3520, label %3574, label %3521

3521:                                             ; preds = %3515
  br label %3522

3522:                                             ; preds = %3521
  br label %3523

3523:                                             ; preds = %3522
  call void @llvm.lifetime.start.p0(i64 4, ptr %85) #11
  %3524 = call ptr @__errno_location() #12
  %3525 = load i32, ptr %3524, align 4, !tbaa !5
  store i32 %3525, ptr %85, align 4, !tbaa !5
  %3526 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3527 = call i32 @s2n_print_stacktrace(ptr noundef %3526)
  %3528 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3529 = trunc i8 %3528 to i1
  br i1 %3529, label %3530, label %3552

3530:                                             ; preds = %3523
  %3531 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3532 = call i32 @fileno(ptr noundef %3531) #11
  %3533 = call i32 @isatty(i32 noundef %3532) #11
  %3534 = icmp ne i32 %3533, 0
  br i1 %3534, label %3535, label %3552

3535:                                             ; preds = %3530
  %3536 = load i32, ptr %85, align 4, !tbaa !5
  %3537 = call ptr @__errno_location() #12
  store i32 %3536, ptr %3537, align 4, !tbaa !5
  %3538 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3539 = load i32, ptr @test_count, align 4, !tbaa !5
  %3540 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3541 = load i32, ptr %3540, align 4, !tbaa !5
  %3542 = call ptr @s2n_strerror(i32 noundef %3541, ptr noundef @.str.3)
  %3543 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3544 = load i32, ptr %3543, align 4, !tbaa !5
  %3545 = call ptr @s2n_strerror_debug(i32 noundef %3544, ptr noundef @.str.3)
  %3546 = call ptr @__errno_location() #12
  %3547 = load i32, ptr %3546, align 4, !tbaa !5
  %3548 = call ptr @strerror(i32 noundef %3547) #11
  %3549 = call ptr @__errno_location() #12
  %3550 = load i32, ptr %3549, align 4, !tbaa !5
  %3551 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3538, ptr noundef @.str, i32 noundef %3539, ptr noundef @.str.22, ptr noundef @.str.2, i32 noundef 139, ptr noundef %3542, ptr noundef %3545, ptr noundef %3548, i32 noundef %3550) #11
  br label %3569

3552:                                             ; preds = %3530, %3523
  %3553 = load i32, ptr %85, align 4, !tbaa !5
  %3554 = call ptr @__errno_location() #12
  store i32 %3553, ptr %3554, align 4, !tbaa !5
  %3555 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3556 = load i32, ptr @test_count, align 4, !tbaa !5
  %3557 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3558 = load i32, ptr %3557, align 4, !tbaa !5
  %3559 = call ptr @s2n_strerror(i32 noundef %3558, ptr noundef @.str.3)
  %3560 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3561 = load i32, ptr %3560, align 4, !tbaa !5
  %3562 = call ptr @s2n_strerror_debug(i32 noundef %3561, ptr noundef @.str.3)
  %3563 = call ptr @__errno_location() #12
  %3564 = load i32, ptr %3563, align 4, !tbaa !5
  %3565 = call ptr @strerror(i32 noundef %3564) #11
  %3566 = call ptr @__errno_location() #12
  %3567 = load i32, ptr %3566, align 4, !tbaa !5
  %3568 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3555, ptr noundef @.str.4, i32 noundef %3556, ptr noundef @.str.22, ptr noundef @.str.2, i32 noundef 139, ptr noundef %3559, ptr noundef %3562, ptr noundef %3565, i32 noundef %3567) #11
  br label %3569

3569:                                             ; preds = %3552, %3535
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #11
  br label %3570

3570:                                             ; preds = %3569
  br label %3571

3571:                                             ; preds = %3570
  call void @exit(i32 noundef 1) #13
  unreachable

3572:                                             ; No predecessors!
  br label %3573

3573:                                             ; preds = %3572
  br label %3574

3574:                                             ; preds = %3573, %3515
  br label %3575

3575:                                             ; preds = %3574
  br label %3576

3576:                                             ; preds = %3575
  %3577 = load i64, ptr %79, align 8, !tbaa !58
  %3578 = trunc i64 %3577 to i32
  store i32 %3578, ptr %82, align 4, !tbaa !5
  br label %3778

3579:                                             ; preds = %3508
  br label %3580

3580:                                             ; preds = %3579
  br label %3581

3581:                                             ; preds = %3580
  br label %3582

3582:                                             ; preds = %3581
  %3583 = load i32, ptr @test_count, align 4, !tbaa !5
  %3584 = add nsw i32 %3583, 1
  store i32 %3584, ptr @test_count, align 4, !tbaa !5
  %3585 = getelementptr inbounds %struct.s2n_result, ptr %84, i32 0, i32 0
  %3586 = load i32, ptr %3585, align 4
  %3587 = call zeroext i1 @s2n_result_is_error(i32 %3586)
  br i1 %3587, label %3641, label %3588

3588:                                             ; preds = %3582
  br label %3589

3589:                                             ; preds = %3588
  br label %3590

3590:                                             ; preds = %3589
  call void @llvm.lifetime.start.p0(i64 4, ptr %86) #11
  %3591 = call ptr @__errno_location() #12
  %3592 = load i32, ptr %3591, align 4, !tbaa !5
  store i32 %3592, ptr %86, align 4, !tbaa !5
  %3593 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3594 = call i32 @s2n_print_stacktrace(ptr noundef %3593)
  %3595 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3596 = trunc i8 %3595 to i1
  br i1 %3596, label %3597, label %3619

3597:                                             ; preds = %3590
  %3598 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3599 = call i32 @fileno(ptr noundef %3598) #11
  %3600 = call i32 @isatty(i32 noundef %3599) #11
  %3601 = icmp ne i32 %3600, 0
  br i1 %3601, label %3602, label %3619

3602:                                             ; preds = %3597
  %3603 = load i32, ptr %86, align 4, !tbaa !5
  %3604 = call ptr @__errno_location() #12
  store i32 %3603, ptr %3604, align 4, !tbaa !5
  %3605 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3606 = load i32, ptr @test_count, align 4, !tbaa !5
  %3607 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3608 = load i32, ptr %3607, align 4, !tbaa !5
  %3609 = call ptr @s2n_strerror(i32 noundef %3608, ptr noundef @.str.3)
  %3610 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3611 = load i32, ptr %3610, align 4, !tbaa !5
  %3612 = call ptr @s2n_strerror_debug(i32 noundef %3611, ptr noundef @.str.3)
  %3613 = call ptr @__errno_location() #12
  %3614 = load i32, ptr %3613, align 4, !tbaa !5
  %3615 = call ptr @strerror(i32 noundef %3614) #11
  %3616 = call ptr @__errno_location() #12
  %3617 = load i32, ptr %3616, align 4, !tbaa !5
  %3618 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3605, ptr noundef @.str, i32 noundef %3606, ptr noundef @.str.23, ptr noundef @.str.2, i32 noundef 142, ptr noundef %3609, ptr noundef %3612, ptr noundef %3615, i32 noundef %3617) #11
  br label %3636

3619:                                             ; preds = %3597, %3590
  %3620 = load i32, ptr %86, align 4, !tbaa !5
  %3621 = call ptr @__errno_location() #12
  store i32 %3620, ptr %3621, align 4, !tbaa !5
  %3622 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3623 = load i32, ptr @test_count, align 4, !tbaa !5
  %3624 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3625 = load i32, ptr %3624, align 4, !tbaa !5
  %3626 = call ptr @s2n_strerror(i32 noundef %3625, ptr noundef @.str.3)
  %3627 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3628 = load i32, ptr %3627, align 4, !tbaa !5
  %3629 = call ptr @s2n_strerror_debug(i32 noundef %3628, ptr noundef @.str.3)
  %3630 = call ptr @__errno_location() #12
  %3631 = load i32, ptr %3630, align 4, !tbaa !5
  %3632 = call ptr @strerror(i32 noundef %3631) #11
  %3633 = call ptr @__errno_location() #12
  %3634 = load i32, ptr %3633, align 4, !tbaa !5
  %3635 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3622, ptr noundef @.str.4, i32 noundef %3623, ptr noundef @.str.23, ptr noundef @.str.2, i32 noundef 142, ptr noundef %3626, ptr noundef %3629, ptr noundef %3632, i32 noundef %3634) #11
  br label %3636

3636:                                             ; preds = %3619, %3602
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #11
  br label %3637

3637:                                             ; preds = %3636
  br label %3638

3638:                                             ; preds = %3637
  call void @exit(i32 noundef 1) #13
  unreachable

3639:                                             ; No predecessors!
  br label %3640

3640:                                             ; preds = %3639
  br label %3641

3641:                                             ; preds = %3640, %3582
  br label %3642

3642:                                             ; preds = %3641
  br label %3643

3643:                                             ; preds = %3642
  br label %3644

3644:                                             ; preds = %3643
  %3645 = load i32, ptr @test_count, align 4, !tbaa !5
  %3646 = add nsw i32 %3645, 1
  store i32 %3646, ptr @test_count, align 4, !tbaa !5
  %3647 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3648 = load i32, ptr %3647, align 4, !tbaa !5
  %3649 = icmp eq i32 %3648, 335544390
  br i1 %3649, label %3703, label %3650

3650:                                             ; preds = %3644
  br label %3651

3651:                                             ; preds = %3650
  br label %3652

3652:                                             ; preds = %3651
  call void @llvm.lifetime.start.p0(i64 4, ptr %87) #11
  %3653 = call ptr @__errno_location() #12
  %3654 = load i32, ptr %3653, align 4, !tbaa !5
  store i32 %3654, ptr %87, align 4, !tbaa !5
  %3655 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3656 = call i32 @s2n_print_stacktrace(ptr noundef %3655)
  %3657 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3658 = trunc i8 %3657 to i1
  br i1 %3658, label %3659, label %3681

3659:                                             ; preds = %3652
  %3660 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3661 = call i32 @fileno(ptr noundef %3660) #11
  %3662 = call i32 @isatty(i32 noundef %3661) #11
  %3663 = icmp ne i32 %3662, 0
  br i1 %3663, label %3664, label %3681

3664:                                             ; preds = %3659
  %3665 = load i32, ptr %87, align 4, !tbaa !5
  %3666 = call ptr @__errno_location() #12
  store i32 %3665, ptr %3666, align 4, !tbaa !5
  %3667 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3668 = load i32, ptr @test_count, align 4, !tbaa !5
  %3669 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3670 = load i32, ptr %3669, align 4, !tbaa !5
  %3671 = call ptr @s2n_strerror(i32 noundef %3670, ptr noundef @.str.3)
  %3672 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3673 = load i32, ptr %3672, align 4, !tbaa !5
  %3674 = call ptr @s2n_strerror_debug(i32 noundef %3673, ptr noundef @.str.3)
  %3675 = call ptr @__errno_location() #12
  %3676 = load i32, ptr %3675, align 4, !tbaa !5
  %3677 = call ptr @strerror(i32 noundef %3676) #11
  %3678 = call ptr @__errno_location() #12
  %3679 = load i32, ptr %3678, align 4, !tbaa !5
  %3680 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3667, ptr noundef @.str, i32 noundef %3668, ptr noundef @.str.24, ptr noundef @.str.2, i32 noundef 142, ptr noundef %3671, ptr noundef %3674, ptr noundef %3677, i32 noundef %3679) #11
  br label %3698

3681:                                             ; preds = %3659, %3652
  %3682 = load i32, ptr %87, align 4, !tbaa !5
  %3683 = call ptr @__errno_location() #12
  store i32 %3682, ptr %3683, align 4, !tbaa !5
  %3684 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3685 = load i32, ptr @test_count, align 4, !tbaa !5
  %3686 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3687 = load i32, ptr %3686, align 4, !tbaa !5
  %3688 = call ptr @s2n_strerror(i32 noundef %3687, ptr noundef @.str.3)
  %3689 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3690 = load i32, ptr %3689, align 4, !tbaa !5
  %3691 = call ptr @s2n_strerror_debug(i32 noundef %3690, ptr noundef @.str.3)
  %3692 = call ptr @__errno_location() #12
  %3693 = load i32, ptr %3692, align 4, !tbaa !5
  %3694 = call ptr @strerror(i32 noundef %3693) #11
  %3695 = call ptr @__errno_location() #12
  %3696 = load i32, ptr %3695, align 4, !tbaa !5
  %3697 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3684, ptr noundef @.str.4, i32 noundef %3685, ptr noundef @.str.24, ptr noundef @.str.2, i32 noundef 142, ptr noundef %3688, ptr noundef %3691, ptr noundef %3694, i32 noundef %3696) #11
  br label %3698

3698:                                             ; preds = %3681, %3664
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #11
  br label %3699

3699:                                             ; preds = %3698
  br label %3700

3700:                                             ; preds = %3699
  call void @exit(i32 noundef 1) #13
  unreachable

3701:                                             ; No predecessors!
  br label %3702

3702:                                             ; preds = %3701
  br label %3703

3703:                                             ; preds = %3702, %3644
  br label %3704

3704:                                             ; preds = %3703
  br label %3705

3705:                                             ; preds = %3704
  br label %3706

3706:                                             ; preds = %3705
  %3707 = load i32, ptr @test_count, align 4, !tbaa !5
  %3708 = add nsw i32 %3707, 1
  store i32 %3708, ptr @test_count, align 4, !tbaa !5
  %3709 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3710 = load i32, ptr %3709, align 4, !tbaa !5
  %3711 = call ptr @s2n_strerror_debug(i32 noundef %3710, ptr noundef @.str.3)
  %3712 = icmp eq ptr %3711, null
  br i1 %3712, label %3713, label %3766

3713:                                             ; preds = %3706
  br label %3714

3714:                                             ; preds = %3713
  br label %3715

3715:                                             ; preds = %3714
  call void @llvm.lifetime.start.p0(i64 4, ptr %88) #11
  %3716 = call ptr @__errno_location() #12
  %3717 = load i32, ptr %3716, align 4, !tbaa !5
  store i32 %3717, ptr %88, align 4, !tbaa !5
  %3718 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3719 = call i32 @s2n_print_stacktrace(ptr noundef %3718)
  %3720 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3721 = trunc i8 %3720 to i1
  br i1 %3721, label %3722, label %3744

3722:                                             ; preds = %3715
  %3723 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3724 = call i32 @fileno(ptr noundef %3723) #11
  %3725 = call i32 @isatty(i32 noundef %3724) #11
  %3726 = icmp ne i32 %3725, 0
  br i1 %3726, label %3727, label %3744

3727:                                             ; preds = %3722
  %3728 = load i32, ptr %88, align 4, !tbaa !5
  %3729 = call ptr @__errno_location() #12
  store i32 %3728, ptr %3729, align 4, !tbaa !5
  %3730 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3731 = load i32, ptr @test_count, align 4, !tbaa !5
  %3732 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3733 = load i32, ptr %3732, align 4, !tbaa !5
  %3734 = call ptr @s2n_strerror(i32 noundef %3733, ptr noundef @.str.3)
  %3735 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3736 = load i32, ptr %3735, align 4, !tbaa !5
  %3737 = call ptr @s2n_strerror_debug(i32 noundef %3736, ptr noundef @.str.3)
  %3738 = call ptr @__errno_location() #12
  %3739 = load i32, ptr %3738, align 4, !tbaa !5
  %3740 = call ptr @strerror(i32 noundef %3739) #11
  %3741 = call ptr @__errno_location() #12
  %3742 = load i32, ptr %3741, align 4, !tbaa !5
  %3743 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3730, ptr noundef @.str, i32 noundef %3731, ptr noundef @.str.25, ptr noundef @.str.2, i32 noundef 142, ptr noundef %3734, ptr noundef %3737, ptr noundef %3740, i32 noundef %3742) #11
  br label %3761

3744:                                             ; preds = %3722, %3715
  %3745 = load i32, ptr %88, align 4, !tbaa !5
  %3746 = call ptr @__errno_location() #12
  store i32 %3745, ptr %3746, align 4, !tbaa !5
  %3747 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3748 = load i32, ptr @test_count, align 4, !tbaa !5
  %3749 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3750 = load i32, ptr %3749, align 4, !tbaa !5
  %3751 = call ptr @s2n_strerror(i32 noundef %3750, ptr noundef @.str.3)
  %3752 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3753 = load i32, ptr %3752, align 4, !tbaa !5
  %3754 = call ptr @s2n_strerror_debug(i32 noundef %3753, ptr noundef @.str.3)
  %3755 = call ptr @__errno_location() #12
  %3756 = load i32, ptr %3755, align 4, !tbaa !5
  %3757 = call ptr @strerror(i32 noundef %3756) #11
  %3758 = call ptr @__errno_location() #12
  %3759 = load i32, ptr %3758, align 4, !tbaa !5
  %3760 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3747, ptr noundef @.str.4, i32 noundef %3748, ptr noundef @.str.25, ptr noundef @.str.2, i32 noundef 142, ptr noundef %3751, ptr noundef %3754, ptr noundef %3757, i32 noundef %3759) #11
  br label %3761

3761:                                             ; preds = %3744, %3727
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #11
  br label %3762

3762:                                             ; preds = %3761
  br label %3763

3763:                                             ; preds = %3762
  call void @exit(i32 noundef 1) #13
  unreachable

3764:                                             ; No predecessors!
  br label %3765

3765:                                             ; preds = %3764
  br label %3766

3766:                                             ; preds = %3765, %3706
  br label %3767

3767:                                             ; preds = %3766
  br label %3768

3768:                                             ; preds = %3767
  br label %3769

3769:                                             ; preds = %3768
  br label %3770

3770:                                             ; preds = %3769
  br label %3771

3771:                                             ; preds = %3770
  %3772 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %3772, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %3773 = call ptr @__errno_location() #12
  store i32 0, ptr %3773, align 4, !tbaa !5
  br label %3774

3774:                                             ; preds = %3771
  br label %3775

3775:                                             ; preds = %3774
  br label %3776

3776:                                             ; preds = %3775
  br label %3777

3777:                                             ; preds = %3776
  store i32 8087, ptr %82, align 4, !tbaa !5
  br label %3778

3778:                                             ; preds = %3777, %3576
  call void @llvm.lifetime.start.p0(i64 2, ptr %89) #11
  %3779 = load i32, ptr %82, align 4, !tbaa !5
  %3780 = add nsw i32 %3779, 1
  %3781 = add nsw i32 %3780, 20
  %3782 = add nsw i32 %3781, 16
  %3783 = trunc i32 %3782 to i16
  store i16 %3783, ptr %89, align 2, !tbaa !59
  %3784 = load i16, ptr %89, align 2, !tbaa !59
  %3785 = zext i16 %3784 to i32
  %3786 = srem i32 %3785, 16
  %3787 = icmp ne i32 %3786, 0
  br i1 %3787, label %3788, label %3797

3788:                                             ; preds = %3778
  %3789 = load i16, ptr %89, align 2, !tbaa !59
  %3790 = zext i16 %3789 to i32
  %3791 = srem i32 %3790, 16
  %3792 = sub nsw i32 16, %3791
  %3793 = load i16, ptr %89, align 2, !tbaa !59
  %3794 = zext i16 %3793 to i32
  %3795 = add nsw i32 %3794, %3792
  %3796 = trunc i32 %3795 to i16
  store i16 %3796, ptr %89, align 2, !tbaa !59
  br label %3797

3797:                                             ; preds = %3788, %3778
  br label %3798

3798:                                             ; preds = %3797
  %3799 = load i32, ptr @test_count, align 4, !tbaa !5
  %3800 = add nsw i32 %3799, 1
  store i32 %3800, ptr @test_count, align 4, !tbaa !5
  %3801 = load ptr, ptr %6, align 8, !tbaa !9
  %3802 = getelementptr inbounds %struct.s2n_connection, ptr %3801, i32 0, i32 41
  %3803 = getelementptr inbounds %struct.s2n_stuffer, ptr %3802, i32 0, i32 0
  %3804 = getelementptr inbounds %struct.s2n_blob, ptr %3803, i32 0, i32 0
  %3805 = load ptr, ptr %3804, align 8, !tbaa !60
  %3806 = getelementptr inbounds i8, ptr %3805, i64 0
  %3807 = load i8, ptr %3806, align 1, !tbaa !61
  %3808 = zext i8 %3807 to i32
  %3809 = icmp eq i32 %3808, 23
  br i1 %3809, label %3863, label %3810

3810:                                             ; preds = %3798
  br label %3811

3811:                                             ; preds = %3810
  br label %3812

3812:                                             ; preds = %3811
  call void @llvm.lifetime.start.p0(i64 4, ptr %90) #11
  %3813 = call ptr @__errno_location() #12
  %3814 = load i32, ptr %3813, align 4, !tbaa !5
  store i32 %3814, ptr %90, align 4, !tbaa !5
  %3815 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3816 = call i32 @s2n_print_stacktrace(ptr noundef %3815)
  %3817 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3818 = trunc i8 %3817 to i1
  br i1 %3818, label %3819, label %3841

3819:                                             ; preds = %3812
  %3820 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3821 = call i32 @fileno(ptr noundef %3820) #11
  %3822 = call i32 @isatty(i32 noundef %3821) #11
  %3823 = icmp ne i32 %3822, 0
  br i1 %3823, label %3824, label %3841

3824:                                             ; preds = %3819
  %3825 = load i32, ptr %90, align 4, !tbaa !5
  %3826 = call ptr @__errno_location() #12
  store i32 %3825, ptr %3826, align 4, !tbaa !5
  %3827 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3828 = load i32, ptr @test_count, align 4, !tbaa !5
  %3829 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3830 = load i32, ptr %3829, align 4, !tbaa !5
  %3831 = call ptr @s2n_strerror(i32 noundef %3830, ptr noundef @.str.3)
  %3832 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3833 = load i32, ptr %3832, align 4, !tbaa !5
  %3834 = call ptr @s2n_strerror_debug(i32 noundef %3833, ptr noundef @.str.3)
  %3835 = call ptr @__errno_location() #12
  %3836 = load i32, ptr %3835, align 4, !tbaa !5
  %3837 = call ptr @strerror(i32 noundef %3836) #11
  %3838 = call ptr @__errno_location() #12
  %3839 = load i32, ptr %3838, align 4, !tbaa !5
  %3840 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3827, ptr noundef @.str, i32 noundef %3828, ptr noundef @.str.26, ptr noundef @.str.2, i32 noundef 150, ptr noundef %3831, ptr noundef %3834, ptr noundef %3837, i32 noundef %3839) #11
  br label %3858

3841:                                             ; preds = %3819, %3812
  %3842 = load i32, ptr %90, align 4, !tbaa !5
  %3843 = call ptr @__errno_location() #12
  store i32 %3842, ptr %3843, align 4, !tbaa !5
  %3844 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3845 = load i32, ptr @test_count, align 4, !tbaa !5
  %3846 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3847 = load i32, ptr %3846, align 4, !tbaa !5
  %3848 = call ptr @s2n_strerror(i32 noundef %3847, ptr noundef @.str.3)
  %3849 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3850 = load i32, ptr %3849, align 4, !tbaa !5
  %3851 = call ptr @s2n_strerror_debug(i32 noundef %3850, ptr noundef @.str.3)
  %3852 = call ptr @__errno_location() #12
  %3853 = load i32, ptr %3852, align 4, !tbaa !5
  %3854 = call ptr @strerror(i32 noundef %3853) #11
  %3855 = call ptr @__errno_location() #12
  %3856 = load i32, ptr %3855, align 4, !tbaa !5
  %3857 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3844, ptr noundef @.str.4, i32 noundef %3845, ptr noundef @.str.26, ptr noundef @.str.2, i32 noundef 150, ptr noundef %3848, ptr noundef %3851, ptr noundef %3854, i32 noundef %3856) #11
  br label %3858

3858:                                             ; preds = %3841, %3824
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #11
  br label %3859

3859:                                             ; preds = %3858
  br label %3860

3860:                                             ; preds = %3859
  call void @exit(i32 noundef 1) #13
  unreachable

3861:                                             ; No predecessors!
  br label %3862

3862:                                             ; preds = %3861
  br label %3863

3863:                                             ; preds = %3862, %3798
  br label %3864

3864:                                             ; preds = %3863
  br label %3865

3865:                                             ; preds = %3864
  br label %3866

3866:                                             ; preds = %3865
  %3867 = load i32, ptr @test_count, align 4, !tbaa !5
  %3868 = add nsw i32 %3867, 1
  store i32 %3868, ptr @test_count, align 4, !tbaa !5
  %3869 = load ptr, ptr %6, align 8, !tbaa !9
  %3870 = getelementptr inbounds %struct.s2n_connection, ptr %3869, i32 0, i32 41
  %3871 = getelementptr inbounds %struct.s2n_stuffer, ptr %3870, i32 0, i32 0
  %3872 = getelementptr inbounds %struct.s2n_blob, ptr %3871, i32 0, i32 0
  %3873 = load ptr, ptr %3872, align 8, !tbaa !60
  %3874 = getelementptr inbounds i8, ptr %3873, i64 1
  %3875 = load i8, ptr %3874, align 1, !tbaa !61
  %3876 = zext i8 %3875 to i32
  %3877 = icmp eq i32 %3876, 3
  br i1 %3877, label %3931, label %3878

3878:                                             ; preds = %3866
  br label %3879

3879:                                             ; preds = %3878
  br label %3880

3880:                                             ; preds = %3879
  call void @llvm.lifetime.start.p0(i64 4, ptr %91) #11
  %3881 = call ptr @__errno_location() #12
  %3882 = load i32, ptr %3881, align 4, !tbaa !5
  store i32 %3882, ptr %91, align 4, !tbaa !5
  %3883 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3884 = call i32 @s2n_print_stacktrace(ptr noundef %3883)
  %3885 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3886 = trunc i8 %3885 to i1
  br i1 %3886, label %3887, label %3909

3887:                                             ; preds = %3880
  %3888 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3889 = call i32 @fileno(ptr noundef %3888) #11
  %3890 = call i32 @isatty(i32 noundef %3889) #11
  %3891 = icmp ne i32 %3890, 0
  br i1 %3891, label %3892, label %3909

3892:                                             ; preds = %3887
  %3893 = load i32, ptr %91, align 4, !tbaa !5
  %3894 = call ptr @__errno_location() #12
  store i32 %3893, ptr %3894, align 4, !tbaa !5
  %3895 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3896 = load i32, ptr @test_count, align 4, !tbaa !5
  %3897 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3898 = load i32, ptr %3897, align 4, !tbaa !5
  %3899 = call ptr @s2n_strerror(i32 noundef %3898, ptr noundef @.str.3)
  %3900 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3901 = load i32, ptr %3900, align 4, !tbaa !5
  %3902 = call ptr @s2n_strerror_debug(i32 noundef %3901, ptr noundef @.str.3)
  %3903 = call ptr @__errno_location() #12
  %3904 = load i32, ptr %3903, align 4, !tbaa !5
  %3905 = call ptr @strerror(i32 noundef %3904) #11
  %3906 = call ptr @__errno_location() #12
  %3907 = load i32, ptr %3906, align 4, !tbaa !5
  %3908 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3895, ptr noundef @.str, i32 noundef %3896, ptr noundef @.str.27, ptr noundef @.str.2, i32 noundef 151, ptr noundef %3899, ptr noundef %3902, ptr noundef %3905, i32 noundef %3907) #11
  br label %3926

3909:                                             ; preds = %3887, %3880
  %3910 = load i32, ptr %91, align 4, !tbaa !5
  %3911 = call ptr @__errno_location() #12
  store i32 %3910, ptr %3911, align 4, !tbaa !5
  %3912 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3913 = load i32, ptr @test_count, align 4, !tbaa !5
  %3914 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3915 = load i32, ptr %3914, align 4, !tbaa !5
  %3916 = call ptr @s2n_strerror(i32 noundef %3915, ptr noundef @.str.3)
  %3917 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3918 = load i32, ptr %3917, align 4, !tbaa !5
  %3919 = call ptr @s2n_strerror_debug(i32 noundef %3918, ptr noundef @.str.3)
  %3920 = call ptr @__errno_location() #12
  %3921 = load i32, ptr %3920, align 4, !tbaa !5
  %3922 = call ptr @strerror(i32 noundef %3921) #11
  %3923 = call ptr @__errno_location() #12
  %3924 = load i32, ptr %3923, align 4, !tbaa !5
  %3925 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3912, ptr noundef @.str.4, i32 noundef %3913, ptr noundef @.str.27, ptr noundef @.str.2, i32 noundef 151, ptr noundef %3916, ptr noundef %3919, ptr noundef %3922, i32 noundef %3924) #11
  br label %3926

3926:                                             ; preds = %3909, %3892
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #11
  br label %3927

3927:                                             ; preds = %3926
  br label %3928

3928:                                             ; preds = %3927
  call void @exit(i32 noundef 1) #13
  unreachable

3929:                                             ; No predecessors!
  br label %3930

3930:                                             ; preds = %3929
  br label %3931

3931:                                             ; preds = %3930, %3866
  br label %3932

3932:                                             ; preds = %3931
  br label %3933

3933:                                             ; preds = %3932
  br label %3934

3934:                                             ; preds = %3933
  %3935 = load i32, ptr @test_count, align 4, !tbaa !5
  %3936 = add nsw i32 %3935, 1
  store i32 %3936, ptr @test_count, align 4, !tbaa !5
  %3937 = load ptr, ptr %6, align 8, !tbaa !9
  %3938 = getelementptr inbounds %struct.s2n_connection, ptr %3937, i32 0, i32 41
  %3939 = getelementptr inbounds %struct.s2n_stuffer, ptr %3938, i32 0, i32 0
  %3940 = getelementptr inbounds %struct.s2n_blob, ptr %3939, i32 0, i32 0
  %3941 = load ptr, ptr %3940, align 8, !tbaa !60
  %3942 = getelementptr inbounds i8, ptr %3941, i64 2
  %3943 = load i8, ptr %3942, align 1, !tbaa !61
  %3944 = zext i8 %3943 to i32
  %3945 = icmp eq i32 %3944, 2
  br i1 %3945, label %3999, label %3946

3946:                                             ; preds = %3934
  br label %3947

3947:                                             ; preds = %3946
  br label %3948

3948:                                             ; preds = %3947
  call void @llvm.lifetime.start.p0(i64 4, ptr %92) #11
  %3949 = call ptr @__errno_location() #12
  %3950 = load i32, ptr %3949, align 4, !tbaa !5
  store i32 %3950, ptr %92, align 4, !tbaa !5
  %3951 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3952 = call i32 @s2n_print_stacktrace(ptr noundef %3951)
  %3953 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3954 = trunc i8 %3953 to i1
  br i1 %3954, label %3955, label %3977

3955:                                             ; preds = %3948
  %3956 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3957 = call i32 @fileno(ptr noundef %3956) #11
  %3958 = call i32 @isatty(i32 noundef %3957) #11
  %3959 = icmp ne i32 %3958, 0
  br i1 %3959, label %3960, label %3977

3960:                                             ; preds = %3955
  %3961 = load i32, ptr %92, align 4, !tbaa !5
  %3962 = call ptr @__errno_location() #12
  store i32 %3961, ptr %3962, align 4, !tbaa !5
  %3963 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3964 = load i32, ptr @test_count, align 4, !tbaa !5
  %3965 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3966 = load i32, ptr %3965, align 4, !tbaa !5
  %3967 = call ptr @s2n_strerror(i32 noundef %3966, ptr noundef @.str.3)
  %3968 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3969 = load i32, ptr %3968, align 4, !tbaa !5
  %3970 = call ptr @s2n_strerror_debug(i32 noundef %3969, ptr noundef @.str.3)
  %3971 = call ptr @__errno_location() #12
  %3972 = load i32, ptr %3971, align 4, !tbaa !5
  %3973 = call ptr @strerror(i32 noundef %3972) #11
  %3974 = call ptr @__errno_location() #12
  %3975 = load i32, ptr %3974, align 4, !tbaa !5
  %3976 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3963, ptr noundef @.str, i32 noundef %3964, ptr noundef @.str.28, ptr noundef @.str.2, i32 noundef 152, ptr noundef %3967, ptr noundef %3970, ptr noundef %3973, i32 noundef %3975) #11
  br label %3994

3977:                                             ; preds = %3955, %3948
  %3978 = load i32, ptr %92, align 4, !tbaa !5
  %3979 = call ptr @__errno_location() #12
  store i32 %3978, ptr %3979, align 4, !tbaa !5
  %3980 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3981 = load i32, ptr @test_count, align 4, !tbaa !5
  %3982 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3983 = load i32, ptr %3982, align 4, !tbaa !5
  %3984 = call ptr @s2n_strerror(i32 noundef %3983, ptr noundef @.str.3)
  %3985 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3986 = load i32, ptr %3985, align 4, !tbaa !5
  %3987 = call ptr @s2n_strerror_debug(i32 noundef %3986, ptr noundef @.str.3)
  %3988 = call ptr @__errno_location() #12
  %3989 = load i32, ptr %3988, align 4, !tbaa !5
  %3990 = call ptr @strerror(i32 noundef %3989) #11
  %3991 = call ptr @__errno_location() #12
  %3992 = load i32, ptr %3991, align 4, !tbaa !5
  %3993 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3980, ptr noundef @.str.4, i32 noundef %3981, ptr noundef @.str.28, ptr noundef @.str.2, i32 noundef 152, ptr noundef %3984, ptr noundef %3987, ptr noundef %3990, i32 noundef %3992) #11
  br label %3994

3994:                                             ; preds = %3977, %3960
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #11
  br label %3995

3995:                                             ; preds = %3994
  br label %3996

3996:                                             ; preds = %3995
  call void @exit(i32 noundef 1) #13
  unreachable

3997:                                             ; No predecessors!
  br label %3998

3998:                                             ; preds = %3997
  br label %3999

3999:                                             ; preds = %3998, %3934
  br label %4000

4000:                                             ; preds = %3999
  br label %4001

4001:                                             ; preds = %4000
  br label %4002

4002:                                             ; preds = %4001
  %4003 = load i32, ptr @test_count, align 4, !tbaa !5
  %4004 = add nsw i32 %4003, 1
  store i32 %4004, ptr @test_count, align 4, !tbaa !5
  %4005 = load ptr, ptr %6, align 8, !tbaa !9
  %4006 = getelementptr inbounds %struct.s2n_connection, ptr %4005, i32 0, i32 41
  %4007 = getelementptr inbounds %struct.s2n_stuffer, ptr %4006, i32 0, i32 0
  %4008 = getelementptr inbounds %struct.s2n_blob, ptr %4007, i32 0, i32 0
  %4009 = load ptr, ptr %4008, align 8, !tbaa !60
  %4010 = getelementptr inbounds i8, ptr %4009, i64 3
  %4011 = load i8, ptr %4010, align 1, !tbaa !61
  %4012 = zext i8 %4011 to i32
  %4013 = load i16, ptr %89, align 2, !tbaa !59
  %4014 = zext i16 %4013 to i32
  %4015 = ashr i32 %4014, 8
  %4016 = and i32 %4015, 255
  %4017 = icmp eq i32 %4012, %4016
  br i1 %4017, label %4071, label %4018

4018:                                             ; preds = %4002
  br label %4019

4019:                                             ; preds = %4018
  br label %4020

4020:                                             ; preds = %4019
  call void @llvm.lifetime.start.p0(i64 4, ptr %93) #11
  %4021 = call ptr @__errno_location() #12
  %4022 = load i32, ptr %4021, align 4, !tbaa !5
  store i32 %4022, ptr %93, align 4, !tbaa !5
  %4023 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4024 = call i32 @s2n_print_stacktrace(ptr noundef %4023)
  %4025 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4026 = trunc i8 %4025 to i1
  br i1 %4026, label %4027, label %4049

4027:                                             ; preds = %4020
  %4028 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4029 = call i32 @fileno(ptr noundef %4028) #11
  %4030 = call i32 @isatty(i32 noundef %4029) #11
  %4031 = icmp ne i32 %4030, 0
  br i1 %4031, label %4032, label %4049

4032:                                             ; preds = %4027
  %4033 = load i32, ptr %93, align 4, !tbaa !5
  %4034 = call ptr @__errno_location() #12
  store i32 %4033, ptr %4034, align 4, !tbaa !5
  %4035 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4036 = load i32, ptr @test_count, align 4, !tbaa !5
  %4037 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4038 = load i32, ptr %4037, align 4, !tbaa !5
  %4039 = call ptr @s2n_strerror(i32 noundef %4038, ptr noundef @.str.3)
  %4040 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4041 = load i32, ptr %4040, align 4, !tbaa !5
  %4042 = call ptr @s2n_strerror_debug(i32 noundef %4041, ptr noundef @.str.3)
  %4043 = call ptr @__errno_location() #12
  %4044 = load i32, ptr %4043, align 4, !tbaa !5
  %4045 = call ptr @strerror(i32 noundef %4044) #11
  %4046 = call ptr @__errno_location() #12
  %4047 = load i32, ptr %4046, align 4, !tbaa !5
  %4048 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4035, ptr noundef @.str, i32 noundef %4036, ptr noundef @.str.29, ptr noundef @.str.2, i32 noundef 153, ptr noundef %4039, ptr noundef %4042, ptr noundef %4045, i32 noundef %4047) #11
  br label %4066

4049:                                             ; preds = %4027, %4020
  %4050 = load i32, ptr %93, align 4, !tbaa !5
  %4051 = call ptr @__errno_location() #12
  store i32 %4050, ptr %4051, align 4, !tbaa !5
  %4052 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4053 = load i32, ptr @test_count, align 4, !tbaa !5
  %4054 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4055 = load i32, ptr %4054, align 4, !tbaa !5
  %4056 = call ptr @s2n_strerror(i32 noundef %4055, ptr noundef @.str.3)
  %4057 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4058 = load i32, ptr %4057, align 4, !tbaa !5
  %4059 = call ptr @s2n_strerror_debug(i32 noundef %4058, ptr noundef @.str.3)
  %4060 = call ptr @__errno_location() #12
  %4061 = load i32, ptr %4060, align 4, !tbaa !5
  %4062 = call ptr @strerror(i32 noundef %4061) #11
  %4063 = call ptr @__errno_location() #12
  %4064 = load i32, ptr %4063, align 4, !tbaa !5
  %4065 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4052, ptr noundef @.str.4, i32 noundef %4053, ptr noundef @.str.29, ptr noundef @.str.2, i32 noundef 153, ptr noundef %4056, ptr noundef %4059, ptr noundef %4062, i32 noundef %4064) #11
  br label %4066

4066:                                             ; preds = %4049, %4032
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #11
  br label %4067

4067:                                             ; preds = %4066
  br label %4068

4068:                                             ; preds = %4067
  call void @exit(i32 noundef 1) #13
  unreachable

4069:                                             ; No predecessors!
  br label %4070

4070:                                             ; preds = %4069
  br label %4071

4071:                                             ; preds = %4070, %4002
  br label %4072

4072:                                             ; preds = %4071
  br label %4073

4073:                                             ; preds = %4072
  br label %4074

4074:                                             ; preds = %4073
  %4075 = load i32, ptr @test_count, align 4, !tbaa !5
  %4076 = add nsw i32 %4075, 1
  store i32 %4076, ptr @test_count, align 4, !tbaa !5
  %4077 = load ptr, ptr %6, align 8, !tbaa !9
  %4078 = getelementptr inbounds %struct.s2n_connection, ptr %4077, i32 0, i32 41
  %4079 = getelementptr inbounds %struct.s2n_stuffer, ptr %4078, i32 0, i32 0
  %4080 = getelementptr inbounds %struct.s2n_blob, ptr %4079, i32 0, i32 0
  %4081 = load ptr, ptr %4080, align 8, !tbaa !60
  %4082 = getelementptr inbounds i8, ptr %4081, i64 4
  %4083 = load i8, ptr %4082, align 1, !tbaa !61
  %4084 = zext i8 %4083 to i32
  %4085 = load i16, ptr %89, align 2, !tbaa !59
  %4086 = zext i16 %4085 to i32
  %4087 = and i32 %4086, 255
  %4088 = icmp eq i32 %4084, %4087
  br i1 %4088, label %4142, label %4089

4089:                                             ; preds = %4074
  br label %4090

4090:                                             ; preds = %4089
  br label %4091

4091:                                             ; preds = %4090
  call void @llvm.lifetime.start.p0(i64 4, ptr %94) #11
  %4092 = call ptr @__errno_location() #12
  %4093 = load i32, ptr %4092, align 4, !tbaa !5
  store i32 %4093, ptr %94, align 4, !tbaa !5
  %4094 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4095 = call i32 @s2n_print_stacktrace(ptr noundef %4094)
  %4096 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4097 = trunc i8 %4096 to i1
  br i1 %4097, label %4098, label %4120

4098:                                             ; preds = %4091
  %4099 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4100 = call i32 @fileno(ptr noundef %4099) #11
  %4101 = call i32 @isatty(i32 noundef %4100) #11
  %4102 = icmp ne i32 %4101, 0
  br i1 %4102, label %4103, label %4120

4103:                                             ; preds = %4098
  %4104 = load i32, ptr %94, align 4, !tbaa !5
  %4105 = call ptr @__errno_location() #12
  store i32 %4104, ptr %4105, align 4, !tbaa !5
  %4106 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4107 = load i32, ptr @test_count, align 4, !tbaa !5
  %4108 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4109 = load i32, ptr %4108, align 4, !tbaa !5
  %4110 = call ptr @s2n_strerror(i32 noundef %4109, ptr noundef @.str.3)
  %4111 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4112 = load i32, ptr %4111, align 4, !tbaa !5
  %4113 = call ptr @s2n_strerror_debug(i32 noundef %4112, ptr noundef @.str.3)
  %4114 = call ptr @__errno_location() #12
  %4115 = load i32, ptr %4114, align 4, !tbaa !5
  %4116 = call ptr @strerror(i32 noundef %4115) #11
  %4117 = call ptr @__errno_location() #12
  %4118 = load i32, ptr %4117, align 4, !tbaa !5
  %4119 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4106, ptr noundef @.str, i32 noundef %4107, ptr noundef @.str.30, ptr noundef @.str.2, i32 noundef 154, ptr noundef %4110, ptr noundef %4113, ptr noundef %4116, i32 noundef %4118) #11
  br label %4137

4120:                                             ; preds = %4098, %4091
  %4121 = load i32, ptr %94, align 4, !tbaa !5
  %4122 = call ptr @__errno_location() #12
  store i32 %4121, ptr %4122, align 4, !tbaa !5
  %4123 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4124 = load i32, ptr @test_count, align 4, !tbaa !5
  %4125 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4126 = load i32, ptr %4125, align 4, !tbaa !5
  %4127 = call ptr @s2n_strerror(i32 noundef %4126, ptr noundef @.str.3)
  %4128 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4129 = load i32, ptr %4128, align 4, !tbaa !5
  %4130 = call ptr @s2n_strerror_debug(i32 noundef %4129, ptr noundef @.str.3)
  %4131 = call ptr @__errno_location() #12
  %4132 = load i32, ptr %4131, align 4, !tbaa !5
  %4133 = call ptr @strerror(i32 noundef %4132) #11
  %4134 = call ptr @__errno_location() #12
  %4135 = load i32, ptr %4134, align 4, !tbaa !5
  %4136 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4123, ptr noundef @.str.4, i32 noundef %4124, ptr noundef @.str.30, ptr noundef @.str.2, i32 noundef 154, ptr noundef %4127, ptr noundef %4130, ptr noundef %4133, i32 noundef %4135) #11
  br label %4137

4137:                                             ; preds = %4120, %4103
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #11
  br label %4138

4138:                                             ; preds = %4137
  br label %4139

4139:                                             ; preds = %4138
  call void @exit(i32 noundef 1) #13
  unreachable

4140:                                             ; No predecessors!
  br label %4141

4141:                                             ; preds = %4140
  br label %4142

4142:                                             ; preds = %4141, %4074
  br label %4143

4143:                                             ; preds = %4142
  br label %4144

4144:                                             ; preds = %4143
  %4145 = load i32, ptr %82, align 4, !tbaa !5
  %4146 = icmp sgt i32 %4145, 10
  br i1 %4146, label %4147, label %4218

4147:                                             ; preds = %4144
  br label %4148

4148:                                             ; preds = %4147
  %4149 = load i32, ptr @test_count, align 4, !tbaa !5
  %4150 = add nsw i32 %4149, 1
  store i32 %4150, ptr @test_count, align 4, !tbaa !5
  %4151 = load ptr, ptr %6, align 8, !tbaa !9
  %4152 = getelementptr inbounds %struct.s2n_connection, ptr %4151, i32 0, i32 41
  %4153 = getelementptr inbounds %struct.s2n_stuffer, ptr %4152, i32 0, i32 0
  %4154 = getelementptr inbounds %struct.s2n_blob, ptr %4153, i32 0, i32 0
  %4155 = load ptr, ptr %4154, align 8, !tbaa !60
  %4156 = getelementptr inbounds i8, ptr %4155, i64 5
  %4157 = getelementptr inbounds [8088 x i8], ptr %14, i64 0, i64 0
  %4158 = load i32, ptr %82, align 4, !tbaa !5
  %4159 = sext i32 %4158 to i64
  %4160 = call i32 @memcmp(ptr noundef %4156, ptr noundef %4157, i64 noundef %4159) #14
  %4161 = icmp eq i32 %4160, 0
  br i1 %4161, label %4162, label %4215

4162:                                             ; preds = %4148
  br label %4163

4163:                                             ; preds = %4162
  br label %4164

4164:                                             ; preds = %4163
  call void @llvm.lifetime.start.p0(i64 4, ptr %95) #11
  %4165 = call ptr @__errno_location() #12
  %4166 = load i32, ptr %4165, align 4, !tbaa !5
  store i32 %4166, ptr %95, align 4, !tbaa !5
  %4167 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4168 = call i32 @s2n_print_stacktrace(ptr noundef %4167)
  %4169 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4170 = trunc i8 %4169 to i1
  br i1 %4170, label %4171, label %4193

4171:                                             ; preds = %4164
  %4172 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4173 = call i32 @fileno(ptr noundef %4172) #11
  %4174 = call i32 @isatty(i32 noundef %4173) #11
  %4175 = icmp ne i32 %4174, 0
  br i1 %4175, label %4176, label %4193

4176:                                             ; preds = %4171
  %4177 = load i32, ptr %95, align 4, !tbaa !5
  %4178 = call ptr @__errno_location() #12
  store i32 %4177, ptr %4178, align 4, !tbaa !5
  %4179 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4180 = load i32, ptr @test_count, align 4, !tbaa !5
  %4181 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4182 = load i32, ptr %4181, align 4, !tbaa !5
  %4183 = call ptr @s2n_strerror(i32 noundef %4182, ptr noundef @.str.3)
  %4184 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4185 = load i32, ptr %4184, align 4, !tbaa !5
  %4186 = call ptr @s2n_strerror_debug(i32 noundef %4185, ptr noundef @.str.3)
  %4187 = call ptr @__errno_location() #12
  %4188 = load i32, ptr %4187, align 4, !tbaa !5
  %4189 = call ptr @strerror(i32 noundef %4188) #11
  %4190 = call ptr @__errno_location() #12
  %4191 = load i32, ptr %4190, align 4, !tbaa !5
  %4192 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4179, ptr noundef @.str, i32 noundef %4180, ptr noundef @.str.31, ptr noundef @.str.2, i32 noundef 158, ptr noundef %4183, ptr noundef %4186, ptr noundef %4189, i32 noundef %4191) #11
  br label %4210

4193:                                             ; preds = %4171, %4164
  %4194 = load i32, ptr %95, align 4, !tbaa !5
  %4195 = call ptr @__errno_location() #12
  store i32 %4194, ptr %4195, align 4, !tbaa !5
  %4196 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4197 = load i32, ptr @test_count, align 4, !tbaa !5
  %4198 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4199 = load i32, ptr %4198, align 4, !tbaa !5
  %4200 = call ptr @s2n_strerror(i32 noundef %4199, ptr noundef @.str.3)
  %4201 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4202 = load i32, ptr %4201, align 4, !tbaa !5
  %4203 = call ptr @s2n_strerror_debug(i32 noundef %4202, ptr noundef @.str.3)
  %4204 = call ptr @__errno_location() #12
  %4205 = load i32, ptr %4204, align 4, !tbaa !5
  %4206 = call ptr @strerror(i32 noundef %4205) #11
  %4207 = call ptr @__errno_location() #12
  %4208 = load i32, ptr %4207, align 4, !tbaa !5
  %4209 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4196, ptr noundef @.str.4, i32 noundef %4197, ptr noundef @.str.31, ptr noundef @.str.2, i32 noundef 158, ptr noundef %4200, ptr noundef %4203, ptr noundef %4206, i32 noundef %4208) #11
  br label %4210

4210:                                             ; preds = %4193, %4176
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #11
  br label %4211

4211:                                             ; preds = %4210
  br label %4212

4212:                                             ; preds = %4211
  call void @exit(i32 noundef 1) #13
  unreachable

4213:                                             ; No predecessors!
  br label %4214

4214:                                             ; preds = %4213
  br label %4215

4215:                                             ; preds = %4214, %4148
  br label %4216

4216:                                             ; preds = %4215
  br label %4217

4217:                                             ; preds = %4216
  br label %4218

4218:                                             ; preds = %4217, %4144
  br label %4219

4219:                                             ; preds = %4218
  %4220 = load i32, ptr @test_count, align 4, !tbaa !5
  %4221 = add nsw i32 %4220, 1
  store i32 %4221, ptr @test_count, align 4, !tbaa !5
  %4222 = load ptr, ptr %6, align 8, !tbaa !9
  %4223 = getelementptr inbounds %struct.s2n_connection, ptr %4222, i32 0, i32 40
  %4224 = call i32 @s2n_stuffer_wipe(ptr noundef %4223)
  %4225 = icmp eq i32 %4224, -1
  br i1 %4225, label %4226, label %4279

4226:                                             ; preds = %4219
  br label %4227

4227:                                             ; preds = %4226
  br label %4228

4228:                                             ; preds = %4227
  call void @llvm.lifetime.start.p0(i64 4, ptr %96) #11
  %4229 = call ptr @__errno_location() #12
  %4230 = load i32, ptr %4229, align 4, !tbaa !5
  store i32 %4230, ptr %96, align 4, !tbaa !5
  %4231 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4232 = call i32 @s2n_print_stacktrace(ptr noundef %4231)
  %4233 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4234 = trunc i8 %4233 to i1
  br i1 %4234, label %4235, label %4257

4235:                                             ; preds = %4228
  %4236 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4237 = call i32 @fileno(ptr noundef %4236) #11
  %4238 = call i32 @isatty(i32 noundef %4237) #11
  %4239 = icmp ne i32 %4238, 0
  br i1 %4239, label %4240, label %4257

4240:                                             ; preds = %4235
  %4241 = load i32, ptr %96, align 4, !tbaa !5
  %4242 = call ptr @__errno_location() #12
  store i32 %4241, ptr %4242, align 4, !tbaa !5
  %4243 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4244 = load i32, ptr @test_count, align 4, !tbaa !5
  %4245 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4246 = load i32, ptr %4245, align 4, !tbaa !5
  %4247 = call ptr @s2n_strerror(i32 noundef %4246, ptr noundef @.str.3)
  %4248 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4249 = load i32, ptr %4248, align 4, !tbaa !5
  %4250 = call ptr @s2n_strerror_debug(i32 noundef %4249, ptr noundef @.str.3)
  %4251 = call ptr @__errno_location() #12
  %4252 = load i32, ptr %4251, align 4, !tbaa !5
  %4253 = call ptr @strerror(i32 noundef %4252) #11
  %4254 = call ptr @__errno_location() #12
  %4255 = load i32, ptr %4254, align 4, !tbaa !5
  %4256 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4243, ptr noundef @.str, i32 noundef %4244, ptr noundef @.str.32, ptr noundef @.str.2, i32 noundef 162, ptr noundef %4247, ptr noundef %4250, ptr noundef %4253, i32 noundef %4255) #11
  br label %4274

4257:                                             ; preds = %4235, %4228
  %4258 = load i32, ptr %96, align 4, !tbaa !5
  %4259 = call ptr @__errno_location() #12
  store i32 %4258, ptr %4259, align 4, !tbaa !5
  %4260 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4261 = load i32, ptr @test_count, align 4, !tbaa !5
  %4262 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4263 = load i32, ptr %4262, align 4, !tbaa !5
  %4264 = call ptr @s2n_strerror(i32 noundef %4263, ptr noundef @.str.3)
  %4265 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4266 = load i32, ptr %4265, align 4, !tbaa !5
  %4267 = call ptr @s2n_strerror_debug(i32 noundef %4266, ptr noundef @.str.3)
  %4268 = call ptr @__errno_location() #12
  %4269 = load i32, ptr %4268, align 4, !tbaa !5
  %4270 = call ptr @strerror(i32 noundef %4269) #11
  %4271 = call ptr @__errno_location() #12
  %4272 = load i32, ptr %4271, align 4, !tbaa !5
  %4273 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4260, ptr noundef @.str.4, i32 noundef %4261, ptr noundef @.str.32, ptr noundef @.str.2, i32 noundef 162, ptr noundef %4264, ptr noundef %4267, ptr noundef %4270, i32 noundef %4272) #11
  br label %4274

4274:                                             ; preds = %4257, %4240
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #11
  br label %4275

4275:                                             ; preds = %4274
  br label %4276

4276:                                             ; preds = %4275
  call void @exit(i32 noundef 1) #13
  unreachable

4277:                                             ; No predecessors!
  br label %4278

4278:                                             ; preds = %4277
  br label %4279

4279:                                             ; preds = %4278, %4219
  br label %4280

4280:                                             ; preds = %4279
  br label %4281

4281:                                             ; preds = %4280
  br label %4282

4282:                                             ; preds = %4281
  %4283 = load i32, ptr @test_count, align 4, !tbaa !5
  %4284 = add nsw i32 %4283, 1
  store i32 %4284, ptr @test_count, align 4, !tbaa !5
  %4285 = load ptr, ptr %6, align 8, !tbaa !9
  %4286 = getelementptr inbounds %struct.s2n_connection, ptr %4285, i32 0, i32 38
  %4287 = call i32 @s2n_stuffer_wipe(ptr noundef %4286)
  %4288 = icmp eq i32 %4287, -1
  br i1 %4288, label %4289, label %4342

4289:                                             ; preds = %4282
  br label %4290

4290:                                             ; preds = %4289
  br label %4291

4291:                                             ; preds = %4290
  call void @llvm.lifetime.start.p0(i64 4, ptr %97) #11
  %4292 = call ptr @__errno_location() #12
  %4293 = load i32, ptr %4292, align 4, !tbaa !5
  store i32 %4293, ptr %97, align 4, !tbaa !5
  %4294 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4295 = call i32 @s2n_print_stacktrace(ptr noundef %4294)
  %4296 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4297 = trunc i8 %4296 to i1
  br i1 %4297, label %4298, label %4320

4298:                                             ; preds = %4291
  %4299 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4300 = call i32 @fileno(ptr noundef %4299) #11
  %4301 = call i32 @isatty(i32 noundef %4300) #11
  %4302 = icmp ne i32 %4301, 0
  br i1 %4302, label %4303, label %4320

4303:                                             ; preds = %4298
  %4304 = load i32, ptr %97, align 4, !tbaa !5
  %4305 = call ptr @__errno_location() #12
  store i32 %4304, ptr %4305, align 4, !tbaa !5
  %4306 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4307 = load i32, ptr @test_count, align 4, !tbaa !5
  %4308 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4309 = load i32, ptr %4308, align 4, !tbaa !5
  %4310 = call ptr @s2n_strerror(i32 noundef %4309, ptr noundef @.str.3)
  %4311 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4312 = load i32, ptr %4311, align 4, !tbaa !5
  %4313 = call ptr @s2n_strerror_debug(i32 noundef %4312, ptr noundef @.str.3)
  %4314 = call ptr @__errno_location() #12
  %4315 = load i32, ptr %4314, align 4, !tbaa !5
  %4316 = call ptr @strerror(i32 noundef %4315) #11
  %4317 = call ptr @__errno_location() #12
  %4318 = load i32, ptr %4317, align 4, !tbaa !5
  %4319 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4306, ptr noundef @.str, i32 noundef %4307, ptr noundef @.str.33, ptr noundef @.str.2, i32 noundef 163, ptr noundef %4310, ptr noundef %4313, ptr noundef %4316, i32 noundef %4318) #11
  br label %4337

4320:                                             ; preds = %4298, %4291
  %4321 = load i32, ptr %97, align 4, !tbaa !5
  %4322 = call ptr @__errno_location() #12
  store i32 %4321, ptr %4322, align 4, !tbaa !5
  %4323 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4324 = load i32, ptr @test_count, align 4, !tbaa !5
  %4325 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4326 = load i32, ptr %4325, align 4, !tbaa !5
  %4327 = call ptr @s2n_strerror(i32 noundef %4326, ptr noundef @.str.3)
  %4328 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4329 = load i32, ptr %4328, align 4, !tbaa !5
  %4330 = call ptr @s2n_strerror_debug(i32 noundef %4329, ptr noundef @.str.3)
  %4331 = call ptr @__errno_location() #12
  %4332 = load i32, ptr %4331, align 4, !tbaa !5
  %4333 = call ptr @strerror(i32 noundef %4332) #11
  %4334 = call ptr @__errno_location() #12
  %4335 = load i32, ptr %4334, align 4, !tbaa !5
  %4336 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4323, ptr noundef @.str.4, i32 noundef %4324, ptr noundef @.str.33, ptr noundef @.str.2, i32 noundef 163, ptr noundef %4327, ptr noundef %4330, ptr noundef %4333, i32 noundef %4335) #11
  br label %4337

4337:                                             ; preds = %4320, %4303
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #11
  br label %4338

4338:                                             ; preds = %4337
  br label %4339

4339:                                             ; preds = %4338
  call void @exit(i32 noundef 1) #13
  unreachable

4340:                                             ; No predecessors!
  br label %4341

4341:                                             ; preds = %4340
  br label %4342

4342:                                             ; preds = %4341, %4282
  br label %4343

4343:                                             ; preds = %4342
  br label %4344

4344:                                             ; preds = %4343
  br label %4345

4345:                                             ; preds = %4344
  %4346 = load i32, ptr @test_count, align 4, !tbaa !5
  %4347 = add nsw i32 %4346, 1
  store i32 %4347, ptr @test_count, align 4, !tbaa !5
  %4348 = load ptr, ptr %6, align 8, !tbaa !9
  %4349 = getelementptr inbounds %struct.s2n_connection, ptr %4348, i32 0, i32 41
  %4350 = load ptr, ptr %6, align 8, !tbaa !9
  %4351 = getelementptr inbounds %struct.s2n_connection, ptr %4350, i32 0, i32 38
  %4352 = call i32 @s2n_stuffer_copy(ptr noundef %4349, ptr noundef %4351, i32 noundef 5)
  %4353 = icmp eq i32 %4352, -1
  br i1 %4353, label %4354, label %4407

4354:                                             ; preds = %4345
  br label %4355

4355:                                             ; preds = %4354
  br label %4356

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

4363:                                             ; preds = %4356
  %4364 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4365 = call i32 @fileno(ptr noundef %4364) #11
  %4366 = call i32 @isatty(i32 noundef %4365) #11
  %4367 = icmp ne i32 %4366, 0
  br i1 %4367, label %4368, label %4385

4368:                                             ; preds = %4363
  %4369 = load i32, ptr %98, align 4, !tbaa !5
  %4370 = call ptr @__errno_location() #12
  store i32 %4369, ptr %4370, align 4, !tbaa !5
  %4371 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4372 = load i32, ptr @test_count, align 4, !tbaa !5
  %4373 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4374 = load i32, ptr %4373, align 4, !tbaa !5
  %4375 = call ptr @s2n_strerror(i32 noundef %4374, ptr noundef @.str.3)
  %4376 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4377 = load i32, ptr %4376, align 4, !tbaa !5
  %4378 = call ptr @s2n_strerror_debug(i32 noundef %4377, ptr noundef @.str.3)
  %4379 = call ptr @__errno_location() #12
  %4380 = load i32, ptr %4379, align 4, !tbaa !5
  %4381 = call ptr @strerror(i32 noundef %4380) #11
  %4382 = call ptr @__errno_location() #12
  %4383 = load i32, ptr %4382, align 4, !tbaa !5
  %4384 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4371, ptr noundef @.str, i32 noundef %4372, ptr noundef @.str.34, ptr noundef @.str.2, i32 noundef 164, ptr noundef %4375, ptr noundef %4378, ptr noundef %4381, i32 noundef %4383) #11
  br label %4402

4385:                                             ; preds = %4363, %4356
  %4386 = load i32, ptr %98, align 4, !tbaa !5
  %4387 = call ptr @__errno_location() #12
  store i32 %4386, ptr %4387, align 4, !tbaa !5
  %4388 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4389 = load i32, ptr @test_count, align 4, !tbaa !5
  %4390 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4391 = load i32, ptr %4390, align 4, !tbaa !5
  %4392 = call ptr @s2n_strerror(i32 noundef %4391, ptr noundef @.str.3)
  %4393 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4394 = load i32, ptr %4393, align 4, !tbaa !5
  %4395 = call ptr @s2n_strerror_debug(i32 noundef %4394, ptr noundef @.str.3)
  %4396 = call ptr @__errno_location() #12
  %4397 = load i32, ptr %4396, align 4, !tbaa !5
  %4398 = call ptr @strerror(i32 noundef %4397) #11
  %4399 = call ptr @__errno_location() #12
  %4400 = load i32, ptr %4399, align 4, !tbaa !5
  %4401 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4388, ptr noundef @.str.4, i32 noundef %4389, ptr noundef @.str.34, ptr noundef @.str.2, i32 noundef 164, ptr noundef %4392, ptr noundef %4395, ptr noundef %4398, i32 noundef %4400) #11
  br label %4402

4402:                                             ; preds = %4385, %4368
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #11
  br label %4403

4403:                                             ; preds = %4402
  br label %4404

4404:                                             ; preds = %4403
  call void @exit(i32 noundef 1) #13
  unreachable

4405:                                             ; No predecessors!
  br label %4406

4406:                                             ; preds = %4405
  br label %4407

4407:                                             ; preds = %4406, %4345
  br label %4408

4408:                                             ; preds = %4407
  br label %4409

4409:                                             ; preds = %4408
  br label %4410

4410:                                             ; preds = %4409
  %4411 = load i32, ptr @test_count, align 4, !tbaa !5
  %4412 = add nsw i32 %4411, 1
  store i32 %4412, ptr @test_count, align 4, !tbaa !5
  %4413 = load ptr, ptr %6, align 8, !tbaa !9
  %4414 = getelementptr inbounds %struct.s2n_connection, ptr %4413, i32 0, i32 41
  %4415 = load ptr, ptr %6, align 8, !tbaa !9
  %4416 = getelementptr inbounds %struct.s2n_connection, ptr %4415, i32 0, i32 40
  %4417 = load ptr, ptr %6, align 8, !tbaa !9
  %4418 = getelementptr inbounds %struct.s2n_connection, ptr %4417, i32 0, i32 41
  %4419 = getelementptr inbounds %struct.s2n_stuffer, ptr %4418, i32 0, i32 2
  %4420 = load i32, ptr %4419, align 4, !tbaa !62
  %4421 = load ptr, ptr %6, align 8, !tbaa !9
  %4422 = getelementptr inbounds %struct.s2n_connection, ptr %4421, i32 0, i32 41
  %4423 = getelementptr inbounds %struct.s2n_stuffer, ptr %4422, i32 0, i32 1
  %4424 = load i32, ptr %4423, align 8, !tbaa !63
  %4425 = sub i32 %4420, %4424
  %4426 = call i32 @s2n_stuffer_copy(ptr noundef %4414, ptr noundef %4416, i32 noundef %4425)
  %4427 = icmp eq i32 %4426, -1
  br i1 %4427, label %4428, label %4481

4428:                                             ; preds = %4410
  br label %4429

4429:                                             ; preds = %4428
  br label %4430

4430:                                             ; preds = %4429
  call void @llvm.lifetime.start.p0(i64 4, ptr %99) #11
  %4431 = call ptr @__errno_location() #12
  %4432 = load i32, ptr %4431, align 4, !tbaa !5
  store i32 %4432, ptr %99, align 4, !tbaa !5
  %4433 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4434 = call i32 @s2n_print_stacktrace(ptr noundef %4433)
  %4435 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4436 = trunc i8 %4435 to i1
  br i1 %4436, label %4437, label %4459

4437:                                             ; preds = %4430
  %4438 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4439 = call i32 @fileno(ptr noundef %4438) #11
  %4440 = call i32 @isatty(i32 noundef %4439) #11
  %4441 = icmp ne i32 %4440, 0
  br i1 %4441, label %4442, label %4459

4442:                                             ; preds = %4437
  %4443 = load i32, ptr %99, align 4, !tbaa !5
  %4444 = call ptr @__errno_location() #12
  store i32 %4443, ptr %4444, align 4, !tbaa !5
  %4445 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4446 = load i32, ptr @test_count, align 4, !tbaa !5
  %4447 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4448 = load i32, ptr %4447, align 4, !tbaa !5
  %4449 = call ptr @s2n_strerror(i32 noundef %4448, ptr noundef @.str.3)
  %4450 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4451 = load i32, ptr %4450, align 4, !tbaa !5
  %4452 = call ptr @s2n_strerror_debug(i32 noundef %4451, ptr noundef @.str.3)
  %4453 = call ptr @__errno_location() #12
  %4454 = load i32, ptr %4453, align 4, !tbaa !5
  %4455 = call ptr @strerror(i32 noundef %4454) #11
  %4456 = call ptr @__errno_location() #12
  %4457 = load i32, ptr %4456, align 4, !tbaa !5
  %4458 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4445, ptr noundef @.str, i32 noundef %4446, ptr noundef @.str.35, ptr noundef @.str.2, i32 noundef 165, ptr noundef %4449, ptr noundef %4452, ptr noundef %4455, i32 noundef %4457) #11
  br label %4476

4459:                                             ; preds = %4437, %4430
  %4460 = load i32, ptr %99, align 4, !tbaa !5
  %4461 = call ptr @__errno_location() #12
  store i32 %4460, ptr %4461, align 4, !tbaa !5
  %4462 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4463 = load i32, ptr @test_count, align 4, !tbaa !5
  %4464 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4465 = load i32, ptr %4464, align 4, !tbaa !5
  %4466 = call ptr @s2n_strerror(i32 noundef %4465, ptr noundef @.str.3)
  %4467 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4468 = load i32, ptr %4467, align 4, !tbaa !5
  %4469 = call ptr @s2n_strerror_debug(i32 noundef %4468, ptr noundef @.str.3)
  %4470 = call ptr @__errno_location() #12
  %4471 = load i32, ptr %4470, align 4, !tbaa !5
  %4472 = call ptr @strerror(i32 noundef %4471) #11
  %4473 = call ptr @__errno_location() #12
  %4474 = load i32, ptr %4473, align 4, !tbaa !5
  %4475 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4462, ptr noundef @.str.4, i32 noundef %4463, ptr noundef @.str.35, ptr noundef @.str.2, i32 noundef 165, ptr noundef %4466, ptr noundef %4469, ptr noundef %4472, i32 noundef %4474) #11
  br label %4476

4476:                                             ; preds = %4459, %4442
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #11
  br label %4477

4477:                                             ; preds = %4476
  br label %4478

4478:                                             ; preds = %4477
  call void @exit(i32 noundef 1) #13
  unreachable

4479:                                             ; No predecessors!
  br label %4480

4480:                                             ; preds = %4479
  br label %4481

4481:                                             ; preds = %4480, %4410
  br label %4482

4482:                                             ; preds = %4481
  br label %4483

4483:                                             ; preds = %4482
  call void @llvm.lifetime.start.p0(i64 1, ptr %100) #11
  store i8 0, ptr %100, align 1, !tbaa !61
  call void @llvm.lifetime.start.p0(i64 2, ptr %101) #11
  store i16 0, ptr %101, align 2, !tbaa !59
  br label %4484

4484:                                             ; preds = %4483
  %4485 = load i32, ptr @test_count, align 4, !tbaa !5
  %4486 = add nsw i32 %4485, 1
  store i32 %4486, ptr @test_count, align 4, !tbaa !5
  %4487 = load ptr, ptr %6, align 8, !tbaa !9
  %4488 = call i32 @s2n_record_header_parse(ptr noundef %4487, ptr noundef %100, ptr noundef %101)
  %4489 = icmp eq i32 %4488, -1
  br i1 %4489, label %4490, label %4543

4490:                                             ; preds = %4484
  br label %4491

4491:                                             ; preds = %4490
  br label %4492

4492:                                             ; preds = %4491
  call void @llvm.lifetime.start.p0(i64 4, ptr %102) #11
  %4493 = call ptr @__errno_location() #12
  %4494 = load i32, ptr %4493, align 4, !tbaa !5
  store i32 %4494, ptr %102, align 4, !tbaa !5
  %4495 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4496 = call i32 @s2n_print_stacktrace(ptr noundef %4495)
  %4497 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4498 = trunc i8 %4497 to i1
  br i1 %4498, label %4499, label %4521

4499:                                             ; preds = %4492
  %4500 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4501 = call i32 @fileno(ptr noundef %4500) #11
  %4502 = call i32 @isatty(i32 noundef %4501) #11
  %4503 = icmp ne i32 %4502, 0
  br i1 %4503, label %4504, label %4521

4504:                                             ; preds = %4499
  %4505 = load i32, ptr %102, align 4, !tbaa !5
  %4506 = call ptr @__errno_location() #12
  store i32 %4505, ptr %4506, align 4, !tbaa !5
  %4507 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4508 = load i32, ptr @test_count, align 4, !tbaa !5
  %4509 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4510 = load i32, ptr %4509, align 4, !tbaa !5
  %4511 = call ptr @s2n_strerror(i32 noundef %4510, ptr noundef @.str.3)
  %4512 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4513 = load i32, ptr %4512, align 4, !tbaa !5
  %4514 = call ptr @s2n_strerror_debug(i32 noundef %4513, ptr noundef @.str.3)
  %4515 = call ptr @__errno_location() #12
  %4516 = load i32, ptr %4515, align 4, !tbaa !5
  %4517 = call ptr @strerror(i32 noundef %4516) #11
  %4518 = call ptr @__errno_location() #12
  %4519 = load i32, ptr %4518, align 4, !tbaa !5
  %4520 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4507, ptr noundef @.str, i32 noundef %4508, ptr noundef @.str.36, ptr noundef @.str.2, i32 noundef 170, ptr noundef %4511, ptr noundef %4514, ptr noundef %4517, i32 noundef %4519) #11
  br label %4538

4521:                                             ; preds = %4499, %4492
  %4522 = load i32, ptr %102, align 4, !tbaa !5
  %4523 = call ptr @__errno_location() #12
  store i32 %4522, ptr %4523, align 4, !tbaa !5
  %4524 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4525 = load i32, ptr @test_count, align 4, !tbaa !5
  %4526 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4527 = load i32, ptr %4526, align 4, !tbaa !5
  %4528 = call ptr @s2n_strerror(i32 noundef %4527, ptr noundef @.str.3)
  %4529 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4530 = load i32, ptr %4529, align 4, !tbaa !5
  %4531 = call ptr @s2n_strerror_debug(i32 noundef %4530, ptr noundef @.str.3)
  %4532 = call ptr @__errno_location() #12
  %4533 = load i32, ptr %4532, align 4, !tbaa !5
  %4534 = call ptr @strerror(i32 noundef %4533) #11
  %4535 = call ptr @__errno_location() #12
  %4536 = load i32, ptr %4535, align 4, !tbaa !5
  %4537 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4524, ptr noundef @.str.4, i32 noundef %4525, ptr noundef @.str.36, ptr noundef @.str.2, i32 noundef 170, ptr noundef %4528, ptr noundef %4531, ptr noundef %4534, i32 noundef %4536) #11
  br label %4538

4538:                                             ; preds = %4521, %4504
  call void @llvm.lifetime.end.p0(i64 4, ptr %102) #11
  br label %4539

4539:                                             ; preds = %4538
  br label %4540

4540:                                             ; preds = %4539
  call void @exit(i32 noundef 1) #13
  unreachable

4541:                                             ; No predecessors!
  br label %4542

4542:                                             ; preds = %4541
  br label %4543

4543:                                             ; preds = %4542, %4484
  br label %4544

4544:                                             ; preds = %4543
  br label %4545

4545:                                             ; preds = %4544
  br label %4546

4546:                                             ; preds = %4545
  %4547 = load i32, ptr @test_count, align 4, !tbaa !5
  %4548 = add nsw i32 %4547, 1
  store i32 %4548, ptr @test_count, align 4, !tbaa !5
  %4549 = load ptr, ptr %6, align 8, !tbaa !9
  %4550 = call i32 @s2n_record_parse(ptr noundef %4549)
  %4551 = icmp eq i32 %4550, -1
  br i1 %4551, label %4552, label %4605

4552:                                             ; preds = %4546
  br label %4553

4553:                                             ; preds = %4552
  br label %4554

4554:                                             ; preds = %4553
  call void @llvm.lifetime.start.p0(i64 4, ptr %103) #11
  %4555 = call ptr @__errno_location() #12
  %4556 = load i32, ptr %4555, align 4, !tbaa !5
  store i32 %4556, ptr %103, align 4, !tbaa !5
  %4557 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4558 = call i32 @s2n_print_stacktrace(ptr noundef %4557)
  %4559 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4560 = trunc i8 %4559 to i1
  br i1 %4560, label %4561, label %4583

4561:                                             ; preds = %4554
  %4562 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4563 = call i32 @fileno(ptr noundef %4562) #11
  %4564 = call i32 @isatty(i32 noundef %4563) #11
  %4565 = icmp ne i32 %4564, 0
  br i1 %4565, label %4566, label %4583

4566:                                             ; preds = %4561
  %4567 = load i32, ptr %103, align 4, !tbaa !5
  %4568 = call ptr @__errno_location() #12
  store i32 %4567, ptr %4568, align 4, !tbaa !5
  %4569 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4570 = load i32, ptr @test_count, align 4, !tbaa !5
  %4571 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4572 = load i32, ptr %4571, align 4, !tbaa !5
  %4573 = call ptr @s2n_strerror(i32 noundef %4572, ptr noundef @.str.3)
  %4574 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4575 = load i32, ptr %4574, align 4, !tbaa !5
  %4576 = call ptr @s2n_strerror_debug(i32 noundef %4575, ptr noundef @.str.3)
  %4577 = call ptr @__errno_location() #12
  %4578 = load i32, ptr %4577, align 4, !tbaa !5
  %4579 = call ptr @strerror(i32 noundef %4578) #11
  %4580 = call ptr @__errno_location() #12
  %4581 = load i32, ptr %4580, align 4, !tbaa !5
  %4582 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4569, ptr noundef @.str, i32 noundef %4570, ptr noundef @.str.37, ptr noundef @.str.2, i32 noundef 171, ptr noundef %4573, ptr noundef %4576, ptr noundef %4579, i32 noundef %4581) #11
  br label %4600

4583:                                             ; preds = %4561, %4554
  %4584 = load i32, ptr %103, align 4, !tbaa !5
  %4585 = call ptr @__errno_location() #12
  store i32 %4584, ptr %4585, align 4, !tbaa !5
  %4586 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4587 = load i32, ptr @test_count, align 4, !tbaa !5
  %4588 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4589 = load i32, ptr %4588, align 4, !tbaa !5
  %4590 = call ptr @s2n_strerror(i32 noundef %4589, ptr noundef @.str.3)
  %4591 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4592 = load i32, ptr %4591, align 4, !tbaa !5
  %4593 = call ptr @s2n_strerror_debug(i32 noundef %4592, ptr noundef @.str.3)
  %4594 = call ptr @__errno_location() #12
  %4595 = load i32, ptr %4594, align 4, !tbaa !5
  %4596 = call ptr @strerror(i32 noundef %4595) #11
  %4597 = call ptr @__errno_location() #12
  %4598 = load i32, ptr %4597, align 4, !tbaa !5
  %4599 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4586, ptr noundef @.str.4, i32 noundef %4587, ptr noundef @.str.37, ptr noundef @.str.2, i32 noundef 171, ptr noundef %4590, ptr noundef %4593, ptr noundef %4596, i32 noundef %4598) #11
  br label %4600

4600:                                             ; preds = %4583, %4566
  call void @llvm.lifetime.end.p0(i64 4, ptr %103) #11
  br label %4601

4601:                                             ; preds = %4600
  br label %4602

4602:                                             ; preds = %4601
  call void @exit(i32 noundef 1) #13
  unreachable

4603:                                             ; No predecessors!
  br label %4604

4604:                                             ; preds = %4603
  br label %4605

4605:                                             ; preds = %4604, %4546
  br label %4606

4606:                                             ; preds = %4605
  br label %4607

4607:                                             ; preds = %4606
  br label %4608

4608:                                             ; preds = %4607
  %4609 = load i32, ptr @test_count, align 4, !tbaa !5
  %4610 = add nsw i32 %4609, 1
  store i32 %4610, ptr @test_count, align 4, !tbaa !5
  %4611 = load i8, ptr %100, align 1, !tbaa !61
  %4612 = zext i8 %4611 to i32
  %4613 = icmp eq i32 %4612, 23
  br i1 %4613, label %4667, label %4614

4614:                                             ; preds = %4608
  br label %4615

4615:                                             ; preds = %4614
  br label %4616

4616:                                             ; preds = %4615
  call void @llvm.lifetime.start.p0(i64 4, ptr %104) #11
  %4617 = call ptr @__errno_location() #12
  %4618 = load i32, ptr %4617, align 4, !tbaa !5
  store i32 %4618, ptr %104, align 4, !tbaa !5
  %4619 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4620 = call i32 @s2n_print_stacktrace(ptr noundef %4619)
  %4621 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4622 = trunc i8 %4621 to i1
  br i1 %4622, label %4623, label %4645

4623:                                             ; preds = %4616
  %4624 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4625 = call i32 @fileno(ptr noundef %4624) #11
  %4626 = call i32 @isatty(i32 noundef %4625) #11
  %4627 = icmp ne i32 %4626, 0
  br i1 %4627, label %4628, label %4645

4628:                                             ; preds = %4623
  %4629 = load i32, ptr %104, align 4, !tbaa !5
  %4630 = call ptr @__errno_location() #12
  store i32 %4629, ptr %4630, align 4, !tbaa !5
  %4631 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4632 = load i32, ptr @test_count, align 4, !tbaa !5
  %4633 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4634 = load i32, ptr %4633, align 4, !tbaa !5
  %4635 = call ptr @s2n_strerror(i32 noundef %4634, ptr noundef @.str.3)
  %4636 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4637 = load i32, ptr %4636, align 4, !tbaa !5
  %4638 = call ptr @s2n_strerror_debug(i32 noundef %4637, ptr noundef @.str.3)
  %4639 = call ptr @__errno_location() #12
  %4640 = load i32, ptr %4639, align 4, !tbaa !5
  %4641 = call ptr @strerror(i32 noundef %4640) #11
  %4642 = call ptr @__errno_location() #12
  %4643 = load i32, ptr %4642, align 4, !tbaa !5
  %4644 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4631, ptr noundef @.str, i32 noundef %4632, ptr noundef @.str.38, ptr noundef @.str.2, i32 noundef 172, ptr noundef %4635, ptr noundef %4638, ptr noundef %4641, i32 noundef %4643) #11
  br label %4662

4645:                                             ; preds = %4623, %4616
  %4646 = load i32, ptr %104, align 4, !tbaa !5
  %4647 = call ptr @__errno_location() #12
  store i32 %4646, ptr %4647, align 4, !tbaa !5
  %4648 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4649 = load i32, ptr @test_count, align 4, !tbaa !5
  %4650 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4651 = load i32, ptr %4650, align 4, !tbaa !5
  %4652 = call ptr @s2n_strerror(i32 noundef %4651, ptr noundef @.str.3)
  %4653 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4654 = load i32, ptr %4653, align 4, !tbaa !5
  %4655 = call ptr @s2n_strerror_debug(i32 noundef %4654, ptr noundef @.str.3)
  %4656 = call ptr @__errno_location() #12
  %4657 = load i32, ptr %4656, align 4, !tbaa !5
  %4658 = call ptr @strerror(i32 noundef %4657) #11
  %4659 = call ptr @__errno_location() #12
  %4660 = load i32, ptr %4659, align 4, !tbaa !5
  %4661 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4648, ptr noundef @.str.4, i32 noundef %4649, ptr noundef @.str.38, ptr noundef @.str.2, i32 noundef 172, ptr noundef %4652, ptr noundef %4655, ptr noundef %4658, i32 noundef %4660) #11
  br label %4662

4662:                                             ; preds = %4645, %4628
  call void @llvm.lifetime.end.p0(i64 4, ptr %104) #11
  br label %4663

4663:                                             ; preds = %4662
  br label %4664

4664:                                             ; preds = %4663
  call void @exit(i32 noundef 1) #13
  unreachable

4665:                                             ; No predecessors!
  br label %4666

4666:                                             ; preds = %4665
  br label %4667

4667:                                             ; preds = %4666, %4608
  br label %4668

4668:                                             ; preds = %4667
  br label %4669

4669:                                             ; preds = %4668
  br label %4670

4670:                                             ; preds = %4669
  %4671 = load i32, ptr @test_count, align 4, !tbaa !5
  %4672 = add nsw i32 %4671, 1
  store i32 %4672, ptr @test_count, align 4, !tbaa !5
  %4673 = load i16, ptr %101, align 2, !tbaa !59
  %4674 = zext i16 %4673 to i32
  %4675 = load i16, ptr %89, align 2, !tbaa !59
  %4676 = zext i16 %4675 to i32
  %4677 = icmp eq i32 %4674, %4676
  br i1 %4677, label %4731, label %4678

4678:                                             ; preds = %4670
  br label %4679

4679:                                             ; preds = %4678
  br label %4680

4680:                                             ; preds = %4679
  call void @llvm.lifetime.start.p0(i64 4, ptr %105) #11
  %4681 = call ptr @__errno_location() #12
  %4682 = load i32, ptr %4681, align 4, !tbaa !5
  store i32 %4682, ptr %105, align 4, !tbaa !5
  %4683 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4684 = call i32 @s2n_print_stacktrace(ptr noundef %4683)
  %4685 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4686 = trunc i8 %4685 to i1
  br i1 %4686, label %4687, label %4709

4687:                                             ; preds = %4680
  %4688 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4689 = call i32 @fileno(ptr noundef %4688) #11
  %4690 = call i32 @isatty(i32 noundef %4689) #11
  %4691 = icmp ne i32 %4690, 0
  br i1 %4691, label %4692, label %4709

4692:                                             ; preds = %4687
  %4693 = load i32, ptr %105, align 4, !tbaa !5
  %4694 = call ptr @__errno_location() #12
  store i32 %4693, ptr %4694, align 4, !tbaa !5
  %4695 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4696 = load i32, ptr @test_count, align 4, !tbaa !5
  %4697 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4698 = load i32, ptr %4697, align 4, !tbaa !5
  %4699 = call ptr @s2n_strerror(i32 noundef %4698, ptr noundef @.str.3)
  %4700 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4701 = load i32, ptr %4700, align 4, !tbaa !5
  %4702 = call ptr @s2n_strerror_debug(i32 noundef %4701, ptr noundef @.str.3)
  %4703 = call ptr @__errno_location() #12
  %4704 = load i32, ptr %4703, align 4, !tbaa !5
  %4705 = call ptr @strerror(i32 noundef %4704) #11
  %4706 = call ptr @__errno_location() #12
  %4707 = load i32, ptr %4706, align 4, !tbaa !5
  %4708 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4695, ptr noundef @.str, i32 noundef %4696, ptr noundef @.str.39, ptr noundef @.str.2, i32 noundef 173, ptr noundef %4699, ptr noundef %4702, ptr noundef %4705, i32 noundef %4707) #11
  br label %4726

4709:                                             ; preds = %4687, %4680
  %4710 = load i32, ptr %105, align 4, !tbaa !5
  %4711 = call ptr @__errno_location() #12
  store i32 %4710, ptr %4711, align 4, !tbaa !5
  %4712 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4713 = load i32, ptr @test_count, align 4, !tbaa !5
  %4714 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4715 = load i32, ptr %4714, align 4, !tbaa !5
  %4716 = call ptr @s2n_strerror(i32 noundef %4715, ptr noundef @.str.3)
  %4717 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4718 = load i32, ptr %4717, align 4, !tbaa !5
  %4719 = call ptr @s2n_strerror_debug(i32 noundef %4718, ptr noundef @.str.3)
  %4720 = call ptr @__errno_location() #12
  %4721 = load i32, ptr %4720, align 4, !tbaa !5
  %4722 = call ptr @strerror(i32 noundef %4721) #11
  %4723 = call ptr @__errno_location() #12
  %4724 = load i32, ptr %4723, align 4, !tbaa !5
  %4725 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4712, ptr noundef @.str.4, i32 noundef %4713, ptr noundef @.str.39, ptr noundef @.str.2, i32 noundef 173, ptr noundef %4716, ptr noundef %4719, ptr noundef %4722, i32 noundef %4724) #11
  br label %4726

4726:                                             ; preds = %4709, %4692
  call void @llvm.lifetime.end.p0(i64 4, ptr %105) #11
  br label %4727

4727:                                             ; preds = %4726
  br label %4728

4728:                                             ; preds = %4727
  call void @exit(i32 noundef 1) #13
  unreachable

4729:                                             ; No predecessors!
  br label %4730

4730:                                             ; preds = %4729
  br label %4731

4731:                                             ; preds = %4730, %4670
  br label %4732

4732:                                             ; preds = %4731
  br label %4733

4733:                                             ; preds = %4732
  br label %4734

4734:                                             ; preds = %4733
  %4735 = load i32, ptr @test_count, align 4, !tbaa !5
  %4736 = add nsw i32 %4735, 1
  store i32 %4736, ptr @test_count, align 4, !tbaa !5
  %4737 = load ptr, ptr %6, align 8, !tbaa !9
  %4738 = getelementptr inbounds %struct.s2n_connection, ptr %4737, i32 0, i32 38
  %4739 = call i32 @s2n_stuffer_wipe(ptr noundef %4738)
  %4740 = icmp eq i32 %4739, -1
  br i1 %4740, label %4741, label %4794

4741:                                             ; preds = %4734
  br label %4742

4742:                                             ; preds = %4741
  br label %4743

4743:                                             ; preds = %4742
  call void @llvm.lifetime.start.p0(i64 4, ptr %106) #11
  %4744 = call ptr @__errno_location() #12
  %4745 = load i32, ptr %4744, align 4, !tbaa !5
  store i32 %4745, ptr %106, align 4, !tbaa !5
  %4746 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4747 = call i32 @s2n_print_stacktrace(ptr noundef %4746)
  %4748 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4749 = trunc i8 %4748 to i1
  br i1 %4749, label %4750, label %4772

4750:                                             ; preds = %4743
  %4751 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4752 = call i32 @fileno(ptr noundef %4751) #11
  %4753 = call i32 @isatty(i32 noundef %4752) #11
  %4754 = icmp ne i32 %4753, 0
  br i1 %4754, label %4755, label %4772

4755:                                             ; preds = %4750
  %4756 = load i32, ptr %106, align 4, !tbaa !5
  %4757 = call ptr @__errno_location() #12
  store i32 %4756, ptr %4757, align 4, !tbaa !5
  %4758 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4759 = load i32, ptr @test_count, align 4, !tbaa !5
  %4760 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4761 = load i32, ptr %4760, align 4, !tbaa !5
  %4762 = call ptr @s2n_strerror(i32 noundef %4761, ptr noundef @.str.3)
  %4763 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4764 = load i32, ptr %4763, align 4, !tbaa !5
  %4765 = call ptr @s2n_strerror_debug(i32 noundef %4764, ptr noundef @.str.3)
  %4766 = call ptr @__errno_location() #12
  %4767 = load i32, ptr %4766, align 4, !tbaa !5
  %4768 = call ptr @strerror(i32 noundef %4767) #11
  %4769 = call ptr @__errno_location() #12
  %4770 = load i32, ptr %4769, align 4, !tbaa !5
  %4771 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4758, ptr noundef @.str, i32 noundef %4759, ptr noundef @.str.33, ptr noundef @.str.2, i32 noundef 175, ptr noundef %4762, ptr noundef %4765, ptr noundef %4768, i32 noundef %4770) #11
  br label %4789

4772:                                             ; preds = %4750, %4743
  %4773 = load i32, ptr %106, align 4, !tbaa !5
  %4774 = call ptr @__errno_location() #12
  store i32 %4773, ptr %4774, align 4, !tbaa !5
  %4775 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4776 = load i32, ptr @test_count, align 4, !tbaa !5
  %4777 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4778 = load i32, ptr %4777, align 4, !tbaa !5
  %4779 = call ptr @s2n_strerror(i32 noundef %4778, ptr noundef @.str.3)
  %4780 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4781 = load i32, ptr %4780, align 4, !tbaa !5
  %4782 = call ptr @s2n_strerror_debug(i32 noundef %4781, ptr noundef @.str.3)
  %4783 = call ptr @__errno_location() #12
  %4784 = load i32, ptr %4783, align 4, !tbaa !5
  %4785 = call ptr @strerror(i32 noundef %4784) #11
  %4786 = call ptr @__errno_location() #12
  %4787 = load i32, ptr %4786, align 4, !tbaa !5
  %4788 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4775, ptr noundef @.str.4, i32 noundef %4776, ptr noundef @.str.33, ptr noundef @.str.2, i32 noundef 175, ptr noundef %4779, ptr noundef %4782, ptr noundef %4785, i32 noundef %4787) #11
  br label %4789

4789:                                             ; preds = %4772, %4755
  call void @llvm.lifetime.end.p0(i64 4, ptr %106) #11
  br label %4790

4790:                                             ; preds = %4789
  br label %4791

4791:                                             ; preds = %4790
  call void @exit(i32 noundef 1) #13
  unreachable

4792:                                             ; No predecessors!
  br label %4793

4793:                                             ; preds = %4792
  br label %4794

4794:                                             ; preds = %4793, %4734
  br label %4795

4795:                                             ; preds = %4794
  br label %4796

4796:                                             ; preds = %4795
  br label %4797

4797:                                             ; preds = %4796
  %4798 = load i32, ptr @test_count, align 4, !tbaa !5
  %4799 = add nsw i32 %4798, 1
  store i32 %4799, ptr @test_count, align 4, !tbaa !5
  %4800 = load ptr, ptr %6, align 8, !tbaa !9
  %4801 = getelementptr inbounds %struct.s2n_connection, ptr %4800, i32 0, i32 40
  %4802 = call i32 @s2n_stuffer_wipe(ptr noundef %4801)
  %4803 = icmp eq i32 %4802, -1
  br i1 %4803, label %4804, label %4857

4804:                                             ; preds = %4797
  br label %4805

4805:                                             ; preds = %4804
  br label %4806

4806:                                             ; preds = %4805
  call void @llvm.lifetime.start.p0(i64 4, ptr %107) #11
  %4807 = call ptr @__errno_location() #12
  %4808 = load i32, ptr %4807, align 4, !tbaa !5
  store i32 %4808, ptr %107, align 4, !tbaa !5
  %4809 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4810 = call i32 @s2n_print_stacktrace(ptr noundef %4809)
  %4811 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4812 = trunc i8 %4811 to i1
  br i1 %4812, label %4813, label %4835

4813:                                             ; preds = %4806
  %4814 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4815 = call i32 @fileno(ptr noundef %4814) #11
  %4816 = call i32 @isatty(i32 noundef %4815) #11
  %4817 = icmp ne i32 %4816, 0
  br i1 %4817, label %4818, label %4835

4818:                                             ; preds = %4813
  %4819 = load i32, ptr %107, align 4, !tbaa !5
  %4820 = call ptr @__errno_location() #12
  store i32 %4819, ptr %4820, align 4, !tbaa !5
  %4821 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4822 = load i32, ptr @test_count, align 4, !tbaa !5
  %4823 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4824 = load i32, ptr %4823, align 4, !tbaa !5
  %4825 = call ptr @s2n_strerror(i32 noundef %4824, ptr noundef @.str.3)
  %4826 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4827 = load i32, ptr %4826, align 4, !tbaa !5
  %4828 = call ptr @s2n_strerror_debug(i32 noundef %4827, ptr noundef @.str.3)
  %4829 = call ptr @__errno_location() #12
  %4830 = load i32, ptr %4829, align 4, !tbaa !5
  %4831 = call ptr @strerror(i32 noundef %4830) #11
  %4832 = call ptr @__errno_location() #12
  %4833 = load i32, ptr %4832, align 4, !tbaa !5
  %4834 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4821, ptr noundef @.str, i32 noundef %4822, ptr noundef @.str.32, ptr noundef @.str.2, i32 noundef 176, ptr noundef %4825, ptr noundef %4828, ptr noundef %4831, i32 noundef %4833) #11
  br label %4852

4835:                                             ; preds = %4813, %4806
  %4836 = load i32, ptr %107, align 4, !tbaa !5
  %4837 = call ptr @__errno_location() #12
  store i32 %4836, ptr %4837, align 4, !tbaa !5
  %4838 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4839 = load i32, ptr @test_count, align 4, !tbaa !5
  %4840 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4841 = load i32, ptr %4840, align 4, !tbaa !5
  %4842 = call ptr @s2n_strerror(i32 noundef %4841, ptr noundef @.str.3)
  %4843 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4844 = load i32, ptr %4843, align 4, !tbaa !5
  %4845 = call ptr @s2n_strerror_debug(i32 noundef %4844, ptr noundef @.str.3)
  %4846 = call ptr @__errno_location() #12
  %4847 = load i32, ptr %4846, align 4, !tbaa !5
  %4848 = call ptr @strerror(i32 noundef %4847) #11
  %4849 = call ptr @__errno_location() #12
  %4850 = load i32, ptr %4849, align 4, !tbaa !5
  %4851 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4838, ptr noundef @.str.4, i32 noundef %4839, ptr noundef @.str.32, ptr noundef @.str.2, i32 noundef 176, ptr noundef %4842, ptr noundef %4845, ptr noundef %4848, i32 noundef %4850) #11
  br label %4852

4852:                                             ; preds = %4835, %4818
  call void @llvm.lifetime.end.p0(i64 4, ptr %107) #11
  br label %4853

4853:                                             ; preds = %4852
  br label %4854

4854:                                             ; preds = %4853
  call void @exit(i32 noundef 1) #13
  unreachable

4855:                                             ; No predecessors!
  br label %4856

4856:                                             ; preds = %4855
  br label %4857

4857:                                             ; preds = %4856, %4797
  br label %4858

4858:                                             ; preds = %4857
  br label %4859

4859:                                             ; preds = %4858
  call void @llvm.lifetime.end.p0(i64 2, ptr %101) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %100) #11
  call void @llvm.lifetime.end.p0(i64 2, ptr %89) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %80) #11
  br label %4860

4860:                                             ; preds = %4859
  %4861 = load i64, ptr %79, align 8, !tbaa !58
  %4862 = add i64 %4861, 1
  store i64 %4862, ptr %79, align 8, !tbaa !58
  br label %3377, !llvm.loop !67

4863:                                             ; preds = %3380
  br label %4864

4864:                                             ; preds = %4863
  %4865 = load i32, ptr @test_count, align 4, !tbaa !5
  %4866 = add nsw i32 %4865, 1
  store i32 %4866, ptr @test_count, align 4, !tbaa !5
  %4867 = load ptr, ptr %6, align 8, !tbaa !9
  %4868 = getelementptr inbounds %struct.s2n_connection, ptr %4867, i32 0, i32 27
  %4869 = load ptr, ptr %4868, align 8, !tbaa !15
  %4870 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %4869, i32 0, i32 0
  %4871 = load ptr, ptr %4870, align 8, !tbaa !44
  %4872 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %4871, i32 0, i32 6
  %4873 = load ptr, ptr %4872, align 8, !tbaa !49
  %4874 = getelementptr inbounds %struct.s2n_record_algorithm, ptr %4873, i32 0, i32 0
  %4875 = load ptr, ptr %4874, align 8, !tbaa !51
  %4876 = getelementptr inbounds %struct.s2n_cipher, ptr %4875, i32 0, i32 7
  %4877 = load ptr, ptr %4876, align 8, !tbaa !66
  %4878 = load ptr, ptr %6, align 8, !tbaa !9
  %4879 = getelementptr inbounds %struct.s2n_connection, ptr %4878, i32 0, i32 27
  %4880 = load ptr, ptr %4879, align 8, !tbaa !15
  %4881 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %4880, i32 0, i32 2
  %4882 = call i32 %4877(ptr noundef %4881)
  %4883 = getelementptr inbounds %struct.s2n_result, ptr %108, i32 0, i32 0
  store i32 %4882, ptr %4883, align 4
  %4884 = getelementptr inbounds %struct.s2n_result, ptr %108, i32 0, i32 0
  %4885 = load i32, ptr %4884, align 4
  %4886 = call zeroext i1 @s2n_result_is_ok(i32 %4885)
  br i1 %4886, label %4940, label %4887

4887:                                             ; preds = %4864
  br label %4888

4888:                                             ; preds = %4887
  br label %4889

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

4896:                                             ; preds = %4889
  %4897 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4898 = call i32 @fileno(ptr noundef %4897) #11
  %4899 = call i32 @isatty(i32 noundef %4898) #11
  %4900 = icmp ne i32 %4899, 0
  br i1 %4900, label %4901, label %4918

4901:                                             ; preds = %4896
  %4902 = load i32, ptr %109, align 4, !tbaa !5
  %4903 = call ptr @__errno_location() #12
  store i32 %4902, ptr %4903, align 4, !tbaa !5
  %4904 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4905 = load i32, ptr @test_count, align 4, !tbaa !5
  %4906 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4907 = load i32, ptr %4906, align 4, !tbaa !5
  %4908 = call ptr @s2n_strerror(i32 noundef %4907, ptr noundef @.str.3)
  %4909 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4910 = load i32, ptr %4909, align 4, !tbaa !5
  %4911 = call ptr @s2n_strerror_debug(i32 noundef %4910, ptr noundef @.str.3)
  %4912 = call ptr @__errno_location() #12
  %4913 = load i32, ptr %4912, align 4, !tbaa !5
  %4914 = call ptr @strerror(i32 noundef %4913) #11
  %4915 = call ptr @__errno_location() #12
  %4916 = load i32, ptr %4915, align 4, !tbaa !5
  %4917 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4904, ptr noundef @.str, i32 noundef %4905, ptr noundef @.str.40, ptr noundef @.str.2, i32 noundef 179, ptr noundef %4908, ptr noundef %4911, ptr noundef %4914, i32 noundef %4916) #11
  br label %4935

4918:                                             ; preds = %4896, %4889
  %4919 = load i32, ptr %109, align 4, !tbaa !5
  %4920 = call ptr @__errno_location() #12
  store i32 %4919, ptr %4920, align 4, !tbaa !5
  %4921 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4922 = load i32, ptr @test_count, align 4, !tbaa !5
  %4923 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4924 = load i32, ptr %4923, align 4, !tbaa !5
  %4925 = call ptr @s2n_strerror(i32 noundef %4924, ptr noundef @.str.3)
  %4926 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4927 = load i32, ptr %4926, align 4, !tbaa !5
  %4928 = call ptr @s2n_strerror_debug(i32 noundef %4927, ptr noundef @.str.3)
  %4929 = call ptr @__errno_location() #12
  %4930 = load i32, ptr %4929, align 4, !tbaa !5
  %4931 = call ptr @strerror(i32 noundef %4930) #11
  %4932 = call ptr @__errno_location() #12
  %4933 = load i32, ptr %4932, align 4, !tbaa !5
  %4934 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4921, ptr noundef @.str.4, i32 noundef %4922, ptr noundef @.str.40, ptr noundef @.str.2, i32 noundef 179, ptr noundef %4925, ptr noundef %4928, ptr noundef %4931, i32 noundef %4933) #11
  br label %4935

4935:                                             ; preds = %4918, %4901
  call void @llvm.lifetime.end.p0(i64 4, ptr %109) #11
  br label %4936

4936:                                             ; preds = %4935
  br label %4937

4937:                                             ; preds = %4936
  call void @exit(i32 noundef 1) #13
  unreachable

4938:                                             ; No predecessors!
  br label %4939

4939:                                             ; preds = %4938
  br label %4940

4940:                                             ; preds = %4939, %4864
  br label %4941

4941:                                             ; preds = %4940
  br label %4942

4942:                                             ; preds = %4941
  br label %4943

4943:                                             ; preds = %4942
  %4944 = load i32, ptr @test_count, align 4, !tbaa !5
  %4945 = add nsw i32 %4944, 1
  store i32 %4945, ptr @test_count, align 4, !tbaa !5
  %4946 = load ptr, ptr %6, align 8, !tbaa !9
  %4947 = getelementptr inbounds %struct.s2n_connection, ptr %4946, i32 0, i32 27
  %4948 = load ptr, ptr %4947, align 8, !tbaa !15
  %4949 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %4948, i32 0, i32 0
  %4950 = load ptr, ptr %4949, align 8, !tbaa !44
  %4951 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %4950, i32 0, i32 6
  %4952 = load ptr, ptr %4951, align 8, !tbaa !49
  %4953 = getelementptr inbounds %struct.s2n_record_algorithm, ptr %4952, i32 0, i32 0
  %4954 = load ptr, ptr %4953, align 8, !tbaa !51
  %4955 = getelementptr inbounds %struct.s2n_cipher, ptr %4954, i32 0, i32 7
  %4956 = load ptr, ptr %4955, align 8, !tbaa !66
  %4957 = load ptr, ptr %6, align 8, !tbaa !9
  %4958 = getelementptr inbounds %struct.s2n_connection, ptr %4957, i32 0, i32 27
  %4959 = load ptr, ptr %4958, align 8, !tbaa !15
  %4960 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %4959, i32 0, i32 1
  %4961 = call i32 %4956(ptr noundef %4960)
  %4962 = getelementptr inbounds %struct.s2n_result, ptr %110, i32 0, i32 0
  store i32 %4961, ptr %4962, align 4
  %4963 = getelementptr inbounds %struct.s2n_result, ptr %110, i32 0, i32 0
  %4964 = load i32, ptr %4963, align 4
  %4965 = call zeroext i1 @s2n_result_is_ok(i32 %4964)
  br i1 %4965, label %5019, label %4966

4966:                                             ; preds = %4943
  br label %4967

4967:                                             ; preds = %4966
  br label %4968

4968:                                             ; preds = %4967
  call void @llvm.lifetime.start.p0(i64 4, ptr %111) #11
  %4969 = call ptr @__errno_location() #12
  %4970 = load i32, ptr %4969, align 4, !tbaa !5
  store i32 %4970, ptr %111, align 4, !tbaa !5
  %4971 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4972 = call i32 @s2n_print_stacktrace(ptr noundef %4971)
  %4973 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4974 = trunc i8 %4973 to i1
  br i1 %4974, label %4975, label %4997

4975:                                             ; preds = %4968
  %4976 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4977 = call i32 @fileno(ptr noundef %4976) #11
  %4978 = call i32 @isatty(i32 noundef %4977) #11
  %4979 = icmp ne i32 %4978, 0
  br i1 %4979, label %4980, label %4997

4980:                                             ; preds = %4975
  %4981 = load i32, ptr %111, align 4, !tbaa !5
  %4982 = call ptr @__errno_location() #12
  store i32 %4981, ptr %4982, align 4, !tbaa !5
  %4983 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4984 = load i32, ptr @test_count, align 4, !tbaa !5
  %4985 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4986 = load i32, ptr %4985, align 4, !tbaa !5
  %4987 = call ptr @s2n_strerror(i32 noundef %4986, ptr noundef @.str.3)
  %4988 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4989 = load i32, ptr %4988, align 4, !tbaa !5
  %4990 = call ptr @s2n_strerror_debug(i32 noundef %4989, ptr noundef @.str.3)
  %4991 = call ptr @__errno_location() #12
  %4992 = load i32, ptr %4991, align 4, !tbaa !5
  %4993 = call ptr @strerror(i32 noundef %4992) #11
  %4994 = call ptr @__errno_location() #12
  %4995 = load i32, ptr %4994, align 4, !tbaa !5
  %4996 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4983, ptr noundef @.str, i32 noundef %4984, ptr noundef @.str.41, ptr noundef @.str.2, i32 noundef 180, ptr noundef %4987, ptr noundef %4990, ptr noundef %4993, i32 noundef %4995) #11
  br label %5014

4997:                                             ; preds = %4975, %4968
  %4998 = load i32, ptr %111, align 4, !tbaa !5
  %4999 = call ptr @__errno_location() #12
  store i32 %4998, ptr %4999, align 4, !tbaa !5
  %5000 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5001 = load i32, ptr @test_count, align 4, !tbaa !5
  %5002 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5003 = load i32, ptr %5002, align 4, !tbaa !5
  %5004 = call ptr @s2n_strerror(i32 noundef %5003, ptr noundef @.str.3)
  %5005 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5006 = load i32, ptr %5005, align 4, !tbaa !5
  %5007 = call ptr @s2n_strerror_debug(i32 noundef %5006, ptr noundef @.str.3)
  %5008 = call ptr @__errno_location() #12
  %5009 = load i32, ptr %5008, align 4, !tbaa !5
  %5010 = call ptr @strerror(i32 noundef %5009) #11
  %5011 = call ptr @__errno_location() #12
  %5012 = load i32, ptr %5011, align 4, !tbaa !5
  %5013 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5000, ptr noundef @.str.4, i32 noundef %5001, ptr noundef @.str.41, ptr noundef @.str.2, i32 noundef 180, ptr noundef %5004, ptr noundef %5007, ptr noundef %5010, i32 noundef %5012) #11
  br label %5014

5014:                                             ; preds = %4997, %4980
  call void @llvm.lifetime.end.p0(i64 4, ptr %111) #11
  br label %5015

5015:                                             ; preds = %5014
  br label %5016

5016:                                             ; preds = %5015
  call void @exit(i32 noundef 1) #13
  unreachable

5017:                                             ; No predecessors!
  br label %5018

5018:                                             ; preds = %5017
  br label %5019

5019:                                             ; preds = %5018, %4943
  br label %5020

5020:                                             ; preds = %5019
  br label %5021

5021:                                             ; preds = %5020
  br label %5022

5022:                                             ; preds = %5021
  %5023 = load i32, ptr @test_count, align 4, !tbaa !5
  %5024 = add nsw i32 %5023, 1
  store i32 %5024, ptr @test_count, align 4, !tbaa !5
  %5025 = load ptr, ptr %6, align 8, !tbaa !9
  %5026 = call i32 @s2n_connection_free(ptr noundef %5025)
  %5027 = icmp eq i32 %5026, -1
  br i1 %5027, label %5028, label %5081

5028:                                             ; preds = %5022
  br label %5029

5029:                                             ; preds = %5028
  br label %5030

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

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

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

5059:                                             ; preds = %5037, %5030
  %5060 = load i32, ptr %112, align 4, !tbaa !5
  %5061 = call ptr @__errno_location() #12
  store i32 %5060, ptr %5061, align 4, !tbaa !5
  %5062 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5063 = load i32, ptr @test_count, align 4, !tbaa !5
  %5064 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5065 = load i32, ptr %5064, align 4, !tbaa !5
  %5066 = call ptr @s2n_strerror(i32 noundef %5065, ptr noundef @.str.3)
  %5067 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5068 = load i32, ptr %5067, align 4, !tbaa !5
  %5069 = call ptr @s2n_strerror_debug(i32 noundef %5068, ptr noundef @.str.3)
  %5070 = call ptr @__errno_location() #12
  %5071 = load i32, ptr %5070, align 4, !tbaa !5
  %5072 = call ptr @strerror(i32 noundef %5071) #11
  %5073 = call ptr @__errno_location() #12
  %5074 = load i32, ptr %5073, align 4, !tbaa !5
  %5075 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5062, ptr noundef @.str.4, i32 noundef %5063, ptr noundef @.str.42, ptr noundef @.str.2, i32 noundef 181, ptr noundef %5066, ptr noundef %5069, ptr noundef %5072, i32 noundef %5074) #11
  br label %5076

5076:                                             ; preds = %5059, %5042
  call void @llvm.lifetime.end.p0(i64 4, ptr %112) #11
  br label %5077

5077:                                             ; preds = %5076
  br label %5078

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

5079:                                             ; No predecessors!
  br label %5080

5080:                                             ; preds = %5079
  br label %5081

5081:                                             ; preds = %5080, %5022
  br label %5082

5082:                                             ; preds = %5081
  br label %5083

5083:                                             ; preds = %5082
  br label %5084

5084:                                             ; preds = %5083
  br label %5085

5085:                                             ; preds = %5084
  %5086 = call i32 @s2n_cleanup()
  %5087 = icmp eq i32 %5086, -1
  br i1 %5087, label %5088, label %5141

5088:                                             ; preds = %5085
  br label %5089

5089:                                             ; preds = %5088
  br label %5090

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

5097:                                             ; preds = %5090
  %5098 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5099 = call i32 @fileno(ptr noundef %5098) #11
  %5100 = call i32 @isatty(i32 noundef %5099) #11
  %5101 = icmp ne i32 %5100, 0
  br i1 %5101, label %5102, label %5119

5102:                                             ; preds = %5097
  %5103 = load i32, ptr %113, align 4, !tbaa !5
  %5104 = call ptr @__errno_location() #12
  store i32 %5103, ptr %5104, align 4, !tbaa !5
  %5105 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5106 = load i32, ptr @test_count, align 4, !tbaa !5
  %5107 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5108 = load i32, ptr %5107, align 4, !tbaa !5
  %5109 = call ptr @s2n_strerror(i32 noundef %5108, ptr noundef @.str.3)
  %5110 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5111 = load i32, ptr %5110, align 4, !tbaa !5
  %5112 = call ptr @s2n_strerror_debug(i32 noundef %5111, ptr noundef @.str.3)
  %5113 = call ptr @__errno_location() #12
  %5114 = load i32, ptr %5113, align 4, !tbaa !5
  %5115 = call ptr @strerror(i32 noundef %5114) #11
  %5116 = call ptr @__errno_location() #12
  %5117 = load i32, ptr %5116, align 4, !tbaa !5
  %5118 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5105, ptr noundef @.str, i32 noundef %5106, ptr noundef @.str.45, ptr noundef @.str.2, i32 noundef 183, ptr noundef %5109, ptr noundef %5112, ptr noundef %5115, i32 noundef %5117) #11
  br label %5136

5119:                                             ; preds = %5097, %5090
  %5120 = load i32, ptr %113, align 4, !tbaa !5
  %5121 = call ptr @__errno_location() #12
  store i32 %5120, ptr %5121, align 4, !tbaa !5
  %5122 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5123 = load i32, ptr @test_count, align 4, !tbaa !5
  %5124 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5125 = load i32, ptr %5124, align 4, !tbaa !5
  %5126 = call ptr @s2n_strerror(i32 noundef %5125, ptr noundef @.str.3)
  %5127 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5128 = load i32, ptr %5127, align 4, !tbaa !5
  %5129 = call ptr @s2n_strerror_debug(i32 noundef %5128, ptr noundef @.str.3)
  %5130 = call ptr @__errno_location() #12
  %5131 = load i32, ptr %5130, align 4, !tbaa !5
  %5132 = call ptr @strerror(i32 noundef %5131) #11
  %5133 = call ptr @__errno_location() #12
  %5134 = load i32, ptr %5133, align 4, !tbaa !5
  %5135 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5122, ptr noundef @.str.4, i32 noundef %5123, ptr noundef @.str.45, ptr noundef @.str.2, i32 noundef 183, ptr noundef %5126, ptr noundef %5129, ptr noundef %5132, i32 noundef %5134) #11
  br label %5136

5136:                                             ; preds = %5119, %5102
  call void @llvm.lifetime.end.p0(i64 4, ptr %113) #11
  br label %5137

5137:                                             ; preds = %5136
  br label %5138

5138:                                             ; preds = %5137
  call void @exit(i32 noundef 1) #13
  unreachable

5139:                                             ; No predecessors!
  br label %5140

5140:                                             ; preds = %5139
  br label %5141

5141:                                             ; preds = %5140, %5085
  br label %5142

5142:                                             ; preds = %5141
  br label %5143

5143:                                             ; preds = %5142
  br label %5144

5144:                                             ; preds = %5143
  br label %5145

5145:                                             ; preds = %5144
  %5146 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %5147 = icmp eq i32 %5146, -1
  br i1 %5147, label %5148, label %5201

5148:                                             ; preds = %5145
  br label %5149

5149:                                             ; preds = %5148
  br label %5150

5150:                                             ; preds = %5149
  call void @llvm.lifetime.start.p0(i64 4, ptr %114) #11
  %5151 = call ptr @__errno_location() #12
  %5152 = load i32, ptr %5151, align 4, !tbaa !5
  store i32 %5152, ptr %114, align 4, !tbaa !5
  %5153 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5154 = call i32 @s2n_print_stacktrace(ptr noundef %5153)
  %5155 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5156 = trunc i8 %5155 to i1
  br i1 %5156, label %5157, label %5179

5157:                                             ; preds = %5150
  %5158 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5159 = call i32 @fileno(ptr noundef %5158) #11
  %5160 = call i32 @isatty(i32 noundef %5159) #11
  %5161 = icmp ne i32 %5160, 0
  br i1 %5161, label %5162, label %5179

5162:                                             ; preds = %5157
  %5163 = load i32, ptr %114, align 4, !tbaa !5
  %5164 = call ptr @__errno_location() #12
  store i32 %5163, ptr %5164, align 4, !tbaa !5
  %5165 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5166 = load i32, ptr @test_count, align 4, !tbaa !5
  %5167 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5168 = load i32, ptr %5167, align 4, !tbaa !5
  %5169 = call ptr @s2n_strerror(i32 noundef %5168, ptr noundef @.str.3)
  %5170 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5171 = load i32, ptr %5170, align 4, !tbaa !5
  %5172 = call ptr @s2n_strerror_debug(i32 noundef %5171, ptr noundef @.str.3)
  %5173 = call ptr @__errno_location() #12
  %5174 = load i32, ptr %5173, align 4, !tbaa !5
  %5175 = call ptr @strerror(i32 noundef %5174) #11
  %5176 = call ptr @__errno_location() #12
  %5177 = load i32, ptr %5176, align 4, !tbaa !5
  %5178 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5165, ptr noundef @.str, i32 noundef %5166, ptr noundef @.str.46, ptr noundef @.str.2, i32 noundef 183, ptr noundef %5169, ptr noundef %5172, ptr noundef %5175, i32 noundef %5177) #11
  br label %5196

5179:                                             ; preds = %5157, %5150
  %5180 = load i32, ptr %114, align 4, !tbaa !5
  %5181 = call ptr @__errno_location() #12
  store i32 %5180, ptr %5181, align 4, !tbaa !5
  %5182 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5183 = load i32, ptr @test_count, align 4, !tbaa !5
  %5184 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5185 = load i32, ptr %5184, align 4, !tbaa !5
  %5186 = call ptr @s2n_strerror(i32 noundef %5185, ptr noundef @.str.3)
  %5187 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5188 = load i32, ptr %5187, align 4, !tbaa !5
  %5189 = call ptr @s2n_strerror_debug(i32 noundef %5188, ptr noundef @.str.3)
  %5190 = call ptr @__errno_location() #12
  %5191 = load i32, ptr %5190, align 4, !tbaa !5
  %5192 = call ptr @strerror(i32 noundef %5191) #11
  %5193 = call ptr @__errno_location() #12
  %5194 = load i32, ptr %5193, align 4, !tbaa !5
  %5195 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5182, ptr noundef @.str.4, i32 noundef %5183, ptr noundef @.str.46, ptr noundef @.str.2, i32 noundef 183, ptr noundef %5186, ptr noundef %5189, ptr noundef %5192, i32 noundef %5194) #11
  br label %5196

5196:                                             ; preds = %5179, %5162
  call void @llvm.lifetime.end.p0(i64 4, ptr %114) #11
  br label %5197

5197:                                             ; preds = %5196
  br label %5198

5198:                                             ; preds = %5197
  call void @exit(i32 noundef 1) #13
  unreachable

5199:                                             ; No predecessors!
  br label %5200

5200:                                             ; preds = %5199
  br label %5201

5201:                                             ; preds = %5200, %5145
  br label %5202

5202:                                             ; preds = %5201
  br label %5203

5203:                                             ; preds = %5202
  %5204 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5205 = trunc i8 %5204 to i1
  br i1 %5205, label %5206, label %5222

5206:                                             ; preds = %5203
  %5207 = load ptr, ptr @stdout, align 8, !tbaa !9
  %5208 = call i32 @fileno(ptr noundef %5207) #11
  %5209 = call i32 @isatty(i32 noundef %5208) #11
  %5210 = icmp ne i32 %5209, 0
  br i1 %5210, label %5211, label %5222

5211:                                             ; preds = %5206
  %5212 = load i32, ptr @test_count, align 4, !tbaa !5
  %5213 = icmp ne i32 %5212, 0
  br i1 %5213, label %5214, label %5218

5214:                                             ; preds = %5211
  %5215 = load ptr, ptr @stdout, align 8, !tbaa !9
  %5216 = load i32, ptr @test_count, align 4, !tbaa !5
  %5217 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5215, ptr noundef @.str.47, i32 noundef %5216) #11
  br label %5221

5218:                                             ; preds = %5211
  %5219 = load ptr, ptr @stdout, align 8, !tbaa !9
  %5220 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5219, ptr noundef @.str.48) #11
  br label %5221

5221:                                             ; preds = %5218, %5214
  br label %5233

5222:                                             ; preds = %5206, %5203
  %5223 = load i32, ptr @test_count, align 4, !tbaa !5
  %5224 = icmp ne i32 %5223, 0
  br i1 %5224, label %5225, label %5229

5225:                                             ; preds = %5222
  %5226 = load ptr, ptr @stdout, align 8, !tbaa !9
  %5227 = load i32, ptr @test_count, align 4, !tbaa !5
  %5228 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5226, ptr noundef @.str.49, i32 noundef %5227) #11
  br label %5232

5229:                                             ; preds = %5222
  %5230 = load ptr, ptr @stdout, align 8, !tbaa !9
  %5231 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5230, ptr noundef @.str.50) #11
  br label %5232

5232:                                             ; preds = %5229, %5225
  br label %5233

5233:                                             ; preds = %5232, %5221
  store i32 0, ptr %3, align 4
  store i32 1, ptr %115, align 4
  br label %5238

5234:                                             ; No predecessors!
  br label %5235

5235:                                             ; preds = %5234
  br label %5236

5236:                                             ; preds = %5235
  br label %5237

5237:                                             ; preds = %5236
  store i32 0, ptr %115, align 4
  br label %5238

5238:                                             ; preds = %5237, %5233
  call void @llvm.lifetime.end.p0(i64 24, ptr %15) #11
  call void @llvm.lifetime.end.p0(i64 8088, ptr %14) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %12) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %10) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %9) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %8) #11
  call void @llvm.lifetime.end.p0(i64 15, ptr %7) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #11
  %5239 = load i32, ptr %115, align 4
  switch i32 %5239, label %5242 [
    i32 0, label %5240
    i32 1, label %5240
  ]

5240:                                             ; preds = %5238, %5238
  %5241 = load i32, ptr %3, align 4
  ret i32 %5241

5242:                                             ; preds = %5238
  unreachable
}

; 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 nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #2

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

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

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

declare i32 @s2n_print_stacktrace(ptr noundef) #4

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

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

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

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

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

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

declare i32 @fflush(ptr noundef) #4

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) #4

declare i32 @s2n_enable_atexit() #4

declare i32 @s2n_init() #4

declare i32 @s2n_disable_tls13_in_test(...) #4

declare ptr @s2n_connection_new(i32 noundef) #4

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

declare i32 @s2n_get_public_random_data(ptr noundef) #4

declare i32 @s2n_hmac_init(ptr noundef, i32 noundef, ptr noundef, i32 noundef) #4

declare i32 @s2n_stuffer_wipe(ptr noundef) #4

declare i32 @s2n_record_write(ptr noundef, i8 noundef zeroext, ptr noundef) #4

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

declare void @s2n_debug_info_reset() #4

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

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

declare i32 @s2n_record_header_parse(ptr noundef, ptr noundef, ptr noundef) #4

declare i32 @s2n_record_parse(ptr noundef) #4

declare i32 @s2n_connection_free(ptr noundef) #4

declare i32 @s2n_cleanup() #4

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

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

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


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

@s2n_use_color_in_output = external dso_local local_unnamed_addr global i8, align 1
@__const.main.mac_key = external hidden unnamed_addr constant [15 x i8], align 1
@__const.main.aes128_key = external hidden unnamed_addr constant [16 x i8], align 16
@__const.main.aes256_key = external hidden unnamed_addr constant [32 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 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [71 x i8], align 1
@s2n_errno = external thread_local local_unnamed_addr global i32, align 4
@.str.3 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [80 x i8], align 1
@stdout = external local_unnamed_addr global ptr, align 8
@.str.7 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [62 x i8], align 1
@s2n_record_alg_aes128_sha = external constant %struct.s2n_record_algorithm, align 8
@.str.14 = external hidden unnamed_addr constant [111 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [111 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [134 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [134 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [117 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [117 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [126 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [118 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [118 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [54 x i8], align 1
@s2n_record_alg_aes256_sha = external constant %struct.s2n_record_algorithm, align 8
@.str.43 = external hidden unnamed_addr constant [134 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [134 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [25 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local noundef i32 @main(i32 noundef %0, ptr nocapture noundef readnone %1) local_unnamed_addr #0 {
  %3 = alloca [15 x i8], align 1
  %4 = alloca [16 x i8], align 16
  %5 = alloca [32 x i8], align 16
  %6 = alloca %struct.s2n_blob, align 8
  %7 = alloca %struct.s2n_blob, align 8
  %8 = alloca [8088 x i8], align 16
  %9 = alloca %struct.s2n_blob, align 8
  %10 = alloca %struct.s2n_blob, align 8
  %11 = alloca i8, align 1
  %12 = alloca i16, align 2
  %13 = alloca %struct.s2n_blob, align 8
  %14 = alloca i8, align 1
  %15 = alloca i16, align 2
  call void @llvm.lifetime.start.p0(i64 15, ptr nonnull %3) #12
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(15) %3, ptr noundef nonnull align 1 dereferenceable(15) @__const.main.mac_key, i64 15, i1 false)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %4) #12
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %4, ptr noundef nonnull align 16 dereferenceable(16) @__const.main.aes128_key, i64 16, i1 false)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %5) #12
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(32) %5, ptr noundef nonnull align 16 dereferenceable(32) @__const.main.aes256_key, i64 32, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %6) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %6, i8 0, i64 24, i1 false)
  %16 = load i32, ptr @test_count, align 4, !tbaa !5
  %17 = add nsw i32 %16, 1
  store i32 %17, ptr @test_count, align 4, !tbaa !5
  %18 = call i32 @s2n_blob_init(ptr noundef nonnull %6, ptr noundef nonnull %4, i32 noundef 16) #12
  %19 = icmp eq i32 %18, -1
  br i1 %19, label %20, label %44

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

27:                                               ; preds = %20
  %28 = load ptr, ptr @stderr, align 8, !tbaa !9
  %29 = call i32 @fileno(ptr noundef %28) #12
  %30 = call i32 @isatty(i32 noundef %29) #12
  %.not366 = icmp eq i32 %30, 0
  br i1 %.not366, label %31, label %32

31:                                               ; preds = %27, %20
  br label %32

32:                                               ; preds = %27, %31
  %.str.4.sink = phi ptr [ @.str.4, %31 ], [ @.str, %27 ]
  store i32 %22, ptr %21, align 4, !tbaa !5
  %33 = load ptr, ptr @stderr, align 8, !tbaa !9
  %34 = load i32, ptr @test_count, align 4, !tbaa !5
  %35 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %36 = load i32, ptr %35, align 4, !tbaa !5
  %37 = call ptr @s2n_strerror(i32 noundef %36, ptr noundef nonnull @.str.3) #12
  %38 = load i32, ptr %35, align 4, !tbaa !5
  %39 = call ptr @s2n_strerror_debug(i32 noundef %38, ptr noundef nonnull @.str.3) #12
  %40 = load i32, ptr %21, align 4, !tbaa !5
  %41 = call ptr @strerror(i32 noundef %40) #12
  %42 = load i32, ptr %21, align 4, !tbaa !5
  %43 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %33, ptr noundef nonnull %.str.4.sink, i32 noundef %34, ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.2, i32 noundef 37, ptr noundef %37, ptr noundef %39, ptr noundef %41, i32 noundef %42) #14
  call void @exit(i32 noundef 1) #15
  unreachable

44:                                               ; preds = %2
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %7) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %7, i8 0, i64 24, i1 false)
  %45 = load i32, ptr @test_count, align 4, !tbaa !5
  %46 = add nsw i32 %45, 1
  store i32 %46, ptr @test_count, align 4, !tbaa !5
  %47 = call i32 @s2n_blob_init(ptr noundef nonnull %7, ptr noundef nonnull %5, i32 noundef 32) #12
  %48 = icmp eq i32 %47, -1
  br i1 %48, label %49, label %73

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

56:                                               ; preds = %49
  %57 = load ptr, ptr @stderr, align 8, !tbaa !9
  %58 = call i32 @fileno(ptr noundef %57) #12
  %59 = call i32 @isatty(i32 noundef %58) #12
  %.not365 = icmp eq i32 %59, 0
  br i1 %.not365, label %60, label %61

60:                                               ; preds = %56, %49
  br label %61

61:                                               ; preds = %56, %60
  %.str.4.sink384 = phi ptr [ @.str.4, %60 ], [ @.str, %56 ]
  store i32 %51, ptr %50, align 4, !tbaa !5
  %62 = load ptr, ptr @stderr, align 8, !tbaa !9
  %63 = load i32, ptr @test_count, align 4, !tbaa !5
  %64 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %65 = load i32, ptr %64, align 4, !tbaa !5
  %66 = call ptr @s2n_strerror(i32 noundef %65, ptr noundef nonnull @.str.3) #12
  %67 = load i32, ptr %64, align 4, !tbaa !5
  %68 = call ptr @s2n_strerror_debug(i32 noundef %67, ptr noundef nonnull @.str.3) #12
  %69 = load i32, ptr %50, align 4, !tbaa !5
  %70 = call ptr @strerror(i32 noundef %69) #12
  %71 = load i32, ptr %50, align 4, !tbaa !5
  %72 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %62, ptr noundef nonnull %.str.4.sink384, i32 noundef %63, ptr noundef nonnull @.str.5, ptr noundef nonnull @.str.2, i32 noundef 39, ptr noundef %66, ptr noundef %68, ptr noundef %70, i32 noundef %71) #14
  call void @exit(i32 noundef 1) #15
  unreachable

73:                                               ; preds = %44
  call void @llvm.lifetime.start.p0(i64 8088, ptr nonnull %8) #12
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %9) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %9, i8 0, i64 24, i1 false)
  %74 = load i32, ptr @test_count, align 4, !tbaa !5
  %75 = add nsw i32 %74, 1
  store i32 %75, ptr @test_count, align 4, !tbaa !5
  %76 = call i32 @s2n_blob_init(ptr noundef nonnull %9, ptr noundef nonnull %8, i32 noundef 8088) #12
  %77 = icmp eq i32 %76, -1
  br i1 %77, label %78, label %102

78:                                               ; preds = %73
  %79 = tail call ptr @__errno_location() #13
  %80 = load i32, ptr %79, align 4, !tbaa !5
  %81 = load ptr, ptr @stderr, align 8, !tbaa !9
  %82 = call i32 @s2n_print_stacktrace(ptr noundef %81) #12
  %83 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %84 = trunc nuw i8 %83 to i1
  br i1 %84, label %85, label %89

85:                                               ; preds = %78
  %86 = load ptr, ptr @stderr, align 8, !tbaa !9
  %87 = call i32 @fileno(ptr noundef %86) #12
  %88 = call i32 @isatty(i32 noundef %87) #12
  %.not364 = icmp eq i32 %88, 0
  br i1 %.not364, label %89, label %90

89:                                               ; preds = %85, %78
  br label %90

90:                                               ; preds = %85, %89
  %.str.4.sink395 = phi ptr [ @.str.4, %89 ], [ @.str, %85 ]
  store i32 %80, ptr %79, align 4, !tbaa !5
  %91 = load ptr, ptr @stderr, align 8, !tbaa !9
  %92 = load i32, ptr @test_count, align 4, !tbaa !5
  %93 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %94 = load i32, ptr %93, align 4, !tbaa !5
  %95 = call ptr @s2n_strerror(i32 noundef %94, ptr noundef nonnull @.str.3) #12
  %96 = load i32, ptr %93, align 4, !tbaa !5
  %97 = call ptr @s2n_strerror_debug(i32 noundef %96, ptr noundef nonnull @.str.3) #12
  %98 = load i32, ptr %79, align 4, !tbaa !5
  %99 = call ptr @strerror(i32 noundef %98) #12
  %100 = load i32, ptr %79, align 4, !tbaa !5
  %101 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %91, ptr noundef nonnull %.str.4.sink395, i32 noundef %92, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.2, i32 noundef 42, ptr noundef %95, ptr noundef %97, ptr noundef %99, i32 noundef %100) #14
  call void @exit(i32 noundef 1) #15
  unreachable

102:                                              ; preds = %73
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %103 = load ptr, ptr @stdout, align 8, !tbaa !9
  %104 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %103, ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.2) #12
  %105 = load ptr, ptr @stdout, align 8, !tbaa !9
  %106 = call i32 @fflush(ptr noundef %105)
  %107 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true) #12
  %108 = icmp eq i32 %107, -1
  br i1 %108, label %109, label %133

109:                                              ; preds = %102
  %110 = tail call ptr @__errno_location() #13
  %111 = load i32, ptr %110, align 4, !tbaa !5
  %112 = load ptr, ptr @stderr, align 8, !tbaa !9
  %113 = call i32 @s2n_print_stacktrace(ptr noundef %112) #12
  %114 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %115 = trunc nuw i8 %114 to i1
  br i1 %115, label %116, label %120

116:                                              ; preds = %109
  %117 = load ptr, ptr @stderr, align 8, !tbaa !9
  %118 = call i32 @fileno(ptr noundef %117) #12
  %119 = call i32 @isatty(i32 noundef %118) #12
  %.not363 = icmp eq i32 %119, 0
  br i1 %.not363, label %120, label %121

120:                                              ; preds = %116, %109
  br label %121

121:                                              ; preds = %116, %120
  %.str.4.sink406 = phi ptr [ @.str.4, %120 ], [ @.str, %116 ]
  store i32 %111, ptr %110, align 4, !tbaa !5
  %122 = load ptr, ptr @stderr, align 8, !tbaa !9
  %123 = load i32, ptr @test_count, align 4, !tbaa !5
  %124 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %125 = load i32, ptr %124, align 4, !tbaa !5
  %126 = call ptr @s2n_strerror(i32 noundef %125, ptr noundef nonnull @.str.3) #12
  %127 = load i32, ptr %124, align 4, !tbaa !5
  %128 = call ptr @s2n_strerror_debug(i32 noundef %127, ptr noundef nonnull @.str.3) #12
  %129 = load i32, ptr %110, align 4, !tbaa !5
  %130 = call ptr @strerror(i32 noundef %129) #12
  %131 = load i32, ptr %110, align 4, !tbaa !5
  %132 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %122, ptr noundef nonnull %.str.4.sink406, i32 noundef %123, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.2, i32 noundef 44, ptr noundef %126, ptr noundef %128, ptr noundef %130, i32 noundef %131) #14
  call void @exit(i32 noundef 1) #15
  unreachable

133:                                              ; preds = %102
  %134 = load i32, ptr @test_count, align 4, !tbaa !5
  %135 = add nsw i32 %134, 1
  store i32 %135, ptr @test_count, align 4, !tbaa !5
  %136 = call i32 @s2n_enable_atexit() #12
  %137 = icmp eq i32 %136, -1
  br i1 %137, label %138, label %162

138:                                              ; preds = %133
  %139 = tail call ptr @__errno_location() #13
  %140 = load i32, ptr %139, align 4, !tbaa !5
  %141 = load ptr, ptr @stderr, align 8, !tbaa !9
  %142 = call i32 @s2n_print_stacktrace(ptr noundef %141) #12
  %143 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %144 = trunc nuw i8 %143 to i1
  br i1 %144, label %145, label %149

145:                                              ; preds = %138
  %146 = load ptr, ptr @stderr, align 8, !tbaa !9
  %147 = call i32 @fileno(ptr noundef %146) #12
  %148 = call i32 @isatty(i32 noundef %147) #12
  %.not362 = icmp eq i32 %148, 0
  br i1 %.not362, label %149, label %150

149:                                              ; preds = %145, %138
  br label %150

150:                                              ; preds = %145, %149
  %.str.4.sink417 = phi ptr [ @.str.4, %149 ], [ @.str, %145 ]
  store i32 %140, ptr %139, align 4, !tbaa !5
  %151 = load ptr, ptr @stderr, align 8, !tbaa !9
  %152 = load i32, ptr @test_count, align 4, !tbaa !5
  %153 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %154 = load i32, ptr %153, align 4, !tbaa !5
  %155 = call ptr @s2n_strerror(i32 noundef %154, ptr noundef nonnull @.str.3) #12
  %156 = load i32, ptr %153, align 4, !tbaa !5
  %157 = call ptr @s2n_strerror_debug(i32 noundef %156, ptr noundef nonnull @.str.3) #12
  %158 = load i32, ptr %139, align 4, !tbaa !5
  %159 = call ptr @strerror(i32 noundef %158) #12
  %160 = load i32, ptr %139, align 4, !tbaa !5
  %161 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %151, ptr noundef nonnull %.str.4.sink417, i32 noundef %152, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.2, i32 noundef 44, ptr noundef %155, ptr noundef %157, ptr noundef %159, i32 noundef %160) #14
  call void @exit(i32 noundef 1) #15
  unreachable

162:                                              ; preds = %133
  %163 = call i32 @s2n_init() #12
  %164 = icmp eq i32 %163, -1
  br i1 %164, label %165, label %189

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

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

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

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

189:                                              ; preds = %162
  %190 = load i32, ptr @test_count, align 4, !tbaa !5
  %191 = add nsw i32 %190, 1
  store i32 %191, ptr @test_count, align 4, !tbaa !5
  %192 = call i32 (...) @s2n_disable_tls13_in_test() #12
  %193 = icmp eq i32 %192, -1
  br i1 %193, label %194, label %218

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

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

205:                                              ; preds = %201, %194
  br label %206

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

218:                                              ; preds = %189
  %219 = load i32, ptr @test_count, align 4, !tbaa !5
  %220 = add nsw i32 %219, 1
  store i32 %220, ptr @test_count, align 4, !tbaa !5
  %221 = call ptr @s2n_connection_new(i32 noundef 0) #12
  %222 = icmp eq ptr %221, null
  br i1 %222, label %223, label %247

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

230:                                              ; preds = %223
  %231 = load ptr, ptr @stderr, align 8, !tbaa !9
  %232 = call i32 @fileno(ptr noundef %231) #12
  %233 = call i32 @isatty(i32 noundef %232) #12
  %.not359 = icmp eq i32 %233, 0
  br i1 %.not359, label %234, label %235

234:                                              ; preds = %230, %223
  br label %235

235:                                              ; preds = %230, %234
  %.str.4.sink450 = phi ptr [ @.str.4, %234 ], [ @.str, %230 ]
  store i32 %225, ptr %224, align 4, !tbaa !5
  %236 = load ptr, ptr @stderr, align 8, !tbaa !9
  %237 = load i32, ptr @test_count, align 4, !tbaa !5
  %238 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %239 = load i32, ptr %238, align 4, !tbaa !5
  %240 = call ptr @s2n_strerror(i32 noundef %239, ptr noundef nonnull @.str.3) #12
  %241 = load i32, ptr %238, align 4, !tbaa !5
  %242 = call ptr @s2n_strerror_debug(i32 noundef %241, ptr noundef nonnull @.str.3) #12
  %243 = load i32, ptr %224, align 4, !tbaa !5
  %244 = call ptr @strerror(i32 noundef %243) #12
  %245 = load i32, ptr %224, align 4, !tbaa !5
  %246 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %236, ptr noundef nonnull %.str.4.sink450, i32 noundef %237, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.2, i32 noundef 47, ptr noundef %240, ptr noundef %242, ptr noundef %244, i32 noundef %245) #14
  call void @exit(i32 noundef 1) #15
  unreachable

247:                                              ; preds = %218
  %248 = load i32, ptr @test_count, align 4, !tbaa !5
  %249 = add nsw i32 %248, 1
  store i32 %249, ptr @test_count, align 4, !tbaa !5
  %250 = call i32 @s2n_get_public_random_data(ptr noundef nonnull %9) #12
  %251 = call zeroext i1 @s2n_result_is_ok(i32 %250)
  br i1 %251, label %276, label %252

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

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

263:                                              ; preds = %259, %252
  br label %264

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

276:                                              ; preds = %247
  %277 = getelementptr inbounds i8, ptr %221, i64 232
  %278 = load ptr, ptr %277, align 8, !tbaa !15
  %279 = getelementptr inbounds i8, ptr %221, i64 640
  store ptr %278, ptr %279, align 8, !tbaa !42
  %280 = getelementptr inbounds i8, ptr %221, i64 632
  store ptr %278, ptr %280, align 8, !tbaa !43
  %281 = load ptr, ptr %278, align 8, !tbaa !44
  %282 = getelementptr inbounds i8, ptr %281, i64 48
  store ptr @s2n_record_alg_aes128_sha, ptr %282, align 8, !tbaa !49
  %283 = load i32, ptr @test_count, align 4, !tbaa !5
  %284 = add nsw i32 %283, 1
  store i32 %284, ptr @test_count, align 4, !tbaa !5
  %285 = load ptr, ptr @s2n_record_alg_aes128_sha, align 8, !tbaa !51
  %286 = getelementptr inbounds i8, ptr %285, i64 64
  %287 = load ptr, ptr %286, align 8, !tbaa !53
  %288 = getelementptr inbounds i8, ptr %278, i64 16
  %289 = call i32 %287(ptr noundef nonnull %288) #12
  %290 = call zeroext i1 @s2n_result_is_ok(i32 %289)
  br i1 %290, label %315, label %291

291:                                              ; preds = %276
  %292 = tail call ptr @__errno_location() #13
  %293 = load i32, ptr %292, align 4, !tbaa !5
  %294 = load ptr, ptr @stderr, align 8, !tbaa !9
  %295 = call i32 @s2n_print_stacktrace(ptr noundef %294) #12
  %296 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %297 = trunc nuw i8 %296 to i1
  br i1 %297, label %298, label %302

298:                                              ; preds = %291
  %299 = load ptr, ptr @stderr, align 8, !tbaa !9
  %300 = call i32 @fileno(ptr noundef %299) #12
  %301 = call i32 @isatty(i32 noundef %300) #12
  %.not285 = icmp eq i32 %301, 0
  br i1 %.not285, label %302, label %303

302:                                              ; preds = %298, %291
  br label %303

303:                                              ; preds = %298, %302
  %.str.4.sink472 = phi ptr [ @.str.4, %302 ], [ @.str, %298 ]
  store i32 %293, ptr %292, align 4, !tbaa !5
  %304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %305 = load i32, ptr @test_count, align 4, !tbaa !5
  %306 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %307 = load i32, ptr %306, align 4, !tbaa !5
  %308 = call ptr @s2n_strerror(i32 noundef %307, ptr noundef nonnull @.str.3) #12
  %309 = load i32, ptr %306, align 4, !tbaa !5
  %310 = call ptr @s2n_strerror_debug(i32 noundef %309, ptr noundef nonnull @.str.3) #12
  %311 = load i32, ptr %292, align 4, !tbaa !5
  %312 = call ptr @strerror(i32 noundef %311) #12
  %313 = load i32, ptr %292, align 4, !tbaa !5
  %314 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %304, ptr noundef nonnull %.str.4.sink472, i32 noundef %305, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.2, i32 noundef 56, ptr noundef %308, ptr noundef %310, ptr noundef %312, i32 noundef %313) #14
  call void @exit(i32 noundef 1) #15
  unreachable

315:                                              ; preds = %276
  %316 = load i32, ptr @test_count, align 4, !tbaa !5
  %317 = add nsw i32 %316, 1
  store i32 %317, ptr @test_count, align 4, !tbaa !5
  %318 = load ptr, ptr %277, align 8, !tbaa !15
  %319 = load ptr, ptr %318, align 8, !tbaa !44
  %320 = getelementptr inbounds i8, ptr %319, i64 48
  %321 = load ptr, ptr %320, align 8, !tbaa !49
  %322 = load ptr, ptr %321, align 8, !tbaa !51
  %323 = getelementptr inbounds i8, ptr %322, i64 64
  %324 = load ptr, ptr %323, align 8, !tbaa !53
  %325 = getelementptr inbounds i8, ptr %318, i64 8
  %326 = call i32 %324(ptr noundef nonnull %325) #12
  %327 = call zeroext i1 @s2n_result_is_ok(i32 %326)
  br i1 %327, label %352, label %328

328:                                              ; preds = %315
  %329 = tail call ptr @__errno_location() #13
  %330 = load i32, ptr %329, align 4, !tbaa !5
  %331 = load ptr, ptr @stderr, align 8, !tbaa !9
  %332 = call i32 @s2n_print_stacktrace(ptr noundef %331) #12
  %333 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %334 = trunc nuw i8 %333 to i1
  br i1 %334, label %335, label %339

335:                                              ; preds = %328
  %336 = load ptr, ptr @stderr, align 8, !tbaa !9
  %337 = call i32 @fileno(ptr noundef %336) #12
  %338 = call i32 @isatty(i32 noundef %337) #12
  %.not286 = icmp eq i32 %338, 0
  br i1 %.not286, label %339, label %340

339:                                              ; preds = %335, %328
  br label %340

340:                                              ; preds = %335, %339
  %.str.4.sink483 = phi ptr [ @.str.4, %339 ], [ @.str, %335 ]
  store i32 %330, ptr %329, align 4, !tbaa !5
  %341 = load ptr, ptr @stderr, align 8, !tbaa !9
  %342 = load i32, ptr @test_count, align 4, !tbaa !5
  %343 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %344 = load i32, ptr %343, align 4, !tbaa !5
  %345 = call ptr @s2n_strerror(i32 noundef %344, ptr noundef nonnull @.str.3) #12
  %346 = load i32, ptr %343, align 4, !tbaa !5
  %347 = call ptr @s2n_strerror_debug(i32 noundef %346, ptr noundef nonnull @.str.3) #12
  %348 = load i32, ptr %329, align 4, !tbaa !5
  %349 = call ptr @strerror(i32 noundef %348) #12
  %350 = load i32, ptr %329, align 4, !tbaa !5
  %351 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %341, ptr noundef nonnull %.str.4.sink483, i32 noundef %342, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.2, i32 noundef 57, ptr noundef %345, ptr noundef %347, ptr noundef %349, i32 noundef %350) #14
  call void @exit(i32 noundef 1) #15
  unreachable

352:                                              ; preds = %315
  %353 = load i32, ptr @test_count, align 4, !tbaa !5
  %354 = add nsw i32 %353, 1
  store i32 %354, ptr @test_count, align 4, !tbaa !5
  %355 = load ptr, ptr %277, align 8, !tbaa !15
  %356 = load ptr, ptr %355, align 8, !tbaa !44
  %357 = getelementptr inbounds i8, ptr %356, i64 48
  %358 = load ptr, ptr %357, align 8, !tbaa !49
  %359 = load ptr, ptr %358, align 8, !tbaa !51
  %360 = getelementptr inbounds i8, ptr %359, i64 80
  %361 = load ptr, ptr %360, align 8, !tbaa !55
  %362 = getelementptr inbounds i8, ptr %355, i64 16
  %363 = call i32 %361(ptr noundef nonnull %362, ptr noundef nonnull %6) #12
  %364 = call zeroext i1 @s2n_result_is_ok(i32 %363)
  br i1 %364, label %389, label %365

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

372:                                              ; preds = %365
  %373 = load ptr, ptr @stderr, align 8, !tbaa !9
  %374 = call i32 @fileno(ptr noundef %373) #12
  %375 = call i32 @isatty(i32 noundef %374) #12
  %.not287 = icmp eq i32 %375, 0
  br i1 %.not287, label %376, label %377

376:                                              ; preds = %372, %365
  br label %377

377:                                              ; preds = %372, %376
  %.str.4.sink494 = phi ptr [ @.str.4, %376 ], [ @.str, %372 ]
  store i32 %367, ptr %366, align 4, !tbaa !5
  %378 = load ptr, ptr @stderr, align 8, !tbaa !9
  %379 = load i32, ptr @test_count, align 4, !tbaa !5
  %380 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %381 = load i32, ptr %380, align 4, !tbaa !5
  %382 = call ptr @s2n_strerror(i32 noundef %381, ptr noundef nonnull @.str.3) #12
  %383 = load i32, ptr %380, align 4, !tbaa !5
  %384 = call ptr @s2n_strerror_debug(i32 noundef %383, ptr noundef nonnull @.str.3) #12
  %385 = load i32, ptr %366, align 4, !tbaa !5
  %386 = call ptr @strerror(i32 noundef %385) #12
  %387 = load i32, ptr %366, align 4, !tbaa !5
  %388 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %378, ptr noundef nonnull %.str.4.sink494, i32 noundef %379, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.2, i32 noundef 58, ptr noundef %382, ptr noundef %384, ptr noundef %386, i32 noundef %387) #14
  call void @exit(i32 noundef 1) #15
  unreachable

389:                                              ; preds = %352
  %390 = load i32, ptr @test_count, align 4, !tbaa !5
  %391 = add nsw i32 %390, 1
  store i32 %391, ptr @test_count, align 4, !tbaa !5
  %392 = load ptr, ptr %277, align 8, !tbaa !15
  %393 = load ptr, ptr %392, align 8, !tbaa !44
  %394 = getelementptr inbounds i8, ptr %393, i64 48
  %395 = load ptr, ptr %394, align 8, !tbaa !49
  %396 = load ptr, ptr %395, align 8, !tbaa !51
  %397 = getelementptr inbounds i8, ptr %396, i64 72
  %398 = load ptr, ptr %397, align 8, !tbaa !56
  %399 = getelementptr inbounds i8, ptr %392, i64 8
  %400 = call i32 %398(ptr noundef nonnull %399, ptr noundef nonnull %6) #12
  %401 = call zeroext i1 @s2n_result_is_ok(i32 %400)
  br i1 %401, label %426, label %402

402:                                              ; preds = %389
  %403 = tail call ptr @__errno_location() #13
  %404 = load i32, ptr %403, align 4, !tbaa !5
  %405 = load ptr, ptr @stderr, align 8, !tbaa !9
  %406 = call i32 @s2n_print_stacktrace(ptr noundef %405) #12
  %407 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %408 = trunc nuw i8 %407 to i1
  br i1 %408, label %409, label %413

409:                                              ; preds = %402
  %410 = load ptr, ptr @stderr, align 8, !tbaa !9
  %411 = call i32 @fileno(ptr noundef %410) #12
  %412 = call i32 @isatty(i32 noundef %411) #12
  %.not288 = icmp eq i32 %412, 0
  br i1 %.not288, label %413, label %414

413:                                              ; preds = %409, %402
  br label %414

414:                                              ; preds = %409, %413
  %.str.4.sink505 = phi ptr [ @.str.4, %413 ], [ @.str, %409 ]
  store i32 %404, ptr %403, align 4, !tbaa !5
  %415 = load ptr, ptr @stderr, align 8, !tbaa !9
  %416 = load i32, ptr @test_count, align 4, !tbaa !5
  %417 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %418 = load i32, ptr %417, align 4, !tbaa !5
  %419 = call ptr @s2n_strerror(i32 noundef %418, ptr noundef nonnull @.str.3) #12
  %420 = load i32, ptr %417, align 4, !tbaa !5
  %421 = call ptr @s2n_strerror_debug(i32 noundef %420, ptr noundef nonnull @.str.3) #12
  %422 = load i32, ptr %403, align 4, !tbaa !5
  %423 = call ptr @strerror(i32 noundef %422) #12
  %424 = load i32, ptr %403, align 4, !tbaa !5
  %425 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %415, ptr noundef nonnull %.str.4.sink505, i32 noundef %416, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.2, i32 noundef 59, ptr noundef %419, ptr noundef %421, ptr noundef %423, i32 noundef %424) #14
  call void @exit(i32 noundef 1) #15
  unreachable

426:                                              ; preds = %389
  %427 = load i32, ptr @test_count, align 4, !tbaa !5
  %428 = add nsw i32 %427, 1
  store i32 %428, ptr @test_count, align 4, !tbaa !5
  %429 = load ptr, ptr %277, align 8, !tbaa !15
  %430 = getelementptr inbounds i8, ptr %429, i64 24
  %431 = call i32 @s2n_hmac_init(ptr noundef nonnull %430, i32 noundef 2, ptr noundef nonnull %3, i32 noundef 15) #12
  %432 = icmp eq i32 %431, -1
  br i1 %432, label %433, label %457

433:                                              ; preds = %426
  %434 = tail call ptr @__errno_location() #13
  %435 = load i32, ptr %434, align 4, !tbaa !5
  %436 = load ptr, ptr @stderr, align 8, !tbaa !9
  %437 = call i32 @s2n_print_stacktrace(ptr noundef %436) #12
  %438 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %439 = trunc nuw i8 %438 to i1
  br i1 %439, label %440, label %444

440:                                              ; preds = %433
  %441 = load ptr, ptr @stderr, align 8, !tbaa !9
  %442 = call i32 @fileno(ptr noundef %441) #12
  %443 = call i32 @isatty(i32 noundef %442) #12
  %.not358 = icmp eq i32 %443, 0
  br i1 %.not358, label %444, label %445

444:                                              ; preds = %440, %433
  br label %445

445:                                              ; preds = %440, %444
  %.str.4.sink516 = phi ptr [ @.str.4, %444 ], [ @.str, %440 ]
  store i32 %435, ptr %434, align 4, !tbaa !5
  %446 = load ptr, ptr @stderr, align 8, !tbaa !9
  %447 = load i32, ptr @test_count, align 4, !tbaa !5
  %448 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %449 = load i32, ptr %448, align 4, !tbaa !5
  %450 = call ptr @s2n_strerror(i32 noundef %449, ptr noundef nonnull @.str.3) #12
  %451 = load i32, ptr %448, align 4, !tbaa !5
  %452 = call ptr @s2n_strerror_debug(i32 noundef %451, ptr noundef nonnull @.str.3) #12
  %453 = load i32, ptr %434, align 4, !tbaa !5
  %454 = call ptr @strerror(i32 noundef %453) #12
  %455 = load i32, ptr %434, align 4, !tbaa !5
  %456 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %446, ptr noundef nonnull %.str.4.sink516, i32 noundef %447, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.2, i32 noundef 60, ptr noundef %450, ptr noundef %452, ptr noundef %454, i32 noundef %455) #14
  call void @exit(i32 noundef 1) #15
  unreachable

457:                                              ; preds = %426
  %458 = load i32, ptr @test_count, align 4, !tbaa !5
  %459 = add nsw i32 %458, 1
  store i32 %459, ptr @test_count, align 4, !tbaa !5
  %460 = load ptr, ptr %277, align 8, !tbaa !15
  %461 = getelementptr inbounds i8, ptr %460, i64 456
  %462 = call i32 @s2n_hmac_init(ptr noundef nonnull %461, i32 noundef 2, ptr noundef nonnull %3, i32 noundef 15) #12
  %463 = icmp eq i32 %462, -1
  br i1 %463, label %464, label %488

464:                                              ; preds = %457
  %465 = tail call ptr @__errno_location() #13
  %466 = load i32, ptr %465, align 4, !tbaa !5
  %467 = load ptr, ptr @stderr, align 8, !tbaa !9
  %468 = call i32 @s2n_print_stacktrace(ptr noundef %467) #12
  %469 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %470 = trunc nuw i8 %469 to i1
  br i1 %470, label %471, label %475

471:                                              ; preds = %464
  %472 = load ptr, ptr @stderr, align 8, !tbaa !9
  %473 = call i32 @fileno(ptr noundef %472) #12
  %474 = call i32 @isatty(i32 noundef %473) #12
  %.not357 = icmp eq i32 %474, 0
  br i1 %.not357, label %475, label %476

475:                                              ; preds = %471, %464
  br label %476

476:                                              ; preds = %471, %475
  %.str.4.sink527 = phi ptr [ @.str.4, %475 ], [ @.str, %471 ]
  store i32 %466, ptr %465, align 4, !tbaa !5
  %477 = load ptr, ptr @stderr, align 8, !tbaa !9
  %478 = load i32, ptr @test_count, align 4, !tbaa !5
  %479 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %480 = load i32, ptr %479, align 4, !tbaa !5
  %481 = call ptr @s2n_strerror(i32 noundef %480, ptr noundef nonnull @.str.3) #12
  %482 = load i32, ptr %479, align 4, !tbaa !5
  %483 = call ptr @s2n_strerror_debug(i32 noundef %482, ptr noundef nonnull @.str.3) #12
  %484 = load i32, ptr %465, align 4, !tbaa !5
  %485 = call ptr @strerror(i32 noundef %484) #12
  %486 = load i32, ptr %465, align 4, !tbaa !5
  %487 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %477, ptr noundef nonnull %.str.4.sink527, i32 noundef %478, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.2, i32 noundef 61, ptr noundef %481, ptr noundef %483, ptr noundef %485, i32 noundef %486) #14
  call void @exit(i32 noundef 1) #15
  unreachable

488:                                              ; preds = %457
  %489 = getelementptr inbounds i8, ptr %221, i64 220
  store i8 32, ptr %489, align 4, !tbaa !57
  %490 = getelementptr inbounds i8, ptr %221, i64 1896
  %491 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %492 = getelementptr inbounds i8, ptr %221, i64 1856
  %493 = getelementptr inbounds i8, ptr %221, i64 1776
  %494 = getelementptr inbounds i8, ptr %221, i64 1924
  %495 = getelementptr inbounds i8, ptr %221, i64 1920
  br label %509

496:                                              ; preds = %1133
  %497 = load i32, ptr @test_count, align 4, !tbaa !5
  %498 = add nsw i32 %497, 1
  store i32 %498, ptr @test_count, align 4, !tbaa !5
  %499 = load ptr, ptr %277, align 8, !tbaa !15
  %500 = load ptr, ptr %499, align 8, !tbaa !44
  %501 = getelementptr inbounds i8, ptr %500, i64 48
  %502 = load ptr, ptr %501, align 8, !tbaa !49
  %503 = load ptr, ptr %502, align 8, !tbaa !51
  %504 = getelementptr inbounds i8, ptr %503, i64 88
  %505 = load ptr, ptr %504, align 8, !tbaa !58
  %506 = getelementptr inbounds i8, ptr %499, i64 16
  %507 = call i32 %505(ptr noundef nonnull %506) #12
  %508 = call zeroext i1 @s2n_result_is_ok(i32 %507)
  br i1 %508, label %1158, label %1135

509:                                              ; preds = %488, %1133
  %.0371 = phi i64 [ 0, %488 ], [ %1134, %1133 ]
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %10) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %10, i8 0, i64 24, i1 false)
  %510 = load i32, ptr @test_count, align 4, !tbaa !5
  %511 = add nsw i32 %510, 1
  store i32 %511, ptr @test_count, align 4, !tbaa !5
  %512 = trunc nuw nsw i64 %.0371 to i32
  %513 = call i32 @s2n_blob_init(ptr noundef nonnull %10, ptr noundef nonnull %8, i32 noundef %512) #12
  %514 = icmp eq i32 %513, -1
  br i1 %514, label %515, label %538

515:                                              ; preds = %509
  %516 = tail call ptr @__errno_location() #13
  %517 = load i32, ptr %516, align 4, !tbaa !5
  %518 = load ptr, ptr @stderr, align 8, !tbaa !9
  %519 = call i32 @s2n_print_stacktrace(ptr noundef %518) #12
  %520 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %521 = trunc nuw i8 %520 to i1
  br i1 %521, label %522, label %526

522:                                              ; preds = %515
  %523 = load ptr, ptr @stderr, align 8, !tbaa !9
  %524 = call i32 @fileno(ptr noundef %523) #12
  %525 = call i32 @isatty(i32 noundef %524) #12
  %.not356 = icmp eq i32 %525, 0
  br i1 %.not356, label %526, label %527

526:                                              ; preds = %522, %515
  br label %527

527:                                              ; preds = %522, %526
  %.str.4.sink538 = phi ptr [ @.str.4, %526 ], [ @.str, %522 ]
  store i32 %517, ptr %516, align 4, !tbaa !5
  %528 = load ptr, ptr @stderr, align 8, !tbaa !9
  %529 = load i32, ptr @test_count, align 4, !tbaa !5
  %530 = load i32, ptr %491, align 4, !tbaa !5
  %531 = call ptr @s2n_strerror(i32 noundef %530, ptr noundef nonnull @.str.3) #12
  %532 = load i32, ptr %491, align 4, !tbaa !5
  %533 = call ptr @s2n_strerror_debug(i32 noundef %532, ptr noundef nonnull @.str.3) #12
  %534 = load i32, ptr %516, align 4, !tbaa !5
  %535 = call ptr @strerror(i32 noundef %534) #12
  %536 = load i32, ptr %516, align 4, !tbaa !5
  %537 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %528, ptr noundef nonnull %.str.4.sink538, i32 noundef %529, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.2, i32 noundef 66, ptr noundef %531, ptr noundef %533, ptr noundef %535, i32 noundef %536) #14
  call void @exit(i32 noundef 1) #15
  unreachable

538:                                              ; preds = %509
  %539 = load i32, ptr @test_count, align 4, !tbaa !5
  %540 = add nsw i32 %539, 1
  store i32 %540, ptr @test_count, align 4, !tbaa !5
  %541 = call i32 @s2n_stuffer_wipe(ptr noundef nonnull %490) #12
  %542 = icmp eq i32 %541, -1
  br i1 %542, label %543, label %566

543:                                              ; preds = %538
  %544 = tail call ptr @__errno_location() #13
  %545 = load i32, ptr %544, align 4, !tbaa !5
  %546 = load ptr, ptr @stderr, align 8, !tbaa !9
  %547 = call i32 @s2n_print_stacktrace(ptr noundef %546) #12
  %548 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %549 = trunc nuw i8 %548 to i1
  br i1 %549, label %550, label %554

550:                                              ; preds = %543
  %551 = load ptr, ptr @stderr, align 8, !tbaa !9
  %552 = call i32 @fileno(ptr noundef %551) #12
  %553 = call i32 @isatty(i32 noundef %552) #12
  %.not355 = icmp eq i32 %553, 0
  br i1 %.not355, label %554, label %555

554:                                              ; preds = %550, %543
  br label %555

555:                                              ; preds = %550, %554
  %.str.4.sink547 = phi ptr [ @.str.4, %554 ], [ @.str, %550 ]
  store i32 %545, ptr %544, align 4, !tbaa !5
  %556 = load ptr, ptr @stderr, align 8, !tbaa !9
  %557 = load i32, ptr @test_count, align 4, !tbaa !5
  %558 = load i32, ptr %491, align 4, !tbaa !5
  %559 = call ptr @s2n_strerror(i32 noundef %558, ptr noundef nonnull @.str.3) #12
  %560 = load i32, ptr %491, align 4, !tbaa !5
  %561 = call ptr @s2n_strerror_debug(i32 noundef %560, ptr noundef nonnull @.str.3) #12
  %562 = load i32, ptr %544, align 4, !tbaa !5
  %563 = call ptr @strerror(i32 noundef %562) #12
  %564 = load i32, ptr %544, align 4, !tbaa !5
  %565 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %556, ptr noundef nonnull %.str.4.sink547, i32 noundef %557, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.2, i32 noundef 69, ptr noundef %559, ptr noundef %561, ptr noundef %563, i32 noundef %564) #14
  call void @exit(i32 noundef 1) #15
  unreachable

566:                                              ; preds = %538
  %567 = call i32 @s2n_record_write(ptr noundef nonnull %221, i8 noundef zeroext 23, ptr noundef nonnull %10) #12
  %.not331 = icmp eq i64 %.0371, 8088
  %568 = load i32, ptr @test_count, align 4, !tbaa !5
  %569 = add nsw i32 %568, 1
  store i32 %569, ptr @test_count, align 4, !tbaa !5
  br i1 %.not331, label %595, label %570

570:                                              ; preds = %566
  %571 = call zeroext i1 @s2n_result_is_ok(i32 %567)
  br i1 %571, label %677, label %572

572:                                              ; preds = %570
  %573 = tail call ptr @__errno_location() #13
  %574 = load i32, ptr %573, align 4, !tbaa !5
  %575 = load ptr, ptr @stderr, align 8, !tbaa !9
  %576 = call i32 @s2n_print_stacktrace(ptr noundef %575) #12
  %577 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %578 = trunc nuw i8 %577 to i1
  br i1 %578, label %579, label %583

579:                                              ; preds = %572
  %580 = load ptr, ptr @stderr, align 8, !tbaa !9
  %581 = call i32 @fileno(ptr noundef %580) #12
  %582 = call i32 @isatty(i32 noundef %581) #12
  %.not335 = icmp eq i32 %582, 0
  br i1 %.not335, label %583, label %584

583:                                              ; preds = %579, %572
  br label %584

584:                                              ; preds = %579, %583
  %.str.4.sink556 = phi ptr [ @.str.4, %583 ], [ @.str, %579 ]
  store i32 %574, ptr %573, align 4, !tbaa !5
  %585 = load ptr, ptr @stderr, align 8, !tbaa !9
  %586 = load i32, ptr @test_count, align 4, !tbaa !5
  %587 = load i32, ptr %491, align 4, !tbaa !5
  %588 = call ptr @s2n_strerror(i32 noundef %587, ptr noundef nonnull @.str.3) #12
  %589 = load i32, ptr %491, align 4, !tbaa !5
  %590 = call ptr @s2n_strerror_debug(i32 noundef %589, ptr noundef nonnull @.str.3) #12
  %591 = load i32, ptr %573, align 4, !tbaa !5
  %592 = call ptr @strerror(i32 noundef %591) #12
  %593 = load i32, ptr %573, align 4, !tbaa !5
  %594 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %585, ptr noundef nonnull %.str.4.sink556, i32 noundef %586, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.2, i32 noundef 73, ptr noundef %588, ptr noundef %590, ptr noundef %592, i32 noundef %593) #14
  call void @exit(i32 noundef 1) #15
  unreachable

595:                                              ; preds = %566
  %596 = call zeroext i1 @s2n_result_is_error(i32 %567)
  br i1 %596, label %620, label %597

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

604:                                              ; preds = %597
  %605 = load ptr, ptr @stderr, align 8, !tbaa !9
  %606 = call i32 @fileno(ptr noundef %605) #12
  %607 = call i32 @isatty(i32 noundef %606) #12
  %.not332 = icmp eq i32 %607, 0
  br i1 %.not332, label %608, label %609

608:                                              ; preds = %604, %597
  br label %609

609:                                              ; preds = %604, %608
  %.str.4.sink565 = phi ptr [ @.str.4, %608 ], [ @.str, %604 ]
  store i32 %599, ptr %598, align 4, !tbaa !5
  %610 = load ptr, ptr @stderr, align 8, !tbaa !9
  %611 = load i32, ptr @test_count, align 4, !tbaa !5
  %612 = load i32, ptr %491, align 4, !tbaa !5
  %613 = call ptr @s2n_strerror(i32 noundef %612, ptr noundef nonnull @.str.3) #12
  %614 = load i32, ptr %491, align 4, !tbaa !5
  %615 = call ptr @s2n_strerror_debug(i32 noundef %614, ptr noundef nonnull @.str.3) #12
  %616 = load i32, ptr %598, align 4, !tbaa !5
  %617 = call ptr @strerror(i32 noundef %616) #12
  %618 = load i32, ptr %598, align 4, !tbaa !5
  %619 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %610, ptr noundef nonnull %.str.4.sink565, i32 noundef %611, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.2, i32 noundef 76, ptr noundef %613, ptr noundef %615, ptr noundef %617, i32 noundef %618) #14
  call void @exit(i32 noundef 1) #15
  unreachable

620:                                              ; preds = %595
  %621 = load i32, ptr @test_count, align 4, !tbaa !5
  %622 = add nsw i32 %621, 1
  store i32 %622, ptr @test_count, align 4, !tbaa !5
  %623 = load i32, ptr %491, align 4, !tbaa !5
  %624 = icmp eq i32 %623, 335544390
  br i1 %624, label %648, label %625

625:                                              ; preds = %620
  %626 = tail call ptr @__errno_location() #13
  %627 = load i32, ptr %626, align 4, !tbaa !5
  %628 = load ptr, ptr @stderr, align 8, !tbaa !9
  %629 = call i32 @s2n_print_stacktrace(ptr noundef %628) #12
  %630 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %631 = trunc nuw i8 %630 to i1
  br i1 %631, label %632, label %636

632:                                              ; preds = %625
  %633 = load ptr, ptr @stderr, align 8, !tbaa !9
  %634 = call i32 @fileno(ptr noundef %633) #12
  %635 = call i32 @isatty(i32 noundef %634) #12
  %.not333 = icmp eq i32 %635, 0
  br i1 %.not333, label %636, label %637

636:                                              ; preds = %632, %625
  br label %637

637:                                              ; preds = %632, %636
  %.str.4.sink574 = phi ptr [ @.str.4, %636 ], [ @.str, %632 ]
  store i32 %627, ptr %626, align 4, !tbaa !5
  %638 = load ptr, ptr @stderr, align 8, !tbaa !9
  %639 = load i32, ptr @test_count, align 4, !tbaa !5
  %640 = load i32, ptr %491, align 4, !tbaa !5
  %641 = call ptr @s2n_strerror(i32 noundef %640, ptr noundef nonnull @.str.3) #12
  %642 = load i32, ptr %491, align 4, !tbaa !5
  %643 = call ptr @s2n_strerror_debug(i32 noundef %642, ptr noundef nonnull @.str.3) #12
  %644 = load i32, ptr %626, align 4, !tbaa !5
  %645 = call ptr @strerror(i32 noundef %644) #12
  %646 = load i32, ptr %626, align 4, !tbaa !5
  %647 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %638, ptr noundef nonnull %.str.4.sink574, i32 noundef %639, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.2, i32 noundef 76, ptr noundef %641, ptr noundef %643, ptr noundef %645, i32 noundef %646) #14
  call void @exit(i32 noundef 1) #15
  unreachable

648:                                              ; preds = %620
  %649 = add nsw i32 %621, 2
  store i32 %649, ptr @test_count, align 4, !tbaa !5
  %650 = call ptr @s2n_strerror_debug(i32 noundef 335544390, ptr noundef nonnull @.str.3) #12
  %651 = icmp eq ptr %650, null
  br i1 %651, label %652, label %675

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

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

663:                                              ; preds = %659, %652
  br label %664

664:                                              ; preds = %659, %663
  %.str.4.sink583 = phi ptr [ @.str.4, %663 ], [ @.str, %659 ]
  store i32 %654, ptr %653, align 4, !tbaa !5
  %665 = load ptr, ptr @stderr, align 8, !tbaa !9
  %666 = load i32, ptr @test_count, align 4, !tbaa !5
  %667 = load i32, ptr %491, align 4, !tbaa !5
  %668 = call ptr @s2n_strerror(i32 noundef %667, ptr noundef nonnull @.str.3) #12
  %669 = load i32, ptr %491, align 4, !tbaa !5
  %670 = call ptr @s2n_strerror_debug(i32 noundef %669, ptr noundef nonnull @.str.3) #12
  %671 = load i32, ptr %653, align 4, !tbaa !5
  %672 = call ptr @strerror(i32 noundef %671) #12
  %673 = load i32, ptr %653, align 4, !tbaa !5
  %674 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %665, ptr noundef nonnull %.str.4.sink583, i32 noundef %666, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.2, i32 noundef 76, ptr noundef %668, ptr noundef %670, ptr noundef %672, i32 noundef %673) #14
  call void @exit(i32 noundef 1) #15
  unreachable

675:                                              ; preds = %648
  store i32 0, ptr %491, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  %676 = tail call ptr @__errno_location() #13
  store i32 0, ptr %676, align 4, !tbaa !5
  br label %677

677:                                              ; preds = %570, %675
  %.0274 = phi i32 [ 8087, %675 ], [ %512, %570 ]
  %678 = trunc i32 %.0274 to i16
  %.biased367 = add nsw i16 %678, 52
  %.0275 = and i16 %.biased367, -16
  %679 = load i32, ptr @test_count, align 4, !tbaa !5
  %680 = add nsw i32 %679, 1
  store i32 %680, ptr @test_count, align 4, !tbaa !5
  %681 = load ptr, ptr %490, align 8, !tbaa !59
  %682 = load i8, ptr %681, align 1, !tbaa !60
  %683 = icmp eq i8 %682, 23
  br i1 %683, label %707, label %684

684:                                              ; preds = %677
  %685 = tail call ptr @__errno_location() #13
  %686 = load i32, ptr %685, align 4, !tbaa !5
  %687 = load ptr, ptr @stderr, align 8, !tbaa !9
  %688 = call i32 @s2n_print_stacktrace(ptr noundef %687) #12
  %689 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %690 = trunc nuw i8 %689 to i1
  br i1 %690, label %691, label %695

691:                                              ; preds = %684
  %692 = load ptr, ptr @stderr, align 8, !tbaa !9
  %693 = call i32 @fileno(ptr noundef %692) #12
  %694 = call i32 @isatty(i32 noundef %693) #12
  %.not338 = icmp eq i32 %694, 0
  br i1 %.not338, label %695, label %696

695:                                              ; preds = %691, %684
  br label %696

696:                                              ; preds = %691, %695
  %.str.4.sink592 = phi ptr [ @.str.4, %695 ], [ @.str, %691 ]
  store i32 %686, ptr %685, align 4, !tbaa !5
  %697 = load ptr, ptr @stderr, align 8, !tbaa !9
  %698 = load i32, ptr @test_count, align 4, !tbaa !5
  %699 = load i32, ptr %491, align 4, !tbaa !5
  %700 = call ptr @s2n_strerror(i32 noundef %699, ptr noundef nonnull @.str.3) #12
  %701 = load i32, ptr %491, align 4, !tbaa !5
  %702 = call ptr @s2n_strerror_debug(i32 noundef %701, ptr noundef nonnull @.str.3) #12
  %703 = load i32, ptr %685, align 4, !tbaa !5
  %704 = call ptr @strerror(i32 noundef %703) #12
  %705 = load i32, ptr %685, align 4, !tbaa !5
  %706 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %697, ptr noundef nonnull %.str.4.sink592, i32 noundef %698, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.2, i32 noundef 84, ptr noundef %700, ptr noundef %702, ptr noundef %704, i32 noundef %705) #14
  call void @exit(i32 noundef 1) #15
  unreachable

707:                                              ; preds = %677
  %708 = add nsw i32 %679, 2
  store i32 %708, ptr @test_count, align 4, !tbaa !5
  %709 = getelementptr inbounds i8, ptr %681, i64 1
  %710 = load i8, ptr %709, align 1, !tbaa !60
  %711 = icmp eq i8 %710, 3
  br i1 %711, label %735, label %712

712:                                              ; preds = %707
  %713 = tail call ptr @__errno_location() #13
  %714 = load i32, ptr %713, align 4, !tbaa !5
  %715 = load ptr, ptr @stderr, align 8, !tbaa !9
  %716 = call i32 @s2n_print_stacktrace(ptr noundef %715) #12
  %717 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %718 = trunc nuw i8 %717 to i1
  br i1 %718, label %719, label %723

719:                                              ; preds = %712
  %720 = load ptr, ptr @stderr, align 8, !tbaa !9
  %721 = call i32 @fileno(ptr noundef %720) #12
  %722 = call i32 @isatty(i32 noundef %721) #12
  %.not339 = icmp eq i32 %722, 0
  br i1 %.not339, label %723, label %724

723:                                              ; preds = %719, %712
  br label %724

724:                                              ; preds = %719, %723
  %.str.4.sink601 = phi ptr [ @.str.4, %723 ], [ @.str, %719 ]
  store i32 %714, ptr %713, align 4, !tbaa !5
  %725 = load ptr, ptr @stderr, align 8, !tbaa !9
  %726 = load i32, ptr @test_count, align 4, !tbaa !5
  %727 = load i32, ptr %491, align 4, !tbaa !5
  %728 = call ptr @s2n_strerror(i32 noundef %727, ptr noundef nonnull @.str.3) #12
  %729 = load i32, ptr %491, align 4, !tbaa !5
  %730 = call ptr @s2n_strerror_debug(i32 noundef %729, ptr noundef nonnull @.str.3) #12
  %731 = load i32, ptr %713, align 4, !tbaa !5
  %732 = call ptr @strerror(i32 noundef %731) #12
  %733 = load i32, ptr %713, align 4, !tbaa !5
  %734 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %725, ptr noundef nonnull %.str.4.sink601, i32 noundef %726, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.2, i32 noundef 85, ptr noundef %728, ptr noundef %730, ptr noundef %732, i32 noundef %733) #14
  call void @exit(i32 noundef 1) #15
  unreachable

735:                                              ; preds = %707
  %736 = add nsw i32 %679, 3
  store i32 %736, ptr @test_count, align 4, !tbaa !5
  %737 = getelementptr inbounds i8, ptr %681, i64 2
  %738 = load i8, ptr %737, align 1, !tbaa !60
  %739 = icmp eq i8 %738, 2
  br i1 %739, label %763, label %740

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

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

751:                                              ; preds = %747, %740
  br label %752

752:                                              ; preds = %747, %751
  %.str.4.sink610 = phi ptr [ @.str.4, %751 ], [ @.str, %747 ]
  store i32 %742, ptr %741, align 4, !tbaa !5
  %753 = load ptr, ptr @stderr, align 8, !tbaa !9
  %754 = load i32, ptr @test_count, align 4, !tbaa !5
  %755 = load i32, ptr %491, align 4, !tbaa !5
  %756 = call ptr @s2n_strerror(i32 noundef %755, ptr noundef nonnull @.str.3) #12
  %757 = load i32, ptr %491, align 4, !tbaa !5
  %758 = call ptr @s2n_strerror_debug(i32 noundef %757, ptr noundef nonnull @.str.3) #12
  %759 = load i32, ptr %741, align 4, !tbaa !5
  %760 = call ptr @strerror(i32 noundef %759) #12
  %761 = load i32, ptr %741, align 4, !tbaa !5
  %762 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %753, ptr noundef nonnull %.str.4.sink610, i32 noundef %754, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.2, i32 noundef 86, ptr noundef %756, ptr noundef %758, ptr noundef %760, i32 noundef %761) #14
  call void @exit(i32 noundef 1) #15
  unreachable

763:                                              ; preds = %735
  %764 = add nsw i32 %679, 4
  store i32 %764, ptr @test_count, align 4, !tbaa !5
  %765 = getelementptr inbounds i8, ptr %681, i64 3
  %766 = load i8, ptr %765, align 1, !tbaa !60
  %767 = lshr i16 %.biased367, 8
  %768 = zext i8 %766 to i16
  %769 = icmp eq i16 %767, %768
  br i1 %769, label %793, label %770

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

777:                                              ; preds = %770
  %778 = load ptr, ptr @stderr, align 8, !tbaa !9
  %779 = call i32 @fileno(ptr noundef %778) #12
  %780 = call i32 @isatty(i32 noundef %779) #12
  %.not341 = icmp eq i32 %780, 0
  br i1 %.not341, label %781, label %782

781:                                              ; preds = %777, %770
  br label %782

782:                                              ; preds = %777, %781
  %.str.4.sink619 = phi ptr [ @.str.4, %781 ], [ @.str, %777 ]
  store i32 %772, ptr %771, align 4, !tbaa !5
  %783 = load ptr, ptr @stderr, align 8, !tbaa !9
  %784 = load i32, ptr @test_count, align 4, !tbaa !5
  %785 = load i32, ptr %491, align 4, !tbaa !5
  %786 = call ptr @s2n_strerror(i32 noundef %785, ptr noundef nonnull @.str.3) #12
  %787 = load i32, ptr %491, align 4, !tbaa !5
  %788 = call ptr @s2n_strerror_debug(i32 noundef %787, ptr noundef nonnull @.str.3) #12
  %789 = load i32, ptr %771, align 4, !tbaa !5
  %790 = call ptr @strerror(i32 noundef %789) #12
  %791 = load i32, ptr %771, align 4, !tbaa !5
  %792 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %783, ptr noundef nonnull %.str.4.sink619, i32 noundef %784, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.2, i32 noundef 87, ptr noundef %786, ptr noundef %788, ptr noundef %790, i32 noundef %791) #14
  call void @exit(i32 noundef 1) #15
  unreachable

793:                                              ; preds = %763
  %794 = add nsw i32 %679, 5
  store i32 %794, ptr @test_count, align 4, !tbaa !5
  %795 = getelementptr inbounds i8, ptr %681, i64 4
  %796 = load i8, ptr %795, align 1, !tbaa !60
  %797 = trunc i16 %.0275 to i8
  %798 = icmp eq i8 %796, %797
  br i1 %798, label %822, label %799

799:                                              ; preds = %793
  %800 = tail call ptr @__errno_location() #13
  %801 = load i32, ptr %800, align 4, !tbaa !5
  %802 = load ptr, ptr @stderr, align 8, !tbaa !9
  %803 = call i32 @s2n_print_stacktrace(ptr noundef %802) #12
  %804 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %805 = trunc nuw i8 %804 to i1
  br i1 %805, label %806, label %810

806:                                              ; preds = %799
  %807 = load ptr, ptr @stderr, align 8, !tbaa !9
  %808 = call i32 @fileno(ptr noundef %807) #12
  %809 = call i32 @isatty(i32 noundef %808) #12
  %.not342 = icmp eq i32 %809, 0
  br i1 %.not342, label %810, label %811

810:                                              ; preds = %806, %799
  br label %811

811:                                              ; preds = %806, %810
  %.str.4.sink628 = phi ptr [ @.str.4, %810 ], [ @.str, %806 ]
  store i32 %801, ptr %800, align 4, !tbaa !5
  %812 = load ptr, ptr @stderr, align 8, !tbaa !9
  %813 = load i32, ptr @test_count, align 4, !tbaa !5
  %814 = load i32, ptr %491, align 4, !tbaa !5
  %815 = call ptr @s2n_strerror(i32 noundef %814, ptr noundef nonnull @.str.3) #12
  %816 = load i32, ptr %491, align 4, !tbaa !5
  %817 = call ptr @s2n_strerror_debug(i32 noundef %816, ptr noundef nonnull @.str.3) #12
  %818 = load i32, ptr %800, align 4, !tbaa !5
  %819 = call ptr @strerror(i32 noundef %818) #12
  %820 = load i32, ptr %800, align 4, !tbaa !5
  %821 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %812, ptr noundef nonnull %.str.4.sink628, i32 noundef %813, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.2, i32 noundef 88, ptr noundef %815, ptr noundef %817, ptr noundef %819, i32 noundef %820) #14
  call void @exit(i32 noundef 1) #15
  unreachable

822:                                              ; preds = %793
  %823 = icmp ugt i32 %.0274, 10
  br i1 %823, label %824, label %852

824:                                              ; preds = %822
  %825 = add nsw i32 %679, 6
  store i32 %825, ptr @test_count, align 4, !tbaa !5
  %826 = getelementptr inbounds i8, ptr %681, i64 5
  %827 = zext nneg i32 %.0274 to i64
  %bcmp343 = call i32 @bcmp(ptr nonnull %826, ptr nonnull %8, i64 %827)
  %828 = icmp eq i32 %bcmp343, 0
  br i1 %828, label %829, label %852

829:                                              ; preds = %824
  %830 = tail call ptr @__errno_location() #13
  %831 = load i32, ptr %830, align 4, !tbaa !5
  %832 = load ptr, ptr @stderr, align 8, !tbaa !9
  %833 = call i32 @s2n_print_stacktrace(ptr noundef %832) #12
  %834 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %835 = trunc nuw i8 %834 to i1
  br i1 %835, label %836, label %840

836:                                              ; preds = %829
  %837 = load ptr, ptr @stderr, align 8, !tbaa !9
  %838 = call i32 @fileno(ptr noundef %837) #12
  %839 = call i32 @isatty(i32 noundef %838) #12
  %.not354 = icmp eq i32 %839, 0
  br i1 %.not354, label %840, label %841

840:                                              ; preds = %836, %829
  br label %841

841:                                              ; preds = %836, %840
  %.str.4.sink637 = phi ptr [ @.str.4, %840 ], [ @.str, %836 ]
  store i32 %831, ptr %830, align 4, !tbaa !5
  %842 = load ptr, ptr @stderr, align 8, !tbaa !9
  %843 = load i32, ptr @test_count, align 4, !tbaa !5
  %844 = load i32, ptr %491, align 4, !tbaa !5
  %845 = call ptr @s2n_strerror(i32 noundef %844, ptr noundef nonnull @.str.3) #12
  %846 = load i32, ptr %491, align 4, !tbaa !5
  %847 = call ptr @s2n_strerror_debug(i32 noundef %846, ptr noundef nonnull @.str.3) #12
  %848 = load i32, ptr %830, align 4, !tbaa !5
  %849 = call ptr @strerror(i32 noundef %848) #12
  %850 = load i32, ptr %830, align 4, !tbaa !5
  %851 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %842, ptr noundef nonnull %.str.4.sink637, i32 noundef %843, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.2, i32 noundef 92, ptr noundef %845, ptr noundef %847, ptr noundef %849, i32 noundef %850) #14
  call void @exit(i32 noundef 1) #15
  unreachable

852:                                              ; preds = %822, %824
  %853 = phi i32 [ %794, %822 ], [ %825, %824 ]
  %854 = add nsw i32 %853, 1
  store i32 %854, ptr @test_count, align 4, !tbaa !5
  %855 = call i32 @s2n_stuffer_wipe(ptr noundef nonnull %492) #12
  %856 = icmp eq i32 %855, -1
  br i1 %856, label %857, label %880

857:                                              ; preds = %852
  %858 = tail call ptr @__errno_location() #13
  %859 = load i32, ptr %858, align 4, !tbaa !5
  %860 = load ptr, ptr @stderr, align 8, !tbaa !9
  %861 = call i32 @s2n_print_stacktrace(ptr noundef %860) #12
  %862 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %863 = trunc nuw i8 %862 to i1
  br i1 %863, label %864, label %868

864:                                              ; preds = %857
  %865 = load ptr, ptr @stderr, align 8, !tbaa !9
  %866 = call i32 @fileno(ptr noundef %865) #12
  %867 = call i32 @isatty(i32 noundef %866) #12
  %.not353 = icmp eq i32 %867, 0
  br i1 %.not353, label %868, label %869

868:                                              ; preds = %864, %857
  br label %869

869:                                              ; preds = %864, %868
  %.str.4.sink646 = phi ptr [ @.str.4, %868 ], [ @.str, %864 ]
  store i32 %859, ptr %858, align 4, !tbaa !5
  %870 = load ptr, ptr @stderr, align 8, !tbaa !9
  %871 = load i32, ptr @test_count, align 4, !tbaa !5
  %872 = load i32, ptr %491, align 4, !tbaa !5
  %873 = call ptr @s2n_strerror(i32 noundef %872, ptr noundef nonnull @.str.3) #12
  %874 = load i32, ptr %491, align 4, !tbaa !5
  %875 = call ptr @s2n_strerror_debug(i32 noundef %874, ptr noundef nonnull @.str.3) #12
  %876 = load i32, ptr %858, align 4, !tbaa !5
  %877 = call ptr @strerror(i32 noundef %876) #12
  %878 = load i32, ptr %858, align 4, !tbaa !5
  %879 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %870, ptr noundef nonnull %.str.4.sink646, i32 noundef %871, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.2, i32 noundef 96, ptr noundef %873, ptr noundef %875, ptr noundef %877, i32 noundef %878) #14
  call void @exit(i32 noundef 1) #15
  unreachable

880:                                              ; preds = %852
  %881 = load i32, ptr @test_count, align 4, !tbaa !5
  %882 = add nsw i32 %881, 1
  store i32 %882, ptr @test_count, align 4, !tbaa !5
  %883 = call i32 @s2n_stuffer_wipe(ptr noundef nonnull %493) #12
  %884 = icmp eq i32 %883, -1
  br i1 %884, label %885, label %908

885:                                              ; preds = %880
  %886 = tail call ptr @__errno_location() #13
  %887 = load i32, ptr %886, align 4, !tbaa !5
  %888 = load ptr, ptr @stderr, align 8, !tbaa !9
  %889 = call i32 @s2n_print_stacktrace(ptr noundef %888) #12
  %890 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %891 = trunc nuw i8 %890 to i1
  br i1 %891, label %892, label %896

892:                                              ; preds = %885
  %893 = load ptr, ptr @stderr, align 8, !tbaa !9
  %894 = call i32 @fileno(ptr noundef %893) #12
  %895 = call i32 @isatty(i32 noundef %894) #12
  %.not352 = icmp eq i32 %895, 0
  br i1 %.not352, label %896, label %897

896:                                              ; preds = %892, %885
  br label %897

897:                                              ; preds = %892, %896
  %.str.4.sink655 = phi ptr [ @.str.4, %896 ], [ @.str, %892 ]
  store i32 %887, ptr %886, align 4, !tbaa !5
  %898 = load ptr, ptr @stderr, align 8, !tbaa !9
  %899 = load i32, ptr @test_count, align 4, !tbaa !5
  %900 = load i32, ptr %491, align 4, !tbaa !5
  %901 = call ptr @s2n_strerror(i32 noundef %900, ptr noundef nonnull @.str.3) #12
  %902 = load i32, ptr %491, align 4, !tbaa !5
  %903 = call ptr @s2n_strerror_debug(i32 noundef %902, ptr noundef nonnull @.str.3) #12
  %904 = load i32, ptr %886, align 4, !tbaa !5
  %905 = call ptr @strerror(i32 noundef %904) #12
  %906 = load i32, ptr %886, align 4, !tbaa !5
  %907 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %898, ptr noundef nonnull %.str.4.sink655, i32 noundef %899, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.2, i32 noundef 97, ptr noundef %901, ptr noundef %903, ptr noundef %905, i32 noundef %906) #14
  call void @exit(i32 noundef 1) #15
  unreachable

908:                                              ; preds = %880
  %909 = load i32, ptr @test_count, align 4, !tbaa !5
  %910 = add nsw i32 %909, 1
  store i32 %910, ptr @test_count, align 4, !tbaa !5
  %911 = call i32 @s2n_stuffer_copy(ptr noundef nonnull %490, ptr noundef nonnull %493, i32 noundef 5) #12
  %912 = icmp eq i32 %911, -1
  br i1 %912, label %913, label %936

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

920:                                              ; preds = %913
  %921 = load ptr, ptr @stderr, align 8, !tbaa !9
  %922 = call i32 @fileno(ptr noundef %921) #12
  %923 = call i32 @isatty(i32 noundef %922) #12
  %.not351 = icmp eq i32 %923, 0
  br i1 %.not351, label %924, label %925

924:                                              ; preds = %920, %913
  br label %925

925:                                              ; preds = %920, %924
  %.str.4.sink664 = phi ptr [ @.str.4, %924 ], [ @.str, %920 ]
  store i32 %915, ptr %914, align 4, !tbaa !5
  %926 = load ptr, ptr @stderr, align 8, !tbaa !9
  %927 = load i32, ptr @test_count, align 4, !tbaa !5
  %928 = load i32, ptr %491, align 4, !tbaa !5
  %929 = call ptr @s2n_strerror(i32 noundef %928, ptr noundef nonnull @.str.3) #12
  %930 = load i32, ptr %491, align 4, !tbaa !5
  %931 = call ptr @s2n_strerror_debug(i32 noundef %930, ptr noundef nonnull @.str.3) #12
  %932 = load i32, ptr %914, align 4, !tbaa !5
  %933 = call ptr @strerror(i32 noundef %932) #12
  %934 = load i32, ptr %914, align 4, !tbaa !5
  %935 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %926, ptr noundef nonnull %.str.4.sink664, i32 noundef %927, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.2, i32 noundef 98, ptr noundef %929, ptr noundef %931, ptr noundef %933, i32 noundef %934) #14
  call void @exit(i32 noundef 1) #15
  unreachable

936:                                              ; preds = %908
  %937 = load i32, ptr @test_count, align 4, !tbaa !5
  %938 = add nsw i32 %937, 1
  store i32 %938, ptr @test_count, align 4, !tbaa !5
  %939 = load i32, ptr %494, align 4, !tbaa !61
  %940 = load i32, ptr %495, align 8, !tbaa !62
  %941 = sub i32 %939, %940
  %942 = call i32 @s2n_stuffer_copy(ptr noundef nonnull %490, ptr noundef nonnull %492, i32 noundef %941) #12
  %943 = icmp eq i32 %942, -1
  br i1 %943, label %944, label %967

944:                                              ; preds = %936
  %945 = tail call ptr @__errno_location() #13
  %946 = load i32, ptr %945, align 4, !tbaa !5
  %947 = load ptr, ptr @stderr, align 8, !tbaa !9
  %948 = call i32 @s2n_print_stacktrace(ptr noundef %947) #12
  %949 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %950 = trunc nuw i8 %949 to i1
  br i1 %950, label %951, label %955

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

955:                                              ; preds = %951, %944
  br label %956

956:                                              ; preds = %951, %955
  %.str.4.sink673 = phi ptr [ @.str.4, %955 ], [ @.str, %951 ]
  store i32 %946, ptr %945, align 4, !tbaa !5
  %957 = load ptr, ptr @stderr, align 8, !tbaa !9
  %958 = load i32, ptr @test_count, align 4, !tbaa !5
  %959 = load i32, ptr %491, align 4, !tbaa !5
  %960 = call ptr @s2n_strerror(i32 noundef %959, ptr noundef nonnull @.str.3) #12
  %961 = load i32, ptr %491, align 4, !tbaa !5
  %962 = call ptr @s2n_strerror_debug(i32 noundef %961, ptr noundef nonnull @.str.3) #12
  %963 = load i32, ptr %945, align 4, !tbaa !5
  %964 = call ptr @strerror(i32 noundef %963) #12
  %965 = load i32, ptr %945, align 4, !tbaa !5
  %966 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %957, ptr noundef nonnull %.str.4.sink673, i32 noundef %958, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.2, i32 noundef 99, ptr noundef %960, ptr noundef %962, ptr noundef %964, i32 noundef %965) #14
  call void @exit(i32 noundef 1) #15
  unreachable

967:                                              ; preds = %936
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %11) #12
  store i8 0, ptr %11, align 1, !tbaa !60
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %12) #12
  store i16 0, ptr %12, align 2, !tbaa !63
  %968 = load i32, ptr @test_count, align 4, !tbaa !5
  %969 = add nsw i32 %968, 1
  store i32 %969, ptr @test_count, align 4, !tbaa !5
  %970 = call i32 @s2n_record_header_parse(ptr noundef nonnull %221, ptr noundef nonnull %11, ptr noundef nonnull %12) #12
  %971 = icmp eq i32 %970, -1
  br i1 %971, label %972, label %995

972:                                              ; preds = %967
  %973 = tail call ptr @__errno_location() #13
  %974 = load i32, ptr %973, align 4, !tbaa !5
  %975 = load ptr, ptr @stderr, align 8, !tbaa !9
  %976 = call i32 @s2n_print_stacktrace(ptr noundef %975) #12
  %977 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %978 = trunc nuw i8 %977 to i1
  br i1 %978, label %979, label %983

979:                                              ; preds = %972
  %980 = load ptr, ptr @stderr, align 8, !tbaa !9
  %981 = call i32 @fileno(ptr noundef %980) #12
  %982 = call i32 @isatty(i32 noundef %981) #12
  %.not349 = icmp eq i32 %982, 0
  br i1 %.not349, label %983, label %984

983:                                              ; preds = %979, %972
  br label %984

984:                                              ; preds = %979, %983
  %.str.4.sink682 = phi ptr [ @.str.4, %983 ], [ @.str, %979 ]
  store i32 %974, ptr %973, align 4, !tbaa !5
  %985 = load ptr, ptr @stderr, align 8, !tbaa !9
  %986 = load i32, ptr @test_count, align 4, !tbaa !5
  %987 = load i32, ptr %491, align 4, !tbaa !5
  %988 = call ptr @s2n_strerror(i32 noundef %987, ptr noundef nonnull @.str.3) #12
  %989 = load i32, ptr %491, align 4, !tbaa !5
  %990 = call ptr @s2n_strerror_debug(i32 noundef %989, ptr noundef nonnull @.str.3) #12
  %991 = load i32, ptr %973, align 4, !tbaa !5
  %992 = call ptr @strerror(i32 noundef %991) #12
  %993 = load i32, ptr %973, align 4, !tbaa !5
  %994 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %985, ptr noundef nonnull %.str.4.sink682, i32 noundef %986, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.2, i32 noundef 104, ptr noundef %988, ptr noundef %990, ptr noundef %992, i32 noundef %993) #14
  call void @exit(i32 noundef 1) #15
  unreachable

995:                                              ; preds = %967
  %996 = load i32, ptr @test_count, align 4, !tbaa !5
  %997 = add nsw i32 %996, 1
  store i32 %997, ptr @test_count, align 4, !tbaa !5
  %998 = call i32 @s2n_record_parse(ptr noundef nonnull %221) #12
  %999 = icmp eq i32 %998, -1
  br i1 %999, label %1000, label %1023

1000:                                             ; preds = %995
  %1001 = tail call ptr @__errno_location() #13
  %1002 = load i32, ptr %1001, align 4, !tbaa !5
  %1003 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1004 = call i32 @s2n_print_stacktrace(ptr noundef %1003) #12
  %1005 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1006 = trunc nuw i8 %1005 to i1
  br i1 %1006, label %1007, label %1011

1007:                                             ; preds = %1000
  %1008 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1009 = call i32 @fileno(ptr noundef %1008) #12
  %1010 = call i32 @isatty(i32 noundef %1009) #12
  %.not348 = icmp eq i32 %1010, 0
  br i1 %.not348, label %1011, label %1012

1011:                                             ; preds = %1007, %1000
  br label %1012

1012:                                             ; preds = %1007, %1011
  %.str.4.sink691 = phi ptr [ @.str.4, %1011 ], [ @.str, %1007 ]
  store i32 %1002, ptr %1001, align 4, !tbaa !5
  %1013 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1014 = load i32, ptr @test_count, align 4, !tbaa !5
  %1015 = load i32, ptr %491, align 4, !tbaa !5
  %1016 = call ptr @s2n_strerror(i32 noundef %1015, ptr noundef nonnull @.str.3) #12
  %1017 = load i32, ptr %491, align 4, !tbaa !5
  %1018 = call ptr @s2n_strerror_debug(i32 noundef %1017, ptr noundef nonnull @.str.3) #12
  %1019 = load i32, ptr %1001, align 4, !tbaa !5
  %1020 = call ptr @strerror(i32 noundef %1019) #12
  %1021 = load i32, ptr %1001, align 4, !tbaa !5
  %1022 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1013, ptr noundef nonnull %.str.4.sink691, i32 noundef %1014, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.2, i32 noundef 105, ptr noundef %1016, ptr noundef %1018, ptr noundef %1020, i32 noundef %1021) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1023:                                             ; preds = %995
  %1024 = load i32, ptr @test_count, align 4, !tbaa !5
  %1025 = add nsw i32 %1024, 1
  store i32 %1025, ptr @test_count, align 4, !tbaa !5
  %1026 = load i8, ptr %11, align 1, !tbaa !60
  %1027 = icmp eq i8 %1026, 23
  br i1 %1027, label %1051, label %1028

1028:                                             ; preds = %1023
  %1029 = tail call ptr @__errno_location() #13
  %1030 = load i32, ptr %1029, align 4, !tbaa !5
  %1031 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1032 = call i32 @s2n_print_stacktrace(ptr noundef %1031) #12
  %1033 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1034 = trunc nuw i8 %1033 to i1
  br i1 %1034, label %1035, label %1039

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

1039:                                             ; preds = %1035, %1028
  br label %1040

1040:                                             ; preds = %1035, %1039
  %.str.4.sink700 = phi ptr [ @.str.4, %1039 ], [ @.str, %1035 ]
  store i32 %1030, ptr %1029, align 4, !tbaa !5
  %1041 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1042 = load i32, ptr @test_count, align 4, !tbaa !5
  %1043 = load i32, ptr %491, align 4, !tbaa !5
  %1044 = call ptr @s2n_strerror(i32 noundef %1043, ptr noundef nonnull @.str.3) #12
  %1045 = load i32, ptr %491, align 4, !tbaa !5
  %1046 = call ptr @s2n_strerror_debug(i32 noundef %1045, ptr noundef nonnull @.str.3) #12
  %1047 = load i32, ptr %1029, align 4, !tbaa !5
  %1048 = call ptr @strerror(i32 noundef %1047) #12
  %1049 = load i32, ptr %1029, align 4, !tbaa !5
  %1050 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1041, ptr noundef nonnull %.str.4.sink700, i32 noundef %1042, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.2, i32 noundef 106, ptr noundef %1044, ptr noundef %1046, ptr noundef %1048, i32 noundef %1049) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1051:                                             ; preds = %1023
  %1052 = add nsw i32 %1024, 2
  store i32 %1052, ptr @test_count, align 4, !tbaa !5
  %1053 = load i16, ptr %12, align 2, !tbaa !63
  %1054 = icmp eq i16 %1053, %.0275
  br i1 %1054, label %1078, label %1055

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

1062:                                             ; preds = %1055
  %1063 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1064 = call i32 @fileno(ptr noundef %1063) #12
  %1065 = call i32 @isatty(i32 noundef %1064) #12
  %.not345 = icmp eq i32 %1065, 0
  br i1 %.not345, label %1066, label %1067

1066:                                             ; preds = %1062, %1055
  br label %1067

1067:                                             ; preds = %1062, %1066
  %.str.4.sink709 = phi ptr [ @.str.4, %1066 ], [ @.str, %1062 ]
  store i32 %1057, ptr %1056, align 4, !tbaa !5
  %1068 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1069 = load i32, ptr @test_count, align 4, !tbaa !5
  %1070 = load i32, ptr %491, align 4, !tbaa !5
  %1071 = call ptr @s2n_strerror(i32 noundef %1070, ptr noundef nonnull @.str.3) #12
  %1072 = load i32, ptr %491, align 4, !tbaa !5
  %1073 = call ptr @s2n_strerror_debug(i32 noundef %1072, ptr noundef nonnull @.str.3) #12
  %1074 = load i32, ptr %1056, align 4, !tbaa !5
  %1075 = call ptr @strerror(i32 noundef %1074) #12
  %1076 = load i32, ptr %1056, align 4, !tbaa !5
  %1077 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1068, ptr noundef nonnull %.str.4.sink709, i32 noundef %1069, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.2, i32 noundef 107, ptr noundef %1071, ptr noundef %1073, ptr noundef %1075, i32 noundef %1076) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1078:                                             ; preds = %1051
  %1079 = add nsw i32 %1024, 3
  store i32 %1079, ptr @test_count, align 4, !tbaa !5
  %1080 = call i32 @s2n_stuffer_wipe(ptr noundef nonnull %493) #12
  %1081 = icmp eq i32 %1080, -1
  br i1 %1081, label %1082, label %1105

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

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

1093:                                             ; preds = %1089, %1082
  br label %1094

1094:                                             ; preds = %1089, %1093
  %.str.4.sink718 = phi ptr [ @.str.4, %1093 ], [ @.str, %1089 ]
  store i32 %1084, ptr %1083, align 4, !tbaa !5
  %1095 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1096 = load i32, ptr @test_count, align 4, !tbaa !5
  %1097 = load i32, ptr %491, align 4, !tbaa !5
  %1098 = call ptr @s2n_strerror(i32 noundef %1097, ptr noundef nonnull @.str.3) #12
  %1099 = load i32, ptr %491, align 4, !tbaa !5
  %1100 = call ptr @s2n_strerror_debug(i32 noundef %1099, ptr noundef nonnull @.str.3) #12
  %1101 = load i32, ptr %1083, align 4, !tbaa !5
  %1102 = call ptr @strerror(i32 noundef %1101) #12
  %1103 = load i32, ptr %1083, align 4, !tbaa !5
  %1104 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1095, ptr noundef nonnull %.str.4.sink718, i32 noundef %1096, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.2, i32 noundef 109, ptr noundef %1098, ptr noundef %1100, ptr noundef %1102, i32 noundef %1103) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1105:                                             ; preds = %1078
  %1106 = load i32, ptr @test_count, align 4, !tbaa !5
  %1107 = add nsw i32 %1106, 1
  store i32 %1107, ptr @test_count, align 4, !tbaa !5
  %1108 = call i32 @s2n_stuffer_wipe(ptr noundef nonnull %492) #12
  %1109 = icmp eq i32 %1108, -1
  br i1 %1109, label %1110, label %1133

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

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

1121:                                             ; preds = %1117, %1110
  br label %1122

1122:                                             ; preds = %1117, %1121
  %.str.4.sink727 = phi ptr [ @.str.4, %1121 ], [ @.str, %1117 ]
  store i32 %1112, ptr %1111, align 4, !tbaa !5
  %1123 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1124 = load i32, ptr @test_count, align 4, !tbaa !5
  %1125 = load i32, ptr %491, align 4, !tbaa !5
  %1126 = call ptr @s2n_strerror(i32 noundef %1125, ptr noundef nonnull @.str.3) #12
  %1127 = load i32, ptr %491, align 4, !tbaa !5
  %1128 = call ptr @s2n_strerror_debug(i32 noundef %1127, ptr noundef nonnull @.str.3) #12
  %1129 = load i32, ptr %1111, align 4, !tbaa !5
  %1130 = call ptr @strerror(i32 noundef %1129) #12
  %1131 = load i32, ptr %1111, align 4, !tbaa !5
  %1132 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1123, ptr noundef nonnull %.str.4.sink727, i32 noundef %1124, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.2, i32 noundef 110, ptr noundef %1126, ptr noundef %1128, ptr noundef %1130, i32 noundef %1131) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1133:                                             ; preds = %1105
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %12) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %11) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %10) #12
  %1134 = add nuw nsw i64 %.0371, 1
  %exitcond.not = icmp eq i64 %1134, 8089
  br i1 %exitcond.not, label %496, label %509, !llvm.loop !64

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

1142:                                             ; preds = %1135
  %1143 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1144 = call i32 @fileno(ptr noundef %1143) #12
  %1145 = call i32 @isatty(i32 noundef %1144) #12
  %.not289 = icmp eq i32 %1145, 0
  br i1 %.not289, label %1146, label %1147

1146:                                             ; preds = %1142, %1135
  br label %1147

1147:                                             ; preds = %1142, %1146
  %.str.4.sink736 = phi ptr [ @.str.4, %1146 ], [ @.str, %1142 ]
  store i32 %1137, ptr %1136, align 4, !tbaa !5
  %1148 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1149 = load i32, ptr @test_count, align 4, !tbaa !5
  %1150 = load i32, ptr %491, align 4, !tbaa !5
  %1151 = call ptr @s2n_strerror(i32 noundef %1150, ptr noundef nonnull @.str.3) #12
  %1152 = load i32, ptr %491, align 4, !tbaa !5
  %1153 = call ptr @s2n_strerror_debug(i32 noundef %1152, ptr noundef nonnull @.str.3) #12
  %1154 = load i32, ptr %1136, align 4, !tbaa !5
  %1155 = call ptr @strerror(i32 noundef %1154) #12
  %1156 = load i32, ptr %1136, align 4, !tbaa !5
  %1157 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1148, ptr noundef nonnull %.str.4.sink736, i32 noundef %1149, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.2, i32 noundef 113, ptr noundef %1151, ptr noundef %1153, ptr noundef %1155, i32 noundef %1156) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1158:                                             ; preds = %496
  %1159 = load i32, ptr @test_count, align 4, !tbaa !5
  %1160 = add nsw i32 %1159, 1
  store i32 %1160, ptr @test_count, align 4, !tbaa !5
  %1161 = load ptr, ptr %277, align 8, !tbaa !15
  %1162 = load ptr, ptr %1161, align 8, !tbaa !44
  %1163 = getelementptr inbounds i8, ptr %1162, i64 48
  %1164 = load ptr, ptr %1163, align 8, !tbaa !49
  %1165 = load ptr, ptr %1164, align 8, !tbaa !51
  %1166 = getelementptr inbounds i8, ptr %1165, i64 88
  %1167 = load ptr, ptr %1166, align 8, !tbaa !58
  %1168 = getelementptr inbounds i8, ptr %1161, i64 8
  %1169 = call i32 %1167(ptr noundef nonnull %1168) #12
  %1170 = call zeroext i1 @s2n_result_is_ok(i32 %1169)
  br i1 %1170, label %1194, label %1171

1171:                                             ; preds = %1158
  %1172 = tail call ptr @__errno_location() #13
  %1173 = load i32, ptr %1172, align 4, !tbaa !5
  %1174 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1175 = call i32 @s2n_print_stacktrace(ptr noundef %1174) #12
  %1176 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1177 = trunc nuw i8 %1176 to i1
  br i1 %1177, label %1178, label %1182

1178:                                             ; preds = %1171
  %1179 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1180 = call i32 @fileno(ptr noundef %1179) #12
  %1181 = call i32 @isatty(i32 noundef %1180) #12
  %.not290 = icmp eq i32 %1181, 0
  br i1 %.not290, label %1182, label %1183

1182:                                             ; preds = %1178, %1171
  br label %1183

1183:                                             ; preds = %1178, %1182
  %.str.4.sink745 = phi ptr [ @.str.4, %1182 ], [ @.str, %1178 ]
  store i32 %1173, ptr %1172, align 4, !tbaa !5
  %1184 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1185 = load i32, ptr @test_count, align 4, !tbaa !5
  %1186 = load i32, ptr %491, align 4, !tbaa !5
  %1187 = call ptr @s2n_strerror(i32 noundef %1186, ptr noundef nonnull @.str.3) #12
  %1188 = load i32, ptr %491, align 4, !tbaa !5
  %1189 = call ptr @s2n_strerror_debug(i32 noundef %1188, ptr noundef nonnull @.str.3) #12
  %1190 = load i32, ptr %1172, align 4, !tbaa !5
  %1191 = call ptr @strerror(i32 noundef %1190) #12
  %1192 = load i32, ptr %1172, align 4, !tbaa !5
  %1193 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1184, ptr noundef nonnull %.str.4.sink745, i32 noundef %1185, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.2, i32 noundef 114, ptr noundef %1187, ptr noundef %1189, ptr noundef %1191, i32 noundef %1192) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1194:                                             ; preds = %1158
  %1195 = load i32, ptr @test_count, align 4, !tbaa !5
  %1196 = add nsw i32 %1195, 1
  store i32 %1196, ptr @test_count, align 4, !tbaa !5
  %1197 = call i32 @s2n_connection_free(ptr noundef nonnull %221) #12
  %1198 = icmp eq i32 %1197, -1
  br i1 %1198, label %1199, label %1222

1199:                                             ; preds = %1194
  %1200 = tail call ptr @__errno_location() #13
  %1201 = load i32, ptr %1200, align 4, !tbaa !5
  %1202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1203 = call i32 @s2n_print_stacktrace(ptr noundef %1202) #12
  %1204 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1205 = trunc nuw i8 %1204 to i1
  br i1 %1205, label %1206, label %1210

1206:                                             ; preds = %1199
  %1207 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1208 = call i32 @fileno(ptr noundef %1207) #12
  %1209 = call i32 @isatty(i32 noundef %1208) #12
  %.not330 = icmp eq i32 %1209, 0
  br i1 %.not330, label %1210, label %1211

1210:                                             ; preds = %1206, %1199
  br label %1211

1211:                                             ; preds = %1206, %1210
  %.str.4.sink754 = phi ptr [ @.str.4, %1210 ], [ @.str, %1206 ]
  store i32 %1201, ptr %1200, align 4, !tbaa !5
  %1212 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1213 = load i32, ptr @test_count, align 4, !tbaa !5
  %1214 = load i32, ptr %491, align 4, !tbaa !5
  %1215 = call ptr @s2n_strerror(i32 noundef %1214, ptr noundef nonnull @.str.3) #12
  %1216 = load i32, ptr %491, align 4, !tbaa !5
  %1217 = call ptr @s2n_strerror_debug(i32 noundef %1216, ptr noundef nonnull @.str.3) #12
  %1218 = load i32, ptr %1200, align 4, !tbaa !5
  %1219 = call ptr @strerror(i32 noundef %1218) #12
  %1220 = load i32, ptr %1200, align 4, !tbaa !5
  %1221 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1212, ptr noundef nonnull %.str.4.sink754, i32 noundef %1213, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.2, i32 noundef 115, ptr noundef %1215, ptr noundef %1217, ptr noundef %1219, i32 noundef %1220) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1222:                                             ; preds = %1194
  %1223 = load i32, ptr @test_count, align 4, !tbaa !5
  %1224 = add nsw i32 %1223, 1
  store i32 %1224, ptr @test_count, align 4, !tbaa !5
  %1225 = call ptr @s2n_connection_new(i32 noundef 0) #12
  %1226 = icmp eq ptr %1225, null
  br i1 %1226, label %1227, label %1250

1227:                                             ; preds = %1222
  %1228 = tail call ptr @__errno_location() #13
  %1229 = load i32, ptr %1228, align 4, !tbaa !5
  %1230 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1231 = call i32 @s2n_print_stacktrace(ptr noundef %1230) #12
  %1232 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1233 = trunc nuw i8 %1232 to i1
  br i1 %1233, label %1234, label %1238

1234:                                             ; preds = %1227
  %1235 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1236 = call i32 @fileno(ptr noundef %1235) #12
  %1237 = call i32 @isatty(i32 noundef %1236) #12
  %.not329 = icmp eq i32 %1237, 0
  br i1 %.not329, label %1238, label %1239

1238:                                             ; preds = %1234, %1227
  br label %1239

1239:                                             ; preds = %1234, %1238
  %.str.4.sink763 = phi ptr [ @.str.4, %1238 ], [ @.str, %1234 ]
  store i32 %1229, ptr %1228, align 4, !tbaa !5
  %1240 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1241 = load i32, ptr @test_count, align 4, !tbaa !5
  %1242 = load i32, ptr %491, align 4, !tbaa !5
  %1243 = call ptr @s2n_strerror(i32 noundef %1242, ptr noundef nonnull @.str.3) #12
  %1244 = load i32, ptr %491, align 4, !tbaa !5
  %1245 = call ptr @s2n_strerror_debug(i32 noundef %1244, ptr noundef nonnull @.str.3) #12
  %1246 = load i32, ptr %1228, align 4, !tbaa !5
  %1247 = call ptr @strerror(i32 noundef %1246) #12
  %1248 = load i32, ptr %1228, align 4, !tbaa !5
  %1249 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1240, ptr noundef nonnull %.str.4.sink763, i32 noundef %1241, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.2, i32 noundef 118, ptr noundef %1243, ptr noundef %1245, ptr noundef %1247, i32 noundef %1248) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1250:                                             ; preds = %1222
  %1251 = getelementptr inbounds i8, ptr %1225, i64 232
  %1252 = load ptr, ptr %1251, align 8, !tbaa !15
  %1253 = getelementptr inbounds i8, ptr %1225, i64 640
  store ptr %1252, ptr %1253, align 8, !tbaa !42
  %1254 = getelementptr inbounds i8, ptr %1225, i64 632
  store ptr %1252, ptr %1254, align 8, !tbaa !43
  %1255 = load ptr, ptr %1252, align 8, !tbaa !44
  %1256 = getelementptr inbounds i8, ptr %1255, i64 48
  store ptr @s2n_record_alg_aes256_sha, ptr %1256, align 8, !tbaa !49
  %1257 = load i32, ptr @test_count, align 4, !tbaa !5
  %1258 = add nsw i32 %1257, 1
  store i32 %1258, ptr @test_count, align 4, !tbaa !5
  %1259 = load ptr, ptr @s2n_record_alg_aes256_sha, align 8, !tbaa !51
  %1260 = getelementptr inbounds i8, ptr %1259, i64 64
  %1261 = load ptr, ptr %1260, align 8, !tbaa !53
  %1262 = getelementptr inbounds i8, ptr %1252, i64 16
  %1263 = call i32 %1261(ptr noundef nonnull %1262) #12
  %1264 = call zeroext i1 @s2n_result_is_ok(i32 %1263)
  br i1 %1264, label %1288, label %1265

1265:                                             ; preds = %1250
  %1266 = tail call ptr @__errno_location() #13
  %1267 = load i32, ptr %1266, align 4, !tbaa !5
  %1268 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1269 = call i32 @s2n_print_stacktrace(ptr noundef %1268) #12
  %1270 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1271 = trunc nuw i8 %1270 to i1
  br i1 %1271, label %1272, label %1276

1272:                                             ; preds = %1265
  %1273 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1274 = call i32 @fileno(ptr noundef %1273) #12
  %1275 = call i32 @isatty(i32 noundef %1274) #12
  %.not291 = icmp eq i32 %1275, 0
  br i1 %.not291, label %1276, label %1277

1276:                                             ; preds = %1272, %1265
  br label %1277

1277:                                             ; preds = %1272, %1276
  %.str.4.sink772 = phi ptr [ @.str.4, %1276 ], [ @.str, %1272 ]
  store i32 %1267, ptr %1266, align 4, !tbaa !5
  %1278 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1279 = load i32, ptr @test_count, align 4, !tbaa !5
  %1280 = load i32, ptr %491, align 4, !tbaa !5
  %1281 = call ptr @s2n_strerror(i32 noundef %1280, ptr noundef nonnull @.str.3) #12
  %1282 = load i32, ptr %491, align 4, !tbaa !5
  %1283 = call ptr @s2n_strerror_debug(i32 noundef %1282, ptr noundef nonnull @.str.3) #12
  %1284 = load i32, ptr %1266, align 4, !tbaa !5
  %1285 = call ptr @strerror(i32 noundef %1284) #12
  %1286 = load i32, ptr %1266, align 4, !tbaa !5
  %1287 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1278, ptr noundef nonnull %.str.4.sink772, i32 noundef %1279, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.2, i32 noundef 122, ptr noundef %1281, ptr noundef %1283, ptr noundef %1285, i32 noundef %1286) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1288:                                             ; preds = %1250
  %1289 = load i32, ptr @test_count, align 4, !tbaa !5
  %1290 = add nsw i32 %1289, 1
  store i32 %1290, ptr @test_count, align 4, !tbaa !5
  %1291 = load ptr, ptr %1251, align 8, !tbaa !15
  %1292 = load ptr, ptr %1291, align 8, !tbaa !44
  %1293 = getelementptr inbounds i8, ptr %1292, i64 48
  %1294 = load ptr, ptr %1293, align 8, !tbaa !49
  %1295 = load ptr, ptr %1294, align 8, !tbaa !51
  %1296 = getelementptr inbounds i8, ptr %1295, i64 64
  %1297 = load ptr, ptr %1296, align 8, !tbaa !53
  %1298 = getelementptr inbounds i8, ptr %1291, i64 8
  %1299 = call i32 %1297(ptr noundef nonnull %1298) #12
  %1300 = call zeroext i1 @s2n_result_is_ok(i32 %1299)
  br i1 %1300, label %1324, label %1301

1301:                                             ; preds = %1288
  %1302 = tail call ptr @__errno_location() #13
  %1303 = load i32, ptr %1302, align 4, !tbaa !5
  %1304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1305 = call i32 @s2n_print_stacktrace(ptr noundef %1304) #12
  %1306 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1307 = trunc nuw i8 %1306 to i1
  br i1 %1307, label %1308, label %1312

1308:                                             ; preds = %1301
  %1309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1310 = call i32 @fileno(ptr noundef %1309) #12
  %1311 = call i32 @isatty(i32 noundef %1310) #12
  %.not292 = icmp eq i32 %1311, 0
  br i1 %.not292, label %1312, label %1313

1312:                                             ; preds = %1308, %1301
  br label %1313

1313:                                             ; preds = %1308, %1312
  %.str.4.sink781 = phi ptr [ @.str.4, %1312 ], [ @.str, %1308 ]
  store i32 %1303, ptr %1302, align 4, !tbaa !5
  %1314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1315 = load i32, ptr @test_count, align 4, !tbaa !5
  %1316 = load i32, ptr %491, align 4, !tbaa !5
  %1317 = call ptr @s2n_strerror(i32 noundef %1316, ptr noundef nonnull @.str.3) #12
  %1318 = load i32, ptr %491, align 4, !tbaa !5
  %1319 = call ptr @s2n_strerror_debug(i32 noundef %1318, ptr noundef nonnull @.str.3) #12
  %1320 = load i32, ptr %1302, align 4, !tbaa !5
  %1321 = call ptr @strerror(i32 noundef %1320) #12
  %1322 = load i32, ptr %1302, align 4, !tbaa !5
  %1323 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1314, ptr noundef nonnull %.str.4.sink781, i32 noundef %1315, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.2, i32 noundef 123, ptr noundef %1317, ptr noundef %1319, ptr noundef %1321, i32 noundef %1322) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1324:                                             ; preds = %1288
  %1325 = load i32, ptr @test_count, align 4, !tbaa !5
  %1326 = add nsw i32 %1325, 1
  store i32 %1326, ptr @test_count, align 4, !tbaa !5
  %1327 = load ptr, ptr %1251, align 8, !tbaa !15
  %1328 = load ptr, ptr %1327, align 8, !tbaa !44
  %1329 = getelementptr inbounds i8, ptr %1328, i64 48
  %1330 = load ptr, ptr %1329, align 8, !tbaa !49
  %1331 = load ptr, ptr %1330, align 8, !tbaa !51
  %1332 = getelementptr inbounds i8, ptr %1331, i64 80
  %1333 = load ptr, ptr %1332, align 8, !tbaa !55
  %1334 = getelementptr inbounds i8, ptr %1327, i64 16
  %1335 = call i32 %1333(ptr noundef nonnull %1334, ptr noundef nonnull %7) #12
  %1336 = call zeroext i1 @s2n_result_is_ok(i32 %1335)
  br i1 %1336, label %1360, label %1337

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

1344:                                             ; preds = %1337
  %1345 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1346 = call i32 @fileno(ptr noundef %1345) #12
  %1347 = call i32 @isatty(i32 noundef %1346) #12
  %.not293 = icmp eq i32 %1347, 0
  br i1 %.not293, label %1348, label %1349

1348:                                             ; preds = %1344, %1337
  br label %1349

1349:                                             ; preds = %1344, %1348
  %.str.4.sink790 = phi ptr [ @.str.4, %1348 ], [ @.str, %1344 ]
  store i32 %1339, ptr %1338, align 4, !tbaa !5
  %1350 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1351 = load i32, ptr @test_count, align 4, !tbaa !5
  %1352 = load i32, ptr %491, align 4, !tbaa !5
  %1353 = call ptr @s2n_strerror(i32 noundef %1352, ptr noundef nonnull @.str.3) #12
  %1354 = load i32, ptr %491, align 4, !tbaa !5
  %1355 = call ptr @s2n_strerror_debug(i32 noundef %1354, ptr noundef nonnull @.str.3) #12
  %1356 = load i32, ptr %1338, align 4, !tbaa !5
  %1357 = call ptr @strerror(i32 noundef %1356) #12
  %1358 = load i32, ptr %1338, align 4, !tbaa !5
  %1359 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1350, ptr noundef nonnull %.str.4.sink790, i32 noundef %1351, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.2, i32 noundef 124, ptr noundef %1353, ptr noundef %1355, ptr noundef %1357, i32 noundef %1358) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1360:                                             ; preds = %1324
  %1361 = load i32, ptr @test_count, align 4, !tbaa !5
  %1362 = add nsw i32 %1361, 1
  store i32 %1362, ptr @test_count, align 4, !tbaa !5
  %1363 = load ptr, ptr %1251, align 8, !tbaa !15
  %1364 = load ptr, ptr %1363, align 8, !tbaa !44
  %1365 = getelementptr inbounds i8, ptr %1364, i64 48
  %1366 = load ptr, ptr %1365, align 8, !tbaa !49
  %1367 = load ptr, ptr %1366, align 8, !tbaa !51
  %1368 = getelementptr inbounds i8, ptr %1367, i64 72
  %1369 = load ptr, ptr %1368, align 8, !tbaa !56
  %1370 = getelementptr inbounds i8, ptr %1363, i64 8
  %1371 = call i32 %1369(ptr noundef nonnull %1370, ptr noundef nonnull %7) #12
  %1372 = call zeroext i1 @s2n_result_is_ok(i32 %1371)
  br i1 %1372, label %1396, label %1373

1373:                                             ; preds = %1360
  %1374 = tail call ptr @__errno_location() #13
  %1375 = load i32, ptr %1374, align 4, !tbaa !5
  %1376 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1377 = call i32 @s2n_print_stacktrace(ptr noundef %1376) #12
  %1378 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1379 = trunc nuw i8 %1378 to i1
  br i1 %1379, label %1380, label %1384

1380:                                             ; preds = %1373
  %1381 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1382 = call i32 @fileno(ptr noundef %1381) #12
  %1383 = call i32 @isatty(i32 noundef %1382) #12
  %.not294 = icmp eq i32 %1383, 0
  br i1 %.not294, label %1384, label %1385

1384:                                             ; preds = %1380, %1373
  br label %1385

1385:                                             ; preds = %1380, %1384
  %.str.4.sink799 = phi ptr [ @.str.4, %1384 ], [ @.str, %1380 ]
  store i32 %1375, ptr %1374, align 4, !tbaa !5
  %1386 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1387 = load i32, ptr @test_count, align 4, !tbaa !5
  %1388 = load i32, ptr %491, align 4, !tbaa !5
  %1389 = call ptr @s2n_strerror(i32 noundef %1388, ptr noundef nonnull @.str.3) #12
  %1390 = load i32, ptr %491, align 4, !tbaa !5
  %1391 = call ptr @s2n_strerror_debug(i32 noundef %1390, ptr noundef nonnull @.str.3) #12
  %1392 = load i32, ptr %1374, align 4, !tbaa !5
  %1393 = call ptr @strerror(i32 noundef %1392) #12
  %1394 = load i32, ptr %1374, align 4, !tbaa !5
  %1395 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1386, ptr noundef nonnull %.str.4.sink799, i32 noundef %1387, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.2, i32 noundef 125, ptr noundef %1389, ptr noundef %1391, ptr noundef %1393, i32 noundef %1394) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1396:                                             ; preds = %1360
  %1397 = load i32, ptr @test_count, align 4, !tbaa !5
  %1398 = add nsw i32 %1397, 1
  store i32 %1398, ptr @test_count, align 4, !tbaa !5
  %1399 = load ptr, ptr %1251, align 8, !tbaa !15
  %1400 = getelementptr inbounds i8, ptr %1399, i64 24
  %1401 = call i32 @s2n_hmac_init(ptr noundef nonnull %1400, i32 noundef 2, ptr noundef nonnull %3, i32 noundef 15) #12
  %1402 = icmp eq i32 %1401, -1
  br i1 %1402, label %1403, label %1426

1403:                                             ; preds = %1396
  %1404 = tail call ptr @__errno_location() #13
  %1405 = load i32, ptr %1404, align 4, !tbaa !5
  %1406 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1407 = call i32 @s2n_print_stacktrace(ptr noundef %1406) #12
  %1408 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1409 = trunc nuw i8 %1408 to i1
  br i1 %1409, label %1410, label %1414

1410:                                             ; preds = %1403
  %1411 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1412 = call i32 @fileno(ptr noundef %1411) #12
  %1413 = call i32 @isatty(i32 noundef %1412) #12
  %.not328 = icmp eq i32 %1413, 0
  br i1 %.not328, label %1414, label %1415

1414:                                             ; preds = %1410, %1403
  br label %1415

1415:                                             ; preds = %1410, %1414
  %.str.4.sink808 = phi ptr [ @.str.4, %1414 ], [ @.str, %1410 ]
  store i32 %1405, ptr %1404, align 4, !tbaa !5
  %1416 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1417 = load i32, ptr @test_count, align 4, !tbaa !5
  %1418 = load i32, ptr %491, align 4, !tbaa !5
  %1419 = call ptr @s2n_strerror(i32 noundef %1418, ptr noundef nonnull @.str.3) #12
  %1420 = load i32, ptr %491, align 4, !tbaa !5
  %1421 = call ptr @s2n_strerror_debug(i32 noundef %1420, ptr noundef nonnull @.str.3) #12
  %1422 = load i32, ptr %1404, align 4, !tbaa !5
  %1423 = call ptr @strerror(i32 noundef %1422) #12
  %1424 = load i32, ptr %1404, align 4, !tbaa !5
  %1425 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1416, ptr noundef nonnull %.str.4.sink808, i32 noundef %1417, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.2, i32 noundef 126, ptr noundef %1419, ptr noundef %1421, ptr noundef %1423, i32 noundef %1424) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1426:                                             ; preds = %1396
  %1427 = load i32, ptr @test_count, align 4, !tbaa !5
  %1428 = add nsw i32 %1427, 1
  store i32 %1428, ptr @test_count, align 4, !tbaa !5
  %1429 = load ptr, ptr %1251, align 8, !tbaa !15
  %1430 = getelementptr inbounds i8, ptr %1429, i64 456
  %1431 = call i32 @s2n_hmac_init(ptr noundef nonnull %1430, i32 noundef 2, ptr noundef nonnull %3, i32 noundef 15) #12
  %1432 = icmp eq i32 %1431, -1
  br i1 %1432, label %1433, label %1456

1433:                                             ; preds = %1426
  %1434 = tail call ptr @__errno_location() #13
  %1435 = load i32, ptr %1434, align 4, !tbaa !5
  %1436 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1437 = call i32 @s2n_print_stacktrace(ptr noundef %1436) #12
  %1438 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1439 = trunc nuw i8 %1438 to i1
  br i1 %1439, label %1440, label %1444

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

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

1445:                                             ; preds = %1440, %1444
  %.str.4.sink817 = phi ptr [ @.str.4, %1444 ], [ @.str, %1440 ]
  store i32 %1435, ptr %1434, align 4, !tbaa !5
  %1446 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1447 = load i32, ptr @test_count, align 4, !tbaa !5
  %1448 = load i32, ptr %491, align 4, !tbaa !5
  %1449 = call ptr @s2n_strerror(i32 noundef %1448, ptr noundef nonnull @.str.3) #12
  %1450 = load i32, ptr %491, align 4, !tbaa !5
  %1451 = call ptr @s2n_strerror_debug(i32 noundef %1450, ptr noundef nonnull @.str.3) #12
  %1452 = load i32, ptr %1434, align 4, !tbaa !5
  %1453 = call ptr @strerror(i32 noundef %1452) #12
  %1454 = load i32, ptr %1434, align 4, !tbaa !5
  %1455 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1446, ptr noundef nonnull %.str.4.sink817, i32 noundef %1447, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.2, i32 noundef 127, ptr noundef %1449, ptr noundef %1451, ptr noundef %1453, i32 noundef %1454) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1456:                                             ; preds = %1426
  %1457 = getelementptr inbounds i8, ptr %1225, i64 220
  store i8 32, ptr %1457, align 4, !tbaa !57
  %1458 = getelementptr inbounds i8, ptr %1225, i64 1896
  %1459 = getelementptr inbounds i8, ptr %1225, i64 1856
  %1460 = getelementptr inbounds i8, ptr %1225, i64 1776
  %1461 = getelementptr inbounds i8, ptr %1225, i64 1924
  %1462 = getelementptr inbounds i8, ptr %1225, i64 1920
  br label %1476

1463:                                             ; preds = %2100
  %1464 = load i32, ptr @test_count, align 4, !tbaa !5
  %1465 = add nsw i32 %1464, 1
  store i32 %1465, ptr @test_count, align 4, !tbaa !5
  %1466 = load ptr, ptr %1251, align 8, !tbaa !15
  %1467 = load ptr, ptr %1466, align 8, !tbaa !44
  %1468 = getelementptr inbounds i8, ptr %1467, i64 48
  %1469 = load ptr, ptr %1468, align 8, !tbaa !49
  %1470 = load ptr, ptr %1469, align 8, !tbaa !51
  %1471 = getelementptr inbounds i8, ptr %1470, i64 88
  %1472 = load ptr, ptr %1471, align 8, !tbaa !58
  %1473 = getelementptr inbounds i8, ptr %1466, i64 16
  %1474 = call i32 %1472(ptr noundef nonnull %1473) #12
  %1475 = call zeroext i1 @s2n_result_is_ok(i32 %1474)
  br i1 %1475, label %2125, label %2102

1476:                                             ; preds = %1456, %2100
  %.0276372 = phi i64 [ 0, %1456 ], [ %2101, %2100 ]
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %13) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %13, i8 0, i64 24, i1 false)
  %1477 = load i32, ptr @test_count, align 4, !tbaa !5
  %1478 = add nsw i32 %1477, 1
  store i32 %1478, ptr @test_count, align 4, !tbaa !5
  %1479 = trunc nuw nsw i64 %.0276372 to i32
  %1480 = call i32 @s2n_blob_init(ptr noundef nonnull %13, ptr noundef nonnull %8, i32 noundef %1479) #12
  %1481 = icmp eq i32 %1480, -1
  br i1 %1481, label %1482, label %1505

1482:                                             ; preds = %1476
  %1483 = tail call ptr @__errno_location() #13
  %1484 = load i32, ptr %1483, align 4, !tbaa !5
  %1485 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1486 = call i32 @s2n_print_stacktrace(ptr noundef %1485) #12
  %1487 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1488 = trunc nuw i8 %1487 to i1
  br i1 %1488, label %1489, label %1493

1489:                                             ; preds = %1482
  %1490 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1491 = call i32 @fileno(ptr noundef %1490) #12
  %1492 = call i32 @isatty(i32 noundef %1491) #12
  %.not326 = icmp eq i32 %1492, 0
  br i1 %.not326, label %1493, label %1494

1493:                                             ; preds = %1489, %1482
  br label %1494

1494:                                             ; preds = %1489, %1493
  %.str.4.sink826 = phi ptr [ @.str.4, %1493 ], [ @.str, %1489 ]
  store i32 %1484, ptr %1483, align 4, !tbaa !5
  %1495 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1496 = load i32, ptr @test_count, align 4, !tbaa !5
  %1497 = load i32, ptr %491, align 4, !tbaa !5
  %1498 = call ptr @s2n_strerror(i32 noundef %1497, ptr noundef nonnull @.str.3) #12
  %1499 = load i32, ptr %491, align 4, !tbaa !5
  %1500 = call ptr @s2n_strerror_debug(i32 noundef %1499, ptr noundef nonnull @.str.3) #12
  %1501 = load i32, ptr %1483, align 4, !tbaa !5
  %1502 = call ptr @strerror(i32 noundef %1501) #12
  %1503 = load i32, ptr %1483, align 4, !tbaa !5
  %1504 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1495, ptr noundef nonnull %.str.4.sink826, i32 noundef %1496, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.2, i32 noundef 132, ptr noundef %1498, ptr noundef %1500, ptr noundef %1502, i32 noundef %1503) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1505:                                             ; preds = %1476
  %1506 = load i32, ptr @test_count, align 4, !tbaa !5
  %1507 = add nsw i32 %1506, 1
  store i32 %1507, ptr @test_count, align 4, !tbaa !5
  %1508 = call i32 @s2n_stuffer_wipe(ptr noundef nonnull %1458) #12
  %1509 = icmp eq i32 %1508, -1
  br i1 %1509, label %1510, label %1533

1510:                                             ; preds = %1505
  %1511 = tail call ptr @__errno_location() #13
  %1512 = load i32, ptr %1511, align 4, !tbaa !5
  %1513 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1514 = call i32 @s2n_print_stacktrace(ptr noundef %1513) #12
  %1515 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1516 = trunc nuw i8 %1515 to i1
  br i1 %1516, label %1517, label %1521

1517:                                             ; preds = %1510
  %1518 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1519 = call i32 @fileno(ptr noundef %1518) #12
  %1520 = call i32 @isatty(i32 noundef %1519) #12
  %.not325 = icmp eq i32 %1520, 0
  br i1 %.not325, label %1521, label %1522

1521:                                             ; preds = %1517, %1510
  br label %1522

1522:                                             ; preds = %1517, %1521
  %.str.4.sink835 = phi ptr [ @.str.4, %1521 ], [ @.str, %1517 ]
  store i32 %1512, ptr %1511, align 4, !tbaa !5
  %1523 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1524 = load i32, ptr @test_count, align 4, !tbaa !5
  %1525 = load i32, ptr %491, align 4, !tbaa !5
  %1526 = call ptr @s2n_strerror(i32 noundef %1525, ptr noundef nonnull @.str.3) #12
  %1527 = load i32, ptr %491, align 4, !tbaa !5
  %1528 = call ptr @s2n_strerror_debug(i32 noundef %1527, ptr noundef nonnull @.str.3) #12
  %1529 = load i32, ptr %1511, align 4, !tbaa !5
  %1530 = call ptr @strerror(i32 noundef %1529) #12
  %1531 = load i32, ptr %1511, align 4, !tbaa !5
  %1532 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1523, ptr noundef nonnull %.str.4.sink835, i32 noundef %1524, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.2, i32 noundef 135, ptr noundef %1526, ptr noundef %1528, ptr noundef %1530, i32 noundef %1531) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1533:                                             ; preds = %1505
  %1534 = call i32 @s2n_record_write(ptr noundef nonnull %1225, i8 noundef zeroext 23, ptr noundef nonnull %13) #12
  %.not303 = icmp eq i64 %.0276372, 8088
  %1535 = load i32, ptr @test_count, align 4, !tbaa !5
  %1536 = add nsw i32 %1535, 1
  store i32 %1536, ptr @test_count, align 4, !tbaa !5
  br i1 %.not303, label %1562, label %1537

1537:                                             ; preds = %1533
  %1538 = call zeroext i1 @s2n_result_is_ok(i32 %1534)
  br i1 %1538, label %1644, label %1539

1539:                                             ; preds = %1537
  %1540 = tail call ptr @__errno_location() #13
  %1541 = load i32, ptr %1540, align 4, !tbaa !5
  %1542 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1543 = call i32 @s2n_print_stacktrace(ptr noundef %1542) #12
  %1544 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1545 = trunc nuw i8 %1544 to i1
  br i1 %1545, label %1546, label %1550

1546:                                             ; preds = %1539
  %1547 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1548 = call i32 @fileno(ptr noundef %1547) #12
  %1549 = call i32 @isatty(i32 noundef %1548) #12
  %.not307 = icmp eq i32 %1549, 0
  br i1 %.not307, label %1550, label %1551

1550:                                             ; preds = %1546, %1539
  br label %1551

1551:                                             ; preds = %1546, %1550
  %.str.4.sink844 = phi ptr [ @.str.4, %1550 ], [ @.str, %1546 ]
  store i32 %1541, ptr %1540, align 4, !tbaa !5
  %1552 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1553 = load i32, ptr @test_count, align 4, !tbaa !5
  %1554 = load i32, ptr %491, align 4, !tbaa !5
  %1555 = call ptr @s2n_strerror(i32 noundef %1554, ptr noundef nonnull @.str.3) #12
  %1556 = load i32, ptr %491, align 4, !tbaa !5
  %1557 = call ptr @s2n_strerror_debug(i32 noundef %1556, ptr noundef nonnull @.str.3) #12
  %1558 = load i32, ptr %1540, align 4, !tbaa !5
  %1559 = call ptr @strerror(i32 noundef %1558) #12
  %1560 = load i32, ptr %1540, align 4, !tbaa !5
  %1561 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1552, ptr noundef nonnull %.str.4.sink844, i32 noundef %1553, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.2, i32 noundef 139, ptr noundef %1555, ptr noundef %1557, ptr noundef %1559, i32 noundef %1560) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1562:                                             ; preds = %1533
  %1563 = call zeroext i1 @s2n_result_is_error(i32 %1534)
  br i1 %1563, label %1587, label %1564

1564:                                             ; preds = %1562
  %1565 = tail call ptr @__errno_location() #13
  %1566 = load i32, ptr %1565, align 4, !tbaa !5
  %1567 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1568 = call i32 @s2n_print_stacktrace(ptr noundef %1567) #12
  %1569 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1570 = trunc nuw i8 %1569 to i1
  br i1 %1570, label %1571, label %1575

1571:                                             ; preds = %1564
  %1572 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1573 = call i32 @fileno(ptr noundef %1572) #12
  %1574 = call i32 @isatty(i32 noundef %1573) #12
  %.not304 = icmp eq i32 %1574, 0
  br i1 %.not304, label %1575, label %1576

1575:                                             ; preds = %1571, %1564
  br label %1576

1576:                                             ; preds = %1571, %1575
  %.str.4.sink853 = phi ptr [ @.str.4, %1575 ], [ @.str, %1571 ]
  store i32 %1566, ptr %1565, align 4, !tbaa !5
  %1577 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1578 = load i32, ptr @test_count, align 4, !tbaa !5
  %1579 = load i32, ptr %491, align 4, !tbaa !5
  %1580 = call ptr @s2n_strerror(i32 noundef %1579, ptr noundef nonnull @.str.3) #12
  %1581 = load i32, ptr %491, align 4, !tbaa !5
  %1582 = call ptr @s2n_strerror_debug(i32 noundef %1581, ptr noundef nonnull @.str.3) #12
  %1583 = load i32, ptr %1565, align 4, !tbaa !5
  %1584 = call ptr @strerror(i32 noundef %1583) #12
  %1585 = load i32, ptr %1565, align 4, !tbaa !5
  %1586 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1577, ptr noundef nonnull %.str.4.sink853, i32 noundef %1578, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.2, i32 noundef 142, ptr noundef %1580, ptr noundef %1582, ptr noundef %1584, i32 noundef %1585) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1587:                                             ; preds = %1562
  %1588 = load i32, ptr @test_count, align 4, !tbaa !5
  %1589 = add nsw i32 %1588, 1
  store i32 %1589, ptr @test_count, align 4, !tbaa !5
  %1590 = load i32, ptr %491, align 4, !tbaa !5
  %1591 = icmp eq i32 %1590, 335544390
  br i1 %1591, label %1615, label %1592

1592:                                             ; preds = %1587
  %1593 = tail call ptr @__errno_location() #13
  %1594 = load i32, ptr %1593, align 4, !tbaa !5
  %1595 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1596 = call i32 @s2n_print_stacktrace(ptr noundef %1595) #12
  %1597 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1598 = trunc nuw i8 %1597 to i1
  br i1 %1598, label %1599, label %1603

1599:                                             ; preds = %1592
  %1600 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1601 = call i32 @fileno(ptr noundef %1600) #12
  %1602 = call i32 @isatty(i32 noundef %1601) #12
  %.not305 = icmp eq i32 %1602, 0
  br i1 %.not305, label %1603, label %1604

1603:                                             ; preds = %1599, %1592
  br label %1604

1604:                                             ; preds = %1599, %1603
  %.str.4.sink862 = phi ptr [ @.str.4, %1603 ], [ @.str, %1599 ]
  store i32 %1594, ptr %1593, align 4, !tbaa !5
  %1605 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1606 = load i32, ptr @test_count, align 4, !tbaa !5
  %1607 = load i32, ptr %491, align 4, !tbaa !5
  %1608 = call ptr @s2n_strerror(i32 noundef %1607, ptr noundef nonnull @.str.3) #12
  %1609 = load i32, ptr %491, align 4, !tbaa !5
  %1610 = call ptr @s2n_strerror_debug(i32 noundef %1609, ptr noundef nonnull @.str.3) #12
  %1611 = load i32, ptr %1593, align 4, !tbaa !5
  %1612 = call ptr @strerror(i32 noundef %1611) #12
  %1613 = load i32, ptr %1593, align 4, !tbaa !5
  %1614 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1605, ptr noundef nonnull %.str.4.sink862, i32 noundef %1606, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.2, i32 noundef 142, ptr noundef %1608, ptr noundef %1610, ptr noundef %1612, i32 noundef %1613) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1615:                                             ; preds = %1587
  %1616 = add nsw i32 %1588, 2
  store i32 %1616, ptr @test_count, align 4, !tbaa !5
  %1617 = call ptr @s2n_strerror_debug(i32 noundef 335544390, ptr noundef nonnull @.str.3) #12
  %1618 = icmp eq ptr %1617, null
  br i1 %1618, label %1619, label %1642

1619:                                             ; preds = %1615
  %1620 = tail call ptr @__errno_location() #13
  %1621 = load i32, ptr %1620, align 4, !tbaa !5
  %1622 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1623 = call i32 @s2n_print_stacktrace(ptr noundef %1622) #12
  %1624 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1625 = trunc nuw i8 %1624 to i1
  br i1 %1625, label %1626, label %1630

1626:                                             ; preds = %1619
  %1627 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1628 = call i32 @fileno(ptr noundef %1627) #12
  %1629 = call i32 @isatty(i32 noundef %1628) #12
  %.not306 = icmp eq i32 %1629, 0
  br i1 %.not306, label %1630, label %1631

1630:                                             ; preds = %1626, %1619
  br label %1631

1631:                                             ; preds = %1626, %1630
  %.str.4.sink871 = phi ptr [ @.str.4, %1630 ], [ @.str, %1626 ]
  store i32 %1621, ptr %1620, align 4, !tbaa !5
  %1632 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1633 = load i32, ptr @test_count, align 4, !tbaa !5
  %1634 = load i32, ptr %491, align 4, !tbaa !5
  %1635 = call ptr @s2n_strerror(i32 noundef %1634, ptr noundef nonnull @.str.3) #12
  %1636 = load i32, ptr %491, align 4, !tbaa !5
  %1637 = call ptr @s2n_strerror_debug(i32 noundef %1636, ptr noundef nonnull @.str.3) #12
  %1638 = load i32, ptr %1620, align 4, !tbaa !5
  %1639 = call ptr @strerror(i32 noundef %1638) #12
  %1640 = load i32, ptr %1620, align 4, !tbaa !5
  %1641 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1632, ptr noundef nonnull %.str.4.sink871, i32 noundef %1633, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.2, i32 noundef 142, ptr noundef %1635, ptr noundef %1637, ptr noundef %1639, i32 noundef %1640) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1642:                                             ; preds = %1615
  store i32 0, ptr %491, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  %1643 = tail call ptr @__errno_location() #13
  store i32 0, ptr %1643, align 4, !tbaa !5
  br label %1644

1644:                                             ; preds = %1537, %1642
  %.0277 = phi i32 [ 8087, %1642 ], [ %1479, %1537 ]
  %1645 = trunc i32 %.0277 to i16
  %.biased = add nsw i16 %1645, 52
  %.0278 = and i16 %.biased, -16
  %1646 = load i32, ptr @test_count, align 4, !tbaa !5
  %1647 = add nsw i32 %1646, 1
  store i32 %1647, ptr @test_count, align 4, !tbaa !5
  %1648 = load ptr, ptr %1458, align 8, !tbaa !59
  %1649 = load i8, ptr %1648, align 1, !tbaa !60
  %1650 = icmp eq i8 %1649, 23
  br i1 %1650, label %1674, label %1651

1651:                                             ; preds = %1644
  %1652 = tail call ptr @__errno_location() #13
  %1653 = load i32, ptr %1652, align 4, !tbaa !5
  %1654 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1655 = call i32 @s2n_print_stacktrace(ptr noundef %1654) #12
  %1656 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1657 = trunc nuw i8 %1656 to i1
  br i1 %1657, label %1658, label %1662

1658:                                             ; preds = %1651
  %1659 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1660 = call i32 @fileno(ptr noundef %1659) #12
  %1661 = call i32 @isatty(i32 noundef %1660) #12
  %.not309 = icmp eq i32 %1661, 0
  br i1 %.not309, label %1662, label %1663

1662:                                             ; preds = %1658, %1651
  br label %1663

1663:                                             ; preds = %1658, %1662
  %.str.4.sink880 = phi ptr [ @.str.4, %1662 ], [ @.str, %1658 ]
  store i32 %1653, ptr %1652, align 4, !tbaa !5
  %1664 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1665 = load i32, ptr @test_count, align 4, !tbaa !5
  %1666 = load i32, ptr %491, align 4, !tbaa !5
  %1667 = call ptr @s2n_strerror(i32 noundef %1666, ptr noundef nonnull @.str.3) #12
  %1668 = load i32, ptr %491, align 4, !tbaa !5
  %1669 = call ptr @s2n_strerror_debug(i32 noundef %1668, ptr noundef nonnull @.str.3) #12
  %1670 = load i32, ptr %1652, align 4, !tbaa !5
  %1671 = call ptr @strerror(i32 noundef %1670) #12
  %1672 = load i32, ptr %1652, align 4, !tbaa !5
  %1673 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1664, ptr noundef nonnull %.str.4.sink880, i32 noundef %1665, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.2, i32 noundef 150, ptr noundef %1667, ptr noundef %1669, ptr noundef %1671, i32 noundef %1672) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1674:                                             ; preds = %1644
  %1675 = add nsw i32 %1646, 2
  store i32 %1675, ptr @test_count, align 4, !tbaa !5
  %1676 = getelementptr inbounds i8, ptr %1648, i64 1
  %1677 = load i8, ptr %1676, align 1, !tbaa !60
  %1678 = icmp eq i8 %1677, 3
  br i1 %1678, label %1702, label %1679

1679:                                             ; preds = %1674
  %1680 = tail call ptr @__errno_location() #13
  %1681 = load i32, ptr %1680, align 4, !tbaa !5
  %1682 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1683 = call i32 @s2n_print_stacktrace(ptr noundef %1682) #12
  %1684 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1685 = trunc nuw i8 %1684 to i1
  br i1 %1685, label %1686, label %1690

1686:                                             ; preds = %1679
  %1687 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1688 = call i32 @fileno(ptr noundef %1687) #12
  %1689 = call i32 @isatty(i32 noundef %1688) #12
  %.not310 = icmp eq i32 %1689, 0
  br i1 %.not310, label %1690, label %1691

1690:                                             ; preds = %1686, %1679
  br label %1691

1691:                                             ; preds = %1686, %1690
  %.str.4.sink889 = phi ptr [ @.str.4, %1690 ], [ @.str, %1686 ]
  store i32 %1681, ptr %1680, align 4, !tbaa !5
  %1692 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1693 = load i32, ptr @test_count, align 4, !tbaa !5
  %1694 = load i32, ptr %491, align 4, !tbaa !5
  %1695 = call ptr @s2n_strerror(i32 noundef %1694, ptr noundef nonnull @.str.3) #12
  %1696 = load i32, ptr %491, align 4, !tbaa !5
  %1697 = call ptr @s2n_strerror_debug(i32 noundef %1696, ptr noundef nonnull @.str.3) #12
  %1698 = load i32, ptr %1680, align 4, !tbaa !5
  %1699 = call ptr @strerror(i32 noundef %1698) #12
  %1700 = load i32, ptr %1680, align 4, !tbaa !5
  %1701 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1692, ptr noundef nonnull %.str.4.sink889, i32 noundef %1693, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.2, i32 noundef 151, ptr noundef %1695, ptr noundef %1697, ptr noundef %1699, i32 noundef %1700) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1702:                                             ; preds = %1674
  %1703 = add nsw i32 %1646, 3
  store i32 %1703, ptr @test_count, align 4, !tbaa !5
  %1704 = getelementptr inbounds i8, ptr %1648, i64 2
  %1705 = load i8, ptr %1704, align 1, !tbaa !60
  %1706 = icmp eq i8 %1705, 2
  br i1 %1706, label %1730, label %1707

1707:                                             ; preds = %1702
  %1708 = tail call ptr @__errno_location() #13
  %1709 = load i32, ptr %1708, align 4, !tbaa !5
  %1710 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1711 = call i32 @s2n_print_stacktrace(ptr noundef %1710) #12
  %1712 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1713 = trunc nuw i8 %1712 to i1
  br i1 %1713, label %1714, label %1718

1714:                                             ; preds = %1707
  %1715 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1716 = call i32 @fileno(ptr noundef %1715) #12
  %1717 = call i32 @isatty(i32 noundef %1716) #12
  %.not311 = icmp eq i32 %1717, 0
  br i1 %.not311, label %1718, label %1719

1718:                                             ; preds = %1714, %1707
  br label %1719

1719:                                             ; preds = %1714, %1718
  %.str.4.sink898 = phi ptr [ @.str.4, %1718 ], [ @.str, %1714 ]
  store i32 %1709, ptr %1708, align 4, !tbaa !5
  %1720 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1721 = load i32, ptr @test_count, align 4, !tbaa !5
  %1722 = load i32, ptr %491, align 4, !tbaa !5
  %1723 = call ptr @s2n_strerror(i32 noundef %1722, ptr noundef nonnull @.str.3) #12
  %1724 = load i32, ptr %491, align 4, !tbaa !5
  %1725 = call ptr @s2n_strerror_debug(i32 noundef %1724, ptr noundef nonnull @.str.3) #12
  %1726 = load i32, ptr %1708, align 4, !tbaa !5
  %1727 = call ptr @strerror(i32 noundef %1726) #12
  %1728 = load i32, ptr %1708, align 4, !tbaa !5
  %1729 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1720, ptr noundef nonnull %.str.4.sink898, i32 noundef %1721, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.2, i32 noundef 152, ptr noundef %1723, ptr noundef %1725, ptr noundef %1727, i32 noundef %1728) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1730:                                             ; preds = %1702
  %1731 = add nsw i32 %1646, 4
  store i32 %1731, ptr @test_count, align 4, !tbaa !5
  %1732 = getelementptr inbounds i8, ptr %1648, i64 3
  %1733 = load i8, ptr %1732, align 1, !tbaa !60
  %1734 = lshr i16 %.biased, 8
  %1735 = zext i8 %1733 to i16
  %1736 = icmp eq i16 %1734, %1735
  br i1 %1736, label %1760, label %1737

1737:                                             ; preds = %1730
  %1738 = tail call ptr @__errno_location() #13
  %1739 = load i32, ptr %1738, align 4, !tbaa !5
  %1740 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1741 = call i32 @s2n_print_stacktrace(ptr noundef %1740) #12
  %1742 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1743 = trunc nuw i8 %1742 to i1
  br i1 %1743, label %1744, label %1748

1744:                                             ; preds = %1737
  %1745 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1746 = call i32 @fileno(ptr noundef %1745) #12
  %1747 = call i32 @isatty(i32 noundef %1746) #12
  %.not312 = icmp eq i32 %1747, 0
  br i1 %.not312, label %1748, label %1749

1748:                                             ; preds = %1744, %1737
  br label %1749

1749:                                             ; preds = %1744, %1748
  %.str.4.sink907 = phi ptr [ @.str.4, %1748 ], [ @.str, %1744 ]
  store i32 %1739, ptr %1738, align 4, !tbaa !5
  %1750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1751 = load i32, ptr @test_count, align 4, !tbaa !5
  %1752 = load i32, ptr %491, align 4, !tbaa !5
  %1753 = call ptr @s2n_strerror(i32 noundef %1752, ptr noundef nonnull @.str.3) #12
  %1754 = load i32, ptr %491, align 4, !tbaa !5
  %1755 = call ptr @s2n_strerror_debug(i32 noundef %1754, ptr noundef nonnull @.str.3) #12
  %1756 = load i32, ptr %1738, align 4, !tbaa !5
  %1757 = call ptr @strerror(i32 noundef %1756) #12
  %1758 = load i32, ptr %1738, align 4, !tbaa !5
  %1759 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1750, ptr noundef nonnull %.str.4.sink907, i32 noundef %1751, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.2, i32 noundef 153, ptr noundef %1753, ptr noundef %1755, ptr noundef %1757, i32 noundef %1758) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1760:                                             ; preds = %1730
  %1761 = add nsw i32 %1646, 5
  store i32 %1761, ptr @test_count, align 4, !tbaa !5
  %1762 = getelementptr inbounds i8, ptr %1648, i64 4
  %1763 = load i8, ptr %1762, align 1, !tbaa !60
  %1764 = trunc i16 %.0278 to i8
  %1765 = icmp eq i8 %1763, %1764
  br i1 %1765, label %1789, label %1766

1766:                                             ; preds = %1760
  %1767 = tail call ptr @__errno_location() #13
  %1768 = load i32, ptr %1767, align 4, !tbaa !5
  %1769 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1770 = call i32 @s2n_print_stacktrace(ptr noundef %1769) #12
  %1771 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1772 = trunc nuw i8 %1771 to i1
  br i1 %1772, label %1773, label %1777

1773:                                             ; preds = %1766
  %1774 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1775 = call i32 @fileno(ptr noundef %1774) #12
  %1776 = call i32 @isatty(i32 noundef %1775) #12
  %.not313 = icmp eq i32 %1776, 0
  br i1 %.not313, label %1777, label %1778

1777:                                             ; preds = %1773, %1766
  br label %1778

1778:                                             ; preds = %1773, %1777
  %.str.4.sink916 = phi ptr [ @.str.4, %1777 ], [ @.str, %1773 ]
  store i32 %1768, ptr %1767, align 4, !tbaa !5
  %1779 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1780 = load i32, ptr @test_count, align 4, !tbaa !5
  %1781 = load i32, ptr %491, align 4, !tbaa !5
  %1782 = call ptr @s2n_strerror(i32 noundef %1781, ptr noundef nonnull @.str.3) #12
  %1783 = load i32, ptr %491, align 4, !tbaa !5
  %1784 = call ptr @s2n_strerror_debug(i32 noundef %1783, ptr noundef nonnull @.str.3) #12
  %1785 = load i32, ptr %1767, align 4, !tbaa !5
  %1786 = call ptr @strerror(i32 noundef %1785) #12
  %1787 = load i32, ptr %1767, align 4, !tbaa !5
  %1788 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1779, ptr noundef nonnull %.str.4.sink916, i32 noundef %1780, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.2, i32 noundef 154, ptr noundef %1782, ptr noundef %1784, ptr noundef %1786, i32 noundef %1787) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1789:                                             ; preds = %1760
  %1790 = icmp ugt i32 %.0277, 10
  br i1 %1790, label %1791, label %1819

1791:                                             ; preds = %1789
  %1792 = add nsw i32 %1646, 6
  store i32 %1792, ptr @test_count, align 4, !tbaa !5
  %1793 = getelementptr inbounds i8, ptr %1648, i64 5
  %1794 = zext nneg i32 %.0277 to i64
  %bcmp = call i32 @bcmp(ptr nonnull %1793, ptr nonnull %8, i64 %1794)
  %1795 = icmp eq i32 %bcmp, 0
  br i1 %1795, label %1796, label %1819

1796:                                             ; preds = %1791
  %1797 = tail call ptr @__errno_location() #13
  %1798 = load i32, ptr %1797, align 4, !tbaa !5
  %1799 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1800 = call i32 @s2n_print_stacktrace(ptr noundef %1799) #12
  %1801 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1802 = trunc nuw i8 %1801 to i1
  br i1 %1802, label %1803, label %1807

1803:                                             ; preds = %1796
  %1804 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1805 = call i32 @fileno(ptr noundef %1804) #12
  %1806 = call i32 @isatty(i32 noundef %1805) #12
  %.not324 = icmp eq i32 %1806, 0
  br i1 %.not324, label %1807, label %1808

1807:                                             ; preds = %1803, %1796
  br label %1808

1808:                                             ; preds = %1803, %1807
  %.str.4.sink925 = phi ptr [ @.str.4, %1807 ], [ @.str, %1803 ]
  store i32 %1798, ptr %1797, align 4, !tbaa !5
  %1809 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1810 = load i32, ptr @test_count, align 4, !tbaa !5
  %1811 = load i32, ptr %491, align 4, !tbaa !5
  %1812 = call ptr @s2n_strerror(i32 noundef %1811, ptr noundef nonnull @.str.3) #12
  %1813 = load i32, ptr %491, align 4, !tbaa !5
  %1814 = call ptr @s2n_strerror_debug(i32 noundef %1813, ptr noundef nonnull @.str.3) #12
  %1815 = load i32, ptr %1797, align 4, !tbaa !5
  %1816 = call ptr @strerror(i32 noundef %1815) #12
  %1817 = load i32, ptr %1797, align 4, !tbaa !5
  %1818 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1809, ptr noundef nonnull %.str.4.sink925, i32 noundef %1810, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.2, i32 noundef 158, ptr noundef %1812, ptr noundef %1814, ptr noundef %1816, i32 noundef %1817) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1819:                                             ; preds = %1789, %1791
  %1820 = phi i32 [ %1761, %1789 ], [ %1792, %1791 ]
  %1821 = add nsw i32 %1820, 1
  store i32 %1821, ptr @test_count, align 4, !tbaa !5
  %1822 = call i32 @s2n_stuffer_wipe(ptr noundef nonnull %1459) #12
  %1823 = icmp eq i32 %1822, -1
  br i1 %1823, label %1824, label %1847

1824:                                             ; preds = %1819
  %1825 = tail call ptr @__errno_location() #13
  %1826 = load i32, ptr %1825, align 4, !tbaa !5
  %1827 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1828 = call i32 @s2n_print_stacktrace(ptr noundef %1827) #12
  %1829 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1830 = trunc nuw i8 %1829 to i1
  br i1 %1830, label %1831, label %1835

1831:                                             ; preds = %1824
  %1832 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1833 = call i32 @fileno(ptr noundef %1832) #12
  %1834 = call i32 @isatty(i32 noundef %1833) #12
  %.not323 = icmp eq i32 %1834, 0
  br i1 %.not323, label %1835, label %1836

1835:                                             ; preds = %1831, %1824
  br label %1836

1836:                                             ; preds = %1831, %1835
  %.str.4.sink934 = phi ptr [ @.str.4, %1835 ], [ @.str, %1831 ]
  store i32 %1826, ptr %1825, align 4, !tbaa !5
  %1837 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1838 = load i32, ptr @test_count, align 4, !tbaa !5
  %1839 = load i32, ptr %491, align 4, !tbaa !5
  %1840 = call ptr @s2n_strerror(i32 noundef %1839, ptr noundef nonnull @.str.3) #12
  %1841 = load i32, ptr %491, align 4, !tbaa !5
  %1842 = call ptr @s2n_strerror_debug(i32 noundef %1841, ptr noundef nonnull @.str.3) #12
  %1843 = load i32, ptr %1825, align 4, !tbaa !5
  %1844 = call ptr @strerror(i32 noundef %1843) #12
  %1845 = load i32, ptr %1825, align 4, !tbaa !5
  %1846 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1837, ptr noundef nonnull %.str.4.sink934, i32 noundef %1838, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.2, i32 noundef 162, ptr noundef %1840, ptr noundef %1842, ptr noundef %1844, i32 noundef %1845) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1847:                                             ; preds = %1819
  %1848 = load i32, ptr @test_count, align 4, !tbaa !5
  %1849 = add nsw i32 %1848, 1
  store i32 %1849, ptr @test_count, align 4, !tbaa !5
  %1850 = call i32 @s2n_stuffer_wipe(ptr noundef nonnull %1460) #12
  %1851 = icmp eq i32 %1850, -1
  br i1 %1851, label %1852, label %1875

1852:                                             ; preds = %1847
  %1853 = tail call ptr @__errno_location() #13
  %1854 = load i32, ptr %1853, align 4, !tbaa !5
  %1855 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1856 = call i32 @s2n_print_stacktrace(ptr noundef %1855) #12
  %1857 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1858 = trunc nuw i8 %1857 to i1
  br i1 %1858, label %1859, label %1863

1859:                                             ; preds = %1852
  %1860 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1861 = call i32 @fileno(ptr noundef %1860) #12
  %1862 = call i32 @isatty(i32 noundef %1861) #12
  %.not322 = icmp eq i32 %1862, 0
  br i1 %.not322, label %1863, label %1864

1863:                                             ; preds = %1859, %1852
  br label %1864

1864:                                             ; preds = %1859, %1863
  %.str.4.sink943 = phi ptr [ @.str.4, %1863 ], [ @.str, %1859 ]
  store i32 %1854, ptr %1853, align 4, !tbaa !5
  %1865 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1866 = load i32, ptr @test_count, align 4, !tbaa !5
  %1867 = load i32, ptr %491, align 4, !tbaa !5
  %1868 = call ptr @s2n_strerror(i32 noundef %1867, ptr noundef nonnull @.str.3) #12
  %1869 = load i32, ptr %491, align 4, !tbaa !5
  %1870 = call ptr @s2n_strerror_debug(i32 noundef %1869, ptr noundef nonnull @.str.3) #12
  %1871 = load i32, ptr %1853, align 4, !tbaa !5
  %1872 = call ptr @strerror(i32 noundef %1871) #12
  %1873 = load i32, ptr %1853, align 4, !tbaa !5
  %1874 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1865, ptr noundef nonnull %.str.4.sink943, i32 noundef %1866, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.2, i32 noundef 163, ptr noundef %1868, ptr noundef %1870, ptr noundef %1872, i32 noundef %1873) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1875:                                             ; preds = %1847
  %1876 = load i32, ptr @test_count, align 4, !tbaa !5
  %1877 = add nsw i32 %1876, 1
  store i32 %1877, ptr @test_count, align 4, !tbaa !5
  %1878 = call i32 @s2n_stuffer_copy(ptr noundef nonnull %1458, ptr noundef nonnull %1460, i32 noundef 5) #12
  %1879 = icmp eq i32 %1878, -1
  br i1 %1879, label %1880, label %1903

1880:                                             ; preds = %1875
  %1881 = tail call ptr @__errno_location() #13
  %1882 = load i32, ptr %1881, align 4, !tbaa !5
  %1883 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1884 = call i32 @s2n_print_stacktrace(ptr noundef %1883) #12
  %1885 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1886 = trunc nuw i8 %1885 to i1
  br i1 %1886, label %1887, label %1891

1887:                                             ; preds = %1880
  %1888 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1889 = call i32 @fileno(ptr noundef %1888) #12
  %1890 = call i32 @isatty(i32 noundef %1889) #12
  %.not321 = icmp eq i32 %1890, 0
  br i1 %.not321, label %1891, label %1892

1891:                                             ; preds = %1887, %1880
  br label %1892

1892:                                             ; preds = %1887, %1891
  %.str.4.sink952 = phi ptr [ @.str.4, %1891 ], [ @.str, %1887 ]
  store i32 %1882, ptr %1881, align 4, !tbaa !5
  %1893 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1894 = load i32, ptr @test_count, align 4, !tbaa !5
  %1895 = load i32, ptr %491, align 4, !tbaa !5
  %1896 = call ptr @s2n_strerror(i32 noundef %1895, ptr noundef nonnull @.str.3) #12
  %1897 = load i32, ptr %491, align 4, !tbaa !5
  %1898 = call ptr @s2n_strerror_debug(i32 noundef %1897, ptr noundef nonnull @.str.3) #12
  %1899 = load i32, ptr %1881, align 4, !tbaa !5
  %1900 = call ptr @strerror(i32 noundef %1899) #12
  %1901 = load i32, ptr %1881, align 4, !tbaa !5
  %1902 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1893, ptr noundef nonnull %.str.4.sink952, i32 noundef %1894, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.2, i32 noundef 164, ptr noundef %1896, ptr noundef %1898, ptr noundef %1900, i32 noundef %1901) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1903:                                             ; preds = %1875
  %1904 = load i32, ptr @test_count, align 4, !tbaa !5
  %1905 = add nsw i32 %1904, 1
  store i32 %1905, ptr @test_count, align 4, !tbaa !5
  %1906 = load i32, ptr %1461, align 4, !tbaa !61
  %1907 = load i32, ptr %1462, align 8, !tbaa !62
  %1908 = sub i32 %1906, %1907
  %1909 = call i32 @s2n_stuffer_copy(ptr noundef nonnull %1458, ptr noundef nonnull %1459, i32 noundef %1908) #12
  %1910 = icmp eq i32 %1909, -1
  br i1 %1910, label %1911, label %1934

1911:                                             ; preds = %1903
  %1912 = tail call ptr @__errno_location() #13
  %1913 = load i32, ptr %1912, align 4, !tbaa !5
  %1914 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1915 = call i32 @s2n_print_stacktrace(ptr noundef %1914) #12
  %1916 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1917 = trunc nuw i8 %1916 to i1
  br i1 %1917, label %1918, label %1922

1918:                                             ; preds = %1911
  %1919 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1920 = call i32 @fileno(ptr noundef %1919) #12
  %1921 = call i32 @isatty(i32 noundef %1920) #12
  %.not320 = icmp eq i32 %1921, 0
  br i1 %.not320, label %1922, label %1923

1922:                                             ; preds = %1918, %1911
  br label %1923

1923:                                             ; preds = %1918, %1922
  %.str.4.sink961 = phi ptr [ @.str.4, %1922 ], [ @.str, %1918 ]
  store i32 %1913, ptr %1912, align 4, !tbaa !5
  %1924 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1925 = load i32, ptr @test_count, align 4, !tbaa !5
  %1926 = load i32, ptr %491, align 4, !tbaa !5
  %1927 = call ptr @s2n_strerror(i32 noundef %1926, ptr noundef nonnull @.str.3) #12
  %1928 = load i32, ptr %491, align 4, !tbaa !5
  %1929 = call ptr @s2n_strerror_debug(i32 noundef %1928, ptr noundef nonnull @.str.3) #12
  %1930 = load i32, ptr %1912, align 4, !tbaa !5
  %1931 = call ptr @strerror(i32 noundef %1930) #12
  %1932 = load i32, ptr %1912, align 4, !tbaa !5
  %1933 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1924, ptr noundef nonnull %.str.4.sink961, i32 noundef %1925, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.2, i32 noundef 165, ptr noundef %1927, ptr noundef %1929, ptr noundef %1931, i32 noundef %1932) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1934:                                             ; preds = %1903
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %14) #12
  store i8 0, ptr %14, align 1, !tbaa !60
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %15) #12
  store i16 0, ptr %15, align 2, !tbaa !63
  %1935 = load i32, ptr @test_count, align 4, !tbaa !5
  %1936 = add nsw i32 %1935, 1
  store i32 %1936, ptr @test_count, align 4, !tbaa !5
  %1937 = call i32 @s2n_record_header_parse(ptr noundef nonnull %1225, ptr noundef nonnull %14, ptr noundef nonnull %15) #12
  %1938 = icmp eq i32 %1937, -1
  br i1 %1938, label %1939, label %1962

1939:                                             ; preds = %1934
  %1940 = tail call ptr @__errno_location() #13
  %1941 = load i32, ptr %1940, align 4, !tbaa !5
  %1942 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1943 = call i32 @s2n_print_stacktrace(ptr noundef %1942) #12
  %1944 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1945 = trunc nuw i8 %1944 to i1
  br i1 %1945, label %1946, label %1950

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

1950:                                             ; preds = %1946, %1939
  br label %1951

1951:                                             ; preds = %1946, %1950
  %.str.4.sink970 = phi ptr [ @.str.4, %1950 ], [ @.str, %1946 ]
  store i32 %1941, ptr %1940, align 4, !tbaa !5
  %1952 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1953 = load i32, ptr @test_count, align 4, !tbaa !5
  %1954 = load i32, ptr %491, align 4, !tbaa !5
  %1955 = call ptr @s2n_strerror(i32 noundef %1954, ptr noundef nonnull @.str.3) #12
  %1956 = load i32, ptr %491, align 4, !tbaa !5
  %1957 = call ptr @s2n_strerror_debug(i32 noundef %1956, ptr noundef nonnull @.str.3) #12
  %1958 = load i32, ptr %1940, align 4, !tbaa !5
  %1959 = call ptr @strerror(i32 noundef %1958) #12
  %1960 = load i32, ptr %1940, align 4, !tbaa !5
  %1961 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1952, ptr noundef nonnull %.str.4.sink970, i32 noundef %1953, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.2, i32 noundef 170, ptr noundef %1955, ptr noundef %1957, ptr noundef %1959, i32 noundef %1960) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1962:                                             ; preds = %1934
  %1963 = load i32, ptr @test_count, align 4, !tbaa !5
  %1964 = add nsw i32 %1963, 1
  store i32 %1964, ptr @test_count, align 4, !tbaa !5
  %1965 = call i32 @s2n_record_parse(ptr noundef nonnull %1225) #12
  %1966 = icmp eq i32 %1965, -1
  br i1 %1966, label %1967, label %1990

1967:                                             ; preds = %1962
  %1968 = tail call ptr @__errno_location() #13
  %1969 = load i32, ptr %1968, align 4, !tbaa !5
  %1970 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1971 = call i32 @s2n_print_stacktrace(ptr noundef %1970) #12
  %1972 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1973 = trunc nuw i8 %1972 to i1
  br i1 %1973, label %1974, label %1978

1974:                                             ; preds = %1967
  %1975 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1976 = call i32 @fileno(ptr noundef %1975) #12
  %1977 = call i32 @isatty(i32 noundef %1976) #12
  %.not318 = icmp eq i32 %1977, 0
  br i1 %.not318, label %1978, label %1979

1978:                                             ; preds = %1974, %1967
  br label %1979

1979:                                             ; preds = %1974, %1978
  %.str.4.sink979 = phi ptr [ @.str.4, %1978 ], [ @.str, %1974 ]
  store i32 %1969, ptr %1968, align 4, !tbaa !5
  %1980 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1981 = load i32, ptr @test_count, align 4, !tbaa !5
  %1982 = load i32, ptr %491, align 4, !tbaa !5
  %1983 = call ptr @s2n_strerror(i32 noundef %1982, ptr noundef nonnull @.str.3) #12
  %1984 = load i32, ptr %491, align 4, !tbaa !5
  %1985 = call ptr @s2n_strerror_debug(i32 noundef %1984, ptr noundef nonnull @.str.3) #12
  %1986 = load i32, ptr %1968, align 4, !tbaa !5
  %1987 = call ptr @strerror(i32 noundef %1986) #12
  %1988 = load i32, ptr %1968, align 4, !tbaa !5
  %1989 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1980, ptr noundef nonnull %.str.4.sink979, i32 noundef %1981, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.2, i32 noundef 171, ptr noundef %1983, ptr noundef %1985, ptr noundef %1987, i32 noundef %1988) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1990:                                             ; preds = %1962
  %1991 = load i32, ptr @test_count, align 4, !tbaa !5
  %1992 = add nsw i32 %1991, 1
  store i32 %1992, ptr @test_count, align 4, !tbaa !5
  %1993 = load i8, ptr %14, align 1, !tbaa !60
  %1994 = icmp eq i8 %1993, 23
  br i1 %1994, label %2018, label %1995

1995:                                             ; preds = %1990
  %1996 = tail call ptr @__errno_location() #13
  %1997 = load i32, ptr %1996, align 4, !tbaa !5
  %1998 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1999 = call i32 @s2n_print_stacktrace(ptr noundef %1998) #12
  %2000 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2001 = trunc nuw i8 %2000 to i1
  br i1 %2001, label %2002, label %2006

2002:                                             ; preds = %1995
  %2003 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2004 = call i32 @fileno(ptr noundef %2003) #12
  %2005 = call i32 @isatty(i32 noundef %2004) #12
  %.not314 = icmp eq i32 %2005, 0
  br i1 %.not314, label %2006, label %2007

2006:                                             ; preds = %2002, %1995
  br label %2007

2007:                                             ; preds = %2002, %2006
  %.str.4.sink988 = phi ptr [ @.str.4, %2006 ], [ @.str, %2002 ]
  store i32 %1997, ptr %1996, align 4, !tbaa !5
  %2008 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2009 = load i32, ptr @test_count, align 4, !tbaa !5
  %2010 = load i32, ptr %491, align 4, !tbaa !5
  %2011 = call ptr @s2n_strerror(i32 noundef %2010, ptr noundef nonnull @.str.3) #12
  %2012 = load i32, ptr %491, align 4, !tbaa !5
  %2013 = call ptr @s2n_strerror_debug(i32 noundef %2012, ptr noundef nonnull @.str.3) #12
  %2014 = load i32, ptr %1996, align 4, !tbaa !5
  %2015 = call ptr @strerror(i32 noundef %2014) #12
  %2016 = load i32, ptr %1996, align 4, !tbaa !5
  %2017 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2008, ptr noundef nonnull %.str.4.sink988, i32 noundef %2009, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.2, i32 noundef 172, ptr noundef %2011, ptr noundef %2013, ptr noundef %2015, i32 noundef %2016) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2018:                                             ; preds = %1990
  %2019 = add nsw i32 %1991, 2
  store i32 %2019, ptr @test_count, align 4, !tbaa !5
  %2020 = load i16, ptr %15, align 2, !tbaa !63
  %2021 = icmp eq i16 %2020, %.0278
  br i1 %2021, label %2045, label %2022

2022:                                             ; preds = %2018
  %2023 = tail call ptr @__errno_location() #13
  %2024 = load i32, ptr %2023, align 4, !tbaa !5
  %2025 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2026 = call i32 @s2n_print_stacktrace(ptr noundef %2025) #12
  %2027 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2028 = trunc nuw i8 %2027 to i1
  br i1 %2028, label %2029, label %2033

2029:                                             ; preds = %2022
  %2030 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2031 = call i32 @fileno(ptr noundef %2030) #12
  %2032 = call i32 @isatty(i32 noundef %2031) #12
  %.not315 = icmp eq i32 %2032, 0
  br i1 %.not315, label %2033, label %2034

2033:                                             ; preds = %2029, %2022
  br label %2034

2034:                                             ; preds = %2029, %2033
  %.str.4.sink997 = phi ptr [ @.str.4, %2033 ], [ @.str, %2029 ]
  store i32 %2024, ptr %2023, align 4, !tbaa !5
  %2035 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2036 = load i32, ptr @test_count, align 4, !tbaa !5
  %2037 = load i32, ptr %491, align 4, !tbaa !5
  %2038 = call ptr @s2n_strerror(i32 noundef %2037, ptr noundef nonnull @.str.3) #12
  %2039 = load i32, ptr %491, align 4, !tbaa !5
  %2040 = call ptr @s2n_strerror_debug(i32 noundef %2039, ptr noundef nonnull @.str.3) #12
  %2041 = load i32, ptr %2023, align 4, !tbaa !5
  %2042 = call ptr @strerror(i32 noundef %2041) #12
  %2043 = load i32, ptr %2023, align 4, !tbaa !5
  %2044 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2035, ptr noundef nonnull %.str.4.sink997, i32 noundef %2036, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.2, i32 noundef 173, ptr noundef %2038, ptr noundef %2040, ptr noundef %2042, i32 noundef %2043) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2045:                                             ; preds = %2018
  %2046 = add nsw i32 %1991, 3
  store i32 %2046, ptr @test_count, align 4, !tbaa !5
  %2047 = call i32 @s2n_stuffer_wipe(ptr noundef nonnull %1460) #12
  %2048 = icmp eq i32 %2047, -1
  br i1 %2048, label %2049, label %2072

2049:                                             ; preds = %2045
  %2050 = tail call ptr @__errno_location() #13
  %2051 = load i32, ptr %2050, align 4, !tbaa !5
  %2052 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2053 = call i32 @s2n_print_stacktrace(ptr noundef %2052) #12
  %2054 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2055 = trunc nuw i8 %2054 to i1
  br i1 %2055, label %2056, label %2060

2056:                                             ; preds = %2049
  %2057 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2058 = call i32 @fileno(ptr noundef %2057) #12
  %2059 = call i32 @isatty(i32 noundef %2058) #12
  %.not317 = icmp eq i32 %2059, 0
  br i1 %.not317, label %2060, label %2061

2060:                                             ; preds = %2056, %2049
  br label %2061

2061:                                             ; preds = %2056, %2060
  %.str.4.sink1006 = phi ptr [ @.str.4, %2060 ], [ @.str, %2056 ]
  store i32 %2051, ptr %2050, align 4, !tbaa !5
  %2062 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2063 = load i32, ptr @test_count, align 4, !tbaa !5
  %2064 = load i32, ptr %491, align 4, !tbaa !5
  %2065 = call ptr @s2n_strerror(i32 noundef %2064, ptr noundef nonnull @.str.3) #12
  %2066 = load i32, ptr %491, align 4, !tbaa !5
  %2067 = call ptr @s2n_strerror_debug(i32 noundef %2066, ptr noundef nonnull @.str.3) #12
  %2068 = load i32, ptr %2050, align 4, !tbaa !5
  %2069 = call ptr @strerror(i32 noundef %2068) #12
  %2070 = load i32, ptr %2050, align 4, !tbaa !5
  %2071 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2062, ptr noundef nonnull %.str.4.sink1006, i32 noundef %2063, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.2, i32 noundef 175, ptr noundef %2065, ptr noundef %2067, ptr noundef %2069, i32 noundef %2070) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2072:                                             ; preds = %2045
  %2073 = load i32, ptr @test_count, align 4, !tbaa !5
  %2074 = add nsw i32 %2073, 1
  store i32 %2074, ptr @test_count, align 4, !tbaa !5
  %2075 = call i32 @s2n_stuffer_wipe(ptr noundef nonnull %1459) #12
  %2076 = icmp eq i32 %2075, -1
  br i1 %2076, label %2077, label %2100

2077:                                             ; preds = %2072
  %2078 = tail call ptr @__errno_location() #13
  %2079 = load i32, ptr %2078, align 4, !tbaa !5
  %2080 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2081 = call i32 @s2n_print_stacktrace(ptr noundef %2080) #12
  %2082 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2083 = trunc nuw i8 %2082 to i1
  br i1 %2083, label %2084, label %2088

2084:                                             ; preds = %2077
  %2085 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2086 = call i32 @fileno(ptr noundef %2085) #12
  %2087 = call i32 @isatty(i32 noundef %2086) #12
  %.not316 = icmp eq i32 %2087, 0
  br i1 %.not316, label %2088, label %2089

2088:                                             ; preds = %2084, %2077
  br label %2089

2089:                                             ; preds = %2084, %2088
  %.str.4.sink1015 = phi ptr [ @.str.4, %2088 ], [ @.str, %2084 ]
  store i32 %2079, ptr %2078, align 4, !tbaa !5
  %2090 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2091 = load i32, ptr @test_count, align 4, !tbaa !5
  %2092 = load i32, ptr %491, align 4, !tbaa !5
  %2093 = call ptr @s2n_strerror(i32 noundef %2092, ptr noundef nonnull @.str.3) #12
  %2094 = load i32, ptr %491, align 4, !tbaa !5
  %2095 = call ptr @s2n_strerror_debug(i32 noundef %2094, ptr noundef nonnull @.str.3) #12
  %2096 = load i32, ptr %2078, align 4, !tbaa !5
  %2097 = call ptr @strerror(i32 noundef %2096) #12
  %2098 = load i32, ptr %2078, align 4, !tbaa !5
  %2099 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2090, ptr noundef nonnull %.str.4.sink1015, i32 noundef %2091, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.2, i32 noundef 176, ptr noundef %2093, ptr noundef %2095, ptr noundef %2097, i32 noundef %2098) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2100:                                             ; preds = %2072
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %15) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %14) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %13) #12
  %2101 = add nuw nsw i64 %.0276372, 1
  %exitcond373.not = icmp eq i64 %2101, 8089
  br i1 %exitcond373.not, label %1463, label %1476, !llvm.loop !66

2102:                                             ; preds = %1463
  %2103 = tail call ptr @__errno_location() #13
  %2104 = load i32, ptr %2103, align 4, !tbaa !5
  %2105 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2106 = call i32 @s2n_print_stacktrace(ptr noundef %2105) #12
  %2107 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2108 = trunc nuw i8 %2107 to i1
  br i1 %2108, label %2109, label %2113

2109:                                             ; preds = %2102
  %2110 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2111 = call i32 @fileno(ptr noundef %2110) #12
  %2112 = call i32 @isatty(i32 noundef %2111) #12
  %.not295 = icmp eq i32 %2112, 0
  br i1 %.not295, label %2113, label %2114

2113:                                             ; preds = %2109, %2102
  br label %2114

2114:                                             ; preds = %2109, %2113
  %.str.4.sink1024 = phi ptr [ @.str.4, %2113 ], [ @.str, %2109 ]
  store i32 %2104, ptr %2103, align 4, !tbaa !5
  %2115 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2116 = load i32, ptr @test_count, align 4, !tbaa !5
  %2117 = load i32, ptr %491, align 4, !tbaa !5
  %2118 = call ptr @s2n_strerror(i32 noundef %2117, ptr noundef nonnull @.str.3) #12
  %2119 = load i32, ptr %491, align 4, !tbaa !5
  %2120 = call ptr @s2n_strerror_debug(i32 noundef %2119, ptr noundef nonnull @.str.3) #12
  %2121 = load i32, ptr %2103, align 4, !tbaa !5
  %2122 = call ptr @strerror(i32 noundef %2121) #12
  %2123 = load i32, ptr %2103, align 4, !tbaa !5
  %2124 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2115, ptr noundef nonnull %.str.4.sink1024, i32 noundef %2116, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.2, i32 noundef 179, ptr noundef %2118, ptr noundef %2120, ptr noundef %2122, i32 noundef %2123) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2125:                                             ; preds = %1463
  %2126 = load i32, ptr @test_count, align 4, !tbaa !5
  %2127 = add nsw i32 %2126, 1
  store i32 %2127, ptr @test_count, align 4, !tbaa !5
  %2128 = load ptr, ptr %1251, align 8, !tbaa !15
  %2129 = load ptr, ptr %2128, align 8, !tbaa !44
  %2130 = getelementptr inbounds i8, ptr %2129, i64 48
  %2131 = load ptr, ptr %2130, align 8, !tbaa !49
  %2132 = load ptr, ptr %2131, align 8, !tbaa !51
  %2133 = getelementptr inbounds i8, ptr %2132, i64 88
  %2134 = load ptr, ptr %2133, align 8, !tbaa !58
  %2135 = getelementptr inbounds i8, ptr %2128, i64 8
  %2136 = call i32 %2134(ptr noundef nonnull %2135) #12
  %2137 = call zeroext i1 @s2n_result_is_ok(i32 %2136)
  br i1 %2137, label %2161, label %2138

2138:                                             ; preds = %2125
  %2139 = tail call ptr @__errno_location() #13
  %2140 = load i32, ptr %2139, align 4, !tbaa !5
  %2141 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2142 = call i32 @s2n_print_stacktrace(ptr noundef %2141) #12
  %2143 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2144 = trunc nuw i8 %2143 to i1
  br i1 %2144, label %2145, label %2149

2145:                                             ; preds = %2138
  %2146 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2147 = call i32 @fileno(ptr noundef %2146) #12
  %2148 = call i32 @isatty(i32 noundef %2147) #12
  %.not296 = icmp eq i32 %2148, 0
  br i1 %.not296, label %2149, label %2150

2149:                                             ; preds = %2145, %2138
  br label %2150

2150:                                             ; preds = %2145, %2149
  %.str.4.sink1033 = phi ptr [ @.str.4, %2149 ], [ @.str, %2145 ]
  store i32 %2140, ptr %2139, align 4, !tbaa !5
  %2151 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2152 = load i32, ptr @test_count, align 4, !tbaa !5
  %2153 = load i32, ptr %491, align 4, !tbaa !5
  %2154 = call ptr @s2n_strerror(i32 noundef %2153, ptr noundef nonnull @.str.3) #12
  %2155 = load i32, ptr %491, align 4, !tbaa !5
  %2156 = call ptr @s2n_strerror_debug(i32 noundef %2155, ptr noundef nonnull @.str.3) #12
  %2157 = load i32, ptr %2139, align 4, !tbaa !5
  %2158 = call ptr @strerror(i32 noundef %2157) #12
  %2159 = load i32, ptr %2139, align 4, !tbaa !5
  %2160 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2151, ptr noundef nonnull %.str.4.sink1033, i32 noundef %2152, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.2, i32 noundef 180, ptr noundef %2154, ptr noundef %2156, ptr noundef %2158, i32 noundef %2159) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2161:                                             ; preds = %2125
  %2162 = load i32, ptr @test_count, align 4, !tbaa !5
  %2163 = add nsw i32 %2162, 1
  store i32 %2163, ptr @test_count, align 4, !tbaa !5
  %2164 = call i32 @s2n_connection_free(ptr noundef nonnull %1225) #12
  %2165 = icmp eq i32 %2164, -1
  br i1 %2165, label %2166, label %2189

2166:                                             ; preds = %2161
  %2167 = tail call ptr @__errno_location() #13
  %2168 = load i32, ptr %2167, align 4, !tbaa !5
  %2169 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2170 = call i32 @s2n_print_stacktrace(ptr noundef %2169) #12
  %2171 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2172 = trunc nuw i8 %2171 to i1
  br i1 %2172, label %2173, label %2177

2173:                                             ; preds = %2166
  %2174 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2175 = call i32 @fileno(ptr noundef %2174) #12
  %2176 = call i32 @isatty(i32 noundef %2175) #12
  %.not302 = icmp eq i32 %2176, 0
  br i1 %.not302, label %2177, label %2178

2177:                                             ; preds = %2173, %2166
  br label %2178

2178:                                             ; preds = %2173, %2177
  %.str.4.sink1042 = phi ptr [ @.str.4, %2177 ], [ @.str, %2173 ]
  store i32 %2168, ptr %2167, align 4, !tbaa !5
  %2179 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2180 = load i32, ptr @test_count, align 4, !tbaa !5
  %2181 = load i32, ptr %491, align 4, !tbaa !5
  %2182 = call ptr @s2n_strerror(i32 noundef %2181, ptr noundef nonnull @.str.3) #12
  %2183 = load i32, ptr %491, align 4, !tbaa !5
  %2184 = call ptr @s2n_strerror_debug(i32 noundef %2183, ptr noundef nonnull @.str.3) #12
  %2185 = load i32, ptr %2167, align 4, !tbaa !5
  %2186 = call ptr @strerror(i32 noundef %2185) #12
  %2187 = load i32, ptr %2167, align 4, !tbaa !5
  %2188 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2179, ptr noundef nonnull %.str.4.sink1042, i32 noundef %2180, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.2, i32 noundef 181, ptr noundef %2182, ptr noundef %2184, ptr noundef %2186, i32 noundef %2187) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2189:                                             ; preds = %2161
  %2190 = call i32 @s2n_cleanup() #12
  %2191 = icmp eq i32 %2190, -1
  br i1 %2191, label %2192, label %2215

2192:                                             ; preds = %2189
  %2193 = tail call ptr @__errno_location() #13
  %2194 = load i32, ptr %2193, align 4, !tbaa !5
  %2195 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2196 = call i32 @s2n_print_stacktrace(ptr noundef %2195) #12
  %2197 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2198 = trunc nuw i8 %2197 to i1
  br i1 %2198, label %2199, label %2203

2199:                                             ; preds = %2192
  %2200 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2201 = call i32 @fileno(ptr noundef %2200) #12
  %2202 = call i32 @isatty(i32 noundef %2201) #12
  %.not301 = icmp eq i32 %2202, 0
  br i1 %.not301, label %2203, label %2204

2203:                                             ; preds = %2199, %2192
  br label %2204

2204:                                             ; preds = %2199, %2203
  %.str.4.sink1051 = phi ptr [ @.str.4, %2203 ], [ @.str, %2199 ]
  store i32 %2194, ptr %2193, align 4, !tbaa !5
  %2205 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2206 = load i32, ptr @test_count, align 4, !tbaa !5
  %2207 = load i32, ptr %491, align 4, !tbaa !5
  %2208 = call ptr @s2n_strerror(i32 noundef %2207, ptr noundef nonnull @.str.3) #12
  %2209 = load i32, ptr %491, align 4, !tbaa !5
  %2210 = call ptr @s2n_strerror_debug(i32 noundef %2209, ptr noundef nonnull @.str.3) #12
  %2211 = load i32, ptr %2193, align 4, !tbaa !5
  %2212 = call ptr @strerror(i32 noundef %2211) #12
  %2213 = load i32, ptr %2193, align 4, !tbaa !5
  %2214 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2205, ptr noundef nonnull %.str.4.sink1051, i32 noundef %2206, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.2, i32 noundef 183, ptr noundef %2208, ptr noundef %2210, ptr noundef %2212, i32 noundef %2213) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2215:                                             ; preds = %2189
  %2216 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #12
  %2217 = icmp eq i32 %2216, -1
  br i1 %2217, label %2218, label %2241

2218:                                             ; preds = %2215
  %2219 = tail call ptr @__errno_location() #13
  %2220 = load i32, ptr %2219, align 4, !tbaa !5
  %2221 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2222 = call i32 @s2n_print_stacktrace(ptr noundef %2221) #12
  %2223 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2224 = trunc nuw i8 %2223 to i1
  br i1 %2224, label %2225, label %2229

2225:                                             ; preds = %2218
  %2226 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2227 = call i32 @fileno(ptr noundef %2226) #12
  %2228 = call i32 @isatty(i32 noundef %2227) #12
  %.not300 = icmp eq i32 %2228, 0
  br i1 %.not300, label %2229, label %2230

2229:                                             ; preds = %2225, %2218
  br label %2230

2230:                                             ; preds = %2225, %2229
  %.str.4.sink1060 = phi ptr [ @.str.4, %2229 ], [ @.str, %2225 ]
  store i32 %2220, ptr %2219, align 4, !tbaa !5
  %2231 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2232 = load i32, ptr @test_count, align 4, !tbaa !5
  %2233 = load i32, ptr %491, align 4, !tbaa !5
  %2234 = call ptr @s2n_strerror(i32 noundef %2233, ptr noundef nonnull @.str.3) #12
  %2235 = load i32, ptr %491, align 4, !tbaa !5
  %2236 = call ptr @s2n_strerror_debug(i32 noundef %2235, ptr noundef nonnull @.str.3) #12
  %2237 = load i32, ptr %2219, align 4, !tbaa !5
  %2238 = call ptr @strerror(i32 noundef %2237) #12
  %2239 = load i32, ptr %2219, align 4, !tbaa !5
  %2240 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2231, ptr noundef nonnull %.str.4.sink1060, i32 noundef %2232, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.2, i32 noundef 183, ptr noundef %2234, ptr noundef %2236, ptr noundef %2238, i32 noundef %2239) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2241:                                             ; preds = %2215
  %2242 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2243 = trunc nuw i8 %2242 to i1
  br i1 %2243, label %2244, label %2255

2244:                                             ; preds = %2241
  %2245 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2246 = call i32 @fileno(ptr noundef %2245) #12
  %2247 = call i32 @isatty(i32 noundef %2246) #12
  %.not297 = icmp eq i32 %2247, 0
  br i1 %.not297, label %2255, label %2248

2248:                                             ; preds = %2244
  %2249 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not299 = icmp eq i32 %2249, 0
  %2250 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not299, label %2253, label %2251

2251:                                             ; preds = %2248
  %2252 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2250, ptr noundef nonnull @.str.47, i32 noundef %2249) #12
  br label %2262

2253:                                             ; preds = %2248
  %2254 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2250, ptr noundef nonnull @.str.48) #12
  br label %2262

2255:                                             ; preds = %2244, %2241
  %2256 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not298 = icmp eq i32 %2256, 0
  %2257 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not298, label %2260, label %2258

2258:                                             ; preds = %2255
  %2259 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2257, ptr noundef nonnull @.str.49, i32 noundef %2256) #12
  br label %2262

2260:                                             ; preds = %2255
  %2261 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2257, ptr noundef nonnull @.str.50) #12
  br label %2262

2262:                                             ; preds = %2258, %2260, %2251, %2253
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %9) #12
  call void @llvm.lifetime.end.p0(i64 8088, ptr nonnull %8) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %7) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %6) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %4) #12
  call void @llvm.lifetime.end.p0(i64 15, ptr nonnull %3) #12
  ret i32 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 nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #2

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

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

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

declare i32 @s2n_print_stacktrace(ptr noundef) local_unnamed_addr #4

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

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

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

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

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

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

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

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) local_unnamed_addr #4

declare i32 @s2n_enable_atexit() local_unnamed_addr #4

declare i32 @s2n_init() local_unnamed_addr #4

declare i32 @s2n_disable_tls13_in_test(...) local_unnamed_addr #4

declare ptr @s2n_connection_new(i32 noundef) local_unnamed_addr #4

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

declare i32 @s2n_get_public_random_data(ptr noundef) local_unnamed_addr #4

declare i32 @s2n_hmac_init(ptr noundef, i32 noundef, ptr noundef, i32 noundef) local_unnamed_addr #4

declare i32 @s2n_stuffer_wipe(ptr noundef) local_unnamed_addr #4

declare i32 @s2n_record_write(ptr noundef, i8 noundef zeroext, ptr noundef) local_unnamed_addr #4

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

declare void @s2n_debug_info_reset() local_unnamed_addr #4

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

declare i32 @s2n_record_header_parse(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #4

declare i32 @s2n_record_parse(ptr noundef) local_unnamed_addr #4

declare i32 @s2n_connection_free(ptr noundef) local_unnamed_addr #4

declare i32 @s2n_cleanup() local_unnamed_addr #4

; Function Attrs: nofree nounwind willreturn memory(argmem: read)
declare i32 @bcmp(ptr nocapture, ptr nocapture, i64) local_unnamed_addr #11

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

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

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


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