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

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

%struct.s2n_cipher = type { i32, %union.anon, i8, ptr, ptr, ptr, ptr, ptr, ptr }
%union.anon = type { %struct.s2n_composite_cipher }
%struct.s2n_composite_cipher = type { i8, i8, i8, ptr, ptr, ptr, ptr }
%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.0, i32 }
%union.anon.0 = 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.1 }
%union.anon.1 = 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_aead_cipher = type { i8, i8, i8, ptr, ptr }

@s2n_use_color_in_output = external dso_local global i8, align 1
@__const.main.chacha20_poly1305_key_data = 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 [130 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [90 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 [80 x i8], align 1
@stdout = external global ptr, align 8
@.str.6 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [56 x i8], align 1
@s2n_chacha20_poly1305 = external constant %struct.s2n_cipher, align 8
@.str.11 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [62 x i8], align 1
@s2n_record_alg_chacha20_poly1305 = external constant %struct.s2n_record_algorithm, align 8
@.str.19 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [126 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [54 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 [1436 x i8], align 16
  %8 = alloca [32 x i8], align 16
  %9 = alloca %struct.s2n_blob, align 8
  %10 = alloca i32, align 4
  %11 = alloca %struct.s2n_blob, align 8
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %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 %struct.s2n_result, align 4
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca i64, align 8
  %25 = alloca %struct.s2n_blob, align 8
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca %struct.s2n_result, align 4
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i16, align 2
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca i32, align 4
  %46 = alloca i32, align 4
  %47 = alloca i32, align 4
  %48 = alloca i32, align 4
  %49 = alloca i8, align 1
  %50 = alloca i16, align 2
  %51 = alloca i32, align 4
  %52 = alloca i32, align 4
  %53 = alloca i32, align 4
  %54 = alloca i32, align 4
  %55 = alloca i32, align 4
  %56 = alloca i32, align 4
  %57 = alloca i32, align 4
  %58 = alloca i32, align 4
  %59 = alloca i32, align 4
  %60 = alloca %struct.s2n_result, align 4
  %61 = alloca i32, align 4
  %62 = alloca i32, align 4
  %63 = alloca i32, align 4
  %64 = alloca i32, align 4
  %65 = alloca i32, align 4
  %66 = alloca i32, align 4
  %67 = alloca i32, align 4
  %68 = alloca i32, align 4
  %69 = alloca i32, align 4
  %70 = alloca i32, align 4
  %71 = alloca i32, align 4
  %72 = alloca i32, align 4
  %73 = alloca i32, align 4
  %74 = alloca %struct.s2n_result, align 4
  %75 = alloca %struct.s2n_result, align 4
  %76 = alloca i64, align 8
  %77 = alloca i32, align 4
  %78 = alloca i32, align 4
  %79 = alloca i32, align 4
  %80 = alloca %struct.s2n_result, align 4
  %81 = alloca i32, align 4
  %82 = alloca i32, align 4
  %83 = alloca i32, align 4
  %84 = alloca i32, align 4
  %85 = alloca i32, align 4
  %86 = alloca i32, align 4
  %87 = alloca i32, align 4
  %88 = alloca i32, align 4
  %89 = alloca i32, align 4
  %90 = alloca i32, align 4
  %91 = alloca i32, align 4
  %92 = alloca i32, align 4
  %93 = alloca %struct.s2n_result, align 4
  %94 = alloca %struct.s2n_result, align 4
  %95 = alloca i64, align 8
  %96 = alloca i32, align 4
  %97 = alloca i32, align 4
  %98 = alloca i32, align 4
  %99 = alloca %struct.s2n_result, align 4
  %100 = alloca i32, align 4
  %101 = alloca i32, align 4
  %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 i32, align 4
  %109 = alloca i32, align 4
  %110 = alloca i32, align 4
  %111 = alloca i32, align 4
  %112 = alloca %struct.s2n_result, align 4
  %113 = alloca %struct.s2n_result, align 4
  %114 = alloca i32, align 4
  %115 = alloca i32, align 4
  %116 = alloca i32, align 4
  %117 = 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 1436, ptr %7) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %8) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %8, ptr align 16 @__const.main.chacha20_poly1305_key_data, i64 32, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr %9) #11
  call void @llvm.memset.p0.i64(ptr align 8 %9, i8 0, i64 24, i1 false)
  br label %118

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

124:                                              ; preds = %118
  br label %125

125:                                              ; preds = %124
  br label %126

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

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

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

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

172:                                              ; preds = %155, %138
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #11
  br label %173

173:                                              ; preds = %172
  br label %174

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

175:                                              ; No predecessors!
  br label %176

176:                                              ; preds = %175
  br label %177

177:                                              ; preds = %176, %118
  br label %178

178:                                              ; preds = %177
  br label %179

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

180:                                              ; preds = %179
  %181 = load i32, ptr @test_count, align 4, !tbaa !5
  %182 = add nsw i32 %181, 1
  store i32 %182, ptr @test_count, align 4, !tbaa !5
  %183 = getelementptr inbounds [1436 x i8], ptr %7, i64 0, i64 0
  %184 = call i32 @s2n_blob_init(ptr noundef %11, ptr noundef %183, i32 noundef 1436)
  %185 = icmp eq i32 %184, -1
  br i1 %185, label %186, label %239

186:                                              ; preds = %180
  br label %187

187:                                              ; preds = %186
  br label %188

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

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

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

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

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

235:                                              ; preds = %234
  br label %236

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

237:                                              ; No predecessors!
  br label %238

238:                                              ; preds = %237
  br label %239

239:                                              ; preds = %238, %180
  br label %240

240:                                              ; preds = %239
  br label %241

241:                                              ; preds = %240
  br label %242

242:                                              ; preds = %241
  br label %243

243:                                              ; preds = %242
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %244 = load ptr, ptr @stdout, align 8, !tbaa !9
  %245 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %244, ptr noundef @.str.6, ptr noundef @.str.2) #11
  %246 = load ptr, ptr @stdout, align 8, !tbaa !9
  %247 = call i32 @fflush(ptr noundef %246)
  br label %248

248:                                              ; preds = %243
  %249 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %250 = icmp eq i32 %249, -1
  br i1 %250, label %251, label %304

251:                                              ; preds = %248
  br label %252

252:                                              ; preds = %251
  br label %253

253:                                              ; preds = %252
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #11
  %254 = call ptr @__errno_location() #12
  %255 = load i32, ptr %254, align 4, !tbaa !5
  store i32 %255, ptr %13, align 4, !tbaa !5
  %256 = load ptr, ptr @stderr, align 8, !tbaa !9
  %257 = call i32 @s2n_print_stacktrace(ptr noundef %256)
  %258 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %259 = trunc i8 %258 to i1
  br i1 %259, label %260, label %282

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

265:                                              ; preds = %260
  %266 = load i32, ptr %13, align 4, !tbaa !5
  %267 = call ptr @__errno_location() #12
  store i32 %266, ptr %267, align 4, !tbaa !5
  %268 = load ptr, ptr @stderr, align 8, !tbaa !9
  %269 = load i32, ptr @test_count, align 4, !tbaa !5
  %270 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %271 = load i32, ptr %270, align 4, !tbaa !5
  %272 = call ptr @s2n_strerror(i32 noundef %271, ptr noundef @.str.3)
  %273 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %274 = load i32, ptr %273, align 4, !tbaa !5
  %275 = call ptr @s2n_strerror_debug(i32 noundef %274, ptr noundef @.str.3)
  %276 = call ptr @__errno_location() #12
  %277 = load i32, ptr %276, align 4, !tbaa !5
  %278 = call ptr @strerror(i32 noundef %277) #11
  %279 = call ptr @__errno_location() #12
  %280 = load i32, ptr %279, align 4, !tbaa !5
  %281 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %268, ptr noundef @.str, i32 noundef %269, ptr noundef @.str.7, ptr noundef @.str.2, i32 noundef 59, ptr noundef %272, ptr noundef %275, ptr noundef %278, i32 noundef %280) #11
  br label %299

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

299:                                              ; preds = %282, %265
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #11
  br label %300

300:                                              ; preds = %299
  br label %301

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

302:                                              ; No predecessors!
  br label %303

303:                                              ; preds = %302
  br label %304

304:                                              ; preds = %303, %248
  br label %305

305:                                              ; preds = %304
  br label %306

306:                                              ; preds = %305
  br label %307

307:                                              ; preds = %306
  %308 = load i32, ptr @test_count, align 4, !tbaa !5
  %309 = add nsw i32 %308, 1
  store i32 %309, ptr @test_count, align 4, !tbaa !5
  %310 = call i32 @s2n_enable_atexit()
  %311 = icmp eq i32 %310, -1
  br i1 %311, label %312, label %365

312:                                              ; preds = %307
  br label %313

313:                                              ; preds = %312
  br label %314

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

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

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

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

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

361:                                              ; preds = %360
  br label %362

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

363:                                              ; No predecessors!
  br label %364

364:                                              ; preds = %363
  br label %365

365:                                              ; preds = %364, %307
  br label %366

366:                                              ; preds = %365
  br label %367

367:                                              ; preds = %366
  br label %368

368:                                              ; preds = %367
  br label %369

369:                                              ; preds = %368
  br label %370

370:                                              ; preds = %369
  %371 = call i32 @s2n_init()
  %372 = icmp eq i32 %371, -1
  br i1 %372, label %373, label %426

373:                                              ; preds = %370
  br label %374

374:                                              ; preds = %373
  br label %375

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

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

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

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

421:                                              ; preds = %404, %387
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #11
  br label %422

422:                                              ; preds = %421
  br label %423

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

424:                                              ; No predecessors!
  br label %425

425:                                              ; preds = %424
  br label %426

426:                                              ; preds = %425, %370
  br label %427

427:                                              ; preds = %426
  br label %428

428:                                              ; preds = %427
  br label %429

429:                                              ; preds = %428
  br label %430

430:                                              ; preds = %429
  br label %431

431:                                              ; preds = %430
  %432 = load i32, ptr @test_count, align 4, !tbaa !5
  %433 = add nsw i32 %432, 1
  store i32 %433, ptr @test_count, align 4, !tbaa !5
  %434 = call i32 (...) @s2n_disable_tls13_in_test()
  %435 = icmp eq i32 %434, -1
  br i1 %435, label %436, label %489

436:                                              ; preds = %431
  br label %437

437:                                              ; preds = %436
  br label %438

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

445:                                              ; preds = %438
  %446 = load ptr, ptr @stderr, align 8, !tbaa !9
  %447 = call i32 @fileno(ptr noundef %446) #11
  %448 = call i32 @isatty(i32 noundef %447) #11
  %449 = icmp ne i32 %448, 0
  br i1 %449, label %450, label %467

450:                                              ; preds = %445
  %451 = load i32, ptr %16, align 4, !tbaa !5
  %452 = call ptr @__errno_location() #12
  store i32 %451, ptr %452, align 4, !tbaa !5
  %453 = load ptr, ptr @stderr, align 8, !tbaa !9
  %454 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %456, ptr noundef @.str.3)
  %458 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %459 = load i32, ptr %458, align 4, !tbaa !5
  %460 = call ptr @s2n_strerror_debug(i32 noundef %459, ptr noundef @.str.3)
  %461 = call ptr @__errno_location() #12
  %462 = load i32, ptr %461, align 4, !tbaa !5
  %463 = call ptr @strerror(i32 noundef %462) #11
  %464 = call ptr @__errno_location() #12
  %465 = load i32, ptr %464, align 4, !tbaa !5
  %466 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %453, ptr noundef @.str, i32 noundef %454, ptr noundef @.str.10, ptr noundef @.str.2, i32 noundef 60, ptr noundef %457, ptr noundef %460, ptr noundef %463, i32 noundef %465) #11
  br label %484

467:                                              ; preds = %445, %438
  %468 = load i32, ptr %16, align 4, !tbaa !5
  %469 = call ptr @__errno_location() #12
  store i32 %468, ptr %469, align 4, !tbaa !5
  %470 = load ptr, ptr @stderr, align 8, !tbaa !9
  %471 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %473, ptr noundef @.str.3)
  %475 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %476 = load i32, ptr %475, align 4, !tbaa !5
  %477 = call ptr @s2n_strerror_debug(i32 noundef %476, ptr noundef @.str.3)
  %478 = call ptr @__errno_location() #12
  %479 = load i32, ptr %478, align 4, !tbaa !5
  %480 = call ptr @strerror(i32 noundef %479) #11
  %481 = call ptr @__errno_location() #12
  %482 = load i32, ptr %481, align 4, !tbaa !5
  %483 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %470, ptr noundef @.str.4, i32 noundef %471, ptr noundef @.str.10, ptr noundef @.str.2, i32 noundef 60, ptr noundef %474, ptr noundef %477, ptr noundef %480, i32 noundef %482) #11
  br label %484

484:                                              ; preds = %467, %450
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #11
  br label %485

485:                                              ; preds = %484
  br label %486

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

487:                                              ; No predecessors!
  br label %488

488:                                              ; preds = %487
  br label %489

489:                                              ; preds = %488, %431
  br label %490

490:                                              ; preds = %489
  br label %491

491:                                              ; preds = %490
  %492 = load ptr, ptr getelementptr inbounds (%struct.s2n_cipher, ptr @s2n_chacha20_poly1305, i32 0, i32 3), align 8, !tbaa !15
  %493 = call zeroext i1 %492()
  br i1 %493, label %649, label %494

494:                                              ; preds = %491
  br label %495

495:                                              ; preds = %494
  br label %496

496:                                              ; preds = %495
  %497 = call i32 @s2n_cleanup()
  %498 = icmp eq i32 %497, -1
  br i1 %498, label %499, label %552

499:                                              ; preds = %496
  br label %500

500:                                              ; preds = %499
  br label %501

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

508:                                              ; preds = %501
  %509 = load ptr, ptr @stderr, align 8, !tbaa !9
  %510 = call i32 @fileno(ptr noundef %509) #11
  %511 = call i32 @isatty(i32 noundef %510) #11
  %512 = icmp ne i32 %511, 0
  br i1 %512, label %513, label %530

513:                                              ; preds = %508
  %514 = load i32, ptr %17, align 4, !tbaa !5
  %515 = call ptr @__errno_location() #12
  store i32 %514, ptr %515, align 4, !tbaa !5
  %516 = load ptr, ptr @stderr, align 8, !tbaa !9
  %517 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %519, ptr noundef @.str.3)
  %521 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %522 = load i32, ptr %521, align 4, !tbaa !5
  %523 = call ptr @s2n_strerror_debug(i32 noundef %522, ptr noundef @.str.3)
  %524 = call ptr @__errno_location() #12
  %525 = load i32, ptr %524, align 4, !tbaa !5
  %526 = call ptr @strerror(i32 noundef %525) #11
  %527 = call ptr @__errno_location() #12
  %528 = load i32, ptr %527, align 4, !tbaa !5
  %529 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %516, ptr noundef @.str, i32 noundef %517, ptr noundef @.str.11, ptr noundef @.str.2, i32 noundef 64, ptr noundef %520, ptr noundef %523, ptr noundef %526, i32 noundef %528) #11
  br label %547

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

547:                                              ; preds = %530, %513
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #11
  br label %548

548:                                              ; preds = %547
  br label %549

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

550:                                              ; No predecessors!
  br label %551

551:                                              ; preds = %550
  br label %552

552:                                              ; preds = %551, %496
  br label %553

553:                                              ; preds = %552
  br label %554

554:                                              ; preds = %553
  br label %555

555:                                              ; preds = %554
  br label %556

556:                                              ; preds = %555
  %557 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %558 = icmp eq i32 %557, -1
  br i1 %558, label %559, label %612

559:                                              ; preds = %556
  br label %560

560:                                              ; preds = %559
  br label %561

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

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

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

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

607:                                              ; preds = %590, %573
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #11
  br label %608

608:                                              ; preds = %607
  br label %609

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

610:                                              ; No predecessors!
  br label %611

611:                                              ; preds = %610
  br label %612

612:                                              ; preds = %611, %556
  br label %613

613:                                              ; preds = %612
  br label %614

614:                                              ; preds = %613
  %615 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %616 = trunc i8 %615 to i1
  br i1 %616, label %617, label %633

617:                                              ; preds = %614
  %618 = load ptr, ptr @stdout, align 8, !tbaa !9
  %619 = call i32 @fileno(ptr noundef %618) #11
  %620 = call i32 @isatty(i32 noundef %619) #11
  %621 = icmp ne i32 %620, 0
  br i1 %621, label %622, label %633

622:                                              ; preds = %617
  %623 = load i32, ptr @test_count, align 4, !tbaa !5
  %624 = icmp ne i32 %623, 0
  br i1 %624, label %625, label %629

625:                                              ; preds = %622
  %626 = load ptr, ptr @stdout, align 8, !tbaa !9
  %627 = load i32, ptr @test_count, align 4, !tbaa !5
  %628 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %626, ptr noundef @.str.13, i32 noundef %627) #11
  br label %632

629:                                              ; preds = %622
  %630 = load ptr, ptr @stdout, align 8, !tbaa !9
  %631 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %630, ptr noundef @.str.14) #11
  br label %632

632:                                              ; preds = %629, %625
  br label %644

633:                                              ; preds = %617, %614
  %634 = load i32, ptr @test_count, align 4, !tbaa !5
  %635 = icmp ne i32 %634, 0
  br i1 %635, label %636, label %640

636:                                              ; preds = %633
  %637 = load ptr, ptr @stdout, align 8, !tbaa !9
  %638 = load i32, ptr @test_count, align 4, !tbaa !5
  %639 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %637, ptr noundef @.str.15, i32 noundef %638) #11
  br label %643

640:                                              ; preds = %633
  %641 = load ptr, ptr @stdout, align 8, !tbaa !9
  %642 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %641, ptr noundef @.str.16) #11
  br label %643

643:                                              ; preds = %640, %636
  br label %644

644:                                              ; preds = %643, %632
  store i32 0, ptr %3, align 4
  store i32 1, ptr %19, align 4
  br label %6038

645:                                              ; No predecessors!
  br label %646

646:                                              ; preds = %645
  br label %647

647:                                              ; preds = %646
  br label %648

648:                                              ; preds = %647
  br label %649

649:                                              ; preds = %648, %491
  br label %650

650:                                              ; preds = %649
  %651 = load i32, ptr @test_count, align 4, !tbaa !5
  %652 = add nsw i32 %651, 1
  store i32 %652, ptr @test_count, align 4, !tbaa !5
  %653 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %653, ptr %6, align 8, !tbaa !9
  %654 = icmp eq ptr %653, null
  br i1 %654, label %655, label %708

655:                                              ; preds = %650
  br label %656

656:                                              ; preds = %655
  br label %657

657:                                              ; preds = %656
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #11
  %658 = call ptr @__errno_location() #12
  %659 = load i32, ptr %658, align 4, !tbaa !5
  store i32 %659, ptr %20, align 4, !tbaa !5
  %660 = load ptr, ptr @stderr, align 8, !tbaa !9
  %661 = call i32 @s2n_print_stacktrace(ptr noundef %660)
  %662 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %663 = trunc i8 %662 to i1
  br i1 %663, label %664, label %686

664:                                              ; preds = %657
  %665 = load ptr, ptr @stderr, align 8, !tbaa !9
  %666 = call i32 @fileno(ptr noundef %665) #11
  %667 = call i32 @isatty(i32 noundef %666) #11
  %668 = icmp ne i32 %667, 0
  br i1 %668, label %669, label %686

669:                                              ; preds = %664
  %670 = load i32, ptr %20, align 4, !tbaa !5
  %671 = call ptr @__errno_location() #12
  store i32 %670, ptr %671, align 4, !tbaa !5
  %672 = load ptr, ptr @stderr, align 8, !tbaa !9
  %673 = load i32, ptr @test_count, align 4, !tbaa !5
  %674 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %675 = load i32, ptr %674, align 4, !tbaa !5
  %676 = call ptr @s2n_strerror(i32 noundef %675, ptr noundef @.str.3)
  %677 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %678 = load i32, ptr %677, align 4, !tbaa !5
  %679 = call ptr @s2n_strerror_debug(i32 noundef %678, ptr noundef @.str.3)
  %680 = call ptr @__errno_location() #12
  %681 = load i32, ptr %680, align 4, !tbaa !5
  %682 = call ptr @strerror(i32 noundef %681) #11
  %683 = call ptr @__errno_location() #12
  %684 = load i32, ptr %683, align 4, !tbaa !5
  %685 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %672, ptr noundef @.str, i32 noundef %673, ptr noundef @.str.17, ptr noundef @.str.2, i32 noundef 67, ptr noundef %676, ptr noundef %679, ptr noundef %682, i32 noundef %684) #11
  br label %703

686:                                              ; preds = %664, %657
  %687 = load i32, ptr %20, align 4, !tbaa !5
  %688 = call ptr @__errno_location() #12
  store i32 %687, ptr %688, align 4, !tbaa !5
  %689 = load ptr, ptr @stderr, align 8, !tbaa !9
  %690 = load i32, ptr @test_count, align 4, !tbaa !5
  %691 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %692 = load i32, ptr %691, align 4, !tbaa !5
  %693 = call ptr @s2n_strerror(i32 noundef %692, ptr noundef @.str.3)
  %694 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %695 = load i32, ptr %694, align 4, !tbaa !5
  %696 = call ptr @s2n_strerror_debug(i32 noundef %695, ptr noundef @.str.3)
  %697 = call ptr @__errno_location() #12
  %698 = load i32, ptr %697, align 4, !tbaa !5
  %699 = call ptr @strerror(i32 noundef %698) #11
  %700 = call ptr @__errno_location() #12
  %701 = load i32, ptr %700, align 4, !tbaa !5
  %702 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %689, ptr noundef @.str.4, i32 noundef %690, ptr noundef @.str.17, ptr noundef @.str.2, i32 noundef 67, ptr noundef %693, ptr noundef %696, ptr noundef %699, i32 noundef %701) #11
  br label %703

703:                                              ; preds = %686, %669
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #11
  br label %704

704:                                              ; preds = %703
  br label %705

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

706:                                              ; No predecessors!
  br label %707

707:                                              ; preds = %706
  br label %708

708:                                              ; preds = %707, %650
  br label %709

709:                                              ; preds = %708
  br label %710

710:                                              ; preds = %709
  br label %711

711:                                              ; preds = %710
  %712 = load i32, ptr @test_count, align 4, !tbaa !5
  %713 = add nsw i32 %712, 1
  store i32 %713, ptr @test_count, align 4, !tbaa !5
  %714 = call i32 @s2n_get_public_random_data(ptr noundef %11)
  %715 = getelementptr inbounds %struct.s2n_result, ptr %21, i32 0, i32 0
  store i32 %714, ptr %715, align 4
  %716 = getelementptr inbounds %struct.s2n_result, ptr %21, i32 0, i32 0
  %717 = load i32, ptr %716, align 4
  %718 = call zeroext i1 @s2n_result_is_ok(i32 %717)
  br i1 %718, label %772, label %719

719:                                              ; preds = %711
  br label %720

720:                                              ; preds = %719
  br label %721

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

728:                                              ; preds = %721
  %729 = load ptr, ptr @stderr, align 8, !tbaa !9
  %730 = call i32 @fileno(ptr noundef %729) #11
  %731 = call i32 @isatty(i32 noundef %730) #11
  %732 = icmp ne i32 %731, 0
  br i1 %732, label %733, label %750

733:                                              ; preds = %728
  %734 = load i32, ptr %22, align 4, !tbaa !5
  %735 = call ptr @__errno_location() #12
  store i32 %734, ptr %735, align 4, !tbaa !5
  %736 = load ptr, ptr @stderr, align 8, !tbaa !9
  %737 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %739, ptr noundef @.str.3)
  %741 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %742 = load i32, ptr %741, align 4, !tbaa !5
  %743 = call ptr @s2n_strerror_debug(i32 noundef %742, ptr noundef @.str.3)
  %744 = call ptr @__errno_location() #12
  %745 = load i32, ptr %744, align 4, !tbaa !5
  %746 = call ptr @strerror(i32 noundef %745) #11
  %747 = call ptr @__errno_location() #12
  %748 = load i32, ptr %747, align 4, !tbaa !5
  %749 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %736, ptr noundef @.str, i32 noundef %737, ptr noundef @.str.18, ptr noundef @.str.2, i32 noundef 68, ptr noundef %740, ptr noundef %743, ptr noundef %746, i32 noundef %748) #11
  br label %767

750:                                              ; preds = %728, %721
  %751 = load i32, ptr %22, align 4, !tbaa !5
  %752 = call ptr @__errno_location() #12
  store i32 %751, ptr %752, align 4, !tbaa !5
  %753 = load ptr, ptr @stderr, align 8, !tbaa !9
  %754 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %756, ptr noundef @.str.3)
  %758 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %759 = load i32, ptr %758, align 4, !tbaa !5
  %760 = call ptr @s2n_strerror_debug(i32 noundef %759, ptr noundef @.str.3)
  %761 = call ptr @__errno_location() #12
  %762 = load i32, ptr %761, align 4, !tbaa !5
  %763 = call ptr @strerror(i32 noundef %762) #11
  %764 = call ptr @__errno_location() #12
  %765 = load i32, ptr %764, align 4, !tbaa !5
  %766 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %753, ptr noundef @.str.4, i32 noundef %754, ptr noundef @.str.18, ptr noundef @.str.2, i32 noundef 68, ptr noundef %757, ptr noundef %760, ptr noundef %763, i32 noundef %765) #11
  br label %767

767:                                              ; preds = %750, %733
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #11
  br label %768

768:                                              ; preds = %767
  br label %769

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

770:                                              ; No predecessors!
  br label %771

771:                                              ; preds = %770
  br label %772

772:                                              ; preds = %771, %711
  br label %773

773:                                              ; preds = %772
  br label %774

774:                                              ; preds = %773
  %775 = load ptr, ptr %6, align 8, !tbaa !9
  %776 = getelementptr inbounds %struct.s2n_connection, ptr %775, i32 0, i32 26
  %777 = load ptr, ptr %776, align 8, !tbaa !17
  %778 = load ptr, ptr %6, align 8, !tbaa !9
  %779 = getelementptr inbounds %struct.s2n_connection, ptr %778, i32 0, i32 30
  store ptr %777, ptr %779, align 8, !tbaa !44
  %780 = load ptr, ptr %6, align 8, !tbaa !9
  %781 = getelementptr inbounds %struct.s2n_connection, ptr %780, i32 0, i32 26
  %782 = load ptr, ptr %781, align 8, !tbaa !17
  %783 = load ptr, ptr %6, align 8, !tbaa !9
  %784 = getelementptr inbounds %struct.s2n_connection, ptr %783, i32 0, i32 29
  store ptr %782, ptr %784, align 8, !tbaa !45
  %785 = load ptr, ptr %6, align 8, !tbaa !9
  %786 = getelementptr inbounds %struct.s2n_connection, ptr %785, i32 0, i32 26
  %787 = load ptr, ptr %786, align 8, !tbaa !17
  %788 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %787, i32 0, i32 0
  %789 = load ptr, ptr %788, align 8, !tbaa !46
  %790 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %789, i32 0, i32 6
  store ptr @s2n_record_alg_chacha20_poly1305, ptr %790, align 8, !tbaa !51
  br label %791

791:                                              ; preds = %774
  %792 = load ptr, ptr %6, align 8, !tbaa !9
  %793 = call i32 @setup_server_keys(ptr noundef %792, ptr noundef %9)
  %794 = icmp sgt i32 %793, -1
  br i1 %794, label %796, label %795

795:                                              ; preds = %791
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %19, align 4
  br label %6038

796:                                              ; preds = %791
  br label %797

797:                                              ; preds = %796
  br label %798

798:                                              ; preds = %797
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #11
  store i32 1435, ptr %23, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #11
  store i64 0, ptr %24, align 8, !tbaa !53
  br label %799

799:                                              ; preds = %5753, %798
  %800 = load i64, ptr %24, align 8, !tbaa !53
  %801 = load i32, ptr %23, align 4, !tbaa !5
  %802 = add nsw i32 %801, 1
  %803 = sext i32 %802 to i64
  %804 = icmp ule i64 %800, %803
  br i1 %804, label %806, label %805

805:                                              ; preds = %799
  store i32 72, ptr %19, align 4
  br label %5756

806:                                              ; preds = %799
  call void @llvm.lifetime.start.p0(i64 24, ptr %25) #11
  call void @llvm.memset.p0.i64(ptr align 8 %25, i8 0, i64 24, i1 false)
  br label %807

807:                                              ; preds = %806
  %808 = load i32, ptr @test_count, align 4, !tbaa !5
  %809 = add nsw i32 %808, 1
  store i32 %809, ptr @test_count, align 4, !tbaa !5
  %810 = getelementptr inbounds [1436 x i8], ptr %7, i64 0, i64 0
  %811 = load i64, ptr %24, align 8, !tbaa !53
  %812 = trunc i64 %811 to i32
  %813 = call i32 @s2n_blob_init(ptr noundef %25, ptr noundef %810, i32 noundef %812)
  %814 = icmp eq i32 %813, -1
  br i1 %814, label %815, label %868

815:                                              ; preds = %807
  br label %816

816:                                              ; preds = %815
  br label %817

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

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

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

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

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

864:                                              ; preds = %863
  br label %865

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

866:                                              ; No predecessors!
  br label %867

867:                                              ; preds = %866
  br label %868

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

869:                                              ; preds = %868
  br label %870

870:                                              ; preds = %869
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #11
  store i32 0, ptr %27, align 4, !tbaa !5
  br label %871

871:                                              ; preds = %870
  %872 = load i32, ptr @test_count, align 4, !tbaa !5
  %873 = add nsw i32 %872, 1
  store i32 %873, ptr @test_count, align 4, !tbaa !5
  %874 = load ptr, ptr %6, align 8, !tbaa !9
  %875 = call i32 @s2n_connection_wipe(ptr noundef %874)
  %876 = icmp eq i32 %875, -1
  br i1 %876, label %877, label %930

877:                                              ; preds = %871
  br label %878

878:                                              ; preds = %877
  br label %879

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

886:                                              ; preds = %879
  %887 = load ptr, ptr @stderr, align 8, !tbaa !9
  %888 = call i32 @fileno(ptr noundef %887) #11
  %889 = call i32 @isatty(i32 noundef %888) #11
  %890 = icmp ne i32 %889, 0
  br i1 %890, label %891, label %908

891:                                              ; preds = %886
  %892 = load i32, ptr %28, align 4, !tbaa !5
  %893 = call ptr @__errno_location() #12
  store i32 %892, ptr %893, align 4, !tbaa !5
  %894 = load ptr, ptr @stderr, align 8, !tbaa !9
  %895 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %897, ptr noundef @.str.3)
  %899 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %900 = load i32, ptr %899, align 4, !tbaa !5
  %901 = call ptr @s2n_strerror_debug(i32 noundef %900, ptr noundef @.str.3)
  %902 = call ptr @__errno_location() #12
  %903 = load i32, ptr %902, align 4, !tbaa !5
  %904 = call ptr @strerror(i32 noundef %903) #11
  %905 = call ptr @__errno_location() #12
  %906 = load i32, ptr %905, align 4, !tbaa !5
  %907 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %894, ptr noundef @.str, i32 noundef %895, ptr noundef @.str.20, ptr noundef @.str.2, i32 noundef 94, ptr noundef %898, ptr noundef %901, ptr noundef %904, i32 noundef %906) #11
  br label %925

908:                                              ; preds = %886, %879
  %909 = load i32, ptr %28, align 4, !tbaa !5
  %910 = call ptr @__errno_location() #12
  store i32 %909, ptr %910, align 4, !tbaa !5
  %911 = load ptr, ptr @stderr, align 8, !tbaa !9
  %912 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %914, ptr noundef @.str.3)
  %916 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %917 = load i32, ptr %916, align 4, !tbaa !5
  %918 = call ptr @s2n_strerror_debug(i32 noundef %917, ptr noundef @.str.3)
  %919 = call ptr @__errno_location() #12
  %920 = load i32, ptr %919, align 4, !tbaa !5
  %921 = call ptr @strerror(i32 noundef %920) #11
  %922 = call ptr @__errno_location() #12
  %923 = load i32, ptr %922, align 4, !tbaa !5
  %924 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %911, ptr noundef @.str.4, i32 noundef %912, ptr noundef @.str.20, ptr noundef @.str.2, i32 noundef 94, ptr noundef %915, ptr noundef %918, ptr noundef %921, i32 noundef %923) #11
  br label %925

925:                                              ; preds = %908, %891
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #11
  br label %926

926:                                              ; preds = %925
  br label %927

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

928:                                              ; No predecessors!
  br label %929

929:                                              ; preds = %928
  br label %930

930:                                              ; preds = %929, %871
  br label %931

931:                                              ; preds = %930
  br label %932

932:                                              ; preds = %931
  br label %933

933:                                              ; preds = %932
  %934 = load i32, ptr @test_count, align 4, !tbaa !5
  %935 = add nsw i32 %934, 1
  store i32 %935, ptr @test_count, align 4, !tbaa !5
  %936 = load ptr, ptr %6, align 8, !tbaa !9
  %937 = call i32 @s2n_connection_prefer_low_latency(ptr noundef %936)
  %938 = icmp eq i32 %937, -1
  br i1 %938, label %939, label %992

939:                                              ; preds = %933
  br label %940

940:                                              ; preds = %939
  br label %941

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

948:                                              ; preds = %941
  %949 = load ptr, ptr @stderr, align 8, !tbaa !9
  %950 = call i32 @fileno(ptr noundef %949) #11
  %951 = call i32 @isatty(i32 noundef %950) #11
  %952 = icmp ne i32 %951, 0
  br i1 %952, label %953, label %970

953:                                              ; preds = %948
  %954 = load i32, ptr %29, align 4, !tbaa !5
  %955 = call ptr @__errno_location() #12
  store i32 %954, ptr %955, align 4, !tbaa !5
  %956 = load ptr, ptr @stderr, align 8, !tbaa !9
  %957 = load i32, ptr @test_count, align 4, !tbaa !5
  %958 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %959 = load i32, ptr %958, align 4, !tbaa !5
  %960 = call ptr @s2n_strerror(i32 noundef %959, ptr noundef @.str.3)
  %961 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %962 = load i32, ptr %961, align 4, !tbaa !5
  %963 = call ptr @s2n_strerror_debug(i32 noundef %962, ptr noundef @.str.3)
  %964 = call ptr @__errno_location() #12
  %965 = load i32, ptr %964, align 4, !tbaa !5
  %966 = call ptr @strerror(i32 noundef %965) #11
  %967 = call ptr @__errno_location() #12
  %968 = load i32, ptr %967, align 4, !tbaa !5
  %969 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %956, ptr noundef @.str, i32 noundef %957, ptr noundef @.str.21, ptr noundef @.str.2, i32 noundef 95, ptr noundef %960, ptr noundef %963, ptr noundef %966, i32 noundef %968) #11
  br label %987

970:                                              ; preds = %948, %941
  %971 = load i32, ptr %29, align 4, !tbaa !5
  %972 = call ptr @__errno_location() #12
  store i32 %971, ptr %972, align 4, !tbaa !5
  %973 = load ptr, ptr @stderr, align 8, !tbaa !9
  %974 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %976, ptr noundef @.str.3)
  %978 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %979 = load i32, ptr %978, align 4, !tbaa !5
  %980 = call ptr @s2n_strerror_debug(i32 noundef %979, ptr noundef @.str.3)
  %981 = call ptr @__errno_location() #12
  %982 = load i32, ptr %981, align 4, !tbaa !5
  %983 = call ptr @strerror(i32 noundef %982) #11
  %984 = call ptr @__errno_location() #12
  %985 = load i32, ptr %984, align 4, !tbaa !5
  %986 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %973, ptr noundef @.str.4, i32 noundef %974, ptr noundef @.str.21, ptr noundef @.str.2, i32 noundef 95, ptr noundef %977, ptr noundef %980, ptr noundef %983, i32 noundef %985) #11
  br label %987

987:                                              ; preds = %970, %953
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #11
  br label %988

988:                                              ; preds = %987
  br label %989

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

990:                                              ; No predecessors!
  br label %991

991:                                              ; preds = %990
  br label %992

992:                                              ; preds = %991, %933
  br label %993

993:                                              ; preds = %992
  br label %994

994:                                              ; preds = %993
  %995 = load ptr, ptr %6, align 8, !tbaa !9
  %996 = getelementptr inbounds %struct.s2n_connection, ptr %995, i32 0, i32 25
  store i8 1, ptr %996, align 2, !tbaa !54
  %997 = load ptr, ptr %6, align 8, !tbaa !9
  %998 = getelementptr inbounds %struct.s2n_connection, ptr %997, i32 0, i32 22
  store i8 33, ptr %998, align 1, !tbaa !55
  %999 = load ptr, ptr %6, align 8, !tbaa !9
  %1000 = getelementptr inbounds %struct.s2n_connection, ptr %999, i32 0, i32 21
  store i8 33, ptr %1000, align 2, !tbaa !56
  %1001 = load ptr, ptr %6, align 8, !tbaa !9
  %1002 = getelementptr inbounds %struct.s2n_connection, ptr %1001, i32 0, i32 23
  store i8 33, ptr %1002, align 4, !tbaa !57
  br label %1003

1003:                                             ; preds = %994
  %1004 = load i32, ptr @test_count, align 4, !tbaa !5
  %1005 = add nsw i32 %1004, 1
  store i32 %1005, ptr @test_count, align 4, !tbaa !5
  %1006 = load ptr, ptr %6, align 8, !tbaa !9
  %1007 = call i32 @destroy_server_keys(ptr noundef %1006)
  %1008 = icmp eq i32 %1007, -1
  br i1 %1008, label %1009, label %1062

1009:                                             ; preds = %1003
  br label %1010

1010:                                             ; preds = %1009
  br label %1011

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

1018:                                             ; preds = %1011
  %1019 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1020 = call i32 @fileno(ptr noundef %1019) #11
  %1021 = call i32 @isatty(i32 noundef %1020) #11
  %1022 = icmp ne i32 %1021, 0
  br i1 %1022, label %1023, label %1040

1023:                                             ; preds = %1018
  %1024 = load i32, ptr %30, align 4, !tbaa !5
  %1025 = call ptr @__errno_location() #12
  store i32 %1024, ptr %1025, align 4, !tbaa !5
  %1026 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1027 = load i32, ptr @test_count, align 4, !tbaa !5
  %1028 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1029 = load i32, ptr %1028, align 4, !tbaa !5
  %1030 = call ptr @s2n_strerror(i32 noundef %1029, ptr noundef @.str.3)
  %1031 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1032 = load i32, ptr %1031, align 4, !tbaa !5
  %1033 = call ptr @s2n_strerror_debug(i32 noundef %1032, ptr noundef @.str.3)
  %1034 = call ptr @__errno_location() #12
  %1035 = load i32, ptr %1034, align 4, !tbaa !5
  %1036 = call ptr @strerror(i32 noundef %1035) #11
  %1037 = call ptr @__errno_location() #12
  %1038 = load i32, ptr %1037, align 4, !tbaa !5
  %1039 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1026, ptr noundef @.str, i32 noundef %1027, ptr noundef @.str.22, ptr noundef @.str.2, i32 noundef 100, ptr noundef %1030, ptr noundef %1033, ptr noundef %1036, i32 noundef %1038) #11
  br label %1057

1040:                                             ; preds = %1018, %1011
  %1041 = load i32, ptr %30, align 4, !tbaa !5
  %1042 = call ptr @__errno_location() #12
  store i32 %1041, ptr %1042, align 4, !tbaa !5
  %1043 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1044 = load i32, ptr @test_count, align 4, !tbaa !5
  %1045 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1046 = load i32, ptr %1045, align 4, !tbaa !5
  %1047 = call ptr @s2n_strerror(i32 noundef %1046, ptr noundef @.str.3)
  %1048 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1049 = load i32, ptr %1048, align 4, !tbaa !5
  %1050 = call ptr @s2n_strerror_debug(i32 noundef %1049, ptr noundef @.str.3)
  %1051 = call ptr @__errno_location() #12
  %1052 = load i32, ptr %1051, align 4, !tbaa !5
  %1053 = call ptr @strerror(i32 noundef %1052) #11
  %1054 = call ptr @__errno_location() #12
  %1055 = load i32, ptr %1054, align 4, !tbaa !5
  %1056 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1043, ptr noundef @.str.4, i32 noundef %1044, ptr noundef @.str.22, ptr noundef @.str.2, i32 noundef 100, ptr noundef %1047, ptr noundef %1050, ptr noundef %1053, i32 noundef %1055) #11
  br label %1057

1057:                                             ; preds = %1040, %1023
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #11
  br label %1058

1058:                                             ; preds = %1057
  br label %1059

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

1060:                                             ; No predecessors!
  br label %1061

1061:                                             ; preds = %1060
  br label %1062

1062:                                             ; preds = %1061, %1003
  br label %1063

1063:                                             ; preds = %1062
  br label %1064

1064:                                             ; preds = %1063
  br label %1065

1065:                                             ; preds = %1064
  %1066 = load i32, ptr @test_count, align 4, !tbaa !5
  %1067 = add nsw i32 %1066, 1
  store i32 %1067, ptr @test_count, align 4, !tbaa !5
  %1068 = load ptr, ptr %6, align 8, !tbaa !9
  %1069 = call i32 @setup_server_keys(ptr noundef %1068, ptr noundef %9)
  %1070 = icmp eq i32 %1069, -1
  br i1 %1070, label %1071, label %1124

1071:                                             ; preds = %1065
  br label %1072

1072:                                             ; preds = %1071
  br label %1073

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

1080:                                             ; preds = %1073
  %1081 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1082 = call i32 @fileno(ptr noundef %1081) #11
  %1083 = call i32 @isatty(i32 noundef %1082) #11
  %1084 = icmp ne i32 %1083, 0
  br i1 %1084, label %1085, label %1102

1085:                                             ; preds = %1080
  %1086 = load i32, ptr %31, align 4, !tbaa !5
  %1087 = call ptr @__errno_location() #12
  store i32 %1086, ptr %1087, align 4, !tbaa !5
  %1088 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1089 = load i32, ptr @test_count, align 4, !tbaa !5
  %1090 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1091 = load i32, ptr %1090, align 4, !tbaa !5
  %1092 = call ptr @s2n_strerror(i32 noundef %1091, ptr noundef @.str.3)
  %1093 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1094 = load i32, ptr %1093, align 4, !tbaa !5
  %1095 = call ptr @s2n_strerror_debug(i32 noundef %1094, ptr noundef @.str.3)
  %1096 = call ptr @__errno_location() #12
  %1097 = load i32, ptr %1096, align 4, !tbaa !5
  %1098 = call ptr @strerror(i32 noundef %1097) #11
  %1099 = call ptr @__errno_location() #12
  %1100 = load i32, ptr %1099, align 4, !tbaa !5
  %1101 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1088, ptr noundef @.str, i32 noundef %1089, ptr noundef @.str.23, ptr noundef @.str.2, i32 noundef 101, ptr noundef %1092, ptr noundef %1095, ptr noundef %1098, i32 noundef %1100) #11
  br label %1119

1102:                                             ; preds = %1080, %1073
  %1103 = load i32, ptr %31, align 4, !tbaa !5
  %1104 = call ptr @__errno_location() #12
  store i32 %1103, ptr %1104, align 4, !tbaa !5
  %1105 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1106 = load i32, ptr @test_count, align 4, !tbaa !5
  %1107 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1108 = load i32, ptr %1107, align 4, !tbaa !5
  %1109 = call ptr @s2n_strerror(i32 noundef %1108, ptr noundef @.str.3)
  %1110 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1111 = load i32, ptr %1110, align 4, !tbaa !5
  %1112 = call ptr @s2n_strerror_debug(i32 noundef %1111, ptr noundef @.str.3)
  %1113 = call ptr @__errno_location() #12
  %1114 = load i32, ptr %1113, align 4, !tbaa !5
  %1115 = call ptr @strerror(i32 noundef %1114) #11
  %1116 = call ptr @__errno_location() #12
  %1117 = load i32, ptr %1116, align 4, !tbaa !5
  %1118 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1105, ptr noundef @.str.4, i32 noundef %1106, ptr noundef @.str.23, ptr noundef @.str.2, i32 noundef 101, ptr noundef %1109, ptr noundef %1112, ptr noundef %1115, i32 noundef %1117) #11
  br label %1119

1119:                                             ; preds = %1102, %1085
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #11
  br label %1120

1120:                                             ; preds = %1119
  br label %1121

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

1122:                                             ; No predecessors!
  br label %1123

1123:                                             ; preds = %1122
  br label %1124

1124:                                             ; preds = %1123, %1065
  br label %1125

1125:                                             ; preds = %1124
  br label %1126

1126:                                             ; preds = %1125
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #11
  %1127 = load ptr, ptr %6, align 8, !tbaa !9
  %1128 = call i32 @s2n_record_write(ptr noundef %1127, i8 noundef zeroext 23, ptr noundef %25)
  %1129 = getelementptr inbounds %struct.s2n_result, ptr %32, i32 0, i32 0
  store i32 %1128, ptr %1129, align 4
  %1130 = load i64, ptr %24, align 8, !tbaa !53
  %1131 = load i32, ptr %23, align 4, !tbaa !5
  %1132 = sext i32 %1131 to i64
  %1133 = icmp ule i64 %1130, %1132
  br i1 %1133, label %1134, label %1199

1134:                                             ; preds = %1126
  br label %1135

1135:                                             ; preds = %1134
  %1136 = load i32, ptr @test_count, align 4, !tbaa !5
  %1137 = add nsw i32 %1136, 1
  store i32 %1137, ptr @test_count, align 4, !tbaa !5
  %1138 = getelementptr inbounds %struct.s2n_result, ptr %32, i32 0, i32 0
  %1139 = load i32, ptr %1138, align 4
  %1140 = call zeroext i1 @s2n_result_is_ok(i32 %1139)
  br i1 %1140, label %1194, label %1141

1141:                                             ; preds = %1135
  br label %1142

1142:                                             ; preds = %1141
  br label %1143

1143:                                             ; preds = %1142
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #11
  %1144 = call ptr @__errno_location() #12
  %1145 = load i32, ptr %1144, align 4, !tbaa !5
  store i32 %1145, ptr %33, align 4, !tbaa !5
  %1146 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1147 = call i32 @s2n_print_stacktrace(ptr noundef %1146)
  %1148 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1149 = trunc i8 %1148 to i1
  br i1 %1149, label %1150, label %1172

1150:                                             ; preds = %1143
  %1151 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1152 = call i32 @fileno(ptr noundef %1151) #11
  %1153 = call i32 @isatty(i32 noundef %1152) #11
  %1154 = icmp ne i32 %1153, 0
  br i1 %1154, label %1155, label %1172

1155:                                             ; preds = %1150
  %1156 = load i32, ptr %33, align 4, !tbaa !5
  %1157 = call ptr @__errno_location() #12
  store i32 %1156, ptr %1157, align 4, !tbaa !5
  %1158 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1159 = load i32, ptr @test_count, align 4, !tbaa !5
  %1160 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1161 = load i32, ptr %1160, align 4, !tbaa !5
  %1162 = call ptr @s2n_strerror(i32 noundef %1161, ptr noundef @.str.3)
  %1163 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1164 = load i32, ptr %1163, align 4, !tbaa !5
  %1165 = call ptr @s2n_strerror_debug(i32 noundef %1164, ptr noundef @.str.3)
  %1166 = call ptr @__errno_location() #12
  %1167 = load i32, ptr %1166, align 4, !tbaa !5
  %1168 = call ptr @strerror(i32 noundef %1167) #11
  %1169 = call ptr @__errno_location() #12
  %1170 = load i32, ptr %1169, align 4, !tbaa !5
  %1171 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1158, ptr noundef @.str, i32 noundef %1159, ptr noundef @.str.24, ptr noundef @.str.2, i32 noundef 105, ptr noundef %1162, ptr noundef %1165, ptr noundef %1168, i32 noundef %1170) #11
  br label %1189

1172:                                             ; preds = %1150, %1143
  %1173 = load i32, ptr %33, align 4, !tbaa !5
  %1174 = call ptr @__errno_location() #12
  store i32 %1173, ptr %1174, align 4, !tbaa !5
  %1175 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1176 = load i32, ptr @test_count, align 4, !tbaa !5
  %1177 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1178 = load i32, ptr %1177, align 4, !tbaa !5
  %1179 = call ptr @s2n_strerror(i32 noundef %1178, ptr noundef @.str.3)
  %1180 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1181 = load i32, ptr %1180, align 4, !tbaa !5
  %1182 = call ptr @s2n_strerror_debug(i32 noundef %1181, ptr noundef @.str.3)
  %1183 = call ptr @__errno_location() #12
  %1184 = load i32, ptr %1183, align 4, !tbaa !5
  %1185 = call ptr @strerror(i32 noundef %1184) #11
  %1186 = call ptr @__errno_location() #12
  %1187 = load i32, ptr %1186, align 4, !tbaa !5
  %1188 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1175, ptr noundef @.str.4, i32 noundef %1176, ptr noundef @.str.24, ptr noundef @.str.2, i32 noundef 105, ptr noundef %1179, ptr noundef %1182, ptr noundef %1185, i32 noundef %1187) #11
  br label %1189

1189:                                             ; preds = %1172, %1155
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #11
  br label %1190

1190:                                             ; preds = %1189
  br label %1191

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

1192:                                             ; No predecessors!
  br label %1193

1193:                                             ; preds = %1192
  br label %1194

1194:                                             ; preds = %1193, %1135
  br label %1195

1195:                                             ; preds = %1194
  br label %1196

1196:                                             ; preds = %1195
  %1197 = load i64, ptr %24, align 8, !tbaa !53
  %1198 = trunc i64 %1197 to i32
  store i32 %1198, ptr %27, align 4, !tbaa !5
  br label %1399

1199:                                             ; preds = %1126
  br label %1200

1200:                                             ; preds = %1199
  br label %1201

1201:                                             ; preds = %1200
  br label %1202

1202:                                             ; preds = %1201
  %1203 = load i32, ptr @test_count, align 4, !tbaa !5
  %1204 = add nsw i32 %1203, 1
  store i32 %1204, ptr @test_count, align 4, !tbaa !5
  %1205 = getelementptr inbounds %struct.s2n_result, ptr %32, i32 0, i32 0
  %1206 = load i32, ptr %1205, align 4
  %1207 = call zeroext i1 @s2n_result_is_error(i32 %1206)
  br i1 %1207, label %1261, label %1208

1208:                                             ; preds = %1202
  br label %1209

1209:                                             ; preds = %1208
  br label %1210

1210:                                             ; preds = %1209
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #11
  %1211 = call ptr @__errno_location() #12
  %1212 = load i32, ptr %1211, align 4, !tbaa !5
  store i32 %1212, ptr %34, align 4, !tbaa !5
  %1213 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1214 = call i32 @s2n_print_stacktrace(ptr noundef %1213)
  %1215 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1216 = trunc i8 %1215 to i1
  br i1 %1216, label %1217, label %1239

1217:                                             ; preds = %1210
  %1218 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1219 = call i32 @fileno(ptr noundef %1218) #11
  %1220 = call i32 @isatty(i32 noundef %1219) #11
  %1221 = icmp ne i32 %1220, 0
  br i1 %1221, label %1222, label %1239

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

1239:                                             ; preds = %1217, %1210
  %1240 = load i32, ptr %34, align 4, !tbaa !5
  %1241 = call ptr @__errno_location() #12
  store i32 %1240, ptr %1241, align 4, !tbaa !5
  %1242 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1243 = load i32, ptr @test_count, align 4, !tbaa !5
  %1244 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1245 = load i32, ptr %1244, align 4, !tbaa !5
  %1246 = call ptr @s2n_strerror(i32 noundef %1245, ptr noundef @.str.3)
  %1247 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1248 = load i32, ptr %1247, align 4, !tbaa !5
  %1249 = call ptr @s2n_strerror_debug(i32 noundef %1248, ptr noundef @.str.3)
  %1250 = call ptr @__errno_location() #12
  %1251 = load i32, ptr %1250, align 4, !tbaa !5
  %1252 = call ptr @strerror(i32 noundef %1251) #11
  %1253 = call ptr @__errno_location() #12
  %1254 = load i32, ptr %1253, align 4, !tbaa !5
  %1255 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1242, ptr noundef @.str.4, i32 noundef %1243, ptr noundef @.str.25, ptr noundef @.str.2, i32 noundef 108, ptr noundef %1246, ptr noundef %1249, ptr noundef %1252, i32 noundef %1254) #11
  br label %1256

1256:                                             ; preds = %1239, %1222
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #11
  br label %1257

1257:                                             ; preds = %1256
  br label %1258

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

1259:                                             ; No predecessors!
  br label %1260

1260:                                             ; preds = %1259
  br label %1261

1261:                                             ; preds = %1260, %1202
  br label %1262

1262:                                             ; preds = %1261
  br label %1263

1263:                                             ; preds = %1262
  br label %1264

1264:                                             ; preds = %1263
  %1265 = load i32, ptr @test_count, align 4, !tbaa !5
  %1266 = add nsw i32 %1265, 1
  store i32 %1266, ptr @test_count, align 4, !tbaa !5
  %1267 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1268 = load i32, ptr %1267, align 4, !tbaa !5
  %1269 = icmp eq i32 %1268, 335544390
  br i1 %1269, label %1323, label %1270

1270:                                             ; preds = %1264
  br label %1271

1271:                                             ; preds = %1270
  br label %1272

1272:                                             ; preds = %1271
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #11
  %1273 = call ptr @__errno_location() #12
  %1274 = load i32, ptr %1273, align 4, !tbaa !5
  store i32 %1274, ptr %35, align 4, !tbaa !5
  %1275 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1276 = call i32 @s2n_print_stacktrace(ptr noundef %1275)
  %1277 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1278 = trunc i8 %1277 to i1
  br i1 %1278, label %1279, label %1301

1279:                                             ; preds = %1272
  %1280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1281 = call i32 @fileno(ptr noundef %1280) #11
  %1282 = call i32 @isatty(i32 noundef %1281) #11
  %1283 = icmp ne i32 %1282, 0
  br i1 %1283, label %1284, label %1301

1284:                                             ; preds = %1279
  %1285 = load i32, ptr %35, align 4, !tbaa !5
  %1286 = call ptr @__errno_location() #12
  store i32 %1285, ptr %1286, align 4, !tbaa !5
  %1287 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1288 = load i32, ptr @test_count, align 4, !tbaa !5
  %1289 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1290 = load i32, ptr %1289, align 4, !tbaa !5
  %1291 = call ptr @s2n_strerror(i32 noundef %1290, ptr noundef @.str.3)
  %1292 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1293 = load i32, ptr %1292, align 4, !tbaa !5
  %1294 = call ptr @s2n_strerror_debug(i32 noundef %1293, ptr noundef @.str.3)
  %1295 = call ptr @__errno_location() #12
  %1296 = load i32, ptr %1295, align 4, !tbaa !5
  %1297 = call ptr @strerror(i32 noundef %1296) #11
  %1298 = call ptr @__errno_location() #12
  %1299 = load i32, ptr %1298, align 4, !tbaa !5
  %1300 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1287, ptr noundef @.str, i32 noundef %1288, ptr noundef @.str.26, ptr noundef @.str.2, i32 noundef 108, ptr noundef %1291, ptr noundef %1294, ptr noundef %1297, i32 noundef %1299) #11
  br label %1318

1301:                                             ; preds = %1279, %1272
  %1302 = load i32, ptr %35, 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.4, i32 noundef %1305, ptr noundef @.str.26, ptr noundef @.str.2, i32 noundef 108, ptr noundef %1308, ptr noundef %1311, ptr noundef %1314, i32 noundef %1316) #11
  br label %1318

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

1319:                                             ; preds = %1318
  br label %1320

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

1321:                                             ; No predecessors!
  br label %1322

1322:                                             ; preds = %1321
  br label %1323

1323:                                             ; preds = %1322, %1264
  br label %1324

1324:                                             ; preds = %1323
  br label %1325

1325:                                             ; preds = %1324
  br label %1326

1326:                                             ; preds = %1325
  %1327 = load i32, ptr @test_count, align 4, !tbaa !5
  %1328 = add nsw i32 %1327, 1
  store i32 %1328, ptr @test_count, align 4, !tbaa !5
  %1329 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1330 = load i32, ptr %1329, align 4, !tbaa !5
  %1331 = call ptr @s2n_strerror_debug(i32 noundef %1330, ptr noundef @.str.3)
  %1332 = icmp eq ptr %1331, null
  br i1 %1332, label %1333, label %1386

1333:                                             ; preds = %1326
  br label %1334

1334:                                             ; preds = %1333
  br label %1335

1335:                                             ; preds = %1334
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #11
  %1336 = call ptr @__errno_location() #12
  %1337 = load i32, ptr %1336, align 4, !tbaa !5
  store i32 %1337, ptr %36, align 4, !tbaa !5
  %1338 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1339 = call i32 @s2n_print_stacktrace(ptr noundef %1338)
  %1340 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1341 = trunc i8 %1340 to i1
  br i1 %1341, label %1342, label %1364

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

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

1364:                                             ; preds = %1342, %1335
  %1365 = load i32, ptr %36, align 4, !tbaa !5
  %1366 = call ptr @__errno_location() #12
  store i32 %1365, ptr %1366, align 4, !tbaa !5
  %1367 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1368 = load i32, ptr @test_count, align 4, !tbaa !5
  %1369 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1370 = load i32, ptr %1369, align 4, !tbaa !5
  %1371 = call ptr @s2n_strerror(i32 noundef %1370, ptr noundef @.str.3)
  %1372 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1373 = load i32, ptr %1372, align 4, !tbaa !5
  %1374 = call ptr @s2n_strerror_debug(i32 noundef %1373, ptr noundef @.str.3)
  %1375 = call ptr @__errno_location() #12
  %1376 = load i32, ptr %1375, align 4, !tbaa !5
  %1377 = call ptr @strerror(i32 noundef %1376) #11
  %1378 = call ptr @__errno_location() #12
  %1379 = load i32, ptr %1378, align 4, !tbaa !5
  %1380 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1367, ptr noundef @.str.4, i32 noundef %1368, ptr noundef @.str.27, ptr noundef @.str.2, i32 noundef 108, ptr noundef %1371, ptr noundef %1374, ptr noundef %1377, i32 noundef %1379) #11
  br label %1381

1381:                                             ; preds = %1364, %1347
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #11
  br label %1382

1382:                                             ; preds = %1381
  br label %1383

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

1384:                                             ; No predecessors!
  br label %1385

1385:                                             ; preds = %1384
  br label %1386

1386:                                             ; preds = %1385, %1326
  br label %1387

1387:                                             ; preds = %1386
  br label %1388

1388:                                             ; preds = %1387
  br label %1389

1389:                                             ; preds = %1388
  br label %1390

1390:                                             ; preds = %1389
  br label %1391

1391:                                             ; preds = %1390
  %1392 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1392, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1393 = call ptr @__errno_location() #12
  store i32 0, ptr %1393, align 4, !tbaa !5
  br label %1394

1394:                                             ; preds = %1391
  br label %1395

1395:                                             ; preds = %1394
  br label %1396

1396:                                             ; preds = %1395
  br label %1397

1397:                                             ; preds = %1396
  %1398 = load i32, ptr %23, align 4, !tbaa !5
  store i32 %1398, ptr %27, align 4, !tbaa !5
  br label %1399

1399:                                             ; preds = %1397, %1196
  call void @llvm.lifetime.start.p0(i64 2, ptr %37) #11
  %1400 = load i32, ptr %27, align 4, !tbaa !5
  %1401 = trunc i32 %1400 to i16
  store i16 %1401, ptr %37, align 2, !tbaa !58
  %1402 = load ptr, ptr %6, align 8, !tbaa !9
  %1403 = getelementptr inbounds %struct.s2n_connection, ptr %1402, i32 0, i32 26
  %1404 = load ptr, ptr %1403, align 8, !tbaa !17
  %1405 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %1404, i32 0, i32 0
  %1406 = load ptr, ptr %1405, align 8, !tbaa !46
  %1407 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %1406, i32 0, i32 6
  %1408 = load ptr, ptr %1407, align 8, !tbaa !51
  %1409 = getelementptr inbounds %struct.s2n_record_algorithm, ptr %1408, i32 0, i32 0
  %1410 = load ptr, ptr %1409, align 8, !tbaa !59
  %1411 = getelementptr inbounds %struct.s2n_cipher, ptr %1410, i32 0, i32 1
  %1412 = getelementptr inbounds %struct.s2n_aead_cipher, ptr %1411, i32 0, i32 1
  %1413 = load i8, ptr %1412, align 1, !tbaa !61
  %1414 = zext i8 %1413 to i32
  %1415 = load i16, ptr %37, align 2, !tbaa !58
  %1416 = zext i16 %1415 to i32
  %1417 = add nsw i32 %1416, %1414
  %1418 = trunc i32 %1417 to i16
  store i16 %1418, ptr %37, align 2, !tbaa !58
  %1419 = load ptr, ptr %6, align 8, !tbaa !9
  %1420 = getelementptr inbounds %struct.s2n_connection, ptr %1419, i32 0, i32 26
  %1421 = load ptr, ptr %1420, align 8, !tbaa !17
  %1422 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %1421, i32 0, i32 0
  %1423 = load ptr, ptr %1422, align 8, !tbaa !46
  %1424 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %1423, i32 0, i32 6
  %1425 = load ptr, ptr %1424, align 8, !tbaa !51
  %1426 = getelementptr inbounds %struct.s2n_record_algorithm, ptr %1425, i32 0, i32 0
  %1427 = load ptr, ptr %1426, align 8, !tbaa !59
  %1428 = getelementptr inbounds %struct.s2n_cipher, ptr %1427, i32 0, i32 1
  %1429 = getelementptr inbounds %struct.s2n_aead_cipher, ptr %1428, i32 0, i32 2
  %1430 = load i8, ptr %1429, align 2, !tbaa !61
  %1431 = zext i8 %1430 to i32
  %1432 = load i16, ptr %37, align 2, !tbaa !58
  %1433 = zext i16 %1432 to i32
  %1434 = add nsw i32 %1433, %1431
  %1435 = trunc i32 %1434 to i16
  store i16 %1435, ptr %37, align 2, !tbaa !58
  br label %1436

1436:                                             ; preds = %1399
  %1437 = load i32, ptr @test_count, align 4, !tbaa !5
  %1438 = add nsw i32 %1437, 1
  store i32 %1438, ptr @test_count, align 4, !tbaa !5
  %1439 = load i16, ptr %37, align 2, !tbaa !58
  %1440 = zext i16 %1439 to i32
  %1441 = load i32, ptr %27, align 4, !tbaa !5
  %1442 = add nsw i32 %1441, 16
  %1443 = icmp eq i32 %1440, %1442
  br i1 %1443, label %1497, label %1444

1444:                                             ; preds = %1436
  br label %1445

1445:                                             ; preds = %1444
  br label %1446

1446:                                             ; preds = %1445
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #11
  %1447 = call ptr @__errno_location() #12
  %1448 = load i32, ptr %1447, align 4, !tbaa !5
  store i32 %1448, ptr %38, align 4, !tbaa !5
  %1449 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1450 = call i32 @s2n_print_stacktrace(ptr noundef %1449)
  %1451 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1452 = trunc i8 %1451 to i1
  br i1 %1452, label %1453, label %1475

1453:                                             ; preds = %1446
  %1454 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1455 = call i32 @fileno(ptr noundef %1454) #11
  %1456 = call i32 @isatty(i32 noundef %1455) #11
  %1457 = icmp ne i32 %1456, 0
  br i1 %1457, label %1458, label %1475

1458:                                             ; preds = %1453
  %1459 = load i32, ptr %38, align 4, !tbaa !5
  %1460 = call ptr @__errno_location() #12
  store i32 %1459, ptr %1460, align 4, !tbaa !5
  %1461 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1462 = load i32, ptr @test_count, align 4, !tbaa !5
  %1463 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1464 = load i32, ptr %1463, align 4, !tbaa !5
  %1465 = call ptr @s2n_strerror(i32 noundef %1464, ptr noundef @.str.3)
  %1466 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1467 = load i32, ptr %1466, align 4, !tbaa !5
  %1468 = call ptr @s2n_strerror_debug(i32 noundef %1467, ptr noundef @.str.3)
  %1469 = call ptr @__errno_location() #12
  %1470 = load i32, ptr %1469, align 4, !tbaa !5
  %1471 = call ptr @strerror(i32 noundef %1470) #11
  %1472 = call ptr @__errno_location() #12
  %1473 = load i32, ptr %1472, align 4, !tbaa !5
  %1474 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1461, ptr noundef @.str, i32 noundef %1462, ptr noundef @.str.28, ptr noundef @.str.2, i32 noundef 118, ptr noundef %1465, ptr noundef %1468, ptr noundef %1471, i32 noundef %1473) #11
  br label %1492

1475:                                             ; preds = %1453, %1446
  %1476 = load i32, ptr %38, align 4, !tbaa !5
  %1477 = call ptr @__errno_location() #12
  store i32 %1476, ptr %1477, align 4, !tbaa !5
  %1478 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1479 = load i32, ptr @test_count, align 4, !tbaa !5
  %1480 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1481 = load i32, ptr %1480, align 4, !tbaa !5
  %1482 = call ptr @s2n_strerror(i32 noundef %1481, ptr noundef @.str.3)
  %1483 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1484 = load i32, ptr %1483, align 4, !tbaa !5
  %1485 = call ptr @s2n_strerror_debug(i32 noundef %1484, ptr noundef @.str.3)
  %1486 = call ptr @__errno_location() #12
  %1487 = load i32, ptr %1486, align 4, !tbaa !5
  %1488 = call ptr @strerror(i32 noundef %1487) #11
  %1489 = call ptr @__errno_location() #12
  %1490 = load i32, ptr %1489, align 4, !tbaa !5
  %1491 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1478, ptr noundef @.str.4, i32 noundef %1479, ptr noundef @.str.28, ptr noundef @.str.2, i32 noundef 118, ptr noundef %1482, ptr noundef %1485, ptr noundef %1488, i32 noundef %1490) #11
  br label %1492

1492:                                             ; preds = %1475, %1458
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #11
  br label %1493

1493:                                             ; preds = %1492
  br label %1494

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

1495:                                             ; No predecessors!
  br label %1496

1496:                                             ; preds = %1495
  br label %1497

1497:                                             ; preds = %1496, %1436
  br label %1498

1498:                                             ; preds = %1497
  br label %1499

1499:                                             ; preds = %1498
  br label %1500

1500:                                             ; preds = %1499
  %1501 = load i32, ptr @test_count, align 4, !tbaa !5
  %1502 = add nsw i32 %1501, 1
  store i32 %1502, ptr @test_count, align 4, !tbaa !5
  %1503 = load ptr, ptr %6, align 8, !tbaa !9
  %1504 = getelementptr inbounds %struct.s2n_connection, ptr %1503, i32 0, i32 41
  %1505 = getelementptr inbounds %struct.s2n_stuffer, ptr %1504, i32 0, i32 0
  %1506 = getelementptr inbounds %struct.s2n_blob, ptr %1505, i32 0, i32 0
  %1507 = load ptr, ptr %1506, align 8, !tbaa !62
  %1508 = getelementptr inbounds i8, ptr %1507, i64 0
  %1509 = load i8, ptr %1508, align 1, !tbaa !61
  %1510 = zext i8 %1509 to i32
  %1511 = icmp eq i32 %1510, 23
  br i1 %1511, label %1565, label %1512

1512:                                             ; preds = %1500
  br label %1513

1513:                                             ; preds = %1512
  br label %1514

1514:                                             ; preds = %1513
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #11
  %1515 = call ptr @__errno_location() #12
  %1516 = load i32, ptr %1515, align 4, !tbaa !5
  store i32 %1516, ptr %39, align 4, !tbaa !5
  %1517 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1518 = call i32 @s2n_print_stacktrace(ptr noundef %1517)
  %1519 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1520 = trunc i8 %1519 to i1
  br i1 %1520, label %1521, label %1543

1521:                                             ; preds = %1514
  %1522 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1523 = call i32 @fileno(ptr noundef %1522) #11
  %1524 = call i32 @isatty(i32 noundef %1523) #11
  %1525 = icmp ne i32 %1524, 0
  br i1 %1525, label %1526, label %1543

1526:                                             ; preds = %1521
  %1527 = load i32, ptr %39, align 4, !tbaa !5
  %1528 = call ptr @__errno_location() #12
  store i32 %1527, ptr %1528, align 4, !tbaa !5
  %1529 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1530 = load i32, ptr @test_count, align 4, !tbaa !5
  %1531 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1532 = load i32, ptr %1531, align 4, !tbaa !5
  %1533 = call ptr @s2n_strerror(i32 noundef %1532, ptr noundef @.str.3)
  %1534 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1535 = load i32, ptr %1534, align 4, !tbaa !5
  %1536 = call ptr @s2n_strerror_debug(i32 noundef %1535, ptr noundef @.str.3)
  %1537 = call ptr @__errno_location() #12
  %1538 = load i32, ptr %1537, align 4, !tbaa !5
  %1539 = call ptr @strerror(i32 noundef %1538) #11
  %1540 = call ptr @__errno_location() #12
  %1541 = load i32, ptr %1540, align 4, !tbaa !5
  %1542 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1529, ptr noundef @.str, i32 noundef %1530, ptr noundef @.str.29, ptr noundef @.str.2, i32 noundef 120, ptr noundef %1533, ptr noundef %1536, ptr noundef %1539, i32 noundef %1541) #11
  br label %1560

1543:                                             ; preds = %1521, %1514
  %1544 = load i32, ptr %39, align 4, !tbaa !5
  %1545 = call ptr @__errno_location() #12
  store i32 %1544, ptr %1545, align 4, !tbaa !5
  %1546 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1547 = load i32, ptr @test_count, align 4, !tbaa !5
  %1548 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1549 = load i32, ptr %1548, align 4, !tbaa !5
  %1550 = call ptr @s2n_strerror(i32 noundef %1549, ptr noundef @.str.3)
  %1551 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1552 = load i32, ptr %1551, align 4, !tbaa !5
  %1553 = call ptr @s2n_strerror_debug(i32 noundef %1552, ptr noundef @.str.3)
  %1554 = call ptr @__errno_location() #12
  %1555 = load i32, ptr %1554, align 4, !tbaa !5
  %1556 = call ptr @strerror(i32 noundef %1555) #11
  %1557 = call ptr @__errno_location() #12
  %1558 = load i32, ptr %1557, align 4, !tbaa !5
  %1559 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1546, ptr noundef @.str.4, i32 noundef %1547, ptr noundef @.str.29, ptr noundef @.str.2, i32 noundef 120, ptr noundef %1550, ptr noundef %1553, ptr noundef %1556, i32 noundef %1558) #11
  br label %1560

1560:                                             ; preds = %1543, %1526
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #11
  br label %1561

1561:                                             ; preds = %1560
  br label %1562

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

1563:                                             ; No predecessors!
  br label %1564

1564:                                             ; preds = %1563
  br label %1565

1565:                                             ; preds = %1564, %1500
  br label %1566

1566:                                             ; preds = %1565
  br label %1567

1567:                                             ; preds = %1566
  br label %1568

1568:                                             ; preds = %1567
  %1569 = load i32, ptr @test_count, align 4, !tbaa !5
  %1570 = add nsw i32 %1569, 1
  store i32 %1570, ptr @test_count, align 4, !tbaa !5
  %1571 = load ptr, ptr %6, align 8, !tbaa !9
  %1572 = getelementptr inbounds %struct.s2n_connection, ptr %1571, i32 0, i32 41
  %1573 = getelementptr inbounds %struct.s2n_stuffer, ptr %1572, i32 0, i32 0
  %1574 = getelementptr inbounds %struct.s2n_blob, ptr %1573, i32 0, i32 0
  %1575 = load ptr, ptr %1574, align 8, !tbaa !62
  %1576 = getelementptr inbounds i8, ptr %1575, i64 1
  %1577 = load i8, ptr %1576, align 1, !tbaa !61
  %1578 = zext i8 %1577 to i32
  %1579 = icmp eq i32 %1578, 3
  br i1 %1579, label %1633, label %1580

1580:                                             ; preds = %1568
  br label %1581

1581:                                             ; preds = %1580
  br label %1582

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

1589:                                             ; preds = %1582
  %1590 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1591 = call i32 @fileno(ptr noundef %1590) #11
  %1592 = call i32 @isatty(i32 noundef %1591) #11
  %1593 = icmp ne i32 %1592, 0
  br i1 %1593, label %1594, label %1611

1594:                                             ; preds = %1589
  %1595 = load i32, ptr %40, align 4, !tbaa !5
  %1596 = call ptr @__errno_location() #12
  store i32 %1595, ptr %1596, align 4, !tbaa !5
  %1597 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1598 = load i32, ptr @test_count, align 4, !tbaa !5
  %1599 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1600 = load i32, ptr %1599, align 4, !tbaa !5
  %1601 = call ptr @s2n_strerror(i32 noundef %1600, ptr noundef @.str.3)
  %1602 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1603 = load i32, ptr %1602, align 4, !tbaa !5
  %1604 = call ptr @s2n_strerror_debug(i32 noundef %1603, ptr noundef @.str.3)
  %1605 = call ptr @__errno_location() #12
  %1606 = load i32, ptr %1605, align 4, !tbaa !5
  %1607 = call ptr @strerror(i32 noundef %1606) #11
  %1608 = call ptr @__errno_location() #12
  %1609 = load i32, ptr %1608, align 4, !tbaa !5
  %1610 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1597, ptr noundef @.str, i32 noundef %1598, ptr noundef @.str.30, ptr noundef @.str.2, i32 noundef 121, ptr noundef %1601, ptr noundef %1604, ptr noundef %1607, i32 noundef %1609) #11
  br label %1628

1611:                                             ; preds = %1589, %1582
  %1612 = load i32, ptr %40, align 4, !tbaa !5
  %1613 = call ptr @__errno_location() #12
  store i32 %1612, ptr %1613, align 4, !tbaa !5
  %1614 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1615 = load i32, ptr @test_count, align 4, !tbaa !5
  %1616 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1617 = load i32, ptr %1616, align 4, !tbaa !5
  %1618 = call ptr @s2n_strerror(i32 noundef %1617, ptr noundef @.str.3)
  %1619 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1620 = load i32, ptr %1619, align 4, !tbaa !5
  %1621 = call ptr @s2n_strerror_debug(i32 noundef %1620, ptr noundef @.str.3)
  %1622 = call ptr @__errno_location() #12
  %1623 = load i32, ptr %1622, align 4, !tbaa !5
  %1624 = call ptr @strerror(i32 noundef %1623) #11
  %1625 = call ptr @__errno_location() #12
  %1626 = load i32, ptr %1625, align 4, !tbaa !5
  %1627 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1614, ptr noundef @.str.4, i32 noundef %1615, ptr noundef @.str.30, ptr noundef @.str.2, i32 noundef 121, ptr noundef %1618, ptr noundef %1621, ptr noundef %1624, i32 noundef %1626) #11
  br label %1628

1628:                                             ; preds = %1611, %1594
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #11
  br label %1629

1629:                                             ; preds = %1628
  br label %1630

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

1631:                                             ; No predecessors!
  br label %1632

1632:                                             ; preds = %1631
  br label %1633

1633:                                             ; preds = %1632, %1568
  br label %1634

1634:                                             ; preds = %1633
  br label %1635

1635:                                             ; preds = %1634
  br label %1636

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

1648:                                             ; preds = %1636
  br label %1649

1649:                                             ; preds = %1648
  br label %1650

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

1657:                                             ; preds = %1650
  %1658 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1659 = call i32 @fileno(ptr noundef %1658) #11
  %1660 = call i32 @isatty(i32 noundef %1659) #11
  %1661 = icmp ne i32 %1660, 0
  br i1 %1661, label %1662, label %1679

1662:                                             ; preds = %1657
  %1663 = load i32, ptr %41, align 4, !tbaa !5
  %1664 = call ptr @__errno_location() #12
  store i32 %1663, ptr %1664, align 4, !tbaa !5
  %1665 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1666 = load i32, ptr @test_count, align 4, !tbaa !5
  %1667 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1668 = load i32, ptr %1667, align 4, !tbaa !5
  %1669 = call ptr @s2n_strerror(i32 noundef %1668, ptr noundef @.str.3)
  %1670 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1671 = load i32, ptr %1670, align 4, !tbaa !5
  %1672 = call ptr @s2n_strerror_debug(i32 noundef %1671, ptr noundef @.str.3)
  %1673 = call ptr @__errno_location() #12
  %1674 = load i32, ptr %1673, align 4, !tbaa !5
  %1675 = call ptr @strerror(i32 noundef %1674) #11
  %1676 = call ptr @__errno_location() #12
  %1677 = load i32, ptr %1676, align 4, !tbaa !5
  %1678 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1665, ptr noundef @.str, i32 noundef %1666, ptr noundef @.str.31, ptr noundef @.str.2, i32 noundef 122, ptr noundef %1669, ptr noundef %1672, ptr noundef %1675, i32 noundef %1677) #11
  br label %1696

1679:                                             ; preds = %1657, %1650
  %1680 = load i32, ptr %41, align 4, !tbaa !5
  %1681 = call ptr @__errno_location() #12
  store i32 %1680, ptr %1681, align 4, !tbaa !5
  %1682 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1683 = load i32, ptr @test_count, align 4, !tbaa !5
  %1684 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1685 = load i32, ptr %1684, align 4, !tbaa !5
  %1686 = call ptr @s2n_strerror(i32 noundef %1685, ptr noundef @.str.3)
  %1687 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1688 = load i32, ptr %1687, align 4, !tbaa !5
  %1689 = call ptr @s2n_strerror_debug(i32 noundef %1688, ptr noundef @.str.3)
  %1690 = call ptr @__errno_location() #12
  %1691 = load i32, ptr %1690, align 4, !tbaa !5
  %1692 = call ptr @strerror(i32 noundef %1691) #11
  %1693 = call ptr @__errno_location() #12
  %1694 = load i32, ptr %1693, align 4, !tbaa !5
  %1695 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1682, ptr noundef @.str.4, i32 noundef %1683, ptr noundef @.str.31, ptr noundef @.str.2, i32 noundef 122, ptr noundef %1686, ptr noundef %1689, ptr noundef %1692, i32 noundef %1694) #11
  br label %1696

1696:                                             ; preds = %1679, %1662
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #11
  br label %1697

1697:                                             ; preds = %1696
  br label %1698

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

1699:                                             ; No predecessors!
  br label %1700

1700:                                             ; preds = %1699
  br label %1701

1701:                                             ; preds = %1700, %1636
  br label %1702

1702:                                             ; preds = %1701
  br label %1703

1703:                                             ; preds = %1702
  br label %1704

1704:                                             ; preds = %1703
  %1705 = load i32, ptr @test_count, align 4, !tbaa !5
  %1706 = add nsw i32 %1705, 1
  store i32 %1706, ptr @test_count, align 4, !tbaa !5
  %1707 = load ptr, ptr %6, align 8, !tbaa !9
  %1708 = getelementptr inbounds %struct.s2n_connection, ptr %1707, i32 0, i32 41
  %1709 = getelementptr inbounds %struct.s2n_stuffer, ptr %1708, i32 0, i32 0
  %1710 = getelementptr inbounds %struct.s2n_blob, ptr %1709, i32 0, i32 0
  %1711 = load ptr, ptr %1710, align 8, !tbaa !62
  %1712 = getelementptr inbounds i8, ptr %1711, i64 3
  %1713 = load i8, ptr %1712, align 1, !tbaa !61
  %1714 = zext i8 %1713 to i32
  %1715 = load i16, ptr %37, align 2, !tbaa !58
  %1716 = zext i16 %1715 to i32
  %1717 = ashr i32 %1716, 8
  %1718 = and i32 %1717, 255
  %1719 = icmp eq i32 %1714, %1718
  br i1 %1719, label %1773, label %1720

1720:                                             ; preds = %1704
  br label %1721

1721:                                             ; preds = %1720
  br label %1722

1722:                                             ; preds = %1721
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #11
  %1723 = call ptr @__errno_location() #12
  %1724 = load i32, ptr %1723, align 4, !tbaa !5
  store i32 %1724, ptr %42, align 4, !tbaa !5
  %1725 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1726 = call i32 @s2n_print_stacktrace(ptr noundef %1725)
  %1727 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1728 = trunc i8 %1727 to i1
  br i1 %1728, label %1729, label %1751

1729:                                             ; preds = %1722
  %1730 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1731 = call i32 @fileno(ptr noundef %1730) #11
  %1732 = call i32 @isatty(i32 noundef %1731) #11
  %1733 = icmp ne i32 %1732, 0
  br i1 %1733, label %1734, label %1751

1734:                                             ; preds = %1729
  %1735 = load i32, ptr %42, align 4, !tbaa !5
  %1736 = call ptr @__errno_location() #12
  store i32 %1735, ptr %1736, align 4, !tbaa !5
  %1737 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1738 = load i32, ptr @test_count, align 4, !tbaa !5
  %1739 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1740 = load i32, ptr %1739, align 4, !tbaa !5
  %1741 = call ptr @s2n_strerror(i32 noundef %1740, ptr noundef @.str.3)
  %1742 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1743 = load i32, ptr %1742, align 4, !tbaa !5
  %1744 = call ptr @s2n_strerror_debug(i32 noundef %1743, ptr noundef @.str.3)
  %1745 = call ptr @__errno_location() #12
  %1746 = load i32, ptr %1745, align 4, !tbaa !5
  %1747 = call ptr @strerror(i32 noundef %1746) #11
  %1748 = call ptr @__errno_location() #12
  %1749 = load i32, ptr %1748, align 4, !tbaa !5
  %1750 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1737, ptr noundef @.str, i32 noundef %1738, ptr noundef @.str.32, ptr noundef @.str.2, i32 noundef 123, ptr noundef %1741, ptr noundef %1744, ptr noundef %1747, i32 noundef %1749) #11
  br label %1768

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

1768:                                             ; preds = %1751, %1734
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #11
  br label %1769

1769:                                             ; preds = %1768
  br label %1770

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

1771:                                             ; No predecessors!
  br label %1772

1772:                                             ; preds = %1771
  br label %1773

1773:                                             ; preds = %1772, %1704
  br label %1774

1774:                                             ; preds = %1773
  br label %1775

1775:                                             ; preds = %1774
  br label %1776

1776:                                             ; preds = %1775
  %1777 = load i32, ptr @test_count, align 4, !tbaa !5
  %1778 = add nsw i32 %1777, 1
  store i32 %1778, ptr @test_count, align 4, !tbaa !5
  %1779 = load ptr, ptr %6, align 8, !tbaa !9
  %1780 = getelementptr inbounds %struct.s2n_connection, ptr %1779, i32 0, i32 41
  %1781 = getelementptr inbounds %struct.s2n_stuffer, ptr %1780, i32 0, i32 0
  %1782 = getelementptr inbounds %struct.s2n_blob, ptr %1781, i32 0, i32 0
  %1783 = load ptr, ptr %1782, align 8, !tbaa !62
  %1784 = getelementptr inbounds i8, ptr %1783, i64 4
  %1785 = load i8, ptr %1784, align 1, !tbaa !61
  %1786 = zext i8 %1785 to i32
  %1787 = load i16, ptr %37, align 2, !tbaa !58
  %1788 = zext i16 %1787 to i32
  %1789 = and i32 %1788, 255
  %1790 = icmp eq i32 %1786, %1789
  br i1 %1790, label %1844, label %1791

1791:                                             ; preds = %1776
  br label %1792

1792:                                             ; preds = %1791
  br label %1793

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

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

1805:                                             ; preds = %1800
  %1806 = load i32, ptr %43, align 4, !tbaa !5
  %1807 = call ptr @__errno_location() #12
  store i32 %1806, ptr %1807, align 4, !tbaa !5
  %1808 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1809 = load i32, ptr @test_count, align 4, !tbaa !5
  %1810 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1811 = load i32, ptr %1810, align 4, !tbaa !5
  %1812 = call ptr @s2n_strerror(i32 noundef %1811, ptr noundef @.str.3)
  %1813 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1814 = load i32, ptr %1813, align 4, !tbaa !5
  %1815 = call ptr @s2n_strerror_debug(i32 noundef %1814, ptr noundef @.str.3)
  %1816 = call ptr @__errno_location() #12
  %1817 = load i32, ptr %1816, align 4, !tbaa !5
  %1818 = call ptr @strerror(i32 noundef %1817) #11
  %1819 = call ptr @__errno_location() #12
  %1820 = load i32, ptr %1819, align 4, !tbaa !5
  %1821 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1808, ptr noundef @.str, i32 noundef %1809, ptr noundef @.str.33, ptr noundef @.str.2, i32 noundef 124, ptr noundef %1812, ptr noundef %1815, ptr noundef %1818, i32 noundef %1820) #11
  br label %1839

1822:                                             ; preds = %1800, %1793
  %1823 = load i32, ptr %43, align 4, !tbaa !5
  %1824 = call ptr @__errno_location() #12
  store i32 %1823, ptr %1824, align 4, !tbaa !5
  %1825 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1826 = load i32, ptr @test_count, align 4, !tbaa !5
  %1827 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1828 = load i32, ptr %1827, align 4, !tbaa !5
  %1829 = call ptr @s2n_strerror(i32 noundef %1828, ptr noundef @.str.3)
  %1830 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1831 = load i32, ptr %1830, align 4, !tbaa !5
  %1832 = call ptr @s2n_strerror_debug(i32 noundef %1831, ptr noundef @.str.3)
  %1833 = call ptr @__errno_location() #12
  %1834 = load i32, ptr %1833, align 4, !tbaa !5
  %1835 = call ptr @strerror(i32 noundef %1834) #11
  %1836 = call ptr @__errno_location() #12
  %1837 = load i32, ptr %1836, align 4, !tbaa !5
  %1838 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1825, ptr noundef @.str.4, i32 noundef %1826, ptr noundef @.str.33, ptr noundef @.str.2, i32 noundef 124, ptr noundef %1829, ptr noundef %1832, ptr noundef %1835, i32 noundef %1837) #11
  br label %1839

1839:                                             ; preds = %1822, %1805
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #11
  br label %1840

1840:                                             ; preds = %1839
  br label %1841

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

1842:                                             ; No predecessors!
  br label %1843

1843:                                             ; preds = %1842
  br label %1844

1844:                                             ; preds = %1843, %1776
  br label %1845

1845:                                             ; preds = %1844
  br label %1846

1846:                                             ; preds = %1845
  %1847 = load i32, ptr %27, align 4, !tbaa !5
  %1848 = icmp sgt i32 %1847, 10
  br i1 %1848, label %1849, label %1920

1849:                                             ; preds = %1846
  br label %1850

1850:                                             ; preds = %1849
  %1851 = load i32, ptr @test_count, align 4, !tbaa !5
  %1852 = add nsw i32 %1851, 1
  store i32 %1852, ptr @test_count, align 4, !tbaa !5
  %1853 = load ptr, ptr %6, align 8, !tbaa !9
  %1854 = getelementptr inbounds %struct.s2n_connection, ptr %1853, i32 0, i32 41
  %1855 = getelementptr inbounds %struct.s2n_stuffer, ptr %1854, i32 0, i32 0
  %1856 = getelementptr inbounds %struct.s2n_blob, ptr %1855, i32 0, i32 0
  %1857 = load ptr, ptr %1856, align 8, !tbaa !62
  %1858 = getelementptr inbounds i8, ptr %1857, i64 5
  %1859 = getelementptr inbounds [1436 x i8], ptr %7, i64 0, i64 0
  %1860 = load i32, ptr %27, align 4, !tbaa !5
  %1861 = sext i32 %1860 to i64
  %1862 = call i32 @memcmp(ptr noundef %1858, ptr noundef %1859, i64 noundef %1861) #14
  %1863 = icmp eq i32 %1862, 0
  br i1 %1863, label %1864, label %1917

1864:                                             ; preds = %1850
  br label %1865

1865:                                             ; preds = %1864
  br label %1866

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

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

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

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

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

1913:                                             ; preds = %1912
  br label %1914

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

1915:                                             ; No predecessors!
  br label %1916

1916:                                             ; preds = %1915
  br label %1917

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

1918:                                             ; preds = %1917
  br label %1919

1919:                                             ; preds = %1918
  br label %1920

1920:                                             ; preds = %1919, %1846
  br label %1921

1921:                                             ; preds = %1920
  %1922 = load i32, ptr @test_count, align 4, !tbaa !5
  %1923 = add nsw i32 %1922, 1
  store i32 %1923, ptr @test_count, align 4, !tbaa !5
  %1924 = load ptr, ptr %6, align 8, !tbaa !9
  %1925 = getelementptr inbounds %struct.s2n_connection, ptr %1924, i32 0, i32 40
  %1926 = call i32 @s2n_stuffer_wipe(ptr noundef %1925)
  %1927 = icmp eq i32 %1926, -1
  br i1 %1927, label %1928, label %1981

1928:                                             ; preds = %1921
  br label %1929

1929:                                             ; preds = %1928
  br label %1930

1930:                                             ; preds = %1929
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #11
  %1931 = call ptr @__errno_location() #12
  %1932 = load i32, ptr %1931, align 4, !tbaa !5
  store i32 %1932, ptr %45, 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 %45, 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.35, ptr noundef @.str.2, i32 noundef 132, ptr noundef %1949, ptr noundef %1952, ptr noundef %1955, i32 noundef %1957) #11
  br label %1976

1959:                                             ; preds = %1937, %1930
  %1960 = load i32, ptr %45, 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.35, ptr noundef @.str.2, i32 noundef 132, 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 %45) #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, %1921
  br label %1982

1982:                                             ; preds = %1981
  br label %1983

1983:                                             ; preds = %1982
  br label %1984

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

1991:                                             ; preds = %1984
  br label %1992

1992:                                             ; preds = %1991
  br label %1993

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

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

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

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

2039:                                             ; preds = %2022, %2005
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #11
  br label %2040

2040:                                             ; preds = %2039
  br label %2041

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

2042:                                             ; No predecessors!
  br label %2043

2043:                                             ; preds = %2042
  br label %2044

2044:                                             ; preds = %2043, %1984
  br label %2045

2045:                                             ; preds = %2044
  br label %2046

2046:                                             ; preds = %2045
  br label %2047

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

2056:                                             ; preds = %2047
  br label %2057

2057:                                             ; preds = %2056
  br label %2058

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

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

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

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

2104:                                             ; preds = %2087, %2070
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #11
  br label %2105

2105:                                             ; preds = %2104
  br label %2106

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

2107:                                             ; No predecessors!
  br label %2108

2108:                                             ; preds = %2107
  br label %2109

2109:                                             ; preds = %2108, %2047
  br label %2110

2110:                                             ; preds = %2109
  br label %2111

2111:                                             ; preds = %2110
  br label %2112

2112:                                             ; preds = %2111
  %2113 = load i32, ptr @test_count, align 4, !tbaa !5
  %2114 = add nsw i32 %2113, 1
  store i32 %2114, ptr @test_count, align 4, !tbaa !5
  %2115 = load ptr, ptr %6, align 8, !tbaa !9
  %2116 = getelementptr inbounds %struct.s2n_connection, ptr %2115, i32 0, i32 41
  %2117 = load ptr, ptr %6, align 8, !tbaa !9
  %2118 = getelementptr inbounds %struct.s2n_connection, ptr %2117, i32 0, i32 40
  %2119 = load ptr, ptr %6, align 8, !tbaa !9
  %2120 = getelementptr inbounds %struct.s2n_connection, ptr %2119, i32 0, i32 41
  %2121 = getelementptr inbounds %struct.s2n_stuffer, ptr %2120, i32 0, i32 2
  %2122 = load i32, ptr %2121, align 4, !tbaa !63
  %2123 = load ptr, ptr %6, align 8, !tbaa !9
  %2124 = getelementptr inbounds %struct.s2n_connection, ptr %2123, i32 0, i32 41
  %2125 = getelementptr inbounds %struct.s2n_stuffer, ptr %2124, i32 0, i32 1
  %2126 = load i32, ptr %2125, align 8, !tbaa !64
  %2127 = sub i32 %2122, %2126
  %2128 = call i32 @s2n_stuffer_copy(ptr noundef %2116, ptr noundef %2118, i32 noundef %2127)
  %2129 = icmp eq i32 %2128, -1
  br i1 %2129, label %2130, label %2183

2130:                                             ; preds = %2112
  br label %2131

2131:                                             ; preds = %2130
  br label %2132

2132:                                             ; preds = %2131
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #11
  %2133 = call ptr @__errno_location() #12
  %2134 = load i32, ptr %2133, align 4, !tbaa !5
  store i32 %2134, ptr %48, align 4, !tbaa !5
  %2135 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2136 = call i32 @s2n_print_stacktrace(ptr noundef %2135)
  %2137 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2138 = trunc i8 %2137 to i1
  br i1 %2138, label %2139, label %2161

2139:                                             ; preds = %2132
  %2140 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2141 = call i32 @fileno(ptr noundef %2140) #11
  %2142 = call i32 @isatty(i32 noundef %2141) #11
  %2143 = icmp ne i32 %2142, 0
  br i1 %2143, label %2144, label %2161

2144:                                             ; preds = %2139
  %2145 = load i32, ptr %48, align 4, !tbaa !5
  %2146 = call ptr @__errno_location() #12
  store i32 %2145, ptr %2146, align 4, !tbaa !5
  %2147 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2148 = load i32, ptr @test_count, align 4, !tbaa !5
  %2149 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2150 = load i32, ptr %2149, align 4, !tbaa !5
  %2151 = call ptr @s2n_strerror(i32 noundef %2150, ptr noundef @.str.3)
  %2152 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2153 = load i32, ptr %2152, align 4, !tbaa !5
  %2154 = call ptr @s2n_strerror_debug(i32 noundef %2153, ptr noundef @.str.3)
  %2155 = call ptr @__errno_location() #12
  %2156 = load i32, ptr %2155, align 4, !tbaa !5
  %2157 = call ptr @strerror(i32 noundef %2156) #11
  %2158 = call ptr @__errno_location() #12
  %2159 = load i32, ptr %2158, align 4, !tbaa !5
  %2160 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2147, ptr noundef @.str, i32 noundef %2148, ptr noundef @.str.38, ptr noundef @.str.2, i32 noundef 135, ptr noundef %2151, ptr noundef %2154, ptr noundef %2157, i32 noundef %2159) #11
  br label %2178

2161:                                             ; preds = %2139, %2132
  %2162 = load i32, ptr %48, align 4, !tbaa !5
  %2163 = call ptr @__errno_location() #12
  store i32 %2162, ptr %2163, align 4, !tbaa !5
  %2164 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2165 = load i32, ptr @test_count, align 4, !tbaa !5
  %2166 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2167 = load i32, ptr %2166, align 4, !tbaa !5
  %2168 = call ptr @s2n_strerror(i32 noundef %2167, ptr noundef @.str.3)
  %2169 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2170 = load i32, ptr %2169, align 4, !tbaa !5
  %2171 = call ptr @s2n_strerror_debug(i32 noundef %2170, ptr noundef @.str.3)
  %2172 = call ptr @__errno_location() #12
  %2173 = load i32, ptr %2172, align 4, !tbaa !5
  %2174 = call ptr @strerror(i32 noundef %2173) #11
  %2175 = call ptr @__errno_location() #12
  %2176 = load i32, ptr %2175, align 4, !tbaa !5
  %2177 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2164, ptr noundef @.str.4, i32 noundef %2165, ptr noundef @.str.38, ptr noundef @.str.2, i32 noundef 135, ptr noundef %2168, ptr noundef %2171, ptr noundef %2174, i32 noundef %2176) #11
  br label %2178

2178:                                             ; preds = %2161, %2144
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #11
  br label %2179

2179:                                             ; preds = %2178
  br label %2180

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

2181:                                             ; No predecessors!
  br label %2182

2182:                                             ; preds = %2181
  br label %2183

2183:                                             ; preds = %2182, %2112
  br label %2184

2184:                                             ; preds = %2183
  br label %2185

2185:                                             ; preds = %2184
  call void @llvm.lifetime.start.p0(i64 1, ptr %49) #11
  store i8 0, ptr %49, align 1, !tbaa !61
  call void @llvm.lifetime.start.p0(i64 2, ptr %50) #11
  store i16 0, ptr %50, align 2, !tbaa !58
  br label %2186

2186:                                             ; preds = %2185
  %2187 = load i32, ptr @test_count, align 4, !tbaa !5
  %2188 = add nsw i32 %2187, 1
  store i32 %2188, ptr @test_count, align 4, !tbaa !5
  %2189 = load ptr, ptr %6, align 8, !tbaa !9
  %2190 = call i32 @s2n_record_header_parse(ptr noundef %2189, ptr noundef %49, ptr noundef %50)
  %2191 = icmp eq i32 %2190, -1
  br i1 %2191, label %2192, label %2245

2192:                                             ; preds = %2186
  br label %2193

2193:                                             ; preds = %2192
  br label %2194

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

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

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

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

2240:                                             ; preds = %2223, %2206
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #11
  br label %2241

2241:                                             ; preds = %2240
  br label %2242

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

2243:                                             ; No predecessors!
  br label %2244

2244:                                             ; preds = %2243
  br label %2245

2245:                                             ; preds = %2244, %2186
  br label %2246

2246:                                             ; preds = %2245
  br label %2247

2247:                                             ; preds = %2246
  br label %2248

2248:                                             ; preds = %2247
  %2249 = load i32, ptr @test_count, align 4, !tbaa !5
  %2250 = add nsw i32 %2249, 1
  store i32 %2250, ptr @test_count, align 4, !tbaa !5
  %2251 = load ptr, ptr %6, align 8, !tbaa !9
  %2252 = call i32 @s2n_record_parse(ptr noundef %2251)
  %2253 = icmp eq i32 %2252, -1
  br i1 %2253, label %2254, label %2307

2254:                                             ; preds = %2248
  br label %2255

2255:                                             ; preds = %2254
  br label %2256

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

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

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

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

2302:                                             ; preds = %2285, %2268
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #11
  br label %2303

2303:                                             ; preds = %2302
  br label %2304

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

2305:                                             ; No predecessors!
  br label %2306

2306:                                             ; preds = %2305
  br label %2307

2307:                                             ; preds = %2306, %2248
  br label %2308

2308:                                             ; preds = %2307
  br label %2309

2309:                                             ; preds = %2308
  br label %2310

2310:                                             ; preds = %2309
  %2311 = load i32, ptr @test_count, align 4, !tbaa !5
  %2312 = add nsw i32 %2311, 1
  store i32 %2312, ptr @test_count, align 4, !tbaa !5
  %2313 = load i8, ptr %49, align 1, !tbaa !61
  %2314 = zext i8 %2313 to i32
  %2315 = icmp eq i32 %2314, 23
  br i1 %2315, label %2369, label %2316

2316:                                             ; preds = %2310
  br label %2317

2317:                                             ; preds = %2316
  br label %2318

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

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

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

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

2364:                                             ; preds = %2347, %2330
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #11
  br label %2365

2365:                                             ; preds = %2364
  br label %2366

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

2367:                                             ; No predecessors!
  br label %2368

2368:                                             ; preds = %2367
  br label %2369

2369:                                             ; preds = %2368, %2310
  br label %2370

2370:                                             ; preds = %2369
  br label %2371

2371:                                             ; preds = %2370
  br label %2372

2372:                                             ; preds = %2371
  %2373 = load i32, ptr @test_count, align 4, !tbaa !5
  %2374 = add nsw i32 %2373, 1
  store i32 %2374, ptr @test_count, align 4, !tbaa !5
  %2375 = load i16, ptr %50, align 2, !tbaa !58
  %2376 = zext i16 %2375 to i32
  %2377 = load i16, ptr %37, align 2, !tbaa !58
  %2378 = zext i16 %2377 to i32
  %2379 = icmp eq i32 %2376, %2378
  br i1 %2379, label %2433, label %2380

2380:                                             ; preds = %2372
  br label %2381

2381:                                             ; preds = %2380
  br label %2382

2382:                                             ; preds = %2381
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #11
  %2383 = call ptr @__errno_location() #12
  %2384 = load i32, ptr %2383, align 4, !tbaa !5
  store i32 %2384, ptr %54, 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 %54, 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.42, ptr noundef @.str.2, i32 noundef 143, ptr noundef %2401, ptr noundef %2404, ptr noundef %2407, i32 noundef %2409) #11
  br label %2428

2411:                                             ; preds = %2389, %2382
  %2412 = load i32, ptr %54, 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.42, ptr noundef @.str.2, i32 noundef 143, 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 %54) #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, %2372
  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 ptr, ptr %6, align 8, !tbaa !9
  %2440 = getelementptr inbounds %struct.s2n_connection, ptr %2439, i32 0, i32 38
  %2441 = call i32 @s2n_stuffer_wipe(ptr noundef %2440)
  %2442 = icmp eq i32 %2441, -1
  br i1 %2442, label %2443, label %2496

2443:                                             ; preds = %2436
  br label %2444

2444:                                             ; preds = %2443
  br label %2445

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

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

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

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

2491:                                             ; preds = %2474, %2457
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #11
  br label %2492

2492:                                             ; preds = %2491
  br label %2493

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

2494:                                             ; No predecessors!
  br label %2495

2495:                                             ; preds = %2494
  br label %2496

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

2497:                                             ; preds = %2496
  br label %2498

2498:                                             ; preds = %2497
  br label %2499

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

2506:                                             ; preds = %2499
  br label %2507

2507:                                             ; preds = %2506
  br label %2508

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

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

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

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

2554:                                             ; preds = %2537, %2520
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #11
  br label %2555

2555:                                             ; preds = %2554
  br label %2556

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

2557:                                             ; No predecessors!
  br label %2558

2558:                                             ; preds = %2557
  br label %2559

2559:                                             ; preds = %2558, %2499
  br label %2560

2560:                                             ; preds = %2559
  br label %2561

2561:                                             ; preds = %2560
  br label %2562

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

2568:                                             ; preds = %2562
  br label %2569

2569:                                             ; preds = %2568
  br label %2570

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

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

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

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

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

2617:                                             ; preds = %2616
  br label %2618

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

2619:                                             ; No predecessors!
  br label %2620

2620:                                             ; preds = %2619
  br label %2621

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

2622:                                             ; preds = %2621
  br label %2623

2623:                                             ; preds = %2622
  %2624 = load ptr, ptr %6, align 8, !tbaa !9
  %2625 = getelementptr inbounds %struct.s2n_connection, ptr %2624, i32 0, i32 25
  store i8 1, ptr %2625, align 2, !tbaa !54
  %2626 = load ptr, ptr %6, align 8, !tbaa !9
  %2627 = getelementptr inbounds %struct.s2n_connection, ptr %2626, i32 0, i32 22
  store i8 33, ptr %2627, align 1, !tbaa !55
  %2628 = load ptr, ptr %6, align 8, !tbaa !9
  %2629 = getelementptr inbounds %struct.s2n_connection, ptr %2628, i32 0, i32 21
  store i8 33, ptr %2629, align 2, !tbaa !56
  %2630 = load ptr, ptr %6, align 8, !tbaa !9
  %2631 = getelementptr inbounds %struct.s2n_connection, ptr %2630, i32 0, i32 23
  store i8 33, ptr %2631, align 4, !tbaa !57
  br label %2632

2632:                                             ; preds = %2623
  %2633 = load i32, ptr @test_count, align 4, !tbaa !5
  %2634 = add nsw i32 %2633, 1
  store i32 %2634, ptr @test_count, align 4, !tbaa !5
  %2635 = load ptr, ptr %6, align 8, !tbaa !9
  %2636 = call i32 @destroy_server_keys(ptr noundef %2635)
  %2637 = icmp eq i32 %2636, -1
  br i1 %2637, label %2638, label %2691

2638:                                             ; preds = %2632
  br label %2639

2639:                                             ; preds = %2638
  br label %2640

2640:                                             ; preds = %2639
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #11
  %2641 = call ptr @__errno_location() #12
  %2642 = load i32, ptr %2641, align 4, !tbaa !5
  store i32 %2642, ptr %58, align 4, !tbaa !5
  %2643 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2644 = call i32 @s2n_print_stacktrace(ptr noundef %2643)
  %2645 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2646 = trunc i8 %2645 to i1
  br i1 %2646, label %2647, label %2669

2647:                                             ; preds = %2640
  %2648 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2649 = call i32 @fileno(ptr noundef %2648) #11
  %2650 = call i32 @isatty(i32 noundef %2649) #11
  %2651 = icmp ne i32 %2650, 0
  br i1 %2651, label %2652, label %2669

2652:                                             ; preds = %2647
  %2653 = load i32, ptr %58, align 4, !tbaa !5
  %2654 = call ptr @__errno_location() #12
  store i32 %2653, ptr %2654, align 4, !tbaa !5
  %2655 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2656 = load i32, ptr @test_count, align 4, !tbaa !5
  %2657 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2658 = load i32, ptr %2657, align 4, !tbaa !5
  %2659 = call ptr @s2n_strerror(i32 noundef %2658, ptr noundef @.str.3)
  %2660 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2661 = load i32, ptr %2660, align 4, !tbaa !5
  %2662 = call ptr @s2n_strerror_debug(i32 noundef %2661, ptr noundef @.str.3)
  %2663 = call ptr @__errno_location() #12
  %2664 = load i32, ptr %2663, align 4, !tbaa !5
  %2665 = call ptr @strerror(i32 noundef %2664) #11
  %2666 = call ptr @__errno_location() #12
  %2667 = load i32, ptr %2666, align 4, !tbaa !5
  %2668 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2655, ptr noundef @.str, i32 noundef %2656, ptr noundef @.str.22, ptr noundef @.str.2, i32 noundef 154, ptr noundef %2659, ptr noundef %2662, ptr noundef %2665, i32 noundef %2667) #11
  br label %2686

2669:                                             ; preds = %2647, %2640
  %2670 = load i32, ptr %58, align 4, !tbaa !5
  %2671 = call ptr @__errno_location() #12
  store i32 %2670, ptr %2671, align 4, !tbaa !5
  %2672 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2673 = load i32, ptr @test_count, align 4, !tbaa !5
  %2674 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2675 = load i32, ptr %2674, align 4, !tbaa !5
  %2676 = call ptr @s2n_strerror(i32 noundef %2675, ptr noundef @.str.3)
  %2677 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2678 = load i32, ptr %2677, align 4, !tbaa !5
  %2679 = call ptr @s2n_strerror_debug(i32 noundef %2678, ptr noundef @.str.3)
  %2680 = call ptr @__errno_location() #12
  %2681 = load i32, ptr %2680, align 4, !tbaa !5
  %2682 = call ptr @strerror(i32 noundef %2681) #11
  %2683 = call ptr @__errno_location() #12
  %2684 = load i32, ptr %2683, align 4, !tbaa !5
  %2685 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2672, ptr noundef @.str.4, i32 noundef %2673, ptr noundef @.str.22, ptr noundef @.str.2, i32 noundef 154, ptr noundef %2676, ptr noundef %2679, ptr noundef %2682, i32 noundef %2684) #11
  br label %2686

2686:                                             ; preds = %2669, %2652
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #11
  br label %2687

2687:                                             ; preds = %2686
  br label %2688

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

2689:                                             ; No predecessors!
  br label %2690

2690:                                             ; preds = %2689
  br label %2691

2691:                                             ; preds = %2690, %2632
  br label %2692

2692:                                             ; preds = %2691
  br label %2693

2693:                                             ; preds = %2692
  br label %2694

2694:                                             ; preds = %2693
  %2695 = load i32, ptr @test_count, align 4, !tbaa !5
  %2696 = add nsw i32 %2695, 1
  store i32 %2696, ptr @test_count, align 4, !tbaa !5
  %2697 = load ptr, ptr %6, align 8, !tbaa !9
  %2698 = call i32 @setup_server_keys(ptr noundef %2697, ptr noundef %9)
  %2699 = icmp eq i32 %2698, -1
  br i1 %2699, label %2700, label %2753

2700:                                             ; preds = %2694
  br label %2701

2701:                                             ; preds = %2700
  br label %2702

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

2709:                                             ; preds = %2702
  %2710 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2711 = call i32 @fileno(ptr noundef %2710) #11
  %2712 = call i32 @isatty(i32 noundef %2711) #11
  %2713 = icmp ne i32 %2712, 0
  br i1 %2713, label %2714, label %2731

2714:                                             ; preds = %2709
  %2715 = load i32, ptr %59, align 4, !tbaa !5
  %2716 = call ptr @__errno_location() #12
  store i32 %2715, ptr %2716, align 4, !tbaa !5
  %2717 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2718 = load i32, ptr @test_count, align 4, !tbaa !5
  %2719 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2720 = load i32, ptr %2719, align 4, !tbaa !5
  %2721 = call ptr @s2n_strerror(i32 noundef %2720, ptr noundef @.str.3)
  %2722 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2723 = load i32, ptr %2722, align 4, !tbaa !5
  %2724 = call ptr @s2n_strerror_debug(i32 noundef %2723, ptr noundef @.str.3)
  %2725 = call ptr @__errno_location() #12
  %2726 = load i32, ptr %2725, align 4, !tbaa !5
  %2727 = call ptr @strerror(i32 noundef %2726) #11
  %2728 = call ptr @__errno_location() #12
  %2729 = load i32, ptr %2728, align 4, !tbaa !5
  %2730 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2717, ptr noundef @.str, i32 noundef %2718, ptr noundef @.str.23, ptr noundef @.str.2, i32 noundef 155, ptr noundef %2721, ptr noundef %2724, ptr noundef %2727, i32 noundef %2729) #11
  br label %2748

2731:                                             ; preds = %2709, %2702
  %2732 = load i32, ptr %59, align 4, !tbaa !5
  %2733 = call ptr @__errno_location() #12
  store i32 %2732, ptr %2733, align 4, !tbaa !5
  %2734 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2735 = load i32, ptr @test_count, align 4, !tbaa !5
  %2736 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2737 = load i32, ptr %2736, align 4, !tbaa !5
  %2738 = call ptr @s2n_strerror(i32 noundef %2737, ptr noundef @.str.3)
  %2739 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2740 = load i32, ptr %2739, align 4, !tbaa !5
  %2741 = call ptr @s2n_strerror_debug(i32 noundef %2740, ptr noundef @.str.3)
  %2742 = call ptr @__errno_location() #12
  %2743 = load i32, ptr %2742, align 4, !tbaa !5
  %2744 = call ptr @strerror(i32 noundef %2743) #11
  %2745 = call ptr @__errno_location() #12
  %2746 = load i32, ptr %2745, align 4, !tbaa !5
  %2747 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2734, ptr noundef @.str.4, i32 noundef %2735, ptr noundef @.str.23, ptr noundef @.str.2, i32 noundef 155, ptr noundef %2738, ptr noundef %2741, ptr noundef %2744, i32 noundef %2746) #11
  br label %2748

2748:                                             ; preds = %2731, %2714
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #11
  br label %2749

2749:                                             ; preds = %2748
  br label %2750

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

2751:                                             ; No predecessors!
  br label %2752

2752:                                             ; preds = %2751
  br label %2753

2753:                                             ; preds = %2752, %2694
  br label %2754

2754:                                             ; preds = %2753
  br label %2755

2755:                                             ; preds = %2754
  br label %2756

2756:                                             ; preds = %2755
  %2757 = load i32, ptr @test_count, align 4, !tbaa !5
  %2758 = add nsw i32 %2757, 1
  store i32 %2758, ptr @test_count, align 4, !tbaa !5
  %2759 = load ptr, ptr %6, align 8, !tbaa !9
  %2760 = call i32 @s2n_record_write(ptr noundef %2759, i8 noundef zeroext 23, ptr noundef %25)
  %2761 = getelementptr inbounds %struct.s2n_result, ptr %60, i32 0, i32 0
  store i32 %2760, ptr %2761, align 4
  %2762 = getelementptr inbounds %struct.s2n_result, ptr %60, i32 0, i32 0
  %2763 = load i32, ptr %2762, align 4
  %2764 = call zeroext i1 @s2n_result_is_ok(i32 %2763)
  br i1 %2764, label %2818, label %2765

2765:                                             ; preds = %2756
  br label %2766

2766:                                             ; preds = %2765
  br label %2767

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

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

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

2796:                                             ; preds = %2774, %2767
  %2797 = load i32, ptr %61, align 4, !tbaa !5
  %2798 = call ptr @__errno_location() #12
  store i32 %2797, ptr %2798, align 4, !tbaa !5
  %2799 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2800 = load i32, ptr @test_count, align 4, !tbaa !5
  %2801 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2802 = load i32, ptr %2801, align 4, !tbaa !5
  %2803 = call ptr @s2n_strerror(i32 noundef %2802, ptr noundef @.str.3)
  %2804 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2805 = load i32, ptr %2804, align 4, !tbaa !5
  %2806 = call ptr @s2n_strerror_debug(i32 noundef %2805, ptr noundef @.str.3)
  %2807 = call ptr @__errno_location() #12
  %2808 = load i32, ptr %2807, align 4, !tbaa !5
  %2809 = call ptr @strerror(i32 noundef %2808) #11
  %2810 = call ptr @__errno_location() #12
  %2811 = load i32, ptr %2810, align 4, !tbaa !5
  %2812 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2799, ptr noundef @.str.4, i32 noundef %2800, ptr noundef @.str.43, ptr noundef @.str.2, i32 noundef 156, ptr noundef %2803, ptr noundef %2806, ptr noundef %2809, i32 noundef %2811) #11
  br label %2813

2813:                                             ; preds = %2796, %2779
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #11
  br label %2814

2814:                                             ; preds = %2813
  br label %2815

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

2816:                                             ; No predecessors!
  br label %2817

2817:                                             ; preds = %2816
  br label %2818

2818:                                             ; preds = %2817, %2756
  br label %2819

2819:                                             ; preds = %2818
  br label %2820

2820:                                             ; preds = %2819
  br label %2821

2821:                                             ; preds = %2820
  %2822 = load i32, ptr @test_count, align 4, !tbaa !5
  %2823 = add nsw i32 %2822, 1
  store i32 %2823, ptr @test_count, align 4, !tbaa !5
  %2824 = load ptr, ptr %6, align 8, !tbaa !9
  %2825 = getelementptr inbounds %struct.s2n_connection, ptr %2824, i32 0, i32 40
  %2826 = call i32 @s2n_stuffer_wipe(ptr noundef %2825)
  %2827 = icmp eq i32 %2826, -1
  br i1 %2827, label %2828, label %2881

2828:                                             ; preds = %2821
  br label %2829

2829:                                             ; preds = %2828
  br label %2830

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

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

2842:                                             ; preds = %2837
  %2843 = load i32, ptr %62, align 4, !tbaa !5
  %2844 = call ptr @__errno_location() #12
  store i32 %2843, ptr %2844, align 4, !tbaa !5
  %2845 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2846 = load i32, ptr @test_count, align 4, !tbaa !5
  %2847 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2848 = load i32, ptr %2847, align 4, !tbaa !5
  %2849 = call ptr @s2n_strerror(i32 noundef %2848, ptr noundef @.str.3)
  %2850 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2851 = load i32, ptr %2850, align 4, !tbaa !5
  %2852 = call ptr @s2n_strerror_debug(i32 noundef %2851, ptr noundef @.str.3)
  %2853 = call ptr @__errno_location() #12
  %2854 = load i32, ptr %2853, align 4, !tbaa !5
  %2855 = call ptr @strerror(i32 noundef %2854) #11
  %2856 = call ptr @__errno_location() #12
  %2857 = load i32, ptr %2856, align 4, !tbaa !5
  %2858 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2845, ptr noundef @.str, i32 noundef %2846, ptr noundef @.str.35, ptr noundef @.str.2, i32 noundef 160, ptr noundef %2849, ptr noundef %2852, ptr noundef %2855, i32 noundef %2857) #11
  br label %2876

2859:                                             ; preds = %2837, %2830
  %2860 = load i32, ptr %62, align 4, !tbaa !5
  %2861 = call ptr @__errno_location() #12
  store i32 %2860, ptr %2861, align 4, !tbaa !5
  %2862 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2863 = load i32, ptr @test_count, align 4, !tbaa !5
  %2864 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2865 = load i32, ptr %2864, align 4, !tbaa !5
  %2866 = call ptr @s2n_strerror(i32 noundef %2865, ptr noundef @.str.3)
  %2867 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2868 = load i32, ptr %2867, align 4, !tbaa !5
  %2869 = call ptr @s2n_strerror_debug(i32 noundef %2868, ptr noundef @.str.3)
  %2870 = call ptr @__errno_location() #12
  %2871 = load i32, ptr %2870, align 4, !tbaa !5
  %2872 = call ptr @strerror(i32 noundef %2871) #11
  %2873 = call ptr @__errno_location() #12
  %2874 = load i32, ptr %2873, align 4, !tbaa !5
  %2875 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2862, ptr noundef @.str.4, i32 noundef %2863, ptr noundef @.str.35, ptr noundef @.str.2, i32 noundef 160, ptr noundef %2866, ptr noundef %2869, ptr noundef %2872, i32 noundef %2874) #11
  br label %2876

2876:                                             ; preds = %2859, %2842
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #11
  br label %2877

2877:                                             ; preds = %2876
  br label %2878

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

2879:                                             ; No predecessors!
  br label %2880

2880:                                             ; preds = %2879
  br label %2881

2881:                                             ; preds = %2880, %2821
  br label %2882

2882:                                             ; preds = %2881
  br label %2883

2883:                                             ; preds = %2882
  br label %2884

2884:                                             ; preds = %2883
  %2885 = load i32, ptr @test_count, align 4, !tbaa !5
  %2886 = add nsw i32 %2885, 1
  store i32 %2886, ptr @test_count, align 4, !tbaa !5
  %2887 = load ptr, ptr %6, align 8, !tbaa !9
  %2888 = getelementptr inbounds %struct.s2n_connection, ptr %2887, i32 0, i32 38
  %2889 = call i32 @s2n_stuffer_wipe(ptr noundef %2888)
  %2890 = icmp eq i32 %2889, -1
  br i1 %2890, label %2891, label %2944

2891:                                             ; preds = %2884
  br label %2892

2892:                                             ; preds = %2891
  br label %2893

2893:                                             ; preds = %2892
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #11
  %2894 = call ptr @__errno_location() #12
  %2895 = load i32, ptr %2894, align 4, !tbaa !5
  store i32 %2895, ptr %63, align 4, !tbaa !5
  %2896 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2897 = call i32 @s2n_print_stacktrace(ptr noundef %2896)
  %2898 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2899 = trunc i8 %2898 to i1
  br i1 %2899, label %2900, label %2922

2900:                                             ; preds = %2893
  %2901 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2902 = call i32 @fileno(ptr noundef %2901) #11
  %2903 = call i32 @isatty(i32 noundef %2902) #11
  %2904 = icmp ne i32 %2903, 0
  br i1 %2904, label %2905, label %2922

2905:                                             ; preds = %2900
  %2906 = load i32, ptr %63, align 4, !tbaa !5
  %2907 = call ptr @__errno_location() #12
  store i32 %2906, ptr %2907, align 4, !tbaa !5
  %2908 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2909 = load i32, ptr @test_count, align 4, !tbaa !5
  %2910 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2911 = load i32, ptr %2910, align 4, !tbaa !5
  %2912 = call ptr @s2n_strerror(i32 noundef %2911, ptr noundef @.str.3)
  %2913 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2914 = load i32, ptr %2913, align 4, !tbaa !5
  %2915 = call ptr @s2n_strerror_debug(i32 noundef %2914, ptr noundef @.str.3)
  %2916 = call ptr @__errno_location() #12
  %2917 = load i32, ptr %2916, align 4, !tbaa !5
  %2918 = call ptr @strerror(i32 noundef %2917) #11
  %2919 = call ptr @__errno_location() #12
  %2920 = load i32, ptr %2919, align 4, !tbaa !5
  %2921 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2908, ptr noundef @.str, i32 noundef %2909, ptr noundef @.str.36, ptr noundef @.str.2, i32 noundef 161, ptr noundef %2912, ptr noundef %2915, ptr noundef %2918, i32 noundef %2920) #11
  br label %2939

2922:                                             ; preds = %2900, %2893
  %2923 = load i32, ptr %63, align 4, !tbaa !5
  %2924 = call ptr @__errno_location() #12
  store i32 %2923, ptr %2924, align 4, !tbaa !5
  %2925 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2926 = load i32, ptr @test_count, align 4, !tbaa !5
  %2927 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2928 = load i32, ptr %2927, align 4, !tbaa !5
  %2929 = call ptr @s2n_strerror(i32 noundef %2928, ptr noundef @.str.3)
  %2930 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2931 = load i32, ptr %2930, align 4, !tbaa !5
  %2932 = call ptr @s2n_strerror_debug(i32 noundef %2931, ptr noundef @.str.3)
  %2933 = call ptr @__errno_location() #12
  %2934 = load i32, ptr %2933, align 4, !tbaa !5
  %2935 = call ptr @strerror(i32 noundef %2934) #11
  %2936 = call ptr @__errno_location() #12
  %2937 = load i32, ptr %2936, align 4, !tbaa !5
  %2938 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2925, ptr noundef @.str.4, i32 noundef %2926, ptr noundef @.str.36, ptr noundef @.str.2, i32 noundef 161, ptr noundef %2929, ptr noundef %2932, ptr noundef %2935, i32 noundef %2937) #11
  br label %2939

2939:                                             ; preds = %2922, %2905
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #11
  br label %2940

2940:                                             ; preds = %2939
  br label %2941

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

2942:                                             ; No predecessors!
  br label %2943

2943:                                             ; preds = %2942
  br label %2944

2944:                                             ; preds = %2943, %2884
  br label %2945

2945:                                             ; preds = %2944
  br label %2946

2946:                                             ; preds = %2945
  br label %2947

2947:                                             ; preds = %2946
  %2948 = load i32, ptr @test_count, align 4, !tbaa !5
  %2949 = add nsw i32 %2948, 1
  store i32 %2949, ptr @test_count, align 4, !tbaa !5
  %2950 = load ptr, ptr %6, align 8, !tbaa !9
  %2951 = getelementptr inbounds %struct.s2n_connection, ptr %2950, i32 0, i32 41
  %2952 = load ptr, ptr %6, align 8, !tbaa !9
  %2953 = getelementptr inbounds %struct.s2n_connection, ptr %2952, i32 0, i32 38
  %2954 = call i32 @s2n_stuffer_copy(ptr noundef %2951, ptr noundef %2953, i32 noundef 5)
  %2955 = icmp eq i32 %2954, -1
  br i1 %2955, label %2956, label %3009

2956:                                             ; preds = %2947
  br label %2957

2957:                                             ; preds = %2956
  br label %2958

2958:                                             ; preds = %2957
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #11
  %2959 = call ptr @__errno_location() #12
  %2960 = load i32, ptr %2959, align 4, !tbaa !5
  store i32 %2960, ptr %64, align 4, !tbaa !5
  %2961 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2962 = call i32 @s2n_print_stacktrace(ptr noundef %2961)
  %2963 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2964 = trunc i8 %2963 to i1
  br i1 %2964, label %2965, label %2987

2965:                                             ; preds = %2958
  %2966 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2967 = call i32 @fileno(ptr noundef %2966) #11
  %2968 = call i32 @isatty(i32 noundef %2967) #11
  %2969 = icmp ne i32 %2968, 0
  br i1 %2969, label %2970, label %2987

2970:                                             ; preds = %2965
  %2971 = load i32, ptr %64, align 4, !tbaa !5
  %2972 = call ptr @__errno_location() #12
  store i32 %2971, ptr %2972, align 4, !tbaa !5
  %2973 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2974 = load i32, ptr @test_count, align 4, !tbaa !5
  %2975 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2976 = load i32, ptr %2975, align 4, !tbaa !5
  %2977 = call ptr @s2n_strerror(i32 noundef %2976, ptr noundef @.str.3)
  %2978 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2979 = load i32, ptr %2978, align 4, !tbaa !5
  %2980 = call ptr @s2n_strerror_debug(i32 noundef %2979, ptr noundef @.str.3)
  %2981 = call ptr @__errno_location() #12
  %2982 = load i32, ptr %2981, align 4, !tbaa !5
  %2983 = call ptr @strerror(i32 noundef %2982) #11
  %2984 = call ptr @__errno_location() #12
  %2985 = load i32, ptr %2984, align 4, !tbaa !5
  %2986 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2973, ptr noundef @.str, i32 noundef %2974, ptr noundef @.str.37, ptr noundef @.str.2, i32 noundef 162, ptr noundef %2977, ptr noundef %2980, ptr noundef %2983, i32 noundef %2985) #11
  br label %3004

2987:                                             ; preds = %2965, %2958
  %2988 = load i32, ptr %64, align 4, !tbaa !5
  %2989 = call ptr @__errno_location() #12
  store i32 %2988, ptr %2989, align 4, !tbaa !5
  %2990 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2991 = load i32, ptr @test_count, align 4, !tbaa !5
  %2992 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2993 = load i32, ptr %2992, align 4, !tbaa !5
  %2994 = call ptr @s2n_strerror(i32 noundef %2993, ptr noundef @.str.3)
  %2995 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2996 = load i32, ptr %2995, align 4, !tbaa !5
  %2997 = call ptr @s2n_strerror_debug(i32 noundef %2996, ptr noundef @.str.3)
  %2998 = call ptr @__errno_location() #12
  %2999 = load i32, ptr %2998, align 4, !tbaa !5
  %3000 = call ptr @strerror(i32 noundef %2999) #11
  %3001 = call ptr @__errno_location() #12
  %3002 = load i32, ptr %3001, align 4, !tbaa !5
  %3003 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2990, ptr noundef @.str.4, i32 noundef %2991, ptr noundef @.str.37, ptr noundef @.str.2, i32 noundef 162, ptr noundef %2994, ptr noundef %2997, ptr noundef %3000, i32 noundef %3002) #11
  br label %3004

3004:                                             ; preds = %2987, %2970
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #11
  br label %3005

3005:                                             ; preds = %3004
  br label %3006

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

3007:                                             ; No predecessors!
  br label %3008

3008:                                             ; preds = %3007
  br label %3009

3009:                                             ; preds = %3008, %2947
  br label %3010

3010:                                             ; preds = %3009
  br label %3011

3011:                                             ; preds = %3010
  br label %3012

3012:                                             ; preds = %3011
  %3013 = load i32, ptr @test_count, align 4, !tbaa !5
  %3014 = add nsw i32 %3013, 1
  store i32 %3014, ptr @test_count, align 4, !tbaa !5
  %3015 = load ptr, ptr %6, align 8, !tbaa !9
  %3016 = getelementptr inbounds %struct.s2n_connection, ptr %3015, i32 0, i32 41
  %3017 = load ptr, ptr %6, align 8, !tbaa !9
  %3018 = getelementptr inbounds %struct.s2n_connection, ptr %3017, i32 0, i32 40
  %3019 = load ptr, ptr %6, align 8, !tbaa !9
  %3020 = getelementptr inbounds %struct.s2n_connection, ptr %3019, i32 0, i32 41
  %3021 = getelementptr inbounds %struct.s2n_stuffer, ptr %3020, i32 0, i32 2
  %3022 = load i32, ptr %3021, align 4, !tbaa !63
  %3023 = load ptr, ptr %6, align 8, !tbaa !9
  %3024 = getelementptr inbounds %struct.s2n_connection, ptr %3023, i32 0, i32 41
  %3025 = getelementptr inbounds %struct.s2n_stuffer, ptr %3024, i32 0, i32 1
  %3026 = load i32, ptr %3025, align 8, !tbaa !64
  %3027 = sub i32 %3022, %3026
  %3028 = call i32 @s2n_stuffer_copy(ptr noundef %3016, ptr noundef %3018, i32 noundef %3027)
  %3029 = icmp eq i32 %3028, -1
  br i1 %3029, label %3030, label %3083

3030:                                             ; preds = %3012
  br label %3031

3031:                                             ; preds = %3030
  br label %3032

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

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

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

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

3078:                                             ; preds = %3061, %3044
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #11
  br label %3079

3079:                                             ; preds = %3078
  br label %3080

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

3081:                                             ; No predecessors!
  br label %3082

3082:                                             ; preds = %3081
  br label %3083

3083:                                             ; preds = %3082, %3012
  br label %3084

3084:                                             ; preds = %3083
  br label %3085

3085:                                             ; preds = %3084
  br label %3086

3086:                                             ; preds = %3085
  %3087 = load i32, ptr @test_count, align 4, !tbaa !5
  %3088 = add nsw i32 %3087, 1
  store i32 %3088, ptr @test_count, align 4, !tbaa !5
  %3089 = load ptr, ptr %6, align 8, !tbaa !9
  %3090 = getelementptr inbounds %struct.s2n_connection, ptr %3089, i32 0, i32 38
  %3091 = getelementptr inbounds %struct.s2n_stuffer, ptr %3090, i32 0, i32 0
  %3092 = getelementptr inbounds %struct.s2n_blob, ptr %3091, i32 0, i32 0
  %3093 = load ptr, ptr %3092, align 8, !tbaa !65
  %3094 = getelementptr inbounds i8, ptr %3093, i64 0
  %3095 = load i8, ptr %3094, align 1, !tbaa !61
  %3096 = zext i8 %3095 to i32
  %3097 = icmp eq i32 %3096, 23
  br i1 %3097, label %3151, label %3098

3098:                                             ; preds = %3086
  br label %3099

3099:                                             ; preds = %3098
  br label %3100

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

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

3112:                                             ; preds = %3107
  %3113 = load i32, ptr %66, align 4, !tbaa !5
  %3114 = call ptr @__errno_location() #12
  store i32 %3113, ptr %3114, align 4, !tbaa !5
  %3115 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3116 = load i32, ptr @test_count, align 4, !tbaa !5
  %3117 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3118 = load i32, ptr %3117, align 4, !tbaa !5
  %3119 = call ptr @s2n_strerror(i32 noundef %3118, ptr noundef @.str.3)
  %3120 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3121 = load i32, ptr %3120, align 4, !tbaa !5
  %3122 = call ptr @s2n_strerror_debug(i32 noundef %3121, ptr noundef @.str.3)
  %3123 = call ptr @__errno_location() #12
  %3124 = load i32, ptr %3123, align 4, !tbaa !5
  %3125 = call ptr @strerror(i32 noundef %3124) #11
  %3126 = call ptr @__errno_location() #12
  %3127 = load i32, ptr %3126, align 4, !tbaa !5
  %3128 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3115, ptr noundef @.str, i32 noundef %3116, ptr noundef @.str.44, ptr noundef @.str.2, i32 noundef 166, ptr noundef %3119, ptr noundef %3122, ptr noundef %3125, i32 noundef %3127) #11
  br label %3146

3129:                                             ; preds = %3107, %3100
  %3130 = load i32, ptr %66, align 4, !tbaa !5
  %3131 = call ptr @__errno_location() #12
  store i32 %3130, ptr %3131, align 4, !tbaa !5
  %3132 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3133 = load i32, ptr @test_count, align 4, !tbaa !5
  %3134 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3135 = load i32, ptr %3134, align 4, !tbaa !5
  %3136 = call ptr @s2n_strerror(i32 noundef %3135, ptr noundef @.str.3)
  %3137 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3138 = load i32, ptr %3137, align 4, !tbaa !5
  %3139 = call ptr @s2n_strerror_debug(i32 noundef %3138, ptr noundef @.str.3)
  %3140 = call ptr @__errno_location() #12
  %3141 = load i32, ptr %3140, align 4, !tbaa !5
  %3142 = call ptr @strerror(i32 noundef %3141) #11
  %3143 = call ptr @__errno_location() #12
  %3144 = load i32, ptr %3143, align 4, !tbaa !5
  %3145 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3132, ptr noundef @.str.4, i32 noundef %3133, ptr noundef @.str.44, ptr noundef @.str.2, i32 noundef 166, ptr noundef %3136, ptr noundef %3139, ptr noundef %3142, i32 noundef %3144) #11
  br label %3146

3146:                                             ; preds = %3129, %3112
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #11
  br label %3147

3147:                                             ; preds = %3146
  br label %3148

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

3149:                                             ; No predecessors!
  br label %3150

3150:                                             ; preds = %3149
  br label %3151

3151:                                             ; preds = %3150, %3086
  br label %3152

3152:                                             ; preds = %3151
  br label %3153

3153:                                             ; preds = %3152
  %3154 = load ptr, ptr %6, align 8, !tbaa !9
  %3155 = getelementptr inbounds %struct.s2n_connection, ptr %3154, i32 0, i32 38
  %3156 = getelementptr inbounds %struct.s2n_stuffer, ptr %3155, i32 0, i32 0
  %3157 = getelementptr inbounds %struct.s2n_blob, ptr %3156, i32 0, i32 0
  %3158 = load ptr, ptr %3157, align 8, !tbaa !65
  %3159 = getelementptr inbounds i8, ptr %3158, i64 0
  %3160 = load i8, ptr %3159, align 1, !tbaa !61
  %3161 = zext i8 %3160 to i32
  %3162 = xor i32 %3161, 1
  %3163 = trunc i32 %3162 to i8
  store i8 %3163, ptr %3159, align 1, !tbaa !61
  br label %3164

3164:                                             ; preds = %3153
  %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 = call i32 @s2n_record_header_parse(ptr noundef %3167, ptr noundef %49, ptr noundef %50)
  %3169 = icmp eq i32 %3168, -1
  br i1 %3169, label %3170, label %3223

3170:                                             ; preds = %3164
  br label %3171

3171:                                             ; preds = %3170
  br label %3172

3172:                                             ; preds = %3171
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #11
  %3173 = call ptr @__errno_location() #12
  %3174 = load i32, ptr %3173, align 4, !tbaa !5
  store i32 %3174, ptr %67, align 4, !tbaa !5
  %3175 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3176 = call i32 @s2n_print_stacktrace(ptr noundef %3175)
  %3177 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3178 = trunc i8 %3177 to i1
  br i1 %3178, label %3179, label %3201

3179:                                             ; preds = %3172
  %3180 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3181 = call i32 @fileno(ptr noundef %3180) #11
  %3182 = call i32 @isatty(i32 noundef %3181) #11
  %3183 = icmp ne i32 %3182, 0
  br i1 %3183, label %3184, label %3201

3184:                                             ; preds = %3179
  %3185 = load i32, ptr %67, align 4, !tbaa !5
  %3186 = call ptr @__errno_location() #12
  store i32 %3185, ptr %3186, align 4, !tbaa !5
  %3187 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3188 = load i32, ptr @test_count, align 4, !tbaa !5
  %3189 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3190 = load i32, ptr %3189, align 4, !tbaa !5
  %3191 = call ptr @s2n_strerror(i32 noundef %3190, ptr noundef @.str.3)
  %3192 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3193 = load i32, ptr %3192, align 4, !tbaa !5
  %3194 = call ptr @s2n_strerror_debug(i32 noundef %3193, ptr noundef @.str.3)
  %3195 = call ptr @__errno_location() #12
  %3196 = load i32, ptr %3195, align 4, !tbaa !5
  %3197 = call ptr @strerror(i32 noundef %3196) #11
  %3198 = call ptr @__errno_location() #12
  %3199 = load i32, ptr %3198, align 4, !tbaa !5
  %3200 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3187, ptr noundef @.str, i32 noundef %3188, ptr noundef @.str.39, ptr noundef @.str.2, i32 noundef 169, ptr noundef %3191, ptr noundef %3194, ptr noundef %3197, i32 noundef %3199) #11
  br label %3218

3201:                                             ; preds = %3179, %3172
  %3202 = load i32, ptr %67, 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.4, i32 noundef %3205, ptr noundef @.str.39, ptr noundef @.str.2, i32 noundef 169, ptr noundef %3208, ptr noundef %3211, ptr noundef %3214, i32 noundef %3216) #11
  br label %3218

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

3219:                                             ; preds = %3218
  br label %3220

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

3221:                                             ; No predecessors!
  br label %3222

3222:                                             ; preds = %3221
  br label %3223

3223:                                             ; preds = %3222, %3164
  br label %3224

3224:                                             ; preds = %3223
  br label %3225

3225:                                             ; preds = %3224
  br label %3226

3226:                                             ; preds = %3225
  %3227 = load i32, ptr @test_count, align 4, !tbaa !5
  %3228 = add nsw i32 %3227, 1
  store i32 %3228, ptr @test_count, align 4, !tbaa !5
  %3229 = load i8, ptr %49, align 1, !tbaa !61
  %3230 = zext i8 %3229 to i32
  %3231 = icmp eq i32 %3230, 22
  br i1 %3231, label %3285, label %3232

3232:                                             ; preds = %3226
  br label %3233

3233:                                             ; preds = %3232
  br label %3234

3234:                                             ; preds = %3233
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #11
  %3235 = call ptr @__errno_location() #12
  %3236 = load i32, ptr %3235, align 4, !tbaa !5
  store i32 %3236, ptr %68, align 4, !tbaa !5
  %3237 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3238 = call i32 @s2n_print_stacktrace(ptr noundef %3237)
  %3239 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3240 = trunc i8 %3239 to i1
  br i1 %3240, label %3241, label %3263

3241:                                             ; preds = %3234
  %3242 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3243 = call i32 @fileno(ptr noundef %3242) #11
  %3244 = call i32 @isatty(i32 noundef %3243) #11
  %3245 = icmp ne i32 %3244, 0
  br i1 %3245, label %3246, label %3263

3246:                                             ; preds = %3241
  %3247 = load i32, ptr %68, align 4, !tbaa !5
  %3248 = call ptr @__errno_location() #12
  store i32 %3247, ptr %3248, align 4, !tbaa !5
  %3249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3250 = load i32, ptr @test_count, align 4, !tbaa !5
  %3251 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3252 = load i32, ptr %3251, align 4, !tbaa !5
  %3253 = call ptr @s2n_strerror(i32 noundef %3252, ptr noundef @.str.3)
  %3254 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3255 = load i32, ptr %3254, align 4, !tbaa !5
  %3256 = call ptr @s2n_strerror_debug(i32 noundef %3255, ptr noundef @.str.3)
  %3257 = call ptr @__errno_location() #12
  %3258 = load i32, ptr %3257, align 4, !tbaa !5
  %3259 = call ptr @strerror(i32 noundef %3258) #11
  %3260 = call ptr @__errno_location() #12
  %3261 = load i32, ptr %3260, align 4, !tbaa !5
  %3262 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3249, ptr noundef @.str, i32 noundef %3250, ptr noundef @.str.45, ptr noundef @.str.2, i32 noundef 170, ptr noundef %3253, ptr noundef %3256, ptr noundef %3259, i32 noundef %3261) #11
  br label %3280

3263:                                             ; preds = %3241, %3234
  %3264 = load i32, ptr %68, align 4, !tbaa !5
  %3265 = call ptr @__errno_location() #12
  store i32 %3264, ptr %3265, align 4, !tbaa !5
  %3266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3267 = load i32, ptr @test_count, align 4, !tbaa !5
  %3268 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3269 = load i32, ptr %3268, align 4, !tbaa !5
  %3270 = call ptr @s2n_strerror(i32 noundef %3269, ptr noundef @.str.3)
  %3271 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3272 = load i32, ptr %3271, align 4, !tbaa !5
  %3273 = call ptr @s2n_strerror_debug(i32 noundef %3272, ptr noundef @.str.3)
  %3274 = call ptr @__errno_location() #12
  %3275 = load i32, ptr %3274, align 4, !tbaa !5
  %3276 = call ptr @strerror(i32 noundef %3275) #11
  %3277 = call ptr @__errno_location() #12
  %3278 = load i32, ptr %3277, align 4, !tbaa !5
  %3279 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3266, ptr noundef @.str.4, i32 noundef %3267, ptr noundef @.str.45, ptr noundef @.str.2, i32 noundef 170, ptr noundef %3270, ptr noundef %3273, ptr noundef %3276, i32 noundef %3278) #11
  br label %3280

3280:                                             ; preds = %3263, %3246
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #11
  br label %3281

3281:                                             ; preds = %3280
  br label %3282

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

3283:                                             ; No predecessors!
  br label %3284

3284:                                             ; preds = %3283
  br label %3285

3285:                                             ; preds = %3284, %3226
  br label %3286

3286:                                             ; preds = %3285
  br label %3287

3287:                                             ; preds = %3286
  br label %3288

3288:                                             ; preds = %3287
  br label %3289

3289:                                             ; preds = %3288
  %3290 = load i32, ptr @test_count, align 4, !tbaa !5
  %3291 = add nsw i32 %3290, 1
  store i32 %3291, ptr @test_count, align 4, !tbaa !5
  %3292 = load ptr, ptr %6, align 8, !tbaa !9
  %3293 = call i32 @s2n_record_parse(ptr noundef %3292)
  %3294 = icmp eq i32 %3293, -1
  br i1 %3294, label %3348, label %3295

3295:                                             ; preds = %3289
  br label %3296

3296:                                             ; preds = %3295
  br label %3297

3297:                                             ; preds = %3296
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #11
  %3298 = call ptr @__errno_location() #12
  %3299 = load i32, ptr %3298, align 4, !tbaa !5
  store i32 %3299, ptr %69, align 4, !tbaa !5
  %3300 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3301 = call i32 @s2n_print_stacktrace(ptr noundef %3300)
  %3302 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3303 = trunc i8 %3302 to i1
  br i1 %3303, label %3304, label %3326

3304:                                             ; preds = %3297
  %3305 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3306 = call i32 @fileno(ptr noundef %3305) #11
  %3307 = call i32 @isatty(i32 noundef %3306) #11
  %3308 = icmp ne i32 %3307, 0
  br i1 %3308, label %3309, label %3326

3309:                                             ; preds = %3304
  %3310 = load i32, ptr %69, align 4, !tbaa !5
  %3311 = call ptr @__errno_location() #12
  store i32 %3310, ptr %3311, align 4, !tbaa !5
  %3312 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3313 = load i32, ptr @test_count, align 4, !tbaa !5
  %3314 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3315 = load i32, ptr %3314, align 4, !tbaa !5
  %3316 = call ptr @s2n_strerror(i32 noundef %3315, ptr noundef @.str.3)
  %3317 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3318 = load i32, ptr %3317, align 4, !tbaa !5
  %3319 = call ptr @s2n_strerror_debug(i32 noundef %3318, ptr noundef @.str.3)
  %3320 = call ptr @__errno_location() #12
  %3321 = load i32, ptr %3320, align 4, !tbaa !5
  %3322 = call ptr @strerror(i32 noundef %3321) #11
  %3323 = call ptr @__errno_location() #12
  %3324 = load i32, ptr %3323, align 4, !tbaa !5
  %3325 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3312, ptr noundef @.str, i32 noundef %3313, ptr noundef @.str.46, ptr noundef @.str.2, i32 noundef 181, ptr noundef %3316, ptr noundef %3319, ptr noundef %3322, i32 noundef %3324) #11
  br label %3343

3326:                                             ; preds = %3304, %3297
  %3327 = load i32, ptr %69, align 4, !tbaa !5
  %3328 = call ptr @__errno_location() #12
  store i32 %3327, ptr %3328, align 4, !tbaa !5
  %3329 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3330 = load i32, ptr @test_count, align 4, !tbaa !5
  %3331 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3332 = load i32, ptr %3331, align 4, !tbaa !5
  %3333 = call ptr @s2n_strerror(i32 noundef %3332, ptr noundef @.str.3)
  %3334 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3335 = load i32, ptr %3334, align 4, !tbaa !5
  %3336 = call ptr @s2n_strerror_debug(i32 noundef %3335, ptr noundef @.str.3)
  %3337 = call ptr @__errno_location() #12
  %3338 = load i32, ptr %3337, align 4, !tbaa !5
  %3339 = call ptr @strerror(i32 noundef %3338) #11
  %3340 = call ptr @__errno_location() #12
  %3341 = load i32, ptr %3340, align 4, !tbaa !5
  %3342 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3329, ptr noundef @.str.4, i32 noundef %3330, ptr noundef @.str.46, ptr noundef @.str.2, i32 noundef 181, ptr noundef %3333, ptr noundef %3336, ptr noundef %3339, i32 noundef %3341) #11
  br label %3343

3343:                                             ; preds = %3326, %3309
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #11
  br label %3344

3344:                                             ; preds = %3343
  br label %3345

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

3346:                                             ; No predecessors!
  br label %3347

3347:                                             ; preds = %3346
  br label %3348

3348:                                             ; preds = %3347, %3289
  br label %3349

3349:                                             ; preds = %3348
  br label %3350

3350:                                             ; preds = %3349
  br label %3351

3351:                                             ; preds = %3350
  %3352 = load i32, ptr @test_count, align 4, !tbaa !5
  %3353 = add nsw i32 %3352, 1
  store i32 %3353, ptr @test_count, align 4, !tbaa !5
  %3354 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3355 = load i32, ptr %3354, align 4, !tbaa !5
  %3356 = icmp eq i32 %3355, 0
  br i1 %3356, label %3357, label %3410

3357:                                             ; preds = %3351
  br label %3358

3358:                                             ; preds = %3357
  br label %3359

3359:                                             ; preds = %3358
  call void @llvm.lifetime.start.p0(i64 4, ptr %70) #11
  %3360 = call ptr @__errno_location() #12
  %3361 = load i32, ptr %3360, align 4, !tbaa !5
  store i32 %3361, ptr %70, align 4, !tbaa !5
  %3362 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3363 = call i32 @s2n_print_stacktrace(ptr noundef %3362)
  %3364 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3365 = trunc i8 %3364 to i1
  br i1 %3365, label %3366, label %3388

3366:                                             ; preds = %3359
  %3367 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3368 = call i32 @fileno(ptr noundef %3367) #11
  %3369 = call i32 @isatty(i32 noundef %3368) #11
  %3370 = icmp ne i32 %3369, 0
  br i1 %3370, label %3371, label %3388

3371:                                             ; preds = %3366
  %3372 = load i32, ptr %70, align 4, !tbaa !5
  %3373 = call ptr @__errno_location() #12
  store i32 %3372, ptr %3373, align 4, !tbaa !5
  %3374 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3375 = load i32, ptr @test_count, align 4, !tbaa !5
  %3376 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3377 = load i32, ptr %3376, align 4, !tbaa !5
  %3378 = call ptr @s2n_strerror(i32 noundef %3377, ptr noundef @.str.3)
  %3379 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3380 = load i32, ptr %3379, align 4, !tbaa !5
  %3381 = call ptr @s2n_strerror_debug(i32 noundef %3380, ptr noundef @.str.3)
  %3382 = call ptr @__errno_location() #12
  %3383 = load i32, ptr %3382, align 4, !tbaa !5
  %3384 = call ptr @strerror(i32 noundef %3383) #11
  %3385 = call ptr @__errno_location() #12
  %3386 = load i32, ptr %3385, align 4, !tbaa !5
  %3387 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3374, ptr noundef @.str, i32 noundef %3375, ptr noundef @.str.47, ptr noundef @.str.2, i32 noundef 181, ptr noundef %3378, ptr noundef %3381, ptr noundef %3384, i32 noundef %3386) #11
  br label %3405

3388:                                             ; preds = %3366, %3359
  %3389 = load i32, ptr %70, align 4, !tbaa !5
  %3390 = call ptr @__errno_location() #12
  store i32 %3389, ptr %3390, align 4, !tbaa !5
  %3391 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3392 = load i32, ptr @test_count, align 4, !tbaa !5
  %3393 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3394 = load i32, ptr %3393, align 4, !tbaa !5
  %3395 = call ptr @s2n_strerror(i32 noundef %3394, ptr noundef @.str.3)
  %3396 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3397 = load i32, ptr %3396, align 4, !tbaa !5
  %3398 = call ptr @s2n_strerror_debug(i32 noundef %3397, ptr noundef @.str.3)
  %3399 = call ptr @__errno_location() #12
  %3400 = load i32, ptr %3399, align 4, !tbaa !5
  %3401 = call ptr @strerror(i32 noundef %3400) #11
  %3402 = call ptr @__errno_location() #12
  %3403 = load i32, ptr %3402, align 4, !tbaa !5
  %3404 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3391, ptr noundef @.str.4, i32 noundef %3392, ptr noundef @.str.47, ptr noundef @.str.2, i32 noundef 181, ptr noundef %3395, ptr noundef %3398, ptr noundef %3401, i32 noundef %3403) #11
  br label %3405

3405:                                             ; preds = %3388, %3371
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #11
  br label %3406

3406:                                             ; preds = %3405
  br label %3407

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

3408:                                             ; No predecessors!
  br label %3409

3409:                                             ; preds = %3408
  br label %3410

3410:                                             ; preds = %3409, %3351
  br label %3411

3411:                                             ; preds = %3410
  br label %3412

3412:                                             ; preds = %3411
  br label %3413

3413:                                             ; preds = %3412
  %3414 = load i32, ptr @test_count, align 4, !tbaa !5
  %3415 = add nsw i32 %3414, 1
  store i32 %3415, ptr @test_count, align 4, !tbaa !5
  %3416 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3417 = load i32, ptr %3416, align 4, !tbaa !5
  %3418 = call ptr @s2n_strerror_debug(i32 noundef %3417, ptr noundef @.str.3)
  %3419 = icmp eq ptr %3418, null
  br i1 %3419, label %3420, label %3473

3420:                                             ; preds = %3413
  br label %3421

3421:                                             ; preds = %3420
  br label %3422

3422:                                             ; preds = %3421
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #11
  %3423 = call ptr @__errno_location() #12
  %3424 = load i32, ptr %3423, align 4, !tbaa !5
  store i32 %3424, ptr %71, align 4, !tbaa !5
  %3425 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3426 = call i32 @s2n_print_stacktrace(ptr noundef %3425)
  %3427 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3428 = trunc i8 %3427 to i1
  br i1 %3428, label %3429, label %3451

3429:                                             ; preds = %3422
  %3430 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3431 = call i32 @fileno(ptr noundef %3430) #11
  %3432 = call i32 @isatty(i32 noundef %3431) #11
  %3433 = icmp ne i32 %3432, 0
  br i1 %3433, label %3434, label %3451

3434:                                             ; preds = %3429
  %3435 = load i32, ptr %71, align 4, !tbaa !5
  %3436 = call ptr @__errno_location() #12
  store i32 %3435, ptr %3436, align 4, !tbaa !5
  %3437 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3438 = load i32, ptr @test_count, align 4, !tbaa !5
  %3439 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3440 = load i32, ptr %3439, align 4, !tbaa !5
  %3441 = call ptr @s2n_strerror(i32 noundef %3440, ptr noundef @.str.3)
  %3442 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3443 = load i32, ptr %3442, align 4, !tbaa !5
  %3444 = call ptr @s2n_strerror_debug(i32 noundef %3443, ptr noundef @.str.3)
  %3445 = call ptr @__errno_location() #12
  %3446 = load i32, ptr %3445, align 4, !tbaa !5
  %3447 = call ptr @strerror(i32 noundef %3446) #11
  %3448 = call ptr @__errno_location() #12
  %3449 = load i32, ptr %3448, align 4, !tbaa !5
  %3450 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3437, ptr noundef @.str, i32 noundef %3438, ptr noundef @.str.27, ptr noundef @.str.2, i32 noundef 181, ptr noundef %3441, ptr noundef %3444, ptr noundef %3447, i32 noundef %3449) #11
  br label %3468

3451:                                             ; preds = %3429, %3422
  %3452 = load i32, ptr %71, align 4, !tbaa !5
  %3453 = call ptr @__errno_location() #12
  store i32 %3452, ptr %3453, align 4, !tbaa !5
  %3454 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3455 = load i32, ptr @test_count, align 4, !tbaa !5
  %3456 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3457 = load i32, ptr %3456, align 4, !tbaa !5
  %3458 = call ptr @s2n_strerror(i32 noundef %3457, ptr noundef @.str.3)
  %3459 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3460 = load i32, ptr %3459, align 4, !tbaa !5
  %3461 = call ptr @s2n_strerror_debug(i32 noundef %3460, ptr noundef @.str.3)
  %3462 = call ptr @__errno_location() #12
  %3463 = load i32, ptr %3462, align 4, !tbaa !5
  %3464 = call ptr @strerror(i32 noundef %3463) #11
  %3465 = call ptr @__errno_location() #12
  %3466 = load i32, ptr %3465, align 4, !tbaa !5
  %3467 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3454, ptr noundef @.str.4, i32 noundef %3455, ptr noundef @.str.27, ptr noundef @.str.2, i32 noundef 181, ptr noundef %3458, ptr noundef %3461, ptr noundef %3464, i32 noundef %3466) #11
  br label %3468

3468:                                             ; preds = %3451, %3434
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #11
  br label %3469

3469:                                             ; preds = %3468
  br label %3470

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

3471:                                             ; No predecessors!
  br label %3472

3472:                                             ; preds = %3471
  br label %3473

3473:                                             ; preds = %3472, %3413
  br label %3474

3474:                                             ; preds = %3473
  br label %3475

3475:                                             ; preds = %3474
  br label %3476

3476:                                             ; preds = %3475
  %3477 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %3477, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %3478 = call ptr @__errno_location() #12
  store i32 0, ptr %3478, align 4, !tbaa !5
  br label %3479

3479:                                             ; preds = %3476
  br label %3480

3480:                                             ; preds = %3479
  br label %3481

3481:                                             ; preds = %3480
  br label %3482

3482:                                             ; preds = %3481
  br label %3483

3483:                                             ; preds = %3482
  %3484 = load i32, ptr @test_count, align 4, !tbaa !5
  %3485 = add nsw i32 %3484, 1
  store i32 %3485, ptr @test_count, align 4, !tbaa !5
  %3486 = load ptr, ptr %6, align 8, !tbaa !9
  %3487 = getelementptr inbounds %struct.s2n_connection, ptr %3486, i32 0, i32 38
  %3488 = call i32 @s2n_stuffer_wipe(ptr noundef %3487)
  %3489 = icmp eq i32 %3488, -1
  br i1 %3489, label %3490, label %3543

3490:                                             ; preds = %3483
  br label %3491

3491:                                             ; preds = %3490
  br label %3492

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

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

3504:                                             ; preds = %3499
  %3505 = load i32, ptr %72, align 4, !tbaa !5
  %3506 = call ptr @__errno_location() #12
  store i32 %3505, ptr %3506, align 4, !tbaa !5
  %3507 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3508 = load i32, ptr @test_count, align 4, !tbaa !5
  %3509 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3510 = load i32, ptr %3509, align 4, !tbaa !5
  %3511 = call ptr @s2n_strerror(i32 noundef %3510, ptr noundef @.str.3)
  %3512 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3513 = load i32, ptr %3512, align 4, !tbaa !5
  %3514 = call ptr @s2n_strerror_debug(i32 noundef %3513, ptr noundef @.str.3)
  %3515 = call ptr @__errno_location() #12
  %3516 = load i32, ptr %3515, align 4, !tbaa !5
  %3517 = call ptr @strerror(i32 noundef %3516) #11
  %3518 = call ptr @__errno_location() #12
  %3519 = load i32, ptr %3518, align 4, !tbaa !5
  %3520 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3507, ptr noundef @.str, i32 noundef %3508, ptr noundef @.str.36, ptr noundef @.str.2, i32 noundef 183, ptr noundef %3511, ptr noundef %3514, ptr noundef %3517, i32 noundef %3519) #11
  br label %3538

3521:                                             ; preds = %3499, %3492
  %3522 = load i32, ptr %72, align 4, !tbaa !5
  %3523 = call ptr @__errno_location() #12
  store i32 %3522, ptr %3523, align 4, !tbaa !5
  %3524 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3525 = load i32, ptr @test_count, align 4, !tbaa !5
  %3526 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3527 = load i32, ptr %3526, align 4, !tbaa !5
  %3528 = call ptr @s2n_strerror(i32 noundef %3527, ptr noundef @.str.3)
  %3529 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3530 = load i32, ptr %3529, align 4, !tbaa !5
  %3531 = call ptr @s2n_strerror_debug(i32 noundef %3530, ptr noundef @.str.3)
  %3532 = call ptr @__errno_location() #12
  %3533 = load i32, ptr %3532, align 4, !tbaa !5
  %3534 = call ptr @strerror(i32 noundef %3533) #11
  %3535 = call ptr @__errno_location() #12
  %3536 = load i32, ptr %3535, align 4, !tbaa !5
  %3537 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3524, ptr noundef @.str.4, i32 noundef %3525, ptr noundef @.str.36, ptr noundef @.str.2, i32 noundef 183, ptr noundef %3528, ptr noundef %3531, ptr noundef %3534, i32 noundef %3536) #11
  br label %3538

3538:                                             ; preds = %3521, %3504
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #11
  br label %3539

3539:                                             ; preds = %3538
  br label %3540

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

3541:                                             ; No predecessors!
  br label %3542

3542:                                             ; preds = %3541
  br label %3543

3543:                                             ; preds = %3542, %3483
  br label %3544

3544:                                             ; preds = %3543
  br label %3545

3545:                                             ; preds = %3544
  br label %3546

3546:                                             ; preds = %3545
  %3547 = load i32, ptr @test_count, align 4, !tbaa !5
  %3548 = add nsw i32 %3547, 1
  store i32 %3548, ptr @test_count, align 4, !tbaa !5
  %3549 = load ptr, ptr %6, align 8, !tbaa !9
  %3550 = getelementptr inbounds %struct.s2n_connection, ptr %3549, i32 0, i32 40
  %3551 = call i32 @s2n_stuffer_wipe(ptr noundef %3550)
  %3552 = icmp eq i32 %3551, -1
  br i1 %3552, label %3553, label %3606

3553:                                             ; preds = %3546
  br label %3554

3554:                                             ; preds = %3553
  br label %3555

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

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

3567:                                             ; preds = %3562
  %3568 = load i32, ptr %73, align 4, !tbaa !5
  %3569 = call ptr @__errno_location() #12
  store i32 %3568, ptr %3569, align 4, !tbaa !5
  %3570 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3571 = load i32, ptr @test_count, align 4, !tbaa !5
  %3572 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3573 = load i32, ptr %3572, align 4, !tbaa !5
  %3574 = call ptr @s2n_strerror(i32 noundef %3573, ptr noundef @.str.3)
  %3575 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3576 = load i32, ptr %3575, align 4, !tbaa !5
  %3577 = call ptr @s2n_strerror_debug(i32 noundef %3576, ptr noundef @.str.3)
  %3578 = call ptr @__errno_location() #12
  %3579 = load i32, ptr %3578, align 4, !tbaa !5
  %3580 = call ptr @strerror(i32 noundef %3579) #11
  %3581 = call ptr @__errno_location() #12
  %3582 = load i32, ptr %3581, align 4, !tbaa !5
  %3583 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3570, ptr noundef @.str, i32 noundef %3571, ptr noundef @.str.35, ptr noundef @.str.2, i32 noundef 184, ptr noundef %3574, ptr noundef %3577, ptr noundef %3580, i32 noundef %3582) #11
  br label %3601

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

3601:                                             ; preds = %3584, %3567
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #11
  br label %3602

3602:                                             ; preds = %3601
  br label %3603

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

3604:                                             ; No predecessors!
  br label %3605

3605:                                             ; preds = %3604
  br label %3606

3606:                                             ; preds = %3605, %3546
  br label %3607

3607:                                             ; preds = %3606
  br label %3608

3608:                                             ; preds = %3607
  br label %3609

3609:                                             ; preds = %3608
  %3610 = load ptr, ptr %6, align 8, !tbaa !9
  %3611 = getelementptr inbounds %struct.s2n_connection, ptr %3610, i32 0, i32 26
  %3612 = load ptr, ptr %3611, align 8, !tbaa !17
  %3613 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %3612, i32 0, i32 0
  %3614 = load ptr, ptr %3613, align 8, !tbaa !46
  %3615 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %3614, i32 0, i32 6
  %3616 = load ptr, ptr %3615, align 8, !tbaa !51
  %3617 = getelementptr inbounds %struct.s2n_record_algorithm, ptr %3616, i32 0, i32 0
  %3618 = load ptr, ptr %3617, align 8, !tbaa !59
  %3619 = getelementptr inbounds %struct.s2n_cipher, ptr %3618, i32 0, i32 7
  %3620 = load ptr, ptr %3619, align 8, !tbaa !66
  %3621 = load ptr, ptr %6, align 8, !tbaa !9
  %3622 = getelementptr inbounds %struct.s2n_connection, ptr %3621, i32 0, i32 26
  %3623 = load ptr, ptr %3622, align 8, !tbaa !17
  %3624 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %3623, i32 0, i32 2
  %3625 = call i32 %3620(ptr noundef %3624)
  %3626 = getelementptr inbounds %struct.s2n_result, ptr %74, i32 0, i32 0
  store i32 %3625, ptr %3626, align 4
  %3627 = getelementptr inbounds %struct.s2n_result, ptr %74, i32 0, i32 0
  %3628 = load i32, ptr %3627, align 4
  %3629 = call zeroext i1 @s2n_result_is_ok(i32 %3628)
  br i1 %3629, label %3631, label %3630

3630:                                             ; preds = %3609
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %19, align 4
  br label %5750

3631:                                             ; preds = %3609
  br label %3632

3632:                                             ; preds = %3631
  br label %3633

3633:                                             ; preds = %3632
  br label %3634

3634:                                             ; preds = %3633
  %3635 = load ptr, ptr %6, align 8, !tbaa !9
  %3636 = getelementptr inbounds %struct.s2n_connection, ptr %3635, i32 0, i32 26
  %3637 = load ptr, ptr %3636, align 8, !tbaa !17
  %3638 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %3637, i32 0, i32 0
  %3639 = load ptr, ptr %3638, align 8, !tbaa !46
  %3640 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %3639, i32 0, i32 6
  %3641 = load ptr, ptr %3640, align 8, !tbaa !51
  %3642 = getelementptr inbounds %struct.s2n_record_algorithm, ptr %3641, i32 0, i32 0
  %3643 = load ptr, ptr %3642, align 8, !tbaa !59
  %3644 = getelementptr inbounds %struct.s2n_cipher, ptr %3643, i32 0, i32 7
  %3645 = load ptr, ptr %3644, align 8, !tbaa !66
  %3646 = load ptr, ptr %6, align 8, !tbaa !9
  %3647 = getelementptr inbounds %struct.s2n_connection, ptr %3646, i32 0, i32 26
  %3648 = load ptr, ptr %3647, align 8, !tbaa !17
  %3649 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %3648, i32 0, i32 1
  %3650 = call i32 %3645(ptr noundef %3649)
  %3651 = getelementptr inbounds %struct.s2n_result, ptr %75, i32 0, i32 0
  store i32 %3650, ptr %3651, align 4
  %3652 = getelementptr inbounds %struct.s2n_result, ptr %75, i32 0, i32 0
  %3653 = load i32, ptr %3652, align 4
  %3654 = call zeroext i1 @s2n_result_is_ok(i32 %3653)
  br i1 %3654, label %3656, label %3655

3655:                                             ; preds = %3634
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %19, align 4
  br label %5750

3656:                                             ; preds = %3634
  br label %3657

3657:                                             ; preds = %3656
  br label %3658

3658:                                             ; preds = %3657
  call void @llvm.lifetime.start.p0(i64 8, ptr %76) #11
  store i64 0, ptr %76, align 8, !tbaa !53
  br label %3659

3659:                                             ; preds = %4704, %3658
  %3660 = load i64, ptr %76, align 8, !tbaa !53
  %3661 = icmp ult i64 %3660, 16
  br i1 %3661, label %3663, label %3662

3662:                                             ; preds = %3659
  store i32 341, ptr %19, align 4
  br label %4707

3663:                                             ; preds = %3659
  br label %3664

3664:                                             ; preds = %3663
  %3665 = load i32, ptr @test_count, align 4, !tbaa !5
  %3666 = add nsw i32 %3665, 1
  store i32 %3666, ptr @test_count, align 4, !tbaa !5
  %3667 = load ptr, ptr %6, align 8, !tbaa !9
  %3668 = call i32 @s2n_connection_wipe(ptr noundef %3667)
  %3669 = icmp eq i32 %3668, -1
  br i1 %3669, label %3670, label %3723

3670:                                             ; preds = %3664
  br label %3671

3671:                                             ; preds = %3670
  br label %3672

3672:                                             ; preds = %3671
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #11
  %3673 = call ptr @__errno_location() #12
  %3674 = load i32, ptr %3673, align 4, !tbaa !5
  store i32 %3674, ptr %77, align 4, !tbaa !5
  %3675 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3676 = call i32 @s2n_print_stacktrace(ptr noundef %3675)
  %3677 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3678 = trunc i8 %3677 to i1
  br i1 %3678, label %3679, label %3701

3679:                                             ; preds = %3672
  %3680 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3681 = call i32 @fileno(ptr noundef %3680) #11
  %3682 = call i32 @isatty(i32 noundef %3681) #11
  %3683 = icmp ne i32 %3682, 0
  br i1 %3683, label %3684, label %3701

3684:                                             ; preds = %3679
  %3685 = load i32, ptr %77, align 4, !tbaa !5
  %3686 = call ptr @__errno_location() #12
  store i32 %3685, ptr %3686, align 4, !tbaa !5
  %3687 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3688 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %3690, ptr noundef @.str.3)
  %3692 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3693 = load i32, ptr %3692, align 4, !tbaa !5
  %3694 = call ptr @s2n_strerror_debug(i32 noundef %3693, ptr noundef @.str.3)
  %3695 = call ptr @__errno_location() #12
  %3696 = load i32, ptr %3695, align 4, !tbaa !5
  %3697 = call ptr @strerror(i32 noundef %3696) #11
  %3698 = call ptr @__errno_location() #12
  %3699 = load i32, ptr %3698, align 4, !tbaa !5
  %3700 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3687, ptr noundef @.str, i32 noundef %3688, ptr noundef @.str.20, ptr noundef @.str.2, i32 noundef 190, ptr noundef %3691, ptr noundef %3694, ptr noundef %3697, i32 noundef %3699) #11
  br label %3718

3701:                                             ; preds = %3679, %3672
  %3702 = load i32, ptr %77, align 4, !tbaa !5
  %3703 = call ptr @__errno_location() #12
  store i32 %3702, ptr %3703, align 4, !tbaa !5
  %3704 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3705 = load i32, ptr @test_count, align 4, !tbaa !5
  %3706 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3707 = load i32, ptr %3706, align 4, !tbaa !5
  %3708 = call ptr @s2n_strerror(i32 noundef %3707, ptr noundef @.str.3)
  %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 = call ptr @__errno_location() #12
  %3713 = load i32, ptr %3712, align 4, !tbaa !5
  %3714 = call ptr @strerror(i32 noundef %3713) #11
  %3715 = call ptr @__errno_location() #12
  %3716 = load i32, ptr %3715, align 4, !tbaa !5
  %3717 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3704, ptr noundef @.str.4, i32 noundef %3705, ptr noundef @.str.20, ptr noundef @.str.2, i32 noundef 190, ptr noundef %3708, ptr noundef %3711, ptr noundef %3714, i32 noundef %3716) #11
  br label %3718

3718:                                             ; preds = %3701, %3684
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #11
  br label %3719

3719:                                             ; preds = %3718
  br label %3720

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

3721:                                             ; No predecessors!
  br label %3722

3722:                                             ; preds = %3721
  br label %3723

3723:                                             ; preds = %3722, %3664
  br label %3724

3724:                                             ; preds = %3723
  br label %3725

3725:                                             ; preds = %3724
  %3726 = load ptr, ptr %6, align 8, !tbaa !9
  %3727 = getelementptr inbounds %struct.s2n_connection, ptr %3726, i32 0, i32 25
  store i8 1, ptr %3727, align 2, !tbaa !54
  %3728 = load ptr, ptr %6, align 8, !tbaa !9
  %3729 = getelementptr inbounds %struct.s2n_connection, ptr %3728, i32 0, i32 22
  store i8 33, ptr %3729, align 1, !tbaa !55
  %3730 = load ptr, ptr %6, align 8, !tbaa !9
  %3731 = getelementptr inbounds %struct.s2n_connection, ptr %3730, i32 0, i32 21
  store i8 33, ptr %3731, align 2, !tbaa !56
  %3732 = load ptr, ptr %6, align 8, !tbaa !9
  %3733 = getelementptr inbounds %struct.s2n_connection, ptr %3732, i32 0, i32 23
  store i8 33, ptr %3733, align 4, !tbaa !57
  br label %3734

3734:                                             ; preds = %3725
  %3735 = load i32, ptr @test_count, align 4, !tbaa !5
  %3736 = add nsw i32 %3735, 1
  store i32 %3736, ptr @test_count, align 4, !tbaa !5
  %3737 = load ptr, ptr %6, align 8, !tbaa !9
  %3738 = call i32 @destroy_server_keys(ptr noundef %3737)
  %3739 = icmp eq i32 %3738, -1
  br i1 %3739, label %3740, label %3793

3740:                                             ; preds = %3734
  br label %3741

3741:                                             ; preds = %3740
  br label %3742

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

3749:                                             ; preds = %3742
  %3750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3751 = call i32 @fileno(ptr noundef %3750) #11
  %3752 = call i32 @isatty(i32 noundef %3751) #11
  %3753 = icmp ne i32 %3752, 0
  br i1 %3753, label %3754, label %3771

3754:                                             ; preds = %3749
  %3755 = load i32, ptr %78, align 4, !tbaa !5
  %3756 = call ptr @__errno_location() #12
  store i32 %3755, ptr %3756, align 4, !tbaa !5
  %3757 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3758 = load i32, ptr @test_count, align 4, !tbaa !5
  %3759 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3760 = load i32, ptr %3759, align 4, !tbaa !5
  %3761 = call ptr @s2n_strerror(i32 noundef %3760, ptr noundef @.str.3)
  %3762 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3763 = load i32, ptr %3762, align 4, !tbaa !5
  %3764 = call ptr @s2n_strerror_debug(i32 noundef %3763, ptr noundef @.str.3)
  %3765 = call ptr @__errno_location() #12
  %3766 = load i32, ptr %3765, align 4, !tbaa !5
  %3767 = call ptr @strerror(i32 noundef %3766) #11
  %3768 = call ptr @__errno_location() #12
  %3769 = load i32, ptr %3768, align 4, !tbaa !5
  %3770 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3757, ptr noundef @.str, i32 noundef %3758, ptr noundef @.str.22, ptr noundef @.str.2, i32 noundef 195, ptr noundef %3761, ptr noundef %3764, ptr noundef %3767, i32 noundef %3769) #11
  br label %3788

3771:                                             ; preds = %3749, %3742
  %3772 = load i32, ptr %78, align 4, !tbaa !5
  %3773 = call ptr @__errno_location() #12
  store i32 %3772, ptr %3773, align 4, !tbaa !5
  %3774 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3775 = load i32, ptr @test_count, align 4, !tbaa !5
  %3776 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3777 = load i32, ptr %3776, align 4, !tbaa !5
  %3778 = call ptr @s2n_strerror(i32 noundef %3777, ptr noundef @.str.3)
  %3779 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3780 = load i32, ptr %3779, align 4, !tbaa !5
  %3781 = call ptr @s2n_strerror_debug(i32 noundef %3780, ptr noundef @.str.3)
  %3782 = call ptr @__errno_location() #12
  %3783 = load i32, ptr %3782, align 4, !tbaa !5
  %3784 = call ptr @strerror(i32 noundef %3783) #11
  %3785 = call ptr @__errno_location() #12
  %3786 = load i32, ptr %3785, align 4, !tbaa !5
  %3787 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3774, ptr noundef @.str.4, i32 noundef %3775, ptr noundef @.str.22, ptr noundef @.str.2, i32 noundef 195, ptr noundef %3778, ptr noundef %3781, ptr noundef %3784, i32 noundef %3786) #11
  br label %3788

3788:                                             ; preds = %3771, %3754
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #11
  br label %3789

3789:                                             ; preds = %3788
  br label %3790

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

3791:                                             ; No predecessors!
  br label %3792

3792:                                             ; preds = %3791
  br label %3793

3793:                                             ; preds = %3792, %3734
  br label %3794

3794:                                             ; preds = %3793
  br label %3795

3795:                                             ; preds = %3794
  br label %3796

3796:                                             ; preds = %3795
  %3797 = load i32, ptr @test_count, align 4, !tbaa !5
  %3798 = add nsw i32 %3797, 1
  store i32 %3798, ptr @test_count, align 4, !tbaa !5
  %3799 = load ptr, ptr %6, align 8, !tbaa !9
  %3800 = call i32 @setup_server_keys(ptr noundef %3799, ptr noundef %9)
  %3801 = icmp eq i32 %3800, -1
  br i1 %3801, label %3802, label %3855

3802:                                             ; preds = %3796
  br label %3803

3803:                                             ; preds = %3802
  br label %3804

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

3811:                                             ; preds = %3804
  %3812 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3813 = call i32 @fileno(ptr noundef %3812) #11
  %3814 = call i32 @isatty(i32 noundef %3813) #11
  %3815 = icmp ne i32 %3814, 0
  br i1 %3815, label %3816, label %3833

3816:                                             ; preds = %3811
  %3817 = load i32, ptr %79, align 4, !tbaa !5
  %3818 = call ptr @__errno_location() #12
  store i32 %3817, ptr %3818, align 4, !tbaa !5
  %3819 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3820 = load i32, ptr @test_count, align 4, !tbaa !5
  %3821 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3822 = load i32, ptr %3821, align 4, !tbaa !5
  %3823 = call ptr @s2n_strerror(i32 noundef %3822, ptr noundef @.str.3)
  %3824 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3825 = load i32, ptr %3824, align 4, !tbaa !5
  %3826 = call ptr @s2n_strerror_debug(i32 noundef %3825, ptr noundef @.str.3)
  %3827 = call ptr @__errno_location() #12
  %3828 = load i32, ptr %3827, align 4, !tbaa !5
  %3829 = call ptr @strerror(i32 noundef %3828) #11
  %3830 = call ptr @__errno_location() #12
  %3831 = load i32, ptr %3830, align 4, !tbaa !5
  %3832 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3819, ptr noundef @.str, i32 noundef %3820, ptr noundef @.str.23, ptr noundef @.str.2, i32 noundef 196, ptr noundef %3823, ptr noundef %3826, ptr noundef %3829, i32 noundef %3831) #11
  br label %3850

3833:                                             ; preds = %3811, %3804
  %3834 = load i32, ptr %79, align 4, !tbaa !5
  %3835 = call ptr @__errno_location() #12
  store i32 %3834, ptr %3835, align 4, !tbaa !5
  %3836 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3837 = load i32, ptr @test_count, align 4, !tbaa !5
  %3838 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3839 = load i32, ptr %3838, align 4, !tbaa !5
  %3840 = call ptr @s2n_strerror(i32 noundef %3839, ptr noundef @.str.3)
  %3841 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3842 = load i32, ptr %3841, align 4, !tbaa !5
  %3843 = call ptr @s2n_strerror_debug(i32 noundef %3842, ptr noundef @.str.3)
  %3844 = call ptr @__errno_location() #12
  %3845 = load i32, ptr %3844, align 4, !tbaa !5
  %3846 = call ptr @strerror(i32 noundef %3845) #11
  %3847 = call ptr @__errno_location() #12
  %3848 = load i32, ptr %3847, align 4, !tbaa !5
  %3849 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3836, ptr noundef @.str.4, i32 noundef %3837, ptr noundef @.str.23, ptr noundef @.str.2, i32 noundef 196, ptr noundef %3840, ptr noundef %3843, ptr noundef %3846, i32 noundef %3848) #11
  br label %3850

3850:                                             ; preds = %3833, %3816
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #11
  br label %3851

3851:                                             ; preds = %3850
  br label %3852

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

3853:                                             ; No predecessors!
  br label %3854

3854:                                             ; preds = %3853
  br label %3855

3855:                                             ; preds = %3854, %3796
  br label %3856

3856:                                             ; preds = %3855
  br label %3857

3857:                                             ; preds = %3856
  br label %3858

3858:                                             ; preds = %3857
  %3859 = load i32, ptr @test_count, align 4, !tbaa !5
  %3860 = add nsw i32 %3859, 1
  store i32 %3860, ptr @test_count, align 4, !tbaa !5
  %3861 = load ptr, ptr %6, align 8, !tbaa !9
  %3862 = call i32 @s2n_record_write(ptr noundef %3861, i8 noundef zeroext 23, ptr noundef %25)
  %3863 = getelementptr inbounds %struct.s2n_result, ptr %80, i32 0, i32 0
  store i32 %3862, ptr %3863, align 4
  %3864 = getelementptr inbounds %struct.s2n_result, ptr %80, i32 0, i32 0
  %3865 = load i32, ptr %3864, align 4
  %3866 = call zeroext i1 @s2n_result_is_ok(i32 %3865)
  br i1 %3866, label %3920, label %3867

3867:                                             ; preds = %3858
  br label %3868

3868:                                             ; preds = %3867
  br label %3869

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

3876:                                             ; preds = %3869
  %3877 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3878 = call i32 @fileno(ptr noundef %3877) #11
  %3879 = call i32 @isatty(i32 noundef %3878) #11
  %3880 = icmp ne i32 %3879, 0
  br i1 %3880, label %3881, label %3898

3881:                                             ; preds = %3876
  %3882 = load i32, ptr %81, align 4, !tbaa !5
  %3883 = call ptr @__errno_location() #12
  store i32 %3882, ptr %3883, align 4, !tbaa !5
  %3884 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3885 = load i32, ptr @test_count, align 4, !tbaa !5
  %3886 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3887 = load i32, ptr %3886, align 4, !tbaa !5
  %3888 = call ptr @s2n_strerror(i32 noundef %3887, ptr noundef @.str.3)
  %3889 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3890 = load i32, ptr %3889, align 4, !tbaa !5
  %3891 = call ptr @s2n_strerror_debug(i32 noundef %3890, ptr noundef @.str.3)
  %3892 = call ptr @__errno_location() #12
  %3893 = load i32, ptr %3892, align 4, !tbaa !5
  %3894 = call ptr @strerror(i32 noundef %3893) #11
  %3895 = call ptr @__errno_location() #12
  %3896 = load i32, ptr %3895, align 4, !tbaa !5
  %3897 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3884, ptr noundef @.str, i32 noundef %3885, ptr noundef @.str.43, ptr noundef @.str.2, i32 noundef 197, ptr noundef %3888, ptr noundef %3891, ptr noundef %3894, i32 noundef %3896) #11
  br label %3915

3898:                                             ; preds = %3876, %3869
  %3899 = load i32, ptr %81, align 4, !tbaa !5
  %3900 = call ptr @__errno_location() #12
  store i32 %3899, ptr %3900, align 4, !tbaa !5
  %3901 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3902 = load i32, ptr @test_count, align 4, !tbaa !5
  %3903 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3904 = load i32, ptr %3903, align 4, !tbaa !5
  %3905 = call ptr @s2n_strerror(i32 noundef %3904, ptr noundef @.str.3)
  %3906 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3907 = load i32, ptr %3906, align 4, !tbaa !5
  %3908 = call ptr @s2n_strerror_debug(i32 noundef %3907, ptr noundef @.str.3)
  %3909 = call ptr @__errno_location() #12
  %3910 = load i32, ptr %3909, align 4, !tbaa !5
  %3911 = call ptr @strerror(i32 noundef %3910) #11
  %3912 = call ptr @__errno_location() #12
  %3913 = load i32, ptr %3912, align 4, !tbaa !5
  %3914 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3901, ptr noundef @.str.4, i32 noundef %3902, ptr noundef @.str.43, ptr noundef @.str.2, i32 noundef 197, ptr noundef %3905, ptr noundef %3908, ptr noundef %3911, i32 noundef %3913) #11
  br label %3915

3915:                                             ; preds = %3898, %3881
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #11
  br label %3916

3916:                                             ; preds = %3915
  br label %3917

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

3918:                                             ; No predecessors!
  br label %3919

3919:                                             ; preds = %3918
  br label %3920

3920:                                             ; preds = %3919, %3858
  br label %3921

3921:                                             ; preds = %3920
  br label %3922

3922:                                             ; preds = %3921
  br label %3923

3923:                                             ; preds = %3922
  %3924 = load i32, ptr @test_count, align 4, !tbaa !5
  %3925 = add nsw i32 %3924, 1
  store i32 %3925, ptr @test_count, align 4, !tbaa !5
  %3926 = load ptr, ptr %6, align 8, !tbaa !9
  %3927 = getelementptr inbounds %struct.s2n_connection, ptr %3926, i32 0, i32 40
  %3928 = call i32 @s2n_stuffer_wipe(ptr noundef %3927)
  %3929 = icmp eq i32 %3928, -1
  br i1 %3929, label %3930, label %3983

3930:                                             ; preds = %3923
  br label %3931

3931:                                             ; preds = %3930
  br label %3932

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

3939:                                             ; preds = %3932
  %3940 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3941 = call i32 @fileno(ptr noundef %3940) #11
  %3942 = call i32 @isatty(i32 noundef %3941) #11
  %3943 = icmp ne i32 %3942, 0
  br i1 %3943, label %3944, label %3961

3944:                                             ; preds = %3939
  %3945 = load i32, ptr %82, align 4, !tbaa !5
  %3946 = call ptr @__errno_location() #12
  store i32 %3945, ptr %3946, align 4, !tbaa !5
  %3947 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3948 = load i32, ptr @test_count, align 4, !tbaa !5
  %3949 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3950 = load i32, ptr %3949, align 4, !tbaa !5
  %3951 = call ptr @s2n_strerror(i32 noundef %3950, ptr noundef @.str.3)
  %3952 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3953 = load i32, ptr %3952, align 4, !tbaa !5
  %3954 = call ptr @s2n_strerror_debug(i32 noundef %3953, ptr noundef @.str.3)
  %3955 = call ptr @__errno_location() #12
  %3956 = load i32, ptr %3955, align 4, !tbaa !5
  %3957 = call ptr @strerror(i32 noundef %3956) #11
  %3958 = call ptr @__errno_location() #12
  %3959 = load i32, ptr %3958, align 4, !tbaa !5
  %3960 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3947, ptr noundef @.str, i32 noundef %3948, ptr noundef @.str.35, ptr noundef @.str.2, i32 noundef 200, ptr noundef %3951, ptr noundef %3954, ptr noundef %3957, i32 noundef %3959) #11
  br label %3978

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

3978:                                             ; preds = %3961, %3944
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #11
  br label %3979

3979:                                             ; preds = %3978
  br label %3980

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

3981:                                             ; No predecessors!
  br label %3982

3982:                                             ; preds = %3981
  br label %3983

3983:                                             ; preds = %3982, %3923
  br label %3984

3984:                                             ; preds = %3983
  br label %3985

3985:                                             ; preds = %3984
  br label %3986

3986:                                             ; preds = %3985
  %3987 = load i32, ptr @test_count, align 4, !tbaa !5
  %3988 = add nsw i32 %3987, 1
  store i32 %3988, ptr @test_count, align 4, !tbaa !5
  %3989 = load ptr, ptr %6, align 8, !tbaa !9
  %3990 = getelementptr inbounds %struct.s2n_connection, ptr %3989, i32 0, i32 38
  %3991 = call i32 @s2n_stuffer_wipe(ptr noundef %3990)
  %3992 = icmp eq i32 %3991, -1
  br i1 %3992, label %3993, label %4046

3993:                                             ; preds = %3986
  br label %3994

3994:                                             ; preds = %3993
  br label %3995

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

4002:                                             ; preds = %3995
  %4003 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4004 = call i32 @fileno(ptr noundef %4003) #11
  %4005 = call i32 @isatty(i32 noundef %4004) #11
  %4006 = icmp ne i32 %4005, 0
  br i1 %4006, label %4007, label %4024

4007:                                             ; preds = %4002
  %4008 = load i32, ptr %83, align 4, !tbaa !5
  %4009 = call ptr @__errno_location() #12
  store i32 %4008, ptr %4009, align 4, !tbaa !5
  %4010 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4011 = load i32, ptr @test_count, align 4, !tbaa !5
  %4012 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4013 = load i32, ptr %4012, align 4, !tbaa !5
  %4014 = call ptr @s2n_strerror(i32 noundef %4013, ptr noundef @.str.3)
  %4015 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4016 = load i32, ptr %4015, align 4, !tbaa !5
  %4017 = call ptr @s2n_strerror_debug(i32 noundef %4016, ptr noundef @.str.3)
  %4018 = call ptr @__errno_location() #12
  %4019 = load i32, ptr %4018, align 4, !tbaa !5
  %4020 = call ptr @strerror(i32 noundef %4019) #11
  %4021 = call ptr @__errno_location() #12
  %4022 = load i32, ptr %4021, align 4, !tbaa !5
  %4023 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4010, ptr noundef @.str, i32 noundef %4011, ptr noundef @.str.36, ptr noundef @.str.2, i32 noundef 201, ptr noundef %4014, ptr noundef %4017, ptr noundef %4020, i32 noundef %4022) #11
  br label %4041

4024:                                             ; preds = %4002, %3995
  %4025 = load i32, ptr %83, align 4, !tbaa !5
  %4026 = call ptr @__errno_location() #12
  store i32 %4025, ptr %4026, align 4, !tbaa !5
  %4027 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4028 = load i32, ptr @test_count, align 4, !tbaa !5
  %4029 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4030 = load i32, ptr %4029, align 4, !tbaa !5
  %4031 = call ptr @s2n_strerror(i32 noundef %4030, ptr noundef @.str.3)
  %4032 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4033 = load i32, ptr %4032, align 4, !tbaa !5
  %4034 = call ptr @s2n_strerror_debug(i32 noundef %4033, ptr noundef @.str.3)
  %4035 = call ptr @__errno_location() #12
  %4036 = load i32, ptr %4035, align 4, !tbaa !5
  %4037 = call ptr @strerror(i32 noundef %4036) #11
  %4038 = call ptr @__errno_location() #12
  %4039 = load i32, ptr %4038, align 4, !tbaa !5
  %4040 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4027, ptr noundef @.str.4, i32 noundef %4028, ptr noundef @.str.36, ptr noundef @.str.2, i32 noundef 201, ptr noundef %4031, ptr noundef %4034, ptr noundef %4037, i32 noundef %4039) #11
  br label %4041

4041:                                             ; preds = %4024, %4007
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #11
  br label %4042

4042:                                             ; preds = %4041
  br label %4043

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

4044:                                             ; No predecessors!
  br label %4045

4045:                                             ; preds = %4044
  br label %4046

4046:                                             ; preds = %4045, %3986
  br label %4047

4047:                                             ; preds = %4046
  br label %4048

4048:                                             ; preds = %4047
  br label %4049

4049:                                             ; preds = %4048
  %4050 = load i32, ptr @test_count, align 4, !tbaa !5
  %4051 = add nsw i32 %4050, 1
  store i32 %4051, ptr @test_count, align 4, !tbaa !5
  %4052 = load ptr, ptr %6, align 8, !tbaa !9
  %4053 = getelementptr inbounds %struct.s2n_connection, ptr %4052, i32 0, i32 41
  %4054 = load ptr, ptr %6, align 8, !tbaa !9
  %4055 = getelementptr inbounds %struct.s2n_connection, ptr %4054, i32 0, i32 38
  %4056 = call i32 @s2n_stuffer_copy(ptr noundef %4053, ptr noundef %4055, i32 noundef 5)
  %4057 = icmp eq i32 %4056, -1
  br i1 %4057, label %4058, label %4111

4058:                                             ; preds = %4049
  br label %4059

4059:                                             ; preds = %4058
  br label %4060

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

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

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

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

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

4107:                                             ; preds = %4106
  br label %4108

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

4109:                                             ; No predecessors!
  br label %4110

4110:                                             ; preds = %4109
  br label %4111

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

4112:                                             ; preds = %4111
  br label %4113

4113:                                             ; preds = %4112
  br label %4114

4114:                                             ; preds = %4113
  %4115 = load i32, ptr @test_count, align 4, !tbaa !5
  %4116 = add nsw i32 %4115, 1
  store i32 %4116, ptr @test_count, align 4, !tbaa !5
  %4117 = load ptr, ptr %6, align 8, !tbaa !9
  %4118 = getelementptr inbounds %struct.s2n_connection, ptr %4117, i32 0, i32 41
  %4119 = load ptr, ptr %6, align 8, !tbaa !9
  %4120 = getelementptr inbounds %struct.s2n_connection, ptr %4119, i32 0, i32 40
  %4121 = load ptr, ptr %6, align 8, !tbaa !9
  %4122 = getelementptr inbounds %struct.s2n_connection, ptr %4121, i32 0, i32 41
  %4123 = getelementptr inbounds %struct.s2n_stuffer, ptr %4122, i32 0, i32 2
  %4124 = load i32, ptr %4123, align 4, !tbaa !63
  %4125 = load ptr, ptr %6, align 8, !tbaa !9
  %4126 = getelementptr inbounds %struct.s2n_connection, ptr %4125, i32 0, i32 41
  %4127 = getelementptr inbounds %struct.s2n_stuffer, ptr %4126, i32 0, i32 1
  %4128 = load i32, ptr %4127, align 8, !tbaa !64
  %4129 = sub i32 %4124, %4128
  %4130 = call i32 @s2n_stuffer_copy(ptr noundef %4118, ptr noundef %4120, i32 noundef %4129)
  %4131 = icmp eq i32 %4130, -1
  br i1 %4131, label %4132, label %4185

4132:                                             ; preds = %4114
  br label %4133

4133:                                             ; preds = %4132
  br label %4134

4134:                                             ; preds = %4133
  call void @llvm.lifetime.start.p0(i64 4, ptr %85) #11
  %4135 = call ptr @__errno_location() #12
  %4136 = load i32, ptr %4135, align 4, !tbaa !5
  store i32 %4136, ptr %85, align 4, !tbaa !5
  %4137 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4138 = call i32 @s2n_print_stacktrace(ptr noundef %4137)
  %4139 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4140 = trunc i8 %4139 to i1
  br i1 %4140, label %4141, label %4163

4141:                                             ; preds = %4134
  %4142 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4143 = call i32 @fileno(ptr noundef %4142) #11
  %4144 = call i32 @isatty(i32 noundef %4143) #11
  %4145 = icmp ne i32 %4144, 0
  br i1 %4145, label %4146, label %4163

4146:                                             ; preds = %4141
  %4147 = load i32, ptr %85, align 4, !tbaa !5
  %4148 = call ptr @__errno_location() #12
  store i32 %4147, ptr %4148, align 4, !tbaa !5
  %4149 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4150 = load i32, ptr @test_count, align 4, !tbaa !5
  %4151 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4152 = load i32, ptr %4151, align 4, !tbaa !5
  %4153 = call ptr @s2n_strerror(i32 noundef %4152, ptr noundef @.str.3)
  %4154 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4155 = load i32, ptr %4154, align 4, !tbaa !5
  %4156 = call ptr @s2n_strerror_debug(i32 noundef %4155, ptr noundef @.str.3)
  %4157 = call ptr @__errno_location() #12
  %4158 = load i32, ptr %4157, align 4, !tbaa !5
  %4159 = call ptr @strerror(i32 noundef %4158) #11
  %4160 = call ptr @__errno_location() #12
  %4161 = load i32, ptr %4160, align 4, !tbaa !5
  %4162 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4149, ptr noundef @.str, i32 noundef %4150, ptr noundef @.str.38, ptr noundef @.str.2, i32 noundef 203, ptr noundef %4153, ptr noundef %4156, ptr noundef %4159, i32 noundef %4161) #11
  br label %4180

4163:                                             ; preds = %4141, %4134
  %4164 = load i32, ptr %85, align 4, !tbaa !5
  %4165 = call ptr @__errno_location() #12
  store i32 %4164, ptr %4165, align 4, !tbaa !5
  %4166 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4167 = load i32, ptr @test_count, align 4, !tbaa !5
  %4168 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4169 = load i32, ptr %4168, align 4, !tbaa !5
  %4170 = call ptr @s2n_strerror(i32 noundef %4169, ptr noundef @.str.3)
  %4171 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4172 = load i32, ptr %4171, align 4, !tbaa !5
  %4173 = call ptr @s2n_strerror_debug(i32 noundef %4172, ptr noundef @.str.3)
  %4174 = call ptr @__errno_location() #12
  %4175 = load i32, ptr %4174, align 4, !tbaa !5
  %4176 = call ptr @strerror(i32 noundef %4175) #11
  %4177 = call ptr @__errno_location() #12
  %4178 = load i32, ptr %4177, align 4, !tbaa !5
  %4179 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4166, ptr noundef @.str.4, i32 noundef %4167, ptr noundef @.str.38, ptr noundef @.str.2, i32 noundef 203, ptr noundef %4170, ptr noundef %4173, ptr noundef %4176, i32 noundef %4178) #11
  br label %4180

4180:                                             ; preds = %4163, %4146
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #11
  br label %4181

4181:                                             ; preds = %4180
  br label %4182

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

4183:                                             ; No predecessors!
  br label %4184

4184:                                             ; preds = %4183
  br label %4185

4185:                                             ; preds = %4184, %4114
  br label %4186

4186:                                             ; preds = %4185
  br label %4187

4187:                                             ; preds = %4186
  %4188 = load ptr, ptr %6, align 8, !tbaa !9
  %4189 = getelementptr inbounds %struct.s2n_connection, ptr %4188, i32 0, i32 40
  %4190 = getelementptr inbounds %struct.s2n_stuffer, ptr %4189, i32 0, i32 0
  %4191 = getelementptr inbounds %struct.s2n_blob, ptr %4190, i32 0, i32 0
  %4192 = load ptr, ptr %4191, align 8, !tbaa !67
  %4193 = load ptr, ptr %6, align 8, !tbaa !9
  %4194 = getelementptr inbounds %struct.s2n_connection, ptr %4193, i32 0, i32 40
  %4195 = getelementptr inbounds %struct.s2n_stuffer, ptr %4194, i32 0, i32 2
  %4196 = load i32, ptr %4195, align 4, !tbaa !68
  %4197 = load ptr, ptr %6, align 8, !tbaa !9
  %4198 = getelementptr inbounds %struct.s2n_connection, ptr %4197, i32 0, i32 40
  %4199 = getelementptr inbounds %struct.s2n_stuffer, ptr %4198, i32 0, i32 1
  %4200 = load i32, ptr %4199, align 8, !tbaa !69
  %4201 = sub i32 %4196, %4200
  %4202 = zext i32 %4201 to i64
  %4203 = load i64, ptr %76, align 8, !tbaa !53
  %4204 = sub i64 %4202, %4203
  %4205 = sub i64 %4204, 1
  %4206 = getelementptr inbounds i8, ptr %4192, i64 %4205
  %4207 = load i8, ptr %4206, align 1, !tbaa !61
  %4208 = add i8 %4207, 1
  store i8 %4208, ptr %4206, align 1, !tbaa !61
  br label %4209

4209:                                             ; preds = %4187
  %4210 = load i32, ptr @test_count, align 4, !tbaa !5
  %4211 = add nsw i32 %4210, 1
  store i32 %4211, ptr @test_count, align 4, !tbaa !5
  %4212 = load ptr, ptr %6, align 8, !tbaa !9
  %4213 = call i32 @s2n_record_header_parse(ptr noundef %4212, ptr noundef %49, ptr noundef %50)
  %4214 = icmp eq i32 %4213, -1
  br i1 %4214, label %4215, label %4268

4215:                                             ; preds = %4209
  br label %4216

4216:                                             ; preds = %4215
  br label %4217

4217:                                             ; preds = %4216
  call void @llvm.lifetime.start.p0(i64 4, ptr %86) #11
  %4218 = call ptr @__errno_location() #12
  %4219 = load i32, ptr %4218, align 4, !tbaa !5
  store i32 %4219, ptr %86, align 4, !tbaa !5
  %4220 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4221 = call i32 @s2n_print_stacktrace(ptr noundef %4220)
  %4222 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4223 = trunc i8 %4222 to i1
  br i1 %4223, label %4224, label %4246

4224:                                             ; preds = %4217
  %4225 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4226 = call i32 @fileno(ptr noundef %4225) #11
  %4227 = call i32 @isatty(i32 noundef %4226) #11
  %4228 = icmp ne i32 %4227, 0
  br i1 %4228, label %4229, label %4246

4229:                                             ; preds = %4224
  %4230 = load i32, ptr %86, align 4, !tbaa !5
  %4231 = call ptr @__errno_location() #12
  store i32 %4230, ptr %4231, align 4, !tbaa !5
  %4232 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4233 = load i32, ptr @test_count, align 4, !tbaa !5
  %4234 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4235 = load i32, ptr %4234, align 4, !tbaa !5
  %4236 = call ptr @s2n_strerror(i32 noundef %4235, ptr noundef @.str.3)
  %4237 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4238 = load i32, ptr %4237, align 4, !tbaa !5
  %4239 = call ptr @s2n_strerror_debug(i32 noundef %4238, ptr noundef @.str.3)
  %4240 = call ptr @__errno_location() #12
  %4241 = load i32, ptr %4240, align 4, !tbaa !5
  %4242 = call ptr @strerror(i32 noundef %4241) #11
  %4243 = call ptr @__errno_location() #12
  %4244 = load i32, ptr %4243, align 4, !tbaa !5
  %4245 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4232, ptr noundef @.str, i32 noundef %4233, ptr noundef @.str.39, ptr noundef @.str.2, i32 noundef 205, ptr noundef %4236, ptr noundef %4239, ptr noundef %4242, i32 noundef %4244) #11
  br label %4263

4246:                                             ; preds = %4224, %4217
  %4247 = load i32, ptr %86, align 4, !tbaa !5
  %4248 = call ptr @__errno_location() #12
  store i32 %4247, ptr %4248, align 4, !tbaa !5
  %4249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4250 = load i32, ptr @test_count, align 4, !tbaa !5
  %4251 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4252 = load i32, ptr %4251, align 4, !tbaa !5
  %4253 = call ptr @s2n_strerror(i32 noundef %4252, ptr noundef @.str.3)
  %4254 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4255 = load i32, ptr %4254, align 4, !tbaa !5
  %4256 = call ptr @s2n_strerror_debug(i32 noundef %4255, ptr noundef @.str.3)
  %4257 = call ptr @__errno_location() #12
  %4258 = load i32, ptr %4257, align 4, !tbaa !5
  %4259 = call ptr @strerror(i32 noundef %4258) #11
  %4260 = call ptr @__errno_location() #12
  %4261 = load i32, ptr %4260, align 4, !tbaa !5
  %4262 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4249, ptr noundef @.str.4, i32 noundef %4250, ptr noundef @.str.39, ptr noundef @.str.2, i32 noundef 205, ptr noundef %4253, ptr noundef %4256, ptr noundef %4259, i32 noundef %4261) #11
  br label %4263

4263:                                             ; preds = %4246, %4229
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #11
  br label %4264

4264:                                             ; preds = %4263
  br label %4265

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

4266:                                             ; No predecessors!
  br label %4267

4267:                                             ; preds = %4266
  br label %4268

4268:                                             ; preds = %4267, %4209
  br label %4269

4269:                                             ; preds = %4268
  br label %4270

4270:                                             ; preds = %4269
  br label %4271

4271:                                             ; preds = %4270
  br label %4272

4272:                                             ; preds = %4271
  %4273 = load i32, ptr @test_count, align 4, !tbaa !5
  %4274 = add nsw i32 %4273, 1
  store i32 %4274, ptr @test_count, align 4, !tbaa !5
  %4275 = load ptr, ptr %6, align 8, !tbaa !9
  %4276 = call i32 @s2n_record_parse(ptr noundef %4275)
  %4277 = icmp eq i32 %4276, -1
  br i1 %4277, label %4331, label %4278

4278:                                             ; preds = %4272
  br label %4279

4279:                                             ; preds = %4278
  br label %4280

4280:                                             ; preds = %4279
  call void @llvm.lifetime.start.p0(i64 4, ptr %87) #11
  %4281 = call ptr @__errno_location() #12
  %4282 = load i32, ptr %4281, align 4, !tbaa !5
  store i32 %4282, ptr %87, align 4, !tbaa !5
  %4283 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4284 = call i32 @s2n_print_stacktrace(ptr noundef %4283)
  %4285 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4286 = trunc i8 %4285 to i1
  br i1 %4286, label %4287, label %4309

4287:                                             ; preds = %4280
  %4288 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4289 = call i32 @fileno(ptr noundef %4288) #11
  %4290 = call i32 @isatty(i32 noundef %4289) #11
  %4291 = icmp ne i32 %4290, 0
  br i1 %4291, label %4292, label %4309

4292:                                             ; preds = %4287
  %4293 = load i32, ptr %87, align 4, !tbaa !5
  %4294 = call ptr @__errno_location() #12
  store i32 %4293, ptr %4294, align 4, !tbaa !5
  %4295 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4296 = load i32, ptr @test_count, align 4, !tbaa !5
  %4297 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4298 = load i32, ptr %4297, align 4, !tbaa !5
  %4299 = call ptr @s2n_strerror(i32 noundef %4298, ptr noundef @.str.3)
  %4300 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4301 = load i32, ptr %4300, align 4, !tbaa !5
  %4302 = call ptr @s2n_strerror_debug(i32 noundef %4301, ptr noundef @.str.3)
  %4303 = call ptr @__errno_location() #12
  %4304 = load i32, ptr %4303, align 4, !tbaa !5
  %4305 = call ptr @strerror(i32 noundef %4304) #11
  %4306 = call ptr @__errno_location() #12
  %4307 = load i32, ptr %4306, align 4, !tbaa !5
  %4308 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4295, ptr noundef @.str, i32 noundef %4296, ptr noundef @.str.46, ptr noundef @.str.2, i32 noundef 206, ptr noundef %4299, ptr noundef %4302, ptr noundef %4305, i32 noundef %4307) #11
  br label %4326

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

4326:                                             ; preds = %4309, %4292
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #11
  br label %4327

4327:                                             ; preds = %4326
  br label %4328

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

4329:                                             ; No predecessors!
  br label %4330

4330:                                             ; preds = %4329
  br label %4331

4331:                                             ; preds = %4330, %4272
  br label %4332

4332:                                             ; preds = %4331
  br label %4333

4333:                                             ; preds = %4332
  br label %4334

4334:                                             ; preds = %4333
  %4335 = load i32, ptr @test_count, align 4, !tbaa !5
  %4336 = add nsw i32 %4335, 1
  store i32 %4336, ptr @test_count, align 4, !tbaa !5
  %4337 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4338 = load i32, ptr %4337, align 4, !tbaa !5
  %4339 = icmp eq i32 %4338, 0
  br i1 %4339, label %4340, label %4393

4340:                                             ; preds = %4334
  br label %4341

4341:                                             ; preds = %4340
  br label %4342

4342:                                             ; preds = %4341
  call void @llvm.lifetime.start.p0(i64 4, ptr %88) #11
  %4343 = call ptr @__errno_location() #12
  %4344 = load i32, ptr %4343, align 4, !tbaa !5
  store i32 %4344, ptr %88, align 4, !tbaa !5
  %4345 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4346 = call i32 @s2n_print_stacktrace(ptr noundef %4345)
  %4347 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4348 = trunc i8 %4347 to i1
  br i1 %4348, label %4349, label %4371

4349:                                             ; preds = %4342
  %4350 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4351 = call i32 @fileno(ptr noundef %4350) #11
  %4352 = call i32 @isatty(i32 noundef %4351) #11
  %4353 = icmp ne i32 %4352, 0
  br i1 %4353, label %4354, label %4371

4354:                                             ; preds = %4349
  %4355 = load i32, ptr %88, align 4, !tbaa !5
  %4356 = call ptr @__errno_location() #12
  store i32 %4355, ptr %4356, align 4, !tbaa !5
  %4357 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4358 = load i32, ptr @test_count, align 4, !tbaa !5
  %4359 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4360 = load i32, ptr %4359, align 4, !tbaa !5
  %4361 = call ptr @s2n_strerror(i32 noundef %4360, ptr noundef @.str.3)
  %4362 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4363 = load i32, ptr %4362, align 4, !tbaa !5
  %4364 = call ptr @s2n_strerror_debug(i32 noundef %4363, ptr noundef @.str.3)
  %4365 = call ptr @__errno_location() #12
  %4366 = load i32, ptr %4365, align 4, !tbaa !5
  %4367 = call ptr @strerror(i32 noundef %4366) #11
  %4368 = call ptr @__errno_location() #12
  %4369 = load i32, ptr %4368, align 4, !tbaa !5
  %4370 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4357, ptr noundef @.str, i32 noundef %4358, ptr noundef @.str.47, ptr noundef @.str.2, i32 noundef 206, ptr noundef %4361, ptr noundef %4364, ptr noundef %4367, i32 noundef %4369) #11
  br label %4388

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

4388:                                             ; preds = %4371, %4354
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #11
  br label %4389

4389:                                             ; preds = %4388
  br label %4390

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

4391:                                             ; No predecessors!
  br label %4392

4392:                                             ; preds = %4391
  br label %4393

4393:                                             ; preds = %4392, %4334
  br label %4394

4394:                                             ; preds = %4393
  br label %4395

4395:                                             ; preds = %4394
  br label %4396

4396:                                             ; preds = %4395
  %4397 = load i32, ptr @test_count, align 4, !tbaa !5
  %4398 = add nsw i32 %4397, 1
  store i32 %4398, ptr @test_count, align 4, !tbaa !5
  %4399 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4400 = load i32, ptr %4399, align 4, !tbaa !5
  %4401 = call ptr @s2n_strerror_debug(i32 noundef %4400, ptr noundef @.str.3)
  %4402 = icmp eq ptr %4401, null
  br i1 %4402, label %4403, label %4456

4403:                                             ; preds = %4396
  br label %4404

4404:                                             ; preds = %4403
  br label %4405

4405:                                             ; preds = %4404
  call void @llvm.lifetime.start.p0(i64 4, ptr %89) #11
  %4406 = call ptr @__errno_location() #12
  %4407 = load i32, ptr %4406, align 4, !tbaa !5
  store i32 %4407, ptr %89, align 4, !tbaa !5
  %4408 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4409 = call i32 @s2n_print_stacktrace(ptr noundef %4408)
  %4410 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4411 = trunc i8 %4410 to i1
  br i1 %4411, label %4412, label %4434

4412:                                             ; preds = %4405
  %4413 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4414 = call i32 @fileno(ptr noundef %4413) #11
  %4415 = call i32 @isatty(i32 noundef %4414) #11
  %4416 = icmp ne i32 %4415, 0
  br i1 %4416, label %4417, label %4434

4417:                                             ; preds = %4412
  %4418 = load i32, ptr %89, align 4, !tbaa !5
  %4419 = call ptr @__errno_location() #12
  store i32 %4418, ptr %4419, align 4, !tbaa !5
  %4420 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4421 = load i32, ptr @test_count, align 4, !tbaa !5
  %4422 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4423 = load i32, ptr %4422, align 4, !tbaa !5
  %4424 = call ptr @s2n_strerror(i32 noundef %4423, ptr noundef @.str.3)
  %4425 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4426 = load i32, ptr %4425, align 4, !tbaa !5
  %4427 = call ptr @s2n_strerror_debug(i32 noundef %4426, ptr noundef @.str.3)
  %4428 = call ptr @__errno_location() #12
  %4429 = load i32, ptr %4428, align 4, !tbaa !5
  %4430 = call ptr @strerror(i32 noundef %4429) #11
  %4431 = call ptr @__errno_location() #12
  %4432 = load i32, ptr %4431, align 4, !tbaa !5
  %4433 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4420, ptr noundef @.str, i32 noundef %4421, ptr noundef @.str.27, ptr noundef @.str.2, i32 noundef 206, ptr noundef %4424, ptr noundef %4427, ptr noundef %4430, i32 noundef %4432) #11
  br label %4451

4434:                                             ; preds = %4412, %4405
  %4435 = load i32, ptr %89, align 4, !tbaa !5
  %4436 = call ptr @__errno_location() #12
  store i32 %4435, ptr %4436, align 4, !tbaa !5
  %4437 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4438 = load i32, ptr @test_count, align 4, !tbaa !5
  %4439 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4440 = load i32, ptr %4439, align 4, !tbaa !5
  %4441 = call ptr @s2n_strerror(i32 noundef %4440, ptr noundef @.str.3)
  %4442 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4443 = load i32, ptr %4442, align 4, !tbaa !5
  %4444 = call ptr @s2n_strerror_debug(i32 noundef %4443, ptr noundef @.str.3)
  %4445 = call ptr @__errno_location() #12
  %4446 = load i32, ptr %4445, align 4, !tbaa !5
  %4447 = call ptr @strerror(i32 noundef %4446) #11
  %4448 = call ptr @__errno_location() #12
  %4449 = load i32, ptr %4448, align 4, !tbaa !5
  %4450 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4437, ptr noundef @.str.4, i32 noundef %4438, ptr noundef @.str.27, ptr noundef @.str.2, i32 noundef 206, ptr noundef %4441, ptr noundef %4444, ptr noundef %4447, i32 noundef %4449) #11
  br label %4451

4451:                                             ; preds = %4434, %4417
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #11
  br label %4452

4452:                                             ; preds = %4451
  br label %4453

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

4454:                                             ; No predecessors!
  br label %4455

4455:                                             ; preds = %4454
  br label %4456

4456:                                             ; preds = %4455, %4396
  br label %4457

4457:                                             ; preds = %4456
  br label %4458

4458:                                             ; preds = %4457
  br label %4459

4459:                                             ; preds = %4458
  %4460 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %4460, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %4461 = call ptr @__errno_location() #12
  store i32 0, ptr %4461, align 4, !tbaa !5
  br label %4462

4462:                                             ; preds = %4459
  br label %4463

4463:                                             ; preds = %4462
  br label %4464

4464:                                             ; preds = %4463
  br label %4465

4465:                                             ; preds = %4464
  br label %4466

4466:                                             ; preds = %4465
  %4467 = load i32, ptr @test_count, align 4, !tbaa !5
  %4468 = add nsw i32 %4467, 1
  store i32 %4468, ptr @test_count, align 4, !tbaa !5
  %4469 = load i8, ptr %49, align 1, !tbaa !61
  %4470 = zext i8 %4469 to i32
  %4471 = icmp eq i32 %4470, 23
  br i1 %4471, label %4525, label %4472

4472:                                             ; preds = %4466
  br label %4473

4473:                                             ; preds = %4472
  br label %4474

4474:                                             ; preds = %4473
  call void @llvm.lifetime.start.p0(i64 4, ptr %90) #11
  %4475 = call ptr @__errno_location() #12
  %4476 = load i32, ptr %4475, align 4, !tbaa !5
  store i32 %4476, ptr %90, align 4, !tbaa !5
  %4477 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4478 = call i32 @s2n_print_stacktrace(ptr noundef %4477)
  %4479 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4480 = trunc i8 %4479 to i1
  br i1 %4480, label %4481, label %4503

4481:                                             ; preds = %4474
  %4482 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4483 = call i32 @fileno(ptr noundef %4482) #11
  %4484 = call i32 @isatty(i32 noundef %4483) #11
  %4485 = icmp ne i32 %4484, 0
  br i1 %4485, label %4486, label %4503

4486:                                             ; preds = %4481
  %4487 = load i32, ptr %90, align 4, !tbaa !5
  %4488 = call ptr @__errno_location() #12
  store i32 %4487, ptr %4488, align 4, !tbaa !5
  %4489 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4490 = load i32, ptr @test_count, align 4, !tbaa !5
  %4491 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4492 = load i32, ptr %4491, align 4, !tbaa !5
  %4493 = call ptr @s2n_strerror(i32 noundef %4492, ptr noundef @.str.3)
  %4494 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4495 = load i32, ptr %4494, align 4, !tbaa !5
  %4496 = call ptr @s2n_strerror_debug(i32 noundef %4495, ptr noundef @.str.3)
  %4497 = call ptr @__errno_location() #12
  %4498 = load i32, ptr %4497, align 4, !tbaa !5
  %4499 = call ptr @strerror(i32 noundef %4498) #11
  %4500 = call ptr @__errno_location() #12
  %4501 = load i32, ptr %4500, align 4, !tbaa !5
  %4502 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4489, ptr noundef @.str, i32 noundef %4490, ptr noundef @.str.41, ptr noundef @.str.2, i32 noundef 207, ptr noundef %4493, ptr noundef %4496, ptr noundef %4499, i32 noundef %4501) #11
  br label %4520

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

4520:                                             ; preds = %4503, %4486
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #11
  br label %4521

4521:                                             ; preds = %4520
  br label %4522

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

4523:                                             ; No predecessors!
  br label %4524

4524:                                             ; preds = %4523
  br label %4525

4525:                                             ; preds = %4524, %4466
  br label %4526

4526:                                             ; preds = %4525
  br label %4527

4527:                                             ; preds = %4526
  br label %4528

4528:                                             ; preds = %4527
  %4529 = load i32, ptr @test_count, align 4, !tbaa !5
  %4530 = add nsw i32 %4529, 1
  store i32 %4530, ptr @test_count, align 4, !tbaa !5
  %4531 = load ptr, ptr %6, align 8, !tbaa !9
  %4532 = getelementptr inbounds %struct.s2n_connection, ptr %4531, i32 0, i32 38
  %4533 = call i32 @s2n_stuffer_wipe(ptr noundef %4532)
  %4534 = icmp eq i32 %4533, -1
  br i1 %4534, label %4535, label %4588

4535:                                             ; preds = %4528
  br label %4536

4536:                                             ; preds = %4535
  br label %4537

4537:                                             ; preds = %4536
  call void @llvm.lifetime.start.p0(i64 4, ptr %91) #11
  %4538 = call ptr @__errno_location() #12
  %4539 = load i32, ptr %4538, align 4, !tbaa !5
  store i32 %4539, ptr %91, align 4, !tbaa !5
  %4540 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4541 = call i32 @s2n_print_stacktrace(ptr noundef %4540)
  %4542 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4543 = trunc i8 %4542 to i1
  br i1 %4543, label %4544, label %4566

4544:                                             ; preds = %4537
  %4545 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4546 = call i32 @fileno(ptr noundef %4545) #11
  %4547 = call i32 @isatty(i32 noundef %4546) #11
  %4548 = icmp ne i32 %4547, 0
  br i1 %4548, label %4549, label %4566

4549:                                             ; preds = %4544
  %4550 = load i32, ptr %91, align 4, !tbaa !5
  %4551 = call ptr @__errno_location() #12
  store i32 %4550, ptr %4551, align 4, !tbaa !5
  %4552 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4553 = load i32, ptr @test_count, align 4, !tbaa !5
  %4554 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4555 = load i32, ptr %4554, align 4, !tbaa !5
  %4556 = call ptr @s2n_strerror(i32 noundef %4555, ptr noundef @.str.3)
  %4557 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4558 = load i32, ptr %4557, align 4, !tbaa !5
  %4559 = call ptr @s2n_strerror_debug(i32 noundef %4558, ptr noundef @.str.3)
  %4560 = call ptr @__errno_location() #12
  %4561 = load i32, ptr %4560, align 4, !tbaa !5
  %4562 = call ptr @strerror(i32 noundef %4561) #11
  %4563 = call ptr @__errno_location() #12
  %4564 = load i32, ptr %4563, align 4, !tbaa !5
  %4565 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4552, ptr noundef @.str, i32 noundef %4553, ptr noundef @.str.36, ptr noundef @.str.2, i32 noundef 209, ptr noundef %4556, ptr noundef %4559, ptr noundef %4562, i32 noundef %4564) #11
  br label %4583

4566:                                             ; preds = %4544, %4537
  %4567 = load i32, ptr %91, 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.4, i32 noundef %4570, ptr noundef @.str.36, ptr noundef @.str.2, i32 noundef 209, ptr noundef %4573, ptr noundef %4576, ptr noundef %4579, i32 noundef %4581) #11
  br label %4583

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

4584:                                             ; preds = %4583
  br label %4585

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

4586:                                             ; No predecessors!
  br label %4587

4587:                                             ; preds = %4586
  br label %4588

4588:                                             ; preds = %4587, %4528
  br label %4589

4589:                                             ; preds = %4588
  br label %4590

4590:                                             ; preds = %4589
  br label %4591

4591:                                             ; preds = %4590
  %4592 = load i32, ptr @test_count, align 4, !tbaa !5
  %4593 = add nsw i32 %4592, 1
  store i32 %4593, ptr @test_count, align 4, !tbaa !5
  %4594 = load ptr, ptr %6, align 8, !tbaa !9
  %4595 = getelementptr inbounds %struct.s2n_connection, ptr %4594, i32 0, i32 40
  %4596 = call i32 @s2n_stuffer_wipe(ptr noundef %4595)
  %4597 = icmp eq i32 %4596, -1
  br i1 %4597, label %4598, label %4651

4598:                                             ; preds = %4591
  br label %4599

4599:                                             ; preds = %4598
  br label %4600

4600:                                             ; preds = %4599
  call void @llvm.lifetime.start.p0(i64 4, ptr %92) #11
  %4601 = call ptr @__errno_location() #12
  %4602 = load i32, ptr %4601, align 4, !tbaa !5
  store i32 %4602, ptr %92, align 4, !tbaa !5
  %4603 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4604 = call i32 @s2n_print_stacktrace(ptr noundef %4603)
  %4605 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4606 = trunc i8 %4605 to i1
  br i1 %4606, label %4607, label %4629

4607:                                             ; preds = %4600
  %4608 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4609 = call i32 @fileno(ptr noundef %4608) #11
  %4610 = call i32 @isatty(i32 noundef %4609) #11
  %4611 = icmp ne i32 %4610, 0
  br i1 %4611, label %4612, label %4629

4612:                                             ; preds = %4607
  %4613 = load i32, ptr %92, align 4, !tbaa !5
  %4614 = call ptr @__errno_location() #12
  store i32 %4613, ptr %4614, align 4, !tbaa !5
  %4615 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4616 = load i32, ptr @test_count, align 4, !tbaa !5
  %4617 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4618 = load i32, ptr %4617, align 4, !tbaa !5
  %4619 = call ptr @s2n_strerror(i32 noundef %4618, ptr noundef @.str.3)
  %4620 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4621 = load i32, ptr %4620, align 4, !tbaa !5
  %4622 = call ptr @s2n_strerror_debug(i32 noundef %4621, ptr noundef @.str.3)
  %4623 = call ptr @__errno_location() #12
  %4624 = load i32, ptr %4623, align 4, !tbaa !5
  %4625 = call ptr @strerror(i32 noundef %4624) #11
  %4626 = call ptr @__errno_location() #12
  %4627 = load i32, ptr %4626, align 4, !tbaa !5
  %4628 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4615, ptr noundef @.str, i32 noundef %4616, ptr noundef @.str.35, ptr noundef @.str.2, i32 noundef 210, ptr noundef %4619, ptr noundef %4622, ptr noundef %4625, i32 noundef %4627) #11
  br label %4646

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

4646:                                             ; preds = %4629, %4612
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #11
  br label %4647

4647:                                             ; preds = %4646
  br label %4648

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

4649:                                             ; No predecessors!
  br label %4650

4650:                                             ; preds = %4649
  br label %4651

4651:                                             ; preds = %4650, %4591
  br label %4652

4652:                                             ; preds = %4651
  br label %4653

4653:                                             ; preds = %4652
  br label %4654

4654:                                             ; preds = %4653
  %4655 = load ptr, ptr %6, align 8, !tbaa !9
  %4656 = getelementptr inbounds %struct.s2n_connection, ptr %4655, i32 0, i32 26
  %4657 = load ptr, ptr %4656, align 8, !tbaa !17
  %4658 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %4657, i32 0, i32 0
  %4659 = load ptr, ptr %4658, align 8, !tbaa !46
  %4660 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %4659, i32 0, i32 6
  %4661 = load ptr, ptr %4660, align 8, !tbaa !51
  %4662 = getelementptr inbounds %struct.s2n_record_algorithm, ptr %4661, i32 0, i32 0
  %4663 = load ptr, ptr %4662, align 8, !tbaa !59
  %4664 = getelementptr inbounds %struct.s2n_cipher, ptr %4663, i32 0, i32 7
  %4665 = load ptr, ptr %4664, align 8, !tbaa !66
  %4666 = load ptr, ptr %6, align 8, !tbaa !9
  %4667 = getelementptr inbounds %struct.s2n_connection, ptr %4666, i32 0, i32 26
  %4668 = load ptr, ptr %4667, align 8, !tbaa !17
  %4669 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %4668, i32 0, i32 2
  %4670 = call i32 %4665(ptr noundef %4669)
  %4671 = getelementptr inbounds %struct.s2n_result, ptr %93, i32 0, i32 0
  store i32 %4670, ptr %4671, align 4
  %4672 = getelementptr inbounds %struct.s2n_result, ptr %93, i32 0, i32 0
  %4673 = load i32, ptr %4672, align 4
  %4674 = call zeroext i1 @s2n_result_is_ok(i32 %4673)
  br i1 %4674, label %4676, label %4675

4675:                                             ; preds = %4654
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %19, align 4
  br label %4707

4676:                                             ; preds = %4654
  br label %4677

4677:                                             ; preds = %4676
  br label %4678

4678:                                             ; preds = %4677
  br label %4679

4679:                                             ; preds = %4678
  %4680 = load ptr, ptr %6, align 8, !tbaa !9
  %4681 = getelementptr inbounds %struct.s2n_connection, ptr %4680, i32 0, i32 26
  %4682 = load ptr, ptr %4681, align 8, !tbaa !17
  %4683 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %4682, i32 0, i32 0
  %4684 = load ptr, ptr %4683, align 8, !tbaa !46
  %4685 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %4684, i32 0, i32 6
  %4686 = load ptr, ptr %4685, align 8, !tbaa !51
  %4687 = getelementptr inbounds %struct.s2n_record_algorithm, ptr %4686, i32 0, i32 0
  %4688 = load ptr, ptr %4687, align 8, !tbaa !59
  %4689 = getelementptr inbounds %struct.s2n_cipher, ptr %4688, i32 0, i32 7
  %4690 = load ptr, ptr %4689, align 8, !tbaa !66
  %4691 = load ptr, ptr %6, align 8, !tbaa !9
  %4692 = getelementptr inbounds %struct.s2n_connection, ptr %4691, i32 0, i32 26
  %4693 = load ptr, ptr %4692, align 8, !tbaa !17
  %4694 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %4693, i32 0, i32 1
  %4695 = call i32 %4690(ptr noundef %4694)
  %4696 = getelementptr inbounds %struct.s2n_result, ptr %94, i32 0, i32 0
  store i32 %4695, ptr %4696, align 4
  %4697 = getelementptr inbounds %struct.s2n_result, ptr %94, i32 0, i32 0
  %4698 = load i32, ptr %4697, align 4
  %4699 = call zeroext i1 @s2n_result_is_ok(i32 %4698)
  br i1 %4699, label %4701, label %4700

4700:                                             ; preds = %4679
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %19, align 4
  br label %4707

4701:                                             ; preds = %4679
  br label %4702

4702:                                             ; preds = %4701
  br label %4703

4703:                                             ; preds = %4702
  br label %4704

4704:                                             ; preds = %4703
  %4705 = load i64, ptr %76, align 8, !tbaa !53
  %4706 = add i64 %4705, 1
  store i64 %4706, ptr %76, align 8, !tbaa !53
  br label %3659, !llvm.loop !70

4707:                                             ; preds = %4700, %4675, %3662
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #11
  %4708 = load i32, ptr %19, align 4
  switch i32 %4708, label %5750 [
    i32 341, label %4709
  ]

4709:                                             ; preds = %4707
  call void @llvm.lifetime.start.p0(i64 8, ptr %95) #11
  store i64 0, ptr %95, align 8, !tbaa !53
  br label %4710

4710:                                             ; preds = %5744, %4709
  %4711 = load i64, ptr %95, align 8, !tbaa !53
  %4712 = load i64, ptr %24, align 8, !tbaa !53
  %4713 = icmp ult i64 %4711, %4712
  br i1 %4713, label %4715, label %4714

4714:                                             ; preds = %4710
  store i32 442, ptr %19, align 4
  br label %5747

4715:                                             ; preds = %4710
  br label %4716

4716:                                             ; preds = %4715
  %4717 = load i32, ptr @test_count, align 4, !tbaa !5
  %4718 = add nsw i32 %4717, 1
  store i32 %4718, ptr @test_count, align 4, !tbaa !5
  %4719 = load ptr, ptr %6, align 8, !tbaa !9
  %4720 = call i32 @s2n_connection_wipe(ptr noundef %4719)
  %4721 = icmp eq i32 %4720, -1
  br i1 %4721, label %4722, label %4775

4722:                                             ; preds = %4716
  br label %4723

4723:                                             ; preds = %4722
  br label %4724

4724:                                             ; preds = %4723
  call void @llvm.lifetime.start.p0(i64 4, ptr %96) #11
  %4725 = call ptr @__errno_location() #12
  %4726 = load i32, ptr %4725, align 4, !tbaa !5
  store i32 %4726, ptr %96, align 4, !tbaa !5
  %4727 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4728 = call i32 @s2n_print_stacktrace(ptr noundef %4727)
  %4729 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4730 = trunc i8 %4729 to i1
  br i1 %4730, label %4731, label %4753

4731:                                             ; preds = %4724
  %4732 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4733 = call i32 @fileno(ptr noundef %4732) #11
  %4734 = call i32 @isatty(i32 noundef %4733) #11
  %4735 = icmp ne i32 %4734, 0
  br i1 %4735, label %4736, label %4753

4736:                                             ; preds = %4731
  %4737 = load i32, ptr %96, align 4, !tbaa !5
  %4738 = call ptr @__errno_location() #12
  store i32 %4737, ptr %4738, align 4, !tbaa !5
  %4739 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4740 = load i32, ptr @test_count, align 4, !tbaa !5
  %4741 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4742 = load i32, ptr %4741, align 4, !tbaa !5
  %4743 = call ptr @s2n_strerror(i32 noundef %4742, ptr noundef @.str.3)
  %4744 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4745 = load i32, ptr %4744, align 4, !tbaa !5
  %4746 = call ptr @s2n_strerror_debug(i32 noundef %4745, ptr noundef @.str.3)
  %4747 = call ptr @__errno_location() #12
  %4748 = load i32, ptr %4747, align 4, !tbaa !5
  %4749 = call ptr @strerror(i32 noundef %4748) #11
  %4750 = call ptr @__errno_location() #12
  %4751 = load i32, ptr %4750, align 4, !tbaa !5
  %4752 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4739, ptr noundef @.str, i32 noundef %4740, ptr noundef @.str.20, ptr noundef @.str.2, i32 noundef 217, ptr noundef %4743, ptr noundef %4746, ptr noundef %4749, i32 noundef %4751) #11
  br label %4770

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

4770:                                             ; preds = %4753, %4736
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #11
  br label %4771

4771:                                             ; preds = %4770
  br label %4772

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

4773:                                             ; No predecessors!
  br label %4774

4774:                                             ; preds = %4773
  br label %4775

4775:                                             ; preds = %4774, %4716
  br label %4776

4776:                                             ; preds = %4775
  br label %4777

4777:                                             ; preds = %4776
  %4778 = load ptr, ptr %6, align 8, !tbaa !9
  %4779 = getelementptr inbounds %struct.s2n_connection, ptr %4778, i32 0, i32 25
  store i8 1, ptr %4779, align 2, !tbaa !54
  %4780 = load ptr, ptr %6, align 8, !tbaa !9
  %4781 = getelementptr inbounds %struct.s2n_connection, ptr %4780, i32 0, i32 22
  store i8 33, ptr %4781, align 1, !tbaa !55
  %4782 = load ptr, ptr %6, align 8, !tbaa !9
  %4783 = getelementptr inbounds %struct.s2n_connection, ptr %4782, i32 0, i32 21
  store i8 33, ptr %4783, align 2, !tbaa !56
  %4784 = load ptr, ptr %6, align 8, !tbaa !9
  %4785 = getelementptr inbounds %struct.s2n_connection, ptr %4784, i32 0, i32 23
  store i8 33, ptr %4785, align 4, !tbaa !57
  br label %4786

4786:                                             ; preds = %4777
  %4787 = load i32, ptr @test_count, align 4, !tbaa !5
  %4788 = add nsw i32 %4787, 1
  store i32 %4788, ptr @test_count, align 4, !tbaa !5
  %4789 = load ptr, ptr %6, align 8, !tbaa !9
  %4790 = call i32 @destroy_server_keys(ptr noundef %4789)
  %4791 = icmp eq i32 %4790, -1
  br i1 %4791, label %4792, label %4845

4792:                                             ; preds = %4786
  br label %4793

4793:                                             ; preds = %4792
  br label %4794

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

4801:                                             ; preds = %4794
  %4802 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4803 = call i32 @fileno(ptr noundef %4802) #11
  %4804 = call i32 @isatty(i32 noundef %4803) #11
  %4805 = icmp ne i32 %4804, 0
  br i1 %4805, label %4806, label %4823

4806:                                             ; preds = %4801
  %4807 = load i32, ptr %97, align 4, !tbaa !5
  %4808 = call ptr @__errno_location() #12
  store i32 %4807, ptr %4808, align 4, !tbaa !5
  %4809 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4810 = load i32, ptr @test_count, align 4, !tbaa !5
  %4811 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4812 = load i32, ptr %4811, align 4, !tbaa !5
  %4813 = call ptr @s2n_strerror(i32 noundef %4812, ptr noundef @.str.3)
  %4814 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4815 = load i32, ptr %4814, align 4, !tbaa !5
  %4816 = call ptr @s2n_strerror_debug(i32 noundef %4815, ptr noundef @.str.3)
  %4817 = call ptr @__errno_location() #12
  %4818 = load i32, ptr %4817, align 4, !tbaa !5
  %4819 = call ptr @strerror(i32 noundef %4818) #11
  %4820 = call ptr @__errno_location() #12
  %4821 = load i32, ptr %4820, align 4, !tbaa !5
  %4822 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4809, ptr noundef @.str, i32 noundef %4810, ptr noundef @.str.22, ptr noundef @.str.2, i32 noundef 222, ptr noundef %4813, ptr noundef %4816, ptr noundef %4819, i32 noundef %4821) #11
  br label %4840

4823:                                             ; preds = %4801, %4794
  %4824 = load i32, ptr %97, align 4, !tbaa !5
  %4825 = call ptr @__errno_location() #12
  store i32 %4824, ptr %4825, align 4, !tbaa !5
  %4826 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4827 = load i32, ptr @test_count, align 4, !tbaa !5
  %4828 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4829 = load i32, ptr %4828, align 4, !tbaa !5
  %4830 = call ptr @s2n_strerror(i32 noundef %4829, ptr noundef @.str.3)
  %4831 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4832 = load i32, ptr %4831, align 4, !tbaa !5
  %4833 = call ptr @s2n_strerror_debug(i32 noundef %4832, ptr noundef @.str.3)
  %4834 = call ptr @__errno_location() #12
  %4835 = load i32, ptr %4834, align 4, !tbaa !5
  %4836 = call ptr @strerror(i32 noundef %4835) #11
  %4837 = call ptr @__errno_location() #12
  %4838 = load i32, ptr %4837, align 4, !tbaa !5
  %4839 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4826, ptr noundef @.str.4, i32 noundef %4827, ptr noundef @.str.22, ptr noundef @.str.2, i32 noundef 222, ptr noundef %4830, ptr noundef %4833, ptr noundef %4836, i32 noundef %4838) #11
  br label %4840

4840:                                             ; preds = %4823, %4806
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #11
  br label %4841

4841:                                             ; preds = %4840
  br label %4842

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

4843:                                             ; No predecessors!
  br label %4844

4844:                                             ; preds = %4843
  br label %4845

4845:                                             ; preds = %4844, %4786
  br label %4846

4846:                                             ; preds = %4845
  br label %4847

4847:                                             ; preds = %4846
  br label %4848

4848:                                             ; preds = %4847
  %4849 = load i32, ptr @test_count, align 4, !tbaa !5
  %4850 = add nsw i32 %4849, 1
  store i32 %4850, ptr @test_count, align 4, !tbaa !5
  %4851 = load ptr, ptr %6, align 8, !tbaa !9
  %4852 = call i32 @setup_server_keys(ptr noundef %4851, ptr noundef %9)
  %4853 = icmp eq i32 %4852, -1
  br i1 %4853, label %4854, label %4907

4854:                                             ; preds = %4848
  br label %4855

4855:                                             ; preds = %4854
  br label %4856

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

4863:                                             ; preds = %4856
  %4864 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4865 = call i32 @fileno(ptr noundef %4864) #11
  %4866 = call i32 @isatty(i32 noundef %4865) #11
  %4867 = icmp ne i32 %4866, 0
  br i1 %4867, label %4868, label %4885

4868:                                             ; preds = %4863
  %4869 = load i32, ptr %98, align 4, !tbaa !5
  %4870 = call ptr @__errno_location() #12
  store i32 %4869, ptr %4870, align 4, !tbaa !5
  %4871 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4872 = load i32, ptr @test_count, align 4, !tbaa !5
  %4873 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4874 = load i32, ptr %4873, align 4, !tbaa !5
  %4875 = call ptr @s2n_strerror(i32 noundef %4874, ptr noundef @.str.3)
  %4876 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4877 = load i32, ptr %4876, align 4, !tbaa !5
  %4878 = call ptr @s2n_strerror_debug(i32 noundef %4877, ptr noundef @.str.3)
  %4879 = call ptr @__errno_location() #12
  %4880 = load i32, ptr %4879, align 4, !tbaa !5
  %4881 = call ptr @strerror(i32 noundef %4880) #11
  %4882 = call ptr @__errno_location() #12
  %4883 = load i32, ptr %4882, align 4, !tbaa !5
  %4884 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4871, ptr noundef @.str, i32 noundef %4872, ptr noundef @.str.23, ptr noundef @.str.2, i32 noundef 223, ptr noundef %4875, ptr noundef %4878, ptr noundef %4881, i32 noundef %4883) #11
  br label %4902

4885:                                             ; preds = %4863, %4856
  %4886 = load i32, ptr %98, align 4, !tbaa !5
  %4887 = call ptr @__errno_location() #12
  store i32 %4886, ptr %4887, align 4, !tbaa !5
  %4888 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4889 = load i32, ptr @test_count, align 4, !tbaa !5
  %4890 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4891 = load i32, ptr %4890, align 4, !tbaa !5
  %4892 = call ptr @s2n_strerror(i32 noundef %4891, ptr noundef @.str.3)
  %4893 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4894 = load i32, ptr %4893, align 4, !tbaa !5
  %4895 = call ptr @s2n_strerror_debug(i32 noundef %4894, ptr noundef @.str.3)
  %4896 = call ptr @__errno_location() #12
  %4897 = load i32, ptr %4896, align 4, !tbaa !5
  %4898 = call ptr @strerror(i32 noundef %4897) #11
  %4899 = call ptr @__errno_location() #12
  %4900 = load i32, ptr %4899, align 4, !tbaa !5
  %4901 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4888, ptr noundef @.str.4, i32 noundef %4889, ptr noundef @.str.23, ptr noundef @.str.2, i32 noundef 223, ptr noundef %4892, ptr noundef %4895, ptr noundef %4898, i32 noundef %4900) #11
  br label %4902

4902:                                             ; preds = %4885, %4868
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #11
  br label %4903

4903:                                             ; preds = %4902
  br label %4904

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

4905:                                             ; No predecessors!
  br label %4906

4906:                                             ; preds = %4905
  br label %4907

4907:                                             ; preds = %4906, %4848
  br label %4908

4908:                                             ; preds = %4907
  br label %4909

4909:                                             ; preds = %4908
  br label %4910

4910:                                             ; preds = %4909
  %4911 = load i32, ptr @test_count, align 4, !tbaa !5
  %4912 = add nsw i32 %4911, 1
  store i32 %4912, ptr @test_count, align 4, !tbaa !5
  %4913 = load ptr, ptr %6, align 8, !tbaa !9
  %4914 = call i32 @s2n_record_write(ptr noundef %4913, i8 noundef zeroext 23, ptr noundef %25)
  %4915 = getelementptr inbounds %struct.s2n_result, ptr %99, i32 0, i32 0
  store i32 %4914, ptr %4915, align 4
  %4916 = getelementptr inbounds %struct.s2n_result, ptr %99, i32 0, i32 0
  %4917 = load i32, ptr %4916, align 4
  %4918 = call zeroext i1 @s2n_result_is_ok(i32 %4917)
  br i1 %4918, label %4972, label %4919

4919:                                             ; preds = %4910
  br label %4920

4920:                                             ; preds = %4919
  br label %4921

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

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

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

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

4967:                                             ; preds = %4950, %4933
  call void @llvm.lifetime.end.p0(i64 4, ptr %100) #11
  br label %4968

4968:                                             ; preds = %4967
  br label %4969

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

4970:                                             ; No predecessors!
  br label %4971

4971:                                             ; preds = %4970
  br label %4972

4972:                                             ; preds = %4971, %4910
  br label %4973

4973:                                             ; preds = %4972
  br label %4974

4974:                                             ; preds = %4973
  br label %4975

4975:                                             ; preds = %4974
  %4976 = load i32, ptr @test_count, align 4, !tbaa !5
  %4977 = add nsw i32 %4976, 1
  store i32 %4977, ptr @test_count, align 4, !tbaa !5
  %4978 = load ptr, ptr %6, align 8, !tbaa !9
  %4979 = getelementptr inbounds %struct.s2n_connection, ptr %4978, i32 0, i32 40
  %4980 = call i32 @s2n_stuffer_wipe(ptr noundef %4979)
  %4981 = icmp eq i32 %4980, -1
  br i1 %4981, label %4982, label %5035

4982:                                             ; preds = %4975
  br label %4983

4983:                                             ; preds = %4982
  br label %4984

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

4991:                                             ; preds = %4984
  %4992 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4993 = call i32 @fileno(ptr noundef %4992) #11
  %4994 = call i32 @isatty(i32 noundef %4993) #11
  %4995 = icmp ne i32 %4994, 0
  br i1 %4995, label %4996, label %5013

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

5013:                                             ; preds = %4991, %4984
  %5014 = load i32, ptr %101, align 4, !tbaa !5
  %5015 = call ptr @__errno_location() #12
  store i32 %5014, ptr %5015, align 4, !tbaa !5
  %5016 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5017 = load i32, ptr @test_count, align 4, !tbaa !5
  %5018 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5019 = load i32, ptr %5018, align 4, !tbaa !5
  %5020 = call ptr @s2n_strerror(i32 noundef %5019, ptr noundef @.str.3)
  %5021 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5022 = load i32, ptr %5021, align 4, !tbaa !5
  %5023 = call ptr @s2n_strerror_debug(i32 noundef %5022, ptr noundef @.str.3)
  %5024 = call ptr @__errno_location() #12
  %5025 = load i32, ptr %5024, align 4, !tbaa !5
  %5026 = call ptr @strerror(i32 noundef %5025) #11
  %5027 = call ptr @__errno_location() #12
  %5028 = load i32, ptr %5027, align 4, !tbaa !5
  %5029 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5016, ptr noundef @.str.4, i32 noundef %5017, ptr noundef @.str.35, ptr noundef @.str.2, i32 noundef 227, ptr noundef %5020, ptr noundef %5023, ptr noundef %5026, i32 noundef %5028) #11
  br label %5030

5030:                                             ; preds = %5013, %4996
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #11
  br label %5031

5031:                                             ; preds = %5030
  br label %5032

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

5033:                                             ; No predecessors!
  br label %5034

5034:                                             ; preds = %5033
  br label %5035

5035:                                             ; preds = %5034, %4975
  br label %5036

5036:                                             ; preds = %5035
  br label %5037

5037:                                             ; preds = %5036
  br label %5038

5038:                                             ; preds = %5037
  %5039 = load i32, ptr @test_count, align 4, !tbaa !5
  %5040 = add nsw i32 %5039, 1
  store i32 %5040, ptr @test_count, align 4, !tbaa !5
  %5041 = load ptr, ptr %6, align 8, !tbaa !9
  %5042 = getelementptr inbounds %struct.s2n_connection, ptr %5041, i32 0, i32 38
  %5043 = call i32 @s2n_stuffer_wipe(ptr noundef %5042)
  %5044 = icmp eq i32 %5043, -1
  br i1 %5044, label %5045, label %5098

5045:                                             ; preds = %5038
  br label %5046

5046:                                             ; preds = %5045
  br label %5047

5047:                                             ; preds = %5046
  call void @llvm.lifetime.start.p0(i64 4, ptr %102) #11
  %5048 = call ptr @__errno_location() #12
  %5049 = load i32, ptr %5048, align 4, !tbaa !5
  store i32 %5049, ptr %102, align 4, !tbaa !5
  %5050 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5051 = call i32 @s2n_print_stacktrace(ptr noundef %5050)
  %5052 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5053 = trunc i8 %5052 to i1
  br i1 %5053, label %5054, label %5076

5054:                                             ; preds = %5047
  %5055 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5056 = call i32 @fileno(ptr noundef %5055) #11
  %5057 = call i32 @isatty(i32 noundef %5056) #11
  %5058 = icmp ne i32 %5057, 0
  br i1 %5058, label %5059, label %5076

5059:                                             ; preds = %5054
  %5060 = load i32, ptr %102, 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, i32 noundef %5063, ptr noundef @.str.36, ptr noundef @.str.2, i32 noundef 228, ptr noundef %5066, ptr noundef %5069, ptr noundef %5072, i32 noundef %5074) #11
  br label %5093

5076:                                             ; preds = %5054, %5047
  %5077 = load i32, ptr %102, align 4, !tbaa !5
  %5078 = call ptr @__errno_location() #12
  store i32 %5077, ptr %5078, align 4, !tbaa !5
  %5079 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5080 = load i32, ptr @test_count, align 4, !tbaa !5
  %5081 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5082 = load i32, ptr %5081, align 4, !tbaa !5
  %5083 = call ptr @s2n_strerror(i32 noundef %5082, ptr noundef @.str.3)
  %5084 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5085 = load i32, ptr %5084, align 4, !tbaa !5
  %5086 = call ptr @s2n_strerror_debug(i32 noundef %5085, ptr noundef @.str.3)
  %5087 = call ptr @__errno_location() #12
  %5088 = load i32, ptr %5087, align 4, !tbaa !5
  %5089 = call ptr @strerror(i32 noundef %5088) #11
  %5090 = call ptr @__errno_location() #12
  %5091 = load i32, ptr %5090, align 4, !tbaa !5
  %5092 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5079, ptr noundef @.str.4, i32 noundef %5080, ptr noundef @.str.36, ptr noundef @.str.2, i32 noundef 228, ptr noundef %5083, ptr noundef %5086, ptr noundef %5089, i32 noundef %5091) #11
  br label %5093

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

5094:                                             ; preds = %5093
  br label %5095

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

5096:                                             ; No predecessors!
  br label %5097

5097:                                             ; preds = %5096
  br label %5098

5098:                                             ; preds = %5097, %5038
  br label %5099

5099:                                             ; preds = %5098
  br label %5100

5100:                                             ; preds = %5099
  br label %5101

5101:                                             ; preds = %5100
  %5102 = load i32, ptr @test_count, align 4, !tbaa !5
  %5103 = add nsw i32 %5102, 1
  store i32 %5103, ptr @test_count, align 4, !tbaa !5
  %5104 = load ptr, ptr %6, align 8, !tbaa !9
  %5105 = getelementptr inbounds %struct.s2n_connection, ptr %5104, i32 0, i32 41
  %5106 = load ptr, ptr %6, align 8, !tbaa !9
  %5107 = getelementptr inbounds %struct.s2n_connection, ptr %5106, i32 0, i32 38
  %5108 = call i32 @s2n_stuffer_copy(ptr noundef %5105, ptr noundef %5107, i32 noundef 5)
  %5109 = icmp eq i32 %5108, -1
  br i1 %5109, label %5110, label %5163

5110:                                             ; preds = %5101
  br label %5111

5111:                                             ; preds = %5110
  br label %5112

5112:                                             ; preds = %5111
  call void @llvm.lifetime.start.p0(i64 4, ptr %103) #11
  %5113 = call ptr @__errno_location() #12
  %5114 = load i32, ptr %5113, align 4, !tbaa !5
  store i32 %5114, ptr %103, align 4, !tbaa !5
  %5115 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5116 = call i32 @s2n_print_stacktrace(ptr noundef %5115)
  %5117 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5118 = trunc i8 %5117 to i1
  br i1 %5118, label %5119, label %5141

5119:                                             ; preds = %5112
  %5120 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5121 = call i32 @fileno(ptr noundef %5120) #11
  %5122 = call i32 @isatty(i32 noundef %5121) #11
  %5123 = icmp ne i32 %5122, 0
  br i1 %5123, label %5124, label %5141

5124:                                             ; preds = %5119
  %5125 = load i32, ptr %103, align 4, !tbaa !5
  %5126 = call ptr @__errno_location() #12
  store i32 %5125, ptr %5126, align 4, !tbaa !5
  %5127 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5128 = load i32, ptr @test_count, align 4, !tbaa !5
  %5129 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5130 = load i32, ptr %5129, align 4, !tbaa !5
  %5131 = call ptr @s2n_strerror(i32 noundef %5130, ptr noundef @.str.3)
  %5132 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5133 = load i32, ptr %5132, align 4, !tbaa !5
  %5134 = call ptr @s2n_strerror_debug(i32 noundef %5133, ptr noundef @.str.3)
  %5135 = call ptr @__errno_location() #12
  %5136 = load i32, ptr %5135, align 4, !tbaa !5
  %5137 = call ptr @strerror(i32 noundef %5136) #11
  %5138 = call ptr @__errno_location() #12
  %5139 = load i32, ptr %5138, align 4, !tbaa !5
  %5140 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5127, ptr noundef @.str, i32 noundef %5128, ptr noundef @.str.37, ptr noundef @.str.2, i32 noundef 229, ptr noundef %5131, ptr noundef %5134, ptr noundef %5137, i32 noundef %5139) #11
  br label %5158

5141:                                             ; preds = %5119, %5112
  %5142 = load i32, ptr %103, align 4, !tbaa !5
  %5143 = call ptr @__errno_location() #12
  store i32 %5142, ptr %5143, align 4, !tbaa !5
  %5144 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5145 = load i32, ptr @test_count, align 4, !tbaa !5
  %5146 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5147 = load i32, ptr %5146, align 4, !tbaa !5
  %5148 = call ptr @s2n_strerror(i32 noundef %5147, ptr noundef @.str.3)
  %5149 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5150 = load i32, ptr %5149, align 4, !tbaa !5
  %5151 = call ptr @s2n_strerror_debug(i32 noundef %5150, ptr noundef @.str.3)
  %5152 = call ptr @__errno_location() #12
  %5153 = load i32, ptr %5152, align 4, !tbaa !5
  %5154 = call ptr @strerror(i32 noundef %5153) #11
  %5155 = call ptr @__errno_location() #12
  %5156 = load i32, ptr %5155, align 4, !tbaa !5
  %5157 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5144, ptr noundef @.str.4, i32 noundef %5145, ptr noundef @.str.37, ptr noundef @.str.2, i32 noundef 229, ptr noundef %5148, ptr noundef %5151, ptr noundef %5154, i32 noundef %5156) #11
  br label %5158

5158:                                             ; preds = %5141, %5124
  call void @llvm.lifetime.end.p0(i64 4, ptr %103) #11
  br label %5159

5159:                                             ; preds = %5158
  br label %5160

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

5161:                                             ; No predecessors!
  br label %5162

5162:                                             ; preds = %5161
  br label %5163

5163:                                             ; preds = %5162, %5101
  br label %5164

5164:                                             ; preds = %5163
  br label %5165

5165:                                             ; preds = %5164
  br label %5166

5166:                                             ; preds = %5165
  %5167 = load i32, ptr @test_count, align 4, !tbaa !5
  %5168 = add nsw i32 %5167, 1
  store i32 %5168, ptr @test_count, align 4, !tbaa !5
  %5169 = load ptr, ptr %6, align 8, !tbaa !9
  %5170 = getelementptr inbounds %struct.s2n_connection, ptr %5169, i32 0, i32 41
  %5171 = load ptr, ptr %6, align 8, !tbaa !9
  %5172 = getelementptr inbounds %struct.s2n_connection, ptr %5171, i32 0, i32 40
  %5173 = load ptr, ptr %6, align 8, !tbaa !9
  %5174 = getelementptr inbounds %struct.s2n_connection, ptr %5173, i32 0, i32 41
  %5175 = getelementptr inbounds %struct.s2n_stuffer, ptr %5174, i32 0, i32 2
  %5176 = load i32, ptr %5175, align 4, !tbaa !63
  %5177 = load ptr, ptr %6, align 8, !tbaa !9
  %5178 = getelementptr inbounds %struct.s2n_connection, ptr %5177, i32 0, i32 41
  %5179 = getelementptr inbounds %struct.s2n_stuffer, ptr %5178, i32 0, i32 1
  %5180 = load i32, ptr %5179, align 8, !tbaa !64
  %5181 = sub i32 %5176, %5180
  %5182 = call i32 @s2n_stuffer_copy(ptr noundef %5170, ptr noundef %5172, i32 noundef %5181)
  %5183 = icmp eq i32 %5182, -1
  br i1 %5183, label %5184, label %5237

5184:                                             ; preds = %5166
  br label %5185

5185:                                             ; preds = %5184
  br label %5186

5186:                                             ; preds = %5185
  call void @llvm.lifetime.start.p0(i64 4, ptr %104) #11
  %5187 = call ptr @__errno_location() #12
  %5188 = load i32, ptr %5187, align 4, !tbaa !5
  store i32 %5188, ptr %104, align 4, !tbaa !5
  %5189 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5190 = call i32 @s2n_print_stacktrace(ptr noundef %5189)
  %5191 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5192 = trunc i8 %5191 to i1
  br i1 %5192, label %5193, label %5215

5193:                                             ; preds = %5186
  %5194 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5195 = call i32 @fileno(ptr noundef %5194) #11
  %5196 = call i32 @isatty(i32 noundef %5195) #11
  %5197 = icmp ne i32 %5196, 0
  br i1 %5197, label %5198, label %5215

5198:                                             ; preds = %5193
  %5199 = load i32, ptr %104, align 4, !tbaa !5
  %5200 = call ptr @__errno_location() #12
  store i32 %5199, ptr %5200, align 4, !tbaa !5
  %5201 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5202 = load i32, ptr @test_count, align 4, !tbaa !5
  %5203 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5204 = load i32, ptr %5203, align 4, !tbaa !5
  %5205 = call ptr @s2n_strerror(i32 noundef %5204, ptr noundef @.str.3)
  %5206 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5207 = load i32, ptr %5206, align 4, !tbaa !5
  %5208 = call ptr @s2n_strerror_debug(i32 noundef %5207, ptr noundef @.str.3)
  %5209 = call ptr @__errno_location() #12
  %5210 = load i32, ptr %5209, align 4, !tbaa !5
  %5211 = call ptr @strerror(i32 noundef %5210) #11
  %5212 = call ptr @__errno_location() #12
  %5213 = load i32, ptr %5212, align 4, !tbaa !5
  %5214 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5201, ptr noundef @.str, i32 noundef %5202, ptr noundef @.str.38, ptr noundef @.str.2, i32 noundef 230, ptr noundef %5205, ptr noundef %5208, ptr noundef %5211, i32 noundef %5213) #11
  br label %5232

5215:                                             ; preds = %5193, %5186
  %5216 = load i32, ptr %104, align 4, !tbaa !5
  %5217 = call ptr @__errno_location() #12
  store i32 %5216, ptr %5217, align 4, !tbaa !5
  %5218 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5219 = load i32, ptr @test_count, align 4, !tbaa !5
  %5220 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5221 = load i32, ptr %5220, align 4, !tbaa !5
  %5222 = call ptr @s2n_strerror(i32 noundef %5221, ptr noundef @.str.3)
  %5223 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5224 = load i32, ptr %5223, align 4, !tbaa !5
  %5225 = call ptr @s2n_strerror_debug(i32 noundef %5224, ptr noundef @.str.3)
  %5226 = call ptr @__errno_location() #12
  %5227 = load i32, ptr %5226, align 4, !tbaa !5
  %5228 = call ptr @strerror(i32 noundef %5227) #11
  %5229 = call ptr @__errno_location() #12
  %5230 = load i32, ptr %5229, align 4, !tbaa !5
  %5231 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5218, ptr noundef @.str.4, i32 noundef %5219, ptr noundef @.str.38, ptr noundef @.str.2, i32 noundef 230, ptr noundef %5222, ptr noundef %5225, ptr noundef %5228, i32 noundef %5230) #11
  br label %5232

5232:                                             ; preds = %5215, %5198
  call void @llvm.lifetime.end.p0(i64 4, ptr %104) #11
  br label %5233

5233:                                             ; preds = %5232
  br label %5234

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

5235:                                             ; No predecessors!
  br label %5236

5236:                                             ; preds = %5235
  br label %5237

5237:                                             ; preds = %5236, %5166
  br label %5238

5238:                                             ; preds = %5237
  br label %5239

5239:                                             ; preds = %5238
  %5240 = load ptr, ptr %6, align 8, !tbaa !9
  %5241 = getelementptr inbounds %struct.s2n_connection, ptr %5240, i32 0, i32 40
  %5242 = getelementptr inbounds %struct.s2n_stuffer, ptr %5241, i32 0, i32 0
  %5243 = getelementptr inbounds %struct.s2n_blob, ptr %5242, i32 0, i32 0
  %5244 = load ptr, ptr %5243, align 8, !tbaa !67
  %5245 = load i64, ptr %95, align 8, !tbaa !53
  %5246 = getelementptr inbounds i8, ptr %5244, i64 %5245
  %5247 = load i8, ptr %5246, align 1, !tbaa !61
  %5248 = add i8 %5247, 1
  store i8 %5248, ptr %5246, align 1, !tbaa !61
  br label %5249

5249:                                             ; preds = %5239
  %5250 = load i32, ptr @test_count, align 4, !tbaa !5
  %5251 = add nsw i32 %5250, 1
  store i32 %5251, ptr @test_count, align 4, !tbaa !5
  %5252 = load ptr, ptr %6, align 8, !tbaa !9
  %5253 = call i32 @s2n_record_header_parse(ptr noundef %5252, ptr noundef %49, ptr noundef %50)
  %5254 = icmp eq i32 %5253, -1
  br i1 %5254, label %5255, label %5308

5255:                                             ; preds = %5249
  br label %5256

5256:                                             ; preds = %5255
  br label %5257

5257:                                             ; preds = %5256
  call void @llvm.lifetime.start.p0(i64 4, ptr %105) #11
  %5258 = call ptr @__errno_location() #12
  %5259 = load i32, ptr %5258, align 4, !tbaa !5
  store i32 %5259, ptr %105, align 4, !tbaa !5
  %5260 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5261 = call i32 @s2n_print_stacktrace(ptr noundef %5260)
  %5262 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5263 = trunc i8 %5262 to i1
  br i1 %5263, label %5264, label %5286

5264:                                             ; preds = %5257
  %5265 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5266 = call i32 @fileno(ptr noundef %5265) #11
  %5267 = call i32 @isatty(i32 noundef %5266) #11
  %5268 = icmp ne i32 %5267, 0
  br i1 %5268, label %5269, label %5286

5269:                                             ; preds = %5264
  %5270 = load i32, ptr %105, align 4, !tbaa !5
  %5271 = call ptr @__errno_location() #12
  store i32 %5270, ptr %5271, align 4, !tbaa !5
  %5272 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5273 = load i32, ptr @test_count, align 4, !tbaa !5
  %5274 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5275 = load i32, ptr %5274, align 4, !tbaa !5
  %5276 = call ptr @s2n_strerror(i32 noundef %5275, ptr noundef @.str.3)
  %5277 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5278 = load i32, ptr %5277, align 4, !tbaa !5
  %5279 = call ptr @s2n_strerror_debug(i32 noundef %5278, ptr noundef @.str.3)
  %5280 = call ptr @__errno_location() #12
  %5281 = load i32, ptr %5280, align 4, !tbaa !5
  %5282 = call ptr @strerror(i32 noundef %5281) #11
  %5283 = call ptr @__errno_location() #12
  %5284 = load i32, ptr %5283, align 4, !tbaa !5
  %5285 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5272, ptr noundef @.str, i32 noundef %5273, ptr noundef @.str.39, ptr noundef @.str.2, i32 noundef 232, ptr noundef %5276, ptr noundef %5279, ptr noundef %5282, i32 noundef %5284) #11
  br label %5303

5286:                                             ; preds = %5264, %5257
  %5287 = load i32, ptr %105, align 4, !tbaa !5
  %5288 = call ptr @__errno_location() #12
  store i32 %5287, ptr %5288, align 4, !tbaa !5
  %5289 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5290 = load i32, ptr @test_count, align 4, !tbaa !5
  %5291 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5292 = load i32, ptr %5291, align 4, !tbaa !5
  %5293 = call ptr @s2n_strerror(i32 noundef %5292, ptr noundef @.str.3)
  %5294 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5295 = load i32, ptr %5294, align 4, !tbaa !5
  %5296 = call ptr @s2n_strerror_debug(i32 noundef %5295, ptr noundef @.str.3)
  %5297 = call ptr @__errno_location() #12
  %5298 = load i32, ptr %5297, align 4, !tbaa !5
  %5299 = call ptr @strerror(i32 noundef %5298) #11
  %5300 = call ptr @__errno_location() #12
  %5301 = load i32, ptr %5300, align 4, !tbaa !5
  %5302 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5289, ptr noundef @.str.4, i32 noundef %5290, ptr noundef @.str.39, ptr noundef @.str.2, i32 noundef 232, ptr noundef %5293, ptr noundef %5296, ptr noundef %5299, i32 noundef %5301) #11
  br label %5303

5303:                                             ; preds = %5286, %5269
  call void @llvm.lifetime.end.p0(i64 4, ptr %105) #11
  br label %5304

5304:                                             ; preds = %5303
  br label %5305

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

5306:                                             ; No predecessors!
  br label %5307

5307:                                             ; preds = %5306
  br label %5308

5308:                                             ; preds = %5307, %5249
  br label %5309

5309:                                             ; preds = %5308
  br label %5310

5310:                                             ; preds = %5309
  br label %5311

5311:                                             ; preds = %5310
  br label %5312

5312:                                             ; preds = %5311
  %5313 = load i32, ptr @test_count, align 4, !tbaa !5
  %5314 = add nsw i32 %5313, 1
  store i32 %5314, ptr @test_count, align 4, !tbaa !5
  %5315 = load ptr, ptr %6, align 8, !tbaa !9
  %5316 = call i32 @s2n_record_parse(ptr noundef %5315)
  %5317 = icmp eq i32 %5316, -1
  br i1 %5317, label %5371, label %5318

5318:                                             ; preds = %5312
  br label %5319

5319:                                             ; preds = %5318
  br label %5320

5320:                                             ; preds = %5319
  call void @llvm.lifetime.start.p0(i64 4, ptr %106) #11
  %5321 = call ptr @__errno_location() #12
  %5322 = load i32, ptr %5321, align 4, !tbaa !5
  store i32 %5322, ptr %106, align 4, !tbaa !5
  %5323 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5324 = call i32 @s2n_print_stacktrace(ptr noundef %5323)
  %5325 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5326 = trunc i8 %5325 to i1
  br i1 %5326, label %5327, label %5349

5327:                                             ; preds = %5320
  %5328 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5329 = call i32 @fileno(ptr noundef %5328) #11
  %5330 = call i32 @isatty(i32 noundef %5329) #11
  %5331 = icmp ne i32 %5330, 0
  br i1 %5331, label %5332, label %5349

5332:                                             ; preds = %5327
  %5333 = load i32, ptr %106, align 4, !tbaa !5
  %5334 = call ptr @__errno_location() #12
  store i32 %5333, ptr %5334, align 4, !tbaa !5
  %5335 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5336 = load i32, ptr @test_count, align 4, !tbaa !5
  %5337 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5338 = load i32, ptr %5337, align 4, !tbaa !5
  %5339 = call ptr @s2n_strerror(i32 noundef %5338, ptr noundef @.str.3)
  %5340 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5341 = load i32, ptr %5340, align 4, !tbaa !5
  %5342 = call ptr @s2n_strerror_debug(i32 noundef %5341, ptr noundef @.str.3)
  %5343 = call ptr @__errno_location() #12
  %5344 = load i32, ptr %5343, align 4, !tbaa !5
  %5345 = call ptr @strerror(i32 noundef %5344) #11
  %5346 = call ptr @__errno_location() #12
  %5347 = load i32, ptr %5346, align 4, !tbaa !5
  %5348 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5335, ptr noundef @.str, i32 noundef %5336, ptr noundef @.str.46, ptr noundef @.str.2, i32 noundef 233, ptr noundef %5339, ptr noundef %5342, ptr noundef %5345, i32 noundef %5347) #11
  br label %5366

5349:                                             ; preds = %5327, %5320
  %5350 = load i32, ptr %106, align 4, !tbaa !5
  %5351 = call ptr @__errno_location() #12
  store i32 %5350, ptr %5351, align 4, !tbaa !5
  %5352 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5353 = load i32, ptr @test_count, align 4, !tbaa !5
  %5354 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5355 = load i32, ptr %5354, align 4, !tbaa !5
  %5356 = call ptr @s2n_strerror(i32 noundef %5355, ptr noundef @.str.3)
  %5357 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5358 = load i32, ptr %5357, align 4, !tbaa !5
  %5359 = call ptr @s2n_strerror_debug(i32 noundef %5358, ptr noundef @.str.3)
  %5360 = call ptr @__errno_location() #12
  %5361 = load i32, ptr %5360, align 4, !tbaa !5
  %5362 = call ptr @strerror(i32 noundef %5361) #11
  %5363 = call ptr @__errno_location() #12
  %5364 = load i32, ptr %5363, align 4, !tbaa !5
  %5365 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5352, ptr noundef @.str.4, i32 noundef %5353, ptr noundef @.str.46, ptr noundef @.str.2, i32 noundef 233, ptr noundef %5356, ptr noundef %5359, ptr noundef %5362, i32 noundef %5364) #11
  br label %5366

5366:                                             ; preds = %5349, %5332
  call void @llvm.lifetime.end.p0(i64 4, ptr %106) #11
  br label %5367

5367:                                             ; preds = %5366
  br label %5368

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

5369:                                             ; No predecessors!
  br label %5370

5370:                                             ; preds = %5369
  br label %5371

5371:                                             ; preds = %5370, %5312
  br label %5372

5372:                                             ; preds = %5371
  br label %5373

5373:                                             ; preds = %5372
  br label %5374

5374:                                             ; preds = %5373
  %5375 = load i32, ptr @test_count, align 4, !tbaa !5
  %5376 = add nsw i32 %5375, 1
  store i32 %5376, ptr @test_count, align 4, !tbaa !5
  %5377 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5378 = load i32, ptr %5377, align 4, !tbaa !5
  %5379 = icmp eq i32 %5378, 0
  br i1 %5379, label %5380, label %5433

5380:                                             ; preds = %5374
  br label %5381

5381:                                             ; preds = %5380
  br label %5382

5382:                                             ; preds = %5381
  call void @llvm.lifetime.start.p0(i64 4, ptr %107) #11
  %5383 = call ptr @__errno_location() #12
  %5384 = load i32, ptr %5383, align 4, !tbaa !5
  store i32 %5384, ptr %107, align 4, !tbaa !5
  %5385 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5386 = call i32 @s2n_print_stacktrace(ptr noundef %5385)
  %5387 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5388 = trunc i8 %5387 to i1
  br i1 %5388, label %5389, label %5411

5389:                                             ; preds = %5382
  %5390 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5391 = call i32 @fileno(ptr noundef %5390) #11
  %5392 = call i32 @isatty(i32 noundef %5391) #11
  %5393 = icmp ne i32 %5392, 0
  br i1 %5393, label %5394, label %5411

5394:                                             ; preds = %5389
  %5395 = load i32, ptr %107, align 4, !tbaa !5
  %5396 = call ptr @__errno_location() #12
  store i32 %5395, ptr %5396, align 4, !tbaa !5
  %5397 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5398 = load i32, ptr @test_count, align 4, !tbaa !5
  %5399 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5400 = load i32, ptr %5399, align 4, !tbaa !5
  %5401 = call ptr @s2n_strerror(i32 noundef %5400, ptr noundef @.str.3)
  %5402 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5403 = load i32, ptr %5402, align 4, !tbaa !5
  %5404 = call ptr @s2n_strerror_debug(i32 noundef %5403, ptr noundef @.str.3)
  %5405 = call ptr @__errno_location() #12
  %5406 = load i32, ptr %5405, align 4, !tbaa !5
  %5407 = call ptr @strerror(i32 noundef %5406) #11
  %5408 = call ptr @__errno_location() #12
  %5409 = load i32, ptr %5408, align 4, !tbaa !5
  %5410 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5397, ptr noundef @.str, i32 noundef %5398, ptr noundef @.str.47, ptr noundef @.str.2, i32 noundef 233, ptr noundef %5401, ptr noundef %5404, ptr noundef %5407, i32 noundef %5409) #11
  br label %5428

5411:                                             ; preds = %5389, %5382
  %5412 = load i32, ptr %107, align 4, !tbaa !5
  %5413 = call ptr @__errno_location() #12
  store i32 %5412, ptr %5413, align 4, !tbaa !5
  %5414 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5415 = load i32, ptr @test_count, align 4, !tbaa !5
  %5416 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5417 = load i32, ptr %5416, align 4, !tbaa !5
  %5418 = call ptr @s2n_strerror(i32 noundef %5417, ptr noundef @.str.3)
  %5419 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5420 = load i32, ptr %5419, align 4, !tbaa !5
  %5421 = call ptr @s2n_strerror_debug(i32 noundef %5420, ptr noundef @.str.3)
  %5422 = call ptr @__errno_location() #12
  %5423 = load i32, ptr %5422, align 4, !tbaa !5
  %5424 = call ptr @strerror(i32 noundef %5423) #11
  %5425 = call ptr @__errno_location() #12
  %5426 = load i32, ptr %5425, align 4, !tbaa !5
  %5427 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5414, ptr noundef @.str.4, i32 noundef %5415, ptr noundef @.str.47, ptr noundef @.str.2, i32 noundef 233, ptr noundef %5418, ptr noundef %5421, ptr noundef %5424, i32 noundef %5426) #11
  br label %5428

5428:                                             ; preds = %5411, %5394
  call void @llvm.lifetime.end.p0(i64 4, ptr %107) #11
  br label %5429

5429:                                             ; preds = %5428
  br label %5430

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

5431:                                             ; No predecessors!
  br label %5432

5432:                                             ; preds = %5431
  br label %5433

5433:                                             ; preds = %5432, %5374
  br label %5434

5434:                                             ; preds = %5433
  br label %5435

5435:                                             ; preds = %5434
  br label %5436

5436:                                             ; preds = %5435
  %5437 = load i32, ptr @test_count, align 4, !tbaa !5
  %5438 = add nsw i32 %5437, 1
  store i32 %5438, ptr @test_count, align 4, !tbaa !5
  %5439 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5440 = load i32, ptr %5439, align 4, !tbaa !5
  %5441 = call ptr @s2n_strerror_debug(i32 noundef %5440, ptr noundef @.str.3)
  %5442 = icmp eq ptr %5441, null
  br i1 %5442, label %5443, label %5496

5443:                                             ; preds = %5436
  br label %5444

5444:                                             ; preds = %5443
  br label %5445

5445:                                             ; preds = %5444
  call void @llvm.lifetime.start.p0(i64 4, ptr %108) #11
  %5446 = call ptr @__errno_location() #12
  %5447 = load i32, ptr %5446, align 4, !tbaa !5
  store i32 %5447, ptr %108, align 4, !tbaa !5
  %5448 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5449 = call i32 @s2n_print_stacktrace(ptr noundef %5448)
  %5450 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5451 = trunc i8 %5450 to i1
  br i1 %5451, label %5452, label %5474

5452:                                             ; preds = %5445
  %5453 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5454 = call i32 @fileno(ptr noundef %5453) #11
  %5455 = call i32 @isatty(i32 noundef %5454) #11
  %5456 = icmp ne i32 %5455, 0
  br i1 %5456, label %5457, label %5474

5457:                                             ; preds = %5452
  %5458 = load i32, ptr %108, align 4, !tbaa !5
  %5459 = call ptr @__errno_location() #12
  store i32 %5458, ptr %5459, align 4, !tbaa !5
  %5460 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5461 = load i32, ptr @test_count, align 4, !tbaa !5
  %5462 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5463 = load i32, ptr %5462, align 4, !tbaa !5
  %5464 = call ptr @s2n_strerror(i32 noundef %5463, ptr noundef @.str.3)
  %5465 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5466 = load i32, ptr %5465, align 4, !tbaa !5
  %5467 = call ptr @s2n_strerror_debug(i32 noundef %5466, ptr noundef @.str.3)
  %5468 = call ptr @__errno_location() #12
  %5469 = load i32, ptr %5468, align 4, !tbaa !5
  %5470 = call ptr @strerror(i32 noundef %5469) #11
  %5471 = call ptr @__errno_location() #12
  %5472 = load i32, ptr %5471, align 4, !tbaa !5
  %5473 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5460, ptr noundef @.str, i32 noundef %5461, ptr noundef @.str.27, ptr noundef @.str.2, i32 noundef 233, ptr noundef %5464, ptr noundef %5467, ptr noundef %5470, i32 noundef %5472) #11
  br label %5491

5474:                                             ; preds = %5452, %5445
  %5475 = load i32, ptr %108, align 4, !tbaa !5
  %5476 = call ptr @__errno_location() #12
  store i32 %5475, ptr %5476, align 4, !tbaa !5
  %5477 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5478 = load i32, ptr @test_count, align 4, !tbaa !5
  %5479 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5480 = load i32, ptr %5479, align 4, !tbaa !5
  %5481 = call ptr @s2n_strerror(i32 noundef %5480, ptr noundef @.str.3)
  %5482 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5483 = load i32, ptr %5482, align 4, !tbaa !5
  %5484 = call ptr @s2n_strerror_debug(i32 noundef %5483, ptr noundef @.str.3)
  %5485 = call ptr @__errno_location() #12
  %5486 = load i32, ptr %5485, align 4, !tbaa !5
  %5487 = call ptr @strerror(i32 noundef %5486) #11
  %5488 = call ptr @__errno_location() #12
  %5489 = load i32, ptr %5488, align 4, !tbaa !5
  %5490 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5477, ptr noundef @.str.4, i32 noundef %5478, ptr noundef @.str.27, ptr noundef @.str.2, i32 noundef 233, ptr noundef %5481, ptr noundef %5484, ptr noundef %5487, i32 noundef %5489) #11
  br label %5491

5491:                                             ; preds = %5474, %5457
  call void @llvm.lifetime.end.p0(i64 4, ptr %108) #11
  br label %5492

5492:                                             ; preds = %5491
  br label %5493

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

5494:                                             ; No predecessors!
  br label %5495

5495:                                             ; preds = %5494
  br label %5496

5496:                                             ; preds = %5495, %5436
  br label %5497

5497:                                             ; preds = %5496
  br label %5498

5498:                                             ; preds = %5497
  br label %5499

5499:                                             ; preds = %5498
  %5500 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %5500, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %5501 = call ptr @__errno_location() #12
  store i32 0, ptr %5501, align 4, !tbaa !5
  br label %5502

5502:                                             ; preds = %5499
  br label %5503

5503:                                             ; preds = %5502
  br label %5504

5504:                                             ; preds = %5503
  br label %5505

5505:                                             ; preds = %5504
  br label %5506

5506:                                             ; preds = %5505
  %5507 = load i32, ptr @test_count, align 4, !tbaa !5
  %5508 = add nsw i32 %5507, 1
  store i32 %5508, ptr @test_count, align 4, !tbaa !5
  %5509 = load i8, ptr %49, align 1, !tbaa !61
  %5510 = zext i8 %5509 to i32
  %5511 = icmp eq i32 %5510, 23
  br i1 %5511, label %5565, label %5512

5512:                                             ; preds = %5506
  br label %5513

5513:                                             ; preds = %5512
  br label %5514

5514:                                             ; preds = %5513
  call void @llvm.lifetime.start.p0(i64 4, ptr %109) #11
  %5515 = call ptr @__errno_location() #12
  %5516 = load i32, ptr %5515, align 4, !tbaa !5
  store i32 %5516, ptr %109, align 4, !tbaa !5
  %5517 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5518 = call i32 @s2n_print_stacktrace(ptr noundef %5517)
  %5519 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5520 = trunc i8 %5519 to i1
  br i1 %5520, label %5521, label %5543

5521:                                             ; preds = %5514
  %5522 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5523 = call i32 @fileno(ptr noundef %5522) #11
  %5524 = call i32 @isatty(i32 noundef %5523) #11
  %5525 = icmp ne i32 %5524, 0
  br i1 %5525, label %5526, label %5543

5526:                                             ; preds = %5521
  %5527 = load i32, ptr %109, align 4, !tbaa !5
  %5528 = call ptr @__errno_location() #12
  store i32 %5527, ptr %5528, align 4, !tbaa !5
  %5529 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5530 = load i32, ptr @test_count, align 4, !tbaa !5
  %5531 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5532 = load i32, ptr %5531, align 4, !tbaa !5
  %5533 = call ptr @s2n_strerror(i32 noundef %5532, ptr noundef @.str.3)
  %5534 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5535 = load i32, ptr %5534, align 4, !tbaa !5
  %5536 = call ptr @s2n_strerror_debug(i32 noundef %5535, ptr noundef @.str.3)
  %5537 = call ptr @__errno_location() #12
  %5538 = load i32, ptr %5537, align 4, !tbaa !5
  %5539 = call ptr @strerror(i32 noundef %5538) #11
  %5540 = call ptr @__errno_location() #12
  %5541 = load i32, ptr %5540, align 4, !tbaa !5
  %5542 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5529, ptr noundef @.str, i32 noundef %5530, ptr noundef @.str.41, ptr noundef @.str.2, i32 noundef 234, ptr noundef %5533, ptr noundef %5536, ptr noundef %5539, i32 noundef %5541) #11
  br label %5560

5543:                                             ; preds = %5521, %5514
  %5544 = load i32, ptr %109, align 4, !tbaa !5
  %5545 = call ptr @__errno_location() #12
  store i32 %5544, ptr %5545, align 4, !tbaa !5
  %5546 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5547 = load i32, ptr @test_count, align 4, !tbaa !5
  %5548 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5549 = load i32, ptr %5548, align 4, !tbaa !5
  %5550 = call ptr @s2n_strerror(i32 noundef %5549, ptr noundef @.str.3)
  %5551 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5552 = load i32, ptr %5551, align 4, !tbaa !5
  %5553 = call ptr @s2n_strerror_debug(i32 noundef %5552, ptr noundef @.str.3)
  %5554 = call ptr @__errno_location() #12
  %5555 = load i32, ptr %5554, align 4, !tbaa !5
  %5556 = call ptr @strerror(i32 noundef %5555) #11
  %5557 = call ptr @__errno_location() #12
  %5558 = load i32, ptr %5557, align 4, !tbaa !5
  %5559 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5546, ptr noundef @.str.4, i32 noundef %5547, ptr noundef @.str.41, ptr noundef @.str.2, i32 noundef 234, ptr noundef %5550, ptr noundef %5553, ptr noundef %5556, i32 noundef %5558) #11
  br label %5560

5560:                                             ; preds = %5543, %5526
  call void @llvm.lifetime.end.p0(i64 4, ptr %109) #11
  br label %5561

5561:                                             ; preds = %5560
  br label %5562

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

5563:                                             ; No predecessors!
  br label %5564

5564:                                             ; preds = %5563
  br label %5565

5565:                                             ; preds = %5564, %5506
  br label %5566

5566:                                             ; preds = %5565
  br label %5567

5567:                                             ; preds = %5566
  br label %5568

5568:                                             ; preds = %5567
  %5569 = load i32, ptr @test_count, align 4, !tbaa !5
  %5570 = add nsw i32 %5569, 1
  store i32 %5570, ptr @test_count, align 4, !tbaa !5
  %5571 = load ptr, ptr %6, align 8, !tbaa !9
  %5572 = getelementptr inbounds %struct.s2n_connection, ptr %5571, i32 0, i32 38
  %5573 = call i32 @s2n_stuffer_wipe(ptr noundef %5572)
  %5574 = icmp eq i32 %5573, -1
  br i1 %5574, label %5575, label %5628

5575:                                             ; preds = %5568
  br label %5576

5576:                                             ; preds = %5575
  br label %5577

5577:                                             ; preds = %5576
  call void @llvm.lifetime.start.p0(i64 4, ptr %110) #11
  %5578 = call ptr @__errno_location() #12
  %5579 = load i32, ptr %5578, align 4, !tbaa !5
  store i32 %5579, ptr %110, align 4, !tbaa !5
  %5580 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5581 = call i32 @s2n_print_stacktrace(ptr noundef %5580)
  %5582 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5583 = trunc i8 %5582 to i1
  br i1 %5583, label %5584, label %5606

5584:                                             ; preds = %5577
  %5585 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5586 = call i32 @fileno(ptr noundef %5585) #11
  %5587 = call i32 @isatty(i32 noundef %5586) #11
  %5588 = icmp ne i32 %5587, 0
  br i1 %5588, label %5589, label %5606

5589:                                             ; preds = %5584
  %5590 = load i32, ptr %110, align 4, !tbaa !5
  %5591 = call ptr @__errno_location() #12
  store i32 %5590, ptr %5591, align 4, !tbaa !5
  %5592 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5593 = load i32, ptr @test_count, align 4, !tbaa !5
  %5594 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5595 = load i32, ptr %5594, align 4, !tbaa !5
  %5596 = call ptr @s2n_strerror(i32 noundef %5595, ptr noundef @.str.3)
  %5597 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5598 = load i32, ptr %5597, align 4, !tbaa !5
  %5599 = call ptr @s2n_strerror_debug(i32 noundef %5598, ptr noundef @.str.3)
  %5600 = call ptr @__errno_location() #12
  %5601 = load i32, ptr %5600, align 4, !tbaa !5
  %5602 = call ptr @strerror(i32 noundef %5601) #11
  %5603 = call ptr @__errno_location() #12
  %5604 = load i32, ptr %5603, align 4, !tbaa !5
  %5605 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5592, ptr noundef @.str, i32 noundef %5593, ptr noundef @.str.36, ptr noundef @.str.2, i32 noundef 236, ptr noundef %5596, ptr noundef %5599, ptr noundef %5602, i32 noundef %5604) #11
  br label %5623

5606:                                             ; preds = %5584, %5577
  %5607 = load i32, ptr %110, align 4, !tbaa !5
  %5608 = call ptr @__errno_location() #12
  store i32 %5607, ptr %5608, align 4, !tbaa !5
  %5609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5610 = load i32, ptr @test_count, align 4, !tbaa !5
  %5611 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5612 = load i32, ptr %5611, align 4, !tbaa !5
  %5613 = call ptr @s2n_strerror(i32 noundef %5612, ptr noundef @.str.3)
  %5614 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5615 = load i32, ptr %5614, align 4, !tbaa !5
  %5616 = call ptr @s2n_strerror_debug(i32 noundef %5615, ptr noundef @.str.3)
  %5617 = call ptr @__errno_location() #12
  %5618 = load i32, ptr %5617, align 4, !tbaa !5
  %5619 = call ptr @strerror(i32 noundef %5618) #11
  %5620 = call ptr @__errno_location() #12
  %5621 = load i32, ptr %5620, align 4, !tbaa !5
  %5622 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5609, ptr noundef @.str.4, i32 noundef %5610, ptr noundef @.str.36, ptr noundef @.str.2, i32 noundef 236, ptr noundef %5613, ptr noundef %5616, ptr noundef %5619, i32 noundef %5621) #11
  br label %5623

5623:                                             ; preds = %5606, %5589
  call void @llvm.lifetime.end.p0(i64 4, ptr %110) #11
  br label %5624

5624:                                             ; preds = %5623
  br label %5625

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

5626:                                             ; No predecessors!
  br label %5627

5627:                                             ; preds = %5626
  br label %5628

5628:                                             ; preds = %5627, %5568
  br label %5629

5629:                                             ; preds = %5628
  br label %5630

5630:                                             ; preds = %5629
  br label %5631

5631:                                             ; preds = %5630
  %5632 = load i32, ptr @test_count, align 4, !tbaa !5
  %5633 = add nsw i32 %5632, 1
  store i32 %5633, ptr @test_count, align 4, !tbaa !5
  %5634 = load ptr, ptr %6, align 8, !tbaa !9
  %5635 = getelementptr inbounds %struct.s2n_connection, ptr %5634, i32 0, i32 40
  %5636 = call i32 @s2n_stuffer_wipe(ptr noundef %5635)
  %5637 = icmp eq i32 %5636, -1
  br i1 %5637, label %5638, label %5691

5638:                                             ; preds = %5631
  br label %5639

5639:                                             ; preds = %5638
  br label %5640

5640:                                             ; preds = %5639
  call void @llvm.lifetime.start.p0(i64 4, ptr %111) #11
  %5641 = call ptr @__errno_location() #12
  %5642 = load i32, ptr %5641, align 4, !tbaa !5
  store i32 %5642, ptr %111, align 4, !tbaa !5
  %5643 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5644 = call i32 @s2n_print_stacktrace(ptr noundef %5643)
  %5645 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5646 = trunc i8 %5645 to i1
  br i1 %5646, label %5647, label %5669

5647:                                             ; preds = %5640
  %5648 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5649 = call i32 @fileno(ptr noundef %5648) #11
  %5650 = call i32 @isatty(i32 noundef %5649) #11
  %5651 = icmp ne i32 %5650, 0
  br i1 %5651, label %5652, label %5669

5652:                                             ; preds = %5647
  %5653 = load i32, ptr %111, align 4, !tbaa !5
  %5654 = call ptr @__errno_location() #12
  store i32 %5653, ptr %5654, align 4, !tbaa !5
  %5655 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5656 = load i32, ptr @test_count, align 4, !tbaa !5
  %5657 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5658 = load i32, ptr %5657, align 4, !tbaa !5
  %5659 = call ptr @s2n_strerror(i32 noundef %5658, ptr noundef @.str.3)
  %5660 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5661 = load i32, ptr %5660, align 4, !tbaa !5
  %5662 = call ptr @s2n_strerror_debug(i32 noundef %5661, ptr noundef @.str.3)
  %5663 = call ptr @__errno_location() #12
  %5664 = load i32, ptr %5663, align 4, !tbaa !5
  %5665 = call ptr @strerror(i32 noundef %5664) #11
  %5666 = call ptr @__errno_location() #12
  %5667 = load i32, ptr %5666, align 4, !tbaa !5
  %5668 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5655, ptr noundef @.str, i32 noundef %5656, ptr noundef @.str.35, ptr noundef @.str.2, i32 noundef 237, ptr noundef %5659, ptr noundef %5662, ptr noundef %5665, i32 noundef %5667) #11
  br label %5686

5669:                                             ; preds = %5647, %5640
  %5670 = load i32, ptr %111, align 4, !tbaa !5
  %5671 = call ptr @__errno_location() #12
  store i32 %5670, ptr %5671, align 4, !tbaa !5
  %5672 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5673 = load i32, ptr @test_count, align 4, !tbaa !5
  %5674 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5675 = load i32, ptr %5674, align 4, !tbaa !5
  %5676 = call ptr @s2n_strerror(i32 noundef %5675, ptr noundef @.str.3)
  %5677 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5678 = load i32, ptr %5677, align 4, !tbaa !5
  %5679 = call ptr @s2n_strerror_debug(i32 noundef %5678, ptr noundef @.str.3)
  %5680 = call ptr @__errno_location() #12
  %5681 = load i32, ptr %5680, align 4, !tbaa !5
  %5682 = call ptr @strerror(i32 noundef %5681) #11
  %5683 = call ptr @__errno_location() #12
  %5684 = load i32, ptr %5683, align 4, !tbaa !5
  %5685 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5672, ptr noundef @.str.4, i32 noundef %5673, ptr noundef @.str.35, ptr noundef @.str.2, i32 noundef 237, ptr noundef %5676, ptr noundef %5679, ptr noundef %5682, i32 noundef %5684) #11
  br label %5686

5686:                                             ; preds = %5669, %5652
  call void @llvm.lifetime.end.p0(i64 4, ptr %111) #11
  br label %5687

5687:                                             ; preds = %5686
  br label %5688

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

5689:                                             ; No predecessors!
  br label %5690

5690:                                             ; preds = %5689
  br label %5691

5691:                                             ; preds = %5690, %5631
  br label %5692

5692:                                             ; preds = %5691
  br label %5693

5693:                                             ; preds = %5692
  br label %5694

5694:                                             ; preds = %5693
  %5695 = load ptr, ptr %6, align 8, !tbaa !9
  %5696 = getelementptr inbounds %struct.s2n_connection, ptr %5695, i32 0, i32 26
  %5697 = load ptr, ptr %5696, align 8, !tbaa !17
  %5698 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %5697, i32 0, i32 0
  %5699 = load ptr, ptr %5698, align 8, !tbaa !46
  %5700 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %5699, i32 0, i32 6
  %5701 = load ptr, ptr %5700, align 8, !tbaa !51
  %5702 = getelementptr inbounds %struct.s2n_record_algorithm, ptr %5701, i32 0, i32 0
  %5703 = load ptr, ptr %5702, align 8, !tbaa !59
  %5704 = getelementptr inbounds %struct.s2n_cipher, ptr %5703, i32 0, i32 7
  %5705 = load ptr, ptr %5704, align 8, !tbaa !66
  %5706 = load ptr, ptr %6, align 8, !tbaa !9
  %5707 = getelementptr inbounds %struct.s2n_connection, ptr %5706, i32 0, i32 26
  %5708 = load ptr, ptr %5707, align 8, !tbaa !17
  %5709 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %5708, i32 0, i32 2
  %5710 = call i32 %5705(ptr noundef %5709)
  %5711 = getelementptr inbounds %struct.s2n_result, ptr %112, i32 0, i32 0
  store i32 %5710, ptr %5711, align 4
  %5712 = getelementptr inbounds %struct.s2n_result, ptr %112, i32 0, i32 0
  %5713 = load i32, ptr %5712, align 4
  %5714 = call zeroext i1 @s2n_result_is_ok(i32 %5713)
  br i1 %5714, label %5716, label %5715

5715:                                             ; preds = %5694
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %19, align 4
  br label %5747

5716:                                             ; preds = %5694
  br label %5717

5717:                                             ; preds = %5716
  br label %5718

5718:                                             ; preds = %5717
  br label %5719

5719:                                             ; preds = %5718
  %5720 = load ptr, ptr %6, align 8, !tbaa !9
  %5721 = getelementptr inbounds %struct.s2n_connection, ptr %5720, i32 0, i32 26
  %5722 = load ptr, ptr %5721, align 8, !tbaa !17
  %5723 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %5722, i32 0, i32 0
  %5724 = load ptr, ptr %5723, align 8, !tbaa !46
  %5725 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %5724, i32 0, i32 6
  %5726 = load ptr, ptr %5725, align 8, !tbaa !51
  %5727 = getelementptr inbounds %struct.s2n_record_algorithm, ptr %5726, i32 0, i32 0
  %5728 = load ptr, ptr %5727, align 8, !tbaa !59
  %5729 = getelementptr inbounds %struct.s2n_cipher, ptr %5728, i32 0, i32 7
  %5730 = load ptr, ptr %5729, align 8, !tbaa !66
  %5731 = load ptr, ptr %6, align 8, !tbaa !9
  %5732 = getelementptr inbounds %struct.s2n_connection, ptr %5731, i32 0, i32 26
  %5733 = load ptr, ptr %5732, align 8, !tbaa !17
  %5734 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %5733, i32 0, i32 1
  %5735 = call i32 %5730(ptr noundef %5734)
  %5736 = getelementptr inbounds %struct.s2n_result, ptr %113, i32 0, i32 0
  store i32 %5735, ptr %5736, align 4
  %5737 = getelementptr inbounds %struct.s2n_result, ptr %113, i32 0, i32 0
  %5738 = load i32, ptr %5737, align 4
  %5739 = call zeroext i1 @s2n_result_is_ok(i32 %5738)
  br i1 %5739, label %5741, label %5740

5740:                                             ; preds = %5719
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %19, align 4
  br label %5747

5741:                                             ; preds = %5719
  br label %5742

5742:                                             ; preds = %5741
  br label %5743

5743:                                             ; preds = %5742
  br label %5744

5744:                                             ; preds = %5743
  %5745 = load i64, ptr %95, align 8, !tbaa !53
  %5746 = add i64 %5745, 1
  store i64 %5746, ptr %95, align 8, !tbaa !53
  br label %4710, !llvm.loop !72

5747:                                             ; preds = %5740, %5715, %4714
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #11
  %5748 = load i32, ptr %19, align 4
  switch i32 %5748, label %5750 [
    i32 442, label %5749
  ]

5749:                                             ; preds = %5747
  store i32 0, ptr %19, align 4
  br label %5750

5750:                                             ; preds = %5749, %5747, %4707, %3655, %3630
  call void @llvm.lifetime.end.p0(i64 2, ptr %50) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %49) #11
  call void @llvm.lifetime.end.p0(i64 2, ptr %37) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %25) #11
  %5751 = load i32, ptr %19, align 4
  switch i32 %5751, label %5756 [
    i32 0, label %5752
  ]

5752:                                             ; preds = %5750
  br label %5753

5753:                                             ; preds = %5752
  %5754 = load i64, ptr %24, align 8, !tbaa !53
  %5755 = add i64 %5754, 1
  store i64 %5755, ptr %24, align 8, !tbaa !53
  br label %799, !llvm.loop !73

5756:                                             ; preds = %5750, %805
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #11
  %5757 = load i32, ptr %19, align 4
  switch i32 %5757, label %6037 [
    i32 72, label %5758
  ]

5758:                                             ; preds = %5756
  br label %5759

5759:                                             ; preds = %5758
  %5760 = load i32, ptr @test_count, align 4, !tbaa !5
  %5761 = add nsw i32 %5760, 1
  store i32 %5761, ptr @test_count, align 4, !tbaa !5
  %5762 = load ptr, ptr %6, align 8, !tbaa !9
  %5763 = call i32 @destroy_server_keys(ptr noundef %5762)
  %5764 = icmp eq i32 %5763, -1
  br i1 %5764, label %5765, label %5818

5765:                                             ; preds = %5759
  br label %5766

5766:                                             ; preds = %5765
  br label %5767

5767:                                             ; preds = %5766
  call void @llvm.lifetime.start.p0(i64 4, ptr %114) #11
  %5768 = call ptr @__errno_location() #12
  %5769 = load i32, ptr %5768, align 4, !tbaa !5
  store i32 %5769, ptr %114, align 4, !tbaa !5
  %5770 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5771 = call i32 @s2n_print_stacktrace(ptr noundef %5770)
  %5772 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5773 = trunc i8 %5772 to i1
  br i1 %5773, label %5774, label %5796

5774:                                             ; preds = %5767
  %5775 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5776 = call i32 @fileno(ptr noundef %5775) #11
  %5777 = call i32 @isatty(i32 noundef %5776) #11
  %5778 = icmp ne i32 %5777, 0
  br i1 %5778, label %5779, label %5796

5779:                                             ; preds = %5774
  %5780 = load i32, ptr %114, align 4, !tbaa !5
  %5781 = call ptr @__errno_location() #12
  store i32 %5780, ptr %5781, align 4, !tbaa !5
  %5782 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5783 = load i32, ptr @test_count, align 4, !tbaa !5
  %5784 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5785 = load i32, ptr %5784, align 4, !tbaa !5
  %5786 = call ptr @s2n_strerror(i32 noundef %5785, ptr noundef @.str.3)
  %5787 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5788 = load i32, ptr %5787, align 4, !tbaa !5
  %5789 = call ptr @s2n_strerror_debug(i32 noundef %5788, ptr noundef @.str.3)
  %5790 = call ptr @__errno_location() #12
  %5791 = load i32, ptr %5790, align 4, !tbaa !5
  %5792 = call ptr @strerror(i32 noundef %5791) #11
  %5793 = call ptr @__errno_location() #12
  %5794 = load i32, ptr %5793, align 4, !tbaa !5
  %5795 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5782, ptr noundef @.str, i32 noundef %5783, ptr noundef @.str.22, ptr noundef @.str.2, i32 noundef 243, ptr noundef %5786, ptr noundef %5789, ptr noundef %5792, i32 noundef %5794) #11
  br label %5813

5796:                                             ; preds = %5774, %5767
  %5797 = load i32, ptr %114, align 4, !tbaa !5
  %5798 = call ptr @__errno_location() #12
  store i32 %5797, ptr %5798, align 4, !tbaa !5
  %5799 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5800 = load i32, ptr @test_count, align 4, !tbaa !5
  %5801 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5802 = load i32, ptr %5801, align 4, !tbaa !5
  %5803 = call ptr @s2n_strerror(i32 noundef %5802, ptr noundef @.str.3)
  %5804 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5805 = load i32, ptr %5804, align 4, !tbaa !5
  %5806 = call ptr @s2n_strerror_debug(i32 noundef %5805, ptr noundef @.str.3)
  %5807 = call ptr @__errno_location() #12
  %5808 = load i32, ptr %5807, align 4, !tbaa !5
  %5809 = call ptr @strerror(i32 noundef %5808) #11
  %5810 = call ptr @__errno_location() #12
  %5811 = load i32, ptr %5810, align 4, !tbaa !5
  %5812 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5799, ptr noundef @.str.4, i32 noundef %5800, ptr noundef @.str.22, ptr noundef @.str.2, i32 noundef 243, ptr noundef %5803, ptr noundef %5806, ptr noundef %5809, i32 noundef %5811) #11
  br label %5813

5813:                                             ; preds = %5796, %5779
  call void @llvm.lifetime.end.p0(i64 4, ptr %114) #11
  br label %5814

5814:                                             ; preds = %5813
  br label %5815

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

5816:                                             ; No predecessors!
  br label %5817

5817:                                             ; preds = %5816
  br label %5818

5818:                                             ; preds = %5817, %5759
  br label %5819

5819:                                             ; preds = %5818
  br label %5820

5820:                                             ; preds = %5819
  br label %5821

5821:                                             ; preds = %5820
  %5822 = load i32, ptr @test_count, align 4, !tbaa !5
  %5823 = add nsw i32 %5822, 1
  store i32 %5823, ptr @test_count, align 4, !tbaa !5
  %5824 = load ptr, ptr %6, align 8, !tbaa !9
  %5825 = call i32 @s2n_connection_free(ptr noundef %5824)
  %5826 = icmp eq i32 %5825, -1
  br i1 %5826, label %5827, label %5880

5827:                                             ; preds = %5821
  br label %5828

5828:                                             ; preds = %5827
  br label %5829

5829:                                             ; preds = %5828
  call void @llvm.lifetime.start.p0(i64 4, ptr %115) #11
  %5830 = call ptr @__errno_location() #12
  %5831 = load i32, ptr %5830, align 4, !tbaa !5
  store i32 %5831, ptr %115, align 4, !tbaa !5
  %5832 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5833 = call i32 @s2n_print_stacktrace(ptr noundef %5832)
  %5834 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5835 = trunc i8 %5834 to i1
  br i1 %5835, label %5836, label %5858

5836:                                             ; preds = %5829
  %5837 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5838 = call i32 @fileno(ptr noundef %5837) #11
  %5839 = call i32 @isatty(i32 noundef %5838) #11
  %5840 = icmp ne i32 %5839, 0
  br i1 %5840, label %5841, label %5858

5841:                                             ; preds = %5836
  %5842 = load i32, ptr %115, align 4, !tbaa !5
  %5843 = call ptr @__errno_location() #12
  store i32 %5842, ptr %5843, align 4, !tbaa !5
  %5844 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5845 = load i32, ptr @test_count, align 4, !tbaa !5
  %5846 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5847 = load i32, ptr %5846, align 4, !tbaa !5
  %5848 = call ptr @s2n_strerror(i32 noundef %5847, ptr noundef @.str.3)
  %5849 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5850 = load i32, ptr %5849, align 4, !tbaa !5
  %5851 = call ptr @s2n_strerror_debug(i32 noundef %5850, ptr noundef @.str.3)
  %5852 = call ptr @__errno_location() #12
  %5853 = load i32, ptr %5852, align 4, !tbaa !5
  %5854 = call ptr @strerror(i32 noundef %5853) #11
  %5855 = call ptr @__errno_location() #12
  %5856 = load i32, ptr %5855, align 4, !tbaa !5
  %5857 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5844, ptr noundef @.str, i32 noundef %5845, ptr noundef @.str.48, ptr noundef @.str.2, i32 noundef 244, ptr noundef %5848, ptr noundef %5851, ptr noundef %5854, i32 noundef %5856) #11
  br label %5875

5858:                                             ; preds = %5836, %5829
  %5859 = load i32, ptr %115, align 4, !tbaa !5
  %5860 = call ptr @__errno_location() #12
  store i32 %5859, ptr %5860, align 4, !tbaa !5
  %5861 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5862 = load i32, ptr @test_count, align 4, !tbaa !5
  %5863 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5864 = load i32, ptr %5863, align 4, !tbaa !5
  %5865 = call ptr @s2n_strerror(i32 noundef %5864, ptr noundef @.str.3)
  %5866 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5867 = load i32, ptr %5866, align 4, !tbaa !5
  %5868 = call ptr @s2n_strerror_debug(i32 noundef %5867, ptr noundef @.str.3)
  %5869 = call ptr @__errno_location() #12
  %5870 = load i32, ptr %5869, align 4, !tbaa !5
  %5871 = call ptr @strerror(i32 noundef %5870) #11
  %5872 = call ptr @__errno_location() #12
  %5873 = load i32, ptr %5872, align 4, !tbaa !5
  %5874 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5861, ptr noundef @.str.4, i32 noundef %5862, ptr noundef @.str.48, ptr noundef @.str.2, i32 noundef 244, ptr noundef %5865, ptr noundef %5868, ptr noundef %5871, i32 noundef %5873) #11
  br label %5875

5875:                                             ; preds = %5858, %5841
  call void @llvm.lifetime.end.p0(i64 4, ptr %115) #11
  br label %5876

5876:                                             ; preds = %5875
  br label %5877

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

5878:                                             ; No predecessors!
  br label %5879

5879:                                             ; preds = %5878
  br label %5880

5880:                                             ; preds = %5879, %5821
  br label %5881

5881:                                             ; preds = %5880
  br label %5882

5882:                                             ; preds = %5881
  br label %5883

5883:                                             ; preds = %5882
  br label %5884

5884:                                             ; preds = %5883
  %5885 = call i32 @s2n_cleanup()
  %5886 = icmp eq i32 %5885, -1
  br i1 %5886, label %5887, label %5940

5887:                                             ; preds = %5884
  br label %5888

5888:                                             ; preds = %5887
  br label %5889

5889:                                             ; preds = %5888
  call void @llvm.lifetime.start.p0(i64 4, ptr %116) #11
  %5890 = call ptr @__errno_location() #12
  %5891 = load i32, ptr %5890, align 4, !tbaa !5
  store i32 %5891, ptr %116, align 4, !tbaa !5
  %5892 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5893 = call i32 @s2n_print_stacktrace(ptr noundef %5892)
  %5894 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5895 = trunc i8 %5894 to i1
  br i1 %5895, label %5896, label %5918

5896:                                             ; preds = %5889
  %5897 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5898 = call i32 @fileno(ptr noundef %5897) #11
  %5899 = call i32 @isatty(i32 noundef %5898) #11
  %5900 = icmp ne i32 %5899, 0
  br i1 %5900, label %5901, label %5918

5901:                                             ; preds = %5896
  %5902 = load i32, ptr %116, align 4, !tbaa !5
  %5903 = call ptr @__errno_location() #12
  store i32 %5902, ptr %5903, align 4, !tbaa !5
  %5904 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5905 = load i32, ptr @test_count, align 4, !tbaa !5
  %5906 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5907 = load i32, ptr %5906, align 4, !tbaa !5
  %5908 = call ptr @s2n_strerror(i32 noundef %5907, ptr noundef @.str.3)
  %5909 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5910 = load i32, ptr %5909, align 4, !tbaa !5
  %5911 = call ptr @s2n_strerror_debug(i32 noundef %5910, ptr noundef @.str.3)
  %5912 = call ptr @__errno_location() #12
  %5913 = load i32, ptr %5912, align 4, !tbaa !5
  %5914 = call ptr @strerror(i32 noundef %5913) #11
  %5915 = call ptr @__errno_location() #12
  %5916 = load i32, ptr %5915, align 4, !tbaa !5
  %5917 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5904, ptr noundef @.str, i32 noundef %5905, ptr noundef @.str.11, ptr noundef @.str.2, i32 noundef 245, ptr noundef %5908, ptr noundef %5911, ptr noundef %5914, i32 noundef %5916) #11
  br label %5935

5918:                                             ; preds = %5896, %5889
  %5919 = load i32, ptr %116, align 4, !tbaa !5
  %5920 = call ptr @__errno_location() #12
  store i32 %5919, ptr %5920, align 4, !tbaa !5
  %5921 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5922 = load i32, ptr @test_count, align 4, !tbaa !5
  %5923 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5924 = load i32, ptr %5923, align 4, !tbaa !5
  %5925 = call ptr @s2n_strerror(i32 noundef %5924, ptr noundef @.str.3)
  %5926 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5927 = load i32, ptr %5926, align 4, !tbaa !5
  %5928 = call ptr @s2n_strerror_debug(i32 noundef %5927, ptr noundef @.str.3)
  %5929 = call ptr @__errno_location() #12
  %5930 = load i32, ptr %5929, align 4, !tbaa !5
  %5931 = call ptr @strerror(i32 noundef %5930) #11
  %5932 = call ptr @__errno_location() #12
  %5933 = load i32, ptr %5932, align 4, !tbaa !5
  %5934 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5921, ptr noundef @.str.4, i32 noundef %5922, ptr noundef @.str.11, ptr noundef @.str.2, i32 noundef 245, ptr noundef %5925, ptr noundef %5928, ptr noundef %5931, i32 noundef %5933) #11
  br label %5935

5935:                                             ; preds = %5918, %5901
  call void @llvm.lifetime.end.p0(i64 4, ptr %116) #11
  br label %5936

5936:                                             ; preds = %5935
  br label %5937

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

5938:                                             ; No predecessors!
  br label %5939

5939:                                             ; preds = %5938
  br label %5940

5940:                                             ; preds = %5939, %5884
  br label %5941

5941:                                             ; preds = %5940
  br label %5942

5942:                                             ; preds = %5941
  br label %5943

5943:                                             ; preds = %5942
  br label %5944

5944:                                             ; preds = %5943
  %5945 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %5946 = icmp eq i32 %5945, -1
  br i1 %5946, label %5947, label %6000

5947:                                             ; preds = %5944
  br label %5948

5948:                                             ; preds = %5947
  br label %5949

5949:                                             ; preds = %5948
  call void @llvm.lifetime.start.p0(i64 4, ptr %117) #11
  %5950 = call ptr @__errno_location() #12
  %5951 = load i32, ptr %5950, align 4, !tbaa !5
  store i32 %5951, ptr %117, align 4, !tbaa !5
  %5952 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5953 = call i32 @s2n_print_stacktrace(ptr noundef %5952)
  %5954 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5955 = trunc i8 %5954 to i1
  br i1 %5955, label %5956, label %5978

5956:                                             ; preds = %5949
  %5957 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5958 = call i32 @fileno(ptr noundef %5957) #11
  %5959 = call i32 @isatty(i32 noundef %5958) #11
  %5960 = icmp ne i32 %5959, 0
  br i1 %5960, label %5961, label %5978

5961:                                             ; preds = %5956
  %5962 = load i32, ptr %117, align 4, !tbaa !5
  %5963 = call ptr @__errno_location() #12
  store i32 %5962, ptr %5963, align 4, !tbaa !5
  %5964 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5965 = load i32, ptr @test_count, align 4, !tbaa !5
  %5966 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5967 = load i32, ptr %5966, align 4, !tbaa !5
  %5968 = call ptr @s2n_strerror(i32 noundef %5967, ptr noundef @.str.3)
  %5969 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5970 = load i32, ptr %5969, align 4, !tbaa !5
  %5971 = call ptr @s2n_strerror_debug(i32 noundef %5970, ptr noundef @.str.3)
  %5972 = call ptr @__errno_location() #12
  %5973 = load i32, ptr %5972, align 4, !tbaa !5
  %5974 = call ptr @strerror(i32 noundef %5973) #11
  %5975 = call ptr @__errno_location() #12
  %5976 = load i32, ptr %5975, align 4, !tbaa !5
  %5977 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5964, ptr noundef @.str, i32 noundef %5965, ptr noundef @.str.12, ptr noundef @.str.2, i32 noundef 245, ptr noundef %5968, ptr noundef %5971, ptr noundef %5974, i32 noundef %5976) #11
  br label %5995

5978:                                             ; preds = %5956, %5949
  %5979 = load i32, ptr %117, align 4, !tbaa !5
  %5980 = call ptr @__errno_location() #12
  store i32 %5979, ptr %5980, align 4, !tbaa !5
  %5981 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5982 = load i32, ptr @test_count, align 4, !tbaa !5
  %5983 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5984 = load i32, ptr %5983, align 4, !tbaa !5
  %5985 = call ptr @s2n_strerror(i32 noundef %5984, ptr noundef @.str.3)
  %5986 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5987 = load i32, ptr %5986, align 4, !tbaa !5
  %5988 = call ptr @s2n_strerror_debug(i32 noundef %5987, ptr noundef @.str.3)
  %5989 = call ptr @__errno_location() #12
  %5990 = load i32, ptr %5989, align 4, !tbaa !5
  %5991 = call ptr @strerror(i32 noundef %5990) #11
  %5992 = call ptr @__errno_location() #12
  %5993 = load i32, ptr %5992, align 4, !tbaa !5
  %5994 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5981, ptr noundef @.str.4, i32 noundef %5982, ptr noundef @.str.12, ptr noundef @.str.2, i32 noundef 245, ptr noundef %5985, ptr noundef %5988, ptr noundef %5991, i32 noundef %5993) #11
  br label %5995

5995:                                             ; preds = %5978, %5961
  call void @llvm.lifetime.end.p0(i64 4, ptr %117) #11
  br label %5996

5996:                                             ; preds = %5995
  br label %5997

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

5998:                                             ; No predecessors!
  br label %5999

5999:                                             ; preds = %5998
  br label %6000

6000:                                             ; preds = %5999, %5944
  br label %6001

6001:                                             ; preds = %6000
  br label %6002

6002:                                             ; preds = %6001
  %6003 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6004 = trunc i8 %6003 to i1
  br i1 %6004, label %6005, label %6021

6005:                                             ; preds = %6002
  %6006 = load ptr, ptr @stdout, align 8, !tbaa !9
  %6007 = call i32 @fileno(ptr noundef %6006) #11
  %6008 = call i32 @isatty(i32 noundef %6007) #11
  %6009 = icmp ne i32 %6008, 0
  br i1 %6009, label %6010, label %6021

6010:                                             ; preds = %6005
  %6011 = load i32, ptr @test_count, align 4, !tbaa !5
  %6012 = icmp ne i32 %6011, 0
  br i1 %6012, label %6013, label %6017

6013:                                             ; preds = %6010
  %6014 = load ptr, ptr @stdout, align 8, !tbaa !9
  %6015 = load i32, ptr @test_count, align 4, !tbaa !5
  %6016 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6014, ptr noundef @.str.13, i32 noundef %6015) #11
  br label %6020

6017:                                             ; preds = %6010
  %6018 = load ptr, ptr @stdout, align 8, !tbaa !9
  %6019 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6018, ptr noundef @.str.14) #11
  br label %6020

6020:                                             ; preds = %6017, %6013
  br label %6032

6021:                                             ; preds = %6005, %6002
  %6022 = load i32, ptr @test_count, align 4, !tbaa !5
  %6023 = icmp ne i32 %6022, 0
  br i1 %6023, label %6024, label %6028

6024:                                             ; preds = %6021
  %6025 = load ptr, ptr @stdout, align 8, !tbaa !9
  %6026 = load i32, ptr @test_count, align 4, !tbaa !5
  %6027 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6025, ptr noundef @.str.15, i32 noundef %6026) #11
  br label %6031

6028:                                             ; preds = %6021
  %6029 = load ptr, ptr @stdout, align 8, !tbaa !9
  %6030 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6029, ptr noundef @.str.16) #11
  br label %6031

6031:                                             ; preds = %6028, %6024
  br label %6032

6032:                                             ; preds = %6031, %6020
  store i32 0, ptr %3, align 4
  store i32 1, ptr %19, align 4
  br label %6037

6033:                                             ; No predecessors!
  br label %6034

6034:                                             ; preds = %6033
  br label %6035

6035:                                             ; preds = %6034
  br label %6036

6036:                                             ; preds = %6035
  store i32 0, ptr %19, align 4
  br label %6037

6037:                                             ; preds = %6036, %6032, %5756
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #11
  br label %6038

6038:                                             ; preds = %6037, %795, %644
  call void @llvm.lifetime.end.p0(i64 24, ptr %11) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %9) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %8) #11
  call void @llvm.lifetime.end.p0(i64 1436, ptr %7) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #11
  %6039 = load i32, ptr %19, align 4
  switch i32 %6039, label %6042 [
    i32 0, label %6040
    i32 1, label %6040
  ]

6040:                                             ; preds = %6038, %6038
  %6041 = load i32, ptr %3, align 4
  ret i32 %6041

6042:                                             ; preds = %6038
  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 i32 @s2n_cleanup() #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

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

declare i32 @s2n_connection_wipe(ptr noundef) #4

declare i32 @s2n_connection_prefer_low_latency(ptr noundef) #4

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

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_wipe(ptr noundef) #4

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

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 56}
!16 = !{!"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}
!17 = !{!18, !10, i64 224}
!18 = !{!"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, !19, i64 160, !20, i64 168, !20, 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, !21, i64 240, !10, i64 632, !10, i64 640, !22, i64 648, !28, i64 1144, !31, i64 1688, !10, i64 1752, !7, i64 1760, !6, i64 1764, !7, i64 1768, !34, i64 1776, !34, i64 1816, !34, i64 1856, !34, i64 1896, !6, i64 1936, !20, i64 1944, !7, i64 1952, !34, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !35, i64 2004, !35, i64 2008, !36, i64 2016, !33, i64 2208, !6, i64 2212, !33, i64 2216, !20, i64 2224, !7, i64 2232, !20, i64 2240, !20, i64 2248, !20, i64 2256, !35, i64 2264, !35, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !27, i64 2792, !6, i64 2816, !27, i64 2824, !27, i64 2848, !27, i64 2872, !38, i64 2896, !40, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !27, i64 3784, !6, i64 3808, !42, i64 3816, !7, i64 3848, !34, i64 3992, !27, i64 4032, !27, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !33, i64 4084, !33, i64 4086, !6, i64 4088, !6, i64 4092, !27, i64 4096, !6, i64 4120, !43, i64 4128, !35, i64 4176, !7, i64 4180, !7, i64 4181}
!19 = !{!"s2n_timer", !20, i64 0}
!20 = !{!"long", !7, i64 0}
!21 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!22 = !{!"s2n_kex_parameters", !23, i64 0, !24, i64 8, !7, i64 24, !24, i64 56, !25, i64 72, !25, i64 184, !7, i64 296, !26, i64 360, !27, i64 448, !27, i64 472}
!23 = !{!"s2n_dh_params", !10, i64 0}
!24 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!25 = !{!"s2n_kem_group_params", !10, i64 0, !26, i64 8, !24, i64 96}
!26 = !{!"s2n_kem_params", !10, i64 0, !27, i64 8, !27, i64 32, !27, i64 56, !12, i64 80}
!27 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!28 = !{!"s2n_handshake_parameters", !29, i64 0, !29, i64 48, !27, i64 96, !6, i64 120, !30, 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}
!29 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!30 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!31 = !{!"s2n_psk_parameters", !6, i64 0, !32, i64 8, !33, i64 40, !33, i64 42, !10, i64 48, !6, i64 56}
!32 = !{!"s2n_array", !27, i64 0, !6, i64 24, !6, i64 28}
!33 = !{!"short", !7, i64 0}
!34 = !{!"s2n_stuffer", !27, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!35 = !{!"", !6, i64 0}
!36 = !{!"s2n_handshake", !34, i64 0, !10, i64 40, !7, i64 48, !7, i64 56, !7, i64 104, !7, i64 152, !6, i64 156, !6, i64 160, !6, i64 164, !6, i64 168, !37, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!37 = !{!"s2n_offered_early_data", !10, i64 0}
!38 = !{!"s2n_client_hello", !27, i64 0, !39, i64 24, !27, i64 728, !27, i64 752, !27, i64 776, !7, i64 800, !7, i64 801, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802}
!39 = !{!"", !7, i64 0, !27, i64 672, !33, i64 696}
!40 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !33, i64 18, !10, i64 24, !6, i64 32, !10, i64 40, !41, i64 48, !12, i64 52}
!41 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!42 = !{!"s2n_ticket_fields", !27, i64 0, !6, i64 24}
!43 = !{!"s2n_post_handshake", !34, i64 0, !7, i64 40}
!44 = !{!18, !10, i64 640}
!45 = !{!18, !10, i64 632}
!46 = !{!47, !10, i64 0}
!47 = !{!"s2n_crypto_parameters", !10, i64 0, !48, i64 8, !48, i64 16, !49, i64 24, !49, i64 456, !7, i64 888, !7, i64 904, !7, i64 920, !7, i64 928}
!48 = !{!"s2n_session_key", !10, i64 0}
!49 = !{!"s2n_hmac_state", !6, i64 0, !33, i64 4, !6, i64 8, !33, i64 12, !7, i64 14, !50, i64 16, !50, i64 72, !50, i64 128, !50, i64 184, !7, i64 240, !7, i64 368}
!50 = !{!"s2n_hash_state", !10, i64 0, !6, i64 8, !7, i64 12, !20, i64 16, !7, i64 24}
!51 = !{!52, !10, i64 48}
!52 = !{!"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}
!53 = !{!20, !20, i64 0}
!54 = !{!18, !7, i64 222}
!55 = !{!18, !7, i64 219}
!56 = !{!18, !7, i64 218}
!57 = !{!18, !7, i64 220}
!58 = !{!33, !33, i64 0}
!59 = !{!60, !10, i64 0}
!60 = !{!"s2n_record_algorithm", !10, i64 0, !6, i64 8, !6, i64 12, !20, i64 16}
!61 = !{!7, !7, i64 0}
!62 = !{!18, !10, i64 1896}
!63 = !{!18, !6, i64 1924}
!64 = !{!18, !6, i64 1920}
!65 = !{!18, !10, i64 1776}
!66 = !{!16, !10, i64 88}
!67 = !{!18, !10, i64 1856}
!68 = !{!18, !6, i64 1884}
!69 = !{!18, !6, i64 1880}
!70 = distinct !{!70, !71}
!71 = !{!"llvm.loop.mustprogress"}
!72 = distinct !{!72, !71}
!73 = distinct !{!73, !71}


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

%struct.s2n_cipher = type { i32, %union.anon, i8, ptr, ptr, ptr, ptr, ptr, ptr }
%union.anon = type { %struct.s2n_composite_cipher }
%struct.s2n_composite_cipher = type { i8, i8, i8, ptr, ptr, ptr, ptr }
%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.chacha20_poly1305_key_data = 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 [130 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [90 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 [80 x i8], align 1
@stdout = external local_unnamed_addr global ptr, align 8
@.str.6 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [56 x i8], align 1
@s2n_chacha20_poly1305 = external local_unnamed_addr constant %struct.s2n_cipher, align 8
@.str.11 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [62 x i8], align 1
@s2n_record_alg_chacha20_poly1305 = external constant %struct.s2n_record_algorithm, align 8
@.str.19 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [126 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [54 x i8], align 1

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

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

21:                                               ; preds = %14
  %22 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23 = call i32 @fileno(ptr noundef %22) #12
  %24 = call i32 @isatty(i32 noundef %23) #12
  %.not437 = icmp eq i32 %24, 0
  br i1 %.not437, label %25, label %26

25:                                               ; preds = %21, %14
  br label %26

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

38:                                               ; preds = %2
  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)
  %39 = load i32, ptr @test_count, align 4, !tbaa !5
  %40 = add nsw i32 %39, 1
  store i32 %40, ptr @test_count, align 4, !tbaa !5
  %41 = call i32 @s2n_blob_init(ptr noundef nonnull %6, ptr noundef nonnull %3, i32 noundef 1436) #12
  %42 = icmp eq i32 %41, -1
  br i1 %42, label %43, label %67

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

50:                                               ; preds = %43
  %51 = load ptr, ptr @stderr, align 8, !tbaa !9
  %52 = call i32 @fileno(ptr noundef %51) #12
  %53 = call i32 @isatty(i32 noundef %52) #12
  %.not436 = icmp eq i32 %53, 0
  br i1 %.not436, label %54, label %55

54:                                               ; preds = %50, %43
  br label %55

55:                                               ; preds = %50, %54
  %.str.4.sink612 = phi ptr [ @.str.4, %54 ], [ @.str, %50 ]
  store i32 %45, ptr %44, align 4, !tbaa !5
  %56 = load ptr, ptr @stderr, align 8, !tbaa !9
  %57 = load i32, ptr @test_count, align 4, !tbaa !5
  %58 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %59 = load i32, ptr %58, align 4, !tbaa !5
  %60 = call ptr @s2n_strerror(i32 noundef %59, ptr noundef nonnull @.str.3) #12
  %61 = load i32, ptr %58, align 4, !tbaa !5
  %62 = call ptr @s2n_strerror_debug(i32 noundef %61, ptr noundef nonnull @.str.3) #12
  %63 = load i32, ptr %44, align 4, !tbaa !5
  %64 = call ptr @strerror(i32 noundef %63) #12
  %65 = load i32, ptr %44, align 4, !tbaa !5
  %66 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %56, ptr noundef nonnull %.str.4.sink612, i32 noundef %57, ptr noundef nonnull @.str.5, ptr noundef nonnull @.str.2, i32 noundef 57, ptr noundef %60, ptr noundef %62, ptr noundef %64, i32 noundef %65) #14
  call void @exit(i32 noundef 1) #15
  unreachable

67:                                               ; preds = %38
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %68 = load ptr, ptr @stdout, align 8, !tbaa !9
  %69 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %68, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.2) #12
  %70 = load ptr, ptr @stdout, align 8, !tbaa !9
  %71 = call i32 @fflush(ptr noundef %70)
  %72 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true) #12
  %73 = icmp eq i32 %72, -1
  br i1 %73, label %74, label %98

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

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

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

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

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

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

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

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

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

127:                                              ; preds = %98
  %128 = call i32 @s2n_init() #12
  %129 = icmp eq i32 %128, -1
  br i1 %129, label %130, label %154

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

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

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

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

154:                                              ; preds = %127
  %155 = load i32, ptr @test_count, align 4, !tbaa !5
  %156 = add nsw i32 %155, 1
  store i32 %156, ptr @test_count, align 4, !tbaa !5
  %157 = call i32 (...) @s2n_disable_tls13_in_test() #12
  %158 = icmp eq i32 %157, -1
  br i1 %158, label %159, label %183

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

166:                                              ; preds = %159
  %167 = load ptr, ptr @stderr, align 8, !tbaa !9
  %168 = call i32 @fileno(ptr noundef %167) #12
  %169 = call i32 @isatty(i32 noundef %168) #12
  %.not432 = icmp eq i32 %169, 0
  br i1 %.not432, label %170, label %171

170:                                              ; preds = %166, %159
  br label %171

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

183:                                              ; preds = %154
  %184 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_chacha20_poly1305, i64 56), align 8, !tbaa !15
  %185 = call zeroext i1 %184() #12
  br i1 %185, label %261, label %186

186:                                              ; preds = %183
  %187 = call i32 @s2n_cleanup() #12
  %188 = icmp eq i32 %187, -1
  br i1 %188, label %189, label %213

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

196:                                              ; preds = %189
  %197 = load ptr, ptr @stderr, align 8, !tbaa !9
  %198 = call i32 @fileno(ptr noundef %197) #12
  %199 = call i32 @isatty(i32 noundef %198) #12
  %.not348 = icmp eq i32 %199, 0
  br i1 %.not348, label %200, label %201

200:                                              ; preds = %196, %189
  br label %201

201:                                              ; preds = %196, %200
  %.str.4.sink667 = phi ptr [ @.str.4, %200 ], [ @.str, %196 ]
  store i32 %191, ptr %190, align 4, !tbaa !5
  %202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %203 = load i32, ptr @test_count, align 4, !tbaa !5
  %204 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %205 = load i32, ptr %204, align 4, !tbaa !5
  %206 = call ptr @s2n_strerror(i32 noundef %205, ptr noundef nonnull @.str.3) #12
  %207 = load i32, ptr %204, align 4, !tbaa !5
  %208 = call ptr @s2n_strerror_debug(i32 noundef %207, ptr noundef nonnull @.str.3) #12
  %209 = load i32, ptr %190, align 4, !tbaa !5
  %210 = call ptr @strerror(i32 noundef %209) #12
  %211 = load i32, ptr %190, align 4, !tbaa !5
  %212 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %202, ptr noundef nonnull %.str.4.sink667, i32 noundef %203, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.2, i32 noundef 64, ptr noundef %206, ptr noundef %208, ptr noundef %210, i32 noundef %211) #14
  call void @exit(i32 noundef 1) #15
  unreachable

213:                                              ; preds = %186
  %214 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #12
  %215 = icmp eq i32 %214, -1
  br i1 %215, label %216, label %240

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

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

227:                                              ; preds = %223, %216
  br label %228

228:                                              ; preds = %223, %227
  %.str.4.sink678 = phi ptr [ @.str.4, %227 ], [ @.str, %223 ]
  store i32 %218, ptr %217, align 4, !tbaa !5
  %229 = load ptr, ptr @stderr, align 8, !tbaa !9
  %230 = load i32, ptr @test_count, align 4, !tbaa !5
  %231 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %232 = load i32, ptr %231, align 4, !tbaa !5
  %233 = call ptr @s2n_strerror(i32 noundef %232, ptr noundef nonnull @.str.3) #12
  %234 = load i32, ptr %231, align 4, !tbaa !5
  %235 = call ptr @s2n_strerror_debug(i32 noundef %234, ptr noundef nonnull @.str.3) #12
  %236 = load i32, ptr %217, align 4, !tbaa !5
  %237 = call ptr @strerror(i32 noundef %236) #12
  %238 = load i32, ptr %217, align 4, !tbaa !5
  %239 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %229, ptr noundef nonnull %.str.4.sink678, i32 noundef %230, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.2, i32 noundef 64, ptr noundef %233, ptr noundef %235, ptr noundef %237, i32 noundef %238) #14
  call void @exit(i32 noundef 1) #15
  unreachable

240:                                              ; preds = %213
  %241 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %242 = trunc nuw i8 %241 to i1
  br i1 %242, label %243, label %254

243:                                              ; preds = %240
  %244 = load ptr, ptr @stdout, align 8, !tbaa !9
  %245 = call i32 @fileno(ptr noundef %244) #12
  %246 = call i32 @isatty(i32 noundef %245) #12
  %.not = icmp eq i32 %246, 0
  br i1 %.not, label %254, label %247

247:                                              ; preds = %243
  %248 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not346 = icmp eq i32 %248, 0
  %249 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not346, label %252, label %250

250:                                              ; preds = %247
  %251 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %249, ptr noundef nonnull @.str.13, i32 noundef %248) #12
  br label %2556

252:                                              ; preds = %247
  %253 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %249, ptr noundef nonnull @.str.14) #12
  br label %2556

254:                                              ; preds = %243, %240
  %255 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not345 = icmp eq i32 %255, 0
  %256 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not345, label %259, label %257

257:                                              ; preds = %254
  %258 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %256, ptr noundef nonnull @.str.15, i32 noundef %255) #12
  br label %2556

259:                                              ; preds = %254
  %260 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %256, ptr noundef nonnull @.str.16) #12
  br label %2556

261:                                              ; preds = %183
  %262 = load i32, ptr @test_count, align 4, !tbaa !5
  %263 = add nsw i32 %262, 1
  store i32 %263, ptr @test_count, align 4, !tbaa !5
  %264 = call ptr @s2n_connection_new(i32 noundef 0) #12
  %265 = icmp eq ptr %264, null
  br i1 %265, label %266, label %290

266:                                              ; preds = %261
  %267 = tail call ptr @__errno_location() #13
  %268 = load i32, ptr %267, align 4, !tbaa !5
  %269 = load ptr, ptr @stderr, align 8, !tbaa !9
  %270 = call i32 @s2n_print_stacktrace(ptr noundef %269) #12
  %271 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %272 = trunc nuw i8 %271 to i1
  br i1 %272, label %273, label %277

273:                                              ; preds = %266
  %274 = load ptr, ptr @stderr, align 8, !tbaa !9
  %275 = call i32 @fileno(ptr noundef %274) #12
  %276 = call i32 @isatty(i32 noundef %275) #12
  %.not431 = icmp eq i32 %276, 0
  br i1 %.not431, label %277, label %278

277:                                              ; preds = %273, %266
  br label %278

278:                                              ; preds = %273, %277
  %.str.4.sink689 = phi ptr [ @.str.4, %277 ], [ @.str, %273 ]
  store i32 %268, ptr %267, align 4, !tbaa !5
  %279 = load ptr, ptr @stderr, align 8, !tbaa !9
  %280 = load i32, ptr @test_count, align 4, !tbaa !5
  %281 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %282 = load i32, ptr %281, align 4, !tbaa !5
  %283 = call ptr @s2n_strerror(i32 noundef %282, ptr noundef nonnull @.str.3) #12
  %284 = load i32, ptr %281, align 4, !tbaa !5
  %285 = call ptr @s2n_strerror_debug(i32 noundef %284, ptr noundef nonnull @.str.3) #12
  %286 = load i32, ptr %267, align 4, !tbaa !5
  %287 = call ptr @strerror(i32 noundef %286) #12
  %288 = load i32, ptr %267, align 4, !tbaa !5
  %289 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %279, ptr noundef nonnull %.str.4.sink689, i32 noundef %280, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.2, i32 noundef 67, ptr noundef %283, ptr noundef %285, ptr noundef %287, i32 noundef %288) #14
  call void @exit(i32 noundef 1) #15
  unreachable

290:                                              ; preds = %261
  %291 = load i32, ptr @test_count, align 4, !tbaa !5
  %292 = add nsw i32 %291, 1
  store i32 %292, ptr @test_count, align 4, !tbaa !5
  %293 = call i32 @s2n_get_public_random_data(ptr noundef nonnull %6) #12
  %294 = call zeroext i1 @s2n_result_is_ok(i32 %293)
  br i1 %294, label %319, label %295

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

302:                                              ; preds = %295
  %303 = load ptr, ptr @stderr, align 8, !tbaa !9
  %304 = call i32 @fileno(ptr noundef %303) #12
  %305 = call i32 @isatty(i32 noundef %304) #12
  %.not349 = icmp eq i32 %305, 0
  br i1 %.not349, label %306, label %307

306:                                              ; preds = %302, %295
  br label %307

307:                                              ; preds = %302, %306
  %.str.4.sink700 = phi ptr [ @.str.4, %306 ], [ @.str, %302 ]
  store i32 %297, ptr %296, align 4, !tbaa !5
  %308 = load ptr, ptr @stderr, align 8, !tbaa !9
  %309 = load i32, ptr @test_count, align 4, !tbaa !5
  %310 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %311 = load i32, ptr %310, align 4, !tbaa !5
  %312 = call ptr @s2n_strerror(i32 noundef %311, ptr noundef nonnull @.str.3) #12
  %313 = load i32, ptr %310, align 4, !tbaa !5
  %314 = call ptr @s2n_strerror_debug(i32 noundef %313, ptr noundef nonnull @.str.3) #12
  %315 = load i32, ptr %296, align 4, !tbaa !5
  %316 = call ptr @strerror(i32 noundef %315) #12
  %317 = load i32, ptr %296, align 4, !tbaa !5
  %318 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %308, ptr noundef nonnull %.str.4.sink700, i32 noundef %309, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.2, i32 noundef 68, ptr noundef %312, ptr noundef %314, ptr noundef %316, i32 noundef %317) #14
  call void @exit(i32 noundef 1) #15
  unreachable

319:                                              ; preds = %290
  %320 = getelementptr inbounds i8, ptr %264, i64 224
  %321 = load ptr, ptr %320, align 8, !tbaa !17
  %322 = getelementptr inbounds i8, ptr %264, i64 640
  store ptr %321, ptr %322, align 8, !tbaa !44
  %323 = getelementptr inbounds i8, ptr %264, i64 632
  store ptr %321, ptr %323, align 8, !tbaa !45
  %324 = load ptr, ptr %321, align 8, !tbaa !46
  %325 = getelementptr inbounds i8, ptr %324, i64 48
  store ptr @s2n_record_alg_chacha20_poly1305, ptr %325, align 8, !tbaa !51
  %326 = call i32 @setup_server_keys(ptr noundef nonnull %264, ptr noundef nonnull %5)
  %327 = icmp sgt i32 %326, -1
  br i1 %327, label %.preheader450, label %2556

.preheader450:                                    ; preds = %319
  %328 = getelementptr inbounds i8, ptr %264, i64 222
  %329 = getelementptr inbounds i8, ptr %264, i64 219
  %330 = getelementptr inbounds i8, ptr %264, i64 218
  %331 = getelementptr inbounds i8, ptr %264, i64 220
  %332 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %333 = getelementptr inbounds i8, ptr %264, i64 1896
  %334 = getelementptr inbounds i8, ptr %264, i64 1856
  %335 = getelementptr inbounds i8, ptr %264, i64 1776
  %336 = getelementptr inbounds i8, ptr %264, i64 1924
  %337 = getelementptr inbounds i8, ptr %264, i64 1920
  %338 = getelementptr inbounds i8, ptr %264, i64 1884
  %339 = getelementptr inbounds i8, ptr %264, i64 1880
  br label %340

340:                                              ; preds = %.preheader450, %._crit_edge
  %.0334527 = phi i64 [ 0, %.preheader450 ], [ %2431, %._crit_edge ]
  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)
  %341 = load i32, ptr @test_count, align 4, !tbaa !5
  %342 = add nsw i32 %341, 1
  store i32 %342, ptr @test_count, align 4, !tbaa !5
  %343 = trunc nuw nsw i64 %.0334527 to i32
  %344 = call i32 @s2n_blob_init(ptr noundef nonnull %7, ptr noundef nonnull %3, i32 noundef %343) #12
  %345 = icmp eq i32 %344, -1
  br i1 %345, label %346, label %369

346:                                              ; preds = %340
  %347 = tail call ptr @__errno_location() #13
  %348 = load i32, ptr %347, align 4, !tbaa !5
  %349 = load ptr, ptr @stderr, align 8, !tbaa !9
  %350 = call i32 @s2n_print_stacktrace(ptr noundef %349) #12
  %351 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %352 = trunc nuw i8 %351 to i1
  br i1 %352, label %353, label %357

353:                                              ; preds = %346
  %354 = load ptr, ptr @stderr, align 8, !tbaa !9
  %355 = call i32 @fileno(ptr noundef %354) #12
  %356 = call i32 @isatty(i32 noundef %355) #12
  %.not430 = icmp eq i32 %356, 0
  br i1 %.not430, label %357, label %358

357:                                              ; preds = %353, %346
  br label %358

358:                                              ; preds = %353, %357
  %.str.4.sink711 = phi ptr [ @.str.4, %357 ], [ @.str, %353 ]
  store i32 %348, ptr %347, align 4, !tbaa !5
  %359 = load ptr, ptr @stderr, align 8, !tbaa !9
  %360 = load i32, ptr @test_count, align 4, !tbaa !5
  %361 = load i32, ptr %332, align 4, !tbaa !5
  %362 = call ptr @s2n_strerror(i32 noundef %361, ptr noundef nonnull @.str.3) #12
  %363 = load i32, ptr %332, align 4, !tbaa !5
  %364 = call ptr @s2n_strerror_debug(i32 noundef %363, ptr noundef nonnull @.str.3) #12
  %365 = load i32, ptr %347, align 4, !tbaa !5
  %366 = call ptr @strerror(i32 noundef %365) #12
  %367 = load i32, ptr %347, align 4, !tbaa !5
  %368 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %359, ptr noundef nonnull %.str.4.sink711, i32 noundef %360, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.2, i32 noundef 81, ptr noundef %362, ptr noundef %364, ptr noundef %366, i32 noundef %367) #14
  call void @exit(i32 noundef 1) #15
  unreachable

369:                                              ; preds = %340
  %370 = load i32, ptr @test_count, align 4, !tbaa !5
  %371 = add nsw i32 %370, 1
  store i32 %371, ptr @test_count, align 4, !tbaa !5
  %372 = call i32 @s2n_connection_wipe(ptr noundef nonnull %264) #12
  %373 = icmp eq i32 %372, -1
  br i1 %373, label %374, label %397

374:                                              ; preds = %369
  %375 = tail call ptr @__errno_location() #13
  %376 = load i32, ptr %375, align 4, !tbaa !5
  %377 = load ptr, ptr @stderr, align 8, !tbaa !9
  %378 = call i32 @s2n_print_stacktrace(ptr noundef %377) #12
  %379 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %380 = trunc nuw i8 %379 to i1
  br i1 %380, label %381, label %385

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

385:                                              ; preds = %381, %374
  br label %386

386:                                              ; preds = %381, %385
  %.str.4.sink720 = phi ptr [ @.str.4, %385 ], [ @.str, %381 ]
  store i32 %376, ptr %375, align 4, !tbaa !5
  %387 = load ptr, ptr @stderr, align 8, !tbaa !9
  %388 = load i32, ptr @test_count, align 4, !tbaa !5
  %389 = load i32, ptr %332, align 4, !tbaa !5
  %390 = call ptr @s2n_strerror(i32 noundef %389, ptr noundef nonnull @.str.3) #12
  %391 = load i32, ptr %332, align 4, !tbaa !5
  %392 = call ptr @s2n_strerror_debug(i32 noundef %391, ptr noundef nonnull @.str.3) #12
  %393 = load i32, ptr %375, align 4, !tbaa !5
  %394 = call ptr @strerror(i32 noundef %393) #12
  %395 = load i32, ptr %375, align 4, !tbaa !5
  %396 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %387, ptr noundef nonnull %.str.4.sink720, i32 noundef %388, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.2, i32 noundef 94, ptr noundef %390, ptr noundef %392, ptr noundef %394, i32 noundef %395) #14
  call void @exit(i32 noundef 1) #15
  unreachable

397:                                              ; preds = %369
  %398 = load i32, ptr @test_count, align 4, !tbaa !5
  %399 = add nsw i32 %398, 1
  store i32 %399, ptr @test_count, align 4, !tbaa !5
  %400 = call i32 @s2n_connection_prefer_low_latency(ptr noundef %264) #12
  %401 = icmp eq i32 %400, -1
  br i1 %401, label %402, label %425

402:                                              ; preds = %397
  %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
  %.not428 = icmp eq i32 %412, 0
  br i1 %.not428, label %413, label %414

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

414:                                              ; preds = %409, %413
  %.str.4.sink729 = 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 = load i32, ptr %332, align 4, !tbaa !5
  %418 = call ptr @s2n_strerror(i32 noundef %417, ptr noundef nonnull @.str.3) #12
  %419 = load i32, ptr %332, align 4, !tbaa !5
  %420 = call ptr @s2n_strerror_debug(i32 noundef %419, ptr noundef nonnull @.str.3) #12
  %421 = load i32, ptr %403, align 4, !tbaa !5
  %422 = call ptr @strerror(i32 noundef %421) #12
  %423 = load i32, ptr %403, align 4, !tbaa !5
  %424 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %415, ptr noundef nonnull %.str.4.sink729, i32 noundef %416, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.2, i32 noundef 95, ptr noundef %418, ptr noundef %420, ptr noundef %422, i32 noundef %423) #14
  call void @exit(i32 noundef 1) #15
  unreachable

425:                                              ; preds = %397
  store i8 1, ptr %328, align 2, !tbaa !53
  store i8 33, ptr %329, align 1, !tbaa !54
  store i8 33, ptr %330, align 2, !tbaa !55
  store i8 33, ptr %331, align 4, !tbaa !56
  %426 = load i32, ptr @test_count, align 4, !tbaa !5
  %427 = add nsw i32 %426, 1
  store i32 %427, ptr @test_count, align 4, !tbaa !5
  %428 = call i32 @destroy_server_keys(ptr noundef %264)
  %429 = icmp eq i32 %428, -1
  br i1 %429, label %430, label %453

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

437:                                              ; preds = %430
  %438 = load ptr, ptr @stderr, align 8, !tbaa !9
  %439 = call i32 @fileno(ptr noundef %438) #12
  %440 = call i32 @isatty(i32 noundef %439) #12
  %.not427 = icmp eq i32 %440, 0
  br i1 %.not427, label %441, label %442

441:                                              ; preds = %437, %430
  br label %442

442:                                              ; preds = %437, %441
  %.str.4.sink738 = phi ptr [ @.str.4, %441 ], [ @.str, %437 ]
  store i32 %432, ptr %431, align 4, !tbaa !5
  %443 = load ptr, ptr @stderr, align 8, !tbaa !9
  %444 = load i32, ptr @test_count, align 4, !tbaa !5
  %445 = load i32, ptr %332, align 4, !tbaa !5
  %446 = call ptr @s2n_strerror(i32 noundef %445, ptr noundef nonnull @.str.3) #12
  %447 = load i32, ptr %332, align 4, !tbaa !5
  %448 = call ptr @s2n_strerror_debug(i32 noundef %447, ptr noundef nonnull @.str.3) #12
  %449 = load i32, ptr %431, align 4, !tbaa !5
  %450 = call ptr @strerror(i32 noundef %449) #12
  %451 = load i32, ptr %431, align 4, !tbaa !5
  %452 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %443, ptr noundef nonnull %.str.4.sink738, i32 noundef %444, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.2, i32 noundef 100, ptr noundef %446, ptr noundef %448, ptr noundef %450, i32 noundef %451) #14
  call void @exit(i32 noundef 1) #15
  unreachable

453:                                              ; preds = %425
  %454 = load i32, ptr @test_count, align 4, !tbaa !5
  %455 = add nsw i32 %454, 1
  store i32 %455, ptr @test_count, align 4, !tbaa !5
  %456 = call i32 @setup_server_keys(ptr noundef nonnull %264, ptr noundef nonnull %5)
  %457 = icmp eq i32 %456, -1
  br i1 %457, label %458, label %481

458:                                              ; preds = %453
  %459 = tail call ptr @__errno_location() #13
  %460 = load i32, ptr %459, align 4, !tbaa !5
  %461 = load ptr, ptr @stderr, align 8, !tbaa !9
  %462 = call i32 @s2n_print_stacktrace(ptr noundef %461) #12
  %463 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %464 = trunc nuw i8 %463 to i1
  br i1 %464, label %465, label %469

465:                                              ; preds = %458
  %466 = load ptr, ptr @stderr, align 8, !tbaa !9
  %467 = call i32 @fileno(ptr noundef %466) #12
  %468 = call i32 @isatty(i32 noundef %467) #12
  %.not426 = icmp eq i32 %468, 0
  br i1 %.not426, label %469, label %470

469:                                              ; preds = %465, %458
  br label %470

470:                                              ; preds = %465, %469
  %.str.4.sink747 = phi ptr [ @.str.4, %469 ], [ @.str, %465 ]
  store i32 %460, ptr %459, align 4, !tbaa !5
  %471 = load ptr, ptr @stderr, align 8, !tbaa !9
  %472 = load i32, ptr @test_count, align 4, !tbaa !5
  %473 = load i32, ptr %332, align 4, !tbaa !5
  %474 = call ptr @s2n_strerror(i32 noundef %473, ptr noundef nonnull @.str.3) #12
  %475 = load i32, ptr %332, align 4, !tbaa !5
  %476 = call ptr @s2n_strerror_debug(i32 noundef %475, ptr noundef nonnull @.str.3) #12
  %477 = load i32, ptr %459, align 4, !tbaa !5
  %478 = call ptr @strerror(i32 noundef %477) #12
  %479 = load i32, ptr %459, align 4, !tbaa !5
  %480 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %471, ptr noundef nonnull %.str.4.sink747, i32 noundef %472, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.2, i32 noundef 101, ptr noundef %474, ptr noundef %476, ptr noundef %478, i32 noundef %479) #14
  call void @exit(i32 noundef 1) #15
  unreachable

481:                                              ; preds = %453
  %482 = call i32 @s2n_record_write(ptr noundef nonnull %264, i8 noundef zeroext 23, ptr noundef nonnull %7) #12
  %.not350 = icmp eq i64 %.0334527, 1436
  %483 = load i32, ptr @test_count, align 4, !tbaa !5
  %484 = add nsw i32 %483, 1
  store i32 %484, ptr @test_count, align 4, !tbaa !5
  br i1 %.not350, label %510, label %485

485:                                              ; preds = %481
  %486 = call zeroext i1 @s2n_result_is_ok(i32 %482)
  br i1 %486, label %592, label %487

487:                                              ; preds = %485
  %488 = tail call ptr @__errno_location() #13
  %489 = load i32, ptr %488, align 4, !tbaa !5
  %490 = load ptr, ptr @stderr, align 8, !tbaa !9
  %491 = call i32 @s2n_print_stacktrace(ptr noundef %490) #12
  %492 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %493 = trunc nuw i8 %492 to i1
  br i1 %493, label %494, label %498

494:                                              ; preds = %487
  %495 = load ptr, ptr @stderr, align 8, !tbaa !9
  %496 = call i32 @fileno(ptr noundef %495) #12
  %497 = call i32 @isatty(i32 noundef %496) #12
  %.not354 = icmp eq i32 %497, 0
  br i1 %.not354, label %498, label %499

498:                                              ; preds = %494, %487
  br label %499

499:                                              ; preds = %494, %498
  %.str.4.sink756 = phi ptr [ @.str.4, %498 ], [ @.str, %494 ]
  store i32 %489, ptr %488, align 4, !tbaa !5
  %500 = load ptr, ptr @stderr, align 8, !tbaa !9
  %501 = load i32, ptr @test_count, align 4, !tbaa !5
  %502 = load i32, ptr %332, align 4, !tbaa !5
  %503 = call ptr @s2n_strerror(i32 noundef %502, ptr noundef nonnull @.str.3) #12
  %504 = load i32, ptr %332, align 4, !tbaa !5
  %505 = call ptr @s2n_strerror_debug(i32 noundef %504, ptr noundef nonnull @.str.3) #12
  %506 = load i32, ptr %488, align 4, !tbaa !5
  %507 = call ptr @strerror(i32 noundef %506) #12
  %508 = load i32, ptr %488, align 4, !tbaa !5
  %509 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %500, ptr noundef nonnull %.str.4.sink756, i32 noundef %501, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.2, i32 noundef 105, ptr noundef %503, ptr noundef %505, ptr noundef %507, i32 noundef %508) #14
  call void @exit(i32 noundef 1) #15
  unreachable

510:                                              ; preds = %481
  %511 = call zeroext i1 @s2n_result_is_error(i32 %482)
  br i1 %511, label %535, label %512

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

519:                                              ; preds = %512
  %520 = load ptr, ptr @stderr, align 8, !tbaa !9
  %521 = call i32 @fileno(ptr noundef %520) #12
  %522 = call i32 @isatty(i32 noundef %521) #12
  %.not351 = icmp eq i32 %522, 0
  br i1 %.not351, label %523, label %524

523:                                              ; preds = %519, %512
  br label %524

524:                                              ; preds = %519, %523
  %.str.4.sink765 = phi ptr [ @.str.4, %523 ], [ @.str, %519 ]
  store i32 %514, ptr %513, align 4, !tbaa !5
  %525 = load ptr, ptr @stderr, align 8, !tbaa !9
  %526 = load i32, ptr @test_count, align 4, !tbaa !5
  %527 = load i32, ptr %332, align 4, !tbaa !5
  %528 = call ptr @s2n_strerror(i32 noundef %527, ptr noundef nonnull @.str.3) #12
  %529 = load i32, ptr %332, align 4, !tbaa !5
  %530 = call ptr @s2n_strerror_debug(i32 noundef %529, ptr noundef nonnull @.str.3) #12
  %531 = load i32, ptr %513, align 4, !tbaa !5
  %532 = call ptr @strerror(i32 noundef %531) #12
  %533 = load i32, ptr %513, align 4, !tbaa !5
  %534 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %525, ptr noundef nonnull %.str.4.sink765, i32 noundef %526, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.2, i32 noundef 108, ptr noundef %528, ptr noundef %530, ptr noundef %532, i32 noundef %533) #14
  call void @exit(i32 noundef 1) #15
  unreachable

535:                                              ; preds = %510
  %536 = load i32, ptr @test_count, align 4, !tbaa !5
  %537 = add nsw i32 %536, 1
  store i32 %537, ptr @test_count, align 4, !tbaa !5
  %538 = load i32, ptr %332, align 4, !tbaa !5
  %539 = icmp eq i32 %538, 335544390
  br i1 %539, label %563, label %540

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

547:                                              ; preds = %540
  %548 = load ptr, ptr @stderr, align 8, !tbaa !9
  %549 = call i32 @fileno(ptr noundef %548) #12
  %550 = call i32 @isatty(i32 noundef %549) #12
  %.not352 = icmp eq i32 %550, 0
  br i1 %.not352, label %551, label %552

551:                                              ; preds = %547, %540
  br label %552

552:                                              ; preds = %547, %551
  %.str.4.sink774 = phi ptr [ @.str.4, %551 ], [ @.str, %547 ]
  store i32 %542, ptr %541, align 4, !tbaa !5
  %553 = load ptr, ptr @stderr, align 8, !tbaa !9
  %554 = load i32, ptr @test_count, align 4, !tbaa !5
  %555 = load i32, ptr %332, align 4, !tbaa !5
  %556 = call ptr @s2n_strerror(i32 noundef %555, ptr noundef nonnull @.str.3) #12
  %557 = load i32, ptr %332, align 4, !tbaa !5
  %558 = call ptr @s2n_strerror_debug(i32 noundef %557, ptr noundef nonnull @.str.3) #12
  %559 = load i32, ptr %541, align 4, !tbaa !5
  %560 = call ptr @strerror(i32 noundef %559) #12
  %561 = load i32, ptr %541, align 4, !tbaa !5
  %562 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %553, ptr noundef nonnull %.str.4.sink774, i32 noundef %554, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.2, i32 noundef 108, ptr noundef %556, ptr noundef %558, ptr noundef %560, i32 noundef %561) #14
  call void @exit(i32 noundef 1) #15
  unreachable

563:                                              ; preds = %535
  %564 = add nsw i32 %536, 2
  store i32 %564, ptr @test_count, align 4, !tbaa !5
  %565 = call ptr @s2n_strerror_debug(i32 noundef 335544390, ptr noundef nonnull @.str.3) #12
  %566 = icmp eq ptr %565, null
  br i1 %566, label %567, label %590

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

574:                                              ; preds = %567
  %575 = load ptr, ptr @stderr, align 8, !tbaa !9
  %576 = call i32 @fileno(ptr noundef %575) #12
  %577 = call i32 @isatty(i32 noundef %576) #12
  %.not353 = icmp eq i32 %577, 0
  br i1 %.not353, label %578, label %579

578:                                              ; preds = %574, %567
  br label %579

579:                                              ; preds = %574, %578
  %.str.4.sink783 = phi ptr [ @.str.4, %578 ], [ @.str, %574 ]
  store i32 %569, ptr %568, align 4, !tbaa !5
  %580 = load ptr, ptr @stderr, align 8, !tbaa !9
  %581 = load i32, ptr @test_count, align 4, !tbaa !5
  %582 = load i32, ptr %332, align 4, !tbaa !5
  %583 = call ptr @s2n_strerror(i32 noundef %582, ptr noundef nonnull @.str.3) #12
  %584 = load i32, ptr %332, align 4, !tbaa !5
  %585 = call ptr @s2n_strerror_debug(i32 noundef %584, ptr noundef nonnull @.str.3) #12
  %586 = load i32, ptr %568, align 4, !tbaa !5
  %587 = call ptr @strerror(i32 noundef %586) #12
  %588 = load i32, ptr %568, align 4, !tbaa !5
  %589 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %580, ptr noundef nonnull %.str.4.sink783, i32 noundef %581, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.2, i32 noundef 108, ptr noundef %583, ptr noundef %585, ptr noundef %587, i32 noundef %588) #14
  call void @exit(i32 noundef 1) #15
  unreachable

590:                                              ; preds = %563
  store i32 0, ptr %332, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  %591 = tail call ptr @__errno_location() #13
  store i32 0, ptr %591, align 4, !tbaa !5
  br label %592

592:                                              ; preds = %485, %590
  %.0335 = phi i32 [ 1435, %590 ], [ %343, %485 ]
  %593 = load ptr, ptr %320, align 8, !tbaa !17
  %594 = load ptr, ptr %593, align 8, !tbaa !46
  %595 = getelementptr inbounds i8, ptr %594, i64 48
  %596 = load ptr, ptr %595, align 8, !tbaa !51
  %597 = load ptr, ptr %596, align 8, !tbaa !57
  %598 = getelementptr inbounds i8, ptr %597, i64 9
  %599 = load i8, ptr %598, align 1, !tbaa !59
  %600 = zext i8 %599 to i32
  %601 = add nuw nsw i32 %.0335, %600
  %602 = getelementptr inbounds i8, ptr %597, i64 10
  %603 = load i8, ptr %602, align 2, !tbaa !59
  %604 = zext i8 %603 to i32
  %605 = add nuw nsw i32 %601, %604
  %606 = load i32, ptr @test_count, align 4, !tbaa !5
  %607 = add nsw i32 %606, 1
  store i32 %607, ptr @test_count, align 4, !tbaa !5
  %608 = add nuw nsw i32 %.0335, 16
  %609 = icmp eq i32 %605, %608
  br i1 %609, label %633, label %610

610:                                              ; preds = %592
  %611 = tail call ptr @__errno_location() #13
  %612 = load i32, ptr %611, align 4, !tbaa !5
  %613 = load ptr, ptr @stderr, align 8, !tbaa !9
  %614 = call i32 @s2n_print_stacktrace(ptr noundef %613) #12
  %615 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %616 = trunc nuw i8 %615 to i1
  br i1 %616, label %617, label %621

617:                                              ; preds = %610
  %618 = load ptr, ptr @stderr, align 8, !tbaa !9
  %619 = call i32 @fileno(ptr noundef %618) #12
  %620 = call i32 @isatty(i32 noundef %619) #12
  %.not355 = icmp eq i32 %620, 0
  br i1 %.not355, label %621, label %622

621:                                              ; preds = %617, %610
  br label %622

622:                                              ; preds = %617, %621
  %.str.4.sink792 = phi ptr [ @.str.4, %621 ], [ @.str, %617 ]
  store i32 %612, ptr %611, align 4, !tbaa !5
  %623 = load ptr, ptr @stderr, align 8, !tbaa !9
  %624 = load i32, ptr @test_count, align 4, !tbaa !5
  %625 = load i32, ptr %332, align 4, !tbaa !5
  %626 = call ptr @s2n_strerror(i32 noundef %625, ptr noundef nonnull @.str.3) #12
  %627 = load i32, ptr %332, align 4, !tbaa !5
  %628 = call ptr @s2n_strerror_debug(i32 noundef %627, ptr noundef nonnull @.str.3) #12
  %629 = load i32, ptr %611, align 4, !tbaa !5
  %630 = call ptr @strerror(i32 noundef %629) #12
  %631 = load i32, ptr %611, align 4, !tbaa !5
  %632 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %623, ptr noundef nonnull %.str.4.sink792, i32 noundef %624, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.2, i32 noundef 118, ptr noundef %626, ptr noundef %628, ptr noundef %630, i32 noundef %631) #14
  call void @exit(i32 noundef 1) #15
  unreachable

633:                                              ; preds = %592
  %634 = add nsw i32 %606, 2
  store i32 %634, ptr @test_count, align 4, !tbaa !5
  %635 = load ptr, ptr %333, align 8, !tbaa !60
  %636 = load i8, ptr %635, align 1, !tbaa !59
  %637 = icmp eq i8 %636, 23
  br i1 %637, label %661, label %638

638:                                              ; preds = %633
  %639 = tail call ptr @__errno_location() #13
  %640 = load i32, ptr %639, align 4, !tbaa !5
  %641 = load ptr, ptr @stderr, align 8, !tbaa !9
  %642 = call i32 @s2n_print_stacktrace(ptr noundef %641) #12
  %643 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %644 = trunc nuw i8 %643 to i1
  br i1 %644, label %645, label %649

645:                                              ; preds = %638
  %646 = load ptr, ptr @stderr, align 8, !tbaa !9
  %647 = call i32 @fileno(ptr noundef %646) #12
  %648 = call i32 @isatty(i32 noundef %647) #12
  %.not356 = icmp eq i32 %648, 0
  br i1 %.not356, label %649, label %650

649:                                              ; preds = %645, %638
  br label %650

650:                                              ; preds = %645, %649
  %.str.4.sink801 = phi ptr [ @.str.4, %649 ], [ @.str, %645 ]
  store i32 %640, ptr %639, align 4, !tbaa !5
  %651 = load ptr, ptr @stderr, align 8, !tbaa !9
  %652 = load i32, ptr @test_count, align 4, !tbaa !5
  %653 = load i32, ptr %332, align 4, !tbaa !5
  %654 = call ptr @s2n_strerror(i32 noundef %653, ptr noundef nonnull @.str.3) #12
  %655 = load i32, ptr %332, align 4, !tbaa !5
  %656 = call ptr @s2n_strerror_debug(i32 noundef %655, ptr noundef nonnull @.str.3) #12
  %657 = load i32, ptr %639, align 4, !tbaa !5
  %658 = call ptr @strerror(i32 noundef %657) #12
  %659 = load i32, ptr %639, align 4, !tbaa !5
  %660 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %651, ptr noundef nonnull %.str.4.sink801, i32 noundef %652, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.2, i32 noundef 120, ptr noundef %654, ptr noundef %656, ptr noundef %658, i32 noundef %659) #14
  call void @exit(i32 noundef 1) #15
  unreachable

661:                                              ; preds = %633
  %662 = add nsw i32 %606, 3
  store i32 %662, ptr @test_count, align 4, !tbaa !5
  %663 = getelementptr inbounds i8, ptr %635, i64 1
  %664 = load i8, ptr %663, align 1, !tbaa !59
  %665 = icmp eq i8 %664, 3
  br i1 %665, label %689, label %666

666:                                              ; preds = %661
  %667 = tail call ptr @__errno_location() #13
  %668 = load i32, ptr %667, align 4, !tbaa !5
  %669 = load ptr, ptr @stderr, align 8, !tbaa !9
  %670 = call i32 @s2n_print_stacktrace(ptr noundef %669) #12
  %671 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %672 = trunc nuw i8 %671 to i1
  br i1 %672, label %673, label %677

673:                                              ; preds = %666
  %674 = load ptr, ptr @stderr, align 8, !tbaa !9
  %675 = call i32 @fileno(ptr noundef %674) #12
  %676 = call i32 @isatty(i32 noundef %675) #12
  %.not357 = icmp eq i32 %676, 0
  br i1 %.not357, label %677, label %678

677:                                              ; preds = %673, %666
  br label %678

678:                                              ; preds = %673, %677
  %.str.4.sink810 = phi ptr [ @.str.4, %677 ], [ @.str, %673 ]
  store i32 %668, ptr %667, align 4, !tbaa !5
  %679 = load ptr, ptr @stderr, align 8, !tbaa !9
  %680 = load i32, ptr @test_count, align 4, !tbaa !5
  %681 = load i32, ptr %332, align 4, !tbaa !5
  %682 = call ptr @s2n_strerror(i32 noundef %681, ptr noundef nonnull @.str.3) #12
  %683 = load i32, ptr %332, align 4, !tbaa !5
  %684 = call ptr @s2n_strerror_debug(i32 noundef %683, ptr noundef nonnull @.str.3) #12
  %685 = load i32, ptr %667, align 4, !tbaa !5
  %686 = call ptr @strerror(i32 noundef %685) #12
  %687 = load i32, ptr %667, align 4, !tbaa !5
  %688 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %679, ptr noundef nonnull %.str.4.sink810, i32 noundef %680, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.2, i32 noundef 121, ptr noundef %682, ptr noundef %684, ptr noundef %686, i32 noundef %687) #14
  call void @exit(i32 noundef 1) #15
  unreachable

689:                                              ; preds = %661
  %690 = add nsw i32 %606, 4
  store i32 %690, ptr @test_count, align 4, !tbaa !5
  %691 = getelementptr inbounds i8, ptr %635, i64 2
  %692 = load i8, ptr %691, align 1, !tbaa !59
  %693 = icmp eq i8 %692, 3
  br i1 %693, label %717, label %694

694:                                              ; preds = %689
  %695 = tail call ptr @__errno_location() #13
  %696 = load i32, ptr %695, align 4, !tbaa !5
  %697 = load ptr, ptr @stderr, align 8, !tbaa !9
  %698 = call i32 @s2n_print_stacktrace(ptr noundef %697) #12
  %699 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %700 = trunc nuw i8 %699 to i1
  br i1 %700, label %701, label %705

701:                                              ; preds = %694
  %702 = load ptr, ptr @stderr, align 8, !tbaa !9
  %703 = call i32 @fileno(ptr noundef %702) #12
  %704 = call i32 @isatty(i32 noundef %703) #12
  %.not358 = icmp eq i32 %704, 0
  br i1 %.not358, label %705, label %706

705:                                              ; preds = %701, %694
  br label %706

706:                                              ; preds = %701, %705
  %.str.4.sink819 = phi ptr [ @.str.4, %705 ], [ @.str, %701 ]
  store i32 %696, ptr %695, align 4, !tbaa !5
  %707 = load ptr, ptr @stderr, align 8, !tbaa !9
  %708 = load i32, ptr @test_count, align 4, !tbaa !5
  %709 = load i32, ptr %332, align 4, !tbaa !5
  %710 = call ptr @s2n_strerror(i32 noundef %709, ptr noundef nonnull @.str.3) #12
  %711 = load i32, ptr %332, align 4, !tbaa !5
  %712 = call ptr @s2n_strerror_debug(i32 noundef %711, ptr noundef nonnull @.str.3) #12
  %713 = load i32, ptr %695, align 4, !tbaa !5
  %714 = call ptr @strerror(i32 noundef %713) #12
  %715 = load i32, ptr %695, align 4, !tbaa !5
  %716 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %707, ptr noundef nonnull %.str.4.sink819, i32 noundef %708, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.2, i32 noundef 122, ptr noundef %710, ptr noundef %712, ptr noundef %714, i32 noundef %715) #14
  call void @exit(i32 noundef 1) #15
  unreachable

717:                                              ; preds = %689
  %718 = add nsw i32 %606, 5
  store i32 %718, ptr @test_count, align 4, !tbaa !5
  %719 = getelementptr inbounds i8, ptr %635, i64 3
  %720 = load i8, ptr %719, align 1, !tbaa !59
  %721 = lshr i32 %605, 8
  %722 = trunc i32 %721 to i8
  %723 = icmp eq i8 %720, %722
  br i1 %723, label %747, label %724

724:                                              ; preds = %717
  %725 = tail call ptr @__errno_location() #13
  %726 = load i32, ptr %725, align 4, !tbaa !5
  %727 = load ptr, ptr @stderr, align 8, !tbaa !9
  %728 = call i32 @s2n_print_stacktrace(ptr noundef %727) #12
  %729 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %730 = trunc nuw i8 %729 to i1
  br i1 %730, label %731, label %735

731:                                              ; preds = %724
  %732 = load ptr, ptr @stderr, align 8, !tbaa !9
  %733 = call i32 @fileno(ptr noundef %732) #12
  %734 = call i32 @isatty(i32 noundef %733) #12
  %.not359 = icmp eq i32 %734, 0
  br i1 %.not359, label %735, label %736

735:                                              ; preds = %731, %724
  br label %736

736:                                              ; preds = %731, %735
  %.str.4.sink828 = phi ptr [ @.str.4, %735 ], [ @.str, %731 ]
  store i32 %726, ptr %725, align 4, !tbaa !5
  %737 = load ptr, ptr @stderr, align 8, !tbaa !9
  %738 = load i32, ptr @test_count, align 4, !tbaa !5
  %739 = load i32, ptr %332, align 4, !tbaa !5
  %740 = call ptr @s2n_strerror(i32 noundef %739, ptr noundef nonnull @.str.3) #12
  %741 = load i32, ptr %332, align 4, !tbaa !5
  %742 = call ptr @s2n_strerror_debug(i32 noundef %741, ptr noundef nonnull @.str.3) #12
  %743 = load i32, ptr %725, align 4, !tbaa !5
  %744 = call ptr @strerror(i32 noundef %743) #12
  %745 = load i32, ptr %725, align 4, !tbaa !5
  %746 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %737, ptr noundef nonnull %.str.4.sink828, i32 noundef %738, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.2, i32 noundef 123, ptr noundef %740, ptr noundef %742, ptr noundef %744, i32 noundef %745) #14
  call void @exit(i32 noundef 1) #15
  unreachable

747:                                              ; preds = %717
  %748 = add nsw i32 %606, 6
  store i32 %748, ptr @test_count, align 4, !tbaa !5
  %749 = getelementptr inbounds i8, ptr %635, i64 4
  %750 = load i8, ptr %749, align 1, !tbaa !59
  %751 = trunc i32 %605 to i8
  %752 = icmp eq i8 %750, %751
  br i1 %752, label %776, label %753

753:                                              ; preds = %747
  %754 = tail call ptr @__errno_location() #13
  %755 = load i32, ptr %754, align 4, !tbaa !5
  %756 = load ptr, ptr @stderr, align 8, !tbaa !9
  %757 = call i32 @s2n_print_stacktrace(ptr noundef %756) #12
  %758 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %759 = trunc nuw i8 %758 to i1
  br i1 %759, label %760, label %764

760:                                              ; preds = %753
  %761 = load ptr, ptr @stderr, align 8, !tbaa !9
  %762 = call i32 @fileno(ptr noundef %761) #12
  %763 = call i32 @isatty(i32 noundef %762) #12
  %.not360 = icmp eq i32 %763, 0
  br i1 %.not360, label %764, label %765

764:                                              ; preds = %760, %753
  br label %765

765:                                              ; preds = %760, %764
  %.str.4.sink837 = phi ptr [ @.str.4, %764 ], [ @.str, %760 ]
  store i32 %755, ptr %754, align 4, !tbaa !5
  %766 = load ptr, ptr @stderr, align 8, !tbaa !9
  %767 = load i32, ptr @test_count, align 4, !tbaa !5
  %768 = load i32, ptr %332, align 4, !tbaa !5
  %769 = call ptr @s2n_strerror(i32 noundef %768, ptr noundef nonnull @.str.3) #12
  %770 = load i32, ptr %332, align 4, !tbaa !5
  %771 = call ptr @s2n_strerror_debug(i32 noundef %770, ptr noundef nonnull @.str.3) #12
  %772 = load i32, ptr %754, align 4, !tbaa !5
  %773 = call ptr @strerror(i32 noundef %772) #12
  %774 = load i32, ptr %754, align 4, !tbaa !5
  %775 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %766, ptr noundef nonnull %.str.4.sink837, i32 noundef %767, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.2, i32 noundef 124, ptr noundef %769, ptr noundef %771, ptr noundef %773, i32 noundef %774) #14
  call void @exit(i32 noundef 1) #15
  unreachable

776:                                              ; preds = %747
  %777 = icmp ugt i32 %.0335, 10
  br i1 %777, label %778, label %806

778:                                              ; preds = %776
  %779 = add nsw i32 %606, 7
  store i32 %779, ptr @test_count, align 4, !tbaa !5
  %780 = getelementptr inbounds i8, ptr %635, i64 5
  %781 = zext nneg i32 %.0335 to i64
  %bcmp = call i32 @bcmp(ptr nonnull %780, ptr nonnull %3, i64 %781)
  %782 = icmp eq i32 %bcmp, 0
  br i1 %782, label %783, label %806

783:                                              ; preds = %778
  %784 = tail call ptr @__errno_location() #13
  %785 = load i32, ptr %784, align 4, !tbaa !5
  %786 = load ptr, ptr @stderr, align 8, !tbaa !9
  %787 = call i32 @s2n_print_stacktrace(ptr noundef %786) #12
  %788 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %789 = trunc nuw i8 %788 to i1
  br i1 %789, label %790, label %794

790:                                              ; preds = %783
  %791 = load ptr, ptr @stderr, align 8, !tbaa !9
  %792 = call i32 @fileno(ptr noundef %791) #12
  %793 = call i32 @isatty(i32 noundef %792) #12
  %.not425 = icmp eq i32 %793, 0
  br i1 %.not425, label %794, label %795

794:                                              ; preds = %790, %783
  br label %795

795:                                              ; preds = %790, %794
  %.str.4.sink846 = phi ptr [ @.str.4, %794 ], [ @.str, %790 ]
  store i32 %785, ptr %784, align 4, !tbaa !5
  %796 = load ptr, ptr @stderr, align 8, !tbaa !9
  %797 = load i32, ptr @test_count, align 4, !tbaa !5
  %798 = load i32, ptr %332, align 4, !tbaa !5
  %799 = call ptr @s2n_strerror(i32 noundef %798, ptr noundef nonnull @.str.3) #12
  %800 = load i32, ptr %332, align 4, !tbaa !5
  %801 = call ptr @s2n_strerror_debug(i32 noundef %800, ptr noundef nonnull @.str.3) #12
  %802 = load i32, ptr %784, align 4, !tbaa !5
  %803 = call ptr @strerror(i32 noundef %802) #12
  %804 = load i32, ptr %784, align 4, !tbaa !5
  %805 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %796, ptr noundef nonnull %.str.4.sink846, i32 noundef %797, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.2, i32 noundef 128, ptr noundef %799, ptr noundef %801, ptr noundef %803, i32 noundef %804) #14
  call void @exit(i32 noundef 1) #15
  unreachable

806:                                              ; preds = %776, %778
  %807 = phi i32 [ %748, %776 ], [ %779, %778 ]
  %808 = add nsw i32 %807, 1
  store i32 %808, ptr @test_count, align 4, !tbaa !5
  %809 = call i32 @s2n_stuffer_wipe(ptr noundef nonnull %334) #12
  %810 = icmp eq i32 %809, -1
  br i1 %810, label %811, label %834

811:                                              ; preds = %806
  %812 = tail call ptr @__errno_location() #13
  %813 = load i32, ptr %812, align 4, !tbaa !5
  %814 = load ptr, ptr @stderr, align 8, !tbaa !9
  %815 = call i32 @s2n_print_stacktrace(ptr noundef %814) #12
  %816 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %817 = trunc nuw i8 %816 to i1
  br i1 %817, label %818, label %822

818:                                              ; preds = %811
  %819 = load ptr, ptr @stderr, align 8, !tbaa !9
  %820 = call i32 @fileno(ptr noundef %819) #12
  %821 = call i32 @isatty(i32 noundef %820) #12
  %.not424 = icmp eq i32 %821, 0
  br i1 %.not424, label %822, label %823

822:                                              ; preds = %818, %811
  br label %823

823:                                              ; preds = %818, %822
  %.str.4.sink855 = phi ptr [ @.str.4, %822 ], [ @.str, %818 ]
  store i32 %813, ptr %812, align 4, !tbaa !5
  %824 = load ptr, ptr @stderr, align 8, !tbaa !9
  %825 = load i32, ptr @test_count, align 4, !tbaa !5
  %826 = load i32, ptr %332, align 4, !tbaa !5
  %827 = call ptr @s2n_strerror(i32 noundef %826, ptr noundef nonnull @.str.3) #12
  %828 = load i32, ptr %332, align 4, !tbaa !5
  %829 = call ptr @s2n_strerror_debug(i32 noundef %828, ptr noundef nonnull @.str.3) #12
  %830 = load i32, ptr %812, align 4, !tbaa !5
  %831 = call ptr @strerror(i32 noundef %830) #12
  %832 = load i32, ptr %812, align 4, !tbaa !5
  %833 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %824, ptr noundef nonnull %.str.4.sink855, i32 noundef %825, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.2, i32 noundef 132, ptr noundef %827, ptr noundef %829, ptr noundef %831, i32 noundef %832) #14
  call void @exit(i32 noundef 1) #15
  unreachable

834:                                              ; preds = %806
  %835 = load i32, ptr @test_count, align 4, !tbaa !5
  %836 = add nsw i32 %835, 1
  store i32 %836, ptr @test_count, align 4, !tbaa !5
  %837 = call i32 @s2n_stuffer_wipe(ptr noundef nonnull %335) #12
  %838 = icmp eq i32 %837, -1
  br i1 %838, label %839, label %862

839:                                              ; preds = %834
  %840 = tail call ptr @__errno_location() #13
  %841 = load i32, ptr %840, align 4, !tbaa !5
  %842 = load ptr, ptr @stderr, align 8, !tbaa !9
  %843 = call i32 @s2n_print_stacktrace(ptr noundef %842) #12
  %844 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %845 = trunc nuw i8 %844 to i1
  br i1 %845, label %846, label %850

846:                                              ; preds = %839
  %847 = load ptr, ptr @stderr, align 8, !tbaa !9
  %848 = call i32 @fileno(ptr noundef %847) #12
  %849 = call i32 @isatty(i32 noundef %848) #12
  %.not423 = icmp eq i32 %849, 0
  br i1 %.not423, label %850, label %851

850:                                              ; preds = %846, %839
  br label %851

851:                                              ; preds = %846, %850
  %.str.4.sink864 = phi ptr [ @.str.4, %850 ], [ @.str, %846 ]
  store i32 %841, ptr %840, align 4, !tbaa !5
  %852 = load ptr, ptr @stderr, align 8, !tbaa !9
  %853 = load i32, ptr @test_count, align 4, !tbaa !5
  %854 = load i32, ptr %332, align 4, !tbaa !5
  %855 = call ptr @s2n_strerror(i32 noundef %854, ptr noundef nonnull @.str.3) #12
  %856 = load i32, ptr %332, align 4, !tbaa !5
  %857 = call ptr @s2n_strerror_debug(i32 noundef %856, ptr noundef nonnull @.str.3) #12
  %858 = load i32, ptr %840, align 4, !tbaa !5
  %859 = call ptr @strerror(i32 noundef %858) #12
  %860 = load i32, ptr %840, align 4, !tbaa !5
  %861 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %852, ptr noundef nonnull %.str.4.sink864, i32 noundef %853, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.2, i32 noundef 133, ptr noundef %855, ptr noundef %857, ptr noundef %859, i32 noundef %860) #14
  call void @exit(i32 noundef 1) #15
  unreachable

862:                                              ; preds = %834
  %863 = load i32, ptr @test_count, align 4, !tbaa !5
  %864 = add nsw i32 %863, 1
  store i32 %864, ptr @test_count, align 4, !tbaa !5
  %865 = call i32 @s2n_stuffer_copy(ptr noundef nonnull %333, ptr noundef nonnull %335, i32 noundef 5) #12
  %866 = icmp eq i32 %865, -1
  br i1 %866, label %867, label %890

867:                                              ; preds = %862
  %868 = tail call ptr @__errno_location() #13
  %869 = load i32, ptr %868, align 4, !tbaa !5
  %870 = load ptr, ptr @stderr, align 8, !tbaa !9
  %871 = call i32 @s2n_print_stacktrace(ptr noundef %870) #12
  %872 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %873 = trunc nuw i8 %872 to i1
  br i1 %873, label %874, label %878

874:                                              ; preds = %867
  %875 = load ptr, ptr @stderr, align 8, !tbaa !9
  %876 = call i32 @fileno(ptr noundef %875) #12
  %877 = call i32 @isatty(i32 noundef %876) #12
  %.not422 = icmp eq i32 %877, 0
  br i1 %.not422, label %878, label %879

878:                                              ; preds = %874, %867
  br label %879

879:                                              ; preds = %874, %878
  %.str.4.sink873 = phi ptr [ @.str.4, %878 ], [ @.str, %874 ]
  store i32 %869, ptr %868, align 4, !tbaa !5
  %880 = load ptr, ptr @stderr, align 8, !tbaa !9
  %881 = load i32, ptr @test_count, align 4, !tbaa !5
  %882 = load i32, ptr %332, align 4, !tbaa !5
  %883 = call ptr @s2n_strerror(i32 noundef %882, ptr noundef nonnull @.str.3) #12
  %884 = load i32, ptr %332, align 4, !tbaa !5
  %885 = call ptr @s2n_strerror_debug(i32 noundef %884, ptr noundef nonnull @.str.3) #12
  %886 = load i32, ptr %868, align 4, !tbaa !5
  %887 = call ptr @strerror(i32 noundef %886) #12
  %888 = load i32, ptr %868, align 4, !tbaa !5
  %889 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %880, ptr noundef nonnull %.str.4.sink873, i32 noundef %881, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.2, i32 noundef 134, ptr noundef %883, ptr noundef %885, ptr noundef %887, i32 noundef %888) #14
  call void @exit(i32 noundef 1) #15
  unreachable

890:                                              ; preds = %862
  %891 = load i32, ptr @test_count, align 4, !tbaa !5
  %892 = add nsw i32 %891, 1
  store i32 %892, ptr @test_count, align 4, !tbaa !5
  %893 = load i32, ptr %336, align 4, !tbaa !61
  %894 = load i32, ptr %337, align 8, !tbaa !62
  %895 = sub i32 %893, %894
  %896 = call i32 @s2n_stuffer_copy(ptr noundef nonnull %333, ptr noundef nonnull %334, i32 noundef %895) #12
  %897 = icmp eq i32 %896, -1
  br i1 %897, label %898, label %921

898:                                              ; preds = %890
  %899 = tail call ptr @__errno_location() #13
  %900 = load i32, ptr %899, align 4, !tbaa !5
  %901 = load ptr, ptr @stderr, align 8, !tbaa !9
  %902 = call i32 @s2n_print_stacktrace(ptr noundef %901) #12
  %903 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %904 = trunc nuw i8 %903 to i1
  br i1 %904, label %905, label %909

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

909:                                              ; preds = %905, %898
  br label %910

910:                                              ; preds = %905, %909
  %.str.4.sink882 = phi ptr [ @.str.4, %909 ], [ @.str, %905 ]
  store i32 %900, ptr %899, align 4, !tbaa !5
  %911 = load ptr, ptr @stderr, align 8, !tbaa !9
  %912 = load i32, ptr @test_count, align 4, !tbaa !5
  %913 = load i32, ptr %332, align 4, !tbaa !5
  %914 = call ptr @s2n_strerror(i32 noundef %913, ptr noundef nonnull @.str.3) #12
  %915 = load i32, ptr %332, align 4, !tbaa !5
  %916 = call ptr @s2n_strerror_debug(i32 noundef %915, ptr noundef nonnull @.str.3) #12
  %917 = load i32, ptr %899, align 4, !tbaa !5
  %918 = call ptr @strerror(i32 noundef %917) #12
  %919 = load i32, ptr %899, align 4, !tbaa !5
  %920 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %911, ptr noundef nonnull %.str.4.sink882, i32 noundef %912, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.2, i32 noundef 135, ptr noundef %914, ptr noundef %916, ptr noundef %918, i32 noundef %919) #14
  call void @exit(i32 noundef 1) #15
  unreachable

921:                                              ; preds = %890
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %8) #12
  store i8 0, ptr %8, align 1, !tbaa !59
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %9) #12
  store i16 0, ptr %9, align 2, !tbaa !63
  %922 = load i32, ptr @test_count, align 4, !tbaa !5
  %923 = add nsw i32 %922, 1
  store i32 %923, ptr @test_count, align 4, !tbaa !5
  %924 = call i32 @s2n_record_header_parse(ptr noundef nonnull %264, ptr noundef nonnull %8, ptr noundef nonnull %9) #12
  %925 = icmp eq i32 %924, -1
  br i1 %925, label %926, label %949

926:                                              ; preds = %921
  %927 = tail call ptr @__errno_location() #13
  %928 = load i32, ptr %927, align 4, !tbaa !5
  %929 = load ptr, ptr @stderr, align 8, !tbaa !9
  %930 = call i32 @s2n_print_stacktrace(ptr noundef %929) #12
  %931 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %932 = trunc nuw i8 %931 to i1
  br i1 %932, label %933, label %937

933:                                              ; preds = %926
  %934 = load ptr, ptr @stderr, align 8, !tbaa !9
  %935 = call i32 @fileno(ptr noundef %934) #12
  %936 = call i32 @isatty(i32 noundef %935) #12
  %.not420 = icmp eq i32 %936, 0
  br i1 %.not420, label %937, label %938

937:                                              ; preds = %933, %926
  br label %938

938:                                              ; preds = %933, %937
  %.str.4.sink891 = phi ptr [ @.str.4, %937 ], [ @.str, %933 ]
  store i32 %928, ptr %927, align 4, !tbaa !5
  %939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %940 = load i32, ptr @test_count, align 4, !tbaa !5
  %941 = load i32, ptr %332, align 4, !tbaa !5
  %942 = call ptr @s2n_strerror(i32 noundef %941, ptr noundef nonnull @.str.3) #12
  %943 = load i32, ptr %332, align 4, !tbaa !5
  %944 = call ptr @s2n_strerror_debug(i32 noundef %943, ptr noundef nonnull @.str.3) #12
  %945 = load i32, ptr %927, align 4, !tbaa !5
  %946 = call ptr @strerror(i32 noundef %945) #12
  %947 = load i32, ptr %927, align 4, !tbaa !5
  %948 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %939, ptr noundef nonnull %.str.4.sink891, i32 noundef %940, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.2, i32 noundef 140, ptr noundef %942, ptr noundef %944, ptr noundef %946, i32 noundef %947) #14
  call void @exit(i32 noundef 1) #15
  unreachable

949:                                              ; preds = %921
  %950 = load i32, ptr @test_count, align 4, !tbaa !5
  %951 = add nsw i32 %950, 1
  store i32 %951, ptr @test_count, align 4, !tbaa !5
  %952 = call i32 @s2n_record_parse(ptr noundef nonnull %264) #12
  %953 = icmp eq i32 %952, -1
  br i1 %953, label %954, label %977

954:                                              ; preds = %949
  %955 = tail call ptr @__errno_location() #13
  %956 = load i32, ptr %955, align 4, !tbaa !5
  %957 = load ptr, ptr @stderr, align 8, !tbaa !9
  %958 = call i32 @s2n_print_stacktrace(ptr noundef %957) #12
  %959 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %960 = trunc nuw i8 %959 to i1
  br i1 %960, label %961, label %965

961:                                              ; preds = %954
  %962 = load ptr, ptr @stderr, align 8, !tbaa !9
  %963 = call i32 @fileno(ptr noundef %962) #12
  %964 = call i32 @isatty(i32 noundef %963) #12
  %.not419 = icmp eq i32 %964, 0
  br i1 %.not419, label %965, label %966

965:                                              ; preds = %961, %954
  br label %966

966:                                              ; preds = %961, %965
  %.str.4.sink900 = phi ptr [ @.str.4, %965 ], [ @.str, %961 ]
  store i32 %956, ptr %955, align 4, !tbaa !5
  %967 = load ptr, ptr @stderr, align 8, !tbaa !9
  %968 = load i32, ptr @test_count, align 4, !tbaa !5
  %969 = load i32, ptr %332, align 4, !tbaa !5
  %970 = call ptr @s2n_strerror(i32 noundef %969, ptr noundef nonnull @.str.3) #12
  %971 = load i32, ptr %332, align 4, !tbaa !5
  %972 = call ptr @s2n_strerror_debug(i32 noundef %971, ptr noundef nonnull @.str.3) #12
  %973 = load i32, ptr %955, align 4, !tbaa !5
  %974 = call ptr @strerror(i32 noundef %973) #12
  %975 = load i32, ptr %955, align 4, !tbaa !5
  %976 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %967, ptr noundef nonnull %.str.4.sink900, i32 noundef %968, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.2, i32 noundef 141, ptr noundef %970, ptr noundef %972, ptr noundef %974, i32 noundef %975) #14
  call void @exit(i32 noundef 1) #15
  unreachable

977:                                              ; preds = %949
  %978 = load i32, ptr @test_count, align 4, !tbaa !5
  %979 = add nsw i32 %978, 1
  store i32 %979, ptr @test_count, align 4, !tbaa !5
  %980 = load i8, ptr %8, align 1, !tbaa !59
  %981 = icmp eq i8 %980, 23
  br i1 %981, label %1005, label %982

982:                                              ; preds = %977
  %983 = tail call ptr @__errno_location() #13
  %984 = load i32, ptr %983, align 4, !tbaa !5
  %985 = load ptr, ptr @stderr, align 8, !tbaa !9
  %986 = call i32 @s2n_print_stacktrace(ptr noundef %985) #12
  %987 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %988 = trunc nuw i8 %987 to i1
  br i1 %988, label %989, label %993

989:                                              ; preds = %982
  %990 = load ptr, ptr @stderr, align 8, !tbaa !9
  %991 = call i32 @fileno(ptr noundef %990) #12
  %992 = call i32 @isatty(i32 noundef %991) #12
  %.not361 = icmp eq i32 %992, 0
  br i1 %.not361, label %993, label %994

993:                                              ; preds = %989, %982
  br label %994

994:                                              ; preds = %989, %993
  %.str.4.sink909 = phi ptr [ @.str.4, %993 ], [ @.str, %989 ]
  store i32 %984, ptr %983, align 4, !tbaa !5
  %995 = load ptr, ptr @stderr, align 8, !tbaa !9
  %996 = load i32, ptr @test_count, align 4, !tbaa !5
  %997 = load i32, ptr %332, align 4, !tbaa !5
  %998 = call ptr @s2n_strerror(i32 noundef %997, ptr noundef nonnull @.str.3) #12
  %999 = load i32, ptr %332, align 4, !tbaa !5
  %1000 = call ptr @s2n_strerror_debug(i32 noundef %999, ptr noundef nonnull @.str.3) #12
  %1001 = load i32, ptr %983, align 4, !tbaa !5
  %1002 = call ptr @strerror(i32 noundef %1001) #12
  %1003 = load i32, ptr %983, align 4, !tbaa !5
  %1004 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %995, ptr noundef nonnull %.str.4.sink909, i32 noundef %996, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.2, i32 noundef 142, ptr noundef %998, ptr noundef %1000, ptr noundef %1002, i32 noundef %1003) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1005:                                             ; preds = %977
  %1006 = add nsw i32 %978, 2
  store i32 %1006, ptr @test_count, align 4, !tbaa !5
  %1007 = load i16, ptr %9, align 2, !tbaa !63
  %1008 = trunc i32 %605 to i16
  %1009 = icmp eq i16 %1007, %1008
  br i1 %1009, label %1033, label %1010

1010:                                             ; preds = %1005
  %1011 = tail call ptr @__errno_location() #13
  %1012 = load i32, ptr %1011, align 4, !tbaa !5
  %1013 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1014 = call i32 @s2n_print_stacktrace(ptr noundef %1013) #12
  %1015 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1016 = trunc nuw i8 %1015 to i1
  br i1 %1016, label %1017, label %1021

1017:                                             ; preds = %1010
  %1018 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1019 = call i32 @fileno(ptr noundef %1018) #12
  %1020 = call i32 @isatty(i32 noundef %1019) #12
  %.not362 = icmp eq i32 %1020, 0
  br i1 %.not362, label %1021, label %1022

1021:                                             ; preds = %1017, %1010
  br label %1022

1022:                                             ; preds = %1017, %1021
  %.str.4.sink918 = phi ptr [ @.str.4, %1021 ], [ @.str, %1017 ]
  store i32 %1012, ptr %1011, align 4, !tbaa !5
  %1023 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1024 = load i32, ptr @test_count, align 4, !tbaa !5
  %1025 = load i32, ptr %332, align 4, !tbaa !5
  %1026 = call ptr @s2n_strerror(i32 noundef %1025, ptr noundef nonnull @.str.3) #12
  %1027 = load i32, ptr %332, align 4, !tbaa !5
  %1028 = call ptr @s2n_strerror_debug(i32 noundef %1027, ptr noundef nonnull @.str.3) #12
  %1029 = load i32, ptr %1011, align 4, !tbaa !5
  %1030 = call ptr @strerror(i32 noundef %1029) #12
  %1031 = load i32, ptr %1011, align 4, !tbaa !5
  %1032 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1023, ptr noundef nonnull %.str.4.sink918, i32 noundef %1024, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.2, i32 noundef 143, ptr noundef %1026, ptr noundef %1028, ptr noundef %1030, i32 noundef %1031) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1033:                                             ; preds = %1005
  %1034 = add nsw i32 %978, 3
  store i32 %1034, ptr @test_count, align 4, !tbaa !5
  %1035 = call i32 @s2n_stuffer_wipe(ptr noundef nonnull %335) #12
  %1036 = icmp eq i32 %1035, -1
  br i1 %1036, label %1037, label %1060

1037:                                             ; preds = %1033
  %1038 = tail call ptr @__errno_location() #13
  %1039 = load i32, ptr %1038, align 4, !tbaa !5
  %1040 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1041 = call i32 @s2n_print_stacktrace(ptr noundef %1040) #12
  %1042 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1043 = trunc nuw i8 %1042 to i1
  br i1 %1043, label %1044, label %1048

1044:                                             ; preds = %1037
  %1045 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1046 = call i32 @fileno(ptr noundef %1045) #12
  %1047 = call i32 @isatty(i32 noundef %1046) #12
  %.not418 = icmp eq i32 %1047, 0
  br i1 %.not418, label %1048, label %1049

1048:                                             ; preds = %1044, %1037
  br label %1049

1049:                                             ; preds = %1044, %1048
  %.str.4.sink927 = phi ptr [ @.str.4, %1048 ], [ @.str, %1044 ]
  store i32 %1039, ptr %1038, align 4, !tbaa !5
  %1050 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1051 = load i32, ptr @test_count, align 4, !tbaa !5
  %1052 = load i32, ptr %332, align 4, !tbaa !5
  %1053 = call ptr @s2n_strerror(i32 noundef %1052, ptr noundef nonnull @.str.3) #12
  %1054 = load i32, ptr %332, align 4, !tbaa !5
  %1055 = call ptr @s2n_strerror_debug(i32 noundef %1054, ptr noundef nonnull @.str.3) #12
  %1056 = load i32, ptr %1038, align 4, !tbaa !5
  %1057 = call ptr @strerror(i32 noundef %1056) #12
  %1058 = load i32, ptr %1038, align 4, !tbaa !5
  %1059 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1050, ptr noundef nonnull %.str.4.sink927, i32 noundef %1051, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.2, i32 noundef 145, ptr noundef %1053, ptr noundef %1055, ptr noundef %1057, i32 noundef %1058) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1060:                                             ; preds = %1033
  %1061 = load i32, ptr @test_count, align 4, !tbaa !5
  %1062 = add nsw i32 %1061, 1
  store i32 %1062, ptr @test_count, align 4, !tbaa !5
  %1063 = call i32 @s2n_stuffer_wipe(ptr noundef nonnull %334) #12
  %1064 = icmp eq i32 %1063, -1
  br i1 %1064, label %1065, label %1088

1065:                                             ; preds = %1060
  %1066 = tail call ptr @__errno_location() #13
  %1067 = load i32, ptr %1066, align 4, !tbaa !5
  %1068 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1069 = call i32 @s2n_print_stacktrace(ptr noundef %1068) #12
  %1070 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1071 = trunc nuw i8 %1070 to i1
  br i1 %1071, label %1072, label %1076

1072:                                             ; preds = %1065
  %1073 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1074 = call i32 @fileno(ptr noundef %1073) #12
  %1075 = call i32 @isatty(i32 noundef %1074) #12
  %.not417 = icmp eq i32 %1075, 0
  br i1 %.not417, label %1076, label %1077

1076:                                             ; preds = %1072, %1065
  br label %1077

1077:                                             ; preds = %1072, %1076
  %.str.4.sink936 = phi ptr [ @.str.4, %1076 ], [ @.str, %1072 ]
  store i32 %1067, ptr %1066, align 4, !tbaa !5
  %1078 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1079 = load i32, ptr @test_count, align 4, !tbaa !5
  %1080 = load i32, ptr %332, align 4, !tbaa !5
  %1081 = call ptr @s2n_strerror(i32 noundef %1080, ptr noundef nonnull @.str.3) #12
  %1082 = load i32, ptr %332, align 4, !tbaa !5
  %1083 = call ptr @s2n_strerror_debug(i32 noundef %1082, ptr noundef nonnull @.str.3) #12
  %1084 = load i32, ptr %1066, align 4, !tbaa !5
  %1085 = call ptr @strerror(i32 noundef %1084) #12
  %1086 = load i32, ptr %1066, align 4, !tbaa !5
  %1087 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1078, ptr noundef nonnull %.str.4.sink936, i32 noundef %1079, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.2, i32 noundef 146, ptr noundef %1081, ptr noundef %1083, ptr noundef %1085, i32 noundef %1086) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1088:                                             ; preds = %1060
  %1089 = load i32, ptr @test_count, align 4, !tbaa !5
  %1090 = add nsw i32 %1089, 1
  store i32 %1090, ptr @test_count, align 4, !tbaa !5
  %1091 = call i32 @s2n_connection_wipe(ptr noundef nonnull %264) #12
  %1092 = icmp eq i32 %1091, -1
  br i1 %1092, label %1093, label %1116

1093:                                             ; preds = %1088
  %1094 = tail call ptr @__errno_location() #13
  %1095 = load i32, ptr %1094, align 4, !tbaa !5
  %1096 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1097 = call i32 @s2n_print_stacktrace(ptr noundef %1096) #12
  %1098 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1099 = trunc nuw i8 %1098 to i1
  br i1 %1099, label %1100, label %1104

1100:                                             ; preds = %1093
  %1101 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1102 = call i32 @fileno(ptr noundef %1101) #12
  %1103 = call i32 @isatty(i32 noundef %1102) #12
  %.not416 = icmp eq i32 %1103, 0
  br i1 %.not416, label %1104, label %1105

1104:                                             ; preds = %1100, %1093
  br label %1105

1105:                                             ; preds = %1100, %1104
  %.str.4.sink945 = phi ptr [ @.str.4, %1104 ], [ @.str, %1100 ]
  store i32 %1095, ptr %1094, align 4, !tbaa !5
  %1106 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1107 = load i32, ptr @test_count, align 4, !tbaa !5
  %1108 = load i32, ptr %332, align 4, !tbaa !5
  %1109 = call ptr @s2n_strerror(i32 noundef %1108, ptr noundef nonnull @.str.3) #12
  %1110 = load i32, ptr %332, align 4, !tbaa !5
  %1111 = call ptr @s2n_strerror_debug(i32 noundef %1110, ptr noundef nonnull @.str.3) #12
  %1112 = load i32, ptr %1094, align 4, !tbaa !5
  %1113 = call ptr @strerror(i32 noundef %1112) #12
  %1114 = load i32, ptr %1094, align 4, !tbaa !5
  %1115 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1106, ptr noundef nonnull %.str.4.sink945, i32 noundef %1107, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.2, i32 noundef 149, ptr noundef %1109, ptr noundef %1111, ptr noundef %1113, i32 noundef %1114) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1116:                                             ; preds = %1088
  store i8 1, ptr %328, align 2, !tbaa !53
  store i8 33, ptr %329, align 1, !tbaa !54
  store i8 33, ptr %330, align 2, !tbaa !55
  store i8 33, ptr %331, align 4, !tbaa !56
  %1117 = load i32, ptr @test_count, align 4, !tbaa !5
  %1118 = add nsw i32 %1117, 1
  store i32 %1118, ptr @test_count, align 4, !tbaa !5
  %1119 = call i32 @destroy_server_keys(ptr noundef nonnull %264)
  %1120 = icmp eq i32 %1119, -1
  br i1 %1120, label %1121, label %1144

1121:                                             ; preds = %1116
  %1122 = tail call ptr @__errno_location() #13
  %1123 = load i32, ptr %1122, align 4, !tbaa !5
  %1124 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1125 = call i32 @s2n_print_stacktrace(ptr noundef %1124) #12
  %1126 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1127 = trunc nuw i8 %1126 to i1
  br i1 %1127, label %1128, label %1132

1128:                                             ; preds = %1121
  %1129 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1130 = call i32 @fileno(ptr noundef %1129) #12
  %1131 = call i32 @isatty(i32 noundef %1130) #12
  %.not415 = icmp eq i32 %1131, 0
  br i1 %.not415, label %1132, label %1133

1132:                                             ; preds = %1128, %1121
  br label %1133

1133:                                             ; preds = %1128, %1132
  %.str.4.sink954 = phi ptr [ @.str.4, %1132 ], [ @.str, %1128 ]
  store i32 %1123, ptr %1122, align 4, !tbaa !5
  %1134 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1135 = load i32, ptr @test_count, align 4, !tbaa !5
  %1136 = load i32, ptr %332, align 4, !tbaa !5
  %1137 = call ptr @s2n_strerror(i32 noundef %1136, ptr noundef nonnull @.str.3) #12
  %1138 = load i32, ptr %332, align 4, !tbaa !5
  %1139 = call ptr @s2n_strerror_debug(i32 noundef %1138, ptr noundef nonnull @.str.3) #12
  %1140 = load i32, ptr %1122, align 4, !tbaa !5
  %1141 = call ptr @strerror(i32 noundef %1140) #12
  %1142 = load i32, ptr %1122, align 4, !tbaa !5
  %1143 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1134, ptr noundef nonnull %.str.4.sink954, i32 noundef %1135, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.2, i32 noundef 154, ptr noundef %1137, ptr noundef %1139, ptr noundef %1141, i32 noundef %1142) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1144:                                             ; preds = %1116
  %1145 = load i32, ptr @test_count, align 4, !tbaa !5
  %1146 = add nsw i32 %1145, 1
  store i32 %1146, ptr @test_count, align 4, !tbaa !5
  %1147 = call i32 @setup_server_keys(ptr noundef nonnull %264, ptr noundef nonnull %5)
  %1148 = icmp eq i32 %1147, -1
  br i1 %1148, label %1149, label %1172

1149:                                             ; preds = %1144
  %1150 = tail call ptr @__errno_location() #13
  %1151 = load i32, ptr %1150, align 4, !tbaa !5
  %1152 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1153 = call i32 @s2n_print_stacktrace(ptr noundef %1152) #12
  %1154 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1155 = trunc nuw i8 %1154 to i1
  br i1 %1155, label %1156, label %1160

1156:                                             ; preds = %1149
  %1157 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1158 = call i32 @fileno(ptr noundef %1157) #12
  %1159 = call i32 @isatty(i32 noundef %1158) #12
  %.not414 = icmp eq i32 %1159, 0
  br i1 %.not414, label %1160, label %1161

1160:                                             ; preds = %1156, %1149
  br label %1161

1161:                                             ; preds = %1156, %1160
  %.str.4.sink963 = phi ptr [ @.str.4, %1160 ], [ @.str, %1156 ]
  store i32 %1151, ptr %1150, align 4, !tbaa !5
  %1162 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1163 = load i32, ptr @test_count, align 4, !tbaa !5
  %1164 = load i32, ptr %332, align 4, !tbaa !5
  %1165 = call ptr @s2n_strerror(i32 noundef %1164, ptr noundef nonnull @.str.3) #12
  %1166 = load i32, ptr %332, align 4, !tbaa !5
  %1167 = call ptr @s2n_strerror_debug(i32 noundef %1166, ptr noundef nonnull @.str.3) #12
  %1168 = load i32, ptr %1150, align 4, !tbaa !5
  %1169 = call ptr @strerror(i32 noundef %1168) #12
  %1170 = load i32, ptr %1150, align 4, !tbaa !5
  %1171 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1162, ptr noundef nonnull %.str.4.sink963, i32 noundef %1163, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.2, i32 noundef 155, ptr noundef %1165, ptr noundef %1167, ptr noundef %1169, i32 noundef %1170) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1172:                                             ; preds = %1144
  %1173 = load i32, ptr @test_count, align 4, !tbaa !5
  %1174 = add nsw i32 %1173, 1
  store i32 %1174, ptr @test_count, align 4, !tbaa !5
  %1175 = call i32 @s2n_record_write(ptr noundef nonnull %264, i8 noundef zeroext 23, ptr noundef nonnull %7) #12
  %1176 = call zeroext i1 @s2n_result_is_ok(i32 %1175)
  br i1 %1176, label %1200, label %1177

1177:                                             ; preds = %1172
  %1178 = tail call ptr @__errno_location() #13
  %1179 = load i32, ptr %1178, align 4, !tbaa !5
  %1180 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1181 = call i32 @s2n_print_stacktrace(ptr noundef %1180) #12
  %1182 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1183 = trunc nuw i8 %1182 to i1
  br i1 %1183, label %1184, label %1188

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

1188:                                             ; preds = %1184, %1177
  br label %1189

1189:                                             ; preds = %1184, %1188
  %.str.4.sink972 = phi ptr [ @.str.4, %1188 ], [ @.str, %1184 ]
  store i32 %1179, ptr %1178, align 4, !tbaa !5
  %1190 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1191 = load i32, ptr @test_count, align 4, !tbaa !5
  %1192 = load i32, ptr %332, align 4, !tbaa !5
  %1193 = call ptr @s2n_strerror(i32 noundef %1192, ptr noundef nonnull @.str.3) #12
  %1194 = load i32, ptr %332, align 4, !tbaa !5
  %1195 = call ptr @s2n_strerror_debug(i32 noundef %1194, ptr noundef nonnull @.str.3) #12
  %1196 = load i32, ptr %1178, align 4, !tbaa !5
  %1197 = call ptr @strerror(i32 noundef %1196) #12
  %1198 = load i32, ptr %1178, align 4, !tbaa !5
  %1199 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1190, ptr noundef nonnull %.str.4.sink972, i32 noundef %1191, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.2, i32 noundef 156, ptr noundef %1193, ptr noundef %1195, ptr noundef %1197, i32 noundef %1198) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1200:                                             ; preds = %1172
  %1201 = load i32, ptr @test_count, align 4, !tbaa !5
  %1202 = add nsw i32 %1201, 1
  store i32 %1202, ptr @test_count, align 4, !tbaa !5
  %1203 = call i32 @s2n_stuffer_wipe(ptr noundef nonnull %334) #12
  %1204 = icmp eq i32 %1203, -1
  br i1 %1204, label %1205, label %1228

1205:                                             ; preds = %1200
  %1206 = tail call ptr @__errno_location() #13
  %1207 = load i32, ptr %1206, align 4, !tbaa !5
  %1208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1209 = call i32 @s2n_print_stacktrace(ptr noundef %1208) #12
  %1210 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1211 = trunc nuw i8 %1210 to i1
  br i1 %1211, label %1212, label %1216

1212:                                             ; preds = %1205
  %1213 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1214 = call i32 @fileno(ptr noundef %1213) #12
  %1215 = call i32 @isatty(i32 noundef %1214) #12
  %.not413 = icmp eq i32 %1215, 0
  br i1 %.not413, label %1216, label %1217

1216:                                             ; preds = %1212, %1205
  br label %1217

1217:                                             ; preds = %1212, %1216
  %.str.4.sink981 = phi ptr [ @.str.4, %1216 ], [ @.str, %1212 ]
  store i32 %1207, ptr %1206, align 4, !tbaa !5
  %1218 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1219 = load i32, ptr @test_count, align 4, !tbaa !5
  %1220 = load i32, ptr %332, align 4, !tbaa !5
  %1221 = call ptr @s2n_strerror(i32 noundef %1220, ptr noundef nonnull @.str.3) #12
  %1222 = load i32, ptr %332, align 4, !tbaa !5
  %1223 = call ptr @s2n_strerror_debug(i32 noundef %1222, ptr noundef nonnull @.str.3) #12
  %1224 = load i32, ptr %1206, align 4, !tbaa !5
  %1225 = call ptr @strerror(i32 noundef %1224) #12
  %1226 = load i32, ptr %1206, align 4, !tbaa !5
  %1227 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1218, ptr noundef nonnull %.str.4.sink981, i32 noundef %1219, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.2, i32 noundef 160, ptr noundef %1221, ptr noundef %1223, ptr noundef %1225, i32 noundef %1226) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1228:                                             ; preds = %1200
  %1229 = load i32, ptr @test_count, align 4, !tbaa !5
  %1230 = add nsw i32 %1229, 1
  store i32 %1230, ptr @test_count, align 4, !tbaa !5
  %1231 = call i32 @s2n_stuffer_wipe(ptr noundef nonnull %335) #12
  %1232 = icmp eq i32 %1231, -1
  br i1 %1232, label %1233, label %1256

1233:                                             ; preds = %1228
  %1234 = tail call ptr @__errno_location() #13
  %1235 = load i32, ptr %1234, align 4, !tbaa !5
  %1236 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1237 = call i32 @s2n_print_stacktrace(ptr noundef %1236) #12
  %1238 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1239 = trunc nuw i8 %1238 to i1
  br i1 %1239, label %1240, label %1244

1240:                                             ; preds = %1233
  %1241 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1242 = call i32 @fileno(ptr noundef %1241) #12
  %1243 = call i32 @isatty(i32 noundef %1242) #12
  %.not412 = icmp eq i32 %1243, 0
  br i1 %.not412, label %1244, label %1245

1244:                                             ; preds = %1240, %1233
  br label %1245

1245:                                             ; preds = %1240, %1244
  %.str.4.sink990 = phi ptr [ @.str.4, %1244 ], [ @.str, %1240 ]
  store i32 %1235, ptr %1234, align 4, !tbaa !5
  %1246 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1247 = load i32, ptr @test_count, align 4, !tbaa !5
  %1248 = load i32, ptr %332, align 4, !tbaa !5
  %1249 = call ptr @s2n_strerror(i32 noundef %1248, ptr noundef nonnull @.str.3) #12
  %1250 = load i32, ptr %332, align 4, !tbaa !5
  %1251 = call ptr @s2n_strerror_debug(i32 noundef %1250, ptr noundef nonnull @.str.3) #12
  %1252 = load i32, ptr %1234, align 4, !tbaa !5
  %1253 = call ptr @strerror(i32 noundef %1252) #12
  %1254 = load i32, ptr %1234, align 4, !tbaa !5
  %1255 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1246, ptr noundef nonnull %.str.4.sink990, i32 noundef %1247, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.2, i32 noundef 161, ptr noundef %1249, ptr noundef %1251, ptr noundef %1253, i32 noundef %1254) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1256:                                             ; preds = %1228
  %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 = call i32 @s2n_stuffer_copy(ptr noundef nonnull %333, ptr noundef nonnull %335, i32 noundef 5) #12
  %1260 = icmp eq i32 %1259, -1
  br i1 %1260, label %1261, label %1284

1261:                                             ; preds = %1256
  %1262 = tail call ptr @__errno_location() #13
  %1263 = load i32, ptr %1262, align 4, !tbaa !5
  %1264 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1265 = call i32 @s2n_print_stacktrace(ptr noundef %1264) #12
  %1266 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1267 = trunc nuw i8 %1266 to i1
  br i1 %1267, label %1268, label %1272

1268:                                             ; preds = %1261
  %1269 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1270 = call i32 @fileno(ptr noundef %1269) #12
  %1271 = call i32 @isatty(i32 noundef %1270) #12
  %.not411 = icmp eq i32 %1271, 0
  br i1 %.not411, label %1272, label %1273

1272:                                             ; preds = %1268, %1261
  br label %1273

1273:                                             ; preds = %1268, %1272
  %.str.4.sink999 = phi ptr [ @.str.4, %1272 ], [ @.str, %1268 ]
  store i32 %1263, ptr %1262, align 4, !tbaa !5
  %1274 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1275 = load i32, ptr @test_count, align 4, !tbaa !5
  %1276 = load i32, ptr %332, align 4, !tbaa !5
  %1277 = call ptr @s2n_strerror(i32 noundef %1276, ptr noundef nonnull @.str.3) #12
  %1278 = load i32, ptr %332, align 4, !tbaa !5
  %1279 = call ptr @s2n_strerror_debug(i32 noundef %1278, ptr noundef nonnull @.str.3) #12
  %1280 = load i32, ptr %1262, align 4, !tbaa !5
  %1281 = call ptr @strerror(i32 noundef %1280) #12
  %1282 = load i32, ptr %1262, align 4, !tbaa !5
  %1283 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1274, ptr noundef nonnull %.str.4.sink999, i32 noundef %1275, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.2, i32 noundef 162, ptr noundef %1277, ptr noundef %1279, ptr noundef %1281, i32 noundef %1282) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1284:                                             ; preds = %1256
  %1285 = load i32, ptr @test_count, align 4, !tbaa !5
  %1286 = add nsw i32 %1285, 1
  store i32 %1286, ptr @test_count, align 4, !tbaa !5
  %1287 = load i32, ptr %336, align 4, !tbaa !61
  %1288 = load i32, ptr %337, align 8, !tbaa !62
  %1289 = sub i32 %1287, %1288
  %1290 = call i32 @s2n_stuffer_copy(ptr noundef nonnull %333, ptr noundef nonnull %334, i32 noundef %1289) #12
  %1291 = icmp eq i32 %1290, -1
  br i1 %1291, label %1292, label %1315

1292:                                             ; preds = %1284
  %1293 = tail call ptr @__errno_location() #13
  %1294 = load i32, ptr %1293, align 4, !tbaa !5
  %1295 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1296 = call i32 @s2n_print_stacktrace(ptr noundef %1295) #12
  %1297 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1298 = trunc nuw i8 %1297 to i1
  br i1 %1298, label %1299, label %1303

1299:                                             ; preds = %1292
  %1300 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1301 = call i32 @fileno(ptr noundef %1300) #12
  %1302 = call i32 @isatty(i32 noundef %1301) #12
  %.not410 = icmp eq i32 %1302, 0
  br i1 %.not410, label %1303, label %1304

1303:                                             ; preds = %1299, %1292
  br label %1304

1304:                                             ; preds = %1299, %1303
  %.str.4.sink1008 = phi ptr [ @.str.4, %1303 ], [ @.str, %1299 ]
  store i32 %1294, ptr %1293, align 4, !tbaa !5
  %1305 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1306 = load i32, ptr @test_count, align 4, !tbaa !5
  %1307 = load i32, ptr %332, align 4, !tbaa !5
  %1308 = call ptr @s2n_strerror(i32 noundef %1307, ptr noundef nonnull @.str.3) #12
  %1309 = load i32, ptr %332, align 4, !tbaa !5
  %1310 = call ptr @s2n_strerror_debug(i32 noundef %1309, ptr noundef nonnull @.str.3) #12
  %1311 = load i32, ptr %1293, align 4, !tbaa !5
  %1312 = call ptr @strerror(i32 noundef %1311) #12
  %1313 = load i32, ptr %1293, align 4, !tbaa !5
  %1314 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1305, ptr noundef nonnull %.str.4.sink1008, i32 noundef %1306, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.2, i32 noundef 163, ptr noundef %1308, ptr noundef %1310, ptr noundef %1312, i32 noundef %1313) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1315:                                             ; preds = %1284
  %1316 = load i32, ptr @test_count, align 4, !tbaa !5
  %1317 = add nsw i32 %1316, 1
  store i32 %1317, ptr @test_count, align 4, !tbaa !5
  %1318 = load ptr, ptr %335, align 8, !tbaa !64
  %1319 = load i8, ptr %1318, align 1, !tbaa !59
  %1320 = icmp eq i8 %1319, 23
  br i1 %1320, label %1344, label %1321

1321:                                             ; preds = %1315
  %1322 = tail call ptr @__errno_location() #13
  %1323 = load i32, ptr %1322, align 4, !tbaa !5
  %1324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1325 = call i32 @s2n_print_stacktrace(ptr noundef %1324) #12
  %1326 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1327 = trunc nuw i8 %1326 to i1
  br i1 %1327, label %1328, label %1332

1328:                                             ; preds = %1321
  %1329 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1330 = call i32 @fileno(ptr noundef %1329) #12
  %1331 = call i32 @isatty(i32 noundef %1330) #12
  %.not364 = icmp eq i32 %1331, 0
  br i1 %.not364, label %1332, label %1333

1332:                                             ; preds = %1328, %1321
  br label %1333

1333:                                             ; preds = %1328, %1332
  %.str.4.sink1017 = phi ptr [ @.str.4, %1332 ], [ @.str, %1328 ]
  store i32 %1323, ptr %1322, align 4, !tbaa !5
  %1334 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1335 = load i32, ptr @test_count, align 4, !tbaa !5
  %1336 = load i32, ptr %332, align 4, !tbaa !5
  %1337 = call ptr @s2n_strerror(i32 noundef %1336, ptr noundef nonnull @.str.3) #12
  %1338 = load i32, ptr %332, align 4, !tbaa !5
  %1339 = call ptr @s2n_strerror_debug(i32 noundef %1338, ptr noundef nonnull @.str.3) #12
  %1340 = load i32, ptr %1322, align 4, !tbaa !5
  %1341 = call ptr @strerror(i32 noundef %1340) #12
  %1342 = load i32, ptr %1322, align 4, !tbaa !5
  %1343 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1334, ptr noundef nonnull %.str.4.sink1017, i32 noundef %1335, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.2, i32 noundef 166, ptr noundef %1337, ptr noundef %1339, ptr noundef %1341, i32 noundef %1342) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1344:                                             ; preds = %1315
  store i8 22, ptr %1318, align 1, !tbaa !59
  %1345 = load i32, ptr @test_count, align 4, !tbaa !5
  %1346 = add nsw i32 %1345, 1
  store i32 %1346, ptr @test_count, align 4, !tbaa !5
  %1347 = call i32 @s2n_record_header_parse(ptr noundef nonnull %264, ptr noundef nonnull %8, ptr noundef nonnull %9) #12
  %1348 = icmp eq i32 %1347, -1
  br i1 %1348, label %1349, label %1372

1349:                                             ; preds = %1344
  %1350 = tail call ptr @__errno_location() #13
  %1351 = load i32, ptr %1350, align 4, !tbaa !5
  %1352 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1353 = call i32 @s2n_print_stacktrace(ptr noundef %1352) #12
  %1354 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1355 = trunc nuw i8 %1354 to i1
  br i1 %1355, label %1356, label %1360

1356:                                             ; preds = %1349
  %1357 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1358 = call i32 @fileno(ptr noundef %1357) #12
  %1359 = call i32 @isatty(i32 noundef %1358) #12
  %.not409 = icmp eq i32 %1359, 0
  br i1 %.not409, label %1360, label %1361

1360:                                             ; preds = %1356, %1349
  br label %1361

1361:                                             ; preds = %1356, %1360
  %.str.4.sink1026 = phi ptr [ @.str.4, %1360 ], [ @.str, %1356 ]
  store i32 %1351, ptr %1350, align 4, !tbaa !5
  %1362 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1363 = load i32, ptr @test_count, align 4, !tbaa !5
  %1364 = load i32, ptr %332, align 4, !tbaa !5
  %1365 = call ptr @s2n_strerror(i32 noundef %1364, ptr noundef nonnull @.str.3) #12
  %1366 = load i32, ptr %332, align 4, !tbaa !5
  %1367 = call ptr @s2n_strerror_debug(i32 noundef %1366, ptr noundef nonnull @.str.3) #12
  %1368 = load i32, ptr %1350, align 4, !tbaa !5
  %1369 = call ptr @strerror(i32 noundef %1368) #12
  %1370 = load i32, ptr %1350, align 4, !tbaa !5
  %1371 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1362, ptr noundef nonnull %.str.4.sink1026, i32 noundef %1363, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.2, i32 noundef 169, ptr noundef %1365, ptr noundef %1367, ptr noundef %1369, i32 noundef %1370) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1372:                                             ; preds = %1344
  %1373 = load i32, ptr @test_count, align 4, !tbaa !5
  %1374 = add nsw i32 %1373, 1
  store i32 %1374, ptr @test_count, align 4, !tbaa !5
  %1375 = load i8, ptr %8, align 1, !tbaa !59
  %1376 = icmp eq i8 %1375, 22
  br i1 %1376, label %1400, label %1377

1377:                                             ; preds = %1372
  %1378 = tail call ptr @__errno_location() #13
  %1379 = load i32, ptr %1378, align 4, !tbaa !5
  %1380 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1381 = call i32 @s2n_print_stacktrace(ptr noundef %1380) #12
  %1382 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1383 = trunc nuw i8 %1382 to i1
  br i1 %1383, label %1384, label %1388

1384:                                             ; preds = %1377
  %1385 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1386 = call i32 @fileno(ptr noundef %1385) #12
  %1387 = call i32 @isatty(i32 noundef %1386) #12
  %.not365 = icmp eq i32 %1387, 0
  br i1 %.not365, label %1388, label %1389

1388:                                             ; preds = %1384, %1377
  br label %1389

1389:                                             ; preds = %1384, %1388
  %.str.4.sink1035 = phi ptr [ @.str.4, %1388 ], [ @.str, %1384 ]
  store i32 %1379, ptr %1378, align 4, !tbaa !5
  %1390 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1391 = load i32, ptr @test_count, align 4, !tbaa !5
  %1392 = load i32, ptr %332, align 4, !tbaa !5
  %1393 = call ptr @s2n_strerror(i32 noundef %1392, ptr noundef nonnull @.str.3) #12
  %1394 = load i32, ptr %332, align 4, !tbaa !5
  %1395 = call ptr @s2n_strerror_debug(i32 noundef %1394, ptr noundef nonnull @.str.3) #12
  %1396 = load i32, ptr %1378, align 4, !tbaa !5
  %1397 = call ptr @strerror(i32 noundef %1396) #12
  %1398 = load i32, ptr %1378, align 4, !tbaa !5
  %1399 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1390, ptr noundef nonnull %.str.4.sink1035, i32 noundef %1391, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.2, i32 noundef 170, ptr noundef %1393, ptr noundef %1395, ptr noundef %1397, i32 noundef %1398) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1400:                                             ; preds = %1372
  %1401 = add nsw i32 %1373, 2
  store i32 %1401, ptr @test_count, align 4, !tbaa !5
  %1402 = call i32 @s2n_record_parse(ptr noundef nonnull %264) #12
  %1403 = icmp eq i32 %1402, -1
  br i1 %1403, label %1427, label %1404

1404:                                             ; preds = %1400
  %1405 = tail call ptr @__errno_location() #13
  %1406 = load i32, ptr %1405, align 4, !tbaa !5
  %1407 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1408 = call i32 @s2n_print_stacktrace(ptr noundef %1407) #12
  %1409 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1410 = trunc nuw i8 %1409 to i1
  br i1 %1410, label %1411, label %1415

1411:                                             ; preds = %1404
  %1412 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1413 = call i32 @fileno(ptr noundef %1412) #12
  %1414 = call i32 @isatty(i32 noundef %1413) #12
  %.not366 = icmp eq i32 %1414, 0
  br i1 %.not366, label %1415, label %1416

1415:                                             ; preds = %1411, %1404
  br label %1416

1416:                                             ; preds = %1411, %1415
  %.str.4.sink1044 = phi ptr [ @.str.4, %1415 ], [ @.str, %1411 ]
  store i32 %1406, ptr %1405, align 4, !tbaa !5
  %1417 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1418 = load i32, ptr @test_count, align 4, !tbaa !5
  %1419 = load i32, ptr %332, align 4, !tbaa !5
  %1420 = call ptr @s2n_strerror(i32 noundef %1419, ptr noundef nonnull @.str.3) #12
  %1421 = load i32, ptr %332, align 4, !tbaa !5
  %1422 = call ptr @s2n_strerror_debug(i32 noundef %1421, ptr noundef nonnull @.str.3) #12
  %1423 = load i32, ptr %1405, align 4, !tbaa !5
  %1424 = call ptr @strerror(i32 noundef %1423) #12
  %1425 = load i32, ptr %1405, align 4, !tbaa !5
  %1426 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1417, ptr noundef nonnull %.str.4.sink1044, i32 noundef %1418, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.2, i32 noundef 181, ptr noundef %1420, ptr noundef %1422, ptr noundef %1424, i32 noundef %1425) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1427:                                             ; preds = %1400
  %1428 = load i32, ptr @test_count, align 4, !tbaa !5
  %1429 = add nsw i32 %1428, 1
  store i32 %1429, ptr @test_count, align 4, !tbaa !5
  %1430 = load i32, ptr %332, align 4, !tbaa !5
  %1431 = icmp eq i32 %1430, 0
  br i1 %1431, label %1432, label %1455

1432:                                             ; preds = %1427
  %1433 = tail call ptr @__errno_location() #13
  %1434 = load i32, ptr %1433, align 4, !tbaa !5
  %1435 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1436 = call i32 @s2n_print_stacktrace(ptr noundef %1435) #12
  %1437 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1438 = trunc nuw i8 %1437 to i1
  br i1 %1438, label %1439, label %1443

1439:                                             ; preds = %1432
  %1440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1441 = call i32 @fileno(ptr noundef %1440) #12
  %1442 = call i32 @isatty(i32 noundef %1441) #12
  %.not408 = icmp eq i32 %1442, 0
  br i1 %.not408, label %1443, label %1444

1443:                                             ; preds = %1439, %1432
  br label %1444

1444:                                             ; preds = %1439, %1443
  %.str.4.sink1053 = phi ptr [ @.str.4, %1443 ], [ @.str, %1439 ]
  store i32 %1434, ptr %1433, align 4, !tbaa !5
  %1445 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1446 = load i32, ptr @test_count, align 4, !tbaa !5
  %1447 = load i32, ptr %332, align 4, !tbaa !5
  %1448 = call ptr @s2n_strerror(i32 noundef %1447, ptr noundef nonnull @.str.3) #12
  %1449 = load i32, ptr %332, align 4, !tbaa !5
  %1450 = call ptr @s2n_strerror_debug(i32 noundef %1449, ptr noundef nonnull @.str.3) #12
  %1451 = load i32, ptr %1433, align 4, !tbaa !5
  %1452 = call ptr @strerror(i32 noundef %1451) #12
  %1453 = load i32, ptr %1433, align 4, !tbaa !5
  %1454 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1445, ptr noundef nonnull %.str.4.sink1053, i32 noundef %1446, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.2, i32 noundef 181, ptr noundef %1448, ptr noundef %1450, ptr noundef %1452, i32 noundef %1453) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1455:                                             ; preds = %1427
  %1456 = add nsw i32 %1428, 2
  store i32 %1456, ptr @test_count, align 4, !tbaa !5
  %1457 = call ptr @s2n_strerror_debug(i32 noundef %1430, ptr noundef nonnull @.str.3) #12
  %1458 = icmp eq ptr %1457, null
  br i1 %1458, label %1459, label %1482

1459:                                             ; preds = %1455
  %1460 = tail call ptr @__errno_location() #13
  %1461 = load i32, ptr %1460, align 4, !tbaa !5
  %1462 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1463 = call i32 @s2n_print_stacktrace(ptr noundef %1462) #12
  %1464 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1465 = trunc nuw i8 %1464 to i1
  br i1 %1465, label %1466, label %1470

1466:                                             ; preds = %1459
  %1467 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1468 = call i32 @fileno(ptr noundef %1467) #12
  %1469 = call i32 @isatty(i32 noundef %1468) #12
  %.not407 = icmp eq i32 %1469, 0
  br i1 %.not407, label %1470, label %1471

1470:                                             ; preds = %1466, %1459
  br label %1471

1471:                                             ; preds = %1466, %1470
  %.str.4.sink1062 = phi ptr [ @.str.4, %1470 ], [ @.str, %1466 ]
  store i32 %1461, ptr %1460, align 4, !tbaa !5
  %1472 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1473 = load i32, ptr @test_count, align 4, !tbaa !5
  %1474 = load i32, ptr %332, align 4, !tbaa !5
  %1475 = call ptr @s2n_strerror(i32 noundef %1474, ptr noundef nonnull @.str.3) #12
  %1476 = load i32, ptr %332, align 4, !tbaa !5
  %1477 = call ptr @s2n_strerror_debug(i32 noundef %1476, ptr noundef nonnull @.str.3) #12
  %1478 = load i32, ptr %1460, align 4, !tbaa !5
  %1479 = call ptr @strerror(i32 noundef %1478) #12
  %1480 = load i32, ptr %1460, align 4, !tbaa !5
  %1481 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1472, ptr noundef nonnull %.str.4.sink1062, i32 noundef %1473, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.2, i32 noundef 181, ptr noundef %1475, ptr noundef %1477, ptr noundef %1479, i32 noundef %1480) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1482:                                             ; preds = %1455
  store i32 0, ptr %332, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  %1483 = tail call ptr @__errno_location() #13
  store i32 0, ptr %1483, align 4, !tbaa !5
  %1484 = load i32, ptr @test_count, align 4, !tbaa !5
  %1485 = add nsw i32 %1484, 1
  store i32 %1485, ptr @test_count, align 4, !tbaa !5
  %1486 = call i32 @s2n_stuffer_wipe(ptr noundef nonnull %335) #12
  %1487 = icmp eq i32 %1486, -1
  br i1 %1487, label %1488, label %1510

1488:                                             ; preds = %1482
  %1489 = load i32, ptr %1483, align 4, !tbaa !5
  %1490 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1491 = call i32 @s2n_print_stacktrace(ptr noundef %1490) #12
  %1492 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1493 = trunc nuw i8 %1492 to i1
  br i1 %1493, label %1494, label %1498

1494:                                             ; preds = %1488
  %1495 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1496 = call i32 @fileno(ptr noundef %1495) #12
  %1497 = call i32 @isatty(i32 noundef %1496) #12
  %.not406 = icmp eq i32 %1497, 0
  br i1 %.not406, label %1498, label %1499

1498:                                             ; preds = %1494, %1488
  br label %1499

1499:                                             ; preds = %1494, %1498
  %.str.4.sink1071 = phi ptr [ @.str.4, %1498 ], [ @.str, %1494 ]
  store i32 %1489, ptr %1483, align 4, !tbaa !5
  %1500 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1501 = load i32, ptr @test_count, align 4, !tbaa !5
  %1502 = load i32, ptr %332, align 4, !tbaa !5
  %1503 = call ptr @s2n_strerror(i32 noundef %1502, ptr noundef nonnull @.str.3) #12
  %1504 = load i32, ptr %332, align 4, !tbaa !5
  %1505 = call ptr @s2n_strerror_debug(i32 noundef %1504, ptr noundef nonnull @.str.3) #12
  %1506 = load i32, ptr %1483, align 4, !tbaa !5
  %1507 = call ptr @strerror(i32 noundef %1506) #12
  %1508 = load i32, ptr %1483, align 4, !tbaa !5
  %1509 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1500, ptr noundef nonnull %.str.4.sink1071, i32 noundef %1501, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.2, i32 noundef 183, ptr noundef %1503, ptr noundef %1505, ptr noundef %1507, i32 noundef %1508) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1510:                                             ; preds = %1482
  %1511 = load i32, ptr @test_count, align 4, !tbaa !5
  %1512 = add nsw i32 %1511, 1
  store i32 %1512, ptr @test_count, align 4, !tbaa !5
  %1513 = call i32 @s2n_stuffer_wipe(ptr noundef nonnull %334) #12
  %1514 = icmp eq i32 %1513, -1
  br i1 %1514, label %1515, label %1537

1515:                                             ; preds = %1510
  %1516 = load i32, ptr %1483, align 4, !tbaa !5
  %1517 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1518 = call i32 @s2n_print_stacktrace(ptr noundef %1517) #12
  %1519 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1520 = trunc nuw i8 %1519 to i1
  br i1 %1520, label %1521, label %1525

1521:                                             ; preds = %1515
  %1522 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1523 = call i32 @fileno(ptr noundef %1522) #12
  %1524 = call i32 @isatty(i32 noundef %1523) #12
  %.not405 = icmp eq i32 %1524, 0
  br i1 %.not405, label %1525, label %1526

1525:                                             ; preds = %1521, %1515
  br label %1526

1526:                                             ; preds = %1521, %1525
  %.str.4.sink1080 = phi ptr [ @.str.4, %1525 ], [ @.str, %1521 ]
  store i32 %1516, ptr %1483, align 4, !tbaa !5
  %1527 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1528 = load i32, ptr @test_count, align 4, !tbaa !5
  %1529 = load i32, ptr %332, align 4, !tbaa !5
  %1530 = call ptr @s2n_strerror(i32 noundef %1529, ptr noundef nonnull @.str.3) #12
  %1531 = load i32, ptr %332, align 4, !tbaa !5
  %1532 = call ptr @s2n_strerror_debug(i32 noundef %1531, ptr noundef nonnull @.str.3) #12
  %1533 = load i32, ptr %1483, align 4, !tbaa !5
  %1534 = call ptr @strerror(i32 noundef %1533) #12
  %1535 = load i32, ptr %1483, align 4, !tbaa !5
  %1536 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1527, ptr noundef nonnull %.str.4.sink1080, i32 noundef %1528, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.2, i32 noundef 184, ptr noundef %1530, ptr noundef %1532, ptr noundef %1534, i32 noundef %1535) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1537:                                             ; preds = %1510
  %1538 = load ptr, ptr %320, align 8, !tbaa !17
  %1539 = load ptr, ptr %1538, align 8, !tbaa !46
  %1540 = getelementptr inbounds i8, ptr %1539, i64 48
  %1541 = load ptr, ptr %1540, align 8, !tbaa !51
  %1542 = load ptr, ptr %1541, align 8, !tbaa !57
  %1543 = getelementptr inbounds i8, ptr %1542, i64 88
  %1544 = load ptr, ptr %1543, align 8, !tbaa !65
  %1545 = getelementptr inbounds i8, ptr %1538, i64 16
  %1546 = call i32 %1544(ptr noundef nonnull %1545) #12
  %1547 = call zeroext i1 @s2n_result_is_ok(i32 %1546)
  br i1 %1547, label %1548, label %.thread447

1548:                                             ; preds = %1537
  %1549 = load ptr, ptr %320, align 8, !tbaa !17
  %1550 = load ptr, ptr %1549, align 8, !tbaa !46
  %1551 = getelementptr inbounds i8, ptr %1550, i64 48
  %1552 = load ptr, ptr %1551, align 8, !tbaa !51
  %1553 = load ptr, ptr %1552, align 8, !tbaa !57
  %1554 = getelementptr inbounds i8, ptr %1553, i64 88
  %1555 = load ptr, ptr %1554, align 8, !tbaa !65
  %1556 = getelementptr inbounds i8, ptr %1549, i64 8
  %1557 = call i32 %1555(ptr noundef nonnull %1556) #12
  %1558 = call zeroext i1 @s2n_result_is_ok(i32 %1557)
  br i1 %1558, label %.preheader448, label %.thread447

1559:                                             ; preds = %1987
  %1560 = add nuw nsw i64 %.0336524, 1
  %exitcond = icmp eq i64 %1560, 16
  br i1 %exitcond, label %.preheader, label %.preheader448, !llvm.loop !66

.preheader:                                       ; preds = %1559
  %.not373525.not = icmp eq i64 %.0334527, 0
  br i1 %.not373525.not, label %._crit_edge, label %.lr.ph

.preheader448:                                    ; preds = %1548, %1559
  %.0336524 = phi i64 [ %1560, %1559 ], [ 0, %1548 ]
  %1561 = load i32, ptr @test_count, align 4, !tbaa !5
  %1562 = add nsw i32 %1561, 1
  store i32 %1562, ptr @test_count, align 4, !tbaa !5
  %1563 = call i32 @s2n_connection_wipe(ptr noundef nonnull %264) #12
  %1564 = icmp eq i32 %1563, -1
  br i1 %1564, label %1565, label %1587

1565:                                             ; preds = %.preheader448
  %1566 = load i32, ptr %1483, 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 = %1565
  %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
  %.not404 = icmp eq i32 %1574, 0
  br i1 %.not404, label %1575, label %1576

1575:                                             ; preds = %1571, %1565
  br label %1576

1576:                                             ; preds = %1571, %1575
  %.str.4.sink1089 = phi ptr [ @.str.4, %1575 ], [ @.str, %1571 ]
  store i32 %1566, ptr %1483, 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 %332, align 4, !tbaa !5
  %1580 = call ptr @s2n_strerror(i32 noundef %1579, ptr noundef nonnull @.str.3) #12
  %1581 = load i32, ptr %332, align 4, !tbaa !5
  %1582 = call ptr @s2n_strerror_debug(i32 noundef %1581, ptr noundef nonnull @.str.3) #12
  %1583 = load i32, ptr %1483, align 4, !tbaa !5
  %1584 = call ptr @strerror(i32 noundef %1583) #12
  %1585 = load i32, ptr %1483, align 4, !tbaa !5
  %1586 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1577, ptr noundef nonnull %.str.4.sink1089, i32 noundef %1578, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.2, i32 noundef 190, ptr noundef %1580, ptr noundef %1582, ptr noundef %1584, i32 noundef %1585) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1587:                                             ; preds = %.preheader448
  store i8 1, ptr %328, align 2, !tbaa !53
  store i8 33, ptr %329, align 1, !tbaa !54
  store i8 33, ptr %330, align 2, !tbaa !55
  store i8 33, ptr %331, align 4, !tbaa !56
  %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 = call i32 @destroy_server_keys(ptr noundef %264)
  %1591 = icmp eq i32 %1590, -1
  br i1 %1591, label %1592, label %1614

1592:                                             ; preds = %1587
  %1593 = load i32, ptr %1483, align 4, !tbaa !5
  %1594 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1595 = call i32 @s2n_print_stacktrace(ptr noundef %1594) #12
  %1596 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1597 = trunc nuw i8 %1596 to i1
  br i1 %1597, label %1598, label %1602

1598:                                             ; preds = %1592
  %1599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1600 = call i32 @fileno(ptr noundef %1599) #12
  %1601 = call i32 @isatty(i32 noundef %1600) #12
  %.not403 = icmp eq i32 %1601, 0
  br i1 %.not403, label %1602, label %1603

1602:                                             ; preds = %1598, %1592
  br label %1603

1603:                                             ; preds = %1598, %1602
  %.str.4.sink1098 = phi ptr [ @.str.4, %1602 ], [ @.str, %1598 ]
  store i32 %1593, ptr %1483, align 4, !tbaa !5
  %1604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1605 = load i32, ptr @test_count, align 4, !tbaa !5
  %1606 = load i32, ptr %332, align 4, !tbaa !5
  %1607 = call ptr @s2n_strerror(i32 noundef %1606, ptr noundef nonnull @.str.3) #12
  %1608 = load i32, ptr %332, align 4, !tbaa !5
  %1609 = call ptr @s2n_strerror_debug(i32 noundef %1608, ptr noundef nonnull @.str.3) #12
  %1610 = load i32, ptr %1483, align 4, !tbaa !5
  %1611 = call ptr @strerror(i32 noundef %1610) #12
  %1612 = load i32, ptr %1483, align 4, !tbaa !5
  %1613 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1604, ptr noundef nonnull %.str.4.sink1098, i32 noundef %1605, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.2, i32 noundef 195, ptr noundef %1607, ptr noundef %1609, ptr noundef %1611, i32 noundef %1612) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1614:                                             ; preds = %1587
  %1615 = load i32, ptr @test_count, align 4, !tbaa !5
  %1616 = add nsw i32 %1615, 1
  store i32 %1616, ptr @test_count, align 4, !tbaa !5
  %1617 = call i32 @setup_server_keys(ptr noundef nonnull %264, ptr noundef nonnull %5)
  %1618 = icmp eq i32 %1617, -1
  br i1 %1618, label %1619, label %1641

1619:                                             ; preds = %1614
  %1620 = load i32, ptr %1483, align 4, !tbaa !5
  %1621 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1622 = call i32 @s2n_print_stacktrace(ptr noundef %1621) #12
  %1623 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1624 = trunc nuw i8 %1623 to i1
  br i1 %1624, label %1625, label %1629

1625:                                             ; preds = %1619
  %1626 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1627 = call i32 @fileno(ptr noundef %1626) #12
  %1628 = call i32 @isatty(i32 noundef %1627) #12
  %.not402 = icmp eq i32 %1628, 0
  br i1 %.not402, label %1629, label %1630

1629:                                             ; preds = %1625, %1619
  br label %1630

1630:                                             ; preds = %1625, %1629
  %.str.4.sink1107 = phi ptr [ @.str.4, %1629 ], [ @.str, %1625 ]
  store i32 %1620, ptr %1483, align 4, !tbaa !5
  %1631 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1632 = load i32, ptr @test_count, align 4, !tbaa !5
  %1633 = load i32, ptr %332, align 4, !tbaa !5
  %1634 = call ptr @s2n_strerror(i32 noundef %1633, ptr noundef nonnull @.str.3) #12
  %1635 = load i32, ptr %332, align 4, !tbaa !5
  %1636 = call ptr @s2n_strerror_debug(i32 noundef %1635, ptr noundef nonnull @.str.3) #12
  %1637 = load i32, ptr %1483, align 4, !tbaa !5
  %1638 = call ptr @strerror(i32 noundef %1637) #12
  %1639 = load i32, ptr %1483, align 4, !tbaa !5
  %1640 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1631, ptr noundef nonnull %.str.4.sink1107, i32 noundef %1632, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.2, i32 noundef 196, ptr noundef %1634, ptr noundef %1636, ptr noundef %1638, i32 noundef %1639) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1641:                                             ; preds = %1614
  %1642 = load i32, ptr @test_count, align 4, !tbaa !5
  %1643 = add nsw i32 %1642, 1
  store i32 %1643, ptr @test_count, align 4, !tbaa !5
  %1644 = call i32 @s2n_record_write(ptr noundef nonnull %264, i8 noundef zeroext 23, ptr noundef nonnull %7) #12
  %1645 = call zeroext i1 @s2n_result_is_ok(i32 %1644)
  br i1 %1645, label %1668, label %1646

1646:                                             ; preds = %1641
  %1647 = load i32, ptr %1483, align 4, !tbaa !5
  %1648 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1649 = call i32 @s2n_print_stacktrace(ptr noundef %1648) #12
  %1650 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1651 = trunc nuw i8 %1650 to i1
  br i1 %1651, label %1652, label %1656

1652:                                             ; preds = %1646
  %1653 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1654 = call i32 @fileno(ptr noundef %1653) #12
  %1655 = call i32 @isatty(i32 noundef %1654) #12
  %.not367 = icmp eq i32 %1655, 0
  br i1 %.not367, label %1656, label %1657

1656:                                             ; preds = %1652, %1646
  br label %1657

1657:                                             ; preds = %1652, %1656
  %.str.4.sink1116 = phi ptr [ @.str.4, %1656 ], [ @.str, %1652 ]
  store i32 %1647, ptr %1483, align 4, !tbaa !5
  %1658 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1659 = load i32, ptr @test_count, align 4, !tbaa !5
  %1660 = load i32, ptr %332, align 4, !tbaa !5
  %1661 = call ptr @s2n_strerror(i32 noundef %1660, ptr noundef nonnull @.str.3) #12
  %1662 = load i32, ptr %332, align 4, !tbaa !5
  %1663 = call ptr @s2n_strerror_debug(i32 noundef %1662, ptr noundef nonnull @.str.3) #12
  %1664 = load i32, ptr %1483, align 4, !tbaa !5
  %1665 = call ptr @strerror(i32 noundef %1664) #12
  %1666 = load i32, ptr %1483, align 4, !tbaa !5
  %1667 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1658, ptr noundef nonnull %.str.4.sink1116, i32 noundef %1659, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.2, i32 noundef 197, ptr noundef %1661, ptr noundef %1663, ptr noundef %1665, i32 noundef %1666) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1668:                                             ; preds = %1641
  %1669 = load i32, ptr @test_count, align 4, !tbaa !5
  %1670 = add nsw i32 %1669, 1
  store i32 %1670, ptr @test_count, align 4, !tbaa !5
  %1671 = call i32 @s2n_stuffer_wipe(ptr noundef nonnull %334) #12
  %1672 = icmp eq i32 %1671, -1
  br i1 %1672, label %1673, label %1695

1673:                                             ; preds = %1668
  %1674 = load i32, ptr %1483, align 4, !tbaa !5
  %1675 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1676 = call i32 @s2n_print_stacktrace(ptr noundef %1675) #12
  %1677 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1678 = trunc nuw i8 %1677 to i1
  br i1 %1678, label %1679, label %1683

1679:                                             ; preds = %1673
  %1680 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1681 = call i32 @fileno(ptr noundef %1680) #12
  %1682 = call i32 @isatty(i32 noundef %1681) #12
  %.not401 = icmp eq i32 %1682, 0
  br i1 %.not401, label %1683, label %1684

1683:                                             ; preds = %1679, %1673
  br label %1684

1684:                                             ; preds = %1679, %1683
  %.str.4.sink1125 = phi ptr [ @.str.4, %1683 ], [ @.str, %1679 ]
  store i32 %1674, ptr %1483, align 4, !tbaa !5
  %1685 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1686 = load i32, ptr @test_count, align 4, !tbaa !5
  %1687 = load i32, ptr %332, align 4, !tbaa !5
  %1688 = call ptr @s2n_strerror(i32 noundef %1687, ptr noundef nonnull @.str.3) #12
  %1689 = load i32, ptr %332, align 4, !tbaa !5
  %1690 = call ptr @s2n_strerror_debug(i32 noundef %1689, ptr noundef nonnull @.str.3) #12
  %1691 = load i32, ptr %1483, align 4, !tbaa !5
  %1692 = call ptr @strerror(i32 noundef %1691) #12
  %1693 = load i32, ptr %1483, align 4, !tbaa !5
  %1694 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1685, ptr noundef nonnull %.str.4.sink1125, i32 noundef %1686, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.2, i32 noundef 200, ptr noundef %1688, ptr noundef %1690, ptr noundef %1692, i32 noundef %1693) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1695:                                             ; preds = %1668
  %1696 = load i32, ptr @test_count, align 4, !tbaa !5
  %1697 = add nsw i32 %1696, 1
  store i32 %1697, ptr @test_count, align 4, !tbaa !5
  %1698 = call i32 @s2n_stuffer_wipe(ptr noundef nonnull %335) #12
  %1699 = icmp eq i32 %1698, -1
  br i1 %1699, label %1700, label %1722

1700:                                             ; preds = %1695
  %1701 = load i32, ptr %1483, align 4, !tbaa !5
  %1702 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1703 = call i32 @s2n_print_stacktrace(ptr noundef %1702) #12
  %1704 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1705 = trunc nuw i8 %1704 to i1
  br i1 %1705, label %1706, label %1710

1706:                                             ; preds = %1700
  %1707 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1708 = call i32 @fileno(ptr noundef %1707) #12
  %1709 = call i32 @isatty(i32 noundef %1708) #12
  %.not400 = icmp eq i32 %1709, 0
  br i1 %.not400, label %1710, label %1711

1710:                                             ; preds = %1706, %1700
  br label %1711

1711:                                             ; preds = %1706, %1710
  %.str.4.sink1134 = phi ptr [ @.str.4, %1710 ], [ @.str, %1706 ]
  store i32 %1701, ptr %1483, align 4, !tbaa !5
  %1712 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1713 = load i32, ptr @test_count, align 4, !tbaa !5
  %1714 = load i32, ptr %332, align 4, !tbaa !5
  %1715 = call ptr @s2n_strerror(i32 noundef %1714, ptr noundef nonnull @.str.3) #12
  %1716 = load i32, ptr %332, align 4, !tbaa !5
  %1717 = call ptr @s2n_strerror_debug(i32 noundef %1716, ptr noundef nonnull @.str.3) #12
  %1718 = load i32, ptr %1483, align 4, !tbaa !5
  %1719 = call ptr @strerror(i32 noundef %1718) #12
  %1720 = load i32, ptr %1483, align 4, !tbaa !5
  %1721 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1712, ptr noundef nonnull %.str.4.sink1134, i32 noundef %1713, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.2, i32 noundef 201, ptr noundef %1715, ptr noundef %1717, ptr noundef %1719, i32 noundef %1720) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1722:                                             ; preds = %1695
  %1723 = load i32, ptr @test_count, align 4, !tbaa !5
  %1724 = add nsw i32 %1723, 1
  store i32 %1724, ptr @test_count, align 4, !tbaa !5
  %1725 = call i32 @s2n_stuffer_copy(ptr noundef nonnull %333, ptr noundef nonnull %335, i32 noundef 5) #12
  %1726 = icmp eq i32 %1725, -1
  br i1 %1726, label %1727, label %1749

1727:                                             ; preds = %1722
  %1728 = load i32, ptr %1483, align 4, !tbaa !5
  %1729 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1730 = call i32 @s2n_print_stacktrace(ptr noundef %1729) #12
  %1731 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1732 = trunc nuw i8 %1731 to i1
  br i1 %1732, label %1733, label %1737

1733:                                             ; preds = %1727
  %1734 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1735 = call i32 @fileno(ptr noundef %1734) #12
  %1736 = call i32 @isatty(i32 noundef %1735) #12
  %.not399 = icmp eq i32 %1736, 0
  br i1 %.not399, label %1737, label %1738

1737:                                             ; preds = %1733, %1727
  br label %1738

1738:                                             ; preds = %1733, %1737
  %.str.4.sink1143 = phi ptr [ @.str.4, %1737 ], [ @.str, %1733 ]
  store i32 %1728, ptr %1483, align 4, !tbaa !5
  %1739 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1740 = load i32, ptr @test_count, align 4, !tbaa !5
  %1741 = load i32, ptr %332, align 4, !tbaa !5
  %1742 = call ptr @s2n_strerror(i32 noundef %1741, ptr noundef nonnull @.str.3) #12
  %1743 = load i32, ptr %332, align 4, !tbaa !5
  %1744 = call ptr @s2n_strerror_debug(i32 noundef %1743, ptr noundef nonnull @.str.3) #12
  %1745 = load i32, ptr %1483, align 4, !tbaa !5
  %1746 = call ptr @strerror(i32 noundef %1745) #12
  %1747 = load i32, ptr %1483, align 4, !tbaa !5
  %1748 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1739, ptr noundef nonnull %.str.4.sink1143, i32 noundef %1740, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.2, i32 noundef 202, ptr noundef %1742, ptr noundef %1744, ptr noundef %1746, i32 noundef %1747) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1749:                                             ; preds = %1722
  %1750 = load i32, ptr @test_count, align 4, !tbaa !5
  %1751 = add nsw i32 %1750, 1
  store i32 %1751, ptr @test_count, align 4, !tbaa !5
  %1752 = load i32, ptr %336, align 4, !tbaa !61
  %1753 = load i32, ptr %337, align 8, !tbaa !62
  %1754 = sub i32 %1752, %1753
  %1755 = call i32 @s2n_stuffer_copy(ptr noundef nonnull %333, ptr noundef nonnull %334, i32 noundef %1754) #12
  %1756 = icmp eq i32 %1755, -1
  br i1 %1756, label %1757, label %1779

1757:                                             ; preds = %1749
  %1758 = load i32, ptr %1483, align 4, !tbaa !5
  %1759 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1760 = call i32 @s2n_print_stacktrace(ptr noundef %1759) #12
  %1761 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1762 = trunc nuw i8 %1761 to i1
  br i1 %1762, label %1763, label %1767

1763:                                             ; preds = %1757
  %1764 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1765 = call i32 @fileno(ptr noundef %1764) #12
  %1766 = call i32 @isatty(i32 noundef %1765) #12
  %.not398 = icmp eq i32 %1766, 0
  br i1 %.not398, label %1767, label %1768

1767:                                             ; preds = %1763, %1757
  br label %1768

1768:                                             ; preds = %1763, %1767
  %.str.4.sink1152 = phi ptr [ @.str.4, %1767 ], [ @.str, %1763 ]
  store i32 %1758, ptr %1483, align 4, !tbaa !5
  %1769 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1770 = load i32, ptr @test_count, align 4, !tbaa !5
  %1771 = load i32, ptr %332, align 4, !tbaa !5
  %1772 = call ptr @s2n_strerror(i32 noundef %1771, ptr noundef nonnull @.str.3) #12
  %1773 = load i32, ptr %332, align 4, !tbaa !5
  %1774 = call ptr @s2n_strerror_debug(i32 noundef %1773, ptr noundef nonnull @.str.3) #12
  %1775 = load i32, ptr %1483, align 4, !tbaa !5
  %1776 = call ptr @strerror(i32 noundef %1775) #12
  %1777 = load i32, ptr %1483, align 4, !tbaa !5
  %1778 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1769, ptr noundef nonnull %.str.4.sink1152, i32 noundef %1770, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.2, i32 noundef 203, ptr noundef %1772, ptr noundef %1774, ptr noundef %1776, i32 noundef %1777) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1779:                                             ; preds = %1749
  %1780 = load ptr, ptr %334, align 8, !tbaa !68
  %1781 = load i32, ptr %338, align 4, !tbaa !69
  %1782 = load i32, ptr %339, align 8, !tbaa !70
  %1783 = sub i32 %1781, %1782
  %1784 = zext i32 %1783 to i64
  %1785 = xor i64 %.0336524, -1
  %1786 = getelementptr i8, ptr %1780, i64 %1785
  %1787 = getelementptr i8, ptr %1786, i64 %1784
  %1788 = load i8, ptr %1787, align 1, !tbaa !59
  %1789 = add i8 %1788, 1
  store i8 %1789, ptr %1787, align 1, !tbaa !59
  %1790 = load i32, ptr @test_count, align 4, !tbaa !5
  %1791 = add nsw i32 %1790, 1
  store i32 %1791, ptr @test_count, align 4, !tbaa !5
  %1792 = call i32 @s2n_record_header_parse(ptr noundef nonnull %264, ptr noundef nonnull %8, ptr noundef nonnull %9) #12
  %1793 = icmp eq i32 %1792, -1
  br i1 %1793, label %1794, label %1816

1794:                                             ; preds = %1779
  %1795 = load i32, ptr %1483, align 4, !tbaa !5
  %1796 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1797 = call i32 @s2n_print_stacktrace(ptr noundef %1796) #12
  %1798 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1799 = trunc nuw i8 %1798 to i1
  br i1 %1799, label %1800, label %1804

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

1804:                                             ; preds = %1800, %1794
  br label %1805

1805:                                             ; preds = %1800, %1804
  %.str.4.sink1161 = phi ptr [ @.str.4, %1804 ], [ @.str, %1800 ]
  store i32 %1795, ptr %1483, align 4, !tbaa !5
  %1806 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1807 = load i32, ptr @test_count, align 4, !tbaa !5
  %1808 = load i32, ptr %332, align 4, !tbaa !5
  %1809 = call ptr @s2n_strerror(i32 noundef %1808, ptr noundef nonnull @.str.3) #12
  %1810 = load i32, ptr %332, align 4, !tbaa !5
  %1811 = call ptr @s2n_strerror_debug(i32 noundef %1810, ptr noundef nonnull @.str.3) #12
  %1812 = load i32, ptr %1483, align 4, !tbaa !5
  %1813 = call ptr @strerror(i32 noundef %1812) #12
  %1814 = load i32, ptr %1483, align 4, !tbaa !5
  %1815 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1806, ptr noundef nonnull %.str.4.sink1161, i32 noundef %1807, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.2, i32 noundef 205, ptr noundef %1809, ptr noundef %1811, ptr noundef %1813, i32 noundef %1814) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1816:                                             ; preds = %1779
  %1817 = load i32, ptr @test_count, align 4, !tbaa !5
  %1818 = add nsw i32 %1817, 1
  store i32 %1818, ptr @test_count, align 4, !tbaa !5
  %1819 = call i32 @s2n_record_parse(ptr noundef nonnull %264) #12
  %1820 = icmp eq i32 %1819, -1
  br i1 %1820, label %1843, label %1821

1821:                                             ; preds = %1816
  %1822 = load i32, ptr %1483, align 4, !tbaa !5
  %1823 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1824 = call i32 @s2n_print_stacktrace(ptr noundef %1823) #12
  %1825 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1826 = trunc nuw i8 %1825 to i1
  br i1 %1826, label %1827, label %1831

1827:                                             ; preds = %1821
  %1828 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1829 = call i32 @fileno(ptr noundef %1828) #12
  %1830 = call i32 @isatty(i32 noundef %1829) #12
  %.not368 = icmp eq i32 %1830, 0
  br i1 %.not368, label %1831, label %1832

1831:                                             ; preds = %1827, %1821
  br label %1832

1832:                                             ; preds = %1827, %1831
  %.str.4.sink1170 = phi ptr [ @.str.4, %1831 ], [ @.str, %1827 ]
  store i32 %1822, ptr %1483, align 4, !tbaa !5
  %1833 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1834 = load i32, ptr @test_count, align 4, !tbaa !5
  %1835 = load i32, ptr %332, align 4, !tbaa !5
  %1836 = call ptr @s2n_strerror(i32 noundef %1835, ptr noundef nonnull @.str.3) #12
  %1837 = load i32, ptr %332, align 4, !tbaa !5
  %1838 = call ptr @s2n_strerror_debug(i32 noundef %1837, ptr noundef nonnull @.str.3) #12
  %1839 = load i32, ptr %1483, align 4, !tbaa !5
  %1840 = call ptr @strerror(i32 noundef %1839) #12
  %1841 = load i32, ptr %1483, align 4, !tbaa !5
  %1842 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1833, ptr noundef nonnull %.str.4.sink1170, i32 noundef %1834, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.2, i32 noundef 206, ptr noundef %1836, ptr noundef %1838, ptr noundef %1840, i32 noundef %1841) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1843:                                             ; preds = %1816
  %1844 = load i32, ptr @test_count, align 4, !tbaa !5
  %1845 = add nsw i32 %1844, 1
  store i32 %1845, ptr @test_count, align 4, !tbaa !5
  %1846 = load i32, ptr %332, align 4, !tbaa !5
  %1847 = icmp eq i32 %1846, 0
  br i1 %1847, label %1848, label %1870

1848:                                             ; preds = %1843
  %1849 = load i32, ptr %1483, align 4, !tbaa !5
  %1850 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1851 = call i32 @s2n_print_stacktrace(ptr noundef %1850) #12
  %1852 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1853 = trunc nuw i8 %1852 to i1
  br i1 %1853, label %1854, label %1858

1854:                                             ; preds = %1848
  %1855 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1856 = call i32 @fileno(ptr noundef %1855) #12
  %1857 = call i32 @isatty(i32 noundef %1856) #12
  %.not396 = icmp eq i32 %1857, 0
  br i1 %.not396, label %1858, label %1859

1858:                                             ; preds = %1854, %1848
  br label %1859

1859:                                             ; preds = %1854, %1858
  %.str.4.sink1179 = phi ptr [ @.str.4, %1858 ], [ @.str, %1854 ]
  store i32 %1849, ptr %1483, align 4, !tbaa !5
  %1860 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1861 = load i32, ptr @test_count, align 4, !tbaa !5
  %1862 = load i32, ptr %332, align 4, !tbaa !5
  %1863 = call ptr @s2n_strerror(i32 noundef %1862, ptr noundef nonnull @.str.3) #12
  %1864 = load i32, ptr %332, align 4, !tbaa !5
  %1865 = call ptr @s2n_strerror_debug(i32 noundef %1864, ptr noundef nonnull @.str.3) #12
  %1866 = load i32, ptr %1483, align 4, !tbaa !5
  %1867 = call ptr @strerror(i32 noundef %1866) #12
  %1868 = load i32, ptr %1483, align 4, !tbaa !5
  %1869 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1860, ptr noundef nonnull %.str.4.sink1179, i32 noundef %1861, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.2, i32 noundef 206, ptr noundef %1863, ptr noundef %1865, ptr noundef %1867, i32 noundef %1868) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1870:                                             ; preds = %1843
  %1871 = add nsw i32 %1844, 2
  store i32 %1871, ptr @test_count, align 4, !tbaa !5
  %1872 = call ptr @s2n_strerror_debug(i32 noundef %1846, ptr noundef nonnull @.str.3) #12
  %1873 = icmp eq ptr %1872, null
  br i1 %1873, label %1874, label %1896

1874:                                             ; preds = %1870
  %1875 = load i32, ptr %1483, align 4, !tbaa !5
  %1876 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1877 = call i32 @s2n_print_stacktrace(ptr noundef %1876) #12
  %1878 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1879 = trunc nuw i8 %1878 to i1
  br i1 %1879, label %1880, label %1884

1880:                                             ; preds = %1874
  %1881 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1882 = call i32 @fileno(ptr noundef %1881) #12
  %1883 = call i32 @isatty(i32 noundef %1882) #12
  %.not395 = icmp eq i32 %1883, 0
  br i1 %.not395, label %1884, label %1885

1884:                                             ; preds = %1880, %1874
  br label %1885

1885:                                             ; preds = %1880, %1884
  %.str.4.sink1188 = phi ptr [ @.str.4, %1884 ], [ @.str, %1880 ]
  store i32 %1875, ptr %1483, align 4, !tbaa !5
  %1886 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1887 = load i32, ptr @test_count, align 4, !tbaa !5
  %1888 = load i32, ptr %332, align 4, !tbaa !5
  %1889 = call ptr @s2n_strerror(i32 noundef %1888, ptr noundef nonnull @.str.3) #12
  %1890 = load i32, ptr %332, align 4, !tbaa !5
  %1891 = call ptr @s2n_strerror_debug(i32 noundef %1890, ptr noundef nonnull @.str.3) #12
  %1892 = load i32, ptr %1483, align 4, !tbaa !5
  %1893 = call ptr @strerror(i32 noundef %1892) #12
  %1894 = load i32, ptr %1483, align 4, !tbaa !5
  %1895 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1886, ptr noundef nonnull %.str.4.sink1188, i32 noundef %1887, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.2, i32 noundef 206, ptr noundef %1889, ptr noundef %1891, ptr noundef %1893, i32 noundef %1894) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1896:                                             ; preds = %1870
  store i32 0, ptr %332, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %1483, align 4, !tbaa !5
  %1897 = load i32, ptr @test_count, align 4, !tbaa !5
  %1898 = add nsw i32 %1897, 1
  store i32 %1898, ptr @test_count, align 4, !tbaa !5
  %1899 = load i8, ptr %8, align 1, !tbaa !59
  %1900 = icmp eq i8 %1899, 23
  br i1 %1900, label %1923, label %1901

1901:                                             ; preds = %1896
  %1902 = load i32, ptr %1483, align 4, !tbaa !5
  %1903 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1904 = call i32 @s2n_print_stacktrace(ptr noundef %1903) #12
  %1905 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1906 = trunc nuw i8 %1905 to i1
  br i1 %1906, label %1907, label %1911

1907:                                             ; preds = %1901
  %1908 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1909 = call i32 @fileno(ptr noundef %1908) #12
  %1910 = call i32 @isatty(i32 noundef %1909) #12
  %.not369 = icmp eq i32 %1910, 0
  br i1 %.not369, label %1911, label %1912

1911:                                             ; preds = %1907, %1901
  br label %1912

1912:                                             ; preds = %1907, %1911
  %.str.4.sink1197 = phi ptr [ @.str.4, %1911 ], [ @.str, %1907 ]
  store i32 %1902, ptr %1483, align 4, !tbaa !5
  %1913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1914 = load i32, ptr @test_count, align 4, !tbaa !5
  %1915 = load i32, ptr %332, align 4, !tbaa !5
  %1916 = call ptr @s2n_strerror(i32 noundef %1915, ptr noundef nonnull @.str.3) #12
  %1917 = load i32, ptr %332, align 4, !tbaa !5
  %1918 = call ptr @s2n_strerror_debug(i32 noundef %1917, ptr noundef nonnull @.str.3) #12
  %1919 = load i32, ptr %1483, align 4, !tbaa !5
  %1920 = call ptr @strerror(i32 noundef %1919) #12
  %1921 = load i32, ptr %1483, align 4, !tbaa !5
  %1922 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1913, ptr noundef nonnull %.str.4.sink1197, i32 noundef %1914, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.2, i32 noundef 207, ptr noundef %1916, ptr noundef %1918, ptr noundef %1920, i32 noundef %1921) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1923:                                             ; preds = %1896
  %1924 = add nsw i32 %1897, 2
  store i32 %1924, ptr @test_count, align 4, !tbaa !5
  %1925 = call i32 @s2n_stuffer_wipe(ptr noundef nonnull %335) #12
  %1926 = icmp eq i32 %1925, -1
  br i1 %1926, label %1927, label %1949

1927:                                             ; preds = %1923
  %1928 = load i32, ptr %1483, align 4, !tbaa !5
  %1929 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1930 = call i32 @s2n_print_stacktrace(ptr noundef %1929) #12
  %1931 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1932 = trunc nuw i8 %1931 to i1
  br i1 %1932, label %1933, label %1937

1933:                                             ; preds = %1927
  %1934 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1935 = call i32 @fileno(ptr noundef %1934) #12
  %1936 = call i32 @isatty(i32 noundef %1935) #12
  %.not394 = icmp eq i32 %1936, 0
  br i1 %.not394, label %1937, label %1938

1937:                                             ; preds = %1933, %1927
  br label %1938

1938:                                             ; preds = %1933, %1937
  %.str.4.sink1206 = phi ptr [ @.str.4, %1937 ], [ @.str, %1933 ]
  store i32 %1928, ptr %1483, align 4, !tbaa !5
  %1939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1940 = load i32, ptr @test_count, align 4, !tbaa !5
  %1941 = load i32, ptr %332, align 4, !tbaa !5
  %1942 = call ptr @s2n_strerror(i32 noundef %1941, ptr noundef nonnull @.str.3) #12
  %1943 = load i32, ptr %332, align 4, !tbaa !5
  %1944 = call ptr @s2n_strerror_debug(i32 noundef %1943, ptr noundef nonnull @.str.3) #12
  %1945 = load i32, ptr %1483, align 4, !tbaa !5
  %1946 = call ptr @strerror(i32 noundef %1945) #12
  %1947 = load i32, ptr %1483, align 4, !tbaa !5
  %1948 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1939, ptr noundef nonnull %.str.4.sink1206, i32 noundef %1940, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.2, i32 noundef 209, ptr noundef %1942, ptr noundef %1944, ptr noundef %1946, i32 noundef %1947) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1949:                                             ; preds = %1923
  %1950 = load i32, ptr @test_count, align 4, !tbaa !5
  %1951 = add nsw i32 %1950, 1
  store i32 %1951, ptr @test_count, align 4, !tbaa !5
  %1952 = call i32 @s2n_stuffer_wipe(ptr noundef nonnull %334) #12
  %1953 = icmp eq i32 %1952, -1
  br i1 %1953, label %1954, label %1976

1954:                                             ; preds = %1949
  %1955 = load i32, ptr %1483, align 4, !tbaa !5
  %1956 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1957 = call i32 @s2n_print_stacktrace(ptr noundef %1956) #12
  %1958 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1959 = trunc nuw i8 %1958 to i1
  br i1 %1959, label %1960, label %1964

1960:                                             ; preds = %1954
  %1961 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1962 = call i32 @fileno(ptr noundef %1961) #12
  %1963 = call i32 @isatty(i32 noundef %1962) #12
  %.not393 = icmp eq i32 %1963, 0
  br i1 %.not393, label %1964, label %1965

1964:                                             ; preds = %1960, %1954
  br label %1965

1965:                                             ; preds = %1960, %1964
  %.str.4.sink1215 = phi ptr [ @.str.4, %1964 ], [ @.str, %1960 ]
  store i32 %1955, ptr %1483, align 4, !tbaa !5
  %1966 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1967 = load i32, ptr @test_count, align 4, !tbaa !5
  %1968 = load i32, ptr %332, align 4, !tbaa !5
  %1969 = call ptr @s2n_strerror(i32 noundef %1968, ptr noundef nonnull @.str.3) #12
  %1970 = load i32, ptr %332, align 4, !tbaa !5
  %1971 = call ptr @s2n_strerror_debug(i32 noundef %1970, ptr noundef nonnull @.str.3) #12
  %1972 = load i32, ptr %1483, align 4, !tbaa !5
  %1973 = call ptr @strerror(i32 noundef %1972) #12
  %1974 = load i32, ptr %1483, align 4, !tbaa !5
  %1975 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1966, ptr noundef nonnull %.str.4.sink1215, i32 noundef %1967, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.2, i32 noundef 210, ptr noundef %1969, ptr noundef %1971, ptr noundef %1973, i32 noundef %1974) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1976:                                             ; preds = %1949
  %1977 = load ptr, ptr %320, align 8, !tbaa !17
  %1978 = load ptr, ptr %1977, align 8, !tbaa !46
  %1979 = getelementptr inbounds i8, ptr %1978, i64 48
  %1980 = load ptr, ptr %1979, align 8, !tbaa !51
  %1981 = load ptr, ptr %1980, align 8, !tbaa !57
  %1982 = getelementptr inbounds i8, ptr %1981, i64 88
  %1983 = load ptr, ptr %1982, align 8, !tbaa !65
  %1984 = getelementptr inbounds i8, ptr %1977, i64 16
  %1985 = call i32 %1983(ptr noundef nonnull %1984) #12
  %1986 = call zeroext i1 @s2n_result_is_ok(i32 %1985)
  br i1 %1986, label %1987, label %.thread

1987:                                             ; preds = %1976
  %1988 = load ptr, ptr %320, align 8, !tbaa !17
  %1989 = load ptr, ptr %1988, align 8, !tbaa !46
  %1990 = getelementptr inbounds i8, ptr %1989, i64 48
  %1991 = load ptr, ptr %1990, align 8, !tbaa !51
  %1992 = load ptr, ptr %1991, align 8, !tbaa !57
  %1993 = getelementptr inbounds i8, ptr %1992, i64 88
  %1994 = load ptr, ptr %1993, align 8, !tbaa !65
  %1995 = getelementptr inbounds i8, ptr %1988, i64 8
  %1996 = call i32 %1994(ptr noundef nonnull %1995) #12
  %1997 = call zeroext i1 @s2n_result_is_ok(i32 %1996)
  br i1 %1997, label %1559, label %.thread

1998:                                             ; preds = %2420
  %1999 = add nuw nsw i64 %.0337526, 1
  %exitcond564.not = icmp eq i64 %1999, %.0334527
  br i1 %exitcond564.not, label %._crit_edge, label %.lr.ph, !llvm.loop !71

.lr.ph:                                           ; preds = %.preheader, %1998
  %.0337526 = phi i64 [ %1999, %1998 ], [ 0, %.preheader ]
  %2000 = load i32, ptr @test_count, align 4, !tbaa !5
  %2001 = add nsw i32 %2000, 1
  store i32 %2001, ptr @test_count, align 4, !tbaa !5
  %2002 = call i32 @s2n_connection_wipe(ptr noundef nonnull %264) #12
  %2003 = icmp eq i32 %2002, -1
  br i1 %2003, label %2004, label %2026

2004:                                             ; preds = %.lr.ph
  %2005 = load i32, ptr %1483, align 4, !tbaa !5
  %2006 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2007 = call i32 @s2n_print_stacktrace(ptr noundef %2006) #12
  %2008 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2009 = trunc nuw i8 %2008 to i1
  br i1 %2009, label %2010, label %2014

2010:                                             ; preds = %2004
  %2011 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2012 = call i32 @fileno(ptr noundef %2011) #12
  %2013 = call i32 @isatty(i32 noundef %2012) #12
  %.not392 = icmp eq i32 %2013, 0
  br i1 %.not392, label %2014, label %2015

2014:                                             ; preds = %2010, %2004
  br label %2015

2015:                                             ; preds = %2010, %2014
  %.str.4.sink1224 = phi ptr [ @.str.4, %2014 ], [ @.str, %2010 ]
  store i32 %2005, ptr %1483, align 4, !tbaa !5
  %2016 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2017 = load i32, ptr @test_count, align 4, !tbaa !5
  %2018 = load i32, ptr %332, align 4, !tbaa !5
  %2019 = call ptr @s2n_strerror(i32 noundef %2018, ptr noundef nonnull @.str.3) #12
  %2020 = load i32, ptr %332, align 4, !tbaa !5
  %2021 = call ptr @s2n_strerror_debug(i32 noundef %2020, ptr noundef nonnull @.str.3) #12
  %2022 = load i32, ptr %1483, align 4, !tbaa !5
  %2023 = call ptr @strerror(i32 noundef %2022) #12
  %2024 = load i32, ptr %1483, align 4, !tbaa !5
  %2025 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2016, ptr noundef nonnull %.str.4.sink1224, i32 noundef %2017, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.2, i32 noundef 217, ptr noundef %2019, ptr noundef %2021, ptr noundef %2023, i32 noundef %2024) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2026:                                             ; preds = %.lr.ph
  store i8 1, ptr %328, align 2, !tbaa !53
  store i8 33, ptr %329, align 1, !tbaa !54
  store i8 33, ptr %330, align 2, !tbaa !55
  store i8 33, ptr %331, align 4, !tbaa !56
  %2027 = load i32, ptr @test_count, align 4, !tbaa !5
  %2028 = add nsw i32 %2027, 1
  store i32 %2028, ptr @test_count, align 4, !tbaa !5
  %2029 = call i32 @destroy_server_keys(ptr noundef %264)
  %2030 = icmp eq i32 %2029, -1
  br i1 %2030, label %2031, label %2053

2031:                                             ; preds = %2026
  %2032 = load i32, ptr %1483, align 4, !tbaa !5
  %2033 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2034 = call i32 @s2n_print_stacktrace(ptr noundef %2033) #12
  %2035 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2036 = trunc nuw i8 %2035 to i1
  br i1 %2036, label %2037, label %2041

2037:                                             ; preds = %2031
  %2038 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2039 = call i32 @fileno(ptr noundef %2038) #12
  %2040 = call i32 @isatty(i32 noundef %2039) #12
  %.not391 = icmp eq i32 %2040, 0
  br i1 %.not391, label %2041, label %2042

2041:                                             ; preds = %2037, %2031
  br label %2042

2042:                                             ; preds = %2037, %2041
  %.str.4.sink1233 = phi ptr [ @.str.4, %2041 ], [ @.str, %2037 ]
  store i32 %2032, ptr %1483, align 4, !tbaa !5
  %2043 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2044 = load i32, ptr @test_count, align 4, !tbaa !5
  %2045 = load i32, ptr %332, align 4, !tbaa !5
  %2046 = call ptr @s2n_strerror(i32 noundef %2045, ptr noundef nonnull @.str.3) #12
  %2047 = load i32, ptr %332, align 4, !tbaa !5
  %2048 = call ptr @s2n_strerror_debug(i32 noundef %2047, ptr noundef nonnull @.str.3) #12
  %2049 = load i32, ptr %1483, align 4, !tbaa !5
  %2050 = call ptr @strerror(i32 noundef %2049) #12
  %2051 = load i32, ptr %1483, align 4, !tbaa !5
  %2052 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2043, ptr noundef nonnull %.str.4.sink1233, i32 noundef %2044, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.2, i32 noundef 222, ptr noundef %2046, ptr noundef %2048, ptr noundef %2050, i32 noundef %2051) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2053:                                             ; preds = %2026
  %2054 = load i32, ptr @test_count, align 4, !tbaa !5
  %2055 = add nsw i32 %2054, 1
  store i32 %2055, ptr @test_count, align 4, !tbaa !5
  %2056 = call i32 @setup_server_keys(ptr noundef nonnull %264, ptr noundef nonnull %5)
  %2057 = icmp eq i32 %2056, -1
  br i1 %2057, label %2058, label %2080

2058:                                             ; preds = %2053
  %2059 = load i32, ptr %1483, align 4, !tbaa !5
  %2060 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2061 = call i32 @s2n_print_stacktrace(ptr noundef %2060) #12
  %2062 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2063 = trunc nuw i8 %2062 to i1
  br i1 %2063, label %2064, label %2068

2064:                                             ; preds = %2058
  %2065 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2066 = call i32 @fileno(ptr noundef %2065) #12
  %2067 = call i32 @isatty(i32 noundef %2066) #12
  %.not390 = icmp eq i32 %2067, 0
  br i1 %.not390, label %2068, label %2069

2068:                                             ; preds = %2064, %2058
  br label %2069

2069:                                             ; preds = %2064, %2068
  %.str.4.sink1242 = phi ptr [ @.str.4, %2068 ], [ @.str, %2064 ]
  store i32 %2059, ptr %1483, align 4, !tbaa !5
  %2070 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2071 = load i32, ptr @test_count, align 4, !tbaa !5
  %2072 = load i32, ptr %332, align 4, !tbaa !5
  %2073 = call ptr @s2n_strerror(i32 noundef %2072, ptr noundef nonnull @.str.3) #12
  %2074 = load i32, ptr %332, align 4, !tbaa !5
  %2075 = call ptr @s2n_strerror_debug(i32 noundef %2074, ptr noundef nonnull @.str.3) #12
  %2076 = load i32, ptr %1483, align 4, !tbaa !5
  %2077 = call ptr @strerror(i32 noundef %2076) #12
  %2078 = load i32, ptr %1483, align 4, !tbaa !5
  %2079 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2070, ptr noundef nonnull %.str.4.sink1242, i32 noundef %2071, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.2, i32 noundef 223, ptr noundef %2073, ptr noundef %2075, ptr noundef %2077, i32 noundef %2078) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2080:                                             ; preds = %2053
  %2081 = load i32, ptr @test_count, align 4, !tbaa !5
  %2082 = add nsw i32 %2081, 1
  store i32 %2082, ptr @test_count, align 4, !tbaa !5
  %2083 = call i32 @s2n_record_write(ptr noundef nonnull %264, i8 noundef zeroext 23, ptr noundef nonnull %7) #12
  %2084 = call zeroext i1 @s2n_result_is_ok(i32 %2083)
  br i1 %2084, label %2107, label %2085

2085:                                             ; preds = %2080
  %2086 = load i32, ptr %1483, align 4, !tbaa !5
  %2087 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2088 = call i32 @s2n_print_stacktrace(ptr noundef %2087) #12
  %2089 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2090 = trunc nuw i8 %2089 to i1
  br i1 %2090, label %2091, label %2095

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

2095:                                             ; preds = %2091, %2085
  br label %2096

2096:                                             ; preds = %2091, %2095
  %.str.4.sink1251 = phi ptr [ @.str.4, %2095 ], [ @.str, %2091 ]
  store i32 %2086, ptr %1483, align 4, !tbaa !5
  %2097 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2098 = load i32, ptr @test_count, align 4, !tbaa !5
  %2099 = load i32, ptr %332, align 4, !tbaa !5
  %2100 = call ptr @s2n_strerror(i32 noundef %2099, ptr noundef nonnull @.str.3) #12
  %2101 = load i32, ptr %332, align 4, !tbaa !5
  %2102 = call ptr @s2n_strerror_debug(i32 noundef %2101, ptr noundef nonnull @.str.3) #12
  %2103 = load i32, ptr %1483, align 4, !tbaa !5
  %2104 = call ptr @strerror(i32 noundef %2103) #12
  %2105 = load i32, ptr %1483, align 4, !tbaa !5
  %2106 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2097, ptr noundef nonnull %.str.4.sink1251, i32 noundef %2098, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.2, i32 noundef 224, ptr noundef %2100, ptr noundef %2102, ptr noundef %2104, i32 noundef %2105) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2107:                                             ; preds = %2080
  %2108 = load i32, ptr @test_count, align 4, !tbaa !5
  %2109 = add nsw i32 %2108, 1
  store i32 %2109, ptr @test_count, align 4, !tbaa !5
  %2110 = call i32 @s2n_stuffer_wipe(ptr noundef nonnull %334) #12
  %2111 = icmp eq i32 %2110, -1
  br i1 %2111, label %2112, label %2134

2112:                                             ; preds = %2107
  %2113 = load i32, ptr %1483, align 4, !tbaa !5
  %2114 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2115 = call i32 @s2n_print_stacktrace(ptr noundef %2114) #12
  %2116 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2117 = trunc nuw i8 %2116 to i1
  br i1 %2117, label %2118, label %2122

2118:                                             ; preds = %2112
  %2119 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2120 = call i32 @fileno(ptr noundef %2119) #12
  %2121 = call i32 @isatty(i32 noundef %2120) #12
  %.not389 = icmp eq i32 %2121, 0
  br i1 %.not389, label %2122, label %2123

2122:                                             ; preds = %2118, %2112
  br label %2123

2123:                                             ; preds = %2118, %2122
  %.str.4.sink1260 = phi ptr [ @.str.4, %2122 ], [ @.str, %2118 ]
  store i32 %2113, ptr %1483, align 4, !tbaa !5
  %2124 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2125 = load i32, ptr @test_count, align 4, !tbaa !5
  %2126 = load i32, ptr %332, align 4, !tbaa !5
  %2127 = call ptr @s2n_strerror(i32 noundef %2126, ptr noundef nonnull @.str.3) #12
  %2128 = load i32, ptr %332, align 4, !tbaa !5
  %2129 = call ptr @s2n_strerror_debug(i32 noundef %2128, ptr noundef nonnull @.str.3) #12
  %2130 = load i32, ptr %1483, align 4, !tbaa !5
  %2131 = call ptr @strerror(i32 noundef %2130) #12
  %2132 = load i32, ptr %1483, align 4, !tbaa !5
  %2133 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2124, ptr noundef nonnull %.str.4.sink1260, i32 noundef %2125, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.2, i32 noundef 227, ptr noundef %2127, ptr noundef %2129, ptr noundef %2131, i32 noundef %2132) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2134:                                             ; preds = %2107
  %2135 = load i32, ptr @test_count, align 4, !tbaa !5
  %2136 = add nsw i32 %2135, 1
  store i32 %2136, ptr @test_count, align 4, !tbaa !5
  %2137 = call i32 @s2n_stuffer_wipe(ptr noundef nonnull %335) #12
  %2138 = icmp eq i32 %2137, -1
  br i1 %2138, label %2139, label %2161

2139:                                             ; preds = %2134
  %2140 = load i32, ptr %1483, 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 = %2139
  %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
  %.not388 = icmp eq i32 %2148, 0
  br i1 %.not388, label %2149, label %2150

2149:                                             ; preds = %2145, %2139
  br label %2150

2150:                                             ; preds = %2145, %2149
  %.str.4.sink1269 = phi ptr [ @.str.4, %2149 ], [ @.str, %2145 ]
  store i32 %2140, ptr %1483, 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 %332, align 4, !tbaa !5
  %2154 = call ptr @s2n_strerror(i32 noundef %2153, ptr noundef nonnull @.str.3) #12
  %2155 = load i32, ptr %332, align 4, !tbaa !5
  %2156 = call ptr @s2n_strerror_debug(i32 noundef %2155, ptr noundef nonnull @.str.3) #12
  %2157 = load i32, ptr %1483, align 4, !tbaa !5
  %2158 = call ptr @strerror(i32 noundef %2157) #12
  %2159 = load i32, ptr %1483, align 4, !tbaa !5
  %2160 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2151, ptr noundef nonnull %.str.4.sink1269, i32 noundef %2152, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.2, i32 noundef 228, ptr noundef %2154, ptr noundef %2156, ptr noundef %2158, i32 noundef %2159) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2161:                                             ; preds = %2134
  %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_stuffer_copy(ptr noundef nonnull %333, ptr noundef nonnull %335, i32 noundef 5) #12
  %2165 = icmp eq i32 %2164, -1
  br i1 %2165, label %2166, label %2188

2166:                                             ; preds = %2161
  %2167 = load i32, ptr %1483, align 4, !tbaa !5
  %2168 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2169 = call i32 @s2n_print_stacktrace(ptr noundef %2168) #12
  %2170 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2171 = trunc nuw i8 %2170 to i1
  br i1 %2171, label %2172, label %2176

2172:                                             ; preds = %2166
  %2173 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2174 = call i32 @fileno(ptr noundef %2173) #12
  %2175 = call i32 @isatty(i32 noundef %2174) #12
  %.not387 = icmp eq i32 %2175, 0
  br i1 %.not387, label %2176, label %2177

2176:                                             ; preds = %2172, %2166
  br label %2177

2177:                                             ; preds = %2172, %2176
  %.str.4.sink1278 = phi ptr [ @.str.4, %2176 ], [ @.str, %2172 ]
  store i32 %2167, ptr %1483, align 4, !tbaa !5
  %2178 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2179 = load i32, ptr @test_count, align 4, !tbaa !5
  %2180 = load i32, ptr %332, align 4, !tbaa !5
  %2181 = call ptr @s2n_strerror(i32 noundef %2180, ptr noundef nonnull @.str.3) #12
  %2182 = load i32, ptr %332, align 4, !tbaa !5
  %2183 = call ptr @s2n_strerror_debug(i32 noundef %2182, ptr noundef nonnull @.str.3) #12
  %2184 = load i32, ptr %1483, align 4, !tbaa !5
  %2185 = call ptr @strerror(i32 noundef %2184) #12
  %2186 = load i32, ptr %1483, align 4, !tbaa !5
  %2187 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2178, ptr noundef nonnull %.str.4.sink1278, i32 noundef %2179, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.2, i32 noundef 229, ptr noundef %2181, ptr noundef %2183, ptr noundef %2185, i32 noundef %2186) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2188:                                             ; preds = %2161
  %2189 = load i32, ptr @test_count, align 4, !tbaa !5
  %2190 = add nsw i32 %2189, 1
  store i32 %2190, ptr @test_count, align 4, !tbaa !5
  %2191 = load i32, ptr %336, align 4, !tbaa !61
  %2192 = load i32, ptr %337, align 8, !tbaa !62
  %2193 = sub i32 %2191, %2192
  %2194 = call i32 @s2n_stuffer_copy(ptr noundef nonnull %333, ptr noundef nonnull %334, i32 noundef %2193) #12
  %2195 = icmp eq i32 %2194, -1
  br i1 %2195, label %2196, label %2218

2196:                                             ; preds = %2188
  %2197 = load i32, ptr %1483, align 4, !tbaa !5
  %2198 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2199 = call i32 @s2n_print_stacktrace(ptr noundef %2198) #12
  %2200 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2201 = trunc nuw i8 %2200 to i1
  br i1 %2201, label %2202, label %2206

2202:                                             ; preds = %2196
  %2203 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2204 = call i32 @fileno(ptr noundef %2203) #12
  %2205 = call i32 @isatty(i32 noundef %2204) #12
  %.not386 = icmp eq i32 %2205, 0
  br i1 %.not386, label %2206, label %2207

2206:                                             ; preds = %2202, %2196
  br label %2207

2207:                                             ; preds = %2202, %2206
  %.str.4.sink1287 = phi ptr [ @.str.4, %2206 ], [ @.str, %2202 ]
  store i32 %2197, ptr %1483, align 4, !tbaa !5
  %2208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2209 = load i32, ptr @test_count, align 4, !tbaa !5
  %2210 = load i32, ptr %332, align 4, !tbaa !5
  %2211 = call ptr @s2n_strerror(i32 noundef %2210, ptr noundef nonnull @.str.3) #12
  %2212 = load i32, ptr %332, align 4, !tbaa !5
  %2213 = call ptr @s2n_strerror_debug(i32 noundef %2212, ptr noundef nonnull @.str.3) #12
  %2214 = load i32, ptr %1483, align 4, !tbaa !5
  %2215 = call ptr @strerror(i32 noundef %2214) #12
  %2216 = load i32, ptr %1483, align 4, !tbaa !5
  %2217 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2208, ptr noundef nonnull %.str.4.sink1287, i32 noundef %2209, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.2, i32 noundef 230, ptr noundef %2211, ptr noundef %2213, ptr noundef %2215, i32 noundef %2216) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2218:                                             ; preds = %2188
  %2219 = load ptr, ptr %334, align 8, !tbaa !68
  %2220 = getelementptr inbounds i8, ptr %2219, i64 %.0337526
  %2221 = load i8, ptr %2220, align 1, !tbaa !59
  %2222 = add i8 %2221, 1
  store i8 %2222, ptr %2220, align 1, !tbaa !59
  %2223 = load i32, ptr @test_count, align 4, !tbaa !5
  %2224 = add nsw i32 %2223, 1
  store i32 %2224, ptr @test_count, align 4, !tbaa !5
  %2225 = call i32 @s2n_record_header_parse(ptr noundef nonnull %264, ptr noundef nonnull %8, ptr noundef nonnull %9) #12
  %2226 = icmp eq i32 %2225, -1
  br i1 %2226, label %2227, label %2249

2227:                                             ; preds = %2218
  %2228 = load i32, ptr %1483, align 4, !tbaa !5
  %2229 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2230 = call i32 @s2n_print_stacktrace(ptr noundef %2229) #12
  %2231 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2232 = trunc nuw i8 %2231 to i1
  br i1 %2232, label %2233, label %2237

2233:                                             ; preds = %2227
  %2234 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2235 = call i32 @fileno(ptr noundef %2234) #12
  %2236 = call i32 @isatty(i32 noundef %2235) #12
  %.not385 = icmp eq i32 %2236, 0
  br i1 %.not385, label %2237, label %2238

2237:                                             ; preds = %2233, %2227
  br label %2238

2238:                                             ; preds = %2233, %2237
  %.str.4.sink1296 = phi ptr [ @.str.4, %2237 ], [ @.str, %2233 ]
  store i32 %2228, ptr %1483, align 4, !tbaa !5
  %2239 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2240 = load i32, ptr @test_count, align 4, !tbaa !5
  %2241 = load i32, ptr %332, align 4, !tbaa !5
  %2242 = call ptr @s2n_strerror(i32 noundef %2241, ptr noundef nonnull @.str.3) #12
  %2243 = load i32, ptr %332, align 4, !tbaa !5
  %2244 = call ptr @s2n_strerror_debug(i32 noundef %2243, ptr noundef nonnull @.str.3) #12
  %2245 = load i32, ptr %1483, align 4, !tbaa !5
  %2246 = call ptr @strerror(i32 noundef %2245) #12
  %2247 = load i32, ptr %1483, align 4, !tbaa !5
  %2248 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2239, ptr noundef nonnull %.str.4.sink1296, i32 noundef %2240, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.2, i32 noundef 232, ptr noundef %2242, ptr noundef %2244, ptr noundef %2246, i32 noundef %2247) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2249:                                             ; preds = %2218
  %2250 = load i32, ptr @test_count, align 4, !tbaa !5
  %2251 = add nsw i32 %2250, 1
  store i32 %2251, ptr @test_count, align 4, !tbaa !5
  %2252 = call i32 @s2n_record_parse(ptr noundef nonnull %264) #12
  %2253 = icmp eq i32 %2252, -1
  br i1 %2253, label %2276, label %2254

2254:                                             ; preds = %2249
  %2255 = load i32, ptr %1483, align 4, !tbaa !5
  %2256 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2257 = call i32 @s2n_print_stacktrace(ptr noundef %2256) #12
  %2258 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2259 = trunc nuw i8 %2258 to i1
  br i1 %2259, label %2260, label %2264

2260:                                             ; preds = %2254
  %2261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2262 = call i32 @fileno(ptr noundef %2261) #12
  %2263 = call i32 @isatty(i32 noundef %2262) #12
  %.not371 = icmp eq i32 %2263, 0
  br i1 %.not371, label %2264, label %2265

2264:                                             ; preds = %2260, %2254
  br label %2265

2265:                                             ; preds = %2260, %2264
  %.str.4.sink1305 = phi ptr [ @.str.4, %2264 ], [ @.str, %2260 ]
  store i32 %2255, ptr %1483, align 4, !tbaa !5
  %2266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2267 = load i32, ptr @test_count, align 4, !tbaa !5
  %2268 = load i32, ptr %332, align 4, !tbaa !5
  %2269 = call ptr @s2n_strerror(i32 noundef %2268, ptr noundef nonnull @.str.3) #12
  %2270 = load i32, ptr %332, align 4, !tbaa !5
  %2271 = call ptr @s2n_strerror_debug(i32 noundef %2270, ptr noundef nonnull @.str.3) #12
  %2272 = load i32, ptr %1483, align 4, !tbaa !5
  %2273 = call ptr @strerror(i32 noundef %2272) #12
  %2274 = load i32, ptr %1483, align 4, !tbaa !5
  %2275 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2266, ptr noundef nonnull %.str.4.sink1305, i32 noundef %2267, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.2, i32 noundef 233, ptr noundef %2269, ptr noundef %2271, ptr noundef %2273, i32 noundef %2274) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2276:                                             ; preds = %2249
  %2277 = load i32, ptr @test_count, align 4, !tbaa !5
  %2278 = add nsw i32 %2277, 1
  store i32 %2278, ptr @test_count, align 4, !tbaa !5
  %2279 = load i32, ptr %332, align 4, !tbaa !5
  %2280 = icmp eq i32 %2279, 0
  br i1 %2280, label %2281, label %2303

2281:                                             ; preds = %2276
  %2282 = load i32, ptr %1483, align 4, !tbaa !5
  %2283 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2284 = call i32 @s2n_print_stacktrace(ptr noundef %2283) #12
  %2285 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2286 = trunc nuw i8 %2285 to i1
  br i1 %2286, label %2287, label %2291

2287:                                             ; preds = %2281
  %2288 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2289 = call i32 @fileno(ptr noundef %2288) #12
  %2290 = call i32 @isatty(i32 noundef %2289) #12
  %.not384 = icmp eq i32 %2290, 0
  br i1 %.not384, label %2291, label %2292

2291:                                             ; preds = %2287, %2281
  br label %2292

2292:                                             ; preds = %2287, %2291
  %.str.4.sink1314 = phi ptr [ @.str.4, %2291 ], [ @.str, %2287 ]
  store i32 %2282, ptr %1483, align 4, !tbaa !5
  %2293 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2294 = load i32, ptr @test_count, align 4, !tbaa !5
  %2295 = load i32, ptr %332, align 4, !tbaa !5
  %2296 = call ptr @s2n_strerror(i32 noundef %2295, ptr noundef nonnull @.str.3) #12
  %2297 = load i32, ptr %332, align 4, !tbaa !5
  %2298 = call ptr @s2n_strerror_debug(i32 noundef %2297, ptr noundef nonnull @.str.3) #12
  %2299 = load i32, ptr %1483, align 4, !tbaa !5
  %2300 = call ptr @strerror(i32 noundef %2299) #12
  %2301 = load i32, ptr %1483, align 4, !tbaa !5
  %2302 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2293, ptr noundef nonnull %.str.4.sink1314, i32 noundef %2294, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.2, i32 noundef 233, ptr noundef %2296, ptr noundef %2298, ptr noundef %2300, i32 noundef %2301) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2303:                                             ; preds = %2276
  %2304 = add nsw i32 %2277, 2
  store i32 %2304, ptr @test_count, align 4, !tbaa !5
  %2305 = call ptr @s2n_strerror_debug(i32 noundef %2279, ptr noundef nonnull @.str.3) #12
  %2306 = icmp eq ptr %2305, null
  br i1 %2306, label %2307, label %2329

2307:                                             ; preds = %2303
  %2308 = load i32, ptr %1483, align 4, !tbaa !5
  %2309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2310 = call i32 @s2n_print_stacktrace(ptr noundef %2309) #12
  %2311 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2312 = trunc nuw i8 %2311 to i1
  br i1 %2312, label %2313, label %2317

2313:                                             ; preds = %2307
  %2314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2315 = call i32 @fileno(ptr noundef %2314) #12
  %2316 = call i32 @isatty(i32 noundef %2315) #12
  %.not383 = icmp eq i32 %2316, 0
  br i1 %.not383, label %2317, label %2318

2317:                                             ; preds = %2313, %2307
  br label %2318

2318:                                             ; preds = %2313, %2317
  %.str.4.sink1323 = phi ptr [ @.str.4, %2317 ], [ @.str, %2313 ]
  store i32 %2308, ptr %1483, align 4, !tbaa !5
  %2319 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2320 = load i32, ptr @test_count, align 4, !tbaa !5
  %2321 = load i32, ptr %332, align 4, !tbaa !5
  %2322 = call ptr @s2n_strerror(i32 noundef %2321, ptr noundef nonnull @.str.3) #12
  %2323 = load i32, ptr %332, align 4, !tbaa !5
  %2324 = call ptr @s2n_strerror_debug(i32 noundef %2323, ptr noundef nonnull @.str.3) #12
  %2325 = load i32, ptr %1483, align 4, !tbaa !5
  %2326 = call ptr @strerror(i32 noundef %2325) #12
  %2327 = load i32, ptr %1483, align 4, !tbaa !5
  %2328 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2319, ptr noundef nonnull %.str.4.sink1323, i32 noundef %2320, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.2, i32 noundef 233, ptr noundef %2322, ptr noundef %2324, ptr noundef %2326, i32 noundef %2327) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2329:                                             ; preds = %2303
  store i32 0, ptr %332, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %1483, align 4, !tbaa !5
  %2330 = load i32, ptr @test_count, align 4, !tbaa !5
  %2331 = add nsw i32 %2330, 1
  store i32 %2331, ptr @test_count, align 4, !tbaa !5
  %2332 = load i8, ptr %8, align 1, !tbaa !59
  %2333 = icmp eq i8 %2332, 23
  br i1 %2333, label %2356, label %2334

2334:                                             ; preds = %2329
  %2335 = load i32, ptr %1483, align 4, !tbaa !5
  %2336 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2337 = call i32 @s2n_print_stacktrace(ptr noundef %2336) #12
  %2338 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2339 = trunc nuw i8 %2338 to i1
  br i1 %2339, label %2340, label %2344

2340:                                             ; preds = %2334
  %2341 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2342 = call i32 @fileno(ptr noundef %2341) #12
  %2343 = call i32 @isatty(i32 noundef %2342) #12
  %.not372 = icmp eq i32 %2343, 0
  br i1 %.not372, label %2344, label %2345

2344:                                             ; preds = %2340, %2334
  br label %2345

2345:                                             ; preds = %2340, %2344
  %.str.4.sink1332 = phi ptr [ @.str.4, %2344 ], [ @.str, %2340 ]
  store i32 %2335, ptr %1483, align 4, !tbaa !5
  %2346 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2347 = load i32, ptr @test_count, align 4, !tbaa !5
  %2348 = load i32, ptr %332, align 4, !tbaa !5
  %2349 = call ptr @s2n_strerror(i32 noundef %2348, ptr noundef nonnull @.str.3) #12
  %2350 = load i32, ptr %332, align 4, !tbaa !5
  %2351 = call ptr @s2n_strerror_debug(i32 noundef %2350, ptr noundef nonnull @.str.3) #12
  %2352 = load i32, ptr %1483, align 4, !tbaa !5
  %2353 = call ptr @strerror(i32 noundef %2352) #12
  %2354 = load i32, ptr %1483, align 4, !tbaa !5
  %2355 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2346, ptr noundef nonnull %.str.4.sink1332, i32 noundef %2347, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.2, i32 noundef 234, ptr noundef %2349, ptr noundef %2351, ptr noundef %2353, i32 noundef %2354) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2356:                                             ; preds = %2329
  %2357 = add nsw i32 %2330, 2
  store i32 %2357, ptr @test_count, align 4, !tbaa !5
  %2358 = call i32 @s2n_stuffer_wipe(ptr noundef nonnull %335) #12
  %2359 = icmp eq i32 %2358, -1
  br i1 %2359, label %2360, label %2382

2360:                                             ; preds = %2356
  %2361 = load i32, ptr %1483, align 4, !tbaa !5
  %2362 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2363 = call i32 @s2n_print_stacktrace(ptr noundef %2362) #12
  %2364 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2365 = trunc nuw i8 %2364 to i1
  br i1 %2365, label %2366, label %2370

2366:                                             ; preds = %2360
  %2367 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2368 = call i32 @fileno(ptr noundef %2367) #12
  %2369 = call i32 @isatty(i32 noundef %2368) #12
  %.not382 = icmp eq i32 %2369, 0
  br i1 %.not382, label %2370, label %2371

2370:                                             ; preds = %2366, %2360
  br label %2371

2371:                                             ; preds = %2366, %2370
  %.str.4.sink1341 = phi ptr [ @.str.4, %2370 ], [ @.str, %2366 ]
  store i32 %2361, ptr %1483, align 4, !tbaa !5
  %2372 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2373 = load i32, ptr @test_count, align 4, !tbaa !5
  %2374 = load i32, ptr %332, align 4, !tbaa !5
  %2375 = call ptr @s2n_strerror(i32 noundef %2374, ptr noundef nonnull @.str.3) #12
  %2376 = load i32, ptr %332, align 4, !tbaa !5
  %2377 = call ptr @s2n_strerror_debug(i32 noundef %2376, ptr noundef nonnull @.str.3) #12
  %2378 = load i32, ptr %1483, align 4, !tbaa !5
  %2379 = call ptr @strerror(i32 noundef %2378) #12
  %2380 = load i32, ptr %1483, align 4, !tbaa !5
  %2381 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2372, ptr noundef nonnull %.str.4.sink1341, i32 noundef %2373, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.2, i32 noundef 236, ptr noundef %2375, ptr noundef %2377, ptr noundef %2379, i32 noundef %2380) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2382:                                             ; preds = %2356
  %2383 = load i32, ptr @test_count, align 4, !tbaa !5
  %2384 = add nsw i32 %2383, 1
  store i32 %2384, ptr @test_count, align 4, !tbaa !5
  %2385 = call i32 @s2n_stuffer_wipe(ptr noundef nonnull %334) #12
  %2386 = icmp eq i32 %2385, -1
  br i1 %2386, label %2387, label %2409

2387:                                             ; preds = %2382
  %2388 = load i32, ptr %1483, align 4, !tbaa !5
  %2389 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2390 = call i32 @s2n_print_stacktrace(ptr noundef %2389) #12
  %2391 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2392 = trunc nuw i8 %2391 to i1
  br i1 %2392, label %2393, label %2397

2393:                                             ; preds = %2387
  %2394 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2395 = call i32 @fileno(ptr noundef %2394) #12
  %2396 = call i32 @isatty(i32 noundef %2395) #12
  %.not381 = icmp eq i32 %2396, 0
  br i1 %.not381, label %2397, label %2398

2397:                                             ; preds = %2393, %2387
  br label %2398

2398:                                             ; preds = %2393, %2397
  %.str.4.sink1350 = phi ptr [ @.str.4, %2397 ], [ @.str, %2393 ]
  store i32 %2388, ptr %1483, align 4, !tbaa !5
  %2399 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2400 = load i32, ptr @test_count, align 4, !tbaa !5
  %2401 = load i32, ptr %332, align 4, !tbaa !5
  %2402 = call ptr @s2n_strerror(i32 noundef %2401, ptr noundef nonnull @.str.3) #12
  %2403 = load i32, ptr %332, align 4, !tbaa !5
  %2404 = call ptr @s2n_strerror_debug(i32 noundef %2403, ptr noundef nonnull @.str.3) #12
  %2405 = load i32, ptr %1483, align 4, !tbaa !5
  %2406 = call ptr @strerror(i32 noundef %2405) #12
  %2407 = load i32, ptr %1483, align 4, !tbaa !5
  %2408 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2399, ptr noundef nonnull %.str.4.sink1350, i32 noundef %2400, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.2, i32 noundef 237, ptr noundef %2402, ptr noundef %2404, ptr noundef %2406, i32 noundef %2407) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2409:                                             ; preds = %2382
  %2410 = load ptr, ptr %320, align 8, !tbaa !17
  %2411 = load ptr, ptr %2410, align 8, !tbaa !46
  %2412 = getelementptr inbounds i8, ptr %2411, i64 48
  %2413 = load ptr, ptr %2412, align 8, !tbaa !51
  %2414 = load ptr, ptr %2413, align 8, !tbaa !57
  %2415 = getelementptr inbounds i8, ptr %2414, i64 88
  %2416 = load ptr, ptr %2415, align 8, !tbaa !65
  %2417 = getelementptr inbounds i8, ptr %2410, i64 16
  %2418 = call i32 %2416(ptr noundef nonnull %2417) #12
  %2419 = call zeroext i1 @s2n_result_is_ok(i32 %2418)
  br i1 %2419, label %2420, label %.thread

2420:                                             ; preds = %2409
  %2421 = load ptr, ptr %320, align 8, !tbaa !17
  %2422 = load ptr, ptr %2421, align 8, !tbaa !46
  %2423 = getelementptr inbounds i8, ptr %2422, i64 48
  %2424 = load ptr, ptr %2423, align 8, !tbaa !51
  %2425 = load ptr, ptr %2424, align 8, !tbaa !57
  %2426 = getelementptr inbounds i8, ptr %2425, i64 88
  %2427 = load ptr, ptr %2426, align 8, !tbaa !65
  %2428 = getelementptr inbounds i8, ptr %2421, i64 8
  %2429 = call i32 %2427(ptr noundef nonnull %2428) #12
  %2430 = call zeroext i1 @s2n_result_is_ok(i32 %2429)
  br i1 %2430, label %1998, label %.thread

._crit_edge:                                      ; preds = %1998, %.preheader
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %9) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %8) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %7) #12
  %2431 = add nuw nsw i64 %.0334527, 1
  %exitcond565 = icmp eq i64 %2431, 1437
  br i1 %exitcond565, label %.thread444, label %340, !llvm.loop !72

.thread447:                                       ; preds = %1537, %1548
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %9) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %8) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %7) #12
  br label %2556

.thread:                                          ; preds = %1976, %1987, %2409, %2420
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %9) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %8) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %7) #12
  br label %2556

.thread444:                                       ; preds = %._crit_edge
  %2432 = load i32, ptr @test_count, align 4, !tbaa !5
  %2433 = add nsw i32 %2432, 1
  store i32 %2433, ptr @test_count, align 4, !tbaa !5
  %2434 = call i32 @destroy_server_keys(ptr noundef nonnull %264)
  %2435 = icmp eq i32 %2434, -1
  br i1 %2435, label %2436, label %2458

2436:                                             ; preds = %.thread444
  %2437 = load i32, ptr %1483, align 4, !tbaa !5
  %2438 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2439 = call i32 @s2n_print_stacktrace(ptr noundef %2438) #12
  %2440 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2441 = trunc nuw i8 %2440 to i1
  br i1 %2441, label %2442, label %2446

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

2446:                                             ; preds = %2442, %2436
  br label %2447

2447:                                             ; preds = %2442, %2446
  %.str.4.sink1359 = phi ptr [ @.str.4, %2446 ], [ @.str, %2442 ]
  store i32 %2437, ptr %1483, align 4, !tbaa !5
  %2448 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2449 = load i32, ptr @test_count, align 4, !tbaa !5
  %2450 = load i32, ptr %332, align 4, !tbaa !5
  %2451 = call ptr @s2n_strerror(i32 noundef %2450, ptr noundef nonnull @.str.3) #12
  %2452 = load i32, ptr %332, align 4, !tbaa !5
  %2453 = call ptr @s2n_strerror_debug(i32 noundef %2452, ptr noundef nonnull @.str.3) #12
  %2454 = load i32, ptr %1483, align 4, !tbaa !5
  %2455 = call ptr @strerror(i32 noundef %2454) #12
  %2456 = load i32, ptr %1483, align 4, !tbaa !5
  %2457 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2448, ptr noundef nonnull %.str.4.sink1359, i32 noundef %2449, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.2, i32 noundef 243, ptr noundef %2451, ptr noundef %2453, ptr noundef %2455, i32 noundef %2456) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2458:                                             ; preds = %.thread444
  %2459 = load i32, ptr @test_count, align 4, !tbaa !5
  %2460 = add nsw i32 %2459, 1
  store i32 %2460, ptr @test_count, align 4, !tbaa !5
  %2461 = call i32 @s2n_connection_free(ptr noundef nonnull %264) #12
  %2462 = icmp eq i32 %2461, -1
  br i1 %2462, label %2463, label %2485

2463:                                             ; preds = %2458
  %2464 = load i32, ptr %1483, align 4, !tbaa !5
  %2465 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2466 = call i32 @s2n_print_stacktrace(ptr noundef %2465) #12
  %2467 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2468 = trunc nuw i8 %2467 to i1
  br i1 %2468, label %2469, label %2473

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

2473:                                             ; preds = %2469, %2463
  br label %2474

2474:                                             ; preds = %2469, %2473
  %.str.4.sink1368 = phi ptr [ @.str.4, %2473 ], [ @.str, %2469 ]
  store i32 %2464, ptr %1483, align 4, !tbaa !5
  %2475 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2476 = load i32, ptr @test_count, align 4, !tbaa !5
  %2477 = load i32, ptr %332, align 4, !tbaa !5
  %2478 = call ptr @s2n_strerror(i32 noundef %2477, ptr noundef nonnull @.str.3) #12
  %2479 = load i32, ptr %332, align 4, !tbaa !5
  %2480 = call ptr @s2n_strerror_debug(i32 noundef %2479, ptr noundef nonnull @.str.3) #12
  %2481 = load i32, ptr %1483, align 4, !tbaa !5
  %2482 = call ptr @strerror(i32 noundef %2481) #12
  %2483 = load i32, ptr %1483, align 4, !tbaa !5
  %2484 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2475, ptr noundef nonnull %.str.4.sink1368, i32 noundef %2476, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.2, i32 noundef 244, ptr noundef %2478, ptr noundef %2480, ptr noundef %2482, i32 noundef %2483) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2485:                                             ; preds = %2458
  %2486 = call i32 @s2n_cleanup() #12
  %2487 = icmp eq i32 %2486, -1
  br i1 %2487, label %2488, label %2510

2488:                                             ; preds = %2485
  %2489 = load i32, ptr %1483, align 4, !tbaa !5
  %2490 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2491 = call i32 @s2n_print_stacktrace(ptr noundef %2490) #12
  %2492 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2493 = trunc nuw i8 %2492 to i1
  br i1 %2493, label %2494, label %2498

2494:                                             ; preds = %2488
  %2495 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2496 = call i32 @fileno(ptr noundef %2495) #12
  %2497 = call i32 @isatty(i32 noundef %2496) #12
  %.not378 = icmp eq i32 %2497, 0
  br i1 %.not378, label %2498, label %2499

2498:                                             ; preds = %2494, %2488
  br label %2499

2499:                                             ; preds = %2494, %2498
  %.str.4.sink1377 = phi ptr [ @.str.4, %2498 ], [ @.str, %2494 ]
  store i32 %2489, ptr %1483, align 4, !tbaa !5
  %2500 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2501 = load i32, ptr @test_count, align 4, !tbaa !5
  %2502 = load i32, ptr %332, align 4, !tbaa !5
  %2503 = call ptr @s2n_strerror(i32 noundef %2502, ptr noundef nonnull @.str.3) #12
  %2504 = load i32, ptr %332, align 4, !tbaa !5
  %2505 = call ptr @s2n_strerror_debug(i32 noundef %2504, ptr noundef nonnull @.str.3) #12
  %2506 = load i32, ptr %1483, align 4, !tbaa !5
  %2507 = call ptr @strerror(i32 noundef %2506) #12
  %2508 = load i32, ptr %1483, align 4, !tbaa !5
  %2509 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2500, ptr noundef nonnull %.str.4.sink1377, i32 noundef %2501, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.2, i32 noundef 245, ptr noundef %2503, ptr noundef %2505, ptr noundef %2507, i32 noundef %2508) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2510:                                             ; preds = %2485
  %2511 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #12
  %2512 = icmp eq i32 %2511, -1
  br i1 %2512, label %2513, label %2535

2513:                                             ; preds = %2510
  %2514 = load i32, ptr %1483, align 4, !tbaa !5
  %2515 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2516 = call i32 @s2n_print_stacktrace(ptr noundef %2515) #12
  %2517 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2518 = trunc nuw i8 %2517 to i1
  br i1 %2518, label %2519, label %2523

2519:                                             ; preds = %2513
  %2520 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2521 = call i32 @fileno(ptr noundef %2520) #12
  %2522 = call i32 @isatty(i32 noundef %2521) #12
  %.not377 = icmp eq i32 %2522, 0
  br i1 %.not377, label %2523, label %2524

2523:                                             ; preds = %2519, %2513
  br label %2524

2524:                                             ; preds = %2519, %2523
  %.str.4.sink1386 = phi ptr [ @.str.4, %2523 ], [ @.str, %2519 ]
  store i32 %2514, ptr %1483, align 4, !tbaa !5
  %2525 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2526 = load i32, ptr @test_count, align 4, !tbaa !5
  %2527 = load i32, ptr %332, align 4, !tbaa !5
  %2528 = call ptr @s2n_strerror(i32 noundef %2527, ptr noundef nonnull @.str.3) #12
  %2529 = load i32, ptr %332, align 4, !tbaa !5
  %2530 = call ptr @s2n_strerror_debug(i32 noundef %2529, ptr noundef nonnull @.str.3) #12
  %2531 = load i32, ptr %1483, align 4, !tbaa !5
  %2532 = call ptr @strerror(i32 noundef %2531) #12
  %2533 = load i32, ptr %1483, align 4, !tbaa !5
  %2534 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2525, ptr noundef nonnull %.str.4.sink1386, i32 noundef %2526, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.2, i32 noundef 245, ptr noundef %2528, ptr noundef %2530, ptr noundef %2532, i32 noundef %2533) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2535:                                             ; preds = %2510
  %2536 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2537 = trunc nuw i8 %2536 to i1
  br i1 %2537, label %2538, label %2549

2538:                                             ; preds = %2535
  %2539 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2540 = call i32 @fileno(ptr noundef %2539) #12
  %2541 = call i32 @isatty(i32 noundef %2540) #12
  %.not374 = icmp eq i32 %2541, 0
  br i1 %.not374, label %2549, label %2542

2542:                                             ; preds = %2538
  %2543 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not376 = icmp eq i32 %2543, 0
  %2544 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not376, label %2547, label %2545

2545:                                             ; preds = %2542
  %2546 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2544, ptr noundef nonnull @.str.13, i32 noundef %2543) #12
  br label %2556

2547:                                             ; preds = %2542
  %2548 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2544, ptr noundef nonnull @.str.14) #12
  br label %2556

2549:                                             ; preds = %2538, %2535
  %2550 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not375 = icmp eq i32 %2550, 0
  %2551 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not375, label %2554, label %2552

2552:                                             ; preds = %2549
  %2553 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2551, ptr noundef nonnull @.str.15, i32 noundef %2550) #12
  br label %2556

2554:                                             ; preds = %2549
  %2555 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2551, ptr noundef nonnull @.str.16) #12
  br label %2556

2556:                                             ; preds = %.thread, %.thread447, %2552, %2554, %2545, %2547, %319, %252, %250, %259, %257
  %.6 = phi i32 [ 0, %257 ], [ 0, %259 ], [ 0, %250 ], [ 0, %252 ], [ -1, %319 ], [ -1, %.thread ], [ 0, %2552 ], [ 0, %2554 ], [ 0, %2545 ], [ 0, %2547 ], [ -1, %.thread447 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %6) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) #12
  call void @llvm.lifetime.end.p0(i64 1436, ptr nonnull %3) #12
  ret i32 %.6
}

; 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 i32 @s2n_cleanup() 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

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

declare i32 @s2n_connection_wipe(ptr noundef) local_unnamed_addr #4

declare i32 @s2n_connection_prefer_low_latency(ptr noundef) local_unnamed_addr #4

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

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_wipe(ptr noundef) 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

; 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 56}
!16 = !{!"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}
!17 = !{!18, !10, i64 224}
!18 = !{!"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, !19, i64 160, !20, i64 168, !20, 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, !21, i64 240, !10, i64 632, !10, i64 640, !22, i64 648, !28, i64 1144, !31, i64 1688, !10, i64 1752, !7, i64 1760, !6, i64 1764, !7, i64 1768, !34, i64 1776, !34, i64 1816, !34, i64 1856, !34, i64 1896, !6, i64 1936, !20, i64 1944, !7, i64 1952, !34, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !35, i64 2004, !35, i64 2008, !36, i64 2016, !33, i64 2208, !6, i64 2212, !33, i64 2216, !20, i64 2224, !7, i64 2232, !20, i64 2240, !20, i64 2248, !20, i64 2256, !35, i64 2264, !35, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !27, i64 2792, !6, i64 2816, !27, i64 2824, !27, i64 2848, !27, i64 2872, !38, i64 2896, !40, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !27, i64 3784, !6, i64 3808, !42, i64 3816, !7, i64 3848, !34, i64 3992, !27, i64 4032, !27, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !33, i64 4084, !33, i64 4086, !6, i64 4088, !6, i64 4092, !27, i64 4096, !6, i64 4120, !43, i64 4128, !35, i64 4176, !7, i64 4180, !7, i64 4181}
!19 = !{!"s2n_timer", !20, i64 0}
!20 = !{!"long", !7, i64 0}
!21 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!22 = !{!"s2n_kex_parameters", !23, i64 0, !24, i64 8, !7, i64 24, !24, i64 56, !25, i64 72, !25, i64 184, !7, i64 296, !26, i64 360, !27, i64 448, !27, i64 472}
!23 = !{!"s2n_dh_params", !10, i64 0}
!24 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!25 = !{!"s2n_kem_group_params", !10, i64 0, !26, i64 8, !24, i64 96}
!26 = !{!"s2n_kem_params", !10, i64 0, !27, i64 8, !27, i64 32, !27, i64 56, !12, i64 80}
!27 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!28 = !{!"s2n_handshake_parameters", !29, i64 0, !29, i64 48, !27, i64 96, !6, i64 120, !30, 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}
!29 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!30 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!31 = !{!"s2n_psk_parameters", !6, i64 0, !32, i64 8, !33, i64 40, !33, i64 42, !10, i64 48, !6, i64 56}
!32 = !{!"s2n_array", !27, i64 0, !6, i64 24, !6, i64 28}
!33 = !{!"short", !7, i64 0}
!34 = !{!"s2n_stuffer", !27, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!35 = !{!"", !6, i64 0}
!36 = !{!"s2n_handshake", !34, i64 0, !10, i64 40, !7, i64 48, !7, i64 56, !7, i64 104, !7, i64 152, !6, i64 156, !6, i64 160, !6, i64 164, !6, i64 168, !37, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!37 = !{!"s2n_offered_early_data", !10, i64 0}
!38 = !{!"s2n_client_hello", !27, i64 0, !39, i64 24, !27, i64 728, !27, i64 752, !27, i64 776, !7, i64 800, !7, i64 801, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802}
!39 = !{!"", !7, i64 0, !27, i64 672, !33, i64 696}
!40 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !33, i64 18, !10, i64 24, !6, i64 32, !10, i64 40, !41, i64 48, !12, i64 52}
!41 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!42 = !{!"s2n_ticket_fields", !27, i64 0, !6, i64 24}
!43 = !{!"s2n_post_handshake", !34, i64 0, !7, i64 40}
!44 = !{!18, !10, i64 640}
!45 = !{!18, !10, i64 632}
!46 = !{!47, !10, i64 0}
!47 = !{!"s2n_crypto_parameters", !10, i64 0, !48, i64 8, !48, i64 16, !49, i64 24, !49, i64 456, !7, i64 888, !7, i64 904, !7, i64 920, !7, i64 928}
!48 = !{!"s2n_session_key", !10, i64 0}
!49 = !{!"s2n_hmac_state", !6, i64 0, !33, i64 4, !6, i64 8, !33, i64 12, !7, i64 14, !50, i64 16, !50, i64 72, !50, i64 128, !50, i64 184, !7, i64 240, !7, i64 368}
!50 = !{!"s2n_hash_state", !10, i64 0, !6, i64 8, !7, i64 12, !20, i64 16, !7, i64 24}
!51 = !{!52, !10, i64 48}
!52 = !{!"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}
!53 = !{!18, !7, i64 222}
!54 = !{!18, !7, i64 219}
!55 = !{!18, !7, i64 218}
!56 = !{!18, !7, i64 220}
!57 = !{!58, !10, i64 0}
!58 = !{!"s2n_record_algorithm", !10, i64 0, !6, i64 8, !6, i64 12, !20, i64 16}
!59 = !{!7, !7, i64 0}
!60 = !{!18, !10, i64 1896}
!61 = !{!18, !6, i64 1924}
!62 = !{!18, !6, i64 1920}
!63 = !{!33, !33, i64 0}
!64 = !{!18, !10, i64 1776}
!65 = !{!16, !10, i64 88}
!66 = distinct !{!66, !67}
!67 = !{!"llvm.loop.mustprogress"}
!68 = !{!18, !10, i64 1856}
!69 = !{!18, !6, i64 1884}
!70 = !{!18, !6, i64 1880}
!71 = distinct !{!71, !67}
!72 = distinct !{!72, !67}


; Effective O3 passes: ConstraintEliminationPass,CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopInstSimplifyPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,PostOrderFunctionAttrsPass,ReassociatePass,SROAPass,SimplifyCFGPass,TailCallElimPass