; LLVM IR from aws/s2n-tls :: tests/unit (s2n_aes_sha_composite_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 }

@s2n_use_color_in_output = external dso_local global i8, align 1
@__const.main.mac_key_sha = external hidden unnamed_addr constant [20 x i8], align 16
@__const.main.mac_key_sha256 = external hidden unnamed_addr constant [32 x i8], align 16
@__const.main.aes128_key = external hidden unnamed_addr constant [16 x i8], align 16
@__const.main.aes256_key = external hidden unnamed_addr constant [32 x i8], align 16
@test_count = external dso_local global i32, align 4
@stderr = external global ptr, align 8
@.str = external hidden unnamed_addr constant [101 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [85 x i8], align 1
@s2n_errno = external thread_local global i32, align 4
@.str.3 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [80 x i8], align 1
@stdout = external global ptr, align 8
@.str.7 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [56 x i8], align 1
@s2n_aes128_sha = external constant %struct.s2n_cipher, align 8
@s2n_aes256_sha = external constant %struct.s2n_cipher, align 8
@s2n_aes128_sha256 = external constant %struct.s2n_cipher, align 8
@s2n_aes256_sha256 = external constant %struct.s2n_cipher, align 8
@.str.12 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [62 x i8], align 1
@__const.main.proto_versions = external hidden unnamed_addr constant [3 x i8], align 1
@s2n_record_alg_aes128_sha_composite = external constant %struct.s2n_record_algorithm, align 8
@.str.20 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [136 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [136 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [165 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [165 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [113 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [113 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [126 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [53 x i8], align 1
@s2n_record_alg_aes256_sha_composite = external constant %struct.s2n_record_algorithm, align 8
@.str.46 = external hidden unnamed_addr constant [136 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [136 x i8], align 1
@s2n_record_alg_aes128_sha256_composite = external constant %struct.s2n_record_algorithm, align 8
@.str.48 = external hidden unnamed_addr constant [171 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [171 x i8], align 1
@s2n_record_alg_aes256_sha256_composite = external constant %struct.s2n_record_algorithm, align 8
@.str.50 = 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 [8088 x i8], align 16
  %8 = alloca [20 x i8], align 16
  %9 = alloca [32 x i8], align 16
  %10 = alloca [16 x i8], align 16
  %11 = alloca [32 x i8], align 16
  %12 = alloca %struct.s2n_blob, align 8
  %13 = alloca i32, align 4
  %14 = alloca %struct.s2n_blob, align 8
  %15 = alloca i32, align 4
  %16 = alloca %struct.s2n_blob, align 8
  %17 = alloca i32, align 4
  %18 = alloca [8089 x [16 x i8]], align 16
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca %struct.s2n_result, align 4
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca [3 x i8], align 1
  %31 = alloca i32, align 4
  %32 = alloca i64, align 8
  %33 = alloca %struct.s2n_blob, align 8
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca %struct.s2n_result, align 4
  %38 = alloca i32, align 4
  %39 = alloca %struct.s2n_result, align 4
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca %struct.s2n_result, align 4
  %46 = alloca i32, align 4
  %47 = alloca i32, align 4
  %48 = alloca i32, align 4
  %49 = alloca i32, align 4
  %50 = alloca i16, align 2
  %51 = alloca i32, align 4
  %52 = alloca i8, align 1
  %53 = alloca i32, align 4
  %54 = alloca i32, align 4
  %55 = alloca i32, align 4
  %56 = alloca i32, align 4
  %57 = alloca ptr, align 8
  %58 = alloca i32, align 4
  %59 = alloca i32, align 4
  %60 = alloca i32, align 4
  %61 = alloca i32, align 4
  %62 = alloca i32, align 4
  %63 = alloca i32, align 4
  %64 = alloca i32, align 4
  %65 = alloca i8, align 1
  %66 = alloca i16, align 2
  %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 i32, align 4
  %75 = alloca %struct.s2n_blob, align 8
  %76 = alloca i32, align 4
  %77 = alloca i32, align 4
  %78 = alloca i32, align 4
  %79 = alloca %struct.s2n_result, align 4
  %80 = alloca i32, align 4
  %81 = alloca %struct.s2n_result, 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 %struct.s2n_result, align 4
  %88 = alloca i32, align 4
  %89 = alloca i32, align 4
  %90 = alloca i32, align 4
  %91 = alloca i32, align 4
  %92 = alloca i16, align 2
  %93 = alloca i32, align 4
  %94 = alloca i8, align 1
  %95 = alloca i32, align 4
  %96 = alloca i32, align 4
  %97 = alloca i32, align 4
  %98 = alloca i32, align 4
  %99 = alloca ptr, align 8
  %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 i8, align 1
  %108 = alloca i16, align 2
  %109 = alloca i32, align 4
  %110 = alloca i32, align 4
  %111 = alloca i32, align 4
  %112 = alloca i32, align 4
  %113 = alloca i32, align 4
  %114 = alloca i32, align 4
  %115 = alloca i32, align 4
  %116 = alloca i32, align 4
  %117 = alloca %struct.s2n_blob, align 8
  %118 = alloca i32, align 4
  %119 = alloca i32, align 4
  %120 = alloca i32, align 4
  %121 = alloca %struct.s2n_result, align 4
  %122 = alloca i32, align 4
  %123 = alloca %struct.s2n_result, align 4
  %124 = alloca i32, align 4
  %125 = alloca i32, align 4
  %126 = alloca i32, align 4
  %127 = alloca i32, align 4
  %128 = alloca i32, align 4
  %129 = alloca %struct.s2n_result, align 4
  %130 = alloca i32, align 4
  %131 = alloca i32, align 4
  %132 = alloca i32, align 4
  %133 = alloca i32, align 4
  %134 = alloca i16, align 2
  %135 = alloca i32, align 4
  %136 = alloca i8, align 1
  %137 = alloca i32, align 4
  %138 = alloca i32, align 4
  %139 = alloca i32, align 4
  %140 = alloca i32, align 4
  %141 = alloca ptr, align 8
  %142 = alloca i32, align 4
  %143 = alloca i32, align 4
  %144 = alloca i32, align 4
  %145 = alloca i32, align 4
  %146 = alloca i32, align 4
  %147 = alloca i32, align 4
  %148 = alloca i32, align 4
  %149 = alloca i8, align 1
  %150 = alloca i16, align 2
  %151 = alloca i32, align 4
  %152 = alloca i32, align 4
  %153 = alloca i32, align 4
  %154 = alloca i32, align 4
  %155 = alloca i32, align 4
  %156 = alloca i32, align 4
  %157 = alloca i32, align 4
  %158 = alloca i32, align 4
  %159 = alloca %struct.s2n_blob, align 8
  %160 = alloca i32, align 4
  %161 = alloca i32, align 4
  %162 = alloca i32, align 4
  %163 = alloca %struct.s2n_result, align 4
  %164 = alloca i32, align 4
  %165 = alloca %struct.s2n_result, align 4
  %166 = alloca i32, align 4
  %167 = alloca i32, align 4
  %168 = alloca i32, align 4
  %169 = alloca i32, align 4
  %170 = alloca i32, align 4
  %171 = alloca %struct.s2n_result, align 4
  %172 = alloca i32, align 4
  %173 = alloca i32, align 4
  %174 = alloca i32, align 4
  %175 = alloca i32, align 4
  %176 = alloca i16, align 2
  %177 = alloca i32, align 4
  %178 = alloca i8, align 1
  %179 = alloca i32, align 4
  %180 = alloca i32, align 4
  %181 = alloca i32, align 4
  %182 = alloca i32, align 4
  %183 = alloca ptr, align 8
  %184 = alloca i32, align 4
  %185 = alloca i32, align 4
  %186 = alloca i32, align 4
  %187 = alloca i32, align 4
  %188 = alloca i32, align 4
  %189 = alloca i32, align 4
  %190 = alloca i32, align 4
  %191 = alloca i8, align 1
  %192 = alloca i16, align 2
  %193 = alloca i32, align 4
  %194 = alloca i32, align 4
  %195 = alloca i32, align 4
  %196 = alloca i32, align 4
  %197 = alloca i32, align 4
  %198 = alloca i32, align 4
  %199 = alloca i32, align 4
  %200 = alloca i32, align 4
  %201 = 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 8088, ptr %7) #11
  call void @llvm.lifetime.start.p0(i64 20, ptr %8) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %8, ptr align 16 @__const.main.mac_key_sha, i64 20, i1 false)
  call void @llvm.lifetime.start.p0(i64 32, ptr %9) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %9, ptr align 16 @__const.main.mac_key_sha256, i64 32, i1 false)
  call void @llvm.lifetime.start.p0(i64 16, ptr %10) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %10, ptr align 16 @__const.main.aes128_key, i64 16, i1 false)
  call void @llvm.lifetime.start.p0(i64 32, ptr %11) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %11, ptr align 16 @__const.main.aes256_key, i64 32, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr %12) #11
  call void @llvm.memset.p0.i64(ptr align 8 %12, i8 0, i64 24, i1 false)
  br label %202

202:                                              ; preds = %2
  %203 = load i32, ptr @test_count, align 4, !tbaa !5
  %204 = add nsw i32 %203, 1
  store i32 %204, ptr @test_count, align 4, !tbaa !5
  %205 = getelementptr inbounds [16 x i8], ptr %10, i64 0, i64 0
  %206 = call i32 @s2n_blob_init(ptr noundef %12, ptr noundef %205, i32 noundef 16)
  %207 = icmp eq i32 %206, -1
  br i1 %207, label %208, label %261

208:                                              ; preds = %202
  br label %209

209:                                              ; preds = %208
  br label %210

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

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

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

239:                                              ; preds = %217, %210
  %240 = load i32, ptr %13, align 4, !tbaa !5
  %241 = call ptr @__errno_location() #12
  store i32 %240, ptr %241, align 4, !tbaa !5
  %242 = load ptr, ptr @stderr, align 8, !tbaa !9
  %243 = load i32, ptr @test_count, align 4, !tbaa !5
  %244 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %245 = load i32, ptr %244, align 4, !tbaa !5
  %246 = call ptr @s2n_strerror(i32 noundef %245, ptr noundef @.str.3)
  %247 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %248 = load i32, ptr %247, align 4, !tbaa !5
  %249 = call ptr @s2n_strerror_debug(i32 noundef %248, ptr noundef @.str.3)
  %250 = call ptr @__errno_location() #12
  %251 = load i32, ptr %250, align 4, !tbaa !5
  %252 = call ptr @strerror(i32 noundef %251) #11
  %253 = call ptr @__errno_location() #12
  %254 = load i32, ptr %253, align 4, !tbaa !5
  %255 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %242, ptr noundef @.str.4, i32 noundef %243, ptr noundef @.str.1, ptr noundef @.str.2, i32 noundef 57, ptr noundef %246, ptr noundef %249, ptr noundef %252, i32 noundef %254) #11
  br label %256

256:                                              ; preds = %239, %222
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #11
  br label %257

257:                                              ; preds = %256
  br label %258

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

259:                                              ; No predecessors!
  br label %260

260:                                              ; preds = %259
  br label %261

261:                                              ; preds = %260, %202
  br label %262

262:                                              ; preds = %261
  br label %263

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

264:                                              ; preds = %263
  %265 = load i32, ptr @test_count, align 4, !tbaa !5
  %266 = add nsw i32 %265, 1
  store i32 %266, ptr @test_count, align 4, !tbaa !5
  %267 = getelementptr inbounds [32 x i8], ptr %11, i64 0, i64 0
  %268 = call i32 @s2n_blob_init(ptr noundef %14, ptr noundef %267, i32 noundef 32)
  %269 = icmp eq i32 %268, -1
  br i1 %269, label %270, label %323

270:                                              ; preds = %264
  br label %271

271:                                              ; preds = %270
  br label %272

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

279:                                              ; preds = %272
  %280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %281 = call i32 @fileno(ptr noundef %280) #11
  %282 = call i32 @isatty(i32 noundef %281) #11
  %283 = icmp ne i32 %282, 0
  br i1 %283, label %284, label %301

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

301:                                              ; preds = %279, %272
  %302 = load i32, ptr %15, align 4, !tbaa !5
  %303 = call ptr @__errno_location() #12
  store i32 %302, ptr %303, align 4, !tbaa !5
  %304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %305 = load i32, ptr @test_count, align 4, !tbaa !5
  %306 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %307 = load i32, ptr %306, align 4, !tbaa !5
  %308 = call ptr @s2n_strerror(i32 noundef %307, ptr noundef @.str.3)
  %309 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %310 = load i32, ptr %309, align 4, !tbaa !5
  %311 = call ptr @s2n_strerror_debug(i32 noundef %310, ptr noundef @.str.3)
  %312 = call ptr @__errno_location() #12
  %313 = load i32, ptr %312, align 4, !tbaa !5
  %314 = call ptr @strerror(i32 noundef %313) #11
  %315 = call ptr @__errno_location() #12
  %316 = load i32, ptr %315, align 4, !tbaa !5
  %317 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %304, ptr noundef @.str.4, i32 noundef %305, ptr noundef @.str.5, ptr noundef @.str.2, i32 noundef 59, ptr noundef %308, ptr noundef %311, ptr noundef %314, i32 noundef %316) #11
  br label %318

318:                                              ; preds = %301, %284
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #11
  br label %319

319:                                              ; preds = %318
  br label %320

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

321:                                              ; No predecessors!
  br label %322

322:                                              ; preds = %321
  br label %323

323:                                              ; preds = %322, %264
  br label %324

324:                                              ; preds = %323
  br label %325

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

326:                                              ; preds = %325
  %327 = load i32, ptr @test_count, align 4, !tbaa !5
  %328 = add nsw i32 %327, 1
  store i32 %328, ptr @test_count, align 4, !tbaa !5
  %329 = getelementptr inbounds [8088 x i8], ptr %7, i64 0, i64 0
  %330 = call i32 @s2n_blob_init(ptr noundef %16, ptr noundef %329, i32 noundef 8088)
  %331 = icmp eq i32 %330, -1
  br i1 %331, label %332, label %385

332:                                              ; preds = %326
  br label %333

333:                                              ; preds = %332
  br label %334

334:                                              ; preds = %333
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #11
  %335 = call ptr @__errno_location() #12
  %336 = load i32, ptr %335, align 4, !tbaa !5
  store i32 %336, ptr %17, align 4, !tbaa !5
  %337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %338 = call i32 @s2n_print_stacktrace(ptr noundef %337)
  %339 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %340 = trunc i8 %339 to i1
  br i1 %340, label %341, label %363

341:                                              ; preds = %334
  %342 = load ptr, ptr @stderr, align 8, !tbaa !9
  %343 = call i32 @fileno(ptr noundef %342) #11
  %344 = call i32 @isatty(i32 noundef %343) #11
  %345 = icmp ne i32 %344, 0
  br i1 %345, label %346, label %363

346:                                              ; preds = %341
  %347 = load i32, ptr %17, align 4, !tbaa !5
  %348 = call ptr @__errno_location() #12
  store i32 %347, ptr %348, align 4, !tbaa !5
  %349 = load ptr, ptr @stderr, align 8, !tbaa !9
  %350 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %352, ptr noundef @.str.3)
  %354 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %355 = load i32, ptr %354, align 4, !tbaa !5
  %356 = call ptr @s2n_strerror_debug(i32 noundef %355, ptr noundef @.str.3)
  %357 = call ptr @__errno_location() #12
  %358 = load i32, ptr %357, align 4, !tbaa !5
  %359 = call ptr @strerror(i32 noundef %358) #11
  %360 = call ptr @__errno_location() #12
  %361 = load i32, ptr %360, align 4, !tbaa !5
  %362 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %349, ptr noundef @.str, i32 noundef %350, ptr noundef @.str.6, ptr noundef @.str.2, i32 noundef 61, ptr noundef %353, ptr noundef %356, ptr noundef %359, i32 noundef %361) #11
  br label %380

363:                                              ; preds = %341, %334
  %364 = load i32, ptr %17, align 4, !tbaa !5
  %365 = call ptr @__errno_location() #12
  store i32 %364, ptr %365, align 4, !tbaa !5
  %366 = load ptr, ptr @stderr, align 8, !tbaa !9
  %367 = load i32, ptr @test_count, align 4, !tbaa !5
  %368 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %369 = load i32, ptr %368, align 4, !tbaa !5
  %370 = call ptr @s2n_strerror(i32 noundef %369, ptr noundef @.str.3)
  %371 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %372 = load i32, ptr %371, align 4, !tbaa !5
  %373 = call ptr @s2n_strerror_debug(i32 noundef %372, ptr noundef @.str.3)
  %374 = call ptr @__errno_location() #12
  %375 = load i32, ptr %374, align 4, !tbaa !5
  %376 = call ptr @strerror(i32 noundef %375) #11
  %377 = call ptr @__errno_location() #12
  %378 = load i32, ptr %377, align 4, !tbaa !5
  %379 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %366, ptr noundef @.str.4, i32 noundef %367, ptr noundef @.str.6, ptr noundef @.str.2, i32 noundef 61, ptr noundef %370, ptr noundef %373, ptr noundef %376, i32 noundef %378) #11
  br label %380

380:                                              ; preds = %363, %346
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #11
  br label %381

381:                                              ; preds = %380
  br label %382

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

383:                                              ; No predecessors!
  br label %384

384:                                              ; preds = %383
  br label %385

385:                                              ; preds = %384, %326
  br label %386

386:                                              ; preds = %385
  br label %387

387:                                              ; preds = %386
  call void @llvm.lifetime.start.p0(i64 129424, ptr %18) #11
  br label %388

388:                                              ; preds = %387
  br label %389

389:                                              ; preds = %388
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %390 = load ptr, ptr @stdout, align 8, !tbaa !9
  %391 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %390, ptr noundef @.str.7, ptr noundef @.str.2) #11
  %392 = load ptr, ptr @stdout, align 8, !tbaa !9
  %393 = call i32 @fflush(ptr noundef %392)
  br label %394

394:                                              ; preds = %389
  %395 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %396 = icmp eq i32 %395, -1
  br i1 %396, label %397, label %450

397:                                              ; preds = %394
  br label %398

398:                                              ; preds = %397
  br label %399

399:                                              ; preds = %398
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #11
  %400 = call ptr @__errno_location() #12
  %401 = load i32, ptr %400, align 4, !tbaa !5
  store i32 %401, ptr %19, align 4, !tbaa !5
  %402 = load ptr, ptr @stderr, align 8, !tbaa !9
  %403 = call i32 @s2n_print_stacktrace(ptr noundef %402)
  %404 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %405 = trunc i8 %404 to i1
  br i1 %405, label %406, label %428

406:                                              ; preds = %399
  %407 = load ptr, ptr @stderr, align 8, !tbaa !9
  %408 = call i32 @fileno(ptr noundef %407) #11
  %409 = call i32 @isatty(i32 noundef %408) #11
  %410 = icmp ne i32 %409, 0
  br i1 %410, label %411, label %428

411:                                              ; preds = %406
  %412 = load i32, ptr %19, align 4, !tbaa !5
  %413 = call ptr @__errno_location() #12
  store i32 %412, ptr %413, align 4, !tbaa !5
  %414 = load ptr, ptr @stderr, align 8, !tbaa !9
  %415 = load i32, ptr @test_count, align 4, !tbaa !5
  %416 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %417 = load i32, ptr %416, align 4, !tbaa !5
  %418 = call ptr @s2n_strerror(i32 noundef %417, ptr noundef @.str.3)
  %419 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %420 = load i32, ptr %419, align 4, !tbaa !5
  %421 = call ptr @s2n_strerror_debug(i32 noundef %420, ptr noundef @.str.3)
  %422 = call ptr @__errno_location() #12
  %423 = load i32, ptr %422, align 4, !tbaa !5
  %424 = call ptr @strerror(i32 noundef %423) #11
  %425 = call ptr @__errno_location() #12
  %426 = load i32, ptr %425, align 4, !tbaa !5
  %427 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %414, ptr noundef @.str, i32 noundef %415, ptr noundef @.str.8, ptr noundef @.str.2, i32 noundef 65, ptr noundef %418, ptr noundef %421, ptr noundef %424, i32 noundef %426) #11
  br label %445

428:                                              ; preds = %406, %399
  %429 = load i32, ptr %19, align 4, !tbaa !5
  %430 = call ptr @__errno_location() #12
  store i32 %429, ptr %430, align 4, !tbaa !5
  %431 = load ptr, ptr @stderr, align 8, !tbaa !9
  %432 = load i32, ptr @test_count, align 4, !tbaa !5
  %433 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %434 = load i32, ptr %433, align 4, !tbaa !5
  %435 = call ptr @s2n_strerror(i32 noundef %434, ptr noundef @.str.3)
  %436 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %437 = load i32, ptr %436, align 4, !tbaa !5
  %438 = call ptr @s2n_strerror_debug(i32 noundef %437, ptr noundef @.str.3)
  %439 = call ptr @__errno_location() #12
  %440 = load i32, ptr %439, align 4, !tbaa !5
  %441 = call ptr @strerror(i32 noundef %440) #11
  %442 = call ptr @__errno_location() #12
  %443 = load i32, ptr %442, align 4, !tbaa !5
  %444 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %431, ptr noundef @.str.4, i32 noundef %432, ptr noundef @.str.8, ptr noundef @.str.2, i32 noundef 65, ptr noundef %435, ptr noundef %438, ptr noundef %441, i32 noundef %443) #11
  br label %445

445:                                              ; preds = %428, %411
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #11
  br label %446

446:                                              ; preds = %445
  br label %447

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

448:                                              ; No predecessors!
  br label %449

449:                                              ; preds = %448
  br label %450

450:                                              ; preds = %449, %394
  br label %451

451:                                              ; preds = %450
  br label %452

452:                                              ; preds = %451
  br label %453

453:                                              ; preds = %452
  %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 @s2n_enable_atexit()
  %457 = icmp eq i32 %456, -1
  br i1 %457, label %458, label %511

458:                                              ; preds = %453
  br label %459

459:                                              ; preds = %458
  br label %460

460:                                              ; preds = %459
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #11
  %461 = call ptr @__errno_location() #12
  %462 = load i32, ptr %461, align 4, !tbaa !5
  store i32 %462, ptr %20, align 4, !tbaa !5
  %463 = load ptr, ptr @stderr, align 8, !tbaa !9
  %464 = call i32 @s2n_print_stacktrace(ptr noundef %463)
  %465 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %466 = trunc i8 %465 to i1
  br i1 %466, label %467, label %489

467:                                              ; preds = %460
  %468 = load ptr, ptr @stderr, align 8, !tbaa !9
  %469 = call i32 @fileno(ptr noundef %468) #11
  %470 = call i32 @isatty(i32 noundef %469) #11
  %471 = icmp ne i32 %470, 0
  br i1 %471, label %472, label %489

472:                                              ; preds = %467
  %473 = load i32, ptr %20, align 4, !tbaa !5
  %474 = call ptr @__errno_location() #12
  store i32 %473, ptr %474, align 4, !tbaa !5
  %475 = load ptr, ptr @stderr, align 8, !tbaa !9
  %476 = load i32, ptr @test_count, align 4, !tbaa !5
  %477 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %478 = load i32, ptr %477, align 4, !tbaa !5
  %479 = call ptr @s2n_strerror(i32 noundef %478, ptr noundef @.str.3)
  %480 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %481 = load i32, ptr %480, align 4, !tbaa !5
  %482 = call ptr @s2n_strerror_debug(i32 noundef %481, ptr noundef @.str.3)
  %483 = call ptr @__errno_location() #12
  %484 = load i32, ptr %483, align 4, !tbaa !5
  %485 = call ptr @strerror(i32 noundef %484) #11
  %486 = call ptr @__errno_location() #12
  %487 = load i32, ptr %486, align 4, !tbaa !5
  %488 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %475, ptr noundef @.str, i32 noundef %476, ptr noundef @.str.9, ptr noundef @.str.2, i32 noundef 65, ptr noundef %479, ptr noundef %482, ptr noundef %485, i32 noundef %487) #11
  br label %506

489:                                              ; preds = %467, %460
  %490 = load i32, ptr %20, align 4, !tbaa !5
  %491 = call ptr @__errno_location() #12
  store i32 %490, ptr %491, align 4, !tbaa !5
  %492 = load ptr, ptr @stderr, align 8, !tbaa !9
  %493 = load i32, ptr @test_count, align 4, !tbaa !5
  %494 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %495 = load i32, ptr %494, align 4, !tbaa !5
  %496 = call ptr @s2n_strerror(i32 noundef %495, ptr noundef @.str.3)
  %497 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %498 = load i32, ptr %497, align 4, !tbaa !5
  %499 = call ptr @s2n_strerror_debug(i32 noundef %498, ptr noundef @.str.3)
  %500 = call ptr @__errno_location() #12
  %501 = load i32, ptr %500, align 4, !tbaa !5
  %502 = call ptr @strerror(i32 noundef %501) #11
  %503 = call ptr @__errno_location() #12
  %504 = load i32, ptr %503, align 4, !tbaa !5
  %505 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %492, ptr noundef @.str.4, i32 noundef %493, ptr noundef @.str.9, ptr noundef @.str.2, i32 noundef 65, ptr noundef %496, ptr noundef %499, ptr noundef %502, i32 noundef %504) #11
  br label %506

506:                                              ; preds = %489, %472
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #11
  br label %507

507:                                              ; preds = %506
  br label %508

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

509:                                              ; No predecessors!
  br label %510

510:                                              ; preds = %509
  br label %511

511:                                              ; preds = %510, %453
  br label %512

512:                                              ; preds = %511
  br label %513

513:                                              ; preds = %512
  br label %514

514:                                              ; preds = %513
  br label %515

515:                                              ; preds = %514
  br label %516

516:                                              ; preds = %515
  %517 = call i32 @s2n_init()
  %518 = icmp eq i32 %517, -1
  br i1 %518, label %519, label %572

519:                                              ; preds = %516
  br label %520

520:                                              ; preds = %519
  br label %521

521:                                              ; preds = %520
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #11
  %522 = call ptr @__errno_location() #12
  %523 = load i32, ptr %522, align 4, !tbaa !5
  store i32 %523, ptr %21, align 4, !tbaa !5
  %524 = load ptr, ptr @stderr, align 8, !tbaa !9
  %525 = call i32 @s2n_print_stacktrace(ptr noundef %524)
  %526 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %527 = trunc i8 %526 to i1
  br i1 %527, label %528, label %550

528:                                              ; preds = %521
  %529 = load ptr, ptr @stderr, align 8, !tbaa !9
  %530 = call i32 @fileno(ptr noundef %529) #11
  %531 = call i32 @isatty(i32 noundef %530) #11
  %532 = icmp ne i32 %531, 0
  br i1 %532, label %533, label %550

533:                                              ; preds = %528
  %534 = load i32, ptr %21, align 4, !tbaa !5
  %535 = call ptr @__errno_location() #12
  store i32 %534, ptr %535, align 4, !tbaa !5
  %536 = load ptr, ptr @stderr, align 8, !tbaa !9
  %537 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %539, ptr noundef @.str.3)
  %541 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %542 = load i32, ptr %541, align 4, !tbaa !5
  %543 = call ptr @s2n_strerror_debug(i32 noundef %542, ptr noundef @.str.3)
  %544 = call ptr @__errno_location() #12
  %545 = load i32, ptr %544, align 4, !tbaa !5
  %546 = call ptr @strerror(i32 noundef %545) #11
  %547 = call ptr @__errno_location() #12
  %548 = load i32, ptr %547, align 4, !tbaa !5
  %549 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %536, ptr noundef @.str, i32 noundef %537, ptr noundef @.str.10, ptr noundef @.str.2, i32 noundef 65, ptr noundef %540, ptr noundef %543, ptr noundef %546, i32 noundef %548) #11
  br label %567

550:                                              ; preds = %528, %521
  %551 = load i32, ptr %21, align 4, !tbaa !5
  %552 = call ptr @__errno_location() #12
  store i32 %551, ptr %552, align 4, !tbaa !5
  %553 = load ptr, ptr @stderr, align 8, !tbaa !9
  %554 = load i32, ptr @test_count, align 4, !tbaa !5
  %555 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %556 = load i32, ptr %555, align 4, !tbaa !5
  %557 = call ptr @s2n_strerror(i32 noundef %556, ptr noundef @.str.3)
  %558 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %559 = load i32, ptr %558, align 4, !tbaa !5
  %560 = call ptr @s2n_strerror_debug(i32 noundef %559, ptr noundef @.str.3)
  %561 = call ptr @__errno_location() #12
  %562 = load i32, ptr %561, align 4, !tbaa !5
  %563 = call ptr @strerror(i32 noundef %562) #11
  %564 = call ptr @__errno_location() #12
  %565 = load i32, ptr %564, align 4, !tbaa !5
  %566 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %553, ptr noundef @.str.4, i32 noundef %554, ptr noundef @.str.10, ptr noundef @.str.2, i32 noundef 65, ptr noundef %557, ptr noundef %560, ptr noundef %563, i32 noundef %565) #11
  br label %567

567:                                              ; preds = %550, %533
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #11
  br label %568

568:                                              ; preds = %567
  br label %569

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

570:                                              ; No predecessors!
  br label %571

571:                                              ; preds = %570
  br label %572

572:                                              ; preds = %571, %516
  br label %573

573:                                              ; preds = %572
  br label %574

574:                                              ; preds = %573
  br label %575

575:                                              ; preds = %574
  br label %576

576:                                              ; preds = %575
  br label %577

577:                                              ; preds = %576
  %578 = load i32, ptr @test_count, align 4, !tbaa !5
  %579 = add nsw i32 %578, 1
  store i32 %579, ptr @test_count, align 4, !tbaa !5
  %580 = call i32 (...) @s2n_disable_tls13_in_test()
  %581 = icmp eq i32 %580, -1
  br i1 %581, label %582, label %635

582:                                              ; preds = %577
  br label %583

583:                                              ; preds = %582
  br label %584

584:                                              ; preds = %583
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #11
  %585 = call ptr @__errno_location() #12
  %586 = load i32, ptr %585, align 4, !tbaa !5
  store i32 %586, ptr %22, align 4, !tbaa !5
  %587 = load ptr, ptr @stderr, align 8, !tbaa !9
  %588 = call i32 @s2n_print_stacktrace(ptr noundef %587)
  %589 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %590 = trunc i8 %589 to i1
  br i1 %590, label %591, label %613

591:                                              ; preds = %584
  %592 = load ptr, ptr @stderr, align 8, !tbaa !9
  %593 = call i32 @fileno(ptr noundef %592) #11
  %594 = call i32 @isatty(i32 noundef %593) #11
  %595 = icmp ne i32 %594, 0
  br i1 %595, label %596, label %613

596:                                              ; preds = %591
  %597 = load i32, ptr %22, align 4, !tbaa !5
  %598 = call ptr @__errno_location() #12
  store i32 %597, ptr %598, align 4, !tbaa !5
  %599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %600 = load i32, ptr @test_count, align 4, !tbaa !5
  %601 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %602 = load i32, ptr %601, align 4, !tbaa !5
  %603 = call ptr @s2n_strerror(i32 noundef %602, ptr noundef @.str.3)
  %604 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %605 = load i32, ptr %604, align 4, !tbaa !5
  %606 = call ptr @s2n_strerror_debug(i32 noundef %605, ptr noundef @.str.3)
  %607 = call ptr @__errno_location() #12
  %608 = load i32, ptr %607, align 4, !tbaa !5
  %609 = call ptr @strerror(i32 noundef %608) #11
  %610 = call ptr @__errno_location() #12
  %611 = load i32, ptr %610, align 4, !tbaa !5
  %612 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %599, ptr noundef @.str, i32 noundef %600, ptr noundef @.str.11, ptr noundef @.str.2, i32 noundef 66, ptr noundef %603, ptr noundef %606, ptr noundef %609, i32 noundef %611) #11
  br label %630

613:                                              ; preds = %591, %584
  %614 = load i32, ptr %22, align 4, !tbaa !5
  %615 = call ptr @__errno_location() #12
  store i32 %614, ptr %615, align 4, !tbaa !5
  %616 = load ptr, ptr @stderr, align 8, !tbaa !9
  %617 = load i32, ptr @test_count, align 4, !tbaa !5
  %618 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %619 = load i32, ptr %618, align 4, !tbaa !5
  %620 = call ptr @s2n_strerror(i32 noundef %619, ptr noundef @.str.3)
  %621 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %622 = load i32, ptr %621, align 4, !tbaa !5
  %623 = call ptr @s2n_strerror_debug(i32 noundef %622, ptr noundef @.str.3)
  %624 = call ptr @__errno_location() #12
  %625 = load i32, ptr %624, align 4, !tbaa !5
  %626 = call ptr @strerror(i32 noundef %625) #11
  %627 = call ptr @__errno_location() #12
  %628 = load i32, ptr %627, align 4, !tbaa !5
  %629 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %616, ptr noundef @.str.4, i32 noundef %617, ptr noundef @.str.11, ptr noundef @.str.2, i32 noundef 66, ptr noundef %620, ptr noundef %623, ptr noundef %626, i32 noundef %628) #11
  br label %630

630:                                              ; preds = %613, %596
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #11
  br label %631

631:                                              ; preds = %630
  br label %632

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

633:                                              ; No predecessors!
  br label %634

634:                                              ; preds = %633
  br label %635

635:                                              ; preds = %634, %577
  br label %636

636:                                              ; preds = %635
  br label %637

637:                                              ; preds = %636
  %638 = load ptr, ptr getelementptr inbounds (%struct.s2n_cipher, ptr @s2n_aes128_sha, i32 0, i32 3), align 8, !tbaa !15
  %639 = call zeroext i1 %638()
  br i1 %639, label %640, label %649

640:                                              ; preds = %637
  %641 = load ptr, ptr getelementptr inbounds (%struct.s2n_cipher, ptr @s2n_aes256_sha, i32 0, i32 3), align 8, !tbaa !15
  %642 = call zeroext i1 %641()
  br i1 %642, label %643, label %649

643:                                              ; preds = %640
  %644 = load ptr, ptr getelementptr inbounds (%struct.s2n_cipher, ptr @s2n_aes128_sha256, i32 0, i32 3), align 8, !tbaa !15
  %645 = call zeroext i1 %644()
  br i1 %645, label %646, label %649

646:                                              ; preds = %643
  %647 = load ptr, ptr getelementptr inbounds (%struct.s2n_cipher, ptr @s2n_aes256_sha256, i32 0, i32 3), align 8, !tbaa !15
  %648 = call zeroext i1 %647()
  br i1 %648, label %804, label %649

649:                                              ; preds = %646, %643, %640, %637
  br label %650

650:                                              ; preds = %649
  br label %651

651:                                              ; preds = %650
  %652 = call i32 @s2n_cleanup()
  %653 = icmp eq i32 %652, -1
  br i1 %653, label %654, label %707

654:                                              ; preds = %651
  br label %655

655:                                              ; preds = %654
  br label %656

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

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

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

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

702:                                              ; preds = %685, %668
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #11
  br label %703

703:                                              ; preds = %702
  br label %704

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

705:                                              ; No predecessors!
  br label %706

706:                                              ; preds = %705
  br label %707

707:                                              ; preds = %706, %651
  br label %708

708:                                              ; preds = %707
  br label %709

709:                                              ; preds = %708
  br label %710

710:                                              ; preds = %709
  br label %711

711:                                              ; preds = %710
  %712 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %713 = icmp eq i32 %712, -1
  br i1 %713, label %714, label %767

714:                                              ; preds = %711
  br label %715

715:                                              ; preds = %714
  br label %716

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

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

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

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

762:                                              ; preds = %745, %728
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #11
  br label %763

763:                                              ; preds = %762
  br label %764

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

765:                                              ; No predecessors!
  br label %766

766:                                              ; preds = %765
  br label %767

767:                                              ; preds = %766, %711
  br label %768

768:                                              ; preds = %767
  br label %769

769:                                              ; preds = %768
  %770 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %771 = trunc i8 %770 to i1
  br i1 %771, label %772, label %788

772:                                              ; preds = %769
  %773 = load ptr, ptr @stdout, align 8, !tbaa !9
  %774 = call i32 @fileno(ptr noundef %773) #11
  %775 = call i32 @isatty(i32 noundef %774) #11
  %776 = icmp ne i32 %775, 0
  br i1 %776, label %777, label %788

777:                                              ; preds = %772
  %778 = load i32, ptr @test_count, align 4, !tbaa !5
  %779 = icmp ne i32 %778, 0
  br i1 %779, label %780, label %784

780:                                              ; preds = %777
  %781 = load ptr, ptr @stdout, align 8, !tbaa !9
  %782 = load i32, ptr @test_count, align 4, !tbaa !5
  %783 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %781, ptr noundef @.str.14, i32 noundef %782) #11
  br label %787

784:                                              ; preds = %777
  %785 = load ptr, ptr @stdout, align 8, !tbaa !9
  %786 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %785, ptr noundef @.str.15) #11
  br label %787

787:                                              ; preds = %784, %780
  br label %799

788:                                              ; preds = %772, %769
  %789 = load i32, ptr @test_count, align 4, !tbaa !5
  %790 = icmp ne i32 %789, 0
  br i1 %790, label %791, label %795

791:                                              ; preds = %788
  %792 = load ptr, ptr @stdout, align 8, !tbaa !9
  %793 = load i32, ptr @test_count, align 4, !tbaa !5
  %794 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %792, ptr noundef @.str.16, i32 noundef %793) #11
  br label %798

795:                                              ; preds = %788
  %796 = load ptr, ptr @stdout, align 8, !tbaa !9
  %797 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %796, ptr noundef @.str.17) #11
  br label %798

798:                                              ; preds = %795, %791
  br label %799

799:                                              ; preds = %798, %787
  store i32 0, ptr %3, align 4
  store i32 1, ptr %25, align 4
  br label %9117

800:                                              ; No predecessors!
  br label %801

801:                                              ; preds = %800
  br label %802

802:                                              ; preds = %801
  br label %803

803:                                              ; preds = %802
  br label %804

804:                                              ; preds = %803, %646
  br label %805

805:                                              ; preds = %804
  %806 = load i32, ptr @test_count, align 4, !tbaa !5
  %807 = add nsw i32 %806, 1
  store i32 %807, ptr @test_count, align 4, !tbaa !5
  %808 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %808, ptr %6, align 8, !tbaa !9
  %809 = icmp eq ptr %808, null
  br i1 %809, label %810, label %863

810:                                              ; preds = %805
  br label %811

811:                                              ; preds = %810
  br label %812

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

819:                                              ; preds = %812
  %820 = load ptr, ptr @stderr, align 8, !tbaa !9
  %821 = call i32 @fileno(ptr noundef %820) #11
  %822 = call i32 @isatty(i32 noundef %821) #11
  %823 = icmp ne i32 %822, 0
  br i1 %823, label %824, label %841

824:                                              ; preds = %819
  %825 = load i32, ptr %26, align 4, !tbaa !5
  %826 = call ptr @__errno_location() #12
  store i32 %825, ptr %826, align 4, !tbaa !5
  %827 = load ptr, ptr @stderr, align 8, !tbaa !9
  %828 = load i32, ptr @test_count, align 4, !tbaa !5
  %829 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %830 = load i32, ptr %829, align 4, !tbaa !5
  %831 = call ptr @s2n_strerror(i32 noundef %830, ptr noundef @.str.3)
  %832 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %833 = load i32, ptr %832, align 4, !tbaa !5
  %834 = call ptr @s2n_strerror_debug(i32 noundef %833, ptr noundef @.str.3)
  %835 = call ptr @__errno_location() #12
  %836 = load i32, ptr %835, align 4, !tbaa !5
  %837 = call ptr @strerror(i32 noundef %836) #11
  %838 = call ptr @__errno_location() #12
  %839 = load i32, ptr %838, align 4, !tbaa !5
  %840 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %827, ptr noundef @.str, i32 noundef %828, ptr noundef @.str.18, ptr noundef @.str.2, i32 noundef 76, ptr noundef %831, ptr noundef %834, ptr noundef %837, i32 noundef %839) #11
  br label %858

841:                                              ; preds = %819, %812
  %842 = load i32, ptr %26, align 4, !tbaa !5
  %843 = call ptr @__errno_location() #12
  store i32 %842, ptr %843, align 4, !tbaa !5
  %844 = load ptr, ptr @stderr, align 8, !tbaa !9
  %845 = load i32, ptr @test_count, align 4, !tbaa !5
  %846 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %847 = load i32, ptr %846, align 4, !tbaa !5
  %848 = call ptr @s2n_strerror(i32 noundef %847, ptr noundef @.str.3)
  %849 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %850 = load i32, ptr %849, align 4, !tbaa !5
  %851 = call ptr @s2n_strerror_debug(i32 noundef %850, ptr noundef @.str.3)
  %852 = call ptr @__errno_location() #12
  %853 = load i32, ptr %852, align 4, !tbaa !5
  %854 = call ptr @strerror(i32 noundef %853) #11
  %855 = call ptr @__errno_location() #12
  %856 = load i32, ptr %855, align 4, !tbaa !5
  %857 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %844, ptr noundef @.str.4, i32 noundef %845, ptr noundef @.str.18, ptr noundef @.str.2, i32 noundef 76, ptr noundef %848, ptr noundef %851, ptr noundef %854, i32 noundef %856) #11
  br label %858

858:                                              ; preds = %841, %824
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #11
  br label %859

859:                                              ; preds = %858
  br label %860

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

861:                                              ; No predecessors!
  br label %862

862:                                              ; preds = %861
  br label %863

863:                                              ; preds = %862, %805
  br label %864

864:                                              ; preds = %863
  br label %865

865:                                              ; preds = %864
  br label %866

866:                                              ; preds = %865
  %867 = load i32, ptr @test_count, align 4, !tbaa !5
  %868 = add nsw i32 %867, 1
  store i32 %868, ptr @test_count, align 4, !tbaa !5
  %869 = call i32 @s2n_get_public_random_data(ptr noundef %16)
  %870 = getelementptr inbounds %struct.s2n_result, ptr %27, i32 0, i32 0
  store i32 %869, ptr %870, align 4
  %871 = getelementptr inbounds %struct.s2n_result, ptr %27, i32 0, i32 0
  %872 = load i32, ptr %871, align 4
  %873 = call zeroext i1 @s2n_result_is_ok(i32 %872)
  br i1 %873, label %927, label %874

874:                                              ; preds = %866
  br label %875

875:                                              ; preds = %874
  br label %876

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

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

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

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

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

923:                                              ; preds = %922
  br label %924

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

925:                                              ; No predecessors!
  br label %926

926:                                              ; preds = %925
  br label %927

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

928:                                              ; preds = %927
  br label %929

929:                                              ; preds = %928
  %930 = load ptr, ptr %6, align 8, !tbaa !9
  %931 = getelementptr inbounds %struct.s2n_connection, ptr %930, i32 0, i32 26
  %932 = load ptr, ptr %931, align 8, !tbaa !17
  %933 = load ptr, ptr %6, align 8, !tbaa !9
  %934 = getelementptr inbounds %struct.s2n_connection, ptr %933, i32 0, i32 30
  store ptr %932, ptr %934, align 8, !tbaa !44
  %935 = load ptr, ptr %6, align 8, !tbaa !9
  %936 = getelementptr inbounds %struct.s2n_connection, ptr %935, i32 0, i32 26
  %937 = load ptr, ptr %936, align 8, !tbaa !17
  %938 = load ptr, ptr %6, align 8, !tbaa !9
  %939 = getelementptr inbounds %struct.s2n_connection, ptr %938, i32 0, i32 29
  store ptr %937, ptr %939, align 8, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #11
  store i32 8087, ptr %29, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 3, ptr %30) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %30, ptr align 1 @__const.main.proto_versions, i64 3, i1 false)
  %940 = load ptr, ptr %6, align 8, !tbaa !9
  %941 = getelementptr inbounds %struct.s2n_connection, ptr %940, i32 0, i32 26
  %942 = load ptr, ptr %941, align 8, !tbaa !17
  %943 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %942, i32 0, i32 0
  %944 = load ptr, ptr %943, align 8, !tbaa !46
  %945 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %944, i32 0, i32 6
  store ptr @s2n_record_alg_aes128_sha_composite, ptr %945, align 8, !tbaa !51
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #11
  store i32 0, ptr %31, align 4, !tbaa !5
  br label %946

946:                                              ; preds = %2926, %929
  %947 = load i32, ptr %31, align 4, !tbaa !5
  %948 = icmp slt i32 %947, 3
  br i1 %948, label %950, label %949

949:                                              ; preds = %946
  store i32 76, ptr %25, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #11
  br label %2929

950:                                              ; preds = %946
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #11
  store i64 0, ptr %32, align 8, !tbaa !53
  br label %951

951:                                              ; preds = %2922, %950
  %952 = load i64, ptr %32, align 8, !tbaa !53
  %953 = icmp ule i64 %952, 8088
  br i1 %953, label %955, label %954

954:                                              ; preds = %951
  store i32 79, ptr %25, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #11
  br label %2925

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

956:                                              ; preds = %955
  %957 = load i32, ptr @test_count, align 4, !tbaa !5
  %958 = add nsw i32 %957, 1
  store i32 %958, ptr @test_count, align 4, !tbaa !5
  %959 = getelementptr inbounds [8088 x i8], ptr %7, i64 0, i64 0
  %960 = load i64, ptr %32, align 8, !tbaa !53
  %961 = trunc i64 %960 to i32
  %962 = call i32 @s2n_blob_init(ptr noundef %33, ptr noundef %959, i32 noundef %961)
  %963 = icmp eq i32 %962, -1
  br i1 %963, label %964, label %1017

964:                                              ; preds = %956
  br label %965

965:                                              ; preds = %964
  br label %966

966:                                              ; preds = %965
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #11
  %967 = call ptr @__errno_location() #12
  %968 = load i32, ptr %967, align 4, !tbaa !5
  store i32 %968, ptr %34, align 4, !tbaa !5
  %969 = load ptr, ptr @stderr, align 8, !tbaa !9
  %970 = call i32 @s2n_print_stacktrace(ptr noundef %969)
  %971 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %972 = trunc i8 %971 to i1
  br i1 %972, label %973, label %995

973:                                              ; preds = %966
  %974 = load ptr, ptr @stderr, align 8, !tbaa !9
  %975 = call i32 @fileno(ptr noundef %974) #11
  %976 = call i32 @isatty(i32 noundef %975) #11
  %977 = icmp ne i32 %976, 0
  br i1 %977, label %978, label %995

978:                                              ; preds = %973
  %979 = load i32, ptr %34, align 4, !tbaa !5
  %980 = call ptr @__errno_location() #12
  store i32 %979, ptr %980, align 4, !tbaa !5
  %981 = load ptr, ptr @stderr, align 8, !tbaa !9
  %982 = load i32, ptr @test_count, align 4, !tbaa !5
  %983 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %984 = load i32, ptr %983, align 4, !tbaa !5
  %985 = call ptr @s2n_strerror(i32 noundef %984, ptr noundef @.str.3)
  %986 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %987 = load i32, ptr %986, align 4, !tbaa !5
  %988 = call ptr @s2n_strerror_debug(i32 noundef %987, ptr noundef @.str.3)
  %989 = call ptr @__errno_location() #12
  %990 = load i32, ptr %989, align 4, !tbaa !5
  %991 = call ptr @strerror(i32 noundef %990) #11
  %992 = call ptr @__errno_location() #12
  %993 = load i32, ptr %992, align 4, !tbaa !5
  %994 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %981, ptr noundef @.str, i32 noundef %982, ptr noundef @.str.20, ptr noundef @.str.2, i32 noundef 95, ptr noundef %985, ptr noundef %988, ptr noundef %991, i32 noundef %993) #11
  br label %1012

995:                                              ; preds = %973, %966
  %996 = load i32, ptr %34, align 4, !tbaa !5
  %997 = call ptr @__errno_location() #12
  store i32 %996, ptr %997, align 4, !tbaa !5
  %998 = load ptr, ptr @stderr, align 8, !tbaa !9
  %999 = load i32, ptr @test_count, align 4, !tbaa !5
  %1000 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1001 = load i32, ptr %1000, align 4, !tbaa !5
  %1002 = call ptr @s2n_strerror(i32 noundef %1001, ptr noundef @.str.3)
  %1003 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1004 = load i32, ptr %1003, align 4, !tbaa !5
  %1005 = call ptr @s2n_strerror_debug(i32 noundef %1004, ptr noundef @.str.3)
  %1006 = call ptr @__errno_location() #12
  %1007 = load i32, ptr %1006, align 4, !tbaa !5
  %1008 = call ptr @strerror(i32 noundef %1007) #11
  %1009 = call ptr @__errno_location() #12
  %1010 = load i32, ptr %1009, align 4, !tbaa !5
  %1011 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %998, ptr noundef @.str.4, i32 noundef %999, ptr noundef @.str.20, ptr noundef @.str.2, i32 noundef 95, ptr noundef %1002, ptr noundef %1005, ptr noundef %1008, i32 noundef %1010) #11
  br label %1012

1012:                                             ; preds = %995, %978
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #11
  br label %1013

1013:                                             ; preds = %1012
  br label %1014

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

1015:                                             ; No predecessors!
  br label %1016

1016:                                             ; preds = %1015
  br label %1017

1017:                                             ; preds = %1016, %956
  br label %1018

1018:                                             ; preds = %1017
  br label %1019

1019:                                             ; preds = %1018
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #11
  store i32 0, ptr %35, align 4, !tbaa !5
  br label %1020

1020:                                             ; preds = %1019
  %1021 = load i32, ptr @test_count, align 4, !tbaa !5
  %1022 = add nsw i32 %1021, 1
  store i32 %1022, ptr @test_count, align 4, !tbaa !5
  %1023 = load ptr, ptr %6, align 8, !tbaa !9
  %1024 = call i32 @s2n_connection_wipe(ptr noundef %1023)
  %1025 = icmp eq i32 %1024, -1
  br i1 %1025, label %1026, label %1079

1026:                                             ; preds = %1020
  br label %1027

1027:                                             ; preds = %1026
  br label %1028

1028:                                             ; preds = %1027
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #11
  %1029 = call ptr @__errno_location() #12
  %1030 = load i32, ptr %1029, align 4, !tbaa !5
  store i32 %1030, ptr %36, align 4, !tbaa !5
  %1031 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1032 = call i32 @s2n_print_stacktrace(ptr noundef %1031)
  %1033 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1034 = trunc i8 %1033 to i1
  br i1 %1034, label %1035, label %1057

1035:                                             ; preds = %1028
  %1036 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1037 = call i32 @fileno(ptr noundef %1036) #11
  %1038 = call i32 @isatty(i32 noundef %1037) #11
  %1039 = icmp ne i32 %1038, 0
  br i1 %1039, label %1040, label %1057

1040:                                             ; preds = %1035
  %1041 = load i32, ptr %36, 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, i32 noundef %1044, ptr noundef @.str.21, ptr noundef @.str.2, i32 noundef 98, ptr noundef %1047, ptr noundef %1050, ptr noundef %1053, i32 noundef %1055) #11
  br label %1074

1057:                                             ; preds = %1035, %1028
  %1058 = load i32, ptr %36, align 4, !tbaa !5
  %1059 = call ptr @__errno_location() #12
  store i32 %1058, ptr %1059, align 4, !tbaa !5
  %1060 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1061 = load i32, ptr @test_count, align 4, !tbaa !5
  %1062 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1063 = load i32, ptr %1062, align 4, !tbaa !5
  %1064 = call ptr @s2n_strerror(i32 noundef %1063, ptr noundef @.str.3)
  %1065 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1066 = load i32, ptr %1065, align 4, !tbaa !5
  %1067 = call ptr @s2n_strerror_debug(i32 noundef %1066, ptr noundef @.str.3)
  %1068 = call ptr @__errno_location() #12
  %1069 = load i32, ptr %1068, align 4, !tbaa !5
  %1070 = call ptr @strerror(i32 noundef %1069) #11
  %1071 = call ptr @__errno_location() #12
  %1072 = load i32, ptr %1071, align 4, !tbaa !5
  %1073 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1060, ptr noundef @.str.4, i32 noundef %1061, ptr noundef @.str.21, ptr noundef @.str.2, i32 noundef 98, ptr noundef %1064, ptr noundef %1067, ptr noundef %1070, i32 noundef %1072) #11
  br label %1074

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

1075:                                             ; preds = %1074
  br label %1076

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

1077:                                             ; No predecessors!
  br label %1078

1078:                                             ; preds = %1077
  br label %1079

1079:                                             ; preds = %1078, %1020
  br label %1080

1080:                                             ; preds = %1079
  br label %1081

1081:                                             ; preds = %1080
  br label %1082

1082:                                             ; preds = %1081
  %1083 = load i32, ptr @test_count, align 4, !tbaa !5
  %1084 = add nsw i32 %1083, 1
  store i32 %1084, ptr @test_count, align 4, !tbaa !5
  %1085 = load ptr, ptr %6, align 8, !tbaa !9
  %1086 = getelementptr inbounds %struct.s2n_connection, ptr %1085, i32 0, i32 26
  %1087 = load ptr, ptr %1086, align 8, !tbaa !17
  %1088 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %1087, i32 0, i32 0
  %1089 = load ptr, ptr %1088, align 8, !tbaa !46
  %1090 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %1089, i32 0, i32 6
  %1091 = load ptr, ptr %1090, align 8, !tbaa !51
  %1092 = getelementptr inbounds %struct.s2n_record_algorithm, ptr %1091, i32 0, i32 0
  %1093 = load ptr, ptr %1092, align 8, !tbaa !54
  %1094 = getelementptr inbounds %struct.s2n_cipher, ptr %1093, i32 0, i32 6
  %1095 = load ptr, ptr %1094, align 8, !tbaa !56
  %1096 = load ptr, ptr %6, align 8, !tbaa !9
  %1097 = getelementptr inbounds %struct.s2n_connection, ptr %1096, i32 0, i32 26
  %1098 = load ptr, ptr %1097, align 8, !tbaa !17
  %1099 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %1098, i32 0, i32 2
  %1100 = call i32 %1095(ptr noundef %1099, ptr noundef %12)
  %1101 = getelementptr inbounds %struct.s2n_result, ptr %37, i32 0, i32 0
  store i32 %1100, ptr %1101, align 4
  %1102 = getelementptr inbounds %struct.s2n_result, ptr %37, i32 0, i32 0
  %1103 = load i32, ptr %1102, align 4
  %1104 = call zeroext i1 @s2n_result_is_ok(i32 %1103)
  br i1 %1104, label %1158, label %1105

1105:                                             ; preds = %1082
  br label %1106

1106:                                             ; preds = %1105
  br label %1107

1107:                                             ; preds = %1106
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #11
  %1108 = call ptr @__errno_location() #12
  %1109 = load i32, ptr %1108, align 4, !tbaa !5
  store i32 %1109, ptr %38, align 4, !tbaa !5
  %1110 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1111 = call i32 @s2n_print_stacktrace(ptr noundef %1110)
  %1112 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1113 = trunc i8 %1112 to i1
  br i1 %1113, label %1114, label %1136

1114:                                             ; preds = %1107
  %1115 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1116 = call i32 @fileno(ptr noundef %1115) #11
  %1117 = call i32 @isatty(i32 noundef %1116) #11
  %1118 = icmp ne i32 %1117, 0
  br i1 %1118, label %1119, label %1136

1119:                                             ; preds = %1114
  %1120 = load i32, ptr %38, align 4, !tbaa !5
  %1121 = call ptr @__errno_location() #12
  store i32 %1120, ptr %1121, align 4, !tbaa !5
  %1122 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1123 = load i32, ptr @test_count, align 4, !tbaa !5
  %1124 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1125 = load i32, ptr %1124, align 4, !tbaa !5
  %1126 = call ptr @s2n_strerror(i32 noundef %1125, ptr noundef @.str.3)
  %1127 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1128 = load i32, ptr %1127, align 4, !tbaa !5
  %1129 = call ptr @s2n_strerror_debug(i32 noundef %1128, ptr noundef @.str.3)
  %1130 = call ptr @__errno_location() #12
  %1131 = load i32, ptr %1130, align 4, !tbaa !5
  %1132 = call ptr @strerror(i32 noundef %1131) #11
  %1133 = call ptr @__errno_location() #12
  %1134 = load i32, ptr %1133, align 4, !tbaa !5
  %1135 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1122, ptr noundef @.str, i32 noundef %1123, ptr noundef @.str.22, ptr noundef @.str.2, i32 noundef 100, ptr noundef %1126, ptr noundef %1129, ptr noundef %1132, i32 noundef %1134) #11
  br label %1153

1136:                                             ; preds = %1114, %1107
  %1137 = load i32, ptr %38, align 4, !tbaa !5
  %1138 = call ptr @__errno_location() #12
  store i32 %1137, ptr %1138, align 4, !tbaa !5
  %1139 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1140 = load i32, ptr @test_count, align 4, !tbaa !5
  %1141 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1142 = load i32, ptr %1141, align 4, !tbaa !5
  %1143 = call ptr @s2n_strerror(i32 noundef %1142, ptr noundef @.str.3)
  %1144 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1145 = load i32, ptr %1144, align 4, !tbaa !5
  %1146 = call ptr @s2n_strerror_debug(i32 noundef %1145, ptr noundef @.str.3)
  %1147 = call ptr @__errno_location() #12
  %1148 = load i32, ptr %1147, align 4, !tbaa !5
  %1149 = call ptr @strerror(i32 noundef %1148) #11
  %1150 = call ptr @__errno_location() #12
  %1151 = load i32, ptr %1150, align 4, !tbaa !5
  %1152 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1139, ptr noundef @.str.4, i32 noundef %1140, ptr noundef @.str.22, ptr noundef @.str.2, i32 noundef 100, ptr noundef %1143, ptr noundef %1146, ptr noundef %1149, i32 noundef %1151) #11
  br label %1153

1153:                                             ; preds = %1136, %1119
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #11
  br label %1154

1154:                                             ; preds = %1153
  br label %1155

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

1156:                                             ; No predecessors!
  br label %1157

1157:                                             ; preds = %1156
  br label %1158

1158:                                             ; preds = %1157, %1082
  br label %1159

1159:                                             ; preds = %1158
  br label %1160

1160:                                             ; preds = %1159
  br label %1161

1161:                                             ; preds = %1160
  %1162 = load i32, ptr @test_count, align 4, !tbaa !5
  %1163 = add nsw i32 %1162, 1
  store i32 %1163, ptr @test_count, align 4, !tbaa !5
  %1164 = load ptr, ptr %6, align 8, !tbaa !9
  %1165 = getelementptr inbounds %struct.s2n_connection, ptr %1164, i32 0, i32 26
  %1166 = load ptr, ptr %1165, align 8, !tbaa !17
  %1167 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %1166, i32 0, i32 0
  %1168 = load ptr, ptr %1167, align 8, !tbaa !46
  %1169 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %1168, i32 0, i32 6
  %1170 = load ptr, ptr %1169, align 8, !tbaa !51
  %1171 = getelementptr inbounds %struct.s2n_record_algorithm, ptr %1170, i32 0, i32 0
  %1172 = load ptr, ptr %1171, align 8, !tbaa !54
  %1173 = getelementptr inbounds %struct.s2n_cipher, ptr %1172, i32 0, i32 5
  %1174 = load ptr, ptr %1173, align 8, !tbaa !57
  %1175 = load ptr, ptr %6, align 8, !tbaa !9
  %1176 = getelementptr inbounds %struct.s2n_connection, ptr %1175, i32 0, i32 26
  %1177 = load ptr, ptr %1176, align 8, !tbaa !17
  %1178 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %1177, i32 0, i32 1
  %1179 = call i32 %1174(ptr noundef %1178, ptr noundef %12)
  %1180 = getelementptr inbounds %struct.s2n_result, ptr %39, i32 0, i32 0
  store i32 %1179, ptr %1180, align 4
  %1181 = getelementptr inbounds %struct.s2n_result, ptr %39, i32 0, i32 0
  %1182 = load i32, ptr %1181, align 4
  %1183 = call zeroext i1 @s2n_result_is_ok(i32 %1182)
  br i1 %1183, label %1237, label %1184

1184:                                             ; preds = %1161
  br label %1185

1185:                                             ; preds = %1184
  br label %1186

1186:                                             ; preds = %1185
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #11
  %1187 = call ptr @__errno_location() #12
  %1188 = load i32, ptr %1187, align 4, !tbaa !5
  store i32 %1188, ptr %40, align 4, !tbaa !5
  %1189 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1190 = call i32 @s2n_print_stacktrace(ptr noundef %1189)
  %1191 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1192 = trunc i8 %1191 to i1
  br i1 %1192, label %1193, label %1215

1193:                                             ; preds = %1186
  %1194 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1195 = call i32 @fileno(ptr noundef %1194) #11
  %1196 = call i32 @isatty(i32 noundef %1195) #11
  %1197 = icmp ne i32 %1196, 0
  br i1 %1197, label %1198, label %1215

1198:                                             ; preds = %1193
  %1199 = load i32, ptr %40, align 4, !tbaa !5
  %1200 = call ptr @__errno_location() #12
  store i32 %1199, ptr %1200, align 4, !tbaa !5
  %1201 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1202 = load i32, ptr @test_count, align 4, !tbaa !5
  %1203 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1204 = load i32, ptr %1203, align 4, !tbaa !5
  %1205 = call ptr @s2n_strerror(i32 noundef %1204, ptr noundef @.str.3)
  %1206 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1207 = load i32, ptr %1206, align 4, !tbaa !5
  %1208 = call ptr @s2n_strerror_debug(i32 noundef %1207, ptr noundef @.str.3)
  %1209 = call ptr @__errno_location() #12
  %1210 = load i32, ptr %1209, align 4, !tbaa !5
  %1211 = call ptr @strerror(i32 noundef %1210) #11
  %1212 = call ptr @__errno_location() #12
  %1213 = load i32, ptr %1212, align 4, !tbaa !5
  %1214 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1201, ptr noundef @.str, i32 noundef %1202, ptr noundef @.str.23, ptr noundef @.str.2, i32 noundef 101, ptr noundef %1205, ptr noundef %1208, ptr noundef %1211, i32 noundef %1213) #11
  br label %1232

1215:                                             ; preds = %1193, %1186
  %1216 = load i32, ptr %40, align 4, !tbaa !5
  %1217 = call ptr @__errno_location() #12
  store i32 %1216, ptr %1217, align 4, !tbaa !5
  %1218 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1219 = load i32, ptr @test_count, align 4, !tbaa !5
  %1220 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1221 = load i32, ptr %1220, align 4, !tbaa !5
  %1222 = call ptr @s2n_strerror(i32 noundef %1221, ptr noundef @.str.3)
  %1223 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1224 = load i32, ptr %1223, align 4, !tbaa !5
  %1225 = call ptr @s2n_strerror_debug(i32 noundef %1224, ptr noundef @.str.3)
  %1226 = call ptr @__errno_location() #12
  %1227 = load i32, ptr %1226, align 4, !tbaa !5
  %1228 = call ptr @strerror(i32 noundef %1227) #11
  %1229 = call ptr @__errno_location() #12
  %1230 = load i32, ptr %1229, align 4, !tbaa !5
  %1231 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1218, ptr noundef @.str.4, i32 noundef %1219, ptr noundef @.str.23, ptr noundef @.str.2, i32 noundef 101, ptr noundef %1222, ptr noundef %1225, ptr noundef %1228, i32 noundef %1230) #11
  br label %1232

1232:                                             ; preds = %1215, %1198
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #11
  br label %1233

1233:                                             ; preds = %1232
  br label %1234

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

1235:                                             ; No predecessors!
  br label %1236

1236:                                             ; preds = %1235
  br label %1237

1237:                                             ; preds = %1236, %1161
  br label %1238

1238:                                             ; preds = %1237
  br label %1239

1239:                                             ; preds = %1238
  br label %1240

1240:                                             ; preds = %1239
  %1241 = load i32, ptr @test_count, align 4, !tbaa !5
  %1242 = add nsw i32 %1241, 1
  store i32 %1242, ptr @test_count, align 4, !tbaa !5
  %1243 = load ptr, ptr %6, align 8, !tbaa !9
  %1244 = getelementptr inbounds %struct.s2n_connection, ptr %1243, i32 0, i32 26
  %1245 = load ptr, ptr %1244, align 8, !tbaa !17
  %1246 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %1245, i32 0, i32 0
  %1247 = load ptr, ptr %1246, align 8, !tbaa !46
  %1248 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %1247, i32 0, i32 6
  %1249 = load ptr, ptr %1248, align 8, !tbaa !51
  %1250 = getelementptr inbounds %struct.s2n_record_algorithm, ptr %1249, i32 0, i32 0
  %1251 = load ptr, ptr %1250, align 8, !tbaa !54
  %1252 = getelementptr inbounds %struct.s2n_cipher, ptr %1251, i32 0, i32 1
  %1253 = getelementptr inbounds %struct.s2n_composite_cipher, ptr %1252, i32 0, i32 5
  %1254 = load ptr, ptr %1253, align 8, !tbaa !58
  %1255 = load ptr, ptr %6, align 8, !tbaa !9
  %1256 = getelementptr inbounds %struct.s2n_connection, ptr %1255, i32 0, i32 26
  %1257 = load ptr, ptr %1256, align 8, !tbaa !17
  %1258 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %1257, i32 0, i32 2
  %1259 = getelementptr inbounds [20 x i8], ptr %8, i64 0, i64 0
  %1260 = call i32 %1254(ptr noundef %1258, ptr noundef %1259, i32 noundef 20)
  %1261 = icmp eq i32 %1260, -1
  br i1 %1261, label %1262, label %1315

1262:                                             ; preds = %1240
  br label %1263

1263:                                             ; preds = %1262
  br label %1264

1264:                                             ; preds = %1263
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #11
  %1265 = call ptr @__errno_location() #12
  %1266 = load i32, ptr %1265, align 4, !tbaa !5
  store i32 %1266, ptr %41, align 4, !tbaa !5
  %1267 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1268 = call i32 @s2n_print_stacktrace(ptr noundef %1267)
  %1269 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1270 = trunc i8 %1269 to i1
  br i1 %1270, label %1271, label %1293

1271:                                             ; preds = %1264
  %1272 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1273 = call i32 @fileno(ptr noundef %1272) #11
  %1274 = call i32 @isatty(i32 noundef %1273) #11
  %1275 = icmp ne i32 %1274, 0
  br i1 %1275, label %1276, label %1293

1276:                                             ; preds = %1271
  %1277 = load i32, ptr %41, align 4, !tbaa !5
  %1278 = call ptr @__errno_location() #12
  store i32 %1277, ptr %1278, align 4, !tbaa !5
  %1279 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1280 = load i32, ptr @test_count, align 4, !tbaa !5
  %1281 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1282 = load i32, ptr %1281, align 4, !tbaa !5
  %1283 = call ptr @s2n_strerror(i32 noundef %1282, ptr noundef @.str.3)
  %1284 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1285 = load i32, ptr %1284, align 4, !tbaa !5
  %1286 = call ptr @s2n_strerror_debug(i32 noundef %1285, ptr noundef @.str.3)
  %1287 = call ptr @__errno_location() #12
  %1288 = load i32, ptr %1287, align 4, !tbaa !5
  %1289 = call ptr @strerror(i32 noundef %1288) #11
  %1290 = call ptr @__errno_location() #12
  %1291 = load i32, ptr %1290, align 4, !tbaa !5
  %1292 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1279, ptr noundef @.str, i32 noundef %1280, ptr noundef @.str.24, ptr noundef @.str.2, i32 noundef 102, ptr noundef %1283, ptr noundef %1286, ptr noundef %1289, i32 noundef %1291) #11
  br label %1310

1293:                                             ; preds = %1271, %1264
  %1294 = load i32, ptr %41, align 4, !tbaa !5
  %1295 = call ptr @__errno_location() #12
  store i32 %1294, ptr %1295, align 4, !tbaa !5
  %1296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1297 = load i32, ptr @test_count, align 4, !tbaa !5
  %1298 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1299 = load i32, ptr %1298, align 4, !tbaa !5
  %1300 = call ptr @s2n_strerror(i32 noundef %1299, ptr noundef @.str.3)
  %1301 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1302 = load i32, ptr %1301, align 4, !tbaa !5
  %1303 = call ptr @s2n_strerror_debug(i32 noundef %1302, ptr noundef @.str.3)
  %1304 = call ptr @__errno_location() #12
  %1305 = load i32, ptr %1304, align 4, !tbaa !5
  %1306 = call ptr @strerror(i32 noundef %1305) #11
  %1307 = call ptr @__errno_location() #12
  %1308 = load i32, ptr %1307, align 4, !tbaa !5
  %1309 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1296, ptr noundef @.str.4, i32 noundef %1297, ptr noundef @.str.24, ptr noundef @.str.2, i32 noundef 102, ptr noundef %1300, ptr noundef %1303, ptr noundef %1306, i32 noundef %1308) #11
  br label %1310

1310:                                             ; preds = %1293, %1276
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #11
  br label %1311

1311:                                             ; preds = %1310
  br label %1312

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

1313:                                             ; No predecessors!
  br label %1314

1314:                                             ; preds = %1313
  br label %1315

1315:                                             ; preds = %1314, %1240
  br label %1316

1316:                                             ; preds = %1315
  br label %1317

1317:                                             ; preds = %1316
  br label %1318

1318:                                             ; preds = %1317
  %1319 = load i32, ptr @test_count, align 4, !tbaa !5
  %1320 = add nsw i32 %1319, 1
  store i32 %1320, ptr @test_count, align 4, !tbaa !5
  %1321 = load ptr, ptr %6, align 8, !tbaa !9
  %1322 = getelementptr inbounds %struct.s2n_connection, ptr %1321, i32 0, i32 26
  %1323 = load ptr, ptr %1322, align 8, !tbaa !17
  %1324 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %1323, i32 0, i32 0
  %1325 = load ptr, ptr %1324, align 8, !tbaa !46
  %1326 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %1325, i32 0, i32 6
  %1327 = load ptr, ptr %1326, align 8, !tbaa !51
  %1328 = getelementptr inbounds %struct.s2n_record_algorithm, ptr %1327, i32 0, i32 0
  %1329 = load ptr, ptr %1328, align 8, !tbaa !54
  %1330 = getelementptr inbounds %struct.s2n_cipher, ptr %1329, i32 0, i32 1
  %1331 = getelementptr inbounds %struct.s2n_composite_cipher, ptr %1330, i32 0, i32 5
  %1332 = load ptr, ptr %1331, align 8, !tbaa !58
  %1333 = load ptr, ptr %6, align 8, !tbaa !9
  %1334 = getelementptr inbounds %struct.s2n_connection, ptr %1333, i32 0, i32 26
  %1335 = load ptr, ptr %1334, align 8, !tbaa !17
  %1336 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %1335, i32 0, i32 1
  %1337 = getelementptr inbounds [20 x i8], ptr %8, i64 0, i64 0
  %1338 = call i32 %1332(ptr noundef %1336, ptr noundef %1337, i32 noundef 20)
  %1339 = icmp eq i32 %1338, -1
  br i1 %1339, label %1340, label %1393

1340:                                             ; preds = %1318
  br label %1341

1341:                                             ; preds = %1340
  br label %1342

1342:                                             ; preds = %1341
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #11
  %1343 = call ptr @__errno_location() #12
  %1344 = load i32, ptr %1343, align 4, !tbaa !5
  store i32 %1344, ptr %42, align 4, !tbaa !5
  %1345 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1346 = call i32 @s2n_print_stacktrace(ptr noundef %1345)
  %1347 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1348 = trunc i8 %1347 to i1
  br i1 %1348, label %1349, label %1371

1349:                                             ; preds = %1342
  %1350 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1351 = call i32 @fileno(ptr noundef %1350) #11
  %1352 = call i32 @isatty(i32 noundef %1351) #11
  %1353 = icmp ne i32 %1352, 0
  br i1 %1353, label %1354, label %1371

1354:                                             ; preds = %1349
  %1355 = load i32, ptr %42, align 4, !tbaa !5
  %1356 = call ptr @__errno_location() #12
  store i32 %1355, ptr %1356, align 4, !tbaa !5
  %1357 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1358 = load i32, ptr @test_count, align 4, !tbaa !5
  %1359 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1360 = load i32, ptr %1359, align 4, !tbaa !5
  %1361 = call ptr @s2n_strerror(i32 noundef %1360, ptr noundef @.str.3)
  %1362 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1363 = load i32, ptr %1362, align 4, !tbaa !5
  %1364 = call ptr @s2n_strerror_debug(i32 noundef %1363, ptr noundef @.str.3)
  %1365 = call ptr @__errno_location() #12
  %1366 = load i32, ptr %1365, align 4, !tbaa !5
  %1367 = call ptr @strerror(i32 noundef %1366) #11
  %1368 = call ptr @__errno_location() #12
  %1369 = load i32, ptr %1368, align 4, !tbaa !5
  %1370 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1357, ptr noundef @.str, i32 noundef %1358, ptr noundef @.str.25, ptr noundef @.str.2, i32 noundef 103, ptr noundef %1361, ptr noundef %1364, ptr noundef %1367, i32 noundef %1369) #11
  br label %1388

1371:                                             ; preds = %1349, %1342
  %1372 = load i32, ptr %42, align 4, !tbaa !5
  %1373 = call ptr @__errno_location() #12
  store i32 %1372, ptr %1373, align 4, !tbaa !5
  %1374 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1375 = load i32, ptr @test_count, align 4, !tbaa !5
  %1376 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1377 = load i32, ptr %1376, align 4, !tbaa !5
  %1378 = call ptr @s2n_strerror(i32 noundef %1377, ptr noundef @.str.3)
  %1379 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1380 = load i32, ptr %1379, align 4, !tbaa !5
  %1381 = call ptr @s2n_strerror_debug(i32 noundef %1380, ptr noundef @.str.3)
  %1382 = call ptr @__errno_location() #12
  %1383 = load i32, ptr %1382, align 4, !tbaa !5
  %1384 = call ptr @strerror(i32 noundef %1383) #11
  %1385 = call ptr @__errno_location() #12
  %1386 = load i32, ptr %1385, align 4, !tbaa !5
  %1387 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1374, ptr noundef @.str.4, i32 noundef %1375, ptr noundef @.str.25, ptr noundef @.str.2, i32 noundef 103, ptr noundef %1378, ptr noundef %1381, ptr noundef %1384, i32 noundef %1386) #11
  br label %1388

1388:                                             ; preds = %1371, %1354
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #11
  br label %1389

1389:                                             ; preds = %1388
  br label %1390

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

1391:                                             ; No predecessors!
  br label %1392

1392:                                             ; preds = %1391
  br label %1393

1393:                                             ; preds = %1392, %1318
  br label %1394

1394:                                             ; preds = %1393
  br label %1395

1395:                                             ; preds = %1394
  br label %1396

1396:                                             ; preds = %1395
  %1397 = load i32, ptr @test_count, align 4, !tbaa !5
  %1398 = add nsw i32 %1397, 1
  store i32 %1398, ptr @test_count, align 4, !tbaa !5
  %1399 = load ptr, ptr %6, align 8, !tbaa !9
  %1400 = getelementptr inbounds %struct.s2n_connection, ptr %1399, i32 0, i32 41
  %1401 = call i32 @s2n_stuffer_wipe(ptr noundef %1400)
  %1402 = icmp eq i32 %1401, -1
  br i1 %1402, label %1403, label %1456

1403:                                             ; preds = %1396
  br label %1404

1404:                                             ; preds = %1403
  br label %1405

1405:                                             ; preds = %1404
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #11
  %1406 = call ptr @__errno_location() #12
  %1407 = load i32, ptr %1406, align 4, !tbaa !5
  store i32 %1407, ptr %43, align 4, !tbaa !5
  %1408 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1409 = call i32 @s2n_print_stacktrace(ptr noundef %1408)
  %1410 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1411 = trunc i8 %1410 to i1
  br i1 %1411, label %1412, label %1434

1412:                                             ; preds = %1405
  %1413 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1414 = call i32 @fileno(ptr noundef %1413) #11
  %1415 = call i32 @isatty(i32 noundef %1414) #11
  %1416 = icmp ne i32 %1415, 0
  br i1 %1416, label %1417, label %1434

1417:                                             ; preds = %1412
  %1418 = load i32, ptr %43, align 4, !tbaa !5
  %1419 = call ptr @__errno_location() #12
  store i32 %1418, ptr %1419, align 4, !tbaa !5
  %1420 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1421 = load i32, ptr @test_count, align 4, !tbaa !5
  %1422 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1423 = load i32, ptr %1422, align 4, !tbaa !5
  %1424 = call ptr @s2n_strerror(i32 noundef %1423, ptr noundef @.str.3)
  %1425 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1426 = load i32, ptr %1425, align 4, !tbaa !5
  %1427 = call ptr @s2n_strerror_debug(i32 noundef %1426, ptr noundef @.str.3)
  %1428 = call ptr @__errno_location() #12
  %1429 = load i32, ptr %1428, align 4, !tbaa !5
  %1430 = call ptr @strerror(i32 noundef %1429) #11
  %1431 = call ptr @__errno_location() #12
  %1432 = load i32, ptr %1431, align 4, !tbaa !5
  %1433 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1420, ptr noundef @.str, i32 noundef %1421, ptr noundef @.str.26, ptr noundef @.str.2, i32 noundef 105, ptr noundef %1424, ptr noundef %1427, ptr noundef %1430, i32 noundef %1432) #11
  br label %1451

1434:                                             ; preds = %1412, %1405
  %1435 = load i32, ptr %43, align 4, !tbaa !5
  %1436 = call ptr @__errno_location() #12
  store i32 %1435, ptr %1436, align 4, !tbaa !5
  %1437 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1438 = load i32, ptr @test_count, align 4, !tbaa !5
  %1439 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1440 = load i32, ptr %1439, align 4, !tbaa !5
  %1441 = call ptr @s2n_strerror(i32 noundef %1440, ptr noundef @.str.3)
  %1442 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1443 = load i32, ptr %1442, align 4, !tbaa !5
  %1444 = call ptr @s2n_strerror_debug(i32 noundef %1443, ptr noundef @.str.3)
  %1445 = call ptr @__errno_location() #12
  %1446 = load i32, ptr %1445, align 4, !tbaa !5
  %1447 = call ptr @strerror(i32 noundef %1446) #11
  %1448 = call ptr @__errno_location() #12
  %1449 = load i32, ptr %1448, align 4, !tbaa !5
  %1450 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1437, ptr noundef @.str.4, i32 noundef %1438, ptr noundef @.str.26, ptr noundef @.str.2, i32 noundef 105, ptr noundef %1441, ptr noundef %1444, ptr noundef %1447, i32 noundef %1449) #11
  br label %1451

1451:                                             ; preds = %1434, %1417
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #11
  br label %1452

1452:                                             ; preds = %1451
  br label %1453

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

1454:                                             ; No predecessors!
  br label %1455

1455:                                             ; preds = %1454
  br label %1456

1456:                                             ; preds = %1455, %1396
  br label %1457

1457:                                             ; preds = %1456
  br label %1458

1458:                                             ; preds = %1457
  %1459 = load i32, ptr %31, align 4, !tbaa !5
  %1460 = sext i32 %1459 to i64
  %1461 = getelementptr inbounds [3 x i8], ptr %30, i64 0, i64 %1460
  %1462 = load i8, ptr %1461, align 1, !tbaa !58
  %1463 = load ptr, ptr %6, align 8, !tbaa !9
  %1464 = getelementptr inbounds %struct.s2n_connection, ptr %1463, i32 0, i32 23
  store i8 %1462, ptr %1464, align 4, !tbaa !59
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #11
  store i32 0, ptr %44, align 4, !tbaa !5
  %1465 = load ptr, ptr %6, align 8, !tbaa !9
  %1466 = getelementptr inbounds %struct.s2n_connection, ptr %1465, i32 0, i32 23
  %1467 = load i8, ptr %1466, align 4, !tbaa !59
  %1468 = zext i8 %1467 to i32
  %1469 = icmp sgt i32 %1468, 31
  br i1 %1469, label %1470, label %1471

1470:                                             ; preds = %1458
  store i32 16, ptr %44, align 4, !tbaa !5
  br label %1472

1471:                                             ; preds = %1458
  store i32 0, ptr %44, align 4, !tbaa !5
  br label %1472

1472:                                             ; preds = %1471, %1470
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #11
  %1473 = load ptr, ptr %6, align 8, !tbaa !9
  %1474 = call i32 @s2n_record_write(ptr noundef %1473, i8 noundef zeroext 23, ptr noundef %33)
  %1475 = getelementptr inbounds %struct.s2n_result, ptr %45, i32 0, i32 0
  store i32 %1474, ptr %1475, align 4
  %1476 = load i64, ptr %32, align 8, !tbaa !53
  %1477 = icmp ule i64 %1476, 8087
  br i1 %1477, label %1478, label %1543

1478:                                             ; preds = %1472
  br label %1479

1479:                                             ; preds = %1478
  %1480 = load i32, ptr @test_count, align 4, !tbaa !5
  %1481 = add nsw i32 %1480, 1
  store i32 %1481, ptr @test_count, align 4, !tbaa !5
  %1482 = getelementptr inbounds %struct.s2n_result, ptr %45, i32 0, i32 0
  %1483 = load i32, ptr %1482, align 4
  %1484 = call zeroext i1 @s2n_result_is_ok(i32 %1483)
  br i1 %1484, label %1538, label %1485

1485:                                             ; preds = %1479
  br label %1486

1486:                                             ; preds = %1485
  br label %1487

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

1494:                                             ; preds = %1487
  %1495 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1496 = call i32 @fileno(ptr noundef %1495) #11
  %1497 = call i32 @isatty(i32 noundef %1496) #11
  %1498 = icmp ne i32 %1497, 0
  br i1 %1498, label %1499, label %1516

1499:                                             ; preds = %1494
  %1500 = load i32, ptr %46, align 4, !tbaa !5
  %1501 = call ptr @__errno_location() #12
  store i32 %1500, ptr %1501, align 4, !tbaa !5
  %1502 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1503 = load i32, ptr @test_count, align 4, !tbaa !5
  %1504 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1505 = load i32, ptr %1504, align 4, !tbaa !5
  %1506 = call ptr @s2n_strerror(i32 noundef %1505, ptr noundef @.str.3)
  %1507 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1508 = load i32, ptr %1507, align 4, !tbaa !5
  %1509 = call ptr @s2n_strerror_debug(i32 noundef %1508, ptr noundef @.str.3)
  %1510 = call ptr @__errno_location() #12
  %1511 = load i32, ptr %1510, align 4, !tbaa !5
  %1512 = call ptr @strerror(i32 noundef %1511) #11
  %1513 = call ptr @__errno_location() #12
  %1514 = load i32, ptr %1513, align 4, !tbaa !5
  %1515 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1502, ptr noundef @.str, i32 noundef %1503, ptr noundef @.str.27, ptr noundef @.str.2, i32 noundef 117, ptr noundef %1506, ptr noundef %1509, ptr noundef %1512, i32 noundef %1514) #11
  br label %1533

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

1533:                                             ; preds = %1516, %1499
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #11
  br label %1534

1534:                                             ; preds = %1533
  br label %1535

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

1536:                                             ; No predecessors!
  br label %1537

1537:                                             ; preds = %1536
  br label %1538

1538:                                             ; preds = %1537, %1479
  br label %1539

1539:                                             ; preds = %1538
  br label %1540

1540:                                             ; preds = %1539
  %1541 = load i64, ptr %32, align 8, !tbaa !53
  %1542 = trunc i64 %1541 to i32
  store i32 %1542, ptr %35, align 4, !tbaa !5
  br label %1742

1543:                                             ; preds = %1472
  br label %1544

1544:                                             ; preds = %1543
  br label %1545

1545:                                             ; preds = %1544
  br label %1546

1546:                                             ; preds = %1545
  %1547 = load i32, ptr @test_count, align 4, !tbaa !5
  %1548 = add nsw i32 %1547, 1
  store i32 %1548, ptr @test_count, align 4, !tbaa !5
  %1549 = getelementptr inbounds %struct.s2n_result, ptr %45, i32 0, i32 0
  %1550 = load i32, ptr %1549, align 4
  %1551 = call zeroext i1 @s2n_result_is_error(i32 %1550)
  br i1 %1551, label %1605, label %1552

1552:                                             ; preds = %1546
  br label %1553

1553:                                             ; preds = %1552
  br label %1554

1554:                                             ; preds = %1553
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #11
  %1555 = call ptr @__errno_location() #12
  %1556 = load i32, ptr %1555, align 4, !tbaa !5
  store i32 %1556, ptr %47, align 4, !tbaa !5
  %1557 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1558 = call i32 @s2n_print_stacktrace(ptr noundef %1557)
  %1559 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1560 = trunc i8 %1559 to i1
  br i1 %1560, label %1561, label %1583

1561:                                             ; preds = %1554
  %1562 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1563 = call i32 @fileno(ptr noundef %1562) #11
  %1564 = call i32 @isatty(i32 noundef %1563) #11
  %1565 = icmp ne i32 %1564, 0
  br i1 %1565, label %1566, label %1583

1566:                                             ; preds = %1561
  %1567 = load i32, ptr %47, align 4, !tbaa !5
  %1568 = call ptr @__errno_location() #12
  store i32 %1567, ptr %1568, align 4, !tbaa !5
  %1569 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1570 = load i32, ptr @test_count, align 4, !tbaa !5
  %1571 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1572 = load i32, ptr %1571, align 4, !tbaa !5
  %1573 = call ptr @s2n_strerror(i32 noundef %1572, ptr noundef @.str.3)
  %1574 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1575 = load i32, ptr %1574, align 4, !tbaa !5
  %1576 = call ptr @s2n_strerror_debug(i32 noundef %1575, ptr noundef @.str.3)
  %1577 = call ptr @__errno_location() #12
  %1578 = load i32, ptr %1577, align 4, !tbaa !5
  %1579 = call ptr @strerror(i32 noundef %1578) #11
  %1580 = call ptr @__errno_location() #12
  %1581 = load i32, ptr %1580, align 4, !tbaa !5
  %1582 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1569, ptr noundef @.str, i32 noundef %1570, ptr noundef @.str.28, ptr noundef @.str.2, i32 noundef 120, ptr noundef %1573, ptr noundef %1576, ptr noundef %1579, i32 noundef %1581) #11
  br label %1600

1583:                                             ; preds = %1561, %1554
  %1584 = load i32, ptr %47, align 4, !tbaa !5
  %1585 = call ptr @__errno_location() #12
  store i32 %1584, ptr %1585, align 4, !tbaa !5
  %1586 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1587 = load i32, ptr @test_count, align 4, !tbaa !5
  %1588 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1589 = load i32, ptr %1588, align 4, !tbaa !5
  %1590 = call ptr @s2n_strerror(i32 noundef %1589, ptr noundef @.str.3)
  %1591 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1592 = load i32, ptr %1591, align 4, !tbaa !5
  %1593 = call ptr @s2n_strerror_debug(i32 noundef %1592, ptr noundef @.str.3)
  %1594 = call ptr @__errno_location() #12
  %1595 = load i32, ptr %1594, align 4, !tbaa !5
  %1596 = call ptr @strerror(i32 noundef %1595) #11
  %1597 = call ptr @__errno_location() #12
  %1598 = load i32, ptr %1597, align 4, !tbaa !5
  %1599 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1586, ptr noundef @.str.4, i32 noundef %1587, ptr noundef @.str.28, ptr noundef @.str.2, i32 noundef 120, ptr noundef %1590, ptr noundef %1593, ptr noundef %1596, i32 noundef %1598) #11
  br label %1600

1600:                                             ; preds = %1583, %1566
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #11
  br label %1601

1601:                                             ; preds = %1600
  br label %1602

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

1603:                                             ; No predecessors!
  br label %1604

1604:                                             ; preds = %1603
  br label %1605

1605:                                             ; preds = %1604, %1546
  br label %1606

1606:                                             ; preds = %1605
  br label %1607

1607:                                             ; preds = %1606
  br label %1608

1608:                                             ; preds = %1607
  %1609 = load i32, ptr @test_count, align 4, !tbaa !5
  %1610 = add nsw i32 %1609, 1
  store i32 %1610, ptr @test_count, align 4, !tbaa !5
  %1611 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1612 = load i32, ptr %1611, align 4, !tbaa !5
  %1613 = icmp eq i32 %1612, 335544390
  br i1 %1613, label %1667, label %1614

1614:                                             ; preds = %1608
  br label %1615

1615:                                             ; preds = %1614
  br label %1616

1616:                                             ; preds = %1615
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #11
  %1617 = call ptr @__errno_location() #12
  %1618 = load i32, ptr %1617, align 4, !tbaa !5
  store i32 %1618, ptr %48, align 4, !tbaa !5
  %1619 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1620 = call i32 @s2n_print_stacktrace(ptr noundef %1619)
  %1621 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1622 = trunc i8 %1621 to i1
  br i1 %1622, label %1623, label %1645

1623:                                             ; preds = %1616
  %1624 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1625 = call i32 @fileno(ptr noundef %1624) #11
  %1626 = call i32 @isatty(i32 noundef %1625) #11
  %1627 = icmp ne i32 %1626, 0
  br i1 %1627, label %1628, label %1645

1628:                                             ; preds = %1623
  %1629 = load i32, ptr %48, align 4, !tbaa !5
  %1630 = call ptr @__errno_location() #12
  store i32 %1629, ptr %1630, align 4, !tbaa !5
  %1631 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1632 = load i32, ptr @test_count, align 4, !tbaa !5
  %1633 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1634 = load i32, ptr %1633, align 4, !tbaa !5
  %1635 = call ptr @s2n_strerror(i32 noundef %1634, ptr noundef @.str.3)
  %1636 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1637 = load i32, ptr %1636, align 4, !tbaa !5
  %1638 = call ptr @s2n_strerror_debug(i32 noundef %1637, ptr noundef @.str.3)
  %1639 = call ptr @__errno_location() #12
  %1640 = load i32, ptr %1639, align 4, !tbaa !5
  %1641 = call ptr @strerror(i32 noundef %1640) #11
  %1642 = call ptr @__errno_location() #12
  %1643 = load i32, ptr %1642, align 4, !tbaa !5
  %1644 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1631, ptr noundef @.str, i32 noundef %1632, ptr noundef @.str.29, ptr noundef @.str.2, i32 noundef 120, ptr noundef %1635, ptr noundef %1638, ptr noundef %1641, i32 noundef %1643) #11
  br label %1662

1645:                                             ; preds = %1623, %1616
  %1646 = load i32, ptr %48, align 4, !tbaa !5
  %1647 = call ptr @__errno_location() #12
  store i32 %1646, ptr %1647, align 4, !tbaa !5
  %1648 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1649 = load i32, ptr @test_count, align 4, !tbaa !5
  %1650 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1651 = load i32, ptr %1650, align 4, !tbaa !5
  %1652 = call ptr @s2n_strerror(i32 noundef %1651, ptr noundef @.str.3)
  %1653 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1654 = load i32, ptr %1653, align 4, !tbaa !5
  %1655 = call ptr @s2n_strerror_debug(i32 noundef %1654, ptr noundef @.str.3)
  %1656 = call ptr @__errno_location() #12
  %1657 = load i32, ptr %1656, align 4, !tbaa !5
  %1658 = call ptr @strerror(i32 noundef %1657) #11
  %1659 = call ptr @__errno_location() #12
  %1660 = load i32, ptr %1659, align 4, !tbaa !5
  %1661 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1648, ptr noundef @.str.4, i32 noundef %1649, ptr noundef @.str.29, ptr noundef @.str.2, i32 noundef 120, ptr noundef %1652, ptr noundef %1655, ptr noundef %1658, i32 noundef %1660) #11
  br label %1662

1662:                                             ; preds = %1645, %1628
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #11
  br label %1663

1663:                                             ; preds = %1662
  br label %1664

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

1665:                                             ; No predecessors!
  br label %1666

1666:                                             ; preds = %1665
  br label %1667

1667:                                             ; preds = %1666, %1608
  br label %1668

1668:                                             ; preds = %1667
  br label %1669

1669:                                             ; preds = %1668
  br label %1670

1670:                                             ; preds = %1669
  %1671 = load i32, ptr @test_count, align 4, !tbaa !5
  %1672 = add nsw i32 %1671, 1
  store i32 %1672, ptr @test_count, align 4, !tbaa !5
  %1673 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1674 = load i32, ptr %1673, align 4, !tbaa !5
  %1675 = call ptr @s2n_strerror_debug(i32 noundef %1674, ptr noundef @.str.3)
  %1676 = icmp eq ptr %1675, null
  br i1 %1676, label %1677, label %1730

1677:                                             ; preds = %1670
  br label %1678

1678:                                             ; preds = %1677
  br label %1679

1679:                                             ; preds = %1678
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #11
  %1680 = call ptr @__errno_location() #12
  %1681 = load i32, ptr %1680, align 4, !tbaa !5
  store i32 %1681, ptr %49, align 4, !tbaa !5
  %1682 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1683 = call i32 @s2n_print_stacktrace(ptr noundef %1682)
  %1684 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1685 = trunc i8 %1684 to i1
  br i1 %1685, label %1686, label %1708

1686:                                             ; preds = %1679
  %1687 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1688 = call i32 @fileno(ptr noundef %1687) #11
  %1689 = call i32 @isatty(i32 noundef %1688) #11
  %1690 = icmp ne i32 %1689, 0
  br i1 %1690, label %1691, label %1708

1691:                                             ; preds = %1686
  %1692 = load i32, ptr %49, align 4, !tbaa !5
  %1693 = call ptr @__errno_location() #12
  store i32 %1692, ptr %1693, align 4, !tbaa !5
  %1694 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1695 = load i32, ptr @test_count, align 4, !tbaa !5
  %1696 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1697 = load i32, ptr %1696, align 4, !tbaa !5
  %1698 = call ptr @s2n_strerror(i32 noundef %1697, ptr noundef @.str.3)
  %1699 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1700 = load i32, ptr %1699, align 4, !tbaa !5
  %1701 = call ptr @s2n_strerror_debug(i32 noundef %1700, ptr noundef @.str.3)
  %1702 = call ptr @__errno_location() #12
  %1703 = load i32, ptr %1702, align 4, !tbaa !5
  %1704 = call ptr @strerror(i32 noundef %1703) #11
  %1705 = call ptr @__errno_location() #12
  %1706 = load i32, ptr %1705, align 4, !tbaa !5
  %1707 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1694, ptr noundef @.str, i32 noundef %1695, ptr noundef @.str.30, ptr noundef @.str.2, i32 noundef 120, ptr noundef %1698, ptr noundef %1701, ptr noundef %1704, i32 noundef %1706) #11
  br label %1725

1708:                                             ; preds = %1686, %1679
  %1709 = load i32, ptr %49, align 4, !tbaa !5
  %1710 = call ptr @__errno_location() #12
  store i32 %1709, ptr %1710, align 4, !tbaa !5
  %1711 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1712 = load i32, ptr @test_count, align 4, !tbaa !5
  %1713 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1714 = load i32, ptr %1713, align 4, !tbaa !5
  %1715 = call ptr @s2n_strerror(i32 noundef %1714, ptr noundef @.str.3)
  %1716 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1717 = load i32, ptr %1716, align 4, !tbaa !5
  %1718 = call ptr @s2n_strerror_debug(i32 noundef %1717, ptr noundef @.str.3)
  %1719 = call ptr @__errno_location() #12
  %1720 = load i32, ptr %1719, align 4, !tbaa !5
  %1721 = call ptr @strerror(i32 noundef %1720) #11
  %1722 = call ptr @__errno_location() #12
  %1723 = load i32, ptr %1722, align 4, !tbaa !5
  %1724 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1711, ptr noundef @.str.4, i32 noundef %1712, ptr noundef @.str.30, ptr noundef @.str.2, i32 noundef 120, ptr noundef %1715, ptr noundef %1718, ptr noundef %1721, i32 noundef %1723) #11
  br label %1725

1725:                                             ; preds = %1708, %1691
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #11
  br label %1726

1726:                                             ; preds = %1725
  br label %1727

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

1728:                                             ; No predecessors!
  br label %1729

1729:                                             ; preds = %1728
  br label %1730

1730:                                             ; preds = %1729, %1670
  br label %1731

1731:                                             ; preds = %1730
  br label %1732

1732:                                             ; preds = %1731
  br label %1733

1733:                                             ; preds = %1732
  br label %1734

1734:                                             ; preds = %1733
  br label %1735

1735:                                             ; preds = %1734
  %1736 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1736, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1737 = call ptr @__errno_location() #12
  store i32 0, ptr %1737, align 4, !tbaa !5
  br label %1738

1738:                                             ; preds = %1735
  br label %1739

1739:                                             ; preds = %1738
  br label %1740

1740:                                             ; preds = %1739
  br label %1741

1741:                                             ; preds = %1740
  store i32 8087, ptr %35, align 4, !tbaa !5
  br label %1742

1742:                                             ; preds = %1741, %1540
  call void @llvm.lifetime.start.p0(i64 2, ptr %50) #11
  %1743 = load i32, ptr %35, align 4, !tbaa !5
  %1744 = add nsw i32 %1743, 1
  %1745 = add nsw i32 %1744, 20
  %1746 = load i32, ptr %44, align 4, !tbaa !5
  %1747 = add nsw i32 %1745, %1746
  %1748 = trunc i32 %1747 to i16
  store i16 %1748, ptr %50, align 2, !tbaa !60
  %1749 = load i16, ptr %50, align 2, !tbaa !60
  %1750 = zext i16 %1749 to i32
  %1751 = srem i32 %1750, 16
  %1752 = icmp ne i32 %1751, 0
  br i1 %1752, label %1753, label %1762

1753:                                             ; preds = %1742
  %1754 = load i16, ptr %50, align 2, !tbaa !60
  %1755 = zext i16 %1754 to i32
  %1756 = srem i32 %1755, 16
  %1757 = sub nsw i32 16, %1756
  %1758 = load i16, ptr %50, align 2, !tbaa !60
  %1759 = zext i16 %1758 to i32
  %1760 = add nsw i32 %1759, %1757
  %1761 = trunc i32 %1760 to i16
  store i16 %1761, ptr %50, align 2, !tbaa !60
  br label %1762

1762:                                             ; preds = %1753, %1742
  br label %1763

1763:                                             ; preds = %1762
  %1764 = load i32, ptr @test_count, align 4, !tbaa !5
  %1765 = add nsw i32 %1764, 1
  store i32 %1765, ptr @test_count, align 4, !tbaa !5
  %1766 = load ptr, ptr %6, align 8, !tbaa !9
  %1767 = getelementptr inbounds %struct.s2n_connection, ptr %1766, i32 0, i32 41
  %1768 = getelementptr inbounds %struct.s2n_stuffer, ptr %1767, i32 0, i32 0
  %1769 = getelementptr inbounds %struct.s2n_blob, ptr %1768, i32 0, i32 0
  %1770 = load ptr, ptr %1769, align 8, !tbaa !61
  %1771 = getelementptr inbounds i8, ptr %1770, i64 0
  %1772 = load i8, ptr %1771, align 1, !tbaa !58
  %1773 = zext i8 %1772 to i32
  %1774 = icmp eq i32 %1773, 23
  br i1 %1774, label %1828, label %1775

1775:                                             ; preds = %1763
  br label %1776

1776:                                             ; preds = %1775
  br label %1777

1777:                                             ; preds = %1776
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #11
  %1778 = call ptr @__errno_location() #12
  %1779 = load i32, ptr %1778, align 4, !tbaa !5
  store i32 %1779, ptr %51, align 4, !tbaa !5
  %1780 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1781 = call i32 @s2n_print_stacktrace(ptr noundef %1780)
  %1782 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1783 = trunc i8 %1782 to i1
  br i1 %1783, label %1784, label %1806

1784:                                             ; preds = %1777
  %1785 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1786 = call i32 @fileno(ptr noundef %1785) #11
  %1787 = call i32 @isatty(i32 noundef %1786) #11
  %1788 = icmp ne i32 %1787, 0
  br i1 %1788, label %1789, label %1806

1789:                                             ; preds = %1784
  %1790 = load i32, ptr %51, align 4, !tbaa !5
  %1791 = call ptr @__errno_location() #12
  store i32 %1790, ptr %1791, align 4, !tbaa !5
  %1792 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1793 = load i32, ptr @test_count, align 4, !tbaa !5
  %1794 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1795 = load i32, ptr %1794, align 4, !tbaa !5
  %1796 = call ptr @s2n_strerror(i32 noundef %1795, ptr noundef @.str.3)
  %1797 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1798 = load i32, ptr %1797, align 4, !tbaa !5
  %1799 = call ptr @s2n_strerror_debug(i32 noundef %1798, ptr noundef @.str.3)
  %1800 = call ptr @__errno_location() #12
  %1801 = load i32, ptr %1800, align 4, !tbaa !5
  %1802 = call ptr @strerror(i32 noundef %1801) #11
  %1803 = call ptr @__errno_location() #12
  %1804 = load i32, ptr %1803, align 4, !tbaa !5
  %1805 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1792, ptr noundef @.str, i32 noundef %1793, ptr noundef @.str.31, ptr noundef @.str.2, i32 noundef 128, ptr noundef %1796, ptr noundef %1799, ptr noundef %1802, i32 noundef %1804) #11
  br label %1823

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

1823:                                             ; preds = %1806, %1789
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #11
  br label %1824

1824:                                             ; preds = %1823
  br label %1825

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

1826:                                             ; No predecessors!
  br label %1827

1827:                                             ; preds = %1826
  br label %1828

1828:                                             ; preds = %1827, %1763
  br label %1829

1829:                                             ; preds = %1828
  br label %1830

1830:                                             ; preds = %1829
  call void @llvm.lifetime.start.p0(i64 1, ptr %52) #11
  %1831 = load ptr, ptr %6, align 8, !tbaa !9
  %1832 = getelementptr inbounds %struct.s2n_connection, ptr %1831, i32 0, i32 41
  %1833 = getelementptr inbounds %struct.s2n_stuffer, ptr %1832, i32 0, i32 0
  %1834 = getelementptr inbounds %struct.s2n_blob, ptr %1833, i32 0, i32 0
  %1835 = load ptr, ptr %1834, align 8, !tbaa !61
  %1836 = getelementptr inbounds i8, ptr %1835, i64 1
  %1837 = load i8, ptr %1836, align 1, !tbaa !58
  %1838 = zext i8 %1837 to i32
  %1839 = mul nsw i32 %1838, 10
  %1840 = load ptr, ptr %6, align 8, !tbaa !9
  %1841 = getelementptr inbounds %struct.s2n_connection, ptr %1840, i32 0, i32 41
  %1842 = getelementptr inbounds %struct.s2n_stuffer, ptr %1841, i32 0, i32 0
  %1843 = getelementptr inbounds %struct.s2n_blob, ptr %1842, i32 0, i32 0
  %1844 = load ptr, ptr %1843, align 8, !tbaa !61
  %1845 = getelementptr inbounds i8, ptr %1844, i64 2
  %1846 = load i8, ptr %1845, align 1, !tbaa !58
  %1847 = zext i8 %1846 to i32
  %1848 = add nsw i32 %1839, %1847
  %1849 = trunc i32 %1848 to i8
  store i8 %1849, ptr %52, align 1, !tbaa !58
  br label %1850

1850:                                             ; preds = %1830
  %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 i8, ptr %52, align 1, !tbaa !58
  %1854 = zext i8 %1853 to i32
  %1855 = load ptr, ptr %6, align 8, !tbaa !9
  %1856 = getelementptr inbounds %struct.s2n_connection, ptr %1855, i32 0, i32 23
  %1857 = load i8, ptr %1856, align 4, !tbaa !59
  %1858 = zext i8 %1857 to i32
  %1859 = icmp eq i32 %1854, %1858
  br i1 %1859, label %1913, label %1860

1860:                                             ; preds = %1850
  br label %1861

1861:                                             ; preds = %1860
  br label %1862

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

1869:                                             ; preds = %1862
  %1870 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1871 = call i32 @fileno(ptr noundef %1870) #11
  %1872 = call i32 @isatty(i32 noundef %1871) #11
  %1873 = icmp ne i32 %1872, 0
  br i1 %1873, label %1874, label %1891

1874:                                             ; preds = %1869
  %1875 = load i32, ptr %53, align 4, !tbaa !5
  %1876 = call ptr @__errno_location() #12
  store i32 %1875, ptr %1876, align 4, !tbaa !5
  %1877 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1878 = load i32, ptr @test_count, align 4, !tbaa !5
  %1879 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1880 = load i32, ptr %1879, align 4, !tbaa !5
  %1881 = call ptr @s2n_strerror(i32 noundef %1880, ptr noundef @.str.3)
  %1882 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1883 = load i32, ptr %1882, align 4, !tbaa !5
  %1884 = call ptr @s2n_strerror_debug(i32 noundef %1883, ptr noundef @.str.3)
  %1885 = call ptr @__errno_location() #12
  %1886 = load i32, ptr %1885, align 4, !tbaa !5
  %1887 = call ptr @strerror(i32 noundef %1886) #11
  %1888 = call ptr @__errno_location() #12
  %1889 = load i32, ptr %1888, align 4, !tbaa !5
  %1890 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1877, ptr noundef @.str, i32 noundef %1878, ptr noundef @.str.32, ptr noundef @.str.2, i32 noundef 130, ptr noundef %1881, ptr noundef %1884, ptr noundef %1887, i32 noundef %1889) #11
  br label %1908

1891:                                             ; preds = %1869, %1862
  %1892 = load i32, ptr %53, align 4, !tbaa !5
  %1893 = call ptr @__errno_location() #12
  store i32 %1892, ptr %1893, align 4, !tbaa !5
  %1894 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1895 = load i32, ptr @test_count, align 4, !tbaa !5
  %1896 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1897 = load i32, ptr %1896, align 4, !tbaa !5
  %1898 = call ptr @s2n_strerror(i32 noundef %1897, ptr noundef @.str.3)
  %1899 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1900 = load i32, ptr %1899, align 4, !tbaa !5
  %1901 = call ptr @s2n_strerror_debug(i32 noundef %1900, ptr noundef @.str.3)
  %1902 = call ptr @__errno_location() #12
  %1903 = load i32, ptr %1902, align 4, !tbaa !5
  %1904 = call ptr @strerror(i32 noundef %1903) #11
  %1905 = call ptr @__errno_location() #12
  %1906 = load i32, ptr %1905, align 4, !tbaa !5
  %1907 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1894, ptr noundef @.str.4, i32 noundef %1895, ptr noundef @.str.32, ptr noundef @.str.2, i32 noundef 130, ptr noundef %1898, ptr noundef %1901, ptr noundef %1904, i32 noundef %1906) #11
  br label %1908

1908:                                             ; preds = %1891, %1874
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #11
  br label %1909

1909:                                             ; preds = %1908
  br label %1910

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

1911:                                             ; No predecessors!
  br label %1912

1912:                                             ; preds = %1911
  br label %1913

1913:                                             ; preds = %1912, %1850
  br label %1914

1914:                                             ; preds = %1913
  br label %1915

1915:                                             ; preds = %1914
  br label %1916

1916:                                             ; preds = %1915
  %1917 = load i32, ptr @test_count, align 4, !tbaa !5
  %1918 = add nsw i32 %1917, 1
  store i32 %1918, ptr @test_count, align 4, !tbaa !5
  %1919 = load ptr, ptr %6, align 8, !tbaa !9
  %1920 = getelementptr inbounds %struct.s2n_connection, ptr %1919, i32 0, i32 41
  %1921 = getelementptr inbounds %struct.s2n_stuffer, ptr %1920, i32 0, i32 0
  %1922 = getelementptr inbounds %struct.s2n_blob, ptr %1921, i32 0, i32 0
  %1923 = load ptr, ptr %1922, align 8, !tbaa !61
  %1924 = getelementptr inbounds i8, ptr %1923, i64 3
  %1925 = load i8, ptr %1924, align 1, !tbaa !58
  %1926 = zext i8 %1925 to i32
  %1927 = load i16, ptr %50, align 2, !tbaa !60
  %1928 = zext i16 %1927 to i32
  %1929 = ashr i32 %1928, 8
  %1930 = and i32 %1929, 255
  %1931 = icmp eq i32 %1926, %1930
  br i1 %1931, label %1985, label %1932

1932:                                             ; preds = %1916
  br label %1933

1933:                                             ; preds = %1932
  br label %1934

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

1941:                                             ; preds = %1934
  %1942 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1943 = call i32 @fileno(ptr noundef %1942) #11
  %1944 = call i32 @isatty(i32 noundef %1943) #11
  %1945 = icmp ne i32 %1944, 0
  br i1 %1945, label %1946, label %1963

1946:                                             ; preds = %1941
  %1947 = load i32, ptr %54, align 4, !tbaa !5
  %1948 = call ptr @__errno_location() #12
  store i32 %1947, ptr %1948, align 4, !tbaa !5
  %1949 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1950 = load i32, ptr @test_count, align 4, !tbaa !5
  %1951 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1952 = load i32, ptr %1951, align 4, !tbaa !5
  %1953 = call ptr @s2n_strerror(i32 noundef %1952, ptr noundef @.str.3)
  %1954 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1955 = load i32, ptr %1954, align 4, !tbaa !5
  %1956 = call ptr @s2n_strerror_debug(i32 noundef %1955, ptr noundef @.str.3)
  %1957 = call ptr @__errno_location() #12
  %1958 = load i32, ptr %1957, align 4, !tbaa !5
  %1959 = call ptr @strerror(i32 noundef %1958) #11
  %1960 = call ptr @__errno_location() #12
  %1961 = load i32, ptr %1960, align 4, !tbaa !5
  %1962 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1949, ptr noundef @.str, i32 noundef %1950, ptr noundef @.str.33, ptr noundef @.str.2, i32 noundef 131, ptr noundef %1953, ptr noundef %1956, ptr noundef %1959, i32 noundef %1961) #11
  br label %1980

1963:                                             ; preds = %1941, %1934
  %1964 = load i32, ptr %54, align 4, !tbaa !5
  %1965 = call ptr @__errno_location() #12
  store i32 %1964, ptr %1965, align 4, !tbaa !5
  %1966 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1967 = load i32, ptr @test_count, align 4, !tbaa !5
  %1968 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1969 = load i32, ptr %1968, align 4, !tbaa !5
  %1970 = call ptr @s2n_strerror(i32 noundef %1969, ptr noundef @.str.3)
  %1971 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1972 = load i32, ptr %1971, align 4, !tbaa !5
  %1973 = call ptr @s2n_strerror_debug(i32 noundef %1972, ptr noundef @.str.3)
  %1974 = call ptr @__errno_location() #12
  %1975 = load i32, ptr %1974, align 4, !tbaa !5
  %1976 = call ptr @strerror(i32 noundef %1975) #11
  %1977 = call ptr @__errno_location() #12
  %1978 = load i32, ptr %1977, align 4, !tbaa !5
  %1979 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1966, ptr noundef @.str.4, i32 noundef %1967, ptr noundef @.str.33, ptr noundef @.str.2, i32 noundef 131, ptr noundef %1970, ptr noundef %1973, ptr noundef %1976, i32 noundef %1978) #11
  br label %1980

1980:                                             ; preds = %1963, %1946
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #11
  br label %1981

1981:                                             ; preds = %1980
  br label %1982

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

1983:                                             ; No predecessors!
  br label %1984

1984:                                             ; preds = %1983
  br label %1985

1985:                                             ; preds = %1984, %1916
  br label %1986

1986:                                             ; preds = %1985
  br label %1987

1987:                                             ; preds = %1986
  br label %1988

1988:                                             ; preds = %1987
  %1989 = load i32, ptr @test_count, align 4, !tbaa !5
  %1990 = add nsw i32 %1989, 1
  store i32 %1990, ptr @test_count, align 4, !tbaa !5
  %1991 = load ptr, ptr %6, align 8, !tbaa !9
  %1992 = getelementptr inbounds %struct.s2n_connection, ptr %1991, i32 0, i32 41
  %1993 = getelementptr inbounds %struct.s2n_stuffer, ptr %1992, i32 0, i32 0
  %1994 = getelementptr inbounds %struct.s2n_blob, ptr %1993, i32 0, i32 0
  %1995 = load ptr, ptr %1994, align 8, !tbaa !61
  %1996 = getelementptr inbounds i8, ptr %1995, i64 4
  %1997 = load i8, ptr %1996, align 1, !tbaa !58
  %1998 = zext i8 %1997 to i32
  %1999 = load i16, ptr %50, align 2, !tbaa !60
  %2000 = zext i16 %1999 to i32
  %2001 = and i32 %2000, 255
  %2002 = icmp eq i32 %1998, %2001
  br i1 %2002, label %2056, label %2003

2003:                                             ; preds = %1988
  br label %2004

2004:                                             ; preds = %2003
  br label %2005

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

2012:                                             ; preds = %2005
  %2013 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2014 = call i32 @fileno(ptr noundef %2013) #11
  %2015 = call i32 @isatty(i32 noundef %2014) #11
  %2016 = icmp ne i32 %2015, 0
  br i1 %2016, label %2017, label %2034

2017:                                             ; preds = %2012
  %2018 = load i32, ptr %55, align 4, !tbaa !5
  %2019 = call ptr @__errno_location() #12
  store i32 %2018, ptr %2019, align 4, !tbaa !5
  %2020 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2021 = load i32, ptr @test_count, align 4, !tbaa !5
  %2022 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2023 = load i32, ptr %2022, align 4, !tbaa !5
  %2024 = call ptr @s2n_strerror(i32 noundef %2023, ptr noundef @.str.3)
  %2025 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2026 = load i32, ptr %2025, align 4, !tbaa !5
  %2027 = call ptr @s2n_strerror_debug(i32 noundef %2026, ptr noundef @.str.3)
  %2028 = call ptr @__errno_location() #12
  %2029 = load i32, ptr %2028, align 4, !tbaa !5
  %2030 = call ptr @strerror(i32 noundef %2029) #11
  %2031 = call ptr @__errno_location() #12
  %2032 = load i32, ptr %2031, align 4, !tbaa !5
  %2033 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2020, ptr noundef @.str, i32 noundef %2021, ptr noundef @.str.34, ptr noundef @.str.2, i32 noundef 132, ptr noundef %2024, ptr noundef %2027, ptr noundef %2030, i32 noundef %2032) #11
  br label %2051

2034:                                             ; preds = %2012, %2005
  %2035 = load i32, ptr %55, align 4, !tbaa !5
  %2036 = call ptr @__errno_location() #12
  store i32 %2035, ptr %2036, align 4, !tbaa !5
  %2037 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2038 = load i32, ptr @test_count, align 4, !tbaa !5
  %2039 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2040 = load i32, ptr %2039, align 4, !tbaa !5
  %2041 = call ptr @s2n_strerror(i32 noundef %2040, ptr noundef @.str.3)
  %2042 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2043 = load i32, ptr %2042, align 4, !tbaa !5
  %2044 = call ptr @s2n_strerror_debug(i32 noundef %2043, ptr noundef @.str.3)
  %2045 = call ptr @__errno_location() #12
  %2046 = load i32, ptr %2045, align 4, !tbaa !5
  %2047 = call ptr @strerror(i32 noundef %2046) #11
  %2048 = call ptr @__errno_location() #12
  %2049 = load i32, ptr %2048, align 4, !tbaa !5
  %2050 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2037, ptr noundef @.str.4, i32 noundef %2038, ptr noundef @.str.34, ptr noundef @.str.2, i32 noundef 132, ptr noundef %2041, ptr noundef %2044, ptr noundef %2047, i32 noundef %2049) #11
  br label %2051

2051:                                             ; preds = %2034, %2017
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #11
  br label %2052

2052:                                             ; preds = %2051
  br label %2053

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

2054:                                             ; No predecessors!
  br label %2055

2055:                                             ; preds = %2054
  br label %2056

2056:                                             ; preds = %2055, %1988
  br label %2057

2057:                                             ; preds = %2056
  br label %2058

2058:                                             ; preds = %2057
  %2059 = load i32, ptr %35, align 4, !tbaa !5
  %2060 = icmp sgt i32 %2059, 10
  br i1 %2060, label %2061, label %2135

2061:                                             ; preds = %2058
  br label %2062

2062:                                             ; preds = %2061
  %2063 = load i32, ptr @test_count, align 4, !tbaa !5
  %2064 = add nsw i32 %2063, 1
  store i32 %2064, ptr @test_count, align 4, !tbaa !5
  %2065 = load ptr, ptr %6, align 8, !tbaa !9
  %2066 = getelementptr inbounds %struct.s2n_connection, ptr %2065, i32 0, i32 41
  %2067 = getelementptr inbounds %struct.s2n_stuffer, ptr %2066, i32 0, i32 0
  %2068 = getelementptr inbounds %struct.s2n_blob, ptr %2067, i32 0, i32 0
  %2069 = load ptr, ptr %2068, align 8, !tbaa !61
  %2070 = getelementptr inbounds i8, ptr %2069, i64 5
  %2071 = load i32, ptr %44, align 4, !tbaa !5
  %2072 = sext i32 %2071 to i64
  %2073 = getelementptr inbounds i8, ptr %2070, i64 %2072
  %2074 = getelementptr inbounds [8088 x i8], ptr %7, i64 0, i64 0
  %2075 = load i32, ptr %35, align 4, !tbaa !5
  %2076 = sext i32 %2075 to i64
  %2077 = call i32 @memcmp(ptr noundef %2073, ptr noundef %2074, i64 noundef %2076) #14
  %2078 = icmp eq i32 %2077, 0
  br i1 %2078, label %2079, label %2132

2079:                                             ; preds = %2062
  br label %2080

2080:                                             ; preds = %2079
  br label %2081

2081:                                             ; preds = %2080
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #11
  %2082 = call ptr @__errno_location() #12
  %2083 = load i32, ptr %2082, align 4, !tbaa !5
  store i32 %2083, ptr %56, align 4, !tbaa !5
  %2084 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2085 = call i32 @s2n_print_stacktrace(ptr noundef %2084)
  %2086 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2087 = trunc i8 %2086 to i1
  br i1 %2087, label %2088, label %2110

2088:                                             ; preds = %2081
  %2089 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2090 = call i32 @fileno(ptr noundef %2089) #11
  %2091 = call i32 @isatty(i32 noundef %2090) #11
  %2092 = icmp ne i32 %2091, 0
  br i1 %2092, label %2093, label %2110

2093:                                             ; preds = %2088
  %2094 = load i32, ptr %56, align 4, !tbaa !5
  %2095 = call ptr @__errno_location() #12
  store i32 %2094, ptr %2095, align 4, !tbaa !5
  %2096 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2097 = load i32, ptr @test_count, align 4, !tbaa !5
  %2098 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2099 = load i32, ptr %2098, align 4, !tbaa !5
  %2100 = call ptr @s2n_strerror(i32 noundef %2099, ptr noundef @.str.3)
  %2101 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2102 = load i32, ptr %2101, align 4, !tbaa !5
  %2103 = call ptr @s2n_strerror_debug(i32 noundef %2102, ptr noundef @.str.3)
  %2104 = call ptr @__errno_location() #12
  %2105 = load i32, ptr %2104, align 4, !tbaa !5
  %2106 = call ptr @strerror(i32 noundef %2105) #11
  %2107 = call ptr @__errno_location() #12
  %2108 = load i32, ptr %2107, align 4, !tbaa !5
  %2109 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2096, ptr noundef @.str, i32 noundef %2097, ptr noundef @.str.35, ptr noundef @.str.2, i32 noundef 136, ptr noundef %2100, ptr noundef %2103, ptr noundef %2106, i32 noundef %2108) #11
  br label %2127

2110:                                             ; preds = %2088, %2081
  %2111 = load i32, ptr %56, align 4, !tbaa !5
  %2112 = call ptr @__errno_location() #12
  store i32 %2111, ptr %2112, align 4, !tbaa !5
  %2113 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2114 = load i32, ptr @test_count, align 4, !tbaa !5
  %2115 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2116 = load i32, ptr %2115, align 4, !tbaa !5
  %2117 = call ptr @s2n_strerror(i32 noundef %2116, ptr noundef @.str.3)
  %2118 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2119 = load i32, ptr %2118, align 4, !tbaa !5
  %2120 = call ptr @s2n_strerror_debug(i32 noundef %2119, ptr noundef @.str.3)
  %2121 = call ptr @__errno_location() #12
  %2122 = load i32, ptr %2121, align 4, !tbaa !5
  %2123 = call ptr @strerror(i32 noundef %2122) #11
  %2124 = call ptr @__errno_location() #12
  %2125 = load i32, ptr %2124, align 4, !tbaa !5
  %2126 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2113, ptr noundef @.str.4, i32 noundef %2114, ptr noundef @.str.35, ptr noundef @.str.2, i32 noundef 136, ptr noundef %2117, ptr noundef %2120, ptr noundef %2123, i32 noundef %2125) #11
  br label %2127

2127:                                             ; preds = %2110, %2093
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #11
  br label %2128

2128:                                             ; preds = %2127
  br label %2129

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

2130:                                             ; No predecessors!
  br label %2131

2131:                                             ; preds = %2130
  br label %2132

2132:                                             ; preds = %2131, %2062
  br label %2133

2133:                                             ; preds = %2132
  br label %2134

2134:                                             ; preds = %2133
  br label %2135

2135:                                             ; preds = %2134, %2058
  %2136 = load i32, ptr %44, align 4, !tbaa !5
  %2137 = icmp sgt i32 %2136, 0
  br i1 %2137, label %2138, label %2280

2138:                                             ; preds = %2135
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #11
  %2139 = load ptr, ptr %6, align 8, !tbaa !9
  %2140 = getelementptr inbounds %struct.s2n_connection, ptr %2139, i32 0, i32 41
  %2141 = getelementptr inbounds %struct.s2n_stuffer, ptr %2140, i32 0, i32 0
  %2142 = getelementptr inbounds %struct.s2n_blob, ptr %2141, i32 0, i32 0
  %2143 = load ptr, ptr %2142, align 8, !tbaa !61
  %2144 = getelementptr inbounds i8, ptr %2143, i64 5
  store ptr %2144, ptr %57, align 8, !tbaa !9
  br label %2145

2145:                                             ; preds = %2138
  %2146 = load i32, ptr @test_count, align 4, !tbaa !5
  %2147 = add nsw i32 %2146, 1
  store i32 %2147, ptr @test_count, align 4, !tbaa !5
  %2148 = getelementptr inbounds [8089 x [16 x i8]], ptr %18, i64 0, i64 0
  %2149 = load i64, ptr %32, align 8, !tbaa !53
  %2150 = load ptr, ptr %57, align 8, !tbaa !9
  %2151 = load i32, ptr %44, align 4, !tbaa !5
  %2152 = trunc i32 %2151 to i16
  %2153 = call i32 @ensure_explicit_iv_is_unique(ptr noundef %2148, i64 noundef %2149, ptr noundef %2150, i16 noundef zeroext %2152)
  %2154 = icmp eq i32 %2153, -1
  br i1 %2154, label %2155, label %2208

2155:                                             ; preds = %2145
  br label %2156

2156:                                             ; preds = %2155
  br label %2157

2157:                                             ; preds = %2156
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #11
  %2158 = call ptr @__errno_location() #12
  %2159 = load i32, ptr %2158, align 4, !tbaa !5
  store i32 %2159, ptr %58, align 4, !tbaa !5
  %2160 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2161 = call i32 @s2n_print_stacktrace(ptr noundef %2160)
  %2162 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2163 = trunc i8 %2162 to i1
  br i1 %2163, label %2164, label %2186

2164:                                             ; preds = %2157
  %2165 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2166 = call i32 @fileno(ptr noundef %2165) #11
  %2167 = call i32 @isatty(i32 noundef %2166) #11
  %2168 = icmp ne i32 %2167, 0
  br i1 %2168, label %2169, label %2186

2169:                                             ; preds = %2164
  %2170 = load i32, ptr %58, align 4, !tbaa !5
  %2171 = call ptr @__errno_location() #12
  store i32 %2170, ptr %2171, align 4, !tbaa !5
  %2172 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2173 = load i32, ptr @test_count, align 4, !tbaa !5
  %2174 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2175 = load i32, ptr %2174, align 4, !tbaa !5
  %2176 = call ptr @s2n_strerror(i32 noundef %2175, ptr noundef @.str.3)
  %2177 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2178 = load i32, ptr %2177, align 4, !tbaa !5
  %2179 = call ptr @s2n_strerror_debug(i32 noundef %2178, ptr noundef @.str.3)
  %2180 = call ptr @__errno_location() #12
  %2181 = load i32, ptr %2180, align 4, !tbaa !5
  %2182 = call ptr @strerror(i32 noundef %2181) #11
  %2183 = call ptr @__errno_location() #12
  %2184 = load i32, ptr %2183, align 4, !tbaa !5
  %2185 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2172, ptr noundef @.str, i32 noundef %2173, ptr noundef @.str.36, ptr noundef @.str.2, i32 noundef 142, ptr noundef %2176, ptr noundef %2179, ptr noundef %2182, i32 noundef %2184) #11
  br label %2203

2186:                                             ; preds = %2164, %2157
  %2187 = load i32, ptr %58, align 4, !tbaa !5
  %2188 = call ptr @__errno_location() #12
  store i32 %2187, ptr %2188, align 4, !tbaa !5
  %2189 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2190 = load i32, ptr @test_count, align 4, !tbaa !5
  %2191 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2192 = load i32, ptr %2191, align 4, !tbaa !5
  %2193 = call ptr @s2n_strerror(i32 noundef %2192, ptr noundef @.str.3)
  %2194 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2195 = load i32, ptr %2194, align 4, !tbaa !5
  %2196 = call ptr @s2n_strerror_debug(i32 noundef %2195, ptr noundef @.str.3)
  %2197 = call ptr @__errno_location() #12
  %2198 = load i32, ptr %2197, align 4, !tbaa !5
  %2199 = call ptr @strerror(i32 noundef %2198) #11
  %2200 = call ptr @__errno_location() #12
  %2201 = load i32, ptr %2200, align 4, !tbaa !5
  %2202 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2189, ptr noundef @.str.4, i32 noundef %2190, ptr noundef @.str.36, ptr noundef @.str.2, i32 noundef 142, ptr noundef %2193, ptr noundef %2196, ptr noundef %2199, i32 noundef %2201) #11
  br label %2203

2203:                                             ; preds = %2186, %2169
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #11
  br label %2204

2204:                                             ; preds = %2203
  br label %2205

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

2206:                                             ; No predecessors!
  br label %2207

2207:                                             ; preds = %2206
  br label %2208

2208:                                             ; preds = %2207, %2145
  br label %2209

2209:                                             ; preds = %2208
  br label %2210

2210:                                             ; preds = %2209
  br label %2211

2211:                                             ; preds = %2210
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #11
  %2212 = load i32, ptr %44, align 4, !tbaa !5
  store i32 %2212, ptr %59, align 4, !tbaa !5
  %2213 = load i32, ptr %59, align 4, !tbaa !5
  %2214 = icmp ne i32 %2213, 0
  br i1 %2214, label %2215, label %2277

2215:                                             ; preds = %2211
  %2216 = load i64, ptr %32, align 8, !tbaa !53
  %2217 = getelementptr inbounds [8089 x [16 x i8]], ptr %18, i64 0, i64 %2216
  %2218 = getelementptr inbounds [16 x i8], ptr %2217, i64 0, i64 0
  %2219 = load ptr, ptr %57, align 8, !tbaa !9
  %2220 = load i32, ptr %59, align 4, !tbaa !5
  %2221 = sext i32 %2220 to i64
  call void @llvm.memmove.p0.p0.i64(ptr align 16 %2218, ptr align 1 %2219, i64 %2221, i1 false)
  %2222 = icmp eq ptr %2218, null
  br i1 %2222, label %2223, label %2276

2223:                                             ; preds = %2215
  br label %2224

2224:                                             ; preds = %2223
  br label %2225

2225:                                             ; preds = %2224
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #11
  %2226 = call ptr @__errno_location() #12
  %2227 = load i32, ptr %2226, align 4, !tbaa !5
  store i32 %2227, ptr %60, align 4, !tbaa !5
  %2228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2229 = call i32 @s2n_print_stacktrace(ptr noundef %2228)
  %2230 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2231 = trunc i8 %2230 to i1
  br i1 %2231, label %2232, label %2254

2232:                                             ; preds = %2225
  %2233 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2234 = call i32 @fileno(ptr noundef %2233) #11
  %2235 = call i32 @isatty(i32 noundef %2234) #11
  %2236 = icmp ne i32 %2235, 0
  br i1 %2236, label %2237, label %2254

2237:                                             ; preds = %2232
  %2238 = load i32, ptr %60, align 4, !tbaa !5
  %2239 = call ptr @__errno_location() #12
  store i32 %2238, ptr %2239, align 4, !tbaa !5
  %2240 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2241 = load i32, ptr @test_count, align 4, !tbaa !5
  %2242 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2243 = load i32, ptr %2242, align 4, !tbaa !5
  %2244 = call ptr @s2n_strerror(i32 noundef %2243, ptr noundef @.str.3)
  %2245 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2246 = load i32, ptr %2245, align 4, !tbaa !5
  %2247 = call ptr @s2n_strerror_debug(i32 noundef %2246, ptr noundef @.str.3)
  %2248 = call ptr @__errno_location() #12
  %2249 = load i32, ptr %2248, align 4, !tbaa !5
  %2250 = call ptr @strerror(i32 noundef %2249) #11
  %2251 = call ptr @__errno_location() #12
  %2252 = load i32, ptr %2251, align 4, !tbaa !5
  %2253 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2240, ptr noundef @.str, i32 noundef %2241, ptr noundef @.str.37, ptr noundef @.str.2, i32 noundef 144, ptr noundef %2244, ptr noundef %2247, ptr noundef %2250, i32 noundef %2252) #11
  br label %2271

2254:                                             ; preds = %2232, %2225
  %2255 = load i32, ptr %60, align 4, !tbaa !5
  %2256 = call ptr @__errno_location() #12
  store i32 %2255, ptr %2256, align 4, !tbaa !5
  %2257 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2258 = load i32, ptr @test_count, align 4, !tbaa !5
  %2259 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2260 = load i32, ptr %2259, align 4, !tbaa !5
  %2261 = call ptr @s2n_strerror(i32 noundef %2260, ptr noundef @.str.3)
  %2262 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2263 = load i32, ptr %2262, align 4, !tbaa !5
  %2264 = call ptr @s2n_strerror_debug(i32 noundef %2263, ptr noundef @.str.3)
  %2265 = call ptr @__errno_location() #12
  %2266 = load i32, ptr %2265, align 4, !tbaa !5
  %2267 = call ptr @strerror(i32 noundef %2266) #11
  %2268 = call ptr @__errno_location() #12
  %2269 = load i32, ptr %2268, align 4, !tbaa !5
  %2270 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2257, ptr noundef @.str.4, i32 noundef %2258, ptr noundef @.str.37, ptr noundef @.str.2, i32 noundef 144, ptr noundef %2261, ptr noundef %2264, ptr noundef %2267, i32 noundef %2269) #11
  br label %2271

2271:                                             ; preds = %2254, %2237
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #11
  br label %2272

2272:                                             ; preds = %2271
  br label %2273

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

2274:                                             ; No predecessors!
  br label %2275

2275:                                             ; preds = %2274
  br label %2276

2276:                                             ; preds = %2275, %2215
  br label %2277

2277:                                             ; preds = %2276, %2211
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #11
  br label %2278

2278:                                             ; preds = %2277
  br label %2279

2279:                                             ; preds = %2278
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #11
  br label %2280

2280:                                             ; preds = %2279, %2135
  br label %2281

2281:                                             ; preds = %2280
  %2282 = load i32, ptr @test_count, align 4, !tbaa !5
  %2283 = add nsw i32 %2282, 1
  store i32 %2283, ptr @test_count, align 4, !tbaa !5
  %2284 = load ptr, ptr %6, align 8, !tbaa !9
  %2285 = getelementptr inbounds %struct.s2n_connection, ptr %2284, i32 0, i32 40
  %2286 = call i32 @s2n_stuffer_wipe(ptr noundef %2285)
  %2287 = icmp eq i32 %2286, -1
  br i1 %2287, label %2288, label %2341

2288:                                             ; preds = %2281
  br label %2289

2289:                                             ; preds = %2288
  br label %2290

2290:                                             ; preds = %2289
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #11
  %2291 = call ptr @__errno_location() #12
  %2292 = load i32, ptr %2291, align 4, !tbaa !5
  store i32 %2292, ptr %61, align 4, !tbaa !5
  %2293 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2294 = call i32 @s2n_print_stacktrace(ptr noundef %2293)
  %2295 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2296 = trunc i8 %2295 to i1
  br i1 %2296, label %2297, label %2319

2297:                                             ; preds = %2290
  %2298 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2299 = call i32 @fileno(ptr noundef %2298) #11
  %2300 = call i32 @isatty(i32 noundef %2299) #11
  %2301 = icmp ne i32 %2300, 0
  br i1 %2301, label %2302, label %2319

2302:                                             ; preds = %2297
  %2303 = load i32, ptr %61, align 4, !tbaa !5
  %2304 = call ptr @__errno_location() #12
  store i32 %2303, ptr %2304, align 4, !tbaa !5
  %2305 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2306 = load i32, ptr @test_count, align 4, !tbaa !5
  %2307 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2308 = load i32, ptr %2307, align 4, !tbaa !5
  %2309 = call ptr @s2n_strerror(i32 noundef %2308, ptr noundef @.str.3)
  %2310 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2311 = load i32, ptr %2310, align 4, !tbaa !5
  %2312 = call ptr @s2n_strerror_debug(i32 noundef %2311, ptr noundef @.str.3)
  %2313 = call ptr @__errno_location() #12
  %2314 = load i32, ptr %2313, align 4, !tbaa !5
  %2315 = call ptr @strerror(i32 noundef %2314) #11
  %2316 = call ptr @__errno_location() #12
  %2317 = load i32, ptr %2316, align 4, !tbaa !5
  %2318 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2305, ptr noundef @.str, i32 noundef %2306, ptr noundef @.str.38, ptr noundef @.str.2, i32 noundef 148, ptr noundef %2309, ptr noundef %2312, ptr noundef %2315, i32 noundef %2317) #11
  br label %2336

2319:                                             ; preds = %2297, %2290
  %2320 = load i32, ptr %61, align 4, !tbaa !5
  %2321 = call ptr @__errno_location() #12
  store i32 %2320, ptr %2321, align 4, !tbaa !5
  %2322 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2323 = load i32, ptr @test_count, align 4, !tbaa !5
  %2324 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2325 = load i32, ptr %2324, align 4, !tbaa !5
  %2326 = call ptr @s2n_strerror(i32 noundef %2325, ptr noundef @.str.3)
  %2327 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2328 = load i32, ptr %2327, align 4, !tbaa !5
  %2329 = call ptr @s2n_strerror_debug(i32 noundef %2328, ptr noundef @.str.3)
  %2330 = call ptr @__errno_location() #12
  %2331 = load i32, ptr %2330, align 4, !tbaa !5
  %2332 = call ptr @strerror(i32 noundef %2331) #11
  %2333 = call ptr @__errno_location() #12
  %2334 = load i32, ptr %2333, align 4, !tbaa !5
  %2335 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2322, ptr noundef @.str.4, i32 noundef %2323, ptr noundef @.str.38, ptr noundef @.str.2, i32 noundef 148, ptr noundef %2326, ptr noundef %2329, ptr noundef %2332, i32 noundef %2334) #11
  br label %2336

2336:                                             ; preds = %2319, %2302
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #11
  br label %2337

2337:                                             ; preds = %2336
  br label %2338

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

2339:                                             ; No predecessors!
  br label %2340

2340:                                             ; preds = %2339
  br label %2341

2341:                                             ; preds = %2340, %2281
  br label %2342

2342:                                             ; preds = %2341
  br label %2343

2343:                                             ; preds = %2342
  br label %2344

2344:                                             ; preds = %2343
  %2345 = load i32, ptr @test_count, align 4, !tbaa !5
  %2346 = add nsw i32 %2345, 1
  store i32 %2346, ptr @test_count, align 4, !tbaa !5
  %2347 = load ptr, ptr %6, align 8, !tbaa !9
  %2348 = getelementptr inbounds %struct.s2n_connection, ptr %2347, i32 0, i32 38
  %2349 = call i32 @s2n_stuffer_wipe(ptr noundef %2348)
  %2350 = icmp eq i32 %2349, -1
  br i1 %2350, label %2351, label %2404

2351:                                             ; preds = %2344
  br label %2352

2352:                                             ; preds = %2351
  br label %2353

2353:                                             ; preds = %2352
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #11
  %2354 = call ptr @__errno_location() #12
  %2355 = load i32, ptr %2354, align 4, !tbaa !5
  store i32 %2355, ptr %62, align 4, !tbaa !5
  %2356 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2357 = call i32 @s2n_print_stacktrace(ptr noundef %2356)
  %2358 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2359 = trunc i8 %2358 to i1
  br i1 %2359, label %2360, label %2382

2360:                                             ; preds = %2353
  %2361 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2362 = call i32 @fileno(ptr noundef %2361) #11
  %2363 = call i32 @isatty(i32 noundef %2362) #11
  %2364 = icmp ne i32 %2363, 0
  br i1 %2364, label %2365, label %2382

2365:                                             ; preds = %2360
  %2366 = load i32, ptr %62, align 4, !tbaa !5
  %2367 = call ptr @__errno_location() #12
  store i32 %2366, ptr %2367, align 4, !tbaa !5
  %2368 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2369 = load i32, ptr @test_count, align 4, !tbaa !5
  %2370 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2371 = load i32, ptr %2370, align 4, !tbaa !5
  %2372 = call ptr @s2n_strerror(i32 noundef %2371, ptr noundef @.str.3)
  %2373 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2374 = load i32, ptr %2373, align 4, !tbaa !5
  %2375 = call ptr @s2n_strerror_debug(i32 noundef %2374, ptr noundef @.str.3)
  %2376 = call ptr @__errno_location() #12
  %2377 = load i32, ptr %2376, align 4, !tbaa !5
  %2378 = call ptr @strerror(i32 noundef %2377) #11
  %2379 = call ptr @__errno_location() #12
  %2380 = load i32, ptr %2379, align 4, !tbaa !5
  %2381 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2368, ptr noundef @.str, i32 noundef %2369, ptr noundef @.str.39, ptr noundef @.str.2, i32 noundef 149, ptr noundef %2372, ptr noundef %2375, ptr noundef %2378, i32 noundef %2380) #11
  br label %2399

2382:                                             ; preds = %2360, %2353
  %2383 = load i32, ptr %62, align 4, !tbaa !5
  %2384 = call ptr @__errno_location() #12
  store i32 %2383, ptr %2384, align 4, !tbaa !5
  %2385 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2386 = load i32, ptr @test_count, align 4, !tbaa !5
  %2387 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2388 = load i32, ptr %2387, align 4, !tbaa !5
  %2389 = call ptr @s2n_strerror(i32 noundef %2388, ptr noundef @.str.3)
  %2390 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2391 = load i32, ptr %2390, align 4, !tbaa !5
  %2392 = call ptr @s2n_strerror_debug(i32 noundef %2391, ptr noundef @.str.3)
  %2393 = call ptr @__errno_location() #12
  %2394 = load i32, ptr %2393, align 4, !tbaa !5
  %2395 = call ptr @strerror(i32 noundef %2394) #11
  %2396 = call ptr @__errno_location() #12
  %2397 = load i32, ptr %2396, align 4, !tbaa !5
  %2398 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2385, ptr noundef @.str.4, i32 noundef %2386, ptr noundef @.str.39, ptr noundef @.str.2, i32 noundef 149, ptr noundef %2389, ptr noundef %2392, ptr noundef %2395, i32 noundef %2397) #11
  br label %2399

2399:                                             ; preds = %2382, %2365
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #11
  br label %2400

2400:                                             ; preds = %2399
  br label %2401

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

2402:                                             ; No predecessors!
  br label %2403

2403:                                             ; preds = %2402
  br label %2404

2404:                                             ; preds = %2403, %2344
  br label %2405

2405:                                             ; preds = %2404
  br label %2406

2406:                                             ; preds = %2405
  br label %2407

2407:                                             ; preds = %2406
  %2408 = load i32, ptr @test_count, align 4, !tbaa !5
  %2409 = add nsw i32 %2408, 1
  store i32 %2409, ptr @test_count, align 4, !tbaa !5
  %2410 = load ptr, ptr %6, align 8, !tbaa !9
  %2411 = getelementptr inbounds %struct.s2n_connection, ptr %2410, i32 0, i32 41
  %2412 = load ptr, ptr %6, align 8, !tbaa !9
  %2413 = getelementptr inbounds %struct.s2n_connection, ptr %2412, i32 0, i32 38
  %2414 = call i32 @s2n_stuffer_copy(ptr noundef %2411, ptr noundef %2413, i32 noundef 5)
  %2415 = icmp eq i32 %2414, -1
  br i1 %2415, label %2416, label %2469

2416:                                             ; preds = %2407
  br label %2417

2417:                                             ; preds = %2416
  br label %2418

2418:                                             ; preds = %2417
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #11
  %2419 = call ptr @__errno_location() #12
  %2420 = load i32, ptr %2419, align 4, !tbaa !5
  store i32 %2420, ptr %63, align 4, !tbaa !5
  %2421 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2422 = call i32 @s2n_print_stacktrace(ptr noundef %2421)
  %2423 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2424 = trunc i8 %2423 to i1
  br i1 %2424, label %2425, label %2447

2425:                                             ; preds = %2418
  %2426 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2427 = call i32 @fileno(ptr noundef %2426) #11
  %2428 = call i32 @isatty(i32 noundef %2427) #11
  %2429 = icmp ne i32 %2428, 0
  br i1 %2429, label %2430, label %2447

2430:                                             ; preds = %2425
  %2431 = load i32, ptr %63, align 4, !tbaa !5
  %2432 = call ptr @__errno_location() #12
  store i32 %2431, ptr %2432, align 4, !tbaa !5
  %2433 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2434 = load i32, ptr @test_count, align 4, !tbaa !5
  %2435 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2436 = load i32, ptr %2435, align 4, !tbaa !5
  %2437 = call ptr @s2n_strerror(i32 noundef %2436, ptr noundef @.str.3)
  %2438 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2439 = load i32, ptr %2438, align 4, !tbaa !5
  %2440 = call ptr @s2n_strerror_debug(i32 noundef %2439, ptr noundef @.str.3)
  %2441 = call ptr @__errno_location() #12
  %2442 = load i32, ptr %2441, align 4, !tbaa !5
  %2443 = call ptr @strerror(i32 noundef %2442) #11
  %2444 = call ptr @__errno_location() #12
  %2445 = load i32, ptr %2444, align 4, !tbaa !5
  %2446 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2433, ptr noundef @.str, i32 noundef %2434, ptr noundef @.str.40, ptr noundef @.str.2, i32 noundef 150, ptr noundef %2437, ptr noundef %2440, ptr noundef %2443, i32 noundef %2445) #11
  br label %2464

2447:                                             ; preds = %2425, %2418
  %2448 = load i32, ptr %63, align 4, !tbaa !5
  %2449 = call ptr @__errno_location() #12
  store i32 %2448, ptr %2449, align 4, !tbaa !5
  %2450 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2451 = load i32, ptr @test_count, align 4, !tbaa !5
  %2452 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2453 = load i32, ptr %2452, align 4, !tbaa !5
  %2454 = call ptr @s2n_strerror(i32 noundef %2453, ptr noundef @.str.3)
  %2455 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2456 = load i32, ptr %2455, align 4, !tbaa !5
  %2457 = call ptr @s2n_strerror_debug(i32 noundef %2456, ptr noundef @.str.3)
  %2458 = call ptr @__errno_location() #12
  %2459 = load i32, ptr %2458, align 4, !tbaa !5
  %2460 = call ptr @strerror(i32 noundef %2459) #11
  %2461 = call ptr @__errno_location() #12
  %2462 = load i32, ptr %2461, align 4, !tbaa !5
  %2463 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2450, ptr noundef @.str.4, i32 noundef %2451, ptr noundef @.str.40, ptr noundef @.str.2, i32 noundef 150, ptr noundef %2454, ptr noundef %2457, ptr noundef %2460, i32 noundef %2462) #11
  br label %2464

2464:                                             ; preds = %2447, %2430
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #11
  br label %2465

2465:                                             ; preds = %2464
  br label %2466

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

2467:                                             ; No predecessors!
  br label %2468

2468:                                             ; preds = %2467
  br label %2469

2469:                                             ; preds = %2468, %2407
  br label %2470

2470:                                             ; preds = %2469
  br label %2471

2471:                                             ; preds = %2470
  br label %2472

2472:                                             ; preds = %2471
  %2473 = load i32, ptr @test_count, align 4, !tbaa !5
  %2474 = add nsw i32 %2473, 1
  store i32 %2474, ptr @test_count, align 4, !tbaa !5
  %2475 = load ptr, ptr %6, align 8, !tbaa !9
  %2476 = getelementptr inbounds %struct.s2n_connection, ptr %2475, i32 0, i32 41
  %2477 = load ptr, ptr %6, align 8, !tbaa !9
  %2478 = getelementptr inbounds %struct.s2n_connection, ptr %2477, i32 0, i32 40
  %2479 = load ptr, ptr %6, align 8, !tbaa !9
  %2480 = getelementptr inbounds %struct.s2n_connection, ptr %2479, i32 0, i32 41
  %2481 = getelementptr inbounds %struct.s2n_stuffer, ptr %2480, i32 0, i32 2
  %2482 = load i32, ptr %2481, align 4, !tbaa !62
  %2483 = load ptr, ptr %6, align 8, !tbaa !9
  %2484 = getelementptr inbounds %struct.s2n_connection, ptr %2483, i32 0, i32 41
  %2485 = getelementptr inbounds %struct.s2n_stuffer, ptr %2484, i32 0, i32 1
  %2486 = load i32, ptr %2485, align 8, !tbaa !63
  %2487 = sub i32 %2482, %2486
  %2488 = call i32 @s2n_stuffer_copy(ptr noundef %2476, ptr noundef %2478, i32 noundef %2487)
  %2489 = icmp eq i32 %2488, -1
  br i1 %2489, label %2490, label %2543

2490:                                             ; preds = %2472
  br label %2491

2491:                                             ; preds = %2490
  br label %2492

2492:                                             ; preds = %2491
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #11
  %2493 = call ptr @__errno_location() #12
  %2494 = load i32, ptr %2493, align 4, !tbaa !5
  store i32 %2494, ptr %64, align 4, !tbaa !5
  %2495 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2496 = call i32 @s2n_print_stacktrace(ptr noundef %2495)
  %2497 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2498 = trunc i8 %2497 to i1
  br i1 %2498, label %2499, label %2521

2499:                                             ; preds = %2492
  %2500 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2501 = call i32 @fileno(ptr noundef %2500) #11
  %2502 = call i32 @isatty(i32 noundef %2501) #11
  %2503 = icmp ne i32 %2502, 0
  br i1 %2503, label %2504, label %2521

2504:                                             ; preds = %2499
  %2505 = load i32, ptr %64, align 4, !tbaa !5
  %2506 = call ptr @__errno_location() #12
  store i32 %2505, ptr %2506, align 4, !tbaa !5
  %2507 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2508 = load i32, ptr @test_count, align 4, !tbaa !5
  %2509 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2510 = load i32, ptr %2509, align 4, !tbaa !5
  %2511 = call ptr @s2n_strerror(i32 noundef %2510, ptr noundef @.str.3)
  %2512 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2513 = load i32, ptr %2512, align 4, !tbaa !5
  %2514 = call ptr @s2n_strerror_debug(i32 noundef %2513, ptr noundef @.str.3)
  %2515 = call ptr @__errno_location() #12
  %2516 = load i32, ptr %2515, align 4, !tbaa !5
  %2517 = call ptr @strerror(i32 noundef %2516) #11
  %2518 = call ptr @__errno_location() #12
  %2519 = load i32, ptr %2518, align 4, !tbaa !5
  %2520 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2507, ptr noundef @.str, i32 noundef %2508, ptr noundef @.str.41, ptr noundef @.str.2, i32 noundef 151, ptr noundef %2511, ptr noundef %2514, ptr noundef %2517, i32 noundef %2519) #11
  br label %2538

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

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

2539:                                             ; preds = %2538
  br label %2540

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

2541:                                             ; No predecessors!
  br label %2542

2542:                                             ; preds = %2541
  br label %2543

2543:                                             ; preds = %2542, %2472
  br label %2544

2544:                                             ; preds = %2543
  br label %2545

2545:                                             ; preds = %2544
  call void @llvm.lifetime.start.p0(i64 1, ptr %65) #11
  store i8 0, ptr %65, align 1, !tbaa !58
  call void @llvm.lifetime.start.p0(i64 2, ptr %66) #11
  store i16 0, ptr %66, align 2, !tbaa !60
  br label %2546

2546:                                             ; preds = %2545
  %2547 = load i32, ptr @test_count, align 4, !tbaa !5
  %2548 = add nsw i32 %2547, 1
  store i32 %2548, ptr @test_count, align 4, !tbaa !5
  %2549 = load ptr, ptr %6, align 8, !tbaa !9
  %2550 = call i32 @s2n_record_header_parse(ptr noundef %2549, ptr noundef %65, ptr noundef %66)
  %2551 = icmp eq i32 %2550, -1
  br i1 %2551, label %2552, label %2605

2552:                                             ; preds = %2546
  br label %2553

2553:                                             ; preds = %2552
  br label %2554

2554:                                             ; preds = %2553
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #11
  %2555 = call ptr @__errno_location() #12
  %2556 = load i32, ptr %2555, align 4, !tbaa !5
  store i32 %2556, ptr %67, align 4, !tbaa !5
  %2557 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2558 = call i32 @s2n_print_stacktrace(ptr noundef %2557)
  %2559 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2560 = trunc i8 %2559 to i1
  br i1 %2560, label %2561, label %2583

2561:                                             ; preds = %2554
  %2562 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2563 = call i32 @fileno(ptr noundef %2562) #11
  %2564 = call i32 @isatty(i32 noundef %2563) #11
  %2565 = icmp ne i32 %2564, 0
  br i1 %2565, label %2566, label %2583

2566:                                             ; preds = %2561
  %2567 = load i32, ptr %67, align 4, !tbaa !5
  %2568 = call ptr @__errno_location() #12
  store i32 %2567, ptr %2568, align 4, !tbaa !5
  %2569 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2570 = load i32, ptr @test_count, align 4, !tbaa !5
  %2571 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2572 = load i32, ptr %2571, align 4, !tbaa !5
  %2573 = call ptr @s2n_strerror(i32 noundef %2572, ptr noundef @.str.3)
  %2574 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2575 = load i32, ptr %2574, align 4, !tbaa !5
  %2576 = call ptr @s2n_strerror_debug(i32 noundef %2575, ptr noundef @.str.3)
  %2577 = call ptr @__errno_location() #12
  %2578 = load i32, ptr %2577, align 4, !tbaa !5
  %2579 = call ptr @strerror(i32 noundef %2578) #11
  %2580 = call ptr @__errno_location() #12
  %2581 = load i32, ptr %2580, align 4, !tbaa !5
  %2582 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2569, ptr noundef @.str, i32 noundef %2570, ptr noundef @.str.42, ptr noundef @.str.2, i32 noundef 156, ptr noundef %2573, ptr noundef %2576, ptr noundef %2579, i32 noundef %2581) #11
  br label %2600

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

2600:                                             ; preds = %2583, %2566
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #11
  br label %2601

2601:                                             ; preds = %2600
  br label %2602

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

2603:                                             ; No predecessors!
  br label %2604

2604:                                             ; preds = %2603
  br label %2605

2605:                                             ; preds = %2604, %2546
  br label %2606

2606:                                             ; preds = %2605
  br label %2607

2607:                                             ; preds = %2606
  br label %2608

2608:                                             ; preds = %2607
  %2609 = load i32, ptr @test_count, align 4, !tbaa !5
  %2610 = add nsw i32 %2609, 1
  store i32 %2610, ptr @test_count, align 4, !tbaa !5
  %2611 = load ptr, ptr %6, align 8, !tbaa !9
  %2612 = call i32 @s2n_record_parse(ptr noundef %2611)
  %2613 = icmp eq i32 %2612, -1
  br i1 %2613, label %2614, label %2667

2614:                                             ; preds = %2608
  br label %2615

2615:                                             ; preds = %2614
  br label %2616

2616:                                             ; preds = %2615
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #11
  %2617 = call ptr @__errno_location() #12
  %2618 = load i32, ptr %2617, align 4, !tbaa !5
  store i32 %2618, ptr %68, align 4, !tbaa !5
  %2619 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2620 = call i32 @s2n_print_stacktrace(ptr noundef %2619)
  %2621 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2622 = trunc i8 %2621 to i1
  br i1 %2622, label %2623, label %2645

2623:                                             ; preds = %2616
  %2624 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2625 = call i32 @fileno(ptr noundef %2624) #11
  %2626 = call i32 @isatty(i32 noundef %2625) #11
  %2627 = icmp ne i32 %2626, 0
  br i1 %2627, label %2628, label %2645

2628:                                             ; preds = %2623
  %2629 = load i32, ptr %68, align 4, !tbaa !5
  %2630 = call ptr @__errno_location() #12
  store i32 %2629, ptr %2630, align 4, !tbaa !5
  %2631 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2632 = load i32, ptr @test_count, align 4, !tbaa !5
  %2633 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2634 = load i32, ptr %2633, align 4, !tbaa !5
  %2635 = call ptr @s2n_strerror(i32 noundef %2634, ptr noundef @.str.3)
  %2636 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2637 = load i32, ptr %2636, align 4, !tbaa !5
  %2638 = call ptr @s2n_strerror_debug(i32 noundef %2637, ptr noundef @.str.3)
  %2639 = call ptr @__errno_location() #12
  %2640 = load i32, ptr %2639, align 4, !tbaa !5
  %2641 = call ptr @strerror(i32 noundef %2640) #11
  %2642 = call ptr @__errno_location() #12
  %2643 = load i32, ptr %2642, align 4, !tbaa !5
  %2644 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2631, ptr noundef @.str, i32 noundef %2632, ptr noundef @.str.43, ptr noundef @.str.2, i32 noundef 157, ptr noundef %2635, ptr noundef %2638, ptr noundef %2641, i32 noundef %2643) #11
  br label %2662

2645:                                             ; preds = %2623, %2616
  %2646 = load i32, ptr %68, align 4, !tbaa !5
  %2647 = call ptr @__errno_location() #12
  store i32 %2646, ptr %2647, align 4, !tbaa !5
  %2648 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2649 = load i32, ptr @test_count, align 4, !tbaa !5
  %2650 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2651 = load i32, ptr %2650, align 4, !tbaa !5
  %2652 = call ptr @s2n_strerror(i32 noundef %2651, ptr noundef @.str.3)
  %2653 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2654 = load i32, ptr %2653, align 4, !tbaa !5
  %2655 = call ptr @s2n_strerror_debug(i32 noundef %2654, ptr noundef @.str.3)
  %2656 = call ptr @__errno_location() #12
  %2657 = load i32, ptr %2656, align 4, !tbaa !5
  %2658 = call ptr @strerror(i32 noundef %2657) #11
  %2659 = call ptr @__errno_location() #12
  %2660 = load i32, ptr %2659, align 4, !tbaa !5
  %2661 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2648, ptr noundef @.str.4, i32 noundef %2649, ptr noundef @.str.43, ptr noundef @.str.2, i32 noundef 157, ptr noundef %2652, ptr noundef %2655, ptr noundef %2658, i32 noundef %2660) #11
  br label %2662

2662:                                             ; preds = %2645, %2628
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #11
  br label %2663

2663:                                             ; preds = %2662
  br label %2664

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

2665:                                             ; No predecessors!
  br label %2666

2666:                                             ; preds = %2665
  br label %2667

2667:                                             ; preds = %2666, %2608
  br label %2668

2668:                                             ; preds = %2667
  br label %2669

2669:                                             ; preds = %2668
  br label %2670

2670:                                             ; preds = %2669
  %2671 = load i32, ptr @test_count, align 4, !tbaa !5
  %2672 = add nsw i32 %2671, 1
  store i32 %2672, ptr @test_count, align 4, !tbaa !5
  %2673 = load i8, ptr %65, align 1, !tbaa !58
  %2674 = zext i8 %2673 to i32
  %2675 = icmp eq i32 %2674, 23
  br i1 %2675, label %2729, label %2676

2676:                                             ; preds = %2670
  br label %2677

2677:                                             ; preds = %2676
  br label %2678

2678:                                             ; preds = %2677
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #11
  %2679 = call ptr @__errno_location() #12
  %2680 = load i32, ptr %2679, align 4, !tbaa !5
  store i32 %2680, ptr %69, align 4, !tbaa !5
  %2681 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2682 = call i32 @s2n_print_stacktrace(ptr noundef %2681)
  %2683 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2684 = trunc i8 %2683 to i1
  br i1 %2684, label %2685, label %2707

2685:                                             ; preds = %2678
  %2686 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2687 = call i32 @fileno(ptr noundef %2686) #11
  %2688 = call i32 @isatty(i32 noundef %2687) #11
  %2689 = icmp ne i32 %2688, 0
  br i1 %2689, label %2690, label %2707

2690:                                             ; preds = %2685
  %2691 = load i32, ptr %69, align 4, !tbaa !5
  %2692 = call ptr @__errno_location() #12
  store i32 %2691, ptr %2692, align 4, !tbaa !5
  %2693 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2694 = load i32, ptr @test_count, align 4, !tbaa !5
  %2695 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2696 = load i32, ptr %2695, align 4, !tbaa !5
  %2697 = call ptr @s2n_strerror(i32 noundef %2696, ptr noundef @.str.3)
  %2698 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2699 = load i32, ptr %2698, align 4, !tbaa !5
  %2700 = call ptr @s2n_strerror_debug(i32 noundef %2699, ptr noundef @.str.3)
  %2701 = call ptr @__errno_location() #12
  %2702 = load i32, ptr %2701, align 4, !tbaa !5
  %2703 = call ptr @strerror(i32 noundef %2702) #11
  %2704 = call ptr @__errno_location() #12
  %2705 = load i32, ptr %2704, align 4, !tbaa !5
  %2706 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2693, ptr noundef @.str, i32 noundef %2694, ptr noundef @.str.44, ptr noundef @.str.2, i32 noundef 158, ptr noundef %2697, ptr noundef %2700, ptr noundef %2703, i32 noundef %2705) #11
  br label %2724

2707:                                             ; preds = %2685, %2678
  %2708 = load i32, ptr %69, align 4, !tbaa !5
  %2709 = call ptr @__errno_location() #12
  store i32 %2708, ptr %2709, align 4, !tbaa !5
  %2710 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2711 = load i32, ptr @test_count, align 4, !tbaa !5
  %2712 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2713 = load i32, ptr %2712, align 4, !tbaa !5
  %2714 = call ptr @s2n_strerror(i32 noundef %2713, ptr noundef @.str.3)
  %2715 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2716 = load i32, ptr %2715, align 4, !tbaa !5
  %2717 = call ptr @s2n_strerror_debug(i32 noundef %2716, ptr noundef @.str.3)
  %2718 = call ptr @__errno_location() #12
  %2719 = load i32, ptr %2718, align 4, !tbaa !5
  %2720 = call ptr @strerror(i32 noundef %2719) #11
  %2721 = call ptr @__errno_location() #12
  %2722 = load i32, ptr %2721, align 4, !tbaa !5
  %2723 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2710, ptr noundef @.str.4, i32 noundef %2711, ptr noundef @.str.44, ptr noundef @.str.2, i32 noundef 158, ptr noundef %2714, ptr noundef %2717, ptr noundef %2720, i32 noundef %2722) #11
  br label %2724

2724:                                             ; preds = %2707, %2690
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #11
  br label %2725

2725:                                             ; preds = %2724
  br label %2726

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

2727:                                             ; No predecessors!
  br label %2728

2728:                                             ; preds = %2727
  br label %2729

2729:                                             ; preds = %2728, %2670
  br label %2730

2730:                                             ; preds = %2729
  br label %2731

2731:                                             ; preds = %2730
  br label %2732

2732:                                             ; preds = %2731
  %2733 = load i32, ptr @test_count, align 4, !tbaa !5
  %2734 = add nsw i32 %2733, 1
  store i32 %2734, ptr @test_count, align 4, !tbaa !5
  %2735 = load i16, ptr %66, align 2, !tbaa !60
  %2736 = zext i16 %2735 to i32
  %2737 = load i16, ptr %50, align 2, !tbaa !60
  %2738 = zext i16 %2737 to i32
  %2739 = icmp eq i32 %2736, %2738
  br i1 %2739, label %2793, label %2740

2740:                                             ; preds = %2732
  br label %2741

2741:                                             ; preds = %2740
  br label %2742

2742:                                             ; preds = %2741
  call void @llvm.lifetime.start.p0(i64 4, ptr %70) #11
  %2743 = call ptr @__errno_location() #12
  %2744 = load i32, ptr %2743, align 4, !tbaa !5
  store i32 %2744, ptr %70, align 4, !tbaa !5
  %2745 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2746 = call i32 @s2n_print_stacktrace(ptr noundef %2745)
  %2747 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2748 = trunc i8 %2747 to i1
  br i1 %2748, label %2749, label %2771

2749:                                             ; preds = %2742
  %2750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2751 = call i32 @fileno(ptr noundef %2750) #11
  %2752 = call i32 @isatty(i32 noundef %2751) #11
  %2753 = icmp ne i32 %2752, 0
  br i1 %2753, label %2754, label %2771

2754:                                             ; preds = %2749
  %2755 = load i32, ptr %70, align 4, !tbaa !5
  %2756 = call ptr @__errno_location() #12
  store i32 %2755, ptr %2756, align 4, !tbaa !5
  %2757 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2758 = load i32, ptr @test_count, align 4, !tbaa !5
  %2759 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2760 = load i32, ptr %2759, align 4, !tbaa !5
  %2761 = call ptr @s2n_strerror(i32 noundef %2760, ptr noundef @.str.3)
  %2762 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2763 = load i32, ptr %2762, align 4, !tbaa !5
  %2764 = call ptr @s2n_strerror_debug(i32 noundef %2763, ptr noundef @.str.3)
  %2765 = call ptr @__errno_location() #12
  %2766 = load i32, ptr %2765, align 4, !tbaa !5
  %2767 = call ptr @strerror(i32 noundef %2766) #11
  %2768 = call ptr @__errno_location() #12
  %2769 = load i32, ptr %2768, align 4, !tbaa !5
  %2770 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2757, ptr noundef @.str, i32 noundef %2758, ptr noundef @.str.45, ptr noundef @.str.2, i32 noundef 159, ptr noundef %2761, ptr noundef %2764, ptr noundef %2767, i32 noundef %2769) #11
  br label %2788

2771:                                             ; preds = %2749, %2742
  %2772 = load i32, ptr %70, align 4, !tbaa !5
  %2773 = call ptr @__errno_location() #12
  store i32 %2772, ptr %2773, align 4, !tbaa !5
  %2774 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2775 = load i32, ptr @test_count, align 4, !tbaa !5
  %2776 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2777 = load i32, ptr %2776, align 4, !tbaa !5
  %2778 = call ptr @s2n_strerror(i32 noundef %2777, ptr noundef @.str.3)
  %2779 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2780 = load i32, ptr %2779, align 4, !tbaa !5
  %2781 = call ptr @s2n_strerror_debug(i32 noundef %2780, ptr noundef @.str.3)
  %2782 = call ptr @__errno_location() #12
  %2783 = load i32, ptr %2782, align 4, !tbaa !5
  %2784 = call ptr @strerror(i32 noundef %2783) #11
  %2785 = call ptr @__errno_location() #12
  %2786 = load i32, ptr %2785, align 4, !tbaa !5
  %2787 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2774, ptr noundef @.str.4, i32 noundef %2775, ptr noundef @.str.45, ptr noundef @.str.2, i32 noundef 159, ptr noundef %2778, ptr noundef %2781, ptr noundef %2784, i32 noundef %2786) #11
  br label %2788

2788:                                             ; preds = %2771, %2754
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #11
  br label %2789

2789:                                             ; preds = %2788
  br label %2790

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

2791:                                             ; No predecessors!
  br label %2792

2792:                                             ; preds = %2791
  br label %2793

2793:                                             ; preds = %2792, %2732
  br label %2794

2794:                                             ; preds = %2793
  br label %2795

2795:                                             ; preds = %2794
  br label %2796

2796:                                             ; preds = %2795
  %2797 = load i32, ptr @test_count, align 4, !tbaa !5
  %2798 = add nsw i32 %2797, 1
  store i32 %2798, ptr @test_count, align 4, !tbaa !5
  %2799 = load ptr, ptr %6, align 8, !tbaa !9
  %2800 = getelementptr inbounds %struct.s2n_connection, ptr %2799, i32 0, i32 38
  %2801 = call i32 @s2n_stuffer_wipe(ptr noundef %2800)
  %2802 = icmp eq i32 %2801, -1
  br i1 %2802, label %2803, label %2856

2803:                                             ; preds = %2796
  br label %2804

2804:                                             ; preds = %2803
  br label %2805

2805:                                             ; preds = %2804
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #11
  %2806 = call ptr @__errno_location() #12
  %2807 = load i32, ptr %2806, align 4, !tbaa !5
  store i32 %2807, ptr %71, align 4, !tbaa !5
  %2808 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2809 = call i32 @s2n_print_stacktrace(ptr noundef %2808)
  %2810 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2811 = trunc i8 %2810 to i1
  br i1 %2811, label %2812, label %2834

2812:                                             ; preds = %2805
  %2813 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2814 = call i32 @fileno(ptr noundef %2813) #11
  %2815 = call i32 @isatty(i32 noundef %2814) #11
  %2816 = icmp ne i32 %2815, 0
  br i1 %2816, label %2817, label %2834

2817:                                             ; preds = %2812
  %2818 = load i32, ptr %71, align 4, !tbaa !5
  %2819 = call ptr @__errno_location() #12
  store i32 %2818, ptr %2819, align 4, !tbaa !5
  %2820 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2821 = load i32, ptr @test_count, align 4, !tbaa !5
  %2822 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2823 = load i32, ptr %2822, align 4, !tbaa !5
  %2824 = call ptr @s2n_strerror(i32 noundef %2823, ptr noundef @.str.3)
  %2825 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2826 = load i32, ptr %2825, align 4, !tbaa !5
  %2827 = call ptr @s2n_strerror_debug(i32 noundef %2826, ptr noundef @.str.3)
  %2828 = call ptr @__errno_location() #12
  %2829 = load i32, ptr %2828, align 4, !tbaa !5
  %2830 = call ptr @strerror(i32 noundef %2829) #11
  %2831 = call ptr @__errno_location() #12
  %2832 = load i32, ptr %2831, align 4, !tbaa !5
  %2833 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2820, ptr noundef @.str, i32 noundef %2821, ptr noundef @.str.39, ptr noundef @.str.2, i32 noundef 161, ptr noundef %2824, ptr noundef %2827, ptr noundef %2830, i32 noundef %2832) #11
  br label %2851

2834:                                             ; preds = %2812, %2805
  %2835 = load i32, ptr %71, align 4, !tbaa !5
  %2836 = call ptr @__errno_location() #12
  store i32 %2835, ptr %2836, align 4, !tbaa !5
  %2837 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2838 = load i32, ptr @test_count, align 4, !tbaa !5
  %2839 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2840 = load i32, ptr %2839, align 4, !tbaa !5
  %2841 = call ptr @s2n_strerror(i32 noundef %2840, ptr noundef @.str.3)
  %2842 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2843 = load i32, ptr %2842, align 4, !tbaa !5
  %2844 = call ptr @s2n_strerror_debug(i32 noundef %2843, ptr noundef @.str.3)
  %2845 = call ptr @__errno_location() #12
  %2846 = load i32, ptr %2845, align 4, !tbaa !5
  %2847 = call ptr @strerror(i32 noundef %2846) #11
  %2848 = call ptr @__errno_location() #12
  %2849 = load i32, ptr %2848, align 4, !tbaa !5
  %2850 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2837, ptr noundef @.str.4, i32 noundef %2838, ptr noundef @.str.39, ptr noundef @.str.2, i32 noundef 161, ptr noundef %2841, ptr noundef %2844, ptr noundef %2847, i32 noundef %2849) #11
  br label %2851

2851:                                             ; preds = %2834, %2817
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #11
  br label %2852

2852:                                             ; preds = %2851
  br label %2853

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

2854:                                             ; No predecessors!
  br label %2855

2855:                                             ; preds = %2854
  br label %2856

2856:                                             ; preds = %2855, %2796
  br label %2857

2857:                                             ; preds = %2856
  br label %2858

2858:                                             ; preds = %2857
  br label %2859

2859:                                             ; preds = %2858
  %2860 = load i32, ptr @test_count, align 4, !tbaa !5
  %2861 = add nsw i32 %2860, 1
  store i32 %2861, ptr @test_count, align 4, !tbaa !5
  %2862 = load ptr, ptr %6, align 8, !tbaa !9
  %2863 = getelementptr inbounds %struct.s2n_connection, ptr %2862, i32 0, i32 40
  %2864 = call i32 @s2n_stuffer_wipe(ptr noundef %2863)
  %2865 = icmp eq i32 %2864, -1
  br i1 %2865, label %2866, label %2919

2866:                                             ; preds = %2859
  br label %2867

2867:                                             ; preds = %2866
  br label %2868

2868:                                             ; preds = %2867
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #11
  %2869 = call ptr @__errno_location() #12
  %2870 = load i32, ptr %2869, align 4, !tbaa !5
  store i32 %2870, ptr %72, align 4, !tbaa !5
  %2871 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2872 = call i32 @s2n_print_stacktrace(ptr noundef %2871)
  %2873 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2874 = trunc i8 %2873 to i1
  br i1 %2874, label %2875, label %2897

2875:                                             ; preds = %2868
  %2876 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2877 = call i32 @fileno(ptr noundef %2876) #11
  %2878 = call i32 @isatty(i32 noundef %2877) #11
  %2879 = icmp ne i32 %2878, 0
  br i1 %2879, label %2880, label %2897

2880:                                             ; preds = %2875
  %2881 = load i32, ptr %72, align 4, !tbaa !5
  %2882 = call ptr @__errno_location() #12
  store i32 %2881, ptr %2882, align 4, !tbaa !5
  %2883 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2884 = load i32, ptr @test_count, align 4, !tbaa !5
  %2885 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2886 = load i32, ptr %2885, align 4, !tbaa !5
  %2887 = call ptr @s2n_strerror(i32 noundef %2886, ptr noundef @.str.3)
  %2888 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2889 = load i32, ptr %2888, align 4, !tbaa !5
  %2890 = call ptr @s2n_strerror_debug(i32 noundef %2889, ptr noundef @.str.3)
  %2891 = call ptr @__errno_location() #12
  %2892 = load i32, ptr %2891, align 4, !tbaa !5
  %2893 = call ptr @strerror(i32 noundef %2892) #11
  %2894 = call ptr @__errno_location() #12
  %2895 = load i32, ptr %2894, align 4, !tbaa !5
  %2896 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2883, ptr noundef @.str, i32 noundef %2884, ptr noundef @.str.38, ptr noundef @.str.2, i32 noundef 162, ptr noundef %2887, ptr noundef %2890, ptr noundef %2893, i32 noundef %2895) #11
  br label %2914

2897:                                             ; preds = %2875, %2868
  %2898 = load i32, ptr %72, align 4, !tbaa !5
  %2899 = call ptr @__errno_location() #12
  store i32 %2898, ptr %2899, align 4, !tbaa !5
  %2900 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2901 = load i32, ptr @test_count, align 4, !tbaa !5
  %2902 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2903 = load i32, ptr %2902, align 4, !tbaa !5
  %2904 = call ptr @s2n_strerror(i32 noundef %2903, ptr noundef @.str.3)
  %2905 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2906 = load i32, ptr %2905, align 4, !tbaa !5
  %2907 = call ptr @s2n_strerror_debug(i32 noundef %2906, ptr noundef @.str.3)
  %2908 = call ptr @__errno_location() #12
  %2909 = load i32, ptr %2908, align 4, !tbaa !5
  %2910 = call ptr @strerror(i32 noundef %2909) #11
  %2911 = call ptr @__errno_location() #12
  %2912 = load i32, ptr %2911, align 4, !tbaa !5
  %2913 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2900, ptr noundef @.str.4, i32 noundef %2901, ptr noundef @.str.38, ptr noundef @.str.2, i32 noundef 162, ptr noundef %2904, ptr noundef %2907, ptr noundef %2910, i32 noundef %2912) #11
  br label %2914

2914:                                             ; preds = %2897, %2880
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #11
  br label %2915

2915:                                             ; preds = %2914
  br label %2916

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

2917:                                             ; No predecessors!
  br label %2918

2918:                                             ; preds = %2917
  br label %2919

2919:                                             ; preds = %2918, %2859
  br label %2920

2920:                                             ; preds = %2919
  br label %2921

2921:                                             ; preds = %2920
  call void @llvm.lifetime.end.p0(i64 2, ptr %66) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %65) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %52) #11
  call void @llvm.lifetime.end.p0(i64 2, ptr %50) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %33) #11
  br label %2922

2922:                                             ; preds = %2921
  %2923 = load i64, ptr %32, align 8, !tbaa !53
  %2924 = add i64 %2923, 1
  store i64 %2924, ptr %32, align 8, !tbaa !53
  br label %951, !llvm.loop !64

2925:                                             ; preds = %954
  br label %2926

2926:                                             ; preds = %2925
  %2927 = load i32, ptr %31, align 4, !tbaa !5
  %2928 = add nsw i32 %2927, 1
  store i32 %2928, ptr %31, align 4, !tbaa !5
  br label %946, !llvm.loop !66

2929:                                             ; preds = %949
  %2930 = load ptr, ptr %6, align 8, !tbaa !9
  %2931 = getelementptr inbounds %struct.s2n_connection, ptr %2930, i32 0, i32 26
  %2932 = load ptr, ptr %2931, align 8, !tbaa !17
  %2933 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %2932, i32 0, i32 0
  %2934 = load ptr, ptr %2933, align 8, !tbaa !46
  %2935 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %2934, i32 0, i32 6
  store ptr @s2n_record_alg_aes256_sha_composite, ptr %2935, align 8, !tbaa !51
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #11
  store i32 0, ptr %73, align 4, !tbaa !5
  br label %2936

2936:                                             ; preds = %4916, %2929
  %2937 = load i32, ptr %73, align 4, !tbaa !5
  %2938 = icmp slt i32 %2937, 3
  br i1 %2938, label %2940, label %2939

2939:                                             ; preds = %2936
  store i32 256, ptr %25, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #11
  br label %4919

2940:                                             ; preds = %2936
  call void @llvm.lifetime.start.p0(i64 4, ptr %74) #11
  store i32 0, ptr %74, align 4, !tbaa !5
  br label %2941

2941:                                             ; preds = %4912, %2940
  %2942 = load i32, ptr %74, align 4, !tbaa !5
  %2943 = icmp sle i32 %2942, 8088
  br i1 %2943, label %2945, label %2944

2944:                                             ; preds = %2941
  store i32 259, ptr %25, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #11
  br label %4915

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

2946:                                             ; preds = %2945
  %2947 = load i32, ptr @test_count, align 4, !tbaa !5
  %2948 = add nsw i32 %2947, 1
  store i32 %2948, ptr @test_count, align 4, !tbaa !5
  %2949 = getelementptr inbounds [8088 x i8], ptr %7, i64 0, i64 0
  %2950 = load i32, ptr %74, align 4, !tbaa !5
  %2951 = call i32 @s2n_blob_init(ptr noundef %75, ptr noundef %2949, i32 noundef %2950)
  %2952 = icmp eq i32 %2951, -1
  br i1 %2952, label %2953, label %3006

2953:                                             ; preds = %2946
  br label %2954

2954:                                             ; preds = %2953
  br label %2955

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

2962:                                             ; preds = %2955
  %2963 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2964 = call i32 @fileno(ptr noundef %2963) #11
  %2965 = call i32 @isatty(i32 noundef %2964) #11
  %2966 = icmp ne i32 %2965, 0
  br i1 %2966, label %2967, label %2984

2967:                                             ; preds = %2962
  %2968 = load i32, ptr %76, align 4, !tbaa !5
  %2969 = call ptr @__errno_location() #12
  store i32 %2968, ptr %2969, align 4, !tbaa !5
  %2970 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2971 = load i32, ptr @test_count, align 4, !tbaa !5
  %2972 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2973 = load i32, ptr %2972, align 4, !tbaa !5
  %2974 = call ptr @s2n_strerror(i32 noundef %2973, ptr noundef @.str.3)
  %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_debug(i32 noundef %2976, ptr noundef @.str.3)
  %2978 = call ptr @__errno_location() #12
  %2979 = load i32, ptr %2978, align 4, !tbaa !5
  %2980 = call ptr @strerror(i32 noundef %2979) #11
  %2981 = call ptr @__errno_location() #12
  %2982 = load i32, ptr %2981, align 4, !tbaa !5
  %2983 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2970, ptr noundef @.str, i32 noundef %2971, ptr noundef @.str.20, ptr noundef @.str.2, i32 noundef 171, ptr noundef %2974, ptr noundef %2977, ptr noundef %2980, i32 noundef %2982) #11
  br label %3001

2984:                                             ; preds = %2962, %2955
  %2985 = load i32, ptr %76, align 4, !tbaa !5
  %2986 = call ptr @__errno_location() #12
  store i32 %2985, ptr %2986, align 4, !tbaa !5
  %2987 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2988 = load i32, ptr @test_count, align 4, !tbaa !5
  %2989 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2990 = load i32, ptr %2989, align 4, !tbaa !5
  %2991 = call ptr @s2n_strerror(i32 noundef %2990, ptr noundef @.str.3)
  %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_debug(i32 noundef %2993, ptr noundef @.str.3)
  %2995 = call ptr @__errno_location() #12
  %2996 = load i32, ptr %2995, align 4, !tbaa !5
  %2997 = call ptr @strerror(i32 noundef %2996) #11
  %2998 = call ptr @__errno_location() #12
  %2999 = load i32, ptr %2998, align 4, !tbaa !5
  %3000 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2987, ptr noundef @.str.4, i32 noundef %2988, ptr noundef @.str.20, ptr noundef @.str.2, i32 noundef 171, ptr noundef %2991, ptr noundef %2994, ptr noundef %2997, i32 noundef %2999) #11
  br label %3001

3001:                                             ; preds = %2984, %2967
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #11
  br label %3002

3002:                                             ; preds = %3001
  br label %3003

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

3004:                                             ; No predecessors!
  br label %3005

3005:                                             ; preds = %3004
  br label %3006

3006:                                             ; preds = %3005, %2946
  br label %3007

3007:                                             ; preds = %3006
  br label %3008

3008:                                             ; preds = %3007
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #11
  store i32 0, ptr %77, align 4, !tbaa !5
  br label %3009

3009:                                             ; preds = %3008
  %3010 = load i32, ptr @test_count, align 4, !tbaa !5
  %3011 = add nsw i32 %3010, 1
  store i32 %3011, ptr @test_count, align 4, !tbaa !5
  %3012 = load ptr, ptr %6, align 8, !tbaa !9
  %3013 = call i32 @s2n_connection_wipe(ptr noundef %3012)
  %3014 = icmp eq i32 %3013, -1
  br i1 %3014, label %3015, label %3068

3015:                                             ; preds = %3009
  br label %3016

3016:                                             ; preds = %3015
  br label %3017

3017:                                             ; preds = %3016
  call void @llvm.lifetime.start.p0(i64 4, ptr %78) #11
  %3018 = call ptr @__errno_location() #12
  %3019 = load i32, ptr %3018, align 4, !tbaa !5
  store i32 %3019, ptr %78, align 4, !tbaa !5
  %3020 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3021 = call i32 @s2n_print_stacktrace(ptr noundef %3020)
  %3022 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3023 = trunc i8 %3022 to i1
  br i1 %3023, label %3024, label %3046

3024:                                             ; preds = %3017
  %3025 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3026 = call i32 @fileno(ptr noundef %3025) #11
  %3027 = call i32 @isatty(i32 noundef %3026) #11
  %3028 = icmp ne i32 %3027, 0
  br i1 %3028, label %3029, label %3046

3029:                                             ; preds = %3024
  %3030 = load i32, ptr %78, align 4, !tbaa !5
  %3031 = call ptr @__errno_location() #12
  store i32 %3030, ptr %3031, align 4, !tbaa !5
  %3032 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3033 = load i32, ptr @test_count, align 4, !tbaa !5
  %3034 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3035 = load i32, ptr %3034, align 4, !tbaa !5
  %3036 = call ptr @s2n_strerror(i32 noundef %3035, ptr noundef @.str.3)
  %3037 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3038 = load i32, ptr %3037, align 4, !tbaa !5
  %3039 = call ptr @s2n_strerror_debug(i32 noundef %3038, ptr noundef @.str.3)
  %3040 = call ptr @__errno_location() #12
  %3041 = load i32, ptr %3040, align 4, !tbaa !5
  %3042 = call ptr @strerror(i32 noundef %3041) #11
  %3043 = call ptr @__errno_location() #12
  %3044 = load i32, ptr %3043, align 4, !tbaa !5
  %3045 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3032, ptr noundef @.str, i32 noundef %3033, ptr noundef @.str.21, ptr noundef @.str.2, i32 noundef 174, ptr noundef %3036, ptr noundef %3039, ptr noundef %3042, i32 noundef %3044) #11
  br label %3063

3046:                                             ; preds = %3024, %3017
  %3047 = load i32, ptr %78, align 4, !tbaa !5
  %3048 = call ptr @__errno_location() #12
  store i32 %3047, ptr %3048, align 4, !tbaa !5
  %3049 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3050 = load i32, ptr @test_count, align 4, !tbaa !5
  %3051 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3052 = load i32, ptr %3051, align 4, !tbaa !5
  %3053 = call ptr @s2n_strerror(i32 noundef %3052, ptr noundef @.str.3)
  %3054 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3055 = load i32, ptr %3054, align 4, !tbaa !5
  %3056 = call ptr @s2n_strerror_debug(i32 noundef %3055, ptr noundef @.str.3)
  %3057 = call ptr @__errno_location() #12
  %3058 = load i32, ptr %3057, align 4, !tbaa !5
  %3059 = call ptr @strerror(i32 noundef %3058) #11
  %3060 = call ptr @__errno_location() #12
  %3061 = load i32, ptr %3060, align 4, !tbaa !5
  %3062 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3049, ptr noundef @.str.4, i32 noundef %3050, ptr noundef @.str.21, ptr noundef @.str.2, i32 noundef 174, ptr noundef %3053, ptr noundef %3056, ptr noundef %3059, i32 noundef %3061) #11
  br label %3063

3063:                                             ; preds = %3046, %3029
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #11
  br label %3064

3064:                                             ; preds = %3063
  br label %3065

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

3066:                                             ; No predecessors!
  br label %3067

3067:                                             ; preds = %3066
  br label %3068

3068:                                             ; preds = %3067, %3009
  br label %3069

3069:                                             ; preds = %3068
  br label %3070

3070:                                             ; preds = %3069
  br label %3071

3071:                                             ; preds = %3070
  %3072 = load i32, ptr @test_count, align 4, !tbaa !5
  %3073 = add nsw i32 %3072, 1
  store i32 %3073, ptr @test_count, align 4, !tbaa !5
  %3074 = load ptr, ptr %6, align 8, !tbaa !9
  %3075 = getelementptr inbounds %struct.s2n_connection, ptr %3074, i32 0, i32 26
  %3076 = load ptr, ptr %3075, align 8, !tbaa !17
  %3077 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %3076, i32 0, i32 0
  %3078 = load ptr, ptr %3077, align 8, !tbaa !46
  %3079 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %3078, i32 0, i32 6
  %3080 = load ptr, ptr %3079, align 8, !tbaa !51
  %3081 = getelementptr inbounds %struct.s2n_record_algorithm, ptr %3080, i32 0, i32 0
  %3082 = load ptr, ptr %3081, align 8, !tbaa !54
  %3083 = getelementptr inbounds %struct.s2n_cipher, ptr %3082, i32 0, i32 6
  %3084 = load ptr, ptr %3083, align 8, !tbaa !56
  %3085 = load ptr, ptr %6, align 8, !tbaa !9
  %3086 = getelementptr inbounds %struct.s2n_connection, ptr %3085, i32 0, i32 26
  %3087 = load ptr, ptr %3086, align 8, !tbaa !17
  %3088 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %3087, i32 0, i32 2
  %3089 = call i32 %3084(ptr noundef %3088, ptr noundef %14)
  %3090 = getelementptr inbounds %struct.s2n_result, ptr %79, i32 0, i32 0
  store i32 %3089, ptr %3090, align 4
  %3091 = getelementptr inbounds %struct.s2n_result, ptr %79, i32 0, i32 0
  %3092 = load i32, ptr %3091, align 4
  %3093 = call zeroext i1 @s2n_result_is_ok(i32 %3092)
  br i1 %3093, label %3147, label %3094

3094:                                             ; preds = %3071
  br label %3095

3095:                                             ; preds = %3094
  br label %3096

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

3103:                                             ; preds = %3096
  %3104 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3105 = call i32 @fileno(ptr noundef %3104) #11
  %3106 = call i32 @isatty(i32 noundef %3105) #11
  %3107 = icmp ne i32 %3106, 0
  br i1 %3107, label %3108, label %3125

3108:                                             ; preds = %3103
  %3109 = load i32, ptr %80, align 4, !tbaa !5
  %3110 = call ptr @__errno_location() #12
  store i32 %3109, ptr %3110, align 4, !tbaa !5
  %3111 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3112 = load i32, ptr @test_count, align 4, !tbaa !5
  %3113 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3114 = load i32, ptr %3113, align 4, !tbaa !5
  %3115 = call ptr @s2n_strerror(i32 noundef %3114, ptr noundef @.str.3)
  %3116 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3117 = load i32, ptr %3116, align 4, !tbaa !5
  %3118 = call ptr @s2n_strerror_debug(i32 noundef %3117, ptr noundef @.str.3)
  %3119 = call ptr @__errno_location() #12
  %3120 = load i32, ptr %3119, align 4, !tbaa !5
  %3121 = call ptr @strerror(i32 noundef %3120) #11
  %3122 = call ptr @__errno_location() #12
  %3123 = load i32, ptr %3122, align 4, !tbaa !5
  %3124 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3111, ptr noundef @.str, i32 noundef %3112, ptr noundef @.str.46, ptr noundef @.str.2, i32 noundef 176, ptr noundef %3115, ptr noundef %3118, ptr noundef %3121, i32 noundef %3123) #11
  br label %3142

3125:                                             ; preds = %3103, %3096
  %3126 = load i32, ptr %80, align 4, !tbaa !5
  %3127 = call ptr @__errno_location() #12
  store i32 %3126, ptr %3127, align 4, !tbaa !5
  %3128 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3129 = load i32, ptr @test_count, align 4, !tbaa !5
  %3130 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3131 = load i32, ptr %3130, align 4, !tbaa !5
  %3132 = call ptr @s2n_strerror(i32 noundef %3131, ptr noundef @.str.3)
  %3133 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3134 = load i32, ptr %3133, align 4, !tbaa !5
  %3135 = call ptr @s2n_strerror_debug(i32 noundef %3134, ptr noundef @.str.3)
  %3136 = call ptr @__errno_location() #12
  %3137 = load i32, ptr %3136, align 4, !tbaa !5
  %3138 = call ptr @strerror(i32 noundef %3137) #11
  %3139 = call ptr @__errno_location() #12
  %3140 = load i32, ptr %3139, align 4, !tbaa !5
  %3141 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3128, ptr noundef @.str.4, i32 noundef %3129, ptr noundef @.str.46, ptr noundef @.str.2, i32 noundef 176, ptr noundef %3132, ptr noundef %3135, ptr noundef %3138, i32 noundef %3140) #11
  br label %3142

3142:                                             ; preds = %3125, %3108
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #11
  br label %3143

3143:                                             ; preds = %3142
  br label %3144

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

3145:                                             ; No predecessors!
  br label %3146

3146:                                             ; preds = %3145
  br label %3147

3147:                                             ; preds = %3146, %3071
  br label %3148

3148:                                             ; preds = %3147
  br label %3149

3149:                                             ; preds = %3148
  br label %3150

3150:                                             ; preds = %3149
  %3151 = load i32, ptr @test_count, align 4, !tbaa !5
  %3152 = add nsw i32 %3151, 1
  store i32 %3152, ptr @test_count, align 4, !tbaa !5
  %3153 = load ptr, ptr %6, align 8, !tbaa !9
  %3154 = getelementptr inbounds %struct.s2n_connection, ptr %3153, i32 0, i32 26
  %3155 = load ptr, ptr %3154, align 8, !tbaa !17
  %3156 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %3155, i32 0, i32 0
  %3157 = load ptr, ptr %3156, align 8, !tbaa !46
  %3158 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %3157, i32 0, i32 6
  %3159 = load ptr, ptr %3158, align 8, !tbaa !51
  %3160 = getelementptr inbounds %struct.s2n_record_algorithm, ptr %3159, i32 0, i32 0
  %3161 = load ptr, ptr %3160, align 8, !tbaa !54
  %3162 = getelementptr inbounds %struct.s2n_cipher, ptr %3161, i32 0, i32 5
  %3163 = load ptr, ptr %3162, align 8, !tbaa !57
  %3164 = load ptr, ptr %6, align 8, !tbaa !9
  %3165 = getelementptr inbounds %struct.s2n_connection, ptr %3164, i32 0, i32 26
  %3166 = load ptr, ptr %3165, align 8, !tbaa !17
  %3167 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %3166, i32 0, i32 1
  %3168 = call i32 %3163(ptr noundef %3167, ptr noundef %14)
  %3169 = getelementptr inbounds %struct.s2n_result, ptr %81, i32 0, i32 0
  store i32 %3168, ptr %3169, align 4
  %3170 = getelementptr inbounds %struct.s2n_result, ptr %81, i32 0, i32 0
  %3171 = load i32, ptr %3170, align 4
  %3172 = call zeroext i1 @s2n_result_is_ok(i32 %3171)
  br i1 %3172, label %3226, label %3173

3173:                                             ; preds = %3150
  br label %3174

3174:                                             ; preds = %3173
  br label %3175

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

3182:                                             ; preds = %3175
  %3183 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3184 = call i32 @fileno(ptr noundef %3183) #11
  %3185 = call i32 @isatty(i32 noundef %3184) #11
  %3186 = icmp ne i32 %3185, 0
  br i1 %3186, label %3187, label %3204

3187:                                             ; preds = %3182
  %3188 = load i32, ptr %82, align 4, !tbaa !5
  %3189 = call ptr @__errno_location() #12
  store i32 %3188, ptr %3189, align 4, !tbaa !5
  %3190 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3191 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %3193, ptr noundef @.str.3)
  %3195 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3196 = load i32, ptr %3195, align 4, !tbaa !5
  %3197 = call ptr @s2n_strerror_debug(i32 noundef %3196, ptr noundef @.str.3)
  %3198 = call ptr @__errno_location() #12
  %3199 = load i32, ptr %3198, align 4, !tbaa !5
  %3200 = call ptr @strerror(i32 noundef %3199) #11
  %3201 = call ptr @__errno_location() #12
  %3202 = load i32, ptr %3201, align 4, !tbaa !5
  %3203 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3190, ptr noundef @.str, i32 noundef %3191, ptr noundef @.str.47, ptr noundef @.str.2, i32 noundef 177, ptr noundef %3194, ptr noundef %3197, ptr noundef %3200, i32 noundef %3202) #11
  br label %3221

3204:                                             ; preds = %3182, %3175
  %3205 = load i32, ptr %82, align 4, !tbaa !5
  %3206 = call ptr @__errno_location() #12
  store i32 %3205, ptr %3206, align 4, !tbaa !5
  %3207 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3208 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %3210, ptr noundef @.str.3)
  %3212 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3213 = load i32, ptr %3212, align 4, !tbaa !5
  %3214 = call ptr @s2n_strerror_debug(i32 noundef %3213, ptr noundef @.str.3)
  %3215 = call ptr @__errno_location() #12
  %3216 = load i32, ptr %3215, align 4, !tbaa !5
  %3217 = call ptr @strerror(i32 noundef %3216) #11
  %3218 = call ptr @__errno_location() #12
  %3219 = load i32, ptr %3218, align 4, !tbaa !5
  %3220 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3207, ptr noundef @.str.4, i32 noundef %3208, ptr noundef @.str.47, ptr noundef @.str.2, i32 noundef 177, ptr noundef %3211, ptr noundef %3214, ptr noundef %3217, i32 noundef %3219) #11
  br label %3221

3221:                                             ; preds = %3204, %3187
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #11
  br label %3222

3222:                                             ; preds = %3221
  br label %3223

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

3224:                                             ; No predecessors!
  br label %3225

3225:                                             ; preds = %3224
  br label %3226

3226:                                             ; preds = %3225, %3150
  br label %3227

3227:                                             ; preds = %3226
  br label %3228

3228:                                             ; preds = %3227
  br label %3229

3229:                                             ; preds = %3228
  %3230 = load i32, ptr @test_count, align 4, !tbaa !5
  %3231 = add nsw i32 %3230, 1
  store i32 %3231, ptr @test_count, align 4, !tbaa !5
  %3232 = load ptr, ptr %6, align 8, !tbaa !9
  %3233 = getelementptr inbounds %struct.s2n_connection, ptr %3232, i32 0, i32 26
  %3234 = load ptr, ptr %3233, align 8, !tbaa !17
  %3235 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %3234, i32 0, i32 0
  %3236 = load ptr, ptr %3235, align 8, !tbaa !46
  %3237 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %3236, i32 0, i32 6
  %3238 = load ptr, ptr %3237, align 8, !tbaa !51
  %3239 = getelementptr inbounds %struct.s2n_record_algorithm, ptr %3238, i32 0, i32 0
  %3240 = load ptr, ptr %3239, align 8, !tbaa !54
  %3241 = getelementptr inbounds %struct.s2n_cipher, ptr %3240, i32 0, i32 1
  %3242 = getelementptr inbounds %struct.s2n_composite_cipher, ptr %3241, i32 0, i32 5
  %3243 = load ptr, ptr %3242, align 8, !tbaa !58
  %3244 = load ptr, ptr %6, align 8, !tbaa !9
  %3245 = getelementptr inbounds %struct.s2n_connection, ptr %3244, i32 0, i32 26
  %3246 = load ptr, ptr %3245, align 8, !tbaa !17
  %3247 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %3246, i32 0, i32 2
  %3248 = getelementptr inbounds [20 x i8], ptr %8, i64 0, i64 0
  %3249 = call i32 %3243(ptr noundef %3247, ptr noundef %3248, i32 noundef 20)
  %3250 = icmp eq i32 %3249, -1
  br i1 %3250, label %3251, label %3304

3251:                                             ; preds = %3229
  br label %3252

3252:                                             ; preds = %3251
  br label %3253

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

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

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

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

3299:                                             ; preds = %3282, %3265
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #11
  br label %3300

3300:                                             ; preds = %3299
  br label %3301

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

3302:                                             ; No predecessors!
  br label %3303

3303:                                             ; preds = %3302
  br label %3304

3304:                                             ; preds = %3303, %3229
  br label %3305

3305:                                             ; preds = %3304
  br label %3306

3306:                                             ; preds = %3305
  br label %3307

3307:                                             ; preds = %3306
  %3308 = load i32, ptr @test_count, align 4, !tbaa !5
  %3309 = add nsw i32 %3308, 1
  store i32 %3309, ptr @test_count, align 4, !tbaa !5
  %3310 = load ptr, ptr %6, align 8, !tbaa !9
  %3311 = getelementptr inbounds %struct.s2n_connection, ptr %3310, i32 0, i32 26
  %3312 = load ptr, ptr %3311, align 8, !tbaa !17
  %3313 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %3312, i32 0, i32 0
  %3314 = load ptr, ptr %3313, align 8, !tbaa !46
  %3315 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %3314, i32 0, i32 6
  %3316 = load ptr, ptr %3315, align 8, !tbaa !51
  %3317 = getelementptr inbounds %struct.s2n_record_algorithm, ptr %3316, i32 0, i32 0
  %3318 = load ptr, ptr %3317, align 8, !tbaa !54
  %3319 = getelementptr inbounds %struct.s2n_cipher, ptr %3318, i32 0, i32 1
  %3320 = getelementptr inbounds %struct.s2n_composite_cipher, ptr %3319, i32 0, i32 5
  %3321 = load ptr, ptr %3320, align 8, !tbaa !58
  %3322 = load ptr, ptr %6, align 8, !tbaa !9
  %3323 = getelementptr inbounds %struct.s2n_connection, ptr %3322, i32 0, i32 26
  %3324 = load ptr, ptr %3323, align 8, !tbaa !17
  %3325 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %3324, i32 0, i32 1
  %3326 = getelementptr inbounds [20 x i8], ptr %8, i64 0, i64 0
  %3327 = call i32 %3321(ptr noundef %3325, ptr noundef %3326, i32 noundef 20)
  %3328 = icmp eq i32 %3327, -1
  br i1 %3328, label %3329, label %3382

3329:                                             ; preds = %3307
  br label %3330

3330:                                             ; preds = %3329
  br label %3331

3331:                                             ; preds = %3330
  call void @llvm.lifetime.start.p0(i64 4, ptr %84) #11
  %3332 = call ptr @__errno_location() #12
  %3333 = load i32, ptr %3332, align 4, !tbaa !5
  store i32 %3333, ptr %84, align 4, !tbaa !5
  %3334 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3335 = call i32 @s2n_print_stacktrace(ptr noundef %3334)
  %3336 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3337 = trunc i8 %3336 to i1
  br i1 %3337, label %3338, label %3360

3338:                                             ; preds = %3331
  %3339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3340 = call i32 @fileno(ptr noundef %3339) #11
  %3341 = call i32 @isatty(i32 noundef %3340) #11
  %3342 = icmp ne i32 %3341, 0
  br i1 %3342, label %3343, label %3360

3343:                                             ; preds = %3338
  %3344 = load i32, ptr %84, align 4, !tbaa !5
  %3345 = call ptr @__errno_location() #12
  store i32 %3344, ptr %3345, align 4, !tbaa !5
  %3346 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3347 = load i32, ptr @test_count, align 4, !tbaa !5
  %3348 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3349 = load i32, ptr %3348, align 4, !tbaa !5
  %3350 = call ptr @s2n_strerror(i32 noundef %3349, ptr noundef @.str.3)
  %3351 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3352 = load i32, ptr %3351, align 4, !tbaa !5
  %3353 = call ptr @s2n_strerror_debug(i32 noundef %3352, ptr noundef @.str.3)
  %3354 = call ptr @__errno_location() #12
  %3355 = load i32, ptr %3354, align 4, !tbaa !5
  %3356 = call ptr @strerror(i32 noundef %3355) #11
  %3357 = call ptr @__errno_location() #12
  %3358 = load i32, ptr %3357, align 4, !tbaa !5
  %3359 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3346, ptr noundef @.str, i32 noundef %3347, ptr noundef @.str.25, ptr noundef @.str.2, i32 noundef 179, ptr noundef %3350, ptr noundef %3353, ptr noundef %3356, i32 noundef %3358) #11
  br label %3377

3360:                                             ; preds = %3338, %3331
  %3361 = load i32, ptr %84, align 4, !tbaa !5
  %3362 = call ptr @__errno_location() #12
  store i32 %3361, ptr %3362, align 4, !tbaa !5
  %3363 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3364 = load i32, ptr @test_count, align 4, !tbaa !5
  %3365 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3366 = load i32, ptr %3365, align 4, !tbaa !5
  %3367 = call ptr @s2n_strerror(i32 noundef %3366, ptr noundef @.str.3)
  %3368 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3369 = load i32, ptr %3368, align 4, !tbaa !5
  %3370 = call ptr @s2n_strerror_debug(i32 noundef %3369, ptr noundef @.str.3)
  %3371 = call ptr @__errno_location() #12
  %3372 = load i32, ptr %3371, align 4, !tbaa !5
  %3373 = call ptr @strerror(i32 noundef %3372) #11
  %3374 = call ptr @__errno_location() #12
  %3375 = load i32, ptr %3374, align 4, !tbaa !5
  %3376 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3363, ptr noundef @.str.4, i32 noundef %3364, ptr noundef @.str.25, ptr noundef @.str.2, i32 noundef 179, ptr noundef %3367, ptr noundef %3370, ptr noundef %3373, i32 noundef %3375) #11
  br label %3377

3377:                                             ; preds = %3360, %3343
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #11
  br label %3378

3378:                                             ; preds = %3377
  br label %3379

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

3380:                                             ; No predecessors!
  br label %3381

3381:                                             ; preds = %3380
  br label %3382

3382:                                             ; preds = %3381, %3307
  br label %3383

3383:                                             ; preds = %3382
  br label %3384

3384:                                             ; preds = %3383
  br label %3385

3385:                                             ; preds = %3384
  %3386 = load i32, ptr @test_count, align 4, !tbaa !5
  %3387 = add nsw i32 %3386, 1
  store i32 %3387, ptr @test_count, align 4, !tbaa !5
  %3388 = load ptr, ptr %6, align 8, !tbaa !9
  %3389 = getelementptr inbounds %struct.s2n_connection, ptr %3388, i32 0, i32 41
  %3390 = call i32 @s2n_stuffer_wipe(ptr noundef %3389)
  %3391 = icmp eq i32 %3390, -1
  br i1 %3391, label %3392, label %3445

3392:                                             ; preds = %3385
  br label %3393

3393:                                             ; preds = %3392
  br label %3394

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

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

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

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

3440:                                             ; preds = %3423, %3406
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #11
  br label %3441

3441:                                             ; preds = %3440
  br label %3442

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

3443:                                             ; No predecessors!
  br label %3444

3444:                                             ; preds = %3443
  br label %3445

3445:                                             ; preds = %3444, %3385
  br label %3446

3446:                                             ; preds = %3445
  br label %3447

3447:                                             ; preds = %3446
  %3448 = load i32, ptr %73, align 4, !tbaa !5
  %3449 = sext i32 %3448 to i64
  %3450 = getelementptr inbounds [3 x i8], ptr %30, i64 0, i64 %3449
  %3451 = load i8, ptr %3450, align 1, !tbaa !58
  %3452 = load ptr, ptr %6, align 8, !tbaa !9
  %3453 = getelementptr inbounds %struct.s2n_connection, ptr %3452, i32 0, i32 23
  store i8 %3451, ptr %3453, align 4, !tbaa !59
  call void @llvm.lifetime.start.p0(i64 4, ptr %86) #11
  store i32 0, ptr %86, align 4, !tbaa !5
  %3454 = load ptr, ptr %6, align 8, !tbaa !9
  %3455 = getelementptr inbounds %struct.s2n_connection, ptr %3454, i32 0, i32 23
  %3456 = load i8, ptr %3455, align 4, !tbaa !59
  %3457 = zext i8 %3456 to i32
  %3458 = icmp sgt i32 %3457, 31
  br i1 %3458, label %3459, label %3460

3459:                                             ; preds = %3447
  store i32 16, ptr %86, align 4, !tbaa !5
  br label %3461

3460:                                             ; preds = %3447
  store i32 0, ptr %86, align 4, !tbaa !5
  br label %3461

3461:                                             ; preds = %3460, %3459
  call void @llvm.lifetime.start.p0(i64 4, ptr %87) #11
  %3462 = load ptr, ptr %6, align 8, !tbaa !9
  %3463 = call i32 @s2n_record_write(ptr noundef %3462, i8 noundef zeroext 23, ptr noundef %75)
  %3464 = getelementptr inbounds %struct.s2n_result, ptr %87, i32 0, i32 0
  store i32 %3463, ptr %3464, align 4
  %3465 = load i32, ptr %74, align 4, !tbaa !5
  %3466 = icmp sle i32 %3465, 8087
  br i1 %3466, label %3467, label %3531

3467:                                             ; preds = %3461
  br label %3468

3468:                                             ; preds = %3467
  %3469 = load i32, ptr @test_count, align 4, !tbaa !5
  %3470 = add nsw i32 %3469, 1
  store i32 %3470, ptr @test_count, align 4, !tbaa !5
  %3471 = getelementptr inbounds %struct.s2n_result, ptr %87, i32 0, i32 0
  %3472 = load i32, ptr %3471, align 4
  %3473 = call zeroext i1 @s2n_result_is_ok(i32 %3472)
  br i1 %3473, label %3527, label %3474

3474:                                             ; preds = %3468
  br label %3475

3475:                                             ; preds = %3474
  br label %3476

3476:                                             ; preds = %3475
  call void @llvm.lifetime.start.p0(i64 4, ptr %88) #11
  %3477 = call ptr @__errno_location() #12
  %3478 = load i32, ptr %3477, align 4, !tbaa !5
  store i32 %3478, ptr %88, align 4, !tbaa !5
  %3479 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3480 = call i32 @s2n_print_stacktrace(ptr noundef %3479)
  %3481 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3482 = trunc i8 %3481 to i1
  br i1 %3482, label %3483, label %3505

3483:                                             ; preds = %3476
  %3484 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3485 = call i32 @fileno(ptr noundef %3484) #11
  %3486 = call i32 @isatty(i32 noundef %3485) #11
  %3487 = icmp ne i32 %3486, 0
  br i1 %3487, label %3488, label %3505

3488:                                             ; preds = %3483
  %3489 = load i32, ptr %88, align 4, !tbaa !5
  %3490 = call ptr @__errno_location() #12
  store i32 %3489, ptr %3490, align 4, !tbaa !5
  %3491 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3492 = load i32, ptr @test_count, align 4, !tbaa !5
  %3493 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3494 = load i32, ptr %3493, align 4, !tbaa !5
  %3495 = call ptr @s2n_strerror(i32 noundef %3494, ptr noundef @.str.3)
  %3496 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3497 = load i32, ptr %3496, align 4, !tbaa !5
  %3498 = call ptr @s2n_strerror_debug(i32 noundef %3497, ptr noundef @.str.3)
  %3499 = call ptr @__errno_location() #12
  %3500 = load i32, ptr %3499, align 4, !tbaa !5
  %3501 = call ptr @strerror(i32 noundef %3500) #11
  %3502 = call ptr @__errno_location() #12
  %3503 = load i32, ptr %3502, align 4, !tbaa !5
  %3504 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3491, ptr noundef @.str, i32 noundef %3492, ptr noundef @.str.27, ptr noundef @.str.2, i32 noundef 193, ptr noundef %3495, ptr noundef %3498, ptr noundef %3501, i32 noundef %3503) #11
  br label %3522

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

3522:                                             ; preds = %3505, %3488
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #11
  br label %3523

3523:                                             ; preds = %3522
  br label %3524

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

3525:                                             ; No predecessors!
  br label %3526

3526:                                             ; preds = %3525
  br label %3527

3527:                                             ; preds = %3526, %3468
  br label %3528

3528:                                             ; preds = %3527
  br label %3529

3529:                                             ; preds = %3528
  %3530 = load i32, ptr %74, align 4, !tbaa !5
  store i32 %3530, ptr %77, align 4, !tbaa !5
  br label %3730

3531:                                             ; preds = %3461
  br label %3532

3532:                                             ; preds = %3531
  br label %3533

3533:                                             ; preds = %3532
  br label %3534

3534:                                             ; preds = %3533
  %3535 = load i32, ptr @test_count, align 4, !tbaa !5
  %3536 = add nsw i32 %3535, 1
  store i32 %3536, ptr @test_count, align 4, !tbaa !5
  %3537 = getelementptr inbounds %struct.s2n_result, ptr %87, i32 0, i32 0
  %3538 = load i32, ptr %3537, align 4
  %3539 = call zeroext i1 @s2n_result_is_error(i32 %3538)
  br i1 %3539, label %3593, label %3540

3540:                                             ; preds = %3534
  br label %3541

3541:                                             ; preds = %3540
  br label %3542

3542:                                             ; preds = %3541
  call void @llvm.lifetime.start.p0(i64 4, ptr %89) #11
  %3543 = call ptr @__errno_location() #12
  %3544 = load i32, ptr %3543, align 4, !tbaa !5
  store i32 %3544, ptr %89, align 4, !tbaa !5
  %3545 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3546 = call i32 @s2n_print_stacktrace(ptr noundef %3545)
  %3547 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3548 = trunc i8 %3547 to i1
  br i1 %3548, label %3549, label %3571

3549:                                             ; preds = %3542
  %3550 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3551 = call i32 @fileno(ptr noundef %3550) #11
  %3552 = call i32 @isatty(i32 noundef %3551) #11
  %3553 = icmp ne i32 %3552, 0
  br i1 %3553, label %3554, label %3571

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

3571:                                             ; preds = %3549, %3542
  %3572 = load i32, ptr %89, align 4, !tbaa !5
  %3573 = call ptr @__errno_location() #12
  store i32 %3572, ptr %3573, align 4, !tbaa !5
  %3574 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3575 = load i32, ptr @test_count, align 4, !tbaa !5
  %3576 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3577 = load i32, ptr %3576, align 4, !tbaa !5
  %3578 = call ptr @s2n_strerror(i32 noundef %3577, ptr noundef @.str.3)
  %3579 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3580 = load i32, ptr %3579, align 4, !tbaa !5
  %3581 = call ptr @s2n_strerror_debug(i32 noundef %3580, ptr noundef @.str.3)
  %3582 = call ptr @__errno_location() #12
  %3583 = load i32, ptr %3582, align 4, !tbaa !5
  %3584 = call ptr @strerror(i32 noundef %3583) #11
  %3585 = call ptr @__errno_location() #12
  %3586 = load i32, ptr %3585, align 4, !tbaa !5
  %3587 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3574, ptr noundef @.str.4, i32 noundef %3575, ptr noundef @.str.28, ptr noundef @.str.2, i32 noundef 196, ptr noundef %3578, ptr noundef %3581, ptr noundef %3584, i32 noundef %3586) #11
  br label %3588

3588:                                             ; preds = %3571, %3554
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #11
  br label %3589

3589:                                             ; preds = %3588
  br label %3590

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

3591:                                             ; No predecessors!
  br label %3592

3592:                                             ; preds = %3591
  br label %3593

3593:                                             ; preds = %3592, %3534
  br label %3594

3594:                                             ; preds = %3593
  br label %3595

3595:                                             ; preds = %3594
  br label %3596

3596:                                             ; preds = %3595
  %3597 = load i32, ptr @test_count, align 4, !tbaa !5
  %3598 = add nsw i32 %3597, 1
  store i32 %3598, ptr @test_count, align 4, !tbaa !5
  %3599 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3600 = load i32, ptr %3599, align 4, !tbaa !5
  %3601 = icmp eq i32 %3600, 335544390
  br i1 %3601, label %3655, label %3602

3602:                                             ; preds = %3596
  br label %3603

3603:                                             ; preds = %3602
  br label %3604

3604:                                             ; preds = %3603
  call void @llvm.lifetime.start.p0(i64 4, ptr %90) #11
  %3605 = call ptr @__errno_location() #12
  %3606 = load i32, ptr %3605, align 4, !tbaa !5
  store i32 %3606, ptr %90, align 4, !tbaa !5
  %3607 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3608 = call i32 @s2n_print_stacktrace(ptr noundef %3607)
  %3609 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3610 = trunc i8 %3609 to i1
  br i1 %3610, label %3611, label %3633

3611:                                             ; preds = %3604
  %3612 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3613 = call i32 @fileno(ptr noundef %3612) #11
  %3614 = call i32 @isatty(i32 noundef %3613) #11
  %3615 = icmp ne i32 %3614, 0
  br i1 %3615, label %3616, label %3633

3616:                                             ; preds = %3611
  %3617 = load i32, ptr %90, align 4, !tbaa !5
  %3618 = call ptr @__errno_location() #12
  store i32 %3617, ptr %3618, align 4, !tbaa !5
  %3619 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3620 = load i32, ptr @test_count, align 4, !tbaa !5
  %3621 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3622 = load i32, ptr %3621, align 4, !tbaa !5
  %3623 = call ptr @s2n_strerror(i32 noundef %3622, ptr noundef @.str.3)
  %3624 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3625 = load i32, ptr %3624, align 4, !tbaa !5
  %3626 = call ptr @s2n_strerror_debug(i32 noundef %3625, ptr noundef @.str.3)
  %3627 = call ptr @__errno_location() #12
  %3628 = load i32, ptr %3627, align 4, !tbaa !5
  %3629 = call ptr @strerror(i32 noundef %3628) #11
  %3630 = call ptr @__errno_location() #12
  %3631 = load i32, ptr %3630, align 4, !tbaa !5
  %3632 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3619, ptr noundef @.str, i32 noundef %3620, ptr noundef @.str.29, ptr noundef @.str.2, i32 noundef 196, ptr noundef %3623, ptr noundef %3626, ptr noundef %3629, i32 noundef %3631) #11
  br label %3650

3633:                                             ; preds = %3611, %3604
  %3634 = load i32, ptr %90, align 4, !tbaa !5
  %3635 = call ptr @__errno_location() #12
  store i32 %3634, ptr %3635, align 4, !tbaa !5
  %3636 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3637 = load i32, ptr @test_count, align 4, !tbaa !5
  %3638 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3639 = load i32, ptr %3638, align 4, !tbaa !5
  %3640 = call ptr @s2n_strerror(i32 noundef %3639, ptr noundef @.str.3)
  %3641 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3642 = load i32, ptr %3641, align 4, !tbaa !5
  %3643 = call ptr @s2n_strerror_debug(i32 noundef %3642, ptr noundef @.str.3)
  %3644 = call ptr @__errno_location() #12
  %3645 = load i32, ptr %3644, align 4, !tbaa !5
  %3646 = call ptr @strerror(i32 noundef %3645) #11
  %3647 = call ptr @__errno_location() #12
  %3648 = load i32, ptr %3647, align 4, !tbaa !5
  %3649 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3636, ptr noundef @.str.4, i32 noundef %3637, ptr noundef @.str.29, ptr noundef @.str.2, i32 noundef 196, ptr noundef %3640, ptr noundef %3643, ptr noundef %3646, i32 noundef %3648) #11
  br label %3650

3650:                                             ; preds = %3633, %3616
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #11
  br label %3651

3651:                                             ; preds = %3650
  br label %3652

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

3653:                                             ; No predecessors!
  br label %3654

3654:                                             ; preds = %3653
  br label %3655

3655:                                             ; preds = %3654, %3596
  br label %3656

3656:                                             ; preds = %3655
  br label %3657

3657:                                             ; preds = %3656
  br label %3658

3658:                                             ; preds = %3657
  %3659 = load i32, ptr @test_count, align 4, !tbaa !5
  %3660 = add nsw i32 %3659, 1
  store i32 %3660, ptr @test_count, align 4, !tbaa !5
  %3661 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3662 = load i32, ptr %3661, align 4, !tbaa !5
  %3663 = call ptr @s2n_strerror_debug(i32 noundef %3662, ptr noundef @.str.3)
  %3664 = icmp eq ptr %3663, null
  br i1 %3664, label %3665, label %3718

3665:                                             ; preds = %3658
  br label %3666

3666:                                             ; preds = %3665
  br label %3667

3667:                                             ; preds = %3666
  call void @llvm.lifetime.start.p0(i64 4, ptr %91) #11
  %3668 = call ptr @__errno_location() #12
  %3669 = load i32, ptr %3668, align 4, !tbaa !5
  store i32 %3669, ptr %91, align 4, !tbaa !5
  %3670 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3671 = call i32 @s2n_print_stacktrace(ptr noundef %3670)
  %3672 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3673 = trunc i8 %3672 to i1
  br i1 %3673, label %3674, label %3696

3674:                                             ; preds = %3667
  %3675 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3676 = call i32 @fileno(ptr noundef %3675) #11
  %3677 = call i32 @isatty(i32 noundef %3676) #11
  %3678 = icmp ne i32 %3677, 0
  br i1 %3678, label %3679, label %3696

3679:                                             ; preds = %3674
  %3680 = load i32, ptr %91, align 4, !tbaa !5
  %3681 = call ptr @__errno_location() #12
  store i32 %3680, ptr %3681, align 4, !tbaa !5
  %3682 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3683 = load i32, ptr @test_count, align 4, !tbaa !5
  %3684 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3685 = load i32, ptr %3684, align 4, !tbaa !5
  %3686 = call ptr @s2n_strerror(i32 noundef %3685, ptr noundef @.str.3)
  %3687 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3688 = load i32, ptr %3687, align 4, !tbaa !5
  %3689 = call ptr @s2n_strerror_debug(i32 noundef %3688, ptr noundef @.str.3)
  %3690 = call ptr @__errno_location() #12
  %3691 = load i32, ptr %3690, align 4, !tbaa !5
  %3692 = call ptr @strerror(i32 noundef %3691) #11
  %3693 = call ptr @__errno_location() #12
  %3694 = load i32, ptr %3693, align 4, !tbaa !5
  %3695 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3682, ptr noundef @.str, i32 noundef %3683, ptr noundef @.str.30, ptr noundef @.str.2, i32 noundef 196, ptr noundef %3686, ptr noundef %3689, ptr noundef %3692, i32 noundef %3694) #11
  br label %3713

3696:                                             ; preds = %3674, %3667
  %3697 = load i32, ptr %91, align 4, !tbaa !5
  %3698 = call ptr @__errno_location() #12
  store i32 %3697, ptr %3698, align 4, !tbaa !5
  %3699 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3700 = load i32, ptr @test_count, align 4, !tbaa !5
  %3701 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3702 = load i32, ptr %3701, align 4, !tbaa !5
  %3703 = call ptr @s2n_strerror(i32 noundef %3702, ptr noundef @.str.3)
  %3704 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3705 = load i32, ptr %3704, align 4, !tbaa !5
  %3706 = call ptr @s2n_strerror_debug(i32 noundef %3705, ptr noundef @.str.3)
  %3707 = call ptr @__errno_location() #12
  %3708 = load i32, ptr %3707, align 4, !tbaa !5
  %3709 = call ptr @strerror(i32 noundef %3708) #11
  %3710 = call ptr @__errno_location() #12
  %3711 = load i32, ptr %3710, align 4, !tbaa !5
  %3712 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3699, ptr noundef @.str.4, i32 noundef %3700, ptr noundef @.str.30, ptr noundef @.str.2, i32 noundef 196, ptr noundef %3703, ptr noundef %3706, ptr noundef %3709, i32 noundef %3711) #11
  br label %3713

3713:                                             ; preds = %3696, %3679
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #11
  br label %3714

3714:                                             ; preds = %3713
  br label %3715

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

3716:                                             ; No predecessors!
  br label %3717

3717:                                             ; preds = %3716
  br label %3718

3718:                                             ; preds = %3717, %3658
  br label %3719

3719:                                             ; preds = %3718
  br label %3720

3720:                                             ; preds = %3719
  br label %3721

3721:                                             ; preds = %3720
  br label %3722

3722:                                             ; preds = %3721
  br label %3723

3723:                                             ; preds = %3722
  %3724 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %3724, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %3725 = call ptr @__errno_location() #12
  store i32 0, ptr %3725, align 4, !tbaa !5
  br label %3726

3726:                                             ; preds = %3723
  br label %3727

3727:                                             ; preds = %3726
  br label %3728

3728:                                             ; preds = %3727
  br label %3729

3729:                                             ; preds = %3728
  store i32 8087, ptr %77, align 4, !tbaa !5
  br label %3730

3730:                                             ; preds = %3729, %3529
  call void @llvm.lifetime.start.p0(i64 2, ptr %92) #11
  %3731 = load i32, ptr %77, align 4, !tbaa !5
  %3732 = add nsw i32 %3731, 1
  %3733 = add nsw i32 %3732, 20
  %3734 = load i32, ptr %86, align 4, !tbaa !5
  %3735 = add nsw i32 %3733, %3734
  %3736 = trunc i32 %3735 to i16
  store i16 %3736, ptr %92, align 2, !tbaa !60
  %3737 = load i16, ptr %92, align 2, !tbaa !60
  %3738 = zext i16 %3737 to i32
  %3739 = srem i32 %3738, 16
  %3740 = icmp ne i32 %3739, 0
  br i1 %3740, label %3741, label %3750

3741:                                             ; preds = %3730
  %3742 = load i16, ptr %92, align 2, !tbaa !60
  %3743 = zext i16 %3742 to i32
  %3744 = srem i32 %3743, 16
  %3745 = sub nsw i32 16, %3744
  %3746 = load i16, ptr %92, align 2, !tbaa !60
  %3747 = zext i16 %3746 to i32
  %3748 = add nsw i32 %3747, %3745
  %3749 = trunc i32 %3748 to i16
  store i16 %3749, ptr %92, align 2, !tbaa !60
  br label %3750

3750:                                             ; preds = %3741, %3730
  br label %3751

3751:                                             ; preds = %3750
  %3752 = load i32, ptr @test_count, align 4, !tbaa !5
  %3753 = add nsw i32 %3752, 1
  store i32 %3753, ptr @test_count, align 4, !tbaa !5
  %3754 = load ptr, ptr %6, align 8, !tbaa !9
  %3755 = getelementptr inbounds %struct.s2n_connection, ptr %3754, i32 0, i32 41
  %3756 = getelementptr inbounds %struct.s2n_stuffer, ptr %3755, i32 0, i32 0
  %3757 = getelementptr inbounds %struct.s2n_blob, ptr %3756, i32 0, i32 0
  %3758 = load ptr, ptr %3757, align 8, !tbaa !61
  %3759 = getelementptr inbounds i8, ptr %3758, i64 0
  %3760 = load i8, ptr %3759, align 1, !tbaa !58
  %3761 = zext i8 %3760 to i32
  %3762 = icmp eq i32 %3761, 23
  br i1 %3762, label %3816, label %3763

3763:                                             ; preds = %3751
  br label %3764

3764:                                             ; preds = %3763
  br label %3765

3765:                                             ; preds = %3764
  call void @llvm.lifetime.start.p0(i64 4, ptr %93) #11
  %3766 = call ptr @__errno_location() #12
  %3767 = load i32, ptr %3766, align 4, !tbaa !5
  store i32 %3767, ptr %93, align 4, !tbaa !5
  %3768 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3769 = call i32 @s2n_print_stacktrace(ptr noundef %3768)
  %3770 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3771 = trunc i8 %3770 to i1
  br i1 %3771, label %3772, label %3794

3772:                                             ; preds = %3765
  %3773 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3774 = call i32 @fileno(ptr noundef %3773) #11
  %3775 = call i32 @isatty(i32 noundef %3774) #11
  %3776 = icmp ne i32 %3775, 0
  br i1 %3776, label %3777, label %3794

3777:                                             ; preds = %3772
  %3778 = load i32, ptr %93, align 4, !tbaa !5
  %3779 = call ptr @__errno_location() #12
  store i32 %3778, ptr %3779, align 4, !tbaa !5
  %3780 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3781 = load i32, ptr @test_count, align 4, !tbaa !5
  %3782 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3783 = load i32, ptr %3782, align 4, !tbaa !5
  %3784 = call ptr @s2n_strerror(i32 noundef %3783, ptr noundef @.str.3)
  %3785 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3786 = load i32, ptr %3785, align 4, !tbaa !5
  %3787 = call ptr @s2n_strerror_debug(i32 noundef %3786, ptr noundef @.str.3)
  %3788 = call ptr @__errno_location() #12
  %3789 = load i32, ptr %3788, align 4, !tbaa !5
  %3790 = call ptr @strerror(i32 noundef %3789) #11
  %3791 = call ptr @__errno_location() #12
  %3792 = load i32, ptr %3791, align 4, !tbaa !5
  %3793 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3780, ptr noundef @.str, i32 noundef %3781, ptr noundef @.str.31, ptr noundef @.str.2, i32 noundef 204, ptr noundef %3784, ptr noundef %3787, ptr noundef %3790, i32 noundef %3792) #11
  br label %3811

3794:                                             ; preds = %3772, %3765
  %3795 = load i32, ptr %93, align 4, !tbaa !5
  %3796 = call ptr @__errno_location() #12
  store i32 %3795, ptr %3796, align 4, !tbaa !5
  %3797 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3798 = load i32, ptr @test_count, align 4, !tbaa !5
  %3799 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3800 = load i32, ptr %3799, align 4, !tbaa !5
  %3801 = call ptr @s2n_strerror(i32 noundef %3800, ptr noundef @.str.3)
  %3802 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3803 = load i32, ptr %3802, align 4, !tbaa !5
  %3804 = call ptr @s2n_strerror_debug(i32 noundef %3803, ptr noundef @.str.3)
  %3805 = call ptr @__errno_location() #12
  %3806 = load i32, ptr %3805, align 4, !tbaa !5
  %3807 = call ptr @strerror(i32 noundef %3806) #11
  %3808 = call ptr @__errno_location() #12
  %3809 = load i32, ptr %3808, align 4, !tbaa !5
  %3810 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3797, ptr noundef @.str.4, i32 noundef %3798, ptr noundef @.str.31, ptr noundef @.str.2, i32 noundef 204, ptr noundef %3801, ptr noundef %3804, ptr noundef %3807, i32 noundef %3809) #11
  br label %3811

3811:                                             ; preds = %3794, %3777
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #11
  br label %3812

3812:                                             ; preds = %3811
  br label %3813

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

3814:                                             ; No predecessors!
  br label %3815

3815:                                             ; preds = %3814
  br label %3816

3816:                                             ; preds = %3815, %3751
  br label %3817

3817:                                             ; preds = %3816
  br label %3818

3818:                                             ; preds = %3817
  call void @llvm.lifetime.start.p0(i64 1, ptr %94) #11
  %3819 = load ptr, ptr %6, align 8, !tbaa !9
  %3820 = getelementptr inbounds %struct.s2n_connection, ptr %3819, i32 0, i32 41
  %3821 = getelementptr inbounds %struct.s2n_stuffer, ptr %3820, i32 0, i32 0
  %3822 = getelementptr inbounds %struct.s2n_blob, ptr %3821, i32 0, i32 0
  %3823 = load ptr, ptr %3822, align 8, !tbaa !61
  %3824 = getelementptr inbounds i8, ptr %3823, i64 1
  %3825 = load i8, ptr %3824, align 1, !tbaa !58
  %3826 = zext i8 %3825 to i32
  %3827 = mul nsw i32 %3826, 10
  %3828 = load ptr, ptr %6, align 8, !tbaa !9
  %3829 = getelementptr inbounds %struct.s2n_connection, ptr %3828, i32 0, i32 41
  %3830 = getelementptr inbounds %struct.s2n_stuffer, ptr %3829, i32 0, i32 0
  %3831 = getelementptr inbounds %struct.s2n_blob, ptr %3830, i32 0, i32 0
  %3832 = load ptr, ptr %3831, align 8, !tbaa !61
  %3833 = getelementptr inbounds i8, ptr %3832, i64 2
  %3834 = load i8, ptr %3833, align 1, !tbaa !58
  %3835 = zext i8 %3834 to i32
  %3836 = add nsw i32 %3827, %3835
  %3837 = trunc i32 %3836 to i8
  store i8 %3837, ptr %94, align 1, !tbaa !58
  br label %3838

3838:                                             ; preds = %3818
  %3839 = load i32, ptr @test_count, align 4, !tbaa !5
  %3840 = add nsw i32 %3839, 1
  store i32 %3840, ptr @test_count, align 4, !tbaa !5
  %3841 = load i8, ptr %94, align 1, !tbaa !58
  %3842 = zext i8 %3841 to i32
  %3843 = load ptr, ptr %6, align 8, !tbaa !9
  %3844 = getelementptr inbounds %struct.s2n_connection, ptr %3843, i32 0, i32 23
  %3845 = load i8, ptr %3844, align 4, !tbaa !59
  %3846 = zext i8 %3845 to i32
  %3847 = icmp eq i32 %3842, %3846
  br i1 %3847, label %3901, label %3848

3848:                                             ; preds = %3838
  br label %3849

3849:                                             ; preds = %3848
  br label %3850

3850:                                             ; preds = %3849
  call void @llvm.lifetime.start.p0(i64 4, ptr %95) #11
  %3851 = call ptr @__errno_location() #12
  %3852 = load i32, ptr %3851, align 4, !tbaa !5
  store i32 %3852, ptr %95, align 4, !tbaa !5
  %3853 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3854 = call i32 @s2n_print_stacktrace(ptr noundef %3853)
  %3855 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3856 = trunc i8 %3855 to i1
  br i1 %3856, label %3857, label %3879

3857:                                             ; preds = %3850
  %3858 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3859 = call i32 @fileno(ptr noundef %3858) #11
  %3860 = call i32 @isatty(i32 noundef %3859) #11
  %3861 = icmp ne i32 %3860, 0
  br i1 %3861, label %3862, label %3879

3862:                                             ; preds = %3857
  %3863 = load i32, ptr %95, align 4, !tbaa !5
  %3864 = call ptr @__errno_location() #12
  store i32 %3863, ptr %3864, align 4, !tbaa !5
  %3865 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3866 = load i32, ptr @test_count, align 4, !tbaa !5
  %3867 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3868 = load i32, ptr %3867, align 4, !tbaa !5
  %3869 = call ptr @s2n_strerror(i32 noundef %3868, ptr noundef @.str.3)
  %3870 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3871 = load i32, ptr %3870, align 4, !tbaa !5
  %3872 = call ptr @s2n_strerror_debug(i32 noundef %3871, ptr noundef @.str.3)
  %3873 = call ptr @__errno_location() #12
  %3874 = load i32, ptr %3873, align 4, !tbaa !5
  %3875 = call ptr @strerror(i32 noundef %3874) #11
  %3876 = call ptr @__errno_location() #12
  %3877 = load i32, ptr %3876, align 4, !tbaa !5
  %3878 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3865, ptr noundef @.str, i32 noundef %3866, ptr noundef @.str.32, ptr noundef @.str.2, i32 noundef 206, ptr noundef %3869, ptr noundef %3872, ptr noundef %3875, i32 noundef %3877) #11
  br label %3896

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

3896:                                             ; preds = %3879, %3862
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #11
  br label %3897

3897:                                             ; preds = %3896
  br label %3898

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

3899:                                             ; No predecessors!
  br label %3900

3900:                                             ; preds = %3899
  br label %3901

3901:                                             ; preds = %3900, %3838
  br label %3902

3902:                                             ; preds = %3901
  br label %3903

3903:                                             ; preds = %3902
  br label %3904

3904:                                             ; preds = %3903
  %3905 = load i32, ptr @test_count, align 4, !tbaa !5
  %3906 = add nsw i32 %3905, 1
  store i32 %3906, ptr @test_count, align 4, !tbaa !5
  %3907 = load ptr, ptr %6, align 8, !tbaa !9
  %3908 = getelementptr inbounds %struct.s2n_connection, ptr %3907, i32 0, i32 41
  %3909 = getelementptr inbounds %struct.s2n_stuffer, ptr %3908, i32 0, i32 0
  %3910 = getelementptr inbounds %struct.s2n_blob, ptr %3909, i32 0, i32 0
  %3911 = load ptr, ptr %3910, align 8, !tbaa !61
  %3912 = getelementptr inbounds i8, ptr %3911, i64 3
  %3913 = load i8, ptr %3912, align 1, !tbaa !58
  %3914 = zext i8 %3913 to i32
  %3915 = load i16, ptr %92, align 2, !tbaa !60
  %3916 = zext i16 %3915 to i32
  %3917 = ashr i32 %3916, 8
  %3918 = and i32 %3917, 255
  %3919 = icmp eq i32 %3914, %3918
  br i1 %3919, label %3973, label %3920

3920:                                             ; preds = %3904
  br label %3921

3921:                                             ; preds = %3920
  br label %3922

3922:                                             ; preds = %3921
  call void @llvm.lifetime.start.p0(i64 4, ptr %96) #11
  %3923 = call ptr @__errno_location() #12
  %3924 = load i32, ptr %3923, align 4, !tbaa !5
  store i32 %3924, ptr %96, align 4, !tbaa !5
  %3925 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3926 = call i32 @s2n_print_stacktrace(ptr noundef %3925)
  %3927 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3928 = trunc i8 %3927 to i1
  br i1 %3928, label %3929, label %3951

3929:                                             ; preds = %3922
  %3930 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3931 = call i32 @fileno(ptr noundef %3930) #11
  %3932 = call i32 @isatty(i32 noundef %3931) #11
  %3933 = icmp ne i32 %3932, 0
  br i1 %3933, label %3934, label %3951

3934:                                             ; preds = %3929
  %3935 = load i32, ptr %96, align 4, !tbaa !5
  %3936 = call ptr @__errno_location() #12
  store i32 %3935, ptr %3936, align 4, !tbaa !5
  %3937 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3938 = load i32, ptr @test_count, align 4, !tbaa !5
  %3939 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3940 = load i32, ptr %3939, align 4, !tbaa !5
  %3941 = call ptr @s2n_strerror(i32 noundef %3940, ptr noundef @.str.3)
  %3942 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3943 = load i32, ptr %3942, align 4, !tbaa !5
  %3944 = call ptr @s2n_strerror_debug(i32 noundef %3943, ptr noundef @.str.3)
  %3945 = call ptr @__errno_location() #12
  %3946 = load i32, ptr %3945, align 4, !tbaa !5
  %3947 = call ptr @strerror(i32 noundef %3946) #11
  %3948 = call ptr @__errno_location() #12
  %3949 = load i32, ptr %3948, align 4, !tbaa !5
  %3950 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3937, ptr noundef @.str, i32 noundef %3938, ptr noundef @.str.33, ptr noundef @.str.2, i32 noundef 207, ptr noundef %3941, ptr noundef %3944, ptr noundef %3947, i32 noundef %3949) #11
  br label %3968

3951:                                             ; preds = %3929, %3922
  %3952 = load i32, ptr %96, align 4, !tbaa !5
  %3953 = call ptr @__errno_location() #12
  store i32 %3952, ptr %3953, align 4, !tbaa !5
  %3954 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3955 = load i32, ptr @test_count, align 4, !tbaa !5
  %3956 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3957 = load i32, ptr %3956, align 4, !tbaa !5
  %3958 = call ptr @s2n_strerror(i32 noundef %3957, ptr noundef @.str.3)
  %3959 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3960 = load i32, ptr %3959, align 4, !tbaa !5
  %3961 = call ptr @s2n_strerror_debug(i32 noundef %3960, ptr noundef @.str.3)
  %3962 = call ptr @__errno_location() #12
  %3963 = load i32, ptr %3962, align 4, !tbaa !5
  %3964 = call ptr @strerror(i32 noundef %3963) #11
  %3965 = call ptr @__errno_location() #12
  %3966 = load i32, ptr %3965, align 4, !tbaa !5
  %3967 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3954, ptr noundef @.str.4, i32 noundef %3955, ptr noundef @.str.33, ptr noundef @.str.2, i32 noundef 207, ptr noundef %3958, ptr noundef %3961, ptr noundef %3964, i32 noundef %3966) #11
  br label %3968

3968:                                             ; preds = %3951, %3934
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #11
  br label %3969

3969:                                             ; preds = %3968
  br label %3970

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

3971:                                             ; No predecessors!
  br label %3972

3972:                                             ; preds = %3971
  br label %3973

3973:                                             ; preds = %3972, %3904
  br label %3974

3974:                                             ; preds = %3973
  br label %3975

3975:                                             ; preds = %3974
  br label %3976

3976:                                             ; preds = %3975
  %3977 = load i32, ptr @test_count, align 4, !tbaa !5
  %3978 = add nsw i32 %3977, 1
  store i32 %3978, ptr @test_count, align 4, !tbaa !5
  %3979 = load ptr, ptr %6, align 8, !tbaa !9
  %3980 = getelementptr inbounds %struct.s2n_connection, ptr %3979, i32 0, i32 41
  %3981 = getelementptr inbounds %struct.s2n_stuffer, ptr %3980, i32 0, i32 0
  %3982 = getelementptr inbounds %struct.s2n_blob, ptr %3981, i32 0, i32 0
  %3983 = load ptr, ptr %3982, align 8, !tbaa !61
  %3984 = getelementptr inbounds i8, ptr %3983, i64 4
  %3985 = load i8, ptr %3984, align 1, !tbaa !58
  %3986 = zext i8 %3985 to i32
  %3987 = load i16, ptr %92, align 2, !tbaa !60
  %3988 = zext i16 %3987 to i32
  %3989 = and i32 %3988, 255
  %3990 = icmp eq i32 %3986, %3989
  br i1 %3990, label %4044, label %3991

3991:                                             ; preds = %3976
  br label %3992

3992:                                             ; preds = %3991
  br label %3993

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

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

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

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

4039:                                             ; preds = %4022, %4005
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #11
  br label %4040

4040:                                             ; preds = %4039
  br label %4041

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

4042:                                             ; No predecessors!
  br label %4043

4043:                                             ; preds = %4042
  br label %4044

4044:                                             ; preds = %4043, %3976
  br label %4045

4045:                                             ; preds = %4044
  br label %4046

4046:                                             ; preds = %4045
  %4047 = load i32, ptr %77, align 4, !tbaa !5
  %4048 = icmp sgt i32 %4047, 10
  br i1 %4048, label %4049, label %4123

4049:                                             ; preds = %4046
  br label %4050

4050:                                             ; preds = %4049
  %4051 = load i32, ptr @test_count, align 4, !tbaa !5
  %4052 = add nsw i32 %4051, 1
  store i32 %4052, ptr @test_count, align 4, !tbaa !5
  %4053 = load ptr, ptr %6, align 8, !tbaa !9
  %4054 = getelementptr inbounds %struct.s2n_connection, ptr %4053, i32 0, i32 41
  %4055 = getelementptr inbounds %struct.s2n_stuffer, ptr %4054, i32 0, i32 0
  %4056 = getelementptr inbounds %struct.s2n_blob, ptr %4055, i32 0, i32 0
  %4057 = load ptr, ptr %4056, align 8, !tbaa !61
  %4058 = getelementptr inbounds i8, ptr %4057, i64 5
  %4059 = load i32, ptr %86, align 4, !tbaa !5
  %4060 = sext i32 %4059 to i64
  %4061 = getelementptr inbounds i8, ptr %4058, i64 %4060
  %4062 = getelementptr inbounds [8088 x i8], ptr %7, i64 0, i64 0
  %4063 = load i32, ptr %77, align 4, !tbaa !5
  %4064 = sext i32 %4063 to i64
  %4065 = call i32 @memcmp(ptr noundef %4061, ptr noundef %4062, i64 noundef %4064) #14
  %4066 = icmp eq i32 %4065, 0
  br i1 %4066, label %4067, label %4120

4067:                                             ; preds = %4050
  br label %4068

4068:                                             ; preds = %4067
  br label %4069

4069:                                             ; preds = %4068
  call void @llvm.lifetime.start.p0(i64 4, ptr %98) #11
  %4070 = call ptr @__errno_location() #12
  %4071 = load i32, ptr %4070, align 4, !tbaa !5
  store i32 %4071, ptr %98, align 4, !tbaa !5
  %4072 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4073 = call i32 @s2n_print_stacktrace(ptr noundef %4072)
  %4074 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4075 = trunc i8 %4074 to i1
  br i1 %4075, label %4076, label %4098

4076:                                             ; preds = %4069
  %4077 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4078 = call i32 @fileno(ptr noundef %4077) #11
  %4079 = call i32 @isatty(i32 noundef %4078) #11
  %4080 = icmp ne i32 %4079, 0
  br i1 %4080, label %4081, label %4098

4081:                                             ; preds = %4076
  %4082 = load i32, ptr %98, align 4, !tbaa !5
  %4083 = call ptr @__errno_location() #12
  store i32 %4082, ptr %4083, align 4, !tbaa !5
  %4084 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4085 = load i32, ptr @test_count, align 4, !tbaa !5
  %4086 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4087 = load i32, ptr %4086, align 4, !tbaa !5
  %4088 = call ptr @s2n_strerror(i32 noundef %4087, ptr noundef @.str.3)
  %4089 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4090 = load i32, ptr %4089, align 4, !tbaa !5
  %4091 = call ptr @s2n_strerror_debug(i32 noundef %4090, ptr noundef @.str.3)
  %4092 = call ptr @__errno_location() #12
  %4093 = load i32, ptr %4092, align 4, !tbaa !5
  %4094 = call ptr @strerror(i32 noundef %4093) #11
  %4095 = call ptr @__errno_location() #12
  %4096 = load i32, ptr %4095, align 4, !tbaa !5
  %4097 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4084, ptr noundef @.str, i32 noundef %4085, ptr noundef @.str.35, ptr noundef @.str.2, i32 noundef 212, ptr noundef %4088, ptr noundef %4091, ptr noundef %4094, i32 noundef %4096) #11
  br label %4115

4098:                                             ; preds = %4076, %4069
  %4099 = load i32, ptr %98, align 4, !tbaa !5
  %4100 = call ptr @__errno_location() #12
  store i32 %4099, ptr %4100, align 4, !tbaa !5
  %4101 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4102 = load i32, ptr @test_count, align 4, !tbaa !5
  %4103 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4104 = load i32, ptr %4103, align 4, !tbaa !5
  %4105 = call ptr @s2n_strerror(i32 noundef %4104, ptr noundef @.str.3)
  %4106 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4107 = load i32, ptr %4106, align 4, !tbaa !5
  %4108 = call ptr @s2n_strerror_debug(i32 noundef %4107, ptr noundef @.str.3)
  %4109 = call ptr @__errno_location() #12
  %4110 = load i32, ptr %4109, align 4, !tbaa !5
  %4111 = call ptr @strerror(i32 noundef %4110) #11
  %4112 = call ptr @__errno_location() #12
  %4113 = load i32, ptr %4112, align 4, !tbaa !5
  %4114 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4101, ptr noundef @.str.4, i32 noundef %4102, ptr noundef @.str.35, ptr noundef @.str.2, i32 noundef 212, ptr noundef %4105, ptr noundef %4108, ptr noundef %4111, i32 noundef %4113) #11
  br label %4115

4115:                                             ; preds = %4098, %4081
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #11
  br label %4116

4116:                                             ; preds = %4115
  br label %4117

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

4118:                                             ; No predecessors!
  br label %4119

4119:                                             ; preds = %4118
  br label %4120

4120:                                             ; preds = %4119, %4050
  br label %4121

4121:                                             ; preds = %4120
  br label %4122

4122:                                             ; preds = %4121
  br label %4123

4123:                                             ; preds = %4122, %4046
  %4124 = load i32, ptr %86, align 4, !tbaa !5
  %4125 = icmp sgt i32 %4124, 0
  br i1 %4125, label %4126, label %4270

4126:                                             ; preds = %4123
  call void @llvm.lifetime.start.p0(i64 8, ptr %99) #11
  %4127 = load ptr, ptr %6, align 8, !tbaa !9
  %4128 = getelementptr inbounds %struct.s2n_connection, ptr %4127, i32 0, i32 41
  %4129 = getelementptr inbounds %struct.s2n_stuffer, ptr %4128, i32 0, i32 0
  %4130 = getelementptr inbounds %struct.s2n_blob, ptr %4129, i32 0, i32 0
  %4131 = load ptr, ptr %4130, align 8, !tbaa !61
  %4132 = getelementptr inbounds i8, ptr %4131, i64 5
  store ptr %4132, ptr %99, align 8, !tbaa !9
  br label %4133

4133:                                             ; preds = %4126
  %4134 = load i32, ptr @test_count, align 4, !tbaa !5
  %4135 = add nsw i32 %4134, 1
  store i32 %4135, ptr @test_count, align 4, !tbaa !5
  %4136 = getelementptr inbounds [8089 x [16 x i8]], ptr %18, i64 0, i64 0
  %4137 = load i32, ptr %74, align 4, !tbaa !5
  %4138 = sext i32 %4137 to i64
  %4139 = load ptr, ptr %99, align 8, !tbaa !9
  %4140 = load i32, ptr %86, align 4, !tbaa !5
  %4141 = trunc i32 %4140 to i16
  %4142 = call i32 @ensure_explicit_iv_is_unique(ptr noundef %4136, i64 noundef %4138, ptr noundef %4139, i16 noundef zeroext %4141)
  %4143 = icmp eq i32 %4142, -1
  br i1 %4143, label %4144, label %4197

4144:                                             ; preds = %4133
  br label %4145

4145:                                             ; preds = %4144
  br label %4146

4146:                                             ; preds = %4145
  call void @llvm.lifetime.start.p0(i64 4, ptr %100) #11
  %4147 = call ptr @__errno_location() #12
  %4148 = load i32, ptr %4147, align 4, !tbaa !5
  store i32 %4148, ptr %100, align 4, !tbaa !5
  %4149 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4150 = call i32 @s2n_print_stacktrace(ptr noundef %4149)
  %4151 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4152 = trunc i8 %4151 to i1
  br i1 %4152, label %4153, label %4175

4153:                                             ; preds = %4146
  %4154 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4155 = call i32 @fileno(ptr noundef %4154) #11
  %4156 = call i32 @isatty(i32 noundef %4155) #11
  %4157 = icmp ne i32 %4156, 0
  br i1 %4157, label %4158, label %4175

4158:                                             ; preds = %4153
  %4159 = load i32, ptr %100, align 4, !tbaa !5
  %4160 = call ptr @__errno_location() #12
  store i32 %4159, ptr %4160, align 4, !tbaa !5
  %4161 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4162 = load i32, ptr @test_count, align 4, !tbaa !5
  %4163 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4164 = load i32, ptr %4163, align 4, !tbaa !5
  %4165 = call ptr @s2n_strerror(i32 noundef %4164, ptr noundef @.str.3)
  %4166 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4167 = load i32, ptr %4166, align 4, !tbaa !5
  %4168 = call ptr @s2n_strerror_debug(i32 noundef %4167, ptr noundef @.str.3)
  %4169 = call ptr @__errno_location() #12
  %4170 = load i32, ptr %4169, align 4, !tbaa !5
  %4171 = call ptr @strerror(i32 noundef %4170) #11
  %4172 = call ptr @__errno_location() #12
  %4173 = load i32, ptr %4172, align 4, !tbaa !5
  %4174 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4161, ptr noundef @.str, i32 noundef %4162, ptr noundef @.str.36, ptr noundef @.str.2, i32 noundef 218, ptr noundef %4165, ptr noundef %4168, ptr noundef %4171, i32 noundef %4173) #11
  br label %4192

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

4192:                                             ; preds = %4175, %4158
  call void @llvm.lifetime.end.p0(i64 4, ptr %100) #11
  br label %4193

4193:                                             ; preds = %4192
  br label %4194

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

4195:                                             ; No predecessors!
  br label %4196

4196:                                             ; preds = %4195
  br label %4197

4197:                                             ; preds = %4196, %4133
  br label %4198

4198:                                             ; preds = %4197
  br label %4199

4199:                                             ; preds = %4198
  br label %4200

4200:                                             ; preds = %4199
  call void @llvm.lifetime.start.p0(i64 4, ptr %101) #11
  %4201 = load i32, ptr %86, align 4, !tbaa !5
  store i32 %4201, ptr %101, align 4, !tbaa !5
  %4202 = load i32, ptr %101, align 4, !tbaa !5
  %4203 = icmp ne i32 %4202, 0
  br i1 %4203, label %4204, label %4267

4204:                                             ; preds = %4200
  %4205 = load i32, ptr %74, align 4, !tbaa !5
  %4206 = sext i32 %4205 to i64
  %4207 = getelementptr inbounds [8089 x [16 x i8]], ptr %18, i64 0, i64 %4206
  %4208 = getelementptr inbounds [16 x i8], ptr %4207, i64 0, i64 0
  %4209 = load ptr, ptr %99, align 8, !tbaa !9
  %4210 = load i32, ptr %101, align 4, !tbaa !5
  %4211 = sext i32 %4210 to i64
  call void @llvm.memmove.p0.p0.i64(ptr align 16 %4208, ptr align 1 %4209, i64 %4211, i1 false)
  %4212 = icmp eq ptr %4208, null
  br i1 %4212, label %4213, label %4266

4213:                                             ; preds = %4204
  br label %4214

4214:                                             ; preds = %4213
  br label %4215

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

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

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

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

4261:                                             ; preds = %4244, %4227
  call void @llvm.lifetime.end.p0(i64 4, ptr %102) #11
  br label %4262

4262:                                             ; preds = %4261
  br label %4263

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

4264:                                             ; No predecessors!
  br label %4265

4265:                                             ; preds = %4264
  br label %4266

4266:                                             ; preds = %4265, %4204
  br label %4267

4267:                                             ; preds = %4266, %4200
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #11
  br label %4268

4268:                                             ; preds = %4267
  br label %4269

4269:                                             ; preds = %4268
  call void @llvm.lifetime.end.p0(i64 8, ptr %99) #11
  br label %4270

4270:                                             ; preds = %4269, %4123
  br label %4271

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

4278:                                             ; preds = %4271
  br label %4279

4279:                                             ; preds = %4278
  br label %4280

4280:                                             ; preds = %4279
  call void @llvm.lifetime.start.p0(i64 4, ptr %103) #11
  %4281 = call ptr @__errno_location() #12
  %4282 = load i32, ptr %4281, align 4, !tbaa !5
  store i32 %4282, ptr %103, 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 %103, 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.38, ptr noundef @.str.2, i32 noundef 224, ptr noundef %4299, ptr noundef %4302, ptr noundef %4305, i32 noundef %4307) #11
  br label %4326

4309:                                             ; preds = %4287, %4280
  %4310 = load i32, ptr %103, 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.38, ptr noundef @.str.2, i32 noundef 224, 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 %103) #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, %4271
  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 = load ptr, ptr %6, align 8, !tbaa !9
  %4338 = getelementptr inbounds %struct.s2n_connection, ptr %4337, i32 0, i32 38
  %4339 = call i32 @s2n_stuffer_wipe(ptr noundef %4338)
  %4340 = icmp eq i32 %4339, -1
  br i1 %4340, label %4341, label %4394

4341:                                             ; preds = %4334
  br label %4342

4342:                                             ; preds = %4341
  br label %4343

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

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

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

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

4389:                                             ; preds = %4372, %4355
  call void @llvm.lifetime.end.p0(i64 4, ptr %104) #11
  br label %4390

4390:                                             ; preds = %4389
  br label %4391

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

4392:                                             ; No predecessors!
  br label %4393

4393:                                             ; preds = %4392
  br label %4394

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

4395:                                             ; preds = %4394
  br label %4396

4396:                                             ; preds = %4395
  br label %4397

4397:                                             ; preds = %4396
  %4398 = load i32, ptr @test_count, align 4, !tbaa !5
  %4399 = add nsw i32 %4398, 1
  store i32 %4399, ptr @test_count, align 4, !tbaa !5
  %4400 = load ptr, ptr %6, align 8, !tbaa !9
  %4401 = getelementptr inbounds %struct.s2n_connection, ptr %4400, i32 0, i32 41
  %4402 = load ptr, ptr %6, align 8, !tbaa !9
  %4403 = getelementptr inbounds %struct.s2n_connection, ptr %4402, i32 0, i32 38
  %4404 = call i32 @s2n_stuffer_copy(ptr noundef %4401, ptr noundef %4403, i32 noundef 5)
  %4405 = icmp eq i32 %4404, -1
  br i1 %4405, label %4406, label %4459

4406:                                             ; preds = %4397
  br label %4407

4407:                                             ; preds = %4406
  br label %4408

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

4415:                                             ; preds = %4408
  %4416 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4417 = call i32 @fileno(ptr noundef %4416) #11
  %4418 = call i32 @isatty(i32 noundef %4417) #11
  %4419 = icmp ne i32 %4418, 0
  br i1 %4419, label %4420, label %4437

4420:                                             ; preds = %4415
  %4421 = load i32, ptr %105, align 4, !tbaa !5
  %4422 = call ptr @__errno_location() #12
  store i32 %4421, ptr %4422, align 4, !tbaa !5
  %4423 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4424 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %4426, ptr noundef @.str.3)
  %4428 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4429 = load i32, ptr %4428, align 4, !tbaa !5
  %4430 = call ptr @s2n_strerror_debug(i32 noundef %4429, ptr noundef @.str.3)
  %4431 = call ptr @__errno_location() #12
  %4432 = load i32, ptr %4431, align 4, !tbaa !5
  %4433 = call ptr @strerror(i32 noundef %4432) #11
  %4434 = call ptr @__errno_location() #12
  %4435 = load i32, ptr %4434, align 4, !tbaa !5
  %4436 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4423, ptr noundef @.str, i32 noundef %4424, ptr noundef @.str.40, ptr noundef @.str.2, i32 noundef 226, ptr noundef %4427, ptr noundef %4430, ptr noundef %4433, i32 noundef %4435) #11
  br label %4454

4437:                                             ; preds = %4415, %4408
  %4438 = load i32, ptr %105, align 4, !tbaa !5
  %4439 = call ptr @__errno_location() #12
  store i32 %4438, ptr %4439, align 4, !tbaa !5
  %4440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4441 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %4443, ptr noundef @.str.3)
  %4445 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4446 = load i32, ptr %4445, align 4, !tbaa !5
  %4447 = call ptr @s2n_strerror_debug(i32 noundef %4446, ptr noundef @.str.3)
  %4448 = call ptr @__errno_location() #12
  %4449 = load i32, ptr %4448, align 4, !tbaa !5
  %4450 = call ptr @strerror(i32 noundef %4449) #11
  %4451 = call ptr @__errno_location() #12
  %4452 = load i32, ptr %4451, align 4, !tbaa !5
  %4453 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4440, ptr noundef @.str.4, i32 noundef %4441, ptr noundef @.str.40, ptr noundef @.str.2, i32 noundef 226, ptr noundef %4444, ptr noundef %4447, ptr noundef %4450, i32 noundef %4452) #11
  br label %4454

4454:                                             ; preds = %4437, %4420
  call void @llvm.lifetime.end.p0(i64 4, ptr %105) #11
  br label %4455

4455:                                             ; preds = %4454
  br label %4456

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

4457:                                             ; No predecessors!
  br label %4458

4458:                                             ; preds = %4457
  br label %4459

4459:                                             ; preds = %4458, %4397
  br label %4460

4460:                                             ; preds = %4459
  br label %4461

4461:                                             ; preds = %4460
  br label %4462

4462:                                             ; preds = %4461
  %4463 = load i32, ptr @test_count, align 4, !tbaa !5
  %4464 = add nsw i32 %4463, 1
  store i32 %4464, ptr @test_count, align 4, !tbaa !5
  %4465 = load ptr, ptr %6, align 8, !tbaa !9
  %4466 = getelementptr inbounds %struct.s2n_connection, ptr %4465, i32 0, i32 41
  %4467 = load ptr, ptr %6, align 8, !tbaa !9
  %4468 = getelementptr inbounds %struct.s2n_connection, ptr %4467, i32 0, i32 40
  %4469 = load ptr, ptr %6, align 8, !tbaa !9
  %4470 = getelementptr inbounds %struct.s2n_connection, ptr %4469, i32 0, i32 41
  %4471 = getelementptr inbounds %struct.s2n_stuffer, ptr %4470, i32 0, i32 2
  %4472 = load i32, ptr %4471, align 4, !tbaa !62
  %4473 = load ptr, ptr %6, align 8, !tbaa !9
  %4474 = getelementptr inbounds %struct.s2n_connection, ptr %4473, i32 0, i32 41
  %4475 = getelementptr inbounds %struct.s2n_stuffer, ptr %4474, i32 0, i32 1
  %4476 = load i32, ptr %4475, align 8, !tbaa !63
  %4477 = sub i32 %4472, %4476
  %4478 = call i32 @s2n_stuffer_copy(ptr noundef %4466, ptr noundef %4468, i32 noundef %4477)
  %4479 = icmp eq i32 %4478, -1
  br i1 %4479, label %4480, label %4533

4480:                                             ; preds = %4462
  br label %4481

4481:                                             ; preds = %4480
  br label %4482

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

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

4494:                                             ; preds = %4489
  %4495 = load i32, ptr %106, align 4, !tbaa !5
  %4496 = call ptr @__errno_location() #12
  store i32 %4495, ptr %4496, align 4, !tbaa !5
  %4497 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4498 = load i32, ptr @test_count, align 4, !tbaa !5
  %4499 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4500 = load i32, ptr %4499, align 4, !tbaa !5
  %4501 = call ptr @s2n_strerror(i32 noundef %4500, ptr noundef @.str.3)
  %4502 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4503 = load i32, ptr %4502, align 4, !tbaa !5
  %4504 = call ptr @s2n_strerror_debug(i32 noundef %4503, ptr noundef @.str.3)
  %4505 = call ptr @__errno_location() #12
  %4506 = load i32, ptr %4505, align 4, !tbaa !5
  %4507 = call ptr @strerror(i32 noundef %4506) #11
  %4508 = call ptr @__errno_location() #12
  %4509 = load i32, ptr %4508, align 4, !tbaa !5
  %4510 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4497, ptr noundef @.str, i32 noundef %4498, ptr noundef @.str.41, ptr noundef @.str.2, i32 noundef 227, ptr noundef %4501, ptr noundef %4504, ptr noundef %4507, i32 noundef %4509) #11
  br label %4528

4511:                                             ; preds = %4489, %4482
  %4512 = load i32, ptr %106, align 4, !tbaa !5
  %4513 = call ptr @__errno_location() #12
  store i32 %4512, ptr %4513, align 4, !tbaa !5
  %4514 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4515 = load i32, ptr @test_count, align 4, !tbaa !5
  %4516 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4517 = load i32, ptr %4516, align 4, !tbaa !5
  %4518 = call ptr @s2n_strerror(i32 noundef %4517, ptr noundef @.str.3)
  %4519 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4520 = load i32, ptr %4519, align 4, !tbaa !5
  %4521 = call ptr @s2n_strerror_debug(i32 noundef %4520, ptr noundef @.str.3)
  %4522 = call ptr @__errno_location() #12
  %4523 = load i32, ptr %4522, align 4, !tbaa !5
  %4524 = call ptr @strerror(i32 noundef %4523) #11
  %4525 = call ptr @__errno_location() #12
  %4526 = load i32, ptr %4525, align 4, !tbaa !5
  %4527 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4514, ptr noundef @.str.4, i32 noundef %4515, ptr noundef @.str.41, ptr noundef @.str.2, i32 noundef 227, ptr noundef %4518, ptr noundef %4521, ptr noundef %4524, i32 noundef %4526) #11
  br label %4528

4528:                                             ; preds = %4511, %4494
  call void @llvm.lifetime.end.p0(i64 4, ptr %106) #11
  br label %4529

4529:                                             ; preds = %4528
  br label %4530

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

4531:                                             ; No predecessors!
  br label %4532

4532:                                             ; preds = %4531
  br label %4533

4533:                                             ; preds = %4532, %4462
  br label %4534

4534:                                             ; preds = %4533
  br label %4535

4535:                                             ; preds = %4534
  call void @llvm.lifetime.start.p0(i64 1, ptr %107) #11
  store i8 0, ptr %107, align 1, !tbaa !58
  call void @llvm.lifetime.start.p0(i64 2, ptr %108) #11
  store i16 0, ptr %108, align 2, !tbaa !60
  br label %4536

4536:                                             ; preds = %4535
  %4537 = load i32, ptr @test_count, align 4, !tbaa !5
  %4538 = add nsw i32 %4537, 1
  store i32 %4538, ptr @test_count, align 4, !tbaa !5
  %4539 = load ptr, ptr %6, align 8, !tbaa !9
  %4540 = call i32 @s2n_record_header_parse(ptr noundef %4539, ptr noundef %107, ptr noundef %108)
  %4541 = icmp eq i32 %4540, -1
  br i1 %4541, label %4542, label %4595

4542:                                             ; preds = %4536
  br label %4543

4543:                                             ; preds = %4542
  br label %4544

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

4551:                                             ; preds = %4544
  %4552 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4553 = call i32 @fileno(ptr noundef %4552) #11
  %4554 = call i32 @isatty(i32 noundef %4553) #11
  %4555 = icmp ne i32 %4554, 0
  br i1 %4555, label %4556, label %4573

4556:                                             ; preds = %4551
  %4557 = load i32, ptr %109, align 4, !tbaa !5
  %4558 = call ptr @__errno_location() #12
  store i32 %4557, ptr %4558, align 4, !tbaa !5
  %4559 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4560 = load i32, ptr @test_count, align 4, !tbaa !5
  %4561 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4562 = load i32, ptr %4561, align 4, !tbaa !5
  %4563 = call ptr @s2n_strerror(i32 noundef %4562, ptr noundef @.str.3)
  %4564 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4565 = load i32, ptr %4564, align 4, !tbaa !5
  %4566 = call ptr @s2n_strerror_debug(i32 noundef %4565, ptr noundef @.str.3)
  %4567 = call ptr @__errno_location() #12
  %4568 = load i32, ptr %4567, align 4, !tbaa !5
  %4569 = call ptr @strerror(i32 noundef %4568) #11
  %4570 = call ptr @__errno_location() #12
  %4571 = load i32, ptr %4570, align 4, !tbaa !5
  %4572 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4559, ptr noundef @.str, i32 noundef %4560, ptr noundef @.str.42, ptr noundef @.str.2, i32 noundef 232, ptr noundef %4563, ptr noundef %4566, ptr noundef %4569, i32 noundef %4571) #11
  br label %4590

4573:                                             ; preds = %4551, %4544
  %4574 = load i32, ptr %109, align 4, !tbaa !5
  %4575 = call ptr @__errno_location() #12
  store i32 %4574, ptr %4575, align 4, !tbaa !5
  %4576 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4577 = load i32, ptr @test_count, align 4, !tbaa !5
  %4578 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4579 = load i32, ptr %4578, align 4, !tbaa !5
  %4580 = call ptr @s2n_strerror(i32 noundef %4579, ptr noundef @.str.3)
  %4581 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4582 = load i32, ptr %4581, align 4, !tbaa !5
  %4583 = call ptr @s2n_strerror_debug(i32 noundef %4582, ptr noundef @.str.3)
  %4584 = call ptr @__errno_location() #12
  %4585 = load i32, ptr %4584, align 4, !tbaa !5
  %4586 = call ptr @strerror(i32 noundef %4585) #11
  %4587 = call ptr @__errno_location() #12
  %4588 = load i32, ptr %4587, align 4, !tbaa !5
  %4589 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4576, ptr noundef @.str.4, i32 noundef %4577, ptr noundef @.str.42, ptr noundef @.str.2, i32 noundef 232, ptr noundef %4580, ptr noundef %4583, ptr noundef %4586, i32 noundef %4588) #11
  br label %4590

4590:                                             ; preds = %4573, %4556
  call void @llvm.lifetime.end.p0(i64 4, ptr %109) #11
  br label %4591

4591:                                             ; preds = %4590
  br label %4592

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

4593:                                             ; No predecessors!
  br label %4594

4594:                                             ; preds = %4593
  br label %4595

4595:                                             ; preds = %4594, %4536
  br label %4596

4596:                                             ; preds = %4595
  br label %4597

4597:                                             ; preds = %4596
  br label %4598

4598:                                             ; preds = %4597
  %4599 = load i32, ptr @test_count, align 4, !tbaa !5
  %4600 = add nsw i32 %4599, 1
  store i32 %4600, ptr @test_count, align 4, !tbaa !5
  %4601 = load ptr, ptr %6, align 8, !tbaa !9
  %4602 = call i32 @s2n_record_parse(ptr noundef %4601)
  %4603 = icmp eq i32 %4602, -1
  br i1 %4603, label %4604, label %4657

4604:                                             ; preds = %4598
  br label %4605

4605:                                             ; preds = %4604
  br label %4606

4606:                                             ; preds = %4605
  call void @llvm.lifetime.start.p0(i64 4, ptr %110) #11
  %4607 = call ptr @__errno_location() #12
  %4608 = load i32, ptr %4607, align 4, !tbaa !5
  store i32 %4608, ptr %110, align 4, !tbaa !5
  %4609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4610 = call i32 @s2n_print_stacktrace(ptr noundef %4609)
  %4611 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4612 = trunc i8 %4611 to i1
  br i1 %4612, label %4613, label %4635

4613:                                             ; preds = %4606
  %4614 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4615 = call i32 @fileno(ptr noundef %4614) #11
  %4616 = call i32 @isatty(i32 noundef %4615) #11
  %4617 = icmp ne i32 %4616, 0
  br i1 %4617, label %4618, label %4635

4618:                                             ; preds = %4613
  %4619 = load i32, ptr %110, align 4, !tbaa !5
  %4620 = call ptr @__errno_location() #12
  store i32 %4619, ptr %4620, align 4, !tbaa !5
  %4621 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4622 = load i32, ptr @test_count, align 4, !tbaa !5
  %4623 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4624 = load i32, ptr %4623, align 4, !tbaa !5
  %4625 = call ptr @s2n_strerror(i32 noundef %4624, ptr noundef @.str.3)
  %4626 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4627 = load i32, ptr %4626, align 4, !tbaa !5
  %4628 = call ptr @s2n_strerror_debug(i32 noundef %4627, ptr noundef @.str.3)
  %4629 = call ptr @__errno_location() #12
  %4630 = load i32, ptr %4629, align 4, !tbaa !5
  %4631 = call ptr @strerror(i32 noundef %4630) #11
  %4632 = call ptr @__errno_location() #12
  %4633 = load i32, ptr %4632, align 4, !tbaa !5
  %4634 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4621, ptr noundef @.str, i32 noundef %4622, ptr noundef @.str.43, ptr noundef @.str.2, i32 noundef 233, ptr noundef %4625, ptr noundef %4628, ptr noundef %4631, i32 noundef %4633) #11
  br label %4652

4635:                                             ; preds = %4613, %4606
  %4636 = load i32, ptr %110, align 4, !tbaa !5
  %4637 = call ptr @__errno_location() #12
  store i32 %4636, ptr %4637, align 4, !tbaa !5
  %4638 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4639 = load i32, ptr @test_count, align 4, !tbaa !5
  %4640 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4641 = load i32, ptr %4640, align 4, !tbaa !5
  %4642 = call ptr @s2n_strerror(i32 noundef %4641, ptr noundef @.str.3)
  %4643 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4644 = load i32, ptr %4643, align 4, !tbaa !5
  %4645 = call ptr @s2n_strerror_debug(i32 noundef %4644, ptr noundef @.str.3)
  %4646 = call ptr @__errno_location() #12
  %4647 = load i32, ptr %4646, align 4, !tbaa !5
  %4648 = call ptr @strerror(i32 noundef %4647) #11
  %4649 = call ptr @__errno_location() #12
  %4650 = load i32, ptr %4649, align 4, !tbaa !5
  %4651 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4638, ptr noundef @.str.4, i32 noundef %4639, ptr noundef @.str.43, ptr noundef @.str.2, i32 noundef 233, ptr noundef %4642, ptr noundef %4645, ptr noundef %4648, i32 noundef %4650) #11
  br label %4652

4652:                                             ; preds = %4635, %4618
  call void @llvm.lifetime.end.p0(i64 4, ptr %110) #11
  br label %4653

4653:                                             ; preds = %4652
  br label %4654

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

4655:                                             ; No predecessors!
  br label %4656

4656:                                             ; preds = %4655
  br label %4657

4657:                                             ; preds = %4656, %4598
  br label %4658

4658:                                             ; preds = %4657
  br label %4659

4659:                                             ; preds = %4658
  br label %4660

4660:                                             ; preds = %4659
  %4661 = load i32, ptr @test_count, align 4, !tbaa !5
  %4662 = add nsw i32 %4661, 1
  store i32 %4662, ptr @test_count, align 4, !tbaa !5
  %4663 = load i8, ptr %107, align 1, !tbaa !58
  %4664 = zext i8 %4663 to i32
  %4665 = icmp eq i32 %4664, 23
  br i1 %4665, label %4719, label %4666

4666:                                             ; preds = %4660
  br label %4667

4667:                                             ; preds = %4666
  br label %4668

4668:                                             ; preds = %4667
  call void @llvm.lifetime.start.p0(i64 4, ptr %111) #11
  %4669 = call ptr @__errno_location() #12
  %4670 = load i32, ptr %4669, align 4, !tbaa !5
  store i32 %4670, ptr %111, align 4, !tbaa !5
  %4671 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4672 = call i32 @s2n_print_stacktrace(ptr noundef %4671)
  %4673 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4674 = trunc i8 %4673 to i1
  br i1 %4674, label %4675, label %4697

4675:                                             ; preds = %4668
  %4676 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4677 = call i32 @fileno(ptr noundef %4676) #11
  %4678 = call i32 @isatty(i32 noundef %4677) #11
  %4679 = icmp ne i32 %4678, 0
  br i1 %4679, label %4680, label %4697

4680:                                             ; preds = %4675
  %4681 = load i32, ptr %111, align 4, !tbaa !5
  %4682 = call ptr @__errno_location() #12
  store i32 %4681, ptr %4682, align 4, !tbaa !5
  %4683 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4684 = load i32, ptr @test_count, align 4, !tbaa !5
  %4685 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4686 = load i32, ptr %4685, align 4, !tbaa !5
  %4687 = call ptr @s2n_strerror(i32 noundef %4686, ptr noundef @.str.3)
  %4688 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4689 = load i32, ptr %4688, align 4, !tbaa !5
  %4690 = call ptr @s2n_strerror_debug(i32 noundef %4689, ptr noundef @.str.3)
  %4691 = call ptr @__errno_location() #12
  %4692 = load i32, ptr %4691, align 4, !tbaa !5
  %4693 = call ptr @strerror(i32 noundef %4692) #11
  %4694 = call ptr @__errno_location() #12
  %4695 = load i32, ptr %4694, align 4, !tbaa !5
  %4696 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4683, ptr noundef @.str, i32 noundef %4684, ptr noundef @.str.44, ptr noundef @.str.2, i32 noundef 234, ptr noundef %4687, ptr noundef %4690, ptr noundef %4693, i32 noundef %4695) #11
  br label %4714

4697:                                             ; preds = %4675, %4668
  %4698 = load i32, ptr %111, align 4, !tbaa !5
  %4699 = call ptr @__errno_location() #12
  store i32 %4698, ptr %4699, align 4, !tbaa !5
  %4700 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4701 = load i32, ptr @test_count, align 4, !tbaa !5
  %4702 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4703 = load i32, ptr %4702, align 4, !tbaa !5
  %4704 = call ptr @s2n_strerror(i32 noundef %4703, ptr noundef @.str.3)
  %4705 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4706 = load i32, ptr %4705, align 4, !tbaa !5
  %4707 = call ptr @s2n_strerror_debug(i32 noundef %4706, ptr noundef @.str.3)
  %4708 = call ptr @__errno_location() #12
  %4709 = load i32, ptr %4708, align 4, !tbaa !5
  %4710 = call ptr @strerror(i32 noundef %4709) #11
  %4711 = call ptr @__errno_location() #12
  %4712 = load i32, ptr %4711, align 4, !tbaa !5
  %4713 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4700, ptr noundef @.str.4, i32 noundef %4701, ptr noundef @.str.44, ptr noundef @.str.2, i32 noundef 234, ptr noundef %4704, ptr noundef %4707, ptr noundef %4710, i32 noundef %4712) #11
  br label %4714

4714:                                             ; preds = %4697, %4680
  call void @llvm.lifetime.end.p0(i64 4, ptr %111) #11
  br label %4715

4715:                                             ; preds = %4714
  br label %4716

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

4717:                                             ; No predecessors!
  br label %4718

4718:                                             ; preds = %4717
  br label %4719

4719:                                             ; preds = %4718, %4660
  br label %4720

4720:                                             ; preds = %4719
  br label %4721

4721:                                             ; preds = %4720
  br label %4722

4722:                                             ; preds = %4721
  %4723 = load i32, ptr @test_count, align 4, !tbaa !5
  %4724 = add nsw i32 %4723, 1
  store i32 %4724, ptr @test_count, align 4, !tbaa !5
  %4725 = load i16, ptr %108, align 2, !tbaa !60
  %4726 = zext i16 %4725 to i32
  %4727 = load i16, ptr %92, align 2, !tbaa !60
  %4728 = zext i16 %4727 to i32
  %4729 = icmp eq i32 %4726, %4728
  br i1 %4729, label %4783, label %4730

4730:                                             ; preds = %4722
  br label %4731

4731:                                             ; preds = %4730
  br label %4732

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

4739:                                             ; preds = %4732
  %4740 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4741 = call i32 @fileno(ptr noundef %4740) #11
  %4742 = call i32 @isatty(i32 noundef %4741) #11
  %4743 = icmp ne i32 %4742, 0
  br i1 %4743, label %4744, label %4761

4744:                                             ; preds = %4739
  %4745 = load i32, ptr %112, align 4, !tbaa !5
  %4746 = call ptr @__errno_location() #12
  store i32 %4745, ptr %4746, align 4, !tbaa !5
  %4747 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4748 = load i32, ptr @test_count, align 4, !tbaa !5
  %4749 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4750 = load i32, ptr %4749, align 4, !tbaa !5
  %4751 = call ptr @s2n_strerror(i32 noundef %4750, ptr noundef @.str.3)
  %4752 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4753 = load i32, ptr %4752, align 4, !tbaa !5
  %4754 = call ptr @s2n_strerror_debug(i32 noundef %4753, ptr noundef @.str.3)
  %4755 = call ptr @__errno_location() #12
  %4756 = load i32, ptr %4755, align 4, !tbaa !5
  %4757 = call ptr @strerror(i32 noundef %4756) #11
  %4758 = call ptr @__errno_location() #12
  %4759 = load i32, ptr %4758, align 4, !tbaa !5
  %4760 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4747, ptr noundef @.str, i32 noundef %4748, ptr noundef @.str.45, ptr noundef @.str.2, i32 noundef 235, ptr noundef %4751, ptr noundef %4754, ptr noundef %4757, i32 noundef %4759) #11
  br label %4778

4761:                                             ; preds = %4739, %4732
  %4762 = load i32, ptr %112, align 4, !tbaa !5
  %4763 = call ptr @__errno_location() #12
  store i32 %4762, ptr %4763, align 4, !tbaa !5
  %4764 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4765 = load i32, ptr @test_count, align 4, !tbaa !5
  %4766 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4767 = load i32, ptr %4766, align 4, !tbaa !5
  %4768 = call ptr @s2n_strerror(i32 noundef %4767, ptr noundef @.str.3)
  %4769 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4770 = load i32, ptr %4769, align 4, !tbaa !5
  %4771 = call ptr @s2n_strerror_debug(i32 noundef %4770, ptr noundef @.str.3)
  %4772 = call ptr @__errno_location() #12
  %4773 = load i32, ptr %4772, align 4, !tbaa !5
  %4774 = call ptr @strerror(i32 noundef %4773) #11
  %4775 = call ptr @__errno_location() #12
  %4776 = load i32, ptr %4775, align 4, !tbaa !5
  %4777 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4764, ptr noundef @.str.4, i32 noundef %4765, ptr noundef @.str.45, ptr noundef @.str.2, i32 noundef 235, ptr noundef %4768, ptr noundef %4771, ptr noundef %4774, i32 noundef %4776) #11
  br label %4778

4778:                                             ; preds = %4761, %4744
  call void @llvm.lifetime.end.p0(i64 4, ptr %112) #11
  br label %4779

4779:                                             ; preds = %4778
  br label %4780

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

4781:                                             ; No predecessors!
  br label %4782

4782:                                             ; preds = %4781
  br label %4783

4783:                                             ; preds = %4782, %4722
  br label %4784

4784:                                             ; preds = %4783
  br label %4785

4785:                                             ; preds = %4784
  br label %4786

4786:                                             ; preds = %4785
  %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 = getelementptr inbounds %struct.s2n_connection, ptr %4789, i32 0, i32 38
  %4791 = call i32 @s2n_stuffer_wipe(ptr noundef %4790)
  %4792 = icmp eq i32 %4791, -1
  br i1 %4792, label %4793, label %4846

4793:                                             ; preds = %4786
  br label %4794

4794:                                             ; preds = %4793
  br label %4795

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

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

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

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

4841:                                             ; preds = %4824, %4807
  call void @llvm.lifetime.end.p0(i64 4, ptr %113) #11
  br label %4842

4842:                                             ; preds = %4841
  br label %4843

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

4844:                                             ; No predecessors!
  br label %4845

4845:                                             ; preds = %4844
  br label %4846

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

4847:                                             ; preds = %4846
  br label %4848

4848:                                             ; preds = %4847
  br label %4849

4849:                                             ; preds = %4848
  %4850 = load i32, ptr @test_count, align 4, !tbaa !5
  %4851 = add nsw i32 %4850, 1
  store i32 %4851, ptr @test_count, align 4, !tbaa !5
  %4852 = load ptr, ptr %6, align 8, !tbaa !9
  %4853 = getelementptr inbounds %struct.s2n_connection, ptr %4852, i32 0, i32 40
  %4854 = call i32 @s2n_stuffer_wipe(ptr noundef %4853)
  %4855 = icmp eq i32 %4854, -1
  br i1 %4855, label %4856, label %4909

4856:                                             ; preds = %4849
  br label %4857

4857:                                             ; preds = %4856
  br label %4858

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

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

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

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

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

4905:                                             ; preds = %4904
  br label %4906

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

4907:                                             ; No predecessors!
  br label %4908

4908:                                             ; preds = %4907
  br label %4909

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

4910:                                             ; preds = %4909
  br label %4911

4911:                                             ; preds = %4910
  call void @llvm.lifetime.end.p0(i64 2, ptr %108) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %107) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %94) #11
  call void @llvm.lifetime.end.p0(i64 2, ptr %92) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %75) #11
  br label %4912

4912:                                             ; preds = %4911
  %4913 = load i32, ptr %74, align 4, !tbaa !5
  %4914 = add nsw i32 %4913, 1
  store i32 %4914, ptr %74, align 4, !tbaa !5
  br label %2941, !llvm.loop !67

4915:                                             ; preds = %2944
  br label %4916

4916:                                             ; preds = %4915
  %4917 = load i32, ptr %73, align 4, !tbaa !5
  %4918 = add nsw i32 %4917, 1
  store i32 %4918, ptr %73, align 4, !tbaa !5
  br label %2936, !llvm.loop !68

4919:                                             ; preds = %2939
  %4920 = load ptr, ptr %6, align 8, !tbaa !9
  %4921 = getelementptr inbounds %struct.s2n_connection, ptr %4920, i32 0, i32 26
  %4922 = load ptr, ptr %4921, align 8, !tbaa !17
  %4923 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %4922, i32 0, i32 0
  %4924 = load ptr, ptr %4923, align 8, !tbaa !46
  %4925 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %4924, i32 0, i32 6
  store ptr @s2n_record_alg_aes128_sha256_composite, ptr %4925, align 8, !tbaa !51
  call void @llvm.lifetime.start.p0(i64 4, ptr %115) #11
  store i32 0, ptr %115, align 4, !tbaa !5
  br label %4926

4926:                                             ; preds = %6906, %4919
  %4927 = load i32, ptr %115, align 4, !tbaa !5
  %4928 = icmp slt i32 %4927, 3
  br i1 %4928, label %4930, label %4929

4929:                                             ; preds = %4926
  store i32 436, ptr %25, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %115) #11
  br label %6909

4930:                                             ; preds = %4926
  call void @llvm.lifetime.start.p0(i64 4, ptr %116) #11
  store i32 0, ptr %116, align 4, !tbaa !5
  br label %4931

4931:                                             ; preds = %6902, %4930
  %4932 = load i32, ptr %116, align 4, !tbaa !5
  %4933 = icmp slt i32 %4932, 8088
  br i1 %4933, label %4935, label %4934

4934:                                             ; preds = %4931
  store i32 439, ptr %25, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %116) #11
  br label %6905

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

4936:                                             ; preds = %4935
  %4937 = load i32, ptr @test_count, align 4, !tbaa !5
  %4938 = add nsw i32 %4937, 1
  store i32 %4938, ptr @test_count, align 4, !tbaa !5
  %4939 = getelementptr inbounds [8088 x i8], ptr %7, i64 0, i64 0
  %4940 = load i32, ptr %116, align 4, !tbaa !5
  %4941 = call i32 @s2n_blob_init(ptr noundef %117, ptr noundef %4939, i32 noundef %4940)
  %4942 = icmp eq i32 %4941, -1
  br i1 %4942, label %4943, label %4996

4943:                                             ; preds = %4936
  br label %4944

4944:                                             ; preds = %4943
  br label %4945

4945:                                             ; preds = %4944
  call void @llvm.lifetime.start.p0(i64 4, ptr %118) #11
  %4946 = call ptr @__errno_location() #12
  %4947 = load i32, ptr %4946, align 4, !tbaa !5
  store i32 %4947, ptr %118, align 4, !tbaa !5
  %4948 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4949 = call i32 @s2n_print_stacktrace(ptr noundef %4948)
  %4950 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4951 = trunc i8 %4950 to i1
  br i1 %4951, label %4952, label %4974

4952:                                             ; preds = %4945
  %4953 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4954 = call i32 @fileno(ptr noundef %4953) #11
  %4955 = call i32 @isatty(i32 noundef %4954) #11
  %4956 = icmp ne i32 %4955, 0
  br i1 %4956, label %4957, label %4974

4957:                                             ; preds = %4952
  %4958 = load i32, ptr %118, align 4, !tbaa !5
  %4959 = call ptr @__errno_location() #12
  store i32 %4958, ptr %4959, align 4, !tbaa !5
  %4960 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4961 = load i32, ptr @test_count, align 4, !tbaa !5
  %4962 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4963 = load i32, ptr %4962, align 4, !tbaa !5
  %4964 = call ptr @s2n_strerror(i32 noundef %4963, ptr noundef @.str.3)
  %4965 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4966 = load i32, ptr %4965, align 4, !tbaa !5
  %4967 = call ptr @s2n_strerror_debug(i32 noundef %4966, ptr noundef @.str.3)
  %4968 = call ptr @__errno_location() #12
  %4969 = load i32, ptr %4968, align 4, !tbaa !5
  %4970 = call ptr @strerror(i32 noundef %4969) #11
  %4971 = call ptr @__errno_location() #12
  %4972 = load i32, ptr %4971, align 4, !tbaa !5
  %4973 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4960, ptr noundef @.str, i32 noundef %4961, ptr noundef @.str.20, ptr noundef @.str.2, i32 noundef 247, ptr noundef %4964, ptr noundef %4967, ptr noundef %4970, i32 noundef %4972) #11
  br label %4991

4974:                                             ; preds = %4952, %4945
  %4975 = load i32, ptr %118, align 4, !tbaa !5
  %4976 = call ptr @__errno_location() #12
  store i32 %4975, ptr %4976, align 4, !tbaa !5
  %4977 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4978 = load i32, ptr @test_count, align 4, !tbaa !5
  %4979 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4980 = load i32, ptr %4979, align 4, !tbaa !5
  %4981 = call ptr @s2n_strerror(i32 noundef %4980, ptr noundef @.str.3)
  %4982 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4983 = load i32, ptr %4982, align 4, !tbaa !5
  %4984 = call ptr @s2n_strerror_debug(i32 noundef %4983, ptr noundef @.str.3)
  %4985 = call ptr @__errno_location() #12
  %4986 = load i32, ptr %4985, align 4, !tbaa !5
  %4987 = call ptr @strerror(i32 noundef %4986) #11
  %4988 = call ptr @__errno_location() #12
  %4989 = load i32, ptr %4988, align 4, !tbaa !5
  %4990 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4977, ptr noundef @.str.4, i32 noundef %4978, ptr noundef @.str.20, ptr noundef @.str.2, i32 noundef 247, ptr noundef %4981, ptr noundef %4984, ptr noundef %4987, i32 noundef %4989) #11
  br label %4991

4991:                                             ; preds = %4974, %4957
  call void @llvm.lifetime.end.p0(i64 4, ptr %118) #11
  br label %4992

4992:                                             ; preds = %4991
  br label %4993

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

4994:                                             ; No predecessors!
  br label %4995

4995:                                             ; preds = %4994
  br label %4996

4996:                                             ; preds = %4995, %4936
  br label %4997

4997:                                             ; preds = %4996
  br label %4998

4998:                                             ; preds = %4997
  call void @llvm.lifetime.start.p0(i64 4, ptr %119) #11
  store i32 0, ptr %119, align 4, !tbaa !5
  br label %4999

4999:                                             ; preds = %4998
  %5000 = load i32, ptr @test_count, align 4, !tbaa !5
  %5001 = add nsw i32 %5000, 1
  store i32 %5001, ptr @test_count, align 4, !tbaa !5
  %5002 = load ptr, ptr %6, align 8, !tbaa !9
  %5003 = call i32 @s2n_connection_wipe(ptr noundef %5002)
  %5004 = icmp eq i32 %5003, -1
  br i1 %5004, label %5005, label %5058

5005:                                             ; preds = %4999
  br label %5006

5006:                                             ; preds = %5005
  br label %5007

5007:                                             ; preds = %5006
  call void @llvm.lifetime.start.p0(i64 4, ptr %120) #11
  %5008 = call ptr @__errno_location() #12
  %5009 = load i32, ptr %5008, align 4, !tbaa !5
  store i32 %5009, ptr %120, align 4, !tbaa !5
  %5010 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5011 = call i32 @s2n_print_stacktrace(ptr noundef %5010)
  %5012 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5013 = trunc i8 %5012 to i1
  br i1 %5013, label %5014, label %5036

5014:                                             ; preds = %5007
  %5015 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5016 = call i32 @fileno(ptr noundef %5015) #11
  %5017 = call i32 @isatty(i32 noundef %5016) #11
  %5018 = icmp ne i32 %5017, 0
  br i1 %5018, label %5019, label %5036

5019:                                             ; preds = %5014
  %5020 = load i32, ptr %120, align 4, !tbaa !5
  %5021 = call ptr @__errno_location() #12
  store i32 %5020, ptr %5021, align 4, !tbaa !5
  %5022 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5023 = load i32, ptr @test_count, align 4, !tbaa !5
  %5024 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5025 = load i32, ptr %5024, align 4, !tbaa !5
  %5026 = call ptr @s2n_strerror(i32 noundef %5025, ptr noundef @.str.3)
  %5027 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5028 = load i32, ptr %5027, align 4, !tbaa !5
  %5029 = call ptr @s2n_strerror_debug(i32 noundef %5028, ptr noundef @.str.3)
  %5030 = call ptr @__errno_location() #12
  %5031 = load i32, ptr %5030, align 4, !tbaa !5
  %5032 = call ptr @strerror(i32 noundef %5031) #11
  %5033 = call ptr @__errno_location() #12
  %5034 = load i32, ptr %5033, align 4, !tbaa !5
  %5035 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5022, ptr noundef @.str, i32 noundef %5023, ptr noundef @.str.21, ptr noundef @.str.2, i32 noundef 250, ptr noundef %5026, ptr noundef %5029, ptr noundef %5032, i32 noundef %5034) #11
  br label %5053

5036:                                             ; preds = %5014, %5007
  %5037 = load i32, ptr %120, align 4, !tbaa !5
  %5038 = call ptr @__errno_location() #12
  store i32 %5037, ptr %5038, align 4, !tbaa !5
  %5039 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5040 = load i32, ptr @test_count, align 4, !tbaa !5
  %5041 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5042 = load i32, ptr %5041, align 4, !tbaa !5
  %5043 = call ptr @s2n_strerror(i32 noundef %5042, ptr noundef @.str.3)
  %5044 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5045 = load i32, ptr %5044, align 4, !tbaa !5
  %5046 = call ptr @s2n_strerror_debug(i32 noundef %5045, ptr noundef @.str.3)
  %5047 = call ptr @__errno_location() #12
  %5048 = load i32, ptr %5047, align 4, !tbaa !5
  %5049 = call ptr @strerror(i32 noundef %5048) #11
  %5050 = call ptr @__errno_location() #12
  %5051 = load i32, ptr %5050, align 4, !tbaa !5
  %5052 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5039, ptr noundef @.str.4, i32 noundef %5040, ptr noundef @.str.21, ptr noundef @.str.2, i32 noundef 250, ptr noundef %5043, ptr noundef %5046, ptr noundef %5049, i32 noundef %5051) #11
  br label %5053

5053:                                             ; preds = %5036, %5019
  call void @llvm.lifetime.end.p0(i64 4, ptr %120) #11
  br label %5054

5054:                                             ; preds = %5053
  br label %5055

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

5056:                                             ; No predecessors!
  br label %5057

5057:                                             ; preds = %5056
  br label %5058

5058:                                             ; preds = %5057, %4999
  br label %5059

5059:                                             ; preds = %5058
  br label %5060

5060:                                             ; preds = %5059
  br label %5061

5061:                                             ; preds = %5060
  %5062 = load i32, ptr @test_count, align 4, !tbaa !5
  %5063 = add nsw i32 %5062, 1
  store i32 %5063, ptr @test_count, align 4, !tbaa !5
  %5064 = load ptr, ptr %6, align 8, !tbaa !9
  %5065 = getelementptr inbounds %struct.s2n_connection, ptr %5064, i32 0, i32 26
  %5066 = load ptr, ptr %5065, align 8, !tbaa !17
  %5067 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %5066, i32 0, i32 0
  %5068 = load ptr, ptr %5067, align 8, !tbaa !46
  %5069 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %5068, i32 0, i32 6
  %5070 = load ptr, ptr %5069, align 8, !tbaa !51
  %5071 = getelementptr inbounds %struct.s2n_record_algorithm, ptr %5070, i32 0, i32 0
  %5072 = load ptr, ptr %5071, align 8, !tbaa !54
  %5073 = getelementptr inbounds %struct.s2n_cipher, ptr %5072, i32 0, i32 6
  %5074 = load ptr, ptr %5073, align 8, !tbaa !56
  %5075 = load ptr, ptr %6, align 8, !tbaa !9
  %5076 = getelementptr inbounds %struct.s2n_connection, ptr %5075, i32 0, i32 26
  %5077 = load ptr, ptr %5076, align 8, !tbaa !17
  %5078 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %5077, i32 0, i32 2
  %5079 = call i32 %5074(ptr noundef %5078, ptr noundef %12)
  %5080 = getelementptr inbounds %struct.s2n_result, ptr %121, i32 0, i32 0
  store i32 %5079, ptr %5080, align 4
  %5081 = getelementptr inbounds %struct.s2n_result, ptr %121, i32 0, i32 0
  %5082 = load i32, ptr %5081, align 4
  %5083 = call zeroext i1 @s2n_result_is_ok(i32 %5082)
  br i1 %5083, label %5137, label %5084

5084:                                             ; preds = %5061
  br label %5085

5085:                                             ; preds = %5084
  br label %5086

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

5093:                                             ; preds = %5086
  %5094 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5095 = call i32 @fileno(ptr noundef %5094) #11
  %5096 = call i32 @isatty(i32 noundef %5095) #11
  %5097 = icmp ne i32 %5096, 0
  br i1 %5097, label %5098, label %5115

5098:                                             ; preds = %5093
  %5099 = load i32, ptr %122, align 4, !tbaa !5
  %5100 = call ptr @__errno_location() #12
  store i32 %5099, ptr %5100, align 4, !tbaa !5
  %5101 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5102 = load i32, ptr @test_count, align 4, !tbaa !5
  %5103 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5104 = load i32, ptr %5103, align 4, !tbaa !5
  %5105 = call ptr @s2n_strerror(i32 noundef %5104, ptr noundef @.str.3)
  %5106 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5107 = load i32, ptr %5106, align 4, !tbaa !5
  %5108 = call ptr @s2n_strerror_debug(i32 noundef %5107, ptr noundef @.str.3)
  %5109 = call ptr @__errno_location() #12
  %5110 = load i32, ptr %5109, align 4, !tbaa !5
  %5111 = call ptr @strerror(i32 noundef %5110) #11
  %5112 = call ptr @__errno_location() #12
  %5113 = load i32, ptr %5112, align 4, !tbaa !5
  %5114 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5101, ptr noundef @.str, i32 noundef %5102, ptr noundef @.str.22, ptr noundef @.str.2, i32 noundef 252, ptr noundef %5105, ptr noundef %5108, ptr noundef %5111, i32 noundef %5113) #11
  br label %5132

5115:                                             ; preds = %5093, %5086
  %5116 = load i32, ptr %122, align 4, !tbaa !5
  %5117 = call ptr @__errno_location() #12
  store i32 %5116, ptr %5117, align 4, !tbaa !5
  %5118 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5119 = load i32, ptr @test_count, align 4, !tbaa !5
  %5120 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5121 = load i32, ptr %5120, align 4, !tbaa !5
  %5122 = call ptr @s2n_strerror(i32 noundef %5121, ptr noundef @.str.3)
  %5123 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5124 = load i32, ptr %5123, align 4, !tbaa !5
  %5125 = call ptr @s2n_strerror_debug(i32 noundef %5124, ptr noundef @.str.3)
  %5126 = call ptr @__errno_location() #12
  %5127 = load i32, ptr %5126, align 4, !tbaa !5
  %5128 = call ptr @strerror(i32 noundef %5127) #11
  %5129 = call ptr @__errno_location() #12
  %5130 = load i32, ptr %5129, align 4, !tbaa !5
  %5131 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5118, ptr noundef @.str.4, i32 noundef %5119, ptr noundef @.str.22, ptr noundef @.str.2, i32 noundef 252, ptr noundef %5122, ptr noundef %5125, ptr noundef %5128, i32 noundef %5130) #11
  br label %5132

5132:                                             ; preds = %5115, %5098
  call void @llvm.lifetime.end.p0(i64 4, ptr %122) #11
  br label %5133

5133:                                             ; preds = %5132
  br label %5134

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

5135:                                             ; No predecessors!
  br label %5136

5136:                                             ; preds = %5135
  br label %5137

5137:                                             ; preds = %5136, %5061
  br label %5138

5138:                                             ; preds = %5137
  br label %5139

5139:                                             ; preds = %5138
  br label %5140

5140:                                             ; preds = %5139
  %5141 = load i32, ptr @test_count, align 4, !tbaa !5
  %5142 = add nsw i32 %5141, 1
  store i32 %5142, ptr @test_count, align 4, !tbaa !5
  %5143 = load ptr, ptr %6, align 8, !tbaa !9
  %5144 = getelementptr inbounds %struct.s2n_connection, ptr %5143, i32 0, i32 26
  %5145 = load ptr, ptr %5144, align 8, !tbaa !17
  %5146 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %5145, i32 0, i32 0
  %5147 = load ptr, ptr %5146, align 8, !tbaa !46
  %5148 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %5147, i32 0, i32 6
  %5149 = load ptr, ptr %5148, align 8, !tbaa !51
  %5150 = getelementptr inbounds %struct.s2n_record_algorithm, ptr %5149, i32 0, i32 0
  %5151 = load ptr, ptr %5150, align 8, !tbaa !54
  %5152 = getelementptr inbounds %struct.s2n_cipher, ptr %5151, i32 0, i32 5
  %5153 = load ptr, ptr %5152, align 8, !tbaa !57
  %5154 = load ptr, ptr %6, align 8, !tbaa !9
  %5155 = getelementptr inbounds %struct.s2n_connection, ptr %5154, i32 0, i32 26
  %5156 = load ptr, ptr %5155, align 8, !tbaa !17
  %5157 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %5156, i32 0, i32 1
  %5158 = call i32 %5153(ptr noundef %5157, ptr noundef %12)
  %5159 = getelementptr inbounds %struct.s2n_result, ptr %123, i32 0, i32 0
  store i32 %5158, ptr %5159, align 4
  %5160 = getelementptr inbounds %struct.s2n_result, ptr %123, i32 0, i32 0
  %5161 = load i32, ptr %5160, align 4
  %5162 = call zeroext i1 @s2n_result_is_ok(i32 %5161)
  br i1 %5162, label %5216, label %5163

5163:                                             ; preds = %5140
  br label %5164

5164:                                             ; preds = %5163
  br label %5165

5165:                                             ; preds = %5164
  call void @llvm.lifetime.start.p0(i64 4, ptr %124) #11
  %5166 = call ptr @__errno_location() #12
  %5167 = load i32, ptr %5166, align 4, !tbaa !5
  store i32 %5167, ptr %124, align 4, !tbaa !5
  %5168 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5169 = call i32 @s2n_print_stacktrace(ptr noundef %5168)
  %5170 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5171 = trunc i8 %5170 to i1
  br i1 %5171, label %5172, label %5194

5172:                                             ; preds = %5165
  %5173 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5174 = call i32 @fileno(ptr noundef %5173) #11
  %5175 = call i32 @isatty(i32 noundef %5174) #11
  %5176 = icmp ne i32 %5175, 0
  br i1 %5176, label %5177, label %5194

5177:                                             ; preds = %5172
  %5178 = load i32, ptr %124, align 4, !tbaa !5
  %5179 = call ptr @__errno_location() #12
  store i32 %5178, ptr %5179, align 4, !tbaa !5
  %5180 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5181 = load i32, ptr @test_count, align 4, !tbaa !5
  %5182 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5183 = load i32, ptr %5182, align 4, !tbaa !5
  %5184 = call ptr @s2n_strerror(i32 noundef %5183, ptr noundef @.str.3)
  %5185 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5186 = load i32, ptr %5185, align 4, !tbaa !5
  %5187 = call ptr @s2n_strerror_debug(i32 noundef %5186, ptr noundef @.str.3)
  %5188 = call ptr @__errno_location() #12
  %5189 = load i32, ptr %5188, align 4, !tbaa !5
  %5190 = call ptr @strerror(i32 noundef %5189) #11
  %5191 = call ptr @__errno_location() #12
  %5192 = load i32, ptr %5191, align 4, !tbaa !5
  %5193 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5180, ptr noundef @.str, i32 noundef %5181, ptr noundef @.str.23, ptr noundef @.str.2, i32 noundef 253, ptr noundef %5184, ptr noundef %5187, ptr noundef %5190, i32 noundef %5192) #11
  br label %5211

5194:                                             ; preds = %5172, %5165
  %5195 = load i32, ptr %124, align 4, !tbaa !5
  %5196 = call ptr @__errno_location() #12
  store i32 %5195, ptr %5196, align 4, !tbaa !5
  %5197 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5198 = load i32, ptr @test_count, align 4, !tbaa !5
  %5199 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5200 = load i32, ptr %5199, align 4, !tbaa !5
  %5201 = call ptr @s2n_strerror(i32 noundef %5200, ptr noundef @.str.3)
  %5202 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5203 = load i32, ptr %5202, align 4, !tbaa !5
  %5204 = call ptr @s2n_strerror_debug(i32 noundef %5203, ptr noundef @.str.3)
  %5205 = call ptr @__errno_location() #12
  %5206 = load i32, ptr %5205, align 4, !tbaa !5
  %5207 = call ptr @strerror(i32 noundef %5206) #11
  %5208 = call ptr @__errno_location() #12
  %5209 = load i32, ptr %5208, align 4, !tbaa !5
  %5210 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5197, ptr noundef @.str.4, i32 noundef %5198, ptr noundef @.str.23, ptr noundef @.str.2, i32 noundef 253, ptr noundef %5201, ptr noundef %5204, ptr noundef %5207, i32 noundef %5209) #11
  br label %5211

5211:                                             ; preds = %5194, %5177
  call void @llvm.lifetime.end.p0(i64 4, ptr %124) #11
  br label %5212

5212:                                             ; preds = %5211
  br label %5213

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

5214:                                             ; No predecessors!
  br label %5215

5215:                                             ; preds = %5214
  br label %5216

5216:                                             ; preds = %5215, %5140
  br label %5217

5217:                                             ; preds = %5216
  br label %5218

5218:                                             ; preds = %5217
  br label %5219

5219:                                             ; preds = %5218
  %5220 = load i32, ptr @test_count, align 4, !tbaa !5
  %5221 = add nsw i32 %5220, 1
  store i32 %5221, ptr @test_count, align 4, !tbaa !5
  %5222 = load ptr, ptr %6, align 8, !tbaa !9
  %5223 = getelementptr inbounds %struct.s2n_connection, ptr %5222, i32 0, i32 26
  %5224 = load ptr, ptr %5223, align 8, !tbaa !17
  %5225 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %5224, i32 0, i32 0
  %5226 = load ptr, ptr %5225, align 8, !tbaa !46
  %5227 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %5226, i32 0, i32 6
  %5228 = load ptr, ptr %5227, align 8, !tbaa !51
  %5229 = getelementptr inbounds %struct.s2n_record_algorithm, ptr %5228, i32 0, i32 0
  %5230 = load ptr, ptr %5229, align 8, !tbaa !54
  %5231 = getelementptr inbounds %struct.s2n_cipher, ptr %5230, i32 0, i32 1
  %5232 = getelementptr inbounds %struct.s2n_composite_cipher, ptr %5231, i32 0, i32 5
  %5233 = load ptr, ptr %5232, align 8, !tbaa !58
  %5234 = load ptr, ptr %6, align 8, !tbaa !9
  %5235 = getelementptr inbounds %struct.s2n_connection, ptr %5234, i32 0, i32 26
  %5236 = load ptr, ptr %5235, align 8, !tbaa !17
  %5237 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %5236, i32 0, i32 2
  %5238 = getelementptr inbounds [32 x i8], ptr %9, i64 0, i64 0
  %5239 = call i32 %5233(ptr noundef %5237, ptr noundef %5238, i32 noundef 32)
  %5240 = icmp eq i32 %5239, -1
  br i1 %5240, label %5241, label %5294

5241:                                             ; preds = %5219
  br label %5242

5242:                                             ; preds = %5241
  br label %5243

5243:                                             ; preds = %5242
  call void @llvm.lifetime.start.p0(i64 4, ptr %125) #11
  %5244 = call ptr @__errno_location() #12
  %5245 = load i32, ptr %5244, align 4, !tbaa !5
  store i32 %5245, ptr %125, align 4, !tbaa !5
  %5246 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5247 = call i32 @s2n_print_stacktrace(ptr noundef %5246)
  %5248 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5249 = trunc i8 %5248 to i1
  br i1 %5249, label %5250, label %5272

5250:                                             ; preds = %5243
  %5251 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5252 = call i32 @fileno(ptr noundef %5251) #11
  %5253 = call i32 @isatty(i32 noundef %5252) #11
  %5254 = icmp ne i32 %5253, 0
  br i1 %5254, label %5255, label %5272

5255:                                             ; preds = %5250
  %5256 = load i32, ptr %125, align 4, !tbaa !5
  %5257 = call ptr @__errno_location() #12
  store i32 %5256, ptr %5257, align 4, !tbaa !5
  %5258 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5259 = load i32, ptr @test_count, align 4, !tbaa !5
  %5260 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5261 = load i32, ptr %5260, align 4, !tbaa !5
  %5262 = call ptr @s2n_strerror(i32 noundef %5261, ptr noundef @.str.3)
  %5263 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5264 = load i32, ptr %5263, align 4, !tbaa !5
  %5265 = call ptr @s2n_strerror_debug(i32 noundef %5264, ptr noundef @.str.3)
  %5266 = call ptr @__errno_location() #12
  %5267 = load i32, ptr %5266, align 4, !tbaa !5
  %5268 = call ptr @strerror(i32 noundef %5267) #11
  %5269 = call ptr @__errno_location() #12
  %5270 = load i32, ptr %5269, align 4, !tbaa !5
  %5271 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5258, ptr noundef @.str, i32 noundef %5259, ptr noundef @.str.48, ptr noundef @.str.2, i32 noundef 254, ptr noundef %5262, ptr noundef %5265, ptr noundef %5268, i32 noundef %5270) #11
  br label %5289

5272:                                             ; preds = %5250, %5243
  %5273 = load i32, ptr %125, align 4, !tbaa !5
  %5274 = call ptr @__errno_location() #12
  store i32 %5273, ptr %5274, align 4, !tbaa !5
  %5275 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5276 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %5278, ptr noundef @.str.3)
  %5280 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5281 = load i32, ptr %5280, align 4, !tbaa !5
  %5282 = call ptr @s2n_strerror_debug(i32 noundef %5281, ptr noundef @.str.3)
  %5283 = call ptr @__errno_location() #12
  %5284 = load i32, ptr %5283, align 4, !tbaa !5
  %5285 = call ptr @strerror(i32 noundef %5284) #11
  %5286 = call ptr @__errno_location() #12
  %5287 = load i32, ptr %5286, align 4, !tbaa !5
  %5288 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5275, ptr noundef @.str.4, i32 noundef %5276, ptr noundef @.str.48, ptr noundef @.str.2, i32 noundef 254, ptr noundef %5279, ptr noundef %5282, ptr noundef %5285, i32 noundef %5287) #11
  br label %5289

5289:                                             ; preds = %5272, %5255
  call void @llvm.lifetime.end.p0(i64 4, ptr %125) #11
  br label %5290

5290:                                             ; preds = %5289
  br label %5291

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

5292:                                             ; No predecessors!
  br label %5293

5293:                                             ; preds = %5292
  br label %5294

5294:                                             ; preds = %5293, %5219
  br label %5295

5295:                                             ; preds = %5294
  br label %5296

5296:                                             ; preds = %5295
  br label %5297

5297:                                             ; preds = %5296
  %5298 = load i32, ptr @test_count, align 4, !tbaa !5
  %5299 = add nsw i32 %5298, 1
  store i32 %5299, ptr @test_count, align 4, !tbaa !5
  %5300 = load ptr, ptr %6, align 8, !tbaa !9
  %5301 = getelementptr inbounds %struct.s2n_connection, ptr %5300, i32 0, i32 26
  %5302 = load ptr, ptr %5301, align 8, !tbaa !17
  %5303 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %5302, i32 0, i32 0
  %5304 = load ptr, ptr %5303, align 8, !tbaa !46
  %5305 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %5304, i32 0, i32 6
  %5306 = load ptr, ptr %5305, align 8, !tbaa !51
  %5307 = getelementptr inbounds %struct.s2n_record_algorithm, ptr %5306, i32 0, i32 0
  %5308 = load ptr, ptr %5307, align 8, !tbaa !54
  %5309 = getelementptr inbounds %struct.s2n_cipher, ptr %5308, i32 0, i32 1
  %5310 = getelementptr inbounds %struct.s2n_composite_cipher, ptr %5309, i32 0, i32 5
  %5311 = load ptr, ptr %5310, align 8, !tbaa !58
  %5312 = load ptr, ptr %6, align 8, !tbaa !9
  %5313 = getelementptr inbounds %struct.s2n_connection, ptr %5312, i32 0, i32 26
  %5314 = load ptr, ptr %5313, align 8, !tbaa !17
  %5315 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %5314, i32 0, i32 1
  %5316 = getelementptr inbounds [32 x i8], ptr %9, i64 0, i64 0
  %5317 = call i32 %5311(ptr noundef %5315, ptr noundef %5316, i32 noundef 32)
  %5318 = icmp eq i32 %5317, -1
  br i1 %5318, label %5319, label %5372

5319:                                             ; preds = %5297
  br label %5320

5320:                                             ; preds = %5319
  br label %5321

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

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

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

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

5367:                                             ; preds = %5350, %5333
  call void @llvm.lifetime.end.p0(i64 4, ptr %126) #11
  br label %5368

5368:                                             ; preds = %5367
  br label %5369

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

5370:                                             ; No predecessors!
  br label %5371

5371:                                             ; preds = %5370
  br label %5372

5372:                                             ; preds = %5371, %5297
  br label %5373

5373:                                             ; preds = %5372
  br label %5374

5374:                                             ; preds = %5373
  br label %5375

5375:                                             ; preds = %5374
  %5376 = load i32, ptr @test_count, align 4, !tbaa !5
  %5377 = add nsw i32 %5376, 1
  store i32 %5377, ptr @test_count, align 4, !tbaa !5
  %5378 = load ptr, ptr %6, align 8, !tbaa !9
  %5379 = getelementptr inbounds %struct.s2n_connection, ptr %5378, i32 0, i32 41
  %5380 = call i32 @s2n_stuffer_wipe(ptr noundef %5379)
  %5381 = icmp eq i32 %5380, -1
  br i1 %5381, label %5382, label %5435

5382:                                             ; preds = %5375
  br label %5383

5383:                                             ; preds = %5382
  br label %5384

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

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

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

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

5430:                                             ; preds = %5413, %5396
  call void @llvm.lifetime.end.p0(i64 4, ptr %127) #11
  br label %5431

5431:                                             ; preds = %5430
  br label %5432

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

5433:                                             ; No predecessors!
  br label %5434

5434:                                             ; preds = %5433
  br label %5435

5435:                                             ; preds = %5434, %5375
  br label %5436

5436:                                             ; preds = %5435
  br label %5437

5437:                                             ; preds = %5436
  %5438 = load i32, ptr %115, align 4, !tbaa !5
  %5439 = sext i32 %5438 to i64
  %5440 = getelementptr inbounds [3 x i8], ptr %30, i64 0, i64 %5439
  %5441 = load i8, ptr %5440, align 1, !tbaa !58
  %5442 = load ptr, ptr %6, align 8, !tbaa !9
  %5443 = getelementptr inbounds %struct.s2n_connection, ptr %5442, i32 0, i32 23
  store i8 %5441, ptr %5443, align 4, !tbaa !59
  call void @llvm.lifetime.start.p0(i64 4, ptr %128) #11
  store i32 0, ptr %128, align 4, !tbaa !5
  %5444 = load ptr, ptr %6, align 8, !tbaa !9
  %5445 = getelementptr inbounds %struct.s2n_connection, ptr %5444, i32 0, i32 23
  %5446 = load i8, ptr %5445, align 4, !tbaa !59
  %5447 = zext i8 %5446 to i32
  %5448 = icmp sgt i32 %5447, 31
  br i1 %5448, label %5449, label %5450

5449:                                             ; preds = %5437
  store i32 16, ptr %128, align 4, !tbaa !5
  br label %5451

5450:                                             ; preds = %5437
  store i32 0, ptr %128, align 4, !tbaa !5
  br label %5451

5451:                                             ; preds = %5450, %5449
  call void @llvm.lifetime.start.p0(i64 4, ptr %129) #11
  %5452 = load ptr, ptr %6, align 8, !tbaa !9
  %5453 = call i32 @s2n_record_write(ptr noundef %5452, i8 noundef zeroext 23, ptr noundef %117)
  %5454 = getelementptr inbounds %struct.s2n_result, ptr %129, i32 0, i32 0
  store i32 %5453, ptr %5454, align 4
  %5455 = load i32, ptr %116, align 4, !tbaa !5
  %5456 = icmp sle i32 %5455, 8087
  br i1 %5456, label %5457, label %5521

5457:                                             ; preds = %5451
  br label %5458

5458:                                             ; preds = %5457
  %5459 = load i32, ptr @test_count, align 4, !tbaa !5
  %5460 = add nsw i32 %5459, 1
  store i32 %5460, ptr @test_count, align 4, !tbaa !5
  %5461 = getelementptr inbounds %struct.s2n_result, ptr %129, i32 0, i32 0
  %5462 = load i32, ptr %5461, align 4
  %5463 = call zeroext i1 @s2n_result_is_ok(i32 %5462)
  br i1 %5463, label %5517, label %5464

5464:                                             ; preds = %5458
  br label %5465

5465:                                             ; preds = %5464
  br label %5466

5466:                                             ; preds = %5465
  call void @llvm.lifetime.start.p0(i64 4, ptr %130) #11
  %5467 = call ptr @__errno_location() #12
  %5468 = load i32, ptr %5467, align 4, !tbaa !5
  store i32 %5468, ptr %130, align 4, !tbaa !5
  %5469 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5470 = call i32 @s2n_print_stacktrace(ptr noundef %5469)
  %5471 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5472 = trunc i8 %5471 to i1
  br i1 %5472, label %5473, label %5495

5473:                                             ; preds = %5466
  %5474 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5475 = call i32 @fileno(ptr noundef %5474) #11
  %5476 = call i32 @isatty(i32 noundef %5475) #11
  %5477 = icmp ne i32 %5476, 0
  br i1 %5477, label %5478, label %5495

5478:                                             ; preds = %5473
  %5479 = load i32, ptr %130, align 4, !tbaa !5
  %5480 = call ptr @__errno_location() #12
  store i32 %5479, ptr %5480, align 4, !tbaa !5
  %5481 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5482 = load i32, ptr @test_count, align 4, !tbaa !5
  %5483 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5484 = load i32, ptr %5483, align 4, !tbaa !5
  %5485 = call ptr @s2n_strerror(i32 noundef %5484, ptr noundef @.str.3)
  %5486 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5487 = load i32, ptr %5486, align 4, !tbaa !5
  %5488 = call ptr @s2n_strerror_debug(i32 noundef %5487, ptr noundef @.str.3)
  %5489 = call ptr @__errno_location() #12
  %5490 = load i32, ptr %5489, align 4, !tbaa !5
  %5491 = call ptr @strerror(i32 noundef %5490) #11
  %5492 = call ptr @__errno_location() #12
  %5493 = load i32, ptr %5492, align 4, !tbaa !5
  %5494 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5481, ptr noundef @.str, i32 noundef %5482, ptr noundef @.str.27, ptr noundef @.str.2, i32 noundef 269, ptr noundef %5485, ptr noundef %5488, ptr noundef %5491, i32 noundef %5493) #11
  br label %5512

5495:                                             ; preds = %5473, %5466
  %5496 = load i32, ptr %130, align 4, !tbaa !5
  %5497 = call ptr @__errno_location() #12
  store i32 %5496, ptr %5497, align 4, !tbaa !5
  %5498 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5499 = load i32, ptr @test_count, align 4, !tbaa !5
  %5500 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5501 = load i32, ptr %5500, align 4, !tbaa !5
  %5502 = call ptr @s2n_strerror(i32 noundef %5501, ptr noundef @.str.3)
  %5503 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5504 = load i32, ptr %5503, align 4, !tbaa !5
  %5505 = call ptr @s2n_strerror_debug(i32 noundef %5504, ptr noundef @.str.3)
  %5506 = call ptr @__errno_location() #12
  %5507 = load i32, ptr %5506, align 4, !tbaa !5
  %5508 = call ptr @strerror(i32 noundef %5507) #11
  %5509 = call ptr @__errno_location() #12
  %5510 = load i32, ptr %5509, align 4, !tbaa !5
  %5511 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5498, ptr noundef @.str.4, i32 noundef %5499, ptr noundef @.str.27, ptr noundef @.str.2, i32 noundef 269, ptr noundef %5502, ptr noundef %5505, ptr noundef %5508, i32 noundef %5510) #11
  br label %5512

5512:                                             ; preds = %5495, %5478
  call void @llvm.lifetime.end.p0(i64 4, ptr %130) #11
  br label %5513

5513:                                             ; preds = %5512
  br label %5514

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

5515:                                             ; No predecessors!
  br label %5516

5516:                                             ; preds = %5515
  br label %5517

5517:                                             ; preds = %5516, %5458
  br label %5518

5518:                                             ; preds = %5517
  br label %5519

5519:                                             ; preds = %5518
  %5520 = load i32, ptr %116, align 4, !tbaa !5
  store i32 %5520, ptr %119, align 4, !tbaa !5
  br label %5720

5521:                                             ; preds = %5451
  br label %5522

5522:                                             ; preds = %5521
  br label %5523

5523:                                             ; preds = %5522
  br label %5524

5524:                                             ; preds = %5523
  %5525 = load i32, ptr @test_count, align 4, !tbaa !5
  %5526 = add nsw i32 %5525, 1
  store i32 %5526, ptr @test_count, align 4, !tbaa !5
  %5527 = getelementptr inbounds %struct.s2n_result, ptr %129, i32 0, i32 0
  %5528 = load i32, ptr %5527, align 4
  %5529 = call zeroext i1 @s2n_result_is_error(i32 %5528)
  br i1 %5529, label %5583, label %5530

5530:                                             ; preds = %5524
  br label %5531

5531:                                             ; preds = %5530
  br label %5532

5532:                                             ; preds = %5531
  call void @llvm.lifetime.start.p0(i64 4, ptr %131) #11
  %5533 = call ptr @__errno_location() #12
  %5534 = load i32, ptr %5533, align 4, !tbaa !5
  store i32 %5534, ptr %131, align 4, !tbaa !5
  %5535 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5536 = call i32 @s2n_print_stacktrace(ptr noundef %5535)
  %5537 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5538 = trunc i8 %5537 to i1
  br i1 %5538, label %5539, label %5561

5539:                                             ; preds = %5532
  %5540 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5541 = call i32 @fileno(ptr noundef %5540) #11
  %5542 = call i32 @isatty(i32 noundef %5541) #11
  %5543 = icmp ne i32 %5542, 0
  br i1 %5543, label %5544, label %5561

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

5561:                                             ; preds = %5539, %5532
  %5562 = load i32, ptr %131, align 4, !tbaa !5
  %5563 = call ptr @__errno_location() #12
  store i32 %5562, ptr %5563, align 4, !tbaa !5
  %5564 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5565 = load i32, ptr @test_count, align 4, !tbaa !5
  %5566 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5567 = load i32, ptr %5566, align 4, !tbaa !5
  %5568 = call ptr @s2n_strerror(i32 noundef %5567, ptr noundef @.str.3)
  %5569 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5570 = load i32, ptr %5569, align 4, !tbaa !5
  %5571 = call ptr @s2n_strerror_debug(i32 noundef %5570, ptr noundef @.str.3)
  %5572 = call ptr @__errno_location() #12
  %5573 = load i32, ptr %5572, align 4, !tbaa !5
  %5574 = call ptr @strerror(i32 noundef %5573) #11
  %5575 = call ptr @__errno_location() #12
  %5576 = load i32, ptr %5575, align 4, !tbaa !5
  %5577 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5564, ptr noundef @.str.4, i32 noundef %5565, ptr noundef @.str.28, ptr noundef @.str.2, i32 noundef 272, ptr noundef %5568, ptr noundef %5571, ptr noundef %5574, i32 noundef %5576) #11
  br label %5578

5578:                                             ; preds = %5561, %5544
  call void @llvm.lifetime.end.p0(i64 4, ptr %131) #11
  br label %5579

5579:                                             ; preds = %5578
  br label %5580

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

5581:                                             ; No predecessors!
  br label %5582

5582:                                             ; preds = %5581
  br label %5583

5583:                                             ; preds = %5582, %5524
  br label %5584

5584:                                             ; preds = %5583
  br label %5585

5585:                                             ; preds = %5584
  br label %5586

5586:                                             ; preds = %5585
  %5587 = load i32, ptr @test_count, align 4, !tbaa !5
  %5588 = add nsw i32 %5587, 1
  store i32 %5588, ptr @test_count, align 4, !tbaa !5
  %5589 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5590 = load i32, ptr %5589, align 4, !tbaa !5
  %5591 = icmp eq i32 %5590, 335544390
  br i1 %5591, label %5645, label %5592

5592:                                             ; preds = %5586
  br label %5593

5593:                                             ; preds = %5592
  br label %5594

5594:                                             ; preds = %5593
  call void @llvm.lifetime.start.p0(i64 4, ptr %132) #11
  %5595 = call ptr @__errno_location() #12
  %5596 = load i32, ptr %5595, align 4, !tbaa !5
  store i32 %5596, ptr %132, align 4, !tbaa !5
  %5597 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5598 = call i32 @s2n_print_stacktrace(ptr noundef %5597)
  %5599 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5600 = trunc i8 %5599 to i1
  br i1 %5600, label %5601, label %5623

5601:                                             ; preds = %5594
  %5602 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5603 = call i32 @fileno(ptr noundef %5602) #11
  %5604 = call i32 @isatty(i32 noundef %5603) #11
  %5605 = icmp ne i32 %5604, 0
  br i1 %5605, label %5606, label %5623

5606:                                             ; preds = %5601
  %5607 = load i32, ptr %132, 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, i32 noundef %5610, ptr noundef @.str.29, ptr noundef @.str.2, i32 noundef 272, ptr noundef %5613, ptr noundef %5616, ptr noundef %5619, i32 noundef %5621) #11
  br label %5640

5623:                                             ; preds = %5601, %5594
  %5624 = load i32, ptr %132, align 4, !tbaa !5
  %5625 = call ptr @__errno_location() #12
  store i32 %5624, ptr %5625, align 4, !tbaa !5
  %5626 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5627 = load i32, ptr @test_count, align 4, !tbaa !5
  %5628 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5629 = load i32, ptr %5628, align 4, !tbaa !5
  %5630 = call ptr @s2n_strerror(i32 noundef %5629, ptr noundef @.str.3)
  %5631 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5632 = load i32, ptr %5631, align 4, !tbaa !5
  %5633 = call ptr @s2n_strerror_debug(i32 noundef %5632, ptr noundef @.str.3)
  %5634 = call ptr @__errno_location() #12
  %5635 = load i32, ptr %5634, align 4, !tbaa !5
  %5636 = call ptr @strerror(i32 noundef %5635) #11
  %5637 = call ptr @__errno_location() #12
  %5638 = load i32, ptr %5637, align 4, !tbaa !5
  %5639 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5626, ptr noundef @.str.4, i32 noundef %5627, ptr noundef @.str.29, ptr noundef @.str.2, i32 noundef 272, ptr noundef %5630, ptr noundef %5633, ptr noundef %5636, i32 noundef %5638) #11
  br label %5640

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

5641:                                             ; preds = %5640
  br label %5642

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

5643:                                             ; No predecessors!
  br label %5644

5644:                                             ; preds = %5643
  br label %5645

5645:                                             ; preds = %5644, %5586
  br label %5646

5646:                                             ; preds = %5645
  br label %5647

5647:                                             ; preds = %5646
  br label %5648

5648:                                             ; preds = %5647
  %5649 = load i32, ptr @test_count, align 4, !tbaa !5
  %5650 = add nsw i32 %5649, 1
  store i32 %5650, ptr @test_count, align 4, !tbaa !5
  %5651 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5652 = load i32, ptr %5651, align 4, !tbaa !5
  %5653 = call ptr @s2n_strerror_debug(i32 noundef %5652, ptr noundef @.str.3)
  %5654 = icmp eq ptr %5653, null
  br i1 %5654, label %5655, label %5708

5655:                                             ; preds = %5648
  br label %5656

5656:                                             ; preds = %5655
  br label %5657

5657:                                             ; preds = %5656
  call void @llvm.lifetime.start.p0(i64 4, ptr %133) #11
  %5658 = call ptr @__errno_location() #12
  %5659 = load i32, ptr %5658, align 4, !tbaa !5
  store i32 %5659, ptr %133, align 4, !tbaa !5
  %5660 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5661 = call i32 @s2n_print_stacktrace(ptr noundef %5660)
  %5662 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5663 = trunc i8 %5662 to i1
  br i1 %5663, label %5664, label %5686

5664:                                             ; preds = %5657
  %5665 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5666 = call i32 @fileno(ptr noundef %5665) #11
  %5667 = call i32 @isatty(i32 noundef %5666) #11
  %5668 = icmp ne i32 %5667, 0
  br i1 %5668, label %5669, label %5686

5669:                                             ; preds = %5664
  %5670 = load i32, ptr %133, 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, i32 noundef %5673, ptr noundef @.str.30, ptr noundef @.str.2, i32 noundef 272, ptr noundef %5676, ptr noundef %5679, ptr noundef %5682, i32 noundef %5684) #11
  br label %5703

5686:                                             ; preds = %5664, %5657
  %5687 = load i32, ptr %133, align 4, !tbaa !5
  %5688 = call ptr @__errno_location() #12
  store i32 %5687, ptr %5688, align 4, !tbaa !5
  %5689 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5690 = load i32, ptr @test_count, align 4, !tbaa !5
  %5691 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5692 = load i32, ptr %5691, align 4, !tbaa !5
  %5693 = call ptr @s2n_strerror(i32 noundef %5692, ptr noundef @.str.3)
  %5694 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5695 = load i32, ptr %5694, align 4, !tbaa !5
  %5696 = call ptr @s2n_strerror_debug(i32 noundef %5695, ptr noundef @.str.3)
  %5697 = call ptr @__errno_location() #12
  %5698 = load i32, ptr %5697, align 4, !tbaa !5
  %5699 = call ptr @strerror(i32 noundef %5698) #11
  %5700 = call ptr @__errno_location() #12
  %5701 = load i32, ptr %5700, align 4, !tbaa !5
  %5702 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5689, ptr noundef @.str.4, i32 noundef %5690, ptr noundef @.str.30, ptr noundef @.str.2, i32 noundef 272, ptr noundef %5693, ptr noundef %5696, ptr noundef %5699, i32 noundef %5701) #11
  br label %5703

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

5704:                                             ; preds = %5703
  br label %5705

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

5706:                                             ; No predecessors!
  br label %5707

5707:                                             ; preds = %5706
  br label %5708

5708:                                             ; preds = %5707, %5648
  br label %5709

5709:                                             ; preds = %5708
  br label %5710

5710:                                             ; preds = %5709
  br label %5711

5711:                                             ; preds = %5710
  br label %5712

5712:                                             ; preds = %5711
  br label %5713

5713:                                             ; preds = %5712
  %5714 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %5714, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %5715 = call ptr @__errno_location() #12
  store i32 0, ptr %5715, align 4, !tbaa !5
  br label %5716

5716:                                             ; preds = %5713
  br label %5717

5717:                                             ; preds = %5716
  br label %5718

5718:                                             ; preds = %5717
  br label %5719

5719:                                             ; preds = %5718
  store i32 8087, ptr %119, align 4, !tbaa !5
  br label %5720

5720:                                             ; preds = %5719, %5519
  call void @llvm.lifetime.start.p0(i64 2, ptr %134) #11
  %5721 = load i32, ptr %119, align 4, !tbaa !5
  %5722 = add nsw i32 %5721, 1
  %5723 = add nsw i32 %5722, 32
  %5724 = load i32, ptr %128, align 4, !tbaa !5
  %5725 = add nsw i32 %5723, %5724
  %5726 = trunc i32 %5725 to i16
  store i16 %5726, ptr %134, align 2, !tbaa !60
  %5727 = load i16, ptr %134, align 2, !tbaa !60
  %5728 = zext i16 %5727 to i32
  %5729 = srem i32 %5728, 16
  %5730 = icmp ne i32 %5729, 0
  br i1 %5730, label %5731, label %5740

5731:                                             ; preds = %5720
  %5732 = load i16, ptr %134, align 2, !tbaa !60
  %5733 = zext i16 %5732 to i32
  %5734 = srem i32 %5733, 16
  %5735 = sub nsw i32 16, %5734
  %5736 = load i16, ptr %134, align 2, !tbaa !60
  %5737 = zext i16 %5736 to i32
  %5738 = add nsw i32 %5737, %5735
  %5739 = trunc i32 %5738 to i16
  store i16 %5739, ptr %134, align 2, !tbaa !60
  br label %5740

5740:                                             ; preds = %5731, %5720
  br label %5741

5741:                                             ; preds = %5740
  %5742 = load i32, ptr @test_count, align 4, !tbaa !5
  %5743 = add nsw i32 %5742, 1
  store i32 %5743, ptr @test_count, align 4, !tbaa !5
  %5744 = load ptr, ptr %6, align 8, !tbaa !9
  %5745 = getelementptr inbounds %struct.s2n_connection, ptr %5744, i32 0, i32 41
  %5746 = getelementptr inbounds %struct.s2n_stuffer, ptr %5745, i32 0, i32 0
  %5747 = getelementptr inbounds %struct.s2n_blob, ptr %5746, i32 0, i32 0
  %5748 = load ptr, ptr %5747, align 8, !tbaa !61
  %5749 = getelementptr inbounds i8, ptr %5748, i64 0
  %5750 = load i8, ptr %5749, align 1, !tbaa !58
  %5751 = zext i8 %5750 to i32
  %5752 = icmp eq i32 %5751, 23
  br i1 %5752, label %5806, label %5753

5753:                                             ; preds = %5741
  br label %5754

5754:                                             ; preds = %5753
  br label %5755

5755:                                             ; preds = %5754
  call void @llvm.lifetime.start.p0(i64 4, ptr %135) #11
  %5756 = call ptr @__errno_location() #12
  %5757 = load i32, ptr %5756, align 4, !tbaa !5
  store i32 %5757, ptr %135, align 4, !tbaa !5
  %5758 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5759 = call i32 @s2n_print_stacktrace(ptr noundef %5758)
  %5760 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5761 = trunc i8 %5760 to i1
  br i1 %5761, label %5762, label %5784

5762:                                             ; preds = %5755
  %5763 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5764 = call i32 @fileno(ptr noundef %5763) #11
  %5765 = call i32 @isatty(i32 noundef %5764) #11
  %5766 = icmp ne i32 %5765, 0
  br i1 %5766, label %5767, label %5784

5767:                                             ; preds = %5762
  %5768 = load i32, ptr %135, align 4, !tbaa !5
  %5769 = call ptr @__errno_location() #12
  store i32 %5768, ptr %5769, align 4, !tbaa !5
  %5770 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5771 = load i32, ptr @test_count, align 4, !tbaa !5
  %5772 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5773 = load i32, ptr %5772, align 4, !tbaa !5
  %5774 = call ptr @s2n_strerror(i32 noundef %5773, ptr noundef @.str.3)
  %5775 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5776 = load i32, ptr %5775, align 4, !tbaa !5
  %5777 = call ptr @s2n_strerror_debug(i32 noundef %5776, ptr noundef @.str.3)
  %5778 = call ptr @__errno_location() #12
  %5779 = load i32, ptr %5778, align 4, !tbaa !5
  %5780 = call ptr @strerror(i32 noundef %5779) #11
  %5781 = call ptr @__errno_location() #12
  %5782 = load i32, ptr %5781, align 4, !tbaa !5
  %5783 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5770, ptr noundef @.str, i32 noundef %5771, ptr noundef @.str.31, ptr noundef @.str.2, i32 noundef 280, ptr noundef %5774, ptr noundef %5777, ptr noundef %5780, i32 noundef %5782) #11
  br label %5801

5784:                                             ; preds = %5762, %5755
  %5785 = load i32, ptr %135, align 4, !tbaa !5
  %5786 = call ptr @__errno_location() #12
  store i32 %5785, ptr %5786, align 4, !tbaa !5
  %5787 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5788 = load i32, ptr @test_count, align 4, !tbaa !5
  %5789 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5790 = load i32, ptr %5789, align 4, !tbaa !5
  %5791 = call ptr @s2n_strerror(i32 noundef %5790, ptr noundef @.str.3)
  %5792 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5793 = load i32, ptr %5792, align 4, !tbaa !5
  %5794 = call ptr @s2n_strerror_debug(i32 noundef %5793, ptr noundef @.str.3)
  %5795 = call ptr @__errno_location() #12
  %5796 = load i32, ptr %5795, align 4, !tbaa !5
  %5797 = call ptr @strerror(i32 noundef %5796) #11
  %5798 = call ptr @__errno_location() #12
  %5799 = load i32, ptr %5798, align 4, !tbaa !5
  %5800 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5787, ptr noundef @.str.4, i32 noundef %5788, ptr noundef @.str.31, ptr noundef @.str.2, i32 noundef 280, ptr noundef %5791, ptr noundef %5794, ptr noundef %5797, i32 noundef %5799) #11
  br label %5801

5801:                                             ; preds = %5784, %5767
  call void @llvm.lifetime.end.p0(i64 4, ptr %135) #11
  br label %5802

5802:                                             ; preds = %5801
  br label %5803

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

5804:                                             ; No predecessors!
  br label %5805

5805:                                             ; preds = %5804
  br label %5806

5806:                                             ; preds = %5805, %5741
  br label %5807

5807:                                             ; preds = %5806
  br label %5808

5808:                                             ; preds = %5807
  call void @llvm.lifetime.start.p0(i64 1, ptr %136) #11
  %5809 = load ptr, ptr %6, align 8, !tbaa !9
  %5810 = getelementptr inbounds %struct.s2n_connection, ptr %5809, i32 0, i32 41
  %5811 = getelementptr inbounds %struct.s2n_stuffer, ptr %5810, i32 0, i32 0
  %5812 = getelementptr inbounds %struct.s2n_blob, ptr %5811, i32 0, i32 0
  %5813 = load ptr, ptr %5812, align 8, !tbaa !61
  %5814 = getelementptr inbounds i8, ptr %5813, i64 1
  %5815 = load i8, ptr %5814, align 1, !tbaa !58
  %5816 = zext i8 %5815 to i32
  %5817 = mul nsw i32 %5816, 10
  %5818 = load ptr, ptr %6, align 8, !tbaa !9
  %5819 = getelementptr inbounds %struct.s2n_connection, ptr %5818, i32 0, i32 41
  %5820 = getelementptr inbounds %struct.s2n_stuffer, ptr %5819, i32 0, i32 0
  %5821 = getelementptr inbounds %struct.s2n_blob, ptr %5820, i32 0, i32 0
  %5822 = load ptr, ptr %5821, align 8, !tbaa !61
  %5823 = getelementptr inbounds i8, ptr %5822, i64 2
  %5824 = load i8, ptr %5823, align 1, !tbaa !58
  %5825 = zext i8 %5824 to i32
  %5826 = add nsw i32 %5817, %5825
  %5827 = trunc i32 %5826 to i8
  store i8 %5827, ptr %136, align 1, !tbaa !58
  br label %5828

5828:                                             ; preds = %5808
  %5829 = load i32, ptr @test_count, align 4, !tbaa !5
  %5830 = add nsw i32 %5829, 1
  store i32 %5830, ptr @test_count, align 4, !tbaa !5
  %5831 = load i8, ptr %136, align 1, !tbaa !58
  %5832 = zext i8 %5831 to i32
  %5833 = load ptr, ptr %6, align 8, !tbaa !9
  %5834 = getelementptr inbounds %struct.s2n_connection, ptr %5833, i32 0, i32 23
  %5835 = load i8, ptr %5834, align 4, !tbaa !59
  %5836 = zext i8 %5835 to i32
  %5837 = icmp eq i32 %5832, %5836
  br i1 %5837, label %5891, label %5838

5838:                                             ; preds = %5828
  br label %5839

5839:                                             ; preds = %5838
  br label %5840

5840:                                             ; preds = %5839
  call void @llvm.lifetime.start.p0(i64 4, ptr %137) #11
  %5841 = call ptr @__errno_location() #12
  %5842 = load i32, ptr %5841, align 4, !tbaa !5
  store i32 %5842, ptr %137, align 4, !tbaa !5
  %5843 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5844 = call i32 @s2n_print_stacktrace(ptr noundef %5843)
  %5845 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5846 = trunc i8 %5845 to i1
  br i1 %5846, label %5847, label %5869

5847:                                             ; preds = %5840
  %5848 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5849 = call i32 @fileno(ptr noundef %5848) #11
  %5850 = call i32 @isatty(i32 noundef %5849) #11
  %5851 = icmp ne i32 %5850, 0
  br i1 %5851, label %5852, label %5869

5852:                                             ; preds = %5847
  %5853 = load i32, ptr %137, align 4, !tbaa !5
  %5854 = call ptr @__errno_location() #12
  store i32 %5853, ptr %5854, align 4, !tbaa !5
  %5855 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5856 = load i32, ptr @test_count, align 4, !tbaa !5
  %5857 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5858 = load i32, ptr %5857, align 4, !tbaa !5
  %5859 = call ptr @s2n_strerror(i32 noundef %5858, ptr noundef @.str.3)
  %5860 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5861 = load i32, ptr %5860, align 4, !tbaa !5
  %5862 = call ptr @s2n_strerror_debug(i32 noundef %5861, ptr noundef @.str.3)
  %5863 = call ptr @__errno_location() #12
  %5864 = load i32, ptr %5863, align 4, !tbaa !5
  %5865 = call ptr @strerror(i32 noundef %5864) #11
  %5866 = call ptr @__errno_location() #12
  %5867 = load i32, ptr %5866, align 4, !tbaa !5
  %5868 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5855, ptr noundef @.str, i32 noundef %5856, ptr noundef @.str.32, ptr noundef @.str.2, i32 noundef 282, ptr noundef %5859, ptr noundef %5862, ptr noundef %5865, i32 noundef %5867) #11
  br label %5886

5869:                                             ; preds = %5847, %5840
  %5870 = load i32, ptr %137, align 4, !tbaa !5
  %5871 = call ptr @__errno_location() #12
  store i32 %5870, ptr %5871, align 4, !tbaa !5
  %5872 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5873 = load i32, ptr @test_count, align 4, !tbaa !5
  %5874 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5875 = load i32, ptr %5874, align 4, !tbaa !5
  %5876 = call ptr @s2n_strerror(i32 noundef %5875, ptr noundef @.str.3)
  %5877 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5878 = load i32, ptr %5877, align 4, !tbaa !5
  %5879 = call ptr @s2n_strerror_debug(i32 noundef %5878, ptr noundef @.str.3)
  %5880 = call ptr @__errno_location() #12
  %5881 = load i32, ptr %5880, align 4, !tbaa !5
  %5882 = call ptr @strerror(i32 noundef %5881) #11
  %5883 = call ptr @__errno_location() #12
  %5884 = load i32, ptr %5883, align 4, !tbaa !5
  %5885 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5872, ptr noundef @.str.4, i32 noundef %5873, ptr noundef @.str.32, ptr noundef @.str.2, i32 noundef 282, ptr noundef %5876, ptr noundef %5879, ptr noundef %5882, i32 noundef %5884) #11
  br label %5886

5886:                                             ; preds = %5869, %5852
  call void @llvm.lifetime.end.p0(i64 4, ptr %137) #11
  br label %5887

5887:                                             ; preds = %5886
  br label %5888

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

5889:                                             ; No predecessors!
  br label %5890

5890:                                             ; preds = %5889
  br label %5891

5891:                                             ; preds = %5890, %5828
  br label %5892

5892:                                             ; preds = %5891
  br label %5893

5893:                                             ; preds = %5892
  br label %5894

5894:                                             ; preds = %5893
  %5895 = load i32, ptr @test_count, align 4, !tbaa !5
  %5896 = add nsw i32 %5895, 1
  store i32 %5896, ptr @test_count, align 4, !tbaa !5
  %5897 = load ptr, ptr %6, align 8, !tbaa !9
  %5898 = getelementptr inbounds %struct.s2n_connection, ptr %5897, i32 0, i32 41
  %5899 = getelementptr inbounds %struct.s2n_stuffer, ptr %5898, i32 0, i32 0
  %5900 = getelementptr inbounds %struct.s2n_blob, ptr %5899, i32 0, i32 0
  %5901 = load ptr, ptr %5900, align 8, !tbaa !61
  %5902 = getelementptr inbounds i8, ptr %5901, i64 3
  %5903 = load i8, ptr %5902, align 1, !tbaa !58
  %5904 = zext i8 %5903 to i32
  %5905 = load i16, ptr %134, align 2, !tbaa !60
  %5906 = zext i16 %5905 to i32
  %5907 = ashr i32 %5906, 8
  %5908 = and i32 %5907, 255
  %5909 = icmp eq i32 %5904, %5908
  br i1 %5909, label %5963, label %5910

5910:                                             ; preds = %5894
  br label %5911

5911:                                             ; preds = %5910
  br label %5912

5912:                                             ; preds = %5911
  call void @llvm.lifetime.start.p0(i64 4, ptr %138) #11
  %5913 = call ptr @__errno_location() #12
  %5914 = load i32, ptr %5913, align 4, !tbaa !5
  store i32 %5914, ptr %138, align 4, !tbaa !5
  %5915 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5916 = call i32 @s2n_print_stacktrace(ptr noundef %5915)
  %5917 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5918 = trunc i8 %5917 to i1
  br i1 %5918, label %5919, label %5941

5919:                                             ; preds = %5912
  %5920 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5921 = call i32 @fileno(ptr noundef %5920) #11
  %5922 = call i32 @isatty(i32 noundef %5921) #11
  %5923 = icmp ne i32 %5922, 0
  br i1 %5923, label %5924, label %5941

5924:                                             ; preds = %5919
  %5925 = load i32, ptr %138, align 4, !tbaa !5
  %5926 = call ptr @__errno_location() #12
  store i32 %5925, ptr %5926, align 4, !tbaa !5
  %5927 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5928 = load i32, ptr @test_count, align 4, !tbaa !5
  %5929 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5930 = load i32, ptr %5929, align 4, !tbaa !5
  %5931 = call ptr @s2n_strerror(i32 noundef %5930, ptr noundef @.str.3)
  %5932 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5933 = load i32, ptr %5932, align 4, !tbaa !5
  %5934 = call ptr @s2n_strerror_debug(i32 noundef %5933, ptr noundef @.str.3)
  %5935 = call ptr @__errno_location() #12
  %5936 = load i32, ptr %5935, align 4, !tbaa !5
  %5937 = call ptr @strerror(i32 noundef %5936) #11
  %5938 = call ptr @__errno_location() #12
  %5939 = load i32, ptr %5938, align 4, !tbaa !5
  %5940 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5927, ptr noundef @.str, i32 noundef %5928, ptr noundef @.str.33, ptr noundef @.str.2, i32 noundef 283, ptr noundef %5931, ptr noundef %5934, ptr noundef %5937, i32 noundef %5939) #11
  br label %5958

5941:                                             ; preds = %5919, %5912
  %5942 = load i32, ptr %138, align 4, !tbaa !5
  %5943 = call ptr @__errno_location() #12
  store i32 %5942, ptr %5943, align 4, !tbaa !5
  %5944 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5945 = load i32, ptr @test_count, align 4, !tbaa !5
  %5946 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5947 = load i32, ptr %5946, align 4, !tbaa !5
  %5948 = call ptr @s2n_strerror(i32 noundef %5947, ptr noundef @.str.3)
  %5949 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5950 = load i32, ptr %5949, align 4, !tbaa !5
  %5951 = call ptr @s2n_strerror_debug(i32 noundef %5950, ptr noundef @.str.3)
  %5952 = call ptr @__errno_location() #12
  %5953 = load i32, ptr %5952, align 4, !tbaa !5
  %5954 = call ptr @strerror(i32 noundef %5953) #11
  %5955 = call ptr @__errno_location() #12
  %5956 = load i32, ptr %5955, align 4, !tbaa !5
  %5957 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5944, ptr noundef @.str.4, i32 noundef %5945, ptr noundef @.str.33, ptr noundef @.str.2, i32 noundef 283, ptr noundef %5948, ptr noundef %5951, ptr noundef %5954, i32 noundef %5956) #11
  br label %5958

5958:                                             ; preds = %5941, %5924
  call void @llvm.lifetime.end.p0(i64 4, ptr %138) #11
  br label %5959

5959:                                             ; preds = %5958
  br label %5960

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

5961:                                             ; No predecessors!
  br label %5962

5962:                                             ; preds = %5961
  br label %5963

5963:                                             ; preds = %5962, %5894
  br label %5964

5964:                                             ; preds = %5963
  br label %5965

5965:                                             ; preds = %5964
  br label %5966

5966:                                             ; preds = %5965
  %5967 = load i32, ptr @test_count, align 4, !tbaa !5
  %5968 = add nsw i32 %5967, 1
  store i32 %5968, ptr @test_count, align 4, !tbaa !5
  %5969 = load ptr, ptr %6, align 8, !tbaa !9
  %5970 = getelementptr inbounds %struct.s2n_connection, ptr %5969, i32 0, i32 41
  %5971 = getelementptr inbounds %struct.s2n_stuffer, ptr %5970, i32 0, i32 0
  %5972 = getelementptr inbounds %struct.s2n_blob, ptr %5971, i32 0, i32 0
  %5973 = load ptr, ptr %5972, align 8, !tbaa !61
  %5974 = getelementptr inbounds i8, ptr %5973, i64 4
  %5975 = load i8, ptr %5974, align 1, !tbaa !58
  %5976 = zext i8 %5975 to i32
  %5977 = load i16, ptr %134, align 2, !tbaa !60
  %5978 = zext i16 %5977 to i32
  %5979 = and i32 %5978, 255
  %5980 = icmp eq i32 %5976, %5979
  br i1 %5980, label %6034, label %5981

5981:                                             ; preds = %5966
  br label %5982

5982:                                             ; preds = %5981
  br label %5983

5983:                                             ; preds = %5982
  call void @llvm.lifetime.start.p0(i64 4, ptr %139) #11
  %5984 = call ptr @__errno_location() #12
  %5985 = load i32, ptr %5984, align 4, !tbaa !5
  store i32 %5985, ptr %139, align 4, !tbaa !5
  %5986 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5987 = call i32 @s2n_print_stacktrace(ptr noundef %5986)
  %5988 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5989 = trunc i8 %5988 to i1
  br i1 %5989, label %5990, label %6012

5990:                                             ; preds = %5983
  %5991 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5992 = call i32 @fileno(ptr noundef %5991) #11
  %5993 = call i32 @isatty(i32 noundef %5992) #11
  %5994 = icmp ne i32 %5993, 0
  br i1 %5994, label %5995, label %6012

5995:                                             ; preds = %5990
  %5996 = load i32, ptr %139, align 4, !tbaa !5
  %5997 = call ptr @__errno_location() #12
  store i32 %5996, ptr %5997, align 4, !tbaa !5
  %5998 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5999 = load i32, ptr @test_count, align 4, !tbaa !5
  %6000 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6001 = load i32, ptr %6000, align 4, !tbaa !5
  %6002 = call ptr @s2n_strerror(i32 noundef %6001, ptr noundef @.str.3)
  %6003 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6004 = load i32, ptr %6003, align 4, !tbaa !5
  %6005 = call ptr @s2n_strerror_debug(i32 noundef %6004, ptr noundef @.str.3)
  %6006 = call ptr @__errno_location() #12
  %6007 = load i32, ptr %6006, align 4, !tbaa !5
  %6008 = call ptr @strerror(i32 noundef %6007) #11
  %6009 = call ptr @__errno_location() #12
  %6010 = load i32, ptr %6009, align 4, !tbaa !5
  %6011 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5998, ptr noundef @.str, i32 noundef %5999, ptr noundef @.str.34, ptr noundef @.str.2, i32 noundef 284, ptr noundef %6002, ptr noundef %6005, ptr noundef %6008, i32 noundef %6010) #11
  br label %6029

6012:                                             ; preds = %5990, %5983
  %6013 = load i32, ptr %139, align 4, !tbaa !5
  %6014 = call ptr @__errno_location() #12
  store i32 %6013, ptr %6014, align 4, !tbaa !5
  %6015 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6016 = load i32, ptr @test_count, align 4, !tbaa !5
  %6017 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6018 = load i32, ptr %6017, align 4, !tbaa !5
  %6019 = call ptr @s2n_strerror(i32 noundef %6018, ptr noundef @.str.3)
  %6020 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6021 = load i32, ptr %6020, align 4, !tbaa !5
  %6022 = call ptr @s2n_strerror_debug(i32 noundef %6021, ptr noundef @.str.3)
  %6023 = call ptr @__errno_location() #12
  %6024 = load i32, ptr %6023, align 4, !tbaa !5
  %6025 = call ptr @strerror(i32 noundef %6024) #11
  %6026 = call ptr @__errno_location() #12
  %6027 = load i32, ptr %6026, align 4, !tbaa !5
  %6028 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6015, ptr noundef @.str.4, i32 noundef %6016, ptr noundef @.str.34, ptr noundef @.str.2, i32 noundef 284, ptr noundef %6019, ptr noundef %6022, ptr noundef %6025, i32 noundef %6027) #11
  br label %6029

6029:                                             ; preds = %6012, %5995
  call void @llvm.lifetime.end.p0(i64 4, ptr %139) #11
  br label %6030

6030:                                             ; preds = %6029
  br label %6031

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

6032:                                             ; No predecessors!
  br label %6033

6033:                                             ; preds = %6032
  br label %6034

6034:                                             ; preds = %6033, %5966
  br label %6035

6035:                                             ; preds = %6034
  br label %6036

6036:                                             ; preds = %6035
  %6037 = load i32, ptr %119, align 4, !tbaa !5
  %6038 = icmp sgt i32 %6037, 10
  br i1 %6038, label %6039, label %6113

6039:                                             ; preds = %6036
  br label %6040

6040:                                             ; preds = %6039
  %6041 = load i32, ptr @test_count, align 4, !tbaa !5
  %6042 = add nsw i32 %6041, 1
  store i32 %6042, ptr @test_count, align 4, !tbaa !5
  %6043 = load ptr, ptr %6, align 8, !tbaa !9
  %6044 = getelementptr inbounds %struct.s2n_connection, ptr %6043, i32 0, i32 41
  %6045 = getelementptr inbounds %struct.s2n_stuffer, ptr %6044, i32 0, i32 0
  %6046 = getelementptr inbounds %struct.s2n_blob, ptr %6045, i32 0, i32 0
  %6047 = load ptr, ptr %6046, align 8, !tbaa !61
  %6048 = getelementptr inbounds i8, ptr %6047, i64 5
  %6049 = load i32, ptr %128, align 4, !tbaa !5
  %6050 = sext i32 %6049 to i64
  %6051 = getelementptr inbounds i8, ptr %6048, i64 %6050
  %6052 = getelementptr inbounds [8088 x i8], ptr %7, i64 0, i64 0
  %6053 = load i32, ptr %119, align 4, !tbaa !5
  %6054 = sext i32 %6053 to i64
  %6055 = call i32 @memcmp(ptr noundef %6051, ptr noundef %6052, i64 noundef %6054) #14
  %6056 = icmp eq i32 %6055, 0
  br i1 %6056, label %6057, label %6110

6057:                                             ; preds = %6040
  br label %6058

6058:                                             ; preds = %6057
  br label %6059

6059:                                             ; preds = %6058
  call void @llvm.lifetime.start.p0(i64 4, ptr %140) #11
  %6060 = call ptr @__errno_location() #12
  %6061 = load i32, ptr %6060, align 4, !tbaa !5
  store i32 %6061, ptr %140, align 4, !tbaa !5
  %6062 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6063 = call i32 @s2n_print_stacktrace(ptr noundef %6062)
  %6064 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6065 = trunc i8 %6064 to i1
  br i1 %6065, label %6066, label %6088

6066:                                             ; preds = %6059
  %6067 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6068 = call i32 @fileno(ptr noundef %6067) #11
  %6069 = call i32 @isatty(i32 noundef %6068) #11
  %6070 = icmp ne i32 %6069, 0
  br i1 %6070, label %6071, label %6088

6071:                                             ; preds = %6066
  %6072 = load i32, ptr %140, align 4, !tbaa !5
  %6073 = call ptr @__errno_location() #12
  store i32 %6072, ptr %6073, align 4, !tbaa !5
  %6074 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6075 = load i32, ptr @test_count, align 4, !tbaa !5
  %6076 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6077 = load i32, ptr %6076, align 4, !tbaa !5
  %6078 = call ptr @s2n_strerror(i32 noundef %6077, ptr noundef @.str.3)
  %6079 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6080 = load i32, ptr %6079, align 4, !tbaa !5
  %6081 = call ptr @s2n_strerror_debug(i32 noundef %6080, ptr noundef @.str.3)
  %6082 = call ptr @__errno_location() #12
  %6083 = load i32, ptr %6082, align 4, !tbaa !5
  %6084 = call ptr @strerror(i32 noundef %6083) #11
  %6085 = call ptr @__errno_location() #12
  %6086 = load i32, ptr %6085, align 4, !tbaa !5
  %6087 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6074, ptr noundef @.str, i32 noundef %6075, ptr noundef @.str.35, ptr noundef @.str.2, i32 noundef 288, ptr noundef %6078, ptr noundef %6081, ptr noundef %6084, i32 noundef %6086) #11
  br label %6105

6088:                                             ; preds = %6066, %6059
  %6089 = load i32, ptr %140, align 4, !tbaa !5
  %6090 = call ptr @__errno_location() #12
  store i32 %6089, ptr %6090, align 4, !tbaa !5
  %6091 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6092 = load i32, ptr @test_count, align 4, !tbaa !5
  %6093 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6094 = load i32, ptr %6093, align 4, !tbaa !5
  %6095 = call ptr @s2n_strerror(i32 noundef %6094, ptr noundef @.str.3)
  %6096 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6097 = load i32, ptr %6096, align 4, !tbaa !5
  %6098 = call ptr @s2n_strerror_debug(i32 noundef %6097, ptr noundef @.str.3)
  %6099 = call ptr @__errno_location() #12
  %6100 = load i32, ptr %6099, align 4, !tbaa !5
  %6101 = call ptr @strerror(i32 noundef %6100) #11
  %6102 = call ptr @__errno_location() #12
  %6103 = load i32, ptr %6102, align 4, !tbaa !5
  %6104 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6091, ptr noundef @.str.4, i32 noundef %6092, ptr noundef @.str.35, ptr noundef @.str.2, i32 noundef 288, ptr noundef %6095, ptr noundef %6098, ptr noundef %6101, i32 noundef %6103) #11
  br label %6105

6105:                                             ; preds = %6088, %6071
  call void @llvm.lifetime.end.p0(i64 4, ptr %140) #11
  br label %6106

6106:                                             ; preds = %6105
  br label %6107

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

6108:                                             ; No predecessors!
  br label %6109

6109:                                             ; preds = %6108
  br label %6110

6110:                                             ; preds = %6109, %6040
  br label %6111

6111:                                             ; preds = %6110
  br label %6112

6112:                                             ; preds = %6111
  br label %6113

6113:                                             ; preds = %6112, %6036
  %6114 = load i32, ptr %128, align 4, !tbaa !5
  %6115 = icmp sgt i32 %6114, 0
  br i1 %6115, label %6116, label %6260

6116:                                             ; preds = %6113
  call void @llvm.lifetime.start.p0(i64 8, ptr %141) #11
  %6117 = load ptr, ptr %6, align 8, !tbaa !9
  %6118 = getelementptr inbounds %struct.s2n_connection, ptr %6117, i32 0, i32 41
  %6119 = getelementptr inbounds %struct.s2n_stuffer, ptr %6118, i32 0, i32 0
  %6120 = getelementptr inbounds %struct.s2n_blob, ptr %6119, i32 0, i32 0
  %6121 = load ptr, ptr %6120, align 8, !tbaa !61
  %6122 = getelementptr inbounds i8, ptr %6121, i64 5
  store ptr %6122, ptr %141, align 8, !tbaa !9
  br label %6123

6123:                                             ; preds = %6116
  %6124 = load i32, ptr @test_count, align 4, !tbaa !5
  %6125 = add nsw i32 %6124, 1
  store i32 %6125, ptr @test_count, align 4, !tbaa !5
  %6126 = getelementptr inbounds [8089 x [16 x i8]], ptr %18, i64 0, i64 0
  %6127 = load i32, ptr %116, align 4, !tbaa !5
  %6128 = sext i32 %6127 to i64
  %6129 = load ptr, ptr %141, align 8, !tbaa !9
  %6130 = load i32, ptr %128, align 4, !tbaa !5
  %6131 = trunc i32 %6130 to i16
  %6132 = call i32 @ensure_explicit_iv_is_unique(ptr noundef %6126, i64 noundef %6128, ptr noundef %6129, i16 noundef zeroext %6131)
  %6133 = icmp eq i32 %6132, -1
  br i1 %6133, label %6134, label %6187

6134:                                             ; preds = %6123
  br label %6135

6135:                                             ; preds = %6134
  br label %6136

6136:                                             ; preds = %6135
  call void @llvm.lifetime.start.p0(i64 4, ptr %142) #11
  %6137 = call ptr @__errno_location() #12
  %6138 = load i32, ptr %6137, align 4, !tbaa !5
  store i32 %6138, ptr %142, align 4, !tbaa !5
  %6139 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6140 = call i32 @s2n_print_stacktrace(ptr noundef %6139)
  %6141 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6142 = trunc i8 %6141 to i1
  br i1 %6142, label %6143, label %6165

6143:                                             ; preds = %6136
  %6144 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6145 = call i32 @fileno(ptr noundef %6144) #11
  %6146 = call i32 @isatty(i32 noundef %6145) #11
  %6147 = icmp ne i32 %6146, 0
  br i1 %6147, label %6148, label %6165

6148:                                             ; preds = %6143
  %6149 = load i32, ptr %142, align 4, !tbaa !5
  %6150 = call ptr @__errno_location() #12
  store i32 %6149, ptr %6150, align 4, !tbaa !5
  %6151 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6152 = load i32, ptr @test_count, align 4, !tbaa !5
  %6153 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6154 = load i32, ptr %6153, align 4, !tbaa !5
  %6155 = call ptr @s2n_strerror(i32 noundef %6154, ptr noundef @.str.3)
  %6156 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6157 = load i32, ptr %6156, align 4, !tbaa !5
  %6158 = call ptr @s2n_strerror_debug(i32 noundef %6157, ptr noundef @.str.3)
  %6159 = call ptr @__errno_location() #12
  %6160 = load i32, ptr %6159, align 4, !tbaa !5
  %6161 = call ptr @strerror(i32 noundef %6160) #11
  %6162 = call ptr @__errno_location() #12
  %6163 = load i32, ptr %6162, align 4, !tbaa !5
  %6164 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6151, ptr noundef @.str, i32 noundef %6152, ptr noundef @.str.36, ptr noundef @.str.2, i32 noundef 294, ptr noundef %6155, ptr noundef %6158, ptr noundef %6161, i32 noundef %6163) #11
  br label %6182

6165:                                             ; preds = %6143, %6136
  %6166 = load i32, ptr %142, align 4, !tbaa !5
  %6167 = call ptr @__errno_location() #12
  store i32 %6166, ptr %6167, align 4, !tbaa !5
  %6168 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6169 = load i32, ptr @test_count, align 4, !tbaa !5
  %6170 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6171 = load i32, ptr %6170, align 4, !tbaa !5
  %6172 = call ptr @s2n_strerror(i32 noundef %6171, ptr noundef @.str.3)
  %6173 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6174 = load i32, ptr %6173, align 4, !tbaa !5
  %6175 = call ptr @s2n_strerror_debug(i32 noundef %6174, ptr noundef @.str.3)
  %6176 = call ptr @__errno_location() #12
  %6177 = load i32, ptr %6176, align 4, !tbaa !5
  %6178 = call ptr @strerror(i32 noundef %6177) #11
  %6179 = call ptr @__errno_location() #12
  %6180 = load i32, ptr %6179, align 4, !tbaa !5
  %6181 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6168, ptr noundef @.str.4, i32 noundef %6169, ptr noundef @.str.36, ptr noundef @.str.2, i32 noundef 294, ptr noundef %6172, ptr noundef %6175, ptr noundef %6178, i32 noundef %6180) #11
  br label %6182

6182:                                             ; preds = %6165, %6148
  call void @llvm.lifetime.end.p0(i64 4, ptr %142) #11
  br label %6183

6183:                                             ; preds = %6182
  br label %6184

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

6185:                                             ; No predecessors!
  br label %6186

6186:                                             ; preds = %6185
  br label %6187

6187:                                             ; preds = %6186, %6123
  br label %6188

6188:                                             ; preds = %6187
  br label %6189

6189:                                             ; preds = %6188
  br label %6190

6190:                                             ; preds = %6189
  call void @llvm.lifetime.start.p0(i64 4, ptr %143) #11
  %6191 = load i32, ptr %128, align 4, !tbaa !5
  store i32 %6191, ptr %143, align 4, !tbaa !5
  %6192 = load i32, ptr %143, align 4, !tbaa !5
  %6193 = icmp ne i32 %6192, 0
  br i1 %6193, label %6194, label %6257

6194:                                             ; preds = %6190
  %6195 = load i32, ptr %116, align 4, !tbaa !5
  %6196 = sext i32 %6195 to i64
  %6197 = getelementptr inbounds [8089 x [16 x i8]], ptr %18, i64 0, i64 %6196
  %6198 = getelementptr inbounds [16 x i8], ptr %6197, i64 0, i64 0
  %6199 = load ptr, ptr %141, align 8, !tbaa !9
  %6200 = load i32, ptr %143, align 4, !tbaa !5
  %6201 = sext i32 %6200 to i64
  call void @llvm.memmove.p0.p0.i64(ptr align 16 %6198, ptr align 1 %6199, i64 %6201, i1 false)
  %6202 = icmp eq ptr %6198, null
  br i1 %6202, label %6203, label %6256

6203:                                             ; preds = %6194
  br label %6204

6204:                                             ; preds = %6203
  br label %6205

6205:                                             ; preds = %6204
  call void @llvm.lifetime.start.p0(i64 4, ptr %144) #11
  %6206 = call ptr @__errno_location() #12
  %6207 = load i32, ptr %6206, align 4, !tbaa !5
  store i32 %6207, ptr %144, align 4, !tbaa !5
  %6208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6209 = call i32 @s2n_print_stacktrace(ptr noundef %6208)
  %6210 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6211 = trunc i8 %6210 to i1
  br i1 %6211, label %6212, label %6234

6212:                                             ; preds = %6205
  %6213 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6214 = call i32 @fileno(ptr noundef %6213) #11
  %6215 = call i32 @isatty(i32 noundef %6214) #11
  %6216 = icmp ne i32 %6215, 0
  br i1 %6216, label %6217, label %6234

6217:                                             ; preds = %6212
  %6218 = load i32, ptr %144, align 4, !tbaa !5
  %6219 = call ptr @__errno_location() #12
  store i32 %6218, ptr %6219, align 4, !tbaa !5
  %6220 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6221 = load i32, ptr @test_count, align 4, !tbaa !5
  %6222 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6223 = load i32, ptr %6222, align 4, !tbaa !5
  %6224 = call ptr @s2n_strerror(i32 noundef %6223, ptr noundef @.str.3)
  %6225 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6226 = load i32, ptr %6225, align 4, !tbaa !5
  %6227 = call ptr @s2n_strerror_debug(i32 noundef %6226, ptr noundef @.str.3)
  %6228 = call ptr @__errno_location() #12
  %6229 = load i32, ptr %6228, align 4, !tbaa !5
  %6230 = call ptr @strerror(i32 noundef %6229) #11
  %6231 = call ptr @__errno_location() #12
  %6232 = load i32, ptr %6231, align 4, !tbaa !5
  %6233 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6220, ptr noundef @.str, i32 noundef %6221, ptr noundef @.str.37, ptr noundef @.str.2, i32 noundef 296, ptr noundef %6224, ptr noundef %6227, ptr noundef %6230, i32 noundef %6232) #11
  br label %6251

6234:                                             ; preds = %6212, %6205
  %6235 = load i32, ptr %144, align 4, !tbaa !5
  %6236 = call ptr @__errno_location() #12
  store i32 %6235, ptr %6236, align 4, !tbaa !5
  %6237 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6238 = load i32, ptr @test_count, align 4, !tbaa !5
  %6239 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6240 = load i32, ptr %6239, align 4, !tbaa !5
  %6241 = call ptr @s2n_strerror(i32 noundef %6240, ptr noundef @.str.3)
  %6242 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6243 = load i32, ptr %6242, align 4, !tbaa !5
  %6244 = call ptr @s2n_strerror_debug(i32 noundef %6243, ptr noundef @.str.3)
  %6245 = call ptr @__errno_location() #12
  %6246 = load i32, ptr %6245, align 4, !tbaa !5
  %6247 = call ptr @strerror(i32 noundef %6246) #11
  %6248 = call ptr @__errno_location() #12
  %6249 = load i32, ptr %6248, align 4, !tbaa !5
  %6250 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6237, ptr noundef @.str.4, i32 noundef %6238, ptr noundef @.str.37, ptr noundef @.str.2, i32 noundef 296, ptr noundef %6241, ptr noundef %6244, ptr noundef %6247, i32 noundef %6249) #11
  br label %6251

6251:                                             ; preds = %6234, %6217
  call void @llvm.lifetime.end.p0(i64 4, ptr %144) #11
  br label %6252

6252:                                             ; preds = %6251
  br label %6253

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

6254:                                             ; No predecessors!
  br label %6255

6255:                                             ; preds = %6254
  br label %6256

6256:                                             ; preds = %6255, %6194
  br label %6257

6257:                                             ; preds = %6256, %6190
  call void @llvm.lifetime.end.p0(i64 4, ptr %143) #11
  br label %6258

6258:                                             ; preds = %6257
  br label %6259

6259:                                             ; preds = %6258
  call void @llvm.lifetime.end.p0(i64 8, ptr %141) #11
  br label %6260

6260:                                             ; preds = %6259, %6113
  br label %6261

6261:                                             ; preds = %6260
  %6262 = load i32, ptr @test_count, align 4, !tbaa !5
  %6263 = add nsw i32 %6262, 1
  store i32 %6263, ptr @test_count, align 4, !tbaa !5
  %6264 = load ptr, ptr %6, align 8, !tbaa !9
  %6265 = getelementptr inbounds %struct.s2n_connection, ptr %6264, i32 0, i32 40
  %6266 = call i32 @s2n_stuffer_wipe(ptr noundef %6265)
  %6267 = icmp eq i32 %6266, -1
  br i1 %6267, label %6268, label %6321

6268:                                             ; preds = %6261
  br label %6269

6269:                                             ; preds = %6268
  br label %6270

6270:                                             ; preds = %6269
  call void @llvm.lifetime.start.p0(i64 4, ptr %145) #11
  %6271 = call ptr @__errno_location() #12
  %6272 = load i32, ptr %6271, align 4, !tbaa !5
  store i32 %6272, ptr %145, align 4, !tbaa !5
  %6273 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6274 = call i32 @s2n_print_stacktrace(ptr noundef %6273)
  %6275 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6276 = trunc i8 %6275 to i1
  br i1 %6276, label %6277, label %6299

6277:                                             ; preds = %6270
  %6278 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6279 = call i32 @fileno(ptr noundef %6278) #11
  %6280 = call i32 @isatty(i32 noundef %6279) #11
  %6281 = icmp ne i32 %6280, 0
  br i1 %6281, label %6282, label %6299

6282:                                             ; preds = %6277
  %6283 = load i32, ptr %145, align 4, !tbaa !5
  %6284 = call ptr @__errno_location() #12
  store i32 %6283, ptr %6284, align 4, !tbaa !5
  %6285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6286 = load i32, ptr @test_count, align 4, !tbaa !5
  %6287 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6288 = load i32, ptr %6287, align 4, !tbaa !5
  %6289 = call ptr @s2n_strerror(i32 noundef %6288, ptr noundef @.str.3)
  %6290 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6291 = load i32, ptr %6290, align 4, !tbaa !5
  %6292 = call ptr @s2n_strerror_debug(i32 noundef %6291, ptr noundef @.str.3)
  %6293 = call ptr @__errno_location() #12
  %6294 = load i32, ptr %6293, align 4, !tbaa !5
  %6295 = call ptr @strerror(i32 noundef %6294) #11
  %6296 = call ptr @__errno_location() #12
  %6297 = load i32, ptr %6296, align 4, !tbaa !5
  %6298 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6285, ptr noundef @.str, i32 noundef %6286, ptr noundef @.str.38, ptr noundef @.str.2, i32 noundef 300, ptr noundef %6289, ptr noundef %6292, ptr noundef %6295, i32 noundef %6297) #11
  br label %6316

6299:                                             ; preds = %6277, %6270
  %6300 = load i32, ptr %145, align 4, !tbaa !5
  %6301 = call ptr @__errno_location() #12
  store i32 %6300, ptr %6301, align 4, !tbaa !5
  %6302 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6303 = load i32, ptr @test_count, align 4, !tbaa !5
  %6304 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6305 = load i32, ptr %6304, align 4, !tbaa !5
  %6306 = call ptr @s2n_strerror(i32 noundef %6305, ptr noundef @.str.3)
  %6307 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6308 = load i32, ptr %6307, align 4, !tbaa !5
  %6309 = call ptr @s2n_strerror_debug(i32 noundef %6308, ptr noundef @.str.3)
  %6310 = call ptr @__errno_location() #12
  %6311 = load i32, ptr %6310, align 4, !tbaa !5
  %6312 = call ptr @strerror(i32 noundef %6311) #11
  %6313 = call ptr @__errno_location() #12
  %6314 = load i32, ptr %6313, align 4, !tbaa !5
  %6315 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6302, ptr noundef @.str.4, i32 noundef %6303, ptr noundef @.str.38, ptr noundef @.str.2, i32 noundef 300, ptr noundef %6306, ptr noundef %6309, ptr noundef %6312, i32 noundef %6314) #11
  br label %6316

6316:                                             ; preds = %6299, %6282
  call void @llvm.lifetime.end.p0(i64 4, ptr %145) #11
  br label %6317

6317:                                             ; preds = %6316
  br label %6318

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

6319:                                             ; No predecessors!
  br label %6320

6320:                                             ; preds = %6319
  br label %6321

6321:                                             ; preds = %6320, %6261
  br label %6322

6322:                                             ; preds = %6321
  br label %6323

6323:                                             ; preds = %6322
  br label %6324

6324:                                             ; preds = %6323
  %6325 = load i32, ptr @test_count, align 4, !tbaa !5
  %6326 = add nsw i32 %6325, 1
  store i32 %6326, ptr @test_count, align 4, !tbaa !5
  %6327 = load ptr, ptr %6, align 8, !tbaa !9
  %6328 = getelementptr inbounds %struct.s2n_connection, ptr %6327, i32 0, i32 38
  %6329 = call i32 @s2n_stuffer_wipe(ptr noundef %6328)
  %6330 = icmp eq i32 %6329, -1
  br i1 %6330, label %6331, label %6384

6331:                                             ; preds = %6324
  br label %6332

6332:                                             ; preds = %6331
  br label %6333

6333:                                             ; preds = %6332
  call void @llvm.lifetime.start.p0(i64 4, ptr %146) #11
  %6334 = call ptr @__errno_location() #12
  %6335 = load i32, ptr %6334, align 4, !tbaa !5
  store i32 %6335, ptr %146, align 4, !tbaa !5
  %6336 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6337 = call i32 @s2n_print_stacktrace(ptr noundef %6336)
  %6338 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6339 = trunc i8 %6338 to i1
  br i1 %6339, label %6340, label %6362

6340:                                             ; preds = %6333
  %6341 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6342 = call i32 @fileno(ptr noundef %6341) #11
  %6343 = call i32 @isatty(i32 noundef %6342) #11
  %6344 = icmp ne i32 %6343, 0
  br i1 %6344, label %6345, label %6362

6345:                                             ; preds = %6340
  %6346 = load i32, ptr %146, align 4, !tbaa !5
  %6347 = call ptr @__errno_location() #12
  store i32 %6346, ptr %6347, align 4, !tbaa !5
  %6348 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6349 = load i32, ptr @test_count, align 4, !tbaa !5
  %6350 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6351 = load i32, ptr %6350, align 4, !tbaa !5
  %6352 = call ptr @s2n_strerror(i32 noundef %6351, ptr noundef @.str.3)
  %6353 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6354 = load i32, ptr %6353, align 4, !tbaa !5
  %6355 = call ptr @s2n_strerror_debug(i32 noundef %6354, ptr noundef @.str.3)
  %6356 = call ptr @__errno_location() #12
  %6357 = load i32, ptr %6356, align 4, !tbaa !5
  %6358 = call ptr @strerror(i32 noundef %6357) #11
  %6359 = call ptr @__errno_location() #12
  %6360 = load i32, ptr %6359, align 4, !tbaa !5
  %6361 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6348, ptr noundef @.str, i32 noundef %6349, ptr noundef @.str.39, ptr noundef @.str.2, i32 noundef 301, ptr noundef %6352, ptr noundef %6355, ptr noundef %6358, i32 noundef %6360) #11
  br label %6379

6362:                                             ; preds = %6340, %6333
  %6363 = load i32, ptr %146, align 4, !tbaa !5
  %6364 = call ptr @__errno_location() #12
  store i32 %6363, ptr %6364, align 4, !tbaa !5
  %6365 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6366 = load i32, ptr @test_count, align 4, !tbaa !5
  %6367 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6368 = load i32, ptr %6367, align 4, !tbaa !5
  %6369 = call ptr @s2n_strerror(i32 noundef %6368, ptr noundef @.str.3)
  %6370 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6371 = load i32, ptr %6370, align 4, !tbaa !5
  %6372 = call ptr @s2n_strerror_debug(i32 noundef %6371, ptr noundef @.str.3)
  %6373 = call ptr @__errno_location() #12
  %6374 = load i32, ptr %6373, align 4, !tbaa !5
  %6375 = call ptr @strerror(i32 noundef %6374) #11
  %6376 = call ptr @__errno_location() #12
  %6377 = load i32, ptr %6376, align 4, !tbaa !5
  %6378 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6365, ptr noundef @.str.4, i32 noundef %6366, ptr noundef @.str.39, ptr noundef @.str.2, i32 noundef 301, ptr noundef %6369, ptr noundef %6372, ptr noundef %6375, i32 noundef %6377) #11
  br label %6379

6379:                                             ; preds = %6362, %6345
  call void @llvm.lifetime.end.p0(i64 4, ptr %146) #11
  br label %6380

6380:                                             ; preds = %6379
  br label %6381

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

6382:                                             ; No predecessors!
  br label %6383

6383:                                             ; preds = %6382
  br label %6384

6384:                                             ; preds = %6383, %6324
  br label %6385

6385:                                             ; preds = %6384
  br label %6386

6386:                                             ; preds = %6385
  br label %6387

6387:                                             ; preds = %6386
  %6388 = load i32, ptr @test_count, align 4, !tbaa !5
  %6389 = add nsw i32 %6388, 1
  store i32 %6389, ptr @test_count, align 4, !tbaa !5
  %6390 = load ptr, ptr %6, align 8, !tbaa !9
  %6391 = getelementptr inbounds %struct.s2n_connection, ptr %6390, i32 0, i32 41
  %6392 = load ptr, ptr %6, align 8, !tbaa !9
  %6393 = getelementptr inbounds %struct.s2n_connection, ptr %6392, i32 0, i32 38
  %6394 = call i32 @s2n_stuffer_copy(ptr noundef %6391, ptr noundef %6393, i32 noundef 5)
  %6395 = icmp eq i32 %6394, -1
  br i1 %6395, label %6396, label %6449

6396:                                             ; preds = %6387
  br label %6397

6397:                                             ; preds = %6396
  br label %6398

6398:                                             ; preds = %6397
  call void @llvm.lifetime.start.p0(i64 4, ptr %147) #11
  %6399 = call ptr @__errno_location() #12
  %6400 = load i32, ptr %6399, align 4, !tbaa !5
  store i32 %6400, ptr %147, align 4, !tbaa !5
  %6401 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6402 = call i32 @s2n_print_stacktrace(ptr noundef %6401)
  %6403 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6404 = trunc i8 %6403 to i1
  br i1 %6404, label %6405, label %6427

6405:                                             ; preds = %6398
  %6406 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6407 = call i32 @fileno(ptr noundef %6406) #11
  %6408 = call i32 @isatty(i32 noundef %6407) #11
  %6409 = icmp ne i32 %6408, 0
  br i1 %6409, label %6410, label %6427

6410:                                             ; preds = %6405
  %6411 = load i32, ptr %147, align 4, !tbaa !5
  %6412 = call ptr @__errno_location() #12
  store i32 %6411, ptr %6412, align 4, !tbaa !5
  %6413 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6414 = load i32, ptr @test_count, align 4, !tbaa !5
  %6415 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6416 = load i32, ptr %6415, align 4, !tbaa !5
  %6417 = call ptr @s2n_strerror(i32 noundef %6416, ptr noundef @.str.3)
  %6418 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6419 = load i32, ptr %6418, align 4, !tbaa !5
  %6420 = call ptr @s2n_strerror_debug(i32 noundef %6419, ptr noundef @.str.3)
  %6421 = call ptr @__errno_location() #12
  %6422 = load i32, ptr %6421, align 4, !tbaa !5
  %6423 = call ptr @strerror(i32 noundef %6422) #11
  %6424 = call ptr @__errno_location() #12
  %6425 = load i32, ptr %6424, align 4, !tbaa !5
  %6426 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6413, ptr noundef @.str, i32 noundef %6414, ptr noundef @.str.40, ptr noundef @.str.2, i32 noundef 302, ptr noundef %6417, ptr noundef %6420, ptr noundef %6423, i32 noundef %6425) #11
  br label %6444

6427:                                             ; preds = %6405, %6398
  %6428 = load i32, ptr %147, align 4, !tbaa !5
  %6429 = call ptr @__errno_location() #12
  store i32 %6428, ptr %6429, align 4, !tbaa !5
  %6430 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6431 = load i32, ptr @test_count, align 4, !tbaa !5
  %6432 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6433 = load i32, ptr %6432, align 4, !tbaa !5
  %6434 = call ptr @s2n_strerror(i32 noundef %6433, ptr noundef @.str.3)
  %6435 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6436 = load i32, ptr %6435, align 4, !tbaa !5
  %6437 = call ptr @s2n_strerror_debug(i32 noundef %6436, ptr noundef @.str.3)
  %6438 = call ptr @__errno_location() #12
  %6439 = load i32, ptr %6438, align 4, !tbaa !5
  %6440 = call ptr @strerror(i32 noundef %6439) #11
  %6441 = call ptr @__errno_location() #12
  %6442 = load i32, ptr %6441, align 4, !tbaa !5
  %6443 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6430, ptr noundef @.str.4, i32 noundef %6431, ptr noundef @.str.40, ptr noundef @.str.2, i32 noundef 302, ptr noundef %6434, ptr noundef %6437, ptr noundef %6440, i32 noundef %6442) #11
  br label %6444

6444:                                             ; preds = %6427, %6410
  call void @llvm.lifetime.end.p0(i64 4, ptr %147) #11
  br label %6445

6445:                                             ; preds = %6444
  br label %6446

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

6447:                                             ; No predecessors!
  br label %6448

6448:                                             ; preds = %6447
  br label %6449

6449:                                             ; preds = %6448, %6387
  br label %6450

6450:                                             ; preds = %6449
  br label %6451

6451:                                             ; preds = %6450
  br label %6452

6452:                                             ; preds = %6451
  %6453 = load i32, ptr @test_count, align 4, !tbaa !5
  %6454 = add nsw i32 %6453, 1
  store i32 %6454, ptr @test_count, align 4, !tbaa !5
  %6455 = load ptr, ptr %6, align 8, !tbaa !9
  %6456 = getelementptr inbounds %struct.s2n_connection, ptr %6455, i32 0, i32 41
  %6457 = load ptr, ptr %6, align 8, !tbaa !9
  %6458 = getelementptr inbounds %struct.s2n_connection, ptr %6457, i32 0, i32 40
  %6459 = load ptr, ptr %6, align 8, !tbaa !9
  %6460 = getelementptr inbounds %struct.s2n_connection, ptr %6459, i32 0, i32 41
  %6461 = getelementptr inbounds %struct.s2n_stuffer, ptr %6460, i32 0, i32 2
  %6462 = load i32, ptr %6461, align 4, !tbaa !62
  %6463 = load ptr, ptr %6, align 8, !tbaa !9
  %6464 = getelementptr inbounds %struct.s2n_connection, ptr %6463, i32 0, i32 41
  %6465 = getelementptr inbounds %struct.s2n_stuffer, ptr %6464, i32 0, i32 1
  %6466 = load i32, ptr %6465, align 8, !tbaa !63
  %6467 = sub i32 %6462, %6466
  %6468 = call i32 @s2n_stuffer_copy(ptr noundef %6456, ptr noundef %6458, i32 noundef %6467)
  %6469 = icmp eq i32 %6468, -1
  br i1 %6469, label %6470, label %6523

6470:                                             ; preds = %6452
  br label %6471

6471:                                             ; preds = %6470
  br label %6472

6472:                                             ; preds = %6471
  call void @llvm.lifetime.start.p0(i64 4, ptr %148) #11
  %6473 = call ptr @__errno_location() #12
  %6474 = load i32, ptr %6473, align 4, !tbaa !5
  store i32 %6474, ptr %148, align 4, !tbaa !5
  %6475 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6476 = call i32 @s2n_print_stacktrace(ptr noundef %6475)
  %6477 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6478 = trunc i8 %6477 to i1
  br i1 %6478, label %6479, label %6501

6479:                                             ; preds = %6472
  %6480 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6481 = call i32 @fileno(ptr noundef %6480) #11
  %6482 = call i32 @isatty(i32 noundef %6481) #11
  %6483 = icmp ne i32 %6482, 0
  br i1 %6483, label %6484, label %6501

6484:                                             ; preds = %6479
  %6485 = load i32, ptr %148, align 4, !tbaa !5
  %6486 = call ptr @__errno_location() #12
  store i32 %6485, ptr %6486, align 4, !tbaa !5
  %6487 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6488 = load i32, ptr @test_count, align 4, !tbaa !5
  %6489 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6490 = load i32, ptr %6489, align 4, !tbaa !5
  %6491 = call ptr @s2n_strerror(i32 noundef %6490, ptr noundef @.str.3)
  %6492 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6493 = load i32, ptr %6492, align 4, !tbaa !5
  %6494 = call ptr @s2n_strerror_debug(i32 noundef %6493, ptr noundef @.str.3)
  %6495 = call ptr @__errno_location() #12
  %6496 = load i32, ptr %6495, align 4, !tbaa !5
  %6497 = call ptr @strerror(i32 noundef %6496) #11
  %6498 = call ptr @__errno_location() #12
  %6499 = load i32, ptr %6498, align 4, !tbaa !5
  %6500 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6487, ptr noundef @.str, i32 noundef %6488, ptr noundef @.str.41, ptr noundef @.str.2, i32 noundef 303, ptr noundef %6491, ptr noundef %6494, ptr noundef %6497, i32 noundef %6499) #11
  br label %6518

6501:                                             ; preds = %6479, %6472
  %6502 = load i32, ptr %148, align 4, !tbaa !5
  %6503 = call ptr @__errno_location() #12
  store i32 %6502, ptr %6503, align 4, !tbaa !5
  %6504 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6505 = load i32, ptr @test_count, align 4, !tbaa !5
  %6506 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6507 = load i32, ptr %6506, align 4, !tbaa !5
  %6508 = call ptr @s2n_strerror(i32 noundef %6507, ptr noundef @.str.3)
  %6509 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6510 = load i32, ptr %6509, align 4, !tbaa !5
  %6511 = call ptr @s2n_strerror_debug(i32 noundef %6510, ptr noundef @.str.3)
  %6512 = call ptr @__errno_location() #12
  %6513 = load i32, ptr %6512, align 4, !tbaa !5
  %6514 = call ptr @strerror(i32 noundef %6513) #11
  %6515 = call ptr @__errno_location() #12
  %6516 = load i32, ptr %6515, align 4, !tbaa !5
  %6517 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6504, ptr noundef @.str.4, i32 noundef %6505, ptr noundef @.str.41, ptr noundef @.str.2, i32 noundef 303, ptr noundef %6508, ptr noundef %6511, ptr noundef %6514, i32 noundef %6516) #11
  br label %6518

6518:                                             ; preds = %6501, %6484
  call void @llvm.lifetime.end.p0(i64 4, ptr %148) #11
  br label %6519

6519:                                             ; preds = %6518
  br label %6520

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

6521:                                             ; No predecessors!
  br label %6522

6522:                                             ; preds = %6521
  br label %6523

6523:                                             ; preds = %6522, %6452
  br label %6524

6524:                                             ; preds = %6523
  br label %6525

6525:                                             ; preds = %6524
  call void @llvm.lifetime.start.p0(i64 1, ptr %149) #11
  store i8 0, ptr %149, align 1, !tbaa !58
  call void @llvm.lifetime.start.p0(i64 2, ptr %150) #11
  store i16 0, ptr %150, align 2, !tbaa !60
  br label %6526

6526:                                             ; preds = %6525
  %6527 = load i32, ptr @test_count, align 4, !tbaa !5
  %6528 = add nsw i32 %6527, 1
  store i32 %6528, ptr @test_count, align 4, !tbaa !5
  %6529 = load ptr, ptr %6, align 8, !tbaa !9
  %6530 = call i32 @s2n_record_header_parse(ptr noundef %6529, ptr noundef %149, ptr noundef %150)
  %6531 = icmp eq i32 %6530, -1
  br i1 %6531, label %6532, label %6585

6532:                                             ; preds = %6526
  br label %6533

6533:                                             ; preds = %6532
  br label %6534

6534:                                             ; preds = %6533
  call void @llvm.lifetime.start.p0(i64 4, ptr %151) #11
  %6535 = call ptr @__errno_location() #12
  %6536 = load i32, ptr %6535, align 4, !tbaa !5
  store i32 %6536, ptr %151, align 4, !tbaa !5
  %6537 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6538 = call i32 @s2n_print_stacktrace(ptr noundef %6537)
  %6539 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6540 = trunc i8 %6539 to i1
  br i1 %6540, label %6541, label %6563

6541:                                             ; preds = %6534
  %6542 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6543 = call i32 @fileno(ptr noundef %6542) #11
  %6544 = call i32 @isatty(i32 noundef %6543) #11
  %6545 = icmp ne i32 %6544, 0
  br i1 %6545, label %6546, label %6563

6546:                                             ; preds = %6541
  %6547 = load i32, ptr %151, align 4, !tbaa !5
  %6548 = call ptr @__errno_location() #12
  store i32 %6547, ptr %6548, align 4, !tbaa !5
  %6549 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6550 = load i32, ptr @test_count, align 4, !tbaa !5
  %6551 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6552 = load i32, ptr %6551, align 4, !tbaa !5
  %6553 = call ptr @s2n_strerror(i32 noundef %6552, ptr noundef @.str.3)
  %6554 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6555 = load i32, ptr %6554, align 4, !tbaa !5
  %6556 = call ptr @s2n_strerror_debug(i32 noundef %6555, ptr noundef @.str.3)
  %6557 = call ptr @__errno_location() #12
  %6558 = load i32, ptr %6557, align 4, !tbaa !5
  %6559 = call ptr @strerror(i32 noundef %6558) #11
  %6560 = call ptr @__errno_location() #12
  %6561 = load i32, ptr %6560, align 4, !tbaa !5
  %6562 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6549, ptr noundef @.str, i32 noundef %6550, ptr noundef @.str.42, ptr noundef @.str.2, i32 noundef 308, ptr noundef %6553, ptr noundef %6556, ptr noundef %6559, i32 noundef %6561) #11
  br label %6580

6563:                                             ; preds = %6541, %6534
  %6564 = load i32, ptr %151, align 4, !tbaa !5
  %6565 = call ptr @__errno_location() #12
  store i32 %6564, ptr %6565, align 4, !tbaa !5
  %6566 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6567 = load i32, ptr @test_count, align 4, !tbaa !5
  %6568 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6569 = load i32, ptr %6568, align 4, !tbaa !5
  %6570 = call ptr @s2n_strerror(i32 noundef %6569, ptr noundef @.str.3)
  %6571 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6572 = load i32, ptr %6571, align 4, !tbaa !5
  %6573 = call ptr @s2n_strerror_debug(i32 noundef %6572, ptr noundef @.str.3)
  %6574 = call ptr @__errno_location() #12
  %6575 = load i32, ptr %6574, align 4, !tbaa !5
  %6576 = call ptr @strerror(i32 noundef %6575) #11
  %6577 = call ptr @__errno_location() #12
  %6578 = load i32, ptr %6577, align 4, !tbaa !5
  %6579 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6566, ptr noundef @.str.4, i32 noundef %6567, ptr noundef @.str.42, ptr noundef @.str.2, i32 noundef 308, ptr noundef %6570, ptr noundef %6573, ptr noundef %6576, i32 noundef %6578) #11
  br label %6580

6580:                                             ; preds = %6563, %6546
  call void @llvm.lifetime.end.p0(i64 4, ptr %151) #11
  br label %6581

6581:                                             ; preds = %6580
  br label %6582

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

6583:                                             ; No predecessors!
  br label %6584

6584:                                             ; preds = %6583
  br label %6585

6585:                                             ; preds = %6584, %6526
  br label %6586

6586:                                             ; preds = %6585
  br label %6587

6587:                                             ; preds = %6586
  br label %6588

6588:                                             ; preds = %6587
  %6589 = load i32, ptr @test_count, align 4, !tbaa !5
  %6590 = add nsw i32 %6589, 1
  store i32 %6590, ptr @test_count, align 4, !tbaa !5
  %6591 = load ptr, ptr %6, align 8, !tbaa !9
  %6592 = call i32 @s2n_record_parse(ptr noundef %6591)
  %6593 = icmp eq i32 %6592, -1
  br i1 %6593, label %6594, label %6647

6594:                                             ; preds = %6588
  br label %6595

6595:                                             ; preds = %6594
  br label %6596

6596:                                             ; preds = %6595
  call void @llvm.lifetime.start.p0(i64 4, ptr %152) #11
  %6597 = call ptr @__errno_location() #12
  %6598 = load i32, ptr %6597, align 4, !tbaa !5
  store i32 %6598, ptr %152, align 4, !tbaa !5
  %6599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6600 = call i32 @s2n_print_stacktrace(ptr noundef %6599)
  %6601 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6602 = trunc i8 %6601 to i1
  br i1 %6602, label %6603, label %6625

6603:                                             ; preds = %6596
  %6604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6605 = call i32 @fileno(ptr noundef %6604) #11
  %6606 = call i32 @isatty(i32 noundef %6605) #11
  %6607 = icmp ne i32 %6606, 0
  br i1 %6607, label %6608, label %6625

6608:                                             ; preds = %6603
  %6609 = load i32, ptr %152, align 4, !tbaa !5
  %6610 = call ptr @__errno_location() #12
  store i32 %6609, ptr %6610, align 4, !tbaa !5
  %6611 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6612 = load i32, ptr @test_count, align 4, !tbaa !5
  %6613 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6614 = load i32, ptr %6613, align 4, !tbaa !5
  %6615 = call ptr @s2n_strerror(i32 noundef %6614, ptr noundef @.str.3)
  %6616 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6617 = load i32, ptr %6616, align 4, !tbaa !5
  %6618 = call ptr @s2n_strerror_debug(i32 noundef %6617, ptr noundef @.str.3)
  %6619 = call ptr @__errno_location() #12
  %6620 = load i32, ptr %6619, align 4, !tbaa !5
  %6621 = call ptr @strerror(i32 noundef %6620) #11
  %6622 = call ptr @__errno_location() #12
  %6623 = load i32, ptr %6622, align 4, !tbaa !5
  %6624 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6611, ptr noundef @.str, i32 noundef %6612, ptr noundef @.str.43, ptr noundef @.str.2, i32 noundef 309, ptr noundef %6615, ptr noundef %6618, ptr noundef %6621, i32 noundef %6623) #11
  br label %6642

6625:                                             ; preds = %6603, %6596
  %6626 = load i32, ptr %152, align 4, !tbaa !5
  %6627 = call ptr @__errno_location() #12
  store i32 %6626, ptr %6627, align 4, !tbaa !5
  %6628 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6629 = load i32, ptr @test_count, align 4, !tbaa !5
  %6630 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6631 = load i32, ptr %6630, align 4, !tbaa !5
  %6632 = call ptr @s2n_strerror(i32 noundef %6631, ptr noundef @.str.3)
  %6633 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6634 = load i32, ptr %6633, align 4, !tbaa !5
  %6635 = call ptr @s2n_strerror_debug(i32 noundef %6634, ptr noundef @.str.3)
  %6636 = call ptr @__errno_location() #12
  %6637 = load i32, ptr %6636, align 4, !tbaa !5
  %6638 = call ptr @strerror(i32 noundef %6637) #11
  %6639 = call ptr @__errno_location() #12
  %6640 = load i32, ptr %6639, align 4, !tbaa !5
  %6641 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6628, ptr noundef @.str.4, i32 noundef %6629, ptr noundef @.str.43, ptr noundef @.str.2, i32 noundef 309, ptr noundef %6632, ptr noundef %6635, ptr noundef %6638, i32 noundef %6640) #11
  br label %6642

6642:                                             ; preds = %6625, %6608
  call void @llvm.lifetime.end.p0(i64 4, ptr %152) #11
  br label %6643

6643:                                             ; preds = %6642
  br label %6644

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

6645:                                             ; No predecessors!
  br label %6646

6646:                                             ; preds = %6645
  br label %6647

6647:                                             ; preds = %6646, %6588
  br label %6648

6648:                                             ; preds = %6647
  br label %6649

6649:                                             ; preds = %6648
  br label %6650

6650:                                             ; preds = %6649
  %6651 = load i32, ptr @test_count, align 4, !tbaa !5
  %6652 = add nsw i32 %6651, 1
  store i32 %6652, ptr @test_count, align 4, !tbaa !5
  %6653 = load i8, ptr %149, align 1, !tbaa !58
  %6654 = zext i8 %6653 to i32
  %6655 = icmp eq i32 %6654, 23
  br i1 %6655, label %6709, label %6656

6656:                                             ; preds = %6650
  br label %6657

6657:                                             ; preds = %6656
  br label %6658

6658:                                             ; preds = %6657
  call void @llvm.lifetime.start.p0(i64 4, ptr %153) #11
  %6659 = call ptr @__errno_location() #12
  %6660 = load i32, ptr %6659, align 4, !tbaa !5
  store i32 %6660, ptr %153, align 4, !tbaa !5
  %6661 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6662 = call i32 @s2n_print_stacktrace(ptr noundef %6661)
  %6663 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6664 = trunc i8 %6663 to i1
  br i1 %6664, label %6665, label %6687

6665:                                             ; preds = %6658
  %6666 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6667 = call i32 @fileno(ptr noundef %6666) #11
  %6668 = call i32 @isatty(i32 noundef %6667) #11
  %6669 = icmp ne i32 %6668, 0
  br i1 %6669, label %6670, label %6687

6670:                                             ; preds = %6665
  %6671 = load i32, ptr %153, align 4, !tbaa !5
  %6672 = call ptr @__errno_location() #12
  store i32 %6671, ptr %6672, align 4, !tbaa !5
  %6673 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6674 = load i32, ptr @test_count, align 4, !tbaa !5
  %6675 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6676 = load i32, ptr %6675, align 4, !tbaa !5
  %6677 = call ptr @s2n_strerror(i32 noundef %6676, ptr noundef @.str.3)
  %6678 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6679 = load i32, ptr %6678, align 4, !tbaa !5
  %6680 = call ptr @s2n_strerror_debug(i32 noundef %6679, ptr noundef @.str.3)
  %6681 = call ptr @__errno_location() #12
  %6682 = load i32, ptr %6681, align 4, !tbaa !5
  %6683 = call ptr @strerror(i32 noundef %6682) #11
  %6684 = call ptr @__errno_location() #12
  %6685 = load i32, ptr %6684, align 4, !tbaa !5
  %6686 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6673, ptr noundef @.str, i32 noundef %6674, ptr noundef @.str.44, ptr noundef @.str.2, i32 noundef 310, ptr noundef %6677, ptr noundef %6680, ptr noundef %6683, i32 noundef %6685) #11
  br label %6704

6687:                                             ; preds = %6665, %6658
  %6688 = load i32, ptr %153, align 4, !tbaa !5
  %6689 = call ptr @__errno_location() #12
  store i32 %6688, ptr %6689, align 4, !tbaa !5
  %6690 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6691 = load i32, ptr @test_count, align 4, !tbaa !5
  %6692 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6693 = load i32, ptr %6692, align 4, !tbaa !5
  %6694 = call ptr @s2n_strerror(i32 noundef %6693, ptr noundef @.str.3)
  %6695 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6696 = load i32, ptr %6695, align 4, !tbaa !5
  %6697 = call ptr @s2n_strerror_debug(i32 noundef %6696, ptr noundef @.str.3)
  %6698 = call ptr @__errno_location() #12
  %6699 = load i32, ptr %6698, align 4, !tbaa !5
  %6700 = call ptr @strerror(i32 noundef %6699) #11
  %6701 = call ptr @__errno_location() #12
  %6702 = load i32, ptr %6701, align 4, !tbaa !5
  %6703 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6690, ptr noundef @.str.4, i32 noundef %6691, ptr noundef @.str.44, ptr noundef @.str.2, i32 noundef 310, ptr noundef %6694, ptr noundef %6697, ptr noundef %6700, i32 noundef %6702) #11
  br label %6704

6704:                                             ; preds = %6687, %6670
  call void @llvm.lifetime.end.p0(i64 4, ptr %153) #11
  br label %6705

6705:                                             ; preds = %6704
  br label %6706

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

6707:                                             ; No predecessors!
  br label %6708

6708:                                             ; preds = %6707
  br label %6709

6709:                                             ; preds = %6708, %6650
  br label %6710

6710:                                             ; preds = %6709
  br label %6711

6711:                                             ; preds = %6710
  br label %6712

6712:                                             ; preds = %6711
  %6713 = load i32, ptr @test_count, align 4, !tbaa !5
  %6714 = add nsw i32 %6713, 1
  store i32 %6714, ptr @test_count, align 4, !tbaa !5
  %6715 = load i16, ptr %150, align 2, !tbaa !60
  %6716 = zext i16 %6715 to i32
  %6717 = load i16, ptr %134, align 2, !tbaa !60
  %6718 = zext i16 %6717 to i32
  %6719 = icmp eq i32 %6716, %6718
  br i1 %6719, label %6773, label %6720

6720:                                             ; preds = %6712
  br label %6721

6721:                                             ; preds = %6720
  br label %6722

6722:                                             ; preds = %6721
  call void @llvm.lifetime.start.p0(i64 4, ptr %154) #11
  %6723 = call ptr @__errno_location() #12
  %6724 = load i32, ptr %6723, align 4, !tbaa !5
  store i32 %6724, ptr %154, align 4, !tbaa !5
  %6725 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6726 = call i32 @s2n_print_stacktrace(ptr noundef %6725)
  %6727 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6728 = trunc i8 %6727 to i1
  br i1 %6728, label %6729, label %6751

6729:                                             ; preds = %6722
  %6730 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6731 = call i32 @fileno(ptr noundef %6730) #11
  %6732 = call i32 @isatty(i32 noundef %6731) #11
  %6733 = icmp ne i32 %6732, 0
  br i1 %6733, label %6734, label %6751

6734:                                             ; preds = %6729
  %6735 = load i32, ptr %154, align 4, !tbaa !5
  %6736 = call ptr @__errno_location() #12
  store i32 %6735, ptr %6736, align 4, !tbaa !5
  %6737 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6738 = load i32, ptr @test_count, align 4, !tbaa !5
  %6739 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6740 = load i32, ptr %6739, align 4, !tbaa !5
  %6741 = call ptr @s2n_strerror(i32 noundef %6740, ptr noundef @.str.3)
  %6742 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6743 = load i32, ptr %6742, align 4, !tbaa !5
  %6744 = call ptr @s2n_strerror_debug(i32 noundef %6743, ptr noundef @.str.3)
  %6745 = call ptr @__errno_location() #12
  %6746 = load i32, ptr %6745, align 4, !tbaa !5
  %6747 = call ptr @strerror(i32 noundef %6746) #11
  %6748 = call ptr @__errno_location() #12
  %6749 = load i32, ptr %6748, align 4, !tbaa !5
  %6750 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6737, ptr noundef @.str, i32 noundef %6738, ptr noundef @.str.45, ptr noundef @.str.2, i32 noundef 311, ptr noundef %6741, ptr noundef %6744, ptr noundef %6747, i32 noundef %6749) #11
  br label %6768

6751:                                             ; preds = %6729, %6722
  %6752 = load i32, ptr %154, align 4, !tbaa !5
  %6753 = call ptr @__errno_location() #12
  store i32 %6752, ptr %6753, align 4, !tbaa !5
  %6754 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6755 = load i32, ptr @test_count, align 4, !tbaa !5
  %6756 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6757 = load i32, ptr %6756, align 4, !tbaa !5
  %6758 = call ptr @s2n_strerror(i32 noundef %6757, ptr noundef @.str.3)
  %6759 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6760 = load i32, ptr %6759, align 4, !tbaa !5
  %6761 = call ptr @s2n_strerror_debug(i32 noundef %6760, ptr noundef @.str.3)
  %6762 = call ptr @__errno_location() #12
  %6763 = load i32, ptr %6762, align 4, !tbaa !5
  %6764 = call ptr @strerror(i32 noundef %6763) #11
  %6765 = call ptr @__errno_location() #12
  %6766 = load i32, ptr %6765, align 4, !tbaa !5
  %6767 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6754, ptr noundef @.str.4, i32 noundef %6755, ptr noundef @.str.45, ptr noundef @.str.2, i32 noundef 311, ptr noundef %6758, ptr noundef %6761, ptr noundef %6764, i32 noundef %6766) #11
  br label %6768

6768:                                             ; preds = %6751, %6734
  call void @llvm.lifetime.end.p0(i64 4, ptr %154) #11
  br label %6769

6769:                                             ; preds = %6768
  br label %6770

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

6771:                                             ; No predecessors!
  br label %6772

6772:                                             ; preds = %6771
  br label %6773

6773:                                             ; preds = %6772, %6712
  br label %6774

6774:                                             ; preds = %6773
  br label %6775

6775:                                             ; preds = %6774
  br label %6776

6776:                                             ; preds = %6775
  %6777 = load i32, ptr @test_count, align 4, !tbaa !5
  %6778 = add nsw i32 %6777, 1
  store i32 %6778, ptr @test_count, align 4, !tbaa !5
  %6779 = load ptr, ptr %6, align 8, !tbaa !9
  %6780 = getelementptr inbounds %struct.s2n_connection, ptr %6779, i32 0, i32 38
  %6781 = call i32 @s2n_stuffer_wipe(ptr noundef %6780)
  %6782 = icmp eq i32 %6781, -1
  br i1 %6782, label %6783, label %6836

6783:                                             ; preds = %6776
  br label %6784

6784:                                             ; preds = %6783
  br label %6785

6785:                                             ; preds = %6784
  call void @llvm.lifetime.start.p0(i64 4, ptr %155) #11
  %6786 = call ptr @__errno_location() #12
  %6787 = load i32, ptr %6786, align 4, !tbaa !5
  store i32 %6787, ptr %155, align 4, !tbaa !5
  %6788 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6789 = call i32 @s2n_print_stacktrace(ptr noundef %6788)
  %6790 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6791 = trunc i8 %6790 to i1
  br i1 %6791, label %6792, label %6814

6792:                                             ; preds = %6785
  %6793 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6794 = call i32 @fileno(ptr noundef %6793) #11
  %6795 = call i32 @isatty(i32 noundef %6794) #11
  %6796 = icmp ne i32 %6795, 0
  br i1 %6796, label %6797, label %6814

6797:                                             ; preds = %6792
  %6798 = load i32, ptr %155, align 4, !tbaa !5
  %6799 = call ptr @__errno_location() #12
  store i32 %6798, ptr %6799, align 4, !tbaa !5
  %6800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6801 = load i32, ptr @test_count, align 4, !tbaa !5
  %6802 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6803 = load i32, ptr %6802, align 4, !tbaa !5
  %6804 = call ptr @s2n_strerror(i32 noundef %6803, ptr noundef @.str.3)
  %6805 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6806 = load i32, ptr %6805, align 4, !tbaa !5
  %6807 = call ptr @s2n_strerror_debug(i32 noundef %6806, ptr noundef @.str.3)
  %6808 = call ptr @__errno_location() #12
  %6809 = load i32, ptr %6808, align 4, !tbaa !5
  %6810 = call ptr @strerror(i32 noundef %6809) #11
  %6811 = call ptr @__errno_location() #12
  %6812 = load i32, ptr %6811, align 4, !tbaa !5
  %6813 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6800, ptr noundef @.str, i32 noundef %6801, ptr noundef @.str.39, ptr noundef @.str.2, i32 noundef 313, ptr noundef %6804, ptr noundef %6807, ptr noundef %6810, i32 noundef %6812) #11
  br label %6831

6814:                                             ; preds = %6792, %6785
  %6815 = load i32, ptr %155, align 4, !tbaa !5
  %6816 = call ptr @__errno_location() #12
  store i32 %6815, ptr %6816, align 4, !tbaa !5
  %6817 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6818 = load i32, ptr @test_count, align 4, !tbaa !5
  %6819 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6820 = load i32, ptr %6819, align 4, !tbaa !5
  %6821 = call ptr @s2n_strerror(i32 noundef %6820, ptr noundef @.str.3)
  %6822 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6823 = load i32, ptr %6822, align 4, !tbaa !5
  %6824 = call ptr @s2n_strerror_debug(i32 noundef %6823, ptr noundef @.str.3)
  %6825 = call ptr @__errno_location() #12
  %6826 = load i32, ptr %6825, align 4, !tbaa !5
  %6827 = call ptr @strerror(i32 noundef %6826) #11
  %6828 = call ptr @__errno_location() #12
  %6829 = load i32, ptr %6828, align 4, !tbaa !5
  %6830 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6817, ptr noundef @.str.4, i32 noundef %6818, ptr noundef @.str.39, ptr noundef @.str.2, i32 noundef 313, ptr noundef %6821, ptr noundef %6824, ptr noundef %6827, i32 noundef %6829) #11
  br label %6831

6831:                                             ; preds = %6814, %6797
  call void @llvm.lifetime.end.p0(i64 4, ptr %155) #11
  br label %6832

6832:                                             ; preds = %6831
  br label %6833

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

6834:                                             ; No predecessors!
  br label %6835

6835:                                             ; preds = %6834
  br label %6836

6836:                                             ; preds = %6835, %6776
  br label %6837

6837:                                             ; preds = %6836
  br label %6838

6838:                                             ; preds = %6837
  br label %6839

6839:                                             ; preds = %6838
  %6840 = load i32, ptr @test_count, align 4, !tbaa !5
  %6841 = add nsw i32 %6840, 1
  store i32 %6841, ptr @test_count, align 4, !tbaa !5
  %6842 = load ptr, ptr %6, align 8, !tbaa !9
  %6843 = getelementptr inbounds %struct.s2n_connection, ptr %6842, i32 0, i32 40
  %6844 = call i32 @s2n_stuffer_wipe(ptr noundef %6843)
  %6845 = icmp eq i32 %6844, -1
  br i1 %6845, label %6846, label %6899

6846:                                             ; preds = %6839
  br label %6847

6847:                                             ; preds = %6846
  br label %6848

6848:                                             ; preds = %6847
  call void @llvm.lifetime.start.p0(i64 4, ptr %156) #11
  %6849 = call ptr @__errno_location() #12
  %6850 = load i32, ptr %6849, align 4, !tbaa !5
  store i32 %6850, ptr %156, align 4, !tbaa !5
  %6851 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6852 = call i32 @s2n_print_stacktrace(ptr noundef %6851)
  %6853 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6854 = trunc i8 %6853 to i1
  br i1 %6854, label %6855, label %6877

6855:                                             ; preds = %6848
  %6856 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6857 = call i32 @fileno(ptr noundef %6856) #11
  %6858 = call i32 @isatty(i32 noundef %6857) #11
  %6859 = icmp ne i32 %6858, 0
  br i1 %6859, label %6860, label %6877

6860:                                             ; preds = %6855
  %6861 = load i32, ptr %156, align 4, !tbaa !5
  %6862 = call ptr @__errno_location() #12
  store i32 %6861, ptr %6862, align 4, !tbaa !5
  %6863 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6864 = load i32, ptr @test_count, align 4, !tbaa !5
  %6865 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6866 = load i32, ptr %6865, align 4, !tbaa !5
  %6867 = call ptr @s2n_strerror(i32 noundef %6866, ptr noundef @.str.3)
  %6868 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6869 = load i32, ptr %6868, align 4, !tbaa !5
  %6870 = call ptr @s2n_strerror_debug(i32 noundef %6869, ptr noundef @.str.3)
  %6871 = call ptr @__errno_location() #12
  %6872 = load i32, ptr %6871, align 4, !tbaa !5
  %6873 = call ptr @strerror(i32 noundef %6872) #11
  %6874 = call ptr @__errno_location() #12
  %6875 = load i32, ptr %6874, align 4, !tbaa !5
  %6876 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6863, ptr noundef @.str, i32 noundef %6864, ptr noundef @.str.38, ptr noundef @.str.2, i32 noundef 314, ptr noundef %6867, ptr noundef %6870, ptr noundef %6873, i32 noundef %6875) #11
  br label %6894

6877:                                             ; preds = %6855, %6848
  %6878 = load i32, ptr %156, align 4, !tbaa !5
  %6879 = call ptr @__errno_location() #12
  store i32 %6878, ptr %6879, align 4, !tbaa !5
  %6880 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6881 = load i32, ptr @test_count, align 4, !tbaa !5
  %6882 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6883 = load i32, ptr %6882, align 4, !tbaa !5
  %6884 = call ptr @s2n_strerror(i32 noundef %6883, ptr noundef @.str.3)
  %6885 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6886 = load i32, ptr %6885, align 4, !tbaa !5
  %6887 = call ptr @s2n_strerror_debug(i32 noundef %6886, ptr noundef @.str.3)
  %6888 = call ptr @__errno_location() #12
  %6889 = load i32, ptr %6888, align 4, !tbaa !5
  %6890 = call ptr @strerror(i32 noundef %6889) #11
  %6891 = call ptr @__errno_location() #12
  %6892 = load i32, ptr %6891, align 4, !tbaa !5
  %6893 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6880, ptr noundef @.str.4, i32 noundef %6881, ptr noundef @.str.38, ptr noundef @.str.2, i32 noundef 314, ptr noundef %6884, ptr noundef %6887, ptr noundef %6890, i32 noundef %6892) #11
  br label %6894

6894:                                             ; preds = %6877, %6860
  call void @llvm.lifetime.end.p0(i64 4, ptr %156) #11
  br label %6895

6895:                                             ; preds = %6894
  br label %6896

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

6897:                                             ; No predecessors!
  br label %6898

6898:                                             ; preds = %6897
  br label %6899

6899:                                             ; preds = %6898, %6839
  br label %6900

6900:                                             ; preds = %6899
  br label %6901

6901:                                             ; preds = %6900
  call void @llvm.lifetime.end.p0(i64 2, ptr %150) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %149) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %136) #11
  call void @llvm.lifetime.end.p0(i64 2, ptr %134) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %129) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %128) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %119) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %117) #11
  br label %6902

6902:                                             ; preds = %6901
  %6903 = load i32, ptr %116, align 4, !tbaa !5
  %6904 = add nsw i32 %6903, 1
  store i32 %6904, ptr %116, align 4, !tbaa !5
  br label %4931, !llvm.loop !69

6905:                                             ; preds = %4934
  br label %6906

6906:                                             ; preds = %6905
  %6907 = load i32, ptr %115, align 4, !tbaa !5
  %6908 = add nsw i32 %6907, 1
  store i32 %6908, ptr %115, align 4, !tbaa !5
  br label %4926, !llvm.loop !70

6909:                                             ; preds = %4929
  %6910 = load ptr, ptr %6, align 8, !tbaa !9
  %6911 = getelementptr inbounds %struct.s2n_connection, ptr %6910, i32 0, i32 26
  %6912 = load ptr, ptr %6911, align 8, !tbaa !17
  %6913 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %6912, i32 0, i32 0
  %6914 = load ptr, ptr %6913, align 8, !tbaa !46
  %6915 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %6914, i32 0, i32 6
  store ptr @s2n_record_alg_aes256_sha256_composite, ptr %6915, align 8, !tbaa !51
  call void @llvm.lifetime.start.p0(i64 4, ptr %157) #11
  store i32 0, ptr %157, align 4, !tbaa !5
  br label %6916

6916:                                             ; preds = %8896, %6909
  %6917 = load i32, ptr %157, align 4, !tbaa !5
  %6918 = icmp slt i32 %6917, 3
  br i1 %6918, label %6920, label %6919

6919:                                             ; preds = %6916
  store i32 616, ptr %25, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %157) #11
  br label %8899

6920:                                             ; preds = %6916
  call void @llvm.lifetime.start.p0(i64 4, ptr %158) #11
  store i32 0, ptr %158, align 4, !tbaa !5
  br label %6921

6921:                                             ; preds = %8892, %6920
  %6922 = load i32, ptr %158, align 4, !tbaa !5
  %6923 = icmp sle i32 %6922, 8088
  br i1 %6923, label %6925, label %6924

6924:                                             ; preds = %6921
  store i32 619, ptr %25, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %158) #11
  br label %8895

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

6926:                                             ; preds = %6925
  %6927 = load i32, ptr @test_count, align 4, !tbaa !5
  %6928 = add nsw i32 %6927, 1
  store i32 %6928, ptr @test_count, align 4, !tbaa !5
  %6929 = getelementptr inbounds [8088 x i8], ptr %7, i64 0, i64 0
  %6930 = load i32, ptr %158, align 4, !tbaa !5
  %6931 = call i32 @s2n_blob_init(ptr noundef %159, ptr noundef %6929, i32 noundef %6930)
  %6932 = icmp eq i32 %6931, -1
  br i1 %6932, label %6933, label %6986

6933:                                             ; preds = %6926
  br label %6934

6934:                                             ; preds = %6933
  br label %6935

6935:                                             ; preds = %6934
  call void @llvm.lifetime.start.p0(i64 4, ptr %160) #11
  %6936 = call ptr @__errno_location() #12
  %6937 = load i32, ptr %6936, align 4, !tbaa !5
  store i32 %6937, ptr %160, align 4, !tbaa !5
  %6938 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6939 = call i32 @s2n_print_stacktrace(ptr noundef %6938)
  %6940 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6941 = trunc i8 %6940 to i1
  br i1 %6941, label %6942, label %6964

6942:                                             ; preds = %6935
  %6943 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6944 = call i32 @fileno(ptr noundef %6943) #11
  %6945 = call i32 @isatty(i32 noundef %6944) #11
  %6946 = icmp ne i32 %6945, 0
  br i1 %6946, label %6947, label %6964

6947:                                             ; preds = %6942
  %6948 = load i32, ptr %160, align 4, !tbaa !5
  %6949 = call ptr @__errno_location() #12
  store i32 %6948, ptr %6949, align 4, !tbaa !5
  %6950 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6951 = load i32, ptr @test_count, align 4, !tbaa !5
  %6952 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6953 = load i32, ptr %6952, align 4, !tbaa !5
  %6954 = call ptr @s2n_strerror(i32 noundef %6953, ptr noundef @.str.3)
  %6955 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6956 = load i32, ptr %6955, align 4, !tbaa !5
  %6957 = call ptr @s2n_strerror_debug(i32 noundef %6956, ptr noundef @.str.3)
  %6958 = call ptr @__errno_location() #12
  %6959 = load i32, ptr %6958, align 4, !tbaa !5
  %6960 = call ptr @strerror(i32 noundef %6959) #11
  %6961 = call ptr @__errno_location() #12
  %6962 = load i32, ptr %6961, align 4, !tbaa !5
  %6963 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6950, ptr noundef @.str, i32 noundef %6951, ptr noundef @.str.20, ptr noundef @.str.2, i32 noundef 323, ptr noundef %6954, ptr noundef %6957, ptr noundef %6960, i32 noundef %6962) #11
  br label %6981

6964:                                             ; preds = %6942, %6935
  %6965 = load i32, ptr %160, align 4, !tbaa !5
  %6966 = call ptr @__errno_location() #12
  store i32 %6965, ptr %6966, align 4, !tbaa !5
  %6967 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6968 = load i32, ptr @test_count, align 4, !tbaa !5
  %6969 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6970 = load i32, ptr %6969, align 4, !tbaa !5
  %6971 = call ptr @s2n_strerror(i32 noundef %6970, ptr noundef @.str.3)
  %6972 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6973 = load i32, ptr %6972, align 4, !tbaa !5
  %6974 = call ptr @s2n_strerror_debug(i32 noundef %6973, ptr noundef @.str.3)
  %6975 = call ptr @__errno_location() #12
  %6976 = load i32, ptr %6975, align 4, !tbaa !5
  %6977 = call ptr @strerror(i32 noundef %6976) #11
  %6978 = call ptr @__errno_location() #12
  %6979 = load i32, ptr %6978, align 4, !tbaa !5
  %6980 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6967, ptr noundef @.str.4, i32 noundef %6968, ptr noundef @.str.20, ptr noundef @.str.2, i32 noundef 323, ptr noundef %6971, ptr noundef %6974, ptr noundef %6977, i32 noundef %6979) #11
  br label %6981

6981:                                             ; preds = %6964, %6947
  call void @llvm.lifetime.end.p0(i64 4, ptr %160) #11
  br label %6982

6982:                                             ; preds = %6981
  br label %6983

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

6984:                                             ; No predecessors!
  br label %6985

6985:                                             ; preds = %6984
  br label %6986

6986:                                             ; preds = %6985, %6926
  br label %6987

6987:                                             ; preds = %6986
  br label %6988

6988:                                             ; preds = %6987
  call void @llvm.lifetime.start.p0(i64 4, ptr %161) #11
  store i32 0, ptr %161, align 4, !tbaa !5
  br label %6989

6989:                                             ; preds = %6988
  %6990 = load i32, ptr @test_count, align 4, !tbaa !5
  %6991 = add nsw i32 %6990, 1
  store i32 %6991, ptr @test_count, align 4, !tbaa !5
  %6992 = load ptr, ptr %6, align 8, !tbaa !9
  %6993 = call i32 @s2n_connection_wipe(ptr noundef %6992)
  %6994 = icmp eq i32 %6993, -1
  br i1 %6994, label %6995, label %7048

6995:                                             ; preds = %6989
  br label %6996

6996:                                             ; preds = %6995
  br label %6997

6997:                                             ; preds = %6996
  call void @llvm.lifetime.start.p0(i64 4, ptr %162) #11
  %6998 = call ptr @__errno_location() #12
  %6999 = load i32, ptr %6998, align 4, !tbaa !5
  store i32 %6999, ptr %162, align 4, !tbaa !5
  %7000 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7001 = call i32 @s2n_print_stacktrace(ptr noundef %7000)
  %7002 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7003 = trunc i8 %7002 to i1
  br i1 %7003, label %7004, label %7026

7004:                                             ; preds = %6997
  %7005 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7006 = call i32 @fileno(ptr noundef %7005) #11
  %7007 = call i32 @isatty(i32 noundef %7006) #11
  %7008 = icmp ne i32 %7007, 0
  br i1 %7008, label %7009, label %7026

7009:                                             ; preds = %7004
  %7010 = load i32, ptr %162, align 4, !tbaa !5
  %7011 = call ptr @__errno_location() #12
  store i32 %7010, ptr %7011, align 4, !tbaa !5
  %7012 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7013 = load i32, ptr @test_count, align 4, !tbaa !5
  %7014 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7015 = load i32, ptr %7014, align 4, !tbaa !5
  %7016 = call ptr @s2n_strerror(i32 noundef %7015, ptr noundef @.str.3)
  %7017 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7018 = load i32, ptr %7017, align 4, !tbaa !5
  %7019 = call ptr @s2n_strerror_debug(i32 noundef %7018, ptr noundef @.str.3)
  %7020 = call ptr @__errno_location() #12
  %7021 = load i32, ptr %7020, align 4, !tbaa !5
  %7022 = call ptr @strerror(i32 noundef %7021) #11
  %7023 = call ptr @__errno_location() #12
  %7024 = load i32, ptr %7023, align 4, !tbaa !5
  %7025 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7012, ptr noundef @.str, i32 noundef %7013, ptr noundef @.str.21, ptr noundef @.str.2, i32 noundef 326, ptr noundef %7016, ptr noundef %7019, ptr noundef %7022, i32 noundef %7024) #11
  br label %7043

7026:                                             ; preds = %7004, %6997
  %7027 = load i32, ptr %162, align 4, !tbaa !5
  %7028 = call ptr @__errno_location() #12
  store i32 %7027, ptr %7028, align 4, !tbaa !5
  %7029 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7030 = load i32, ptr @test_count, align 4, !tbaa !5
  %7031 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7032 = load i32, ptr %7031, align 4, !tbaa !5
  %7033 = call ptr @s2n_strerror(i32 noundef %7032, ptr noundef @.str.3)
  %7034 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7035 = load i32, ptr %7034, align 4, !tbaa !5
  %7036 = call ptr @s2n_strerror_debug(i32 noundef %7035, ptr noundef @.str.3)
  %7037 = call ptr @__errno_location() #12
  %7038 = load i32, ptr %7037, align 4, !tbaa !5
  %7039 = call ptr @strerror(i32 noundef %7038) #11
  %7040 = call ptr @__errno_location() #12
  %7041 = load i32, ptr %7040, align 4, !tbaa !5
  %7042 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7029, ptr noundef @.str.4, i32 noundef %7030, ptr noundef @.str.21, ptr noundef @.str.2, i32 noundef 326, ptr noundef %7033, ptr noundef %7036, ptr noundef %7039, i32 noundef %7041) #11
  br label %7043

7043:                                             ; preds = %7026, %7009
  call void @llvm.lifetime.end.p0(i64 4, ptr %162) #11
  br label %7044

7044:                                             ; preds = %7043
  br label %7045

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

7046:                                             ; No predecessors!
  br label %7047

7047:                                             ; preds = %7046
  br label %7048

7048:                                             ; preds = %7047, %6989
  br label %7049

7049:                                             ; preds = %7048
  br label %7050

7050:                                             ; preds = %7049
  br label %7051

7051:                                             ; preds = %7050
  %7052 = load i32, ptr @test_count, align 4, !tbaa !5
  %7053 = add nsw i32 %7052, 1
  store i32 %7053, ptr @test_count, align 4, !tbaa !5
  %7054 = load ptr, ptr %6, align 8, !tbaa !9
  %7055 = getelementptr inbounds %struct.s2n_connection, ptr %7054, i32 0, i32 26
  %7056 = load ptr, ptr %7055, align 8, !tbaa !17
  %7057 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %7056, i32 0, i32 0
  %7058 = load ptr, ptr %7057, align 8, !tbaa !46
  %7059 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %7058, i32 0, i32 6
  %7060 = load ptr, ptr %7059, align 8, !tbaa !51
  %7061 = getelementptr inbounds %struct.s2n_record_algorithm, ptr %7060, i32 0, i32 0
  %7062 = load ptr, ptr %7061, align 8, !tbaa !54
  %7063 = getelementptr inbounds %struct.s2n_cipher, ptr %7062, i32 0, i32 6
  %7064 = load ptr, ptr %7063, align 8, !tbaa !56
  %7065 = load ptr, ptr %6, align 8, !tbaa !9
  %7066 = getelementptr inbounds %struct.s2n_connection, ptr %7065, i32 0, i32 26
  %7067 = load ptr, ptr %7066, align 8, !tbaa !17
  %7068 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %7067, i32 0, i32 2
  %7069 = call i32 %7064(ptr noundef %7068, ptr noundef %14)
  %7070 = getelementptr inbounds %struct.s2n_result, ptr %163, i32 0, i32 0
  store i32 %7069, ptr %7070, align 4
  %7071 = getelementptr inbounds %struct.s2n_result, ptr %163, i32 0, i32 0
  %7072 = load i32, ptr %7071, align 4
  %7073 = call zeroext i1 @s2n_result_is_ok(i32 %7072)
  br i1 %7073, label %7127, label %7074

7074:                                             ; preds = %7051
  br label %7075

7075:                                             ; preds = %7074
  br label %7076

7076:                                             ; preds = %7075
  call void @llvm.lifetime.start.p0(i64 4, ptr %164) #11
  %7077 = call ptr @__errno_location() #12
  %7078 = load i32, ptr %7077, align 4, !tbaa !5
  store i32 %7078, ptr %164, align 4, !tbaa !5
  %7079 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7080 = call i32 @s2n_print_stacktrace(ptr noundef %7079)
  %7081 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7082 = trunc i8 %7081 to i1
  br i1 %7082, label %7083, label %7105

7083:                                             ; preds = %7076
  %7084 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7085 = call i32 @fileno(ptr noundef %7084) #11
  %7086 = call i32 @isatty(i32 noundef %7085) #11
  %7087 = icmp ne i32 %7086, 0
  br i1 %7087, label %7088, label %7105

7088:                                             ; preds = %7083
  %7089 = load i32, ptr %164, align 4, !tbaa !5
  %7090 = call ptr @__errno_location() #12
  store i32 %7089, ptr %7090, align 4, !tbaa !5
  %7091 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7092 = load i32, ptr @test_count, align 4, !tbaa !5
  %7093 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7094 = load i32, ptr %7093, align 4, !tbaa !5
  %7095 = call ptr @s2n_strerror(i32 noundef %7094, ptr noundef @.str.3)
  %7096 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7097 = load i32, ptr %7096, align 4, !tbaa !5
  %7098 = call ptr @s2n_strerror_debug(i32 noundef %7097, ptr noundef @.str.3)
  %7099 = call ptr @__errno_location() #12
  %7100 = load i32, ptr %7099, align 4, !tbaa !5
  %7101 = call ptr @strerror(i32 noundef %7100) #11
  %7102 = call ptr @__errno_location() #12
  %7103 = load i32, ptr %7102, align 4, !tbaa !5
  %7104 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7091, ptr noundef @.str, i32 noundef %7092, ptr noundef @.str.46, ptr noundef @.str.2, i32 noundef 328, ptr noundef %7095, ptr noundef %7098, ptr noundef %7101, i32 noundef %7103) #11
  br label %7122

7105:                                             ; preds = %7083, %7076
  %7106 = load i32, ptr %164, align 4, !tbaa !5
  %7107 = call ptr @__errno_location() #12
  store i32 %7106, ptr %7107, align 4, !tbaa !5
  %7108 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7109 = load i32, ptr @test_count, align 4, !tbaa !5
  %7110 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7111 = load i32, ptr %7110, align 4, !tbaa !5
  %7112 = call ptr @s2n_strerror(i32 noundef %7111, ptr noundef @.str.3)
  %7113 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7114 = load i32, ptr %7113, align 4, !tbaa !5
  %7115 = call ptr @s2n_strerror_debug(i32 noundef %7114, ptr noundef @.str.3)
  %7116 = call ptr @__errno_location() #12
  %7117 = load i32, ptr %7116, align 4, !tbaa !5
  %7118 = call ptr @strerror(i32 noundef %7117) #11
  %7119 = call ptr @__errno_location() #12
  %7120 = load i32, ptr %7119, align 4, !tbaa !5
  %7121 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7108, ptr noundef @.str.4, i32 noundef %7109, ptr noundef @.str.46, ptr noundef @.str.2, i32 noundef 328, ptr noundef %7112, ptr noundef %7115, ptr noundef %7118, i32 noundef %7120) #11
  br label %7122

7122:                                             ; preds = %7105, %7088
  call void @llvm.lifetime.end.p0(i64 4, ptr %164) #11
  br label %7123

7123:                                             ; preds = %7122
  br label %7124

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

7125:                                             ; No predecessors!
  br label %7126

7126:                                             ; preds = %7125
  br label %7127

7127:                                             ; preds = %7126, %7051
  br label %7128

7128:                                             ; preds = %7127
  br label %7129

7129:                                             ; preds = %7128
  br label %7130

7130:                                             ; preds = %7129
  %7131 = load i32, ptr @test_count, align 4, !tbaa !5
  %7132 = add nsw i32 %7131, 1
  store i32 %7132, ptr @test_count, align 4, !tbaa !5
  %7133 = load ptr, ptr %6, align 8, !tbaa !9
  %7134 = getelementptr inbounds %struct.s2n_connection, ptr %7133, i32 0, i32 26
  %7135 = load ptr, ptr %7134, align 8, !tbaa !17
  %7136 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %7135, i32 0, i32 0
  %7137 = load ptr, ptr %7136, align 8, !tbaa !46
  %7138 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %7137, i32 0, i32 6
  %7139 = load ptr, ptr %7138, align 8, !tbaa !51
  %7140 = getelementptr inbounds %struct.s2n_record_algorithm, ptr %7139, i32 0, i32 0
  %7141 = load ptr, ptr %7140, align 8, !tbaa !54
  %7142 = getelementptr inbounds %struct.s2n_cipher, ptr %7141, i32 0, i32 5
  %7143 = load ptr, ptr %7142, align 8, !tbaa !57
  %7144 = load ptr, ptr %6, align 8, !tbaa !9
  %7145 = getelementptr inbounds %struct.s2n_connection, ptr %7144, i32 0, i32 26
  %7146 = load ptr, ptr %7145, align 8, !tbaa !17
  %7147 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %7146, i32 0, i32 1
  %7148 = call i32 %7143(ptr noundef %7147, ptr noundef %14)
  %7149 = getelementptr inbounds %struct.s2n_result, ptr %165, i32 0, i32 0
  store i32 %7148, ptr %7149, align 4
  %7150 = getelementptr inbounds %struct.s2n_result, ptr %165, i32 0, i32 0
  %7151 = load i32, ptr %7150, align 4
  %7152 = call zeroext i1 @s2n_result_is_ok(i32 %7151)
  br i1 %7152, label %7206, label %7153

7153:                                             ; preds = %7130
  br label %7154

7154:                                             ; preds = %7153
  br label %7155

7155:                                             ; preds = %7154
  call void @llvm.lifetime.start.p0(i64 4, ptr %166) #11
  %7156 = call ptr @__errno_location() #12
  %7157 = load i32, ptr %7156, align 4, !tbaa !5
  store i32 %7157, ptr %166, align 4, !tbaa !5
  %7158 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7159 = call i32 @s2n_print_stacktrace(ptr noundef %7158)
  %7160 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7161 = trunc i8 %7160 to i1
  br i1 %7161, label %7162, label %7184

7162:                                             ; preds = %7155
  %7163 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7164 = call i32 @fileno(ptr noundef %7163) #11
  %7165 = call i32 @isatty(i32 noundef %7164) #11
  %7166 = icmp ne i32 %7165, 0
  br i1 %7166, label %7167, label %7184

7167:                                             ; preds = %7162
  %7168 = load i32, ptr %166, align 4, !tbaa !5
  %7169 = call ptr @__errno_location() #12
  store i32 %7168, ptr %7169, align 4, !tbaa !5
  %7170 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7171 = load i32, ptr @test_count, align 4, !tbaa !5
  %7172 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7173 = load i32, ptr %7172, align 4, !tbaa !5
  %7174 = call ptr @s2n_strerror(i32 noundef %7173, ptr noundef @.str.3)
  %7175 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7176 = load i32, ptr %7175, align 4, !tbaa !5
  %7177 = call ptr @s2n_strerror_debug(i32 noundef %7176, ptr noundef @.str.3)
  %7178 = call ptr @__errno_location() #12
  %7179 = load i32, ptr %7178, align 4, !tbaa !5
  %7180 = call ptr @strerror(i32 noundef %7179) #11
  %7181 = call ptr @__errno_location() #12
  %7182 = load i32, ptr %7181, align 4, !tbaa !5
  %7183 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7170, ptr noundef @.str, i32 noundef %7171, ptr noundef @.str.47, ptr noundef @.str.2, i32 noundef 329, ptr noundef %7174, ptr noundef %7177, ptr noundef %7180, i32 noundef %7182) #11
  br label %7201

7184:                                             ; preds = %7162, %7155
  %7185 = load i32, ptr %166, align 4, !tbaa !5
  %7186 = call ptr @__errno_location() #12
  store i32 %7185, ptr %7186, align 4, !tbaa !5
  %7187 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7188 = load i32, ptr @test_count, align 4, !tbaa !5
  %7189 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7190 = load i32, ptr %7189, align 4, !tbaa !5
  %7191 = call ptr @s2n_strerror(i32 noundef %7190, ptr noundef @.str.3)
  %7192 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7193 = load i32, ptr %7192, align 4, !tbaa !5
  %7194 = call ptr @s2n_strerror_debug(i32 noundef %7193, ptr noundef @.str.3)
  %7195 = call ptr @__errno_location() #12
  %7196 = load i32, ptr %7195, align 4, !tbaa !5
  %7197 = call ptr @strerror(i32 noundef %7196) #11
  %7198 = call ptr @__errno_location() #12
  %7199 = load i32, ptr %7198, align 4, !tbaa !5
  %7200 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7187, ptr noundef @.str.4, i32 noundef %7188, ptr noundef @.str.47, ptr noundef @.str.2, i32 noundef 329, ptr noundef %7191, ptr noundef %7194, ptr noundef %7197, i32 noundef %7199) #11
  br label %7201

7201:                                             ; preds = %7184, %7167
  call void @llvm.lifetime.end.p0(i64 4, ptr %166) #11
  br label %7202

7202:                                             ; preds = %7201
  br label %7203

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

7204:                                             ; No predecessors!
  br label %7205

7205:                                             ; preds = %7204
  br label %7206

7206:                                             ; preds = %7205, %7130
  br label %7207

7207:                                             ; preds = %7206
  br label %7208

7208:                                             ; preds = %7207
  br label %7209

7209:                                             ; preds = %7208
  %7210 = load i32, ptr @test_count, align 4, !tbaa !5
  %7211 = add nsw i32 %7210, 1
  store i32 %7211, ptr @test_count, align 4, !tbaa !5
  %7212 = load ptr, ptr %6, align 8, !tbaa !9
  %7213 = getelementptr inbounds %struct.s2n_connection, ptr %7212, i32 0, i32 26
  %7214 = load ptr, ptr %7213, align 8, !tbaa !17
  %7215 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %7214, i32 0, i32 0
  %7216 = load ptr, ptr %7215, align 8, !tbaa !46
  %7217 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %7216, i32 0, i32 6
  %7218 = load ptr, ptr %7217, align 8, !tbaa !51
  %7219 = getelementptr inbounds %struct.s2n_record_algorithm, ptr %7218, i32 0, i32 0
  %7220 = load ptr, ptr %7219, align 8, !tbaa !54
  %7221 = getelementptr inbounds %struct.s2n_cipher, ptr %7220, i32 0, i32 1
  %7222 = getelementptr inbounds %struct.s2n_composite_cipher, ptr %7221, i32 0, i32 5
  %7223 = load ptr, ptr %7222, align 8, !tbaa !58
  %7224 = load ptr, ptr %6, align 8, !tbaa !9
  %7225 = getelementptr inbounds %struct.s2n_connection, ptr %7224, i32 0, i32 26
  %7226 = load ptr, ptr %7225, align 8, !tbaa !17
  %7227 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %7226, i32 0, i32 2
  %7228 = getelementptr inbounds [32 x i8], ptr %9, i64 0, i64 0
  %7229 = call i32 %7223(ptr noundef %7227, ptr noundef %7228, i32 noundef 32)
  %7230 = icmp eq i32 %7229, -1
  br i1 %7230, label %7231, label %7284

7231:                                             ; preds = %7209
  br label %7232

7232:                                             ; preds = %7231
  br label %7233

7233:                                             ; preds = %7232
  call void @llvm.lifetime.start.p0(i64 4, ptr %167) #11
  %7234 = call ptr @__errno_location() #12
  %7235 = load i32, ptr %7234, align 4, !tbaa !5
  store i32 %7235, ptr %167, align 4, !tbaa !5
  %7236 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7237 = call i32 @s2n_print_stacktrace(ptr noundef %7236)
  %7238 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7239 = trunc i8 %7238 to i1
  br i1 %7239, label %7240, label %7262

7240:                                             ; preds = %7233
  %7241 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7242 = call i32 @fileno(ptr noundef %7241) #11
  %7243 = call i32 @isatty(i32 noundef %7242) #11
  %7244 = icmp ne i32 %7243, 0
  br i1 %7244, label %7245, label %7262

7245:                                             ; preds = %7240
  %7246 = load i32, ptr %167, align 4, !tbaa !5
  %7247 = call ptr @__errno_location() #12
  store i32 %7246, ptr %7247, align 4, !tbaa !5
  %7248 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7249 = load i32, ptr @test_count, align 4, !tbaa !5
  %7250 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7251 = load i32, ptr %7250, align 4, !tbaa !5
  %7252 = call ptr @s2n_strerror(i32 noundef %7251, ptr noundef @.str.3)
  %7253 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7254 = load i32, ptr %7253, align 4, !tbaa !5
  %7255 = call ptr @s2n_strerror_debug(i32 noundef %7254, ptr noundef @.str.3)
  %7256 = call ptr @__errno_location() #12
  %7257 = load i32, ptr %7256, align 4, !tbaa !5
  %7258 = call ptr @strerror(i32 noundef %7257) #11
  %7259 = call ptr @__errno_location() #12
  %7260 = load i32, ptr %7259, align 4, !tbaa !5
  %7261 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7248, ptr noundef @.str, i32 noundef %7249, ptr noundef @.str.48, ptr noundef @.str.2, i32 noundef 330, ptr noundef %7252, ptr noundef %7255, ptr noundef %7258, i32 noundef %7260) #11
  br label %7279

7262:                                             ; preds = %7240, %7233
  %7263 = load i32, ptr %167, align 4, !tbaa !5
  %7264 = call ptr @__errno_location() #12
  store i32 %7263, ptr %7264, align 4, !tbaa !5
  %7265 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7266 = load i32, ptr @test_count, align 4, !tbaa !5
  %7267 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7268 = load i32, ptr %7267, align 4, !tbaa !5
  %7269 = call ptr @s2n_strerror(i32 noundef %7268, ptr noundef @.str.3)
  %7270 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7271 = load i32, ptr %7270, align 4, !tbaa !5
  %7272 = call ptr @s2n_strerror_debug(i32 noundef %7271, ptr noundef @.str.3)
  %7273 = call ptr @__errno_location() #12
  %7274 = load i32, ptr %7273, align 4, !tbaa !5
  %7275 = call ptr @strerror(i32 noundef %7274) #11
  %7276 = call ptr @__errno_location() #12
  %7277 = load i32, ptr %7276, align 4, !tbaa !5
  %7278 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7265, ptr noundef @.str.4, i32 noundef %7266, ptr noundef @.str.48, ptr noundef @.str.2, i32 noundef 330, ptr noundef %7269, ptr noundef %7272, ptr noundef %7275, i32 noundef %7277) #11
  br label %7279

7279:                                             ; preds = %7262, %7245
  call void @llvm.lifetime.end.p0(i64 4, ptr %167) #11
  br label %7280

7280:                                             ; preds = %7279
  br label %7281

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

7282:                                             ; No predecessors!
  br label %7283

7283:                                             ; preds = %7282
  br label %7284

7284:                                             ; preds = %7283, %7209
  br label %7285

7285:                                             ; preds = %7284
  br label %7286

7286:                                             ; preds = %7285
  br label %7287

7287:                                             ; preds = %7286
  %7288 = load i32, ptr @test_count, align 4, !tbaa !5
  %7289 = add nsw i32 %7288, 1
  store i32 %7289, ptr @test_count, align 4, !tbaa !5
  %7290 = load ptr, ptr %6, align 8, !tbaa !9
  %7291 = getelementptr inbounds %struct.s2n_connection, ptr %7290, i32 0, i32 26
  %7292 = load ptr, ptr %7291, align 8, !tbaa !17
  %7293 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %7292, i32 0, i32 0
  %7294 = load ptr, ptr %7293, align 8, !tbaa !46
  %7295 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %7294, i32 0, i32 6
  %7296 = load ptr, ptr %7295, align 8, !tbaa !51
  %7297 = getelementptr inbounds %struct.s2n_record_algorithm, ptr %7296, i32 0, i32 0
  %7298 = load ptr, ptr %7297, align 8, !tbaa !54
  %7299 = getelementptr inbounds %struct.s2n_cipher, ptr %7298, i32 0, i32 1
  %7300 = getelementptr inbounds %struct.s2n_composite_cipher, ptr %7299, i32 0, i32 5
  %7301 = load ptr, ptr %7300, align 8, !tbaa !58
  %7302 = load ptr, ptr %6, align 8, !tbaa !9
  %7303 = getelementptr inbounds %struct.s2n_connection, ptr %7302, i32 0, i32 26
  %7304 = load ptr, ptr %7303, align 8, !tbaa !17
  %7305 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %7304, i32 0, i32 1
  %7306 = getelementptr inbounds [32 x i8], ptr %9, i64 0, i64 0
  %7307 = call i32 %7301(ptr noundef %7305, ptr noundef %7306, i32 noundef 32)
  %7308 = icmp eq i32 %7307, -1
  br i1 %7308, label %7309, label %7362

7309:                                             ; preds = %7287
  br label %7310

7310:                                             ; preds = %7309
  br label %7311

7311:                                             ; preds = %7310
  call void @llvm.lifetime.start.p0(i64 4, ptr %168) #11
  %7312 = call ptr @__errno_location() #12
  %7313 = load i32, ptr %7312, align 4, !tbaa !5
  store i32 %7313, ptr %168, align 4, !tbaa !5
  %7314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7315 = call i32 @s2n_print_stacktrace(ptr noundef %7314)
  %7316 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7317 = trunc i8 %7316 to i1
  br i1 %7317, label %7318, label %7340

7318:                                             ; preds = %7311
  %7319 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7320 = call i32 @fileno(ptr noundef %7319) #11
  %7321 = call i32 @isatty(i32 noundef %7320) #11
  %7322 = icmp ne i32 %7321, 0
  br i1 %7322, label %7323, label %7340

7323:                                             ; preds = %7318
  %7324 = load i32, ptr %168, align 4, !tbaa !5
  %7325 = call ptr @__errno_location() #12
  store i32 %7324, ptr %7325, align 4, !tbaa !5
  %7326 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7327 = load i32, ptr @test_count, align 4, !tbaa !5
  %7328 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7329 = load i32, ptr %7328, align 4, !tbaa !5
  %7330 = call ptr @s2n_strerror(i32 noundef %7329, ptr noundef @.str.3)
  %7331 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7332 = load i32, ptr %7331, align 4, !tbaa !5
  %7333 = call ptr @s2n_strerror_debug(i32 noundef %7332, ptr noundef @.str.3)
  %7334 = call ptr @__errno_location() #12
  %7335 = load i32, ptr %7334, align 4, !tbaa !5
  %7336 = call ptr @strerror(i32 noundef %7335) #11
  %7337 = call ptr @__errno_location() #12
  %7338 = load i32, ptr %7337, align 4, !tbaa !5
  %7339 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7326, ptr noundef @.str, i32 noundef %7327, ptr noundef @.str.49, ptr noundef @.str.2, i32 noundef 331, ptr noundef %7330, ptr noundef %7333, ptr noundef %7336, i32 noundef %7338) #11
  br label %7357

7340:                                             ; preds = %7318, %7311
  %7341 = load i32, ptr %168, align 4, !tbaa !5
  %7342 = call ptr @__errno_location() #12
  store i32 %7341, ptr %7342, align 4, !tbaa !5
  %7343 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7344 = load i32, ptr @test_count, align 4, !tbaa !5
  %7345 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7346 = load i32, ptr %7345, align 4, !tbaa !5
  %7347 = call ptr @s2n_strerror(i32 noundef %7346, ptr noundef @.str.3)
  %7348 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7349 = load i32, ptr %7348, align 4, !tbaa !5
  %7350 = call ptr @s2n_strerror_debug(i32 noundef %7349, ptr noundef @.str.3)
  %7351 = call ptr @__errno_location() #12
  %7352 = load i32, ptr %7351, align 4, !tbaa !5
  %7353 = call ptr @strerror(i32 noundef %7352) #11
  %7354 = call ptr @__errno_location() #12
  %7355 = load i32, ptr %7354, align 4, !tbaa !5
  %7356 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7343, ptr noundef @.str.4, i32 noundef %7344, ptr noundef @.str.49, ptr noundef @.str.2, i32 noundef 331, ptr noundef %7347, ptr noundef %7350, ptr noundef %7353, i32 noundef %7355) #11
  br label %7357

7357:                                             ; preds = %7340, %7323
  call void @llvm.lifetime.end.p0(i64 4, ptr %168) #11
  br label %7358

7358:                                             ; preds = %7357
  br label %7359

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

7360:                                             ; No predecessors!
  br label %7361

7361:                                             ; preds = %7360
  br label %7362

7362:                                             ; preds = %7361, %7287
  br label %7363

7363:                                             ; preds = %7362
  br label %7364

7364:                                             ; preds = %7363
  br label %7365

7365:                                             ; preds = %7364
  %7366 = load i32, ptr @test_count, align 4, !tbaa !5
  %7367 = add nsw i32 %7366, 1
  store i32 %7367, ptr @test_count, align 4, !tbaa !5
  %7368 = load ptr, ptr %6, align 8, !tbaa !9
  %7369 = getelementptr inbounds %struct.s2n_connection, ptr %7368, i32 0, i32 41
  %7370 = call i32 @s2n_stuffer_wipe(ptr noundef %7369)
  %7371 = icmp eq i32 %7370, -1
  br i1 %7371, label %7372, label %7425

7372:                                             ; preds = %7365
  br label %7373

7373:                                             ; preds = %7372
  br label %7374

7374:                                             ; preds = %7373
  call void @llvm.lifetime.start.p0(i64 4, ptr %169) #11
  %7375 = call ptr @__errno_location() #12
  %7376 = load i32, ptr %7375, align 4, !tbaa !5
  store i32 %7376, ptr %169, align 4, !tbaa !5
  %7377 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7378 = call i32 @s2n_print_stacktrace(ptr noundef %7377)
  %7379 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7380 = trunc i8 %7379 to i1
  br i1 %7380, label %7381, label %7403

7381:                                             ; preds = %7374
  %7382 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7383 = call i32 @fileno(ptr noundef %7382) #11
  %7384 = call i32 @isatty(i32 noundef %7383) #11
  %7385 = icmp ne i32 %7384, 0
  br i1 %7385, label %7386, label %7403

7386:                                             ; preds = %7381
  %7387 = load i32, ptr %169, align 4, !tbaa !5
  %7388 = call ptr @__errno_location() #12
  store i32 %7387, ptr %7388, align 4, !tbaa !5
  %7389 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7390 = load i32, ptr @test_count, align 4, !tbaa !5
  %7391 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7392 = load i32, ptr %7391, align 4, !tbaa !5
  %7393 = call ptr @s2n_strerror(i32 noundef %7392, ptr noundef @.str.3)
  %7394 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7395 = load i32, ptr %7394, align 4, !tbaa !5
  %7396 = call ptr @s2n_strerror_debug(i32 noundef %7395, ptr noundef @.str.3)
  %7397 = call ptr @__errno_location() #12
  %7398 = load i32, ptr %7397, align 4, !tbaa !5
  %7399 = call ptr @strerror(i32 noundef %7398) #11
  %7400 = call ptr @__errno_location() #12
  %7401 = load i32, ptr %7400, align 4, !tbaa !5
  %7402 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7389, ptr noundef @.str, i32 noundef %7390, ptr noundef @.str.26, ptr noundef @.str.2, i32 noundef 333, ptr noundef %7393, ptr noundef %7396, ptr noundef %7399, i32 noundef %7401) #11
  br label %7420

7403:                                             ; preds = %7381, %7374
  %7404 = load i32, ptr %169, align 4, !tbaa !5
  %7405 = call ptr @__errno_location() #12
  store i32 %7404, ptr %7405, align 4, !tbaa !5
  %7406 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7407 = load i32, ptr @test_count, align 4, !tbaa !5
  %7408 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7409 = load i32, ptr %7408, align 4, !tbaa !5
  %7410 = call ptr @s2n_strerror(i32 noundef %7409, ptr noundef @.str.3)
  %7411 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7412 = load i32, ptr %7411, align 4, !tbaa !5
  %7413 = call ptr @s2n_strerror_debug(i32 noundef %7412, ptr noundef @.str.3)
  %7414 = call ptr @__errno_location() #12
  %7415 = load i32, ptr %7414, align 4, !tbaa !5
  %7416 = call ptr @strerror(i32 noundef %7415) #11
  %7417 = call ptr @__errno_location() #12
  %7418 = load i32, ptr %7417, align 4, !tbaa !5
  %7419 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7406, ptr noundef @.str.4, i32 noundef %7407, ptr noundef @.str.26, ptr noundef @.str.2, i32 noundef 333, ptr noundef %7410, ptr noundef %7413, ptr noundef %7416, i32 noundef %7418) #11
  br label %7420

7420:                                             ; preds = %7403, %7386
  call void @llvm.lifetime.end.p0(i64 4, ptr %169) #11
  br label %7421

7421:                                             ; preds = %7420
  br label %7422

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

7423:                                             ; No predecessors!
  br label %7424

7424:                                             ; preds = %7423
  br label %7425

7425:                                             ; preds = %7424, %7365
  br label %7426

7426:                                             ; preds = %7425
  br label %7427

7427:                                             ; preds = %7426
  %7428 = load i32, ptr %157, align 4, !tbaa !5
  %7429 = sext i32 %7428 to i64
  %7430 = getelementptr inbounds [3 x i8], ptr %30, i64 0, i64 %7429
  %7431 = load i8, ptr %7430, align 1, !tbaa !58
  %7432 = load ptr, ptr %6, align 8, !tbaa !9
  %7433 = getelementptr inbounds %struct.s2n_connection, ptr %7432, i32 0, i32 23
  store i8 %7431, ptr %7433, align 4, !tbaa !59
  call void @llvm.lifetime.start.p0(i64 4, ptr %170) #11
  store i32 0, ptr %170, align 4, !tbaa !5
  %7434 = load ptr, ptr %6, align 8, !tbaa !9
  %7435 = getelementptr inbounds %struct.s2n_connection, ptr %7434, i32 0, i32 23
  %7436 = load i8, ptr %7435, align 4, !tbaa !59
  %7437 = zext i8 %7436 to i32
  %7438 = icmp sgt i32 %7437, 31
  br i1 %7438, label %7439, label %7440

7439:                                             ; preds = %7427
  store i32 16, ptr %170, align 4, !tbaa !5
  br label %7441

7440:                                             ; preds = %7427
  store i32 0, ptr %170, align 4, !tbaa !5
  br label %7441

7441:                                             ; preds = %7440, %7439
  call void @llvm.lifetime.start.p0(i64 4, ptr %171) #11
  %7442 = load ptr, ptr %6, align 8, !tbaa !9
  %7443 = call i32 @s2n_record_write(ptr noundef %7442, i8 noundef zeroext 23, ptr noundef %159)
  %7444 = getelementptr inbounds %struct.s2n_result, ptr %171, i32 0, i32 0
  store i32 %7443, ptr %7444, align 4
  %7445 = load i32, ptr %158, align 4, !tbaa !5
  %7446 = icmp sle i32 %7445, 8087
  br i1 %7446, label %7447, label %7511

7447:                                             ; preds = %7441
  br label %7448

7448:                                             ; preds = %7447
  %7449 = load i32, ptr @test_count, align 4, !tbaa !5
  %7450 = add nsw i32 %7449, 1
  store i32 %7450, ptr @test_count, align 4, !tbaa !5
  %7451 = getelementptr inbounds %struct.s2n_result, ptr %171, i32 0, i32 0
  %7452 = load i32, ptr %7451, align 4
  %7453 = call zeroext i1 @s2n_result_is_ok(i32 %7452)
  br i1 %7453, label %7507, label %7454

7454:                                             ; preds = %7448
  br label %7455

7455:                                             ; preds = %7454
  br label %7456

7456:                                             ; preds = %7455
  call void @llvm.lifetime.start.p0(i64 4, ptr %172) #11
  %7457 = call ptr @__errno_location() #12
  %7458 = load i32, ptr %7457, align 4, !tbaa !5
  store i32 %7458, ptr %172, align 4, !tbaa !5
  %7459 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7460 = call i32 @s2n_print_stacktrace(ptr noundef %7459)
  %7461 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7462 = trunc i8 %7461 to i1
  br i1 %7462, label %7463, label %7485

7463:                                             ; preds = %7456
  %7464 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7465 = call i32 @fileno(ptr noundef %7464) #11
  %7466 = call i32 @isatty(i32 noundef %7465) #11
  %7467 = icmp ne i32 %7466, 0
  br i1 %7467, label %7468, label %7485

7468:                                             ; preds = %7463
  %7469 = load i32, ptr %172, align 4, !tbaa !5
  %7470 = call ptr @__errno_location() #12
  store i32 %7469, ptr %7470, align 4, !tbaa !5
  %7471 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7472 = load i32, ptr @test_count, align 4, !tbaa !5
  %7473 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7474 = load i32, ptr %7473, align 4, !tbaa !5
  %7475 = call ptr @s2n_strerror(i32 noundef %7474, ptr noundef @.str.3)
  %7476 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7477 = load i32, ptr %7476, align 4, !tbaa !5
  %7478 = call ptr @s2n_strerror_debug(i32 noundef %7477, ptr noundef @.str.3)
  %7479 = call ptr @__errno_location() #12
  %7480 = load i32, ptr %7479, align 4, !tbaa !5
  %7481 = call ptr @strerror(i32 noundef %7480) #11
  %7482 = call ptr @__errno_location() #12
  %7483 = load i32, ptr %7482, align 4, !tbaa !5
  %7484 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7471, ptr noundef @.str, i32 noundef %7472, ptr noundef @.str.27, ptr noundef @.str.2, i32 noundef 345, ptr noundef %7475, ptr noundef %7478, ptr noundef %7481, i32 noundef %7483) #11
  br label %7502

7485:                                             ; preds = %7463, %7456
  %7486 = load i32, ptr %172, align 4, !tbaa !5
  %7487 = call ptr @__errno_location() #12
  store i32 %7486, ptr %7487, align 4, !tbaa !5
  %7488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7489 = load i32, ptr @test_count, align 4, !tbaa !5
  %7490 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7491 = load i32, ptr %7490, align 4, !tbaa !5
  %7492 = call ptr @s2n_strerror(i32 noundef %7491, ptr noundef @.str.3)
  %7493 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7494 = load i32, ptr %7493, align 4, !tbaa !5
  %7495 = call ptr @s2n_strerror_debug(i32 noundef %7494, ptr noundef @.str.3)
  %7496 = call ptr @__errno_location() #12
  %7497 = load i32, ptr %7496, align 4, !tbaa !5
  %7498 = call ptr @strerror(i32 noundef %7497) #11
  %7499 = call ptr @__errno_location() #12
  %7500 = load i32, ptr %7499, align 4, !tbaa !5
  %7501 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7488, ptr noundef @.str.4, i32 noundef %7489, ptr noundef @.str.27, ptr noundef @.str.2, i32 noundef 345, ptr noundef %7492, ptr noundef %7495, ptr noundef %7498, i32 noundef %7500) #11
  br label %7502

7502:                                             ; preds = %7485, %7468
  call void @llvm.lifetime.end.p0(i64 4, ptr %172) #11
  br label %7503

7503:                                             ; preds = %7502
  br label %7504

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

7505:                                             ; No predecessors!
  br label %7506

7506:                                             ; preds = %7505
  br label %7507

7507:                                             ; preds = %7506, %7448
  br label %7508

7508:                                             ; preds = %7507
  br label %7509

7509:                                             ; preds = %7508
  %7510 = load i32, ptr %158, align 4, !tbaa !5
  store i32 %7510, ptr %161, align 4, !tbaa !5
  br label %7710

7511:                                             ; preds = %7441
  br label %7512

7512:                                             ; preds = %7511
  br label %7513

7513:                                             ; preds = %7512
  br label %7514

7514:                                             ; preds = %7513
  %7515 = load i32, ptr @test_count, align 4, !tbaa !5
  %7516 = add nsw i32 %7515, 1
  store i32 %7516, ptr @test_count, align 4, !tbaa !5
  %7517 = getelementptr inbounds %struct.s2n_result, ptr %171, i32 0, i32 0
  %7518 = load i32, ptr %7517, align 4
  %7519 = call zeroext i1 @s2n_result_is_error(i32 %7518)
  br i1 %7519, label %7573, label %7520

7520:                                             ; preds = %7514
  br label %7521

7521:                                             ; preds = %7520
  br label %7522

7522:                                             ; preds = %7521
  call void @llvm.lifetime.start.p0(i64 4, ptr %173) #11
  %7523 = call ptr @__errno_location() #12
  %7524 = load i32, ptr %7523, align 4, !tbaa !5
  store i32 %7524, ptr %173, align 4, !tbaa !5
  %7525 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7526 = call i32 @s2n_print_stacktrace(ptr noundef %7525)
  %7527 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7528 = trunc i8 %7527 to i1
  br i1 %7528, label %7529, label %7551

7529:                                             ; preds = %7522
  %7530 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7531 = call i32 @fileno(ptr noundef %7530) #11
  %7532 = call i32 @isatty(i32 noundef %7531) #11
  %7533 = icmp ne i32 %7532, 0
  br i1 %7533, label %7534, label %7551

7534:                                             ; preds = %7529
  %7535 = load i32, ptr %173, align 4, !tbaa !5
  %7536 = call ptr @__errno_location() #12
  store i32 %7535, ptr %7536, align 4, !tbaa !5
  %7537 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7538 = load i32, ptr @test_count, align 4, !tbaa !5
  %7539 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7540 = load i32, ptr %7539, align 4, !tbaa !5
  %7541 = call ptr @s2n_strerror(i32 noundef %7540, ptr noundef @.str.3)
  %7542 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7543 = load i32, ptr %7542, align 4, !tbaa !5
  %7544 = call ptr @s2n_strerror_debug(i32 noundef %7543, ptr noundef @.str.3)
  %7545 = call ptr @__errno_location() #12
  %7546 = load i32, ptr %7545, align 4, !tbaa !5
  %7547 = call ptr @strerror(i32 noundef %7546) #11
  %7548 = call ptr @__errno_location() #12
  %7549 = load i32, ptr %7548, align 4, !tbaa !5
  %7550 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7537, ptr noundef @.str, i32 noundef %7538, ptr noundef @.str.28, ptr noundef @.str.2, i32 noundef 348, ptr noundef %7541, ptr noundef %7544, ptr noundef %7547, i32 noundef %7549) #11
  br label %7568

7551:                                             ; preds = %7529, %7522
  %7552 = load i32, ptr %173, align 4, !tbaa !5
  %7553 = call ptr @__errno_location() #12
  store i32 %7552, ptr %7553, align 4, !tbaa !5
  %7554 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7555 = load i32, ptr @test_count, align 4, !tbaa !5
  %7556 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7557 = load i32, ptr %7556, align 4, !tbaa !5
  %7558 = call ptr @s2n_strerror(i32 noundef %7557, ptr noundef @.str.3)
  %7559 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7560 = load i32, ptr %7559, align 4, !tbaa !5
  %7561 = call ptr @s2n_strerror_debug(i32 noundef %7560, ptr noundef @.str.3)
  %7562 = call ptr @__errno_location() #12
  %7563 = load i32, ptr %7562, align 4, !tbaa !5
  %7564 = call ptr @strerror(i32 noundef %7563) #11
  %7565 = call ptr @__errno_location() #12
  %7566 = load i32, ptr %7565, align 4, !tbaa !5
  %7567 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7554, ptr noundef @.str.4, i32 noundef %7555, ptr noundef @.str.28, ptr noundef @.str.2, i32 noundef 348, ptr noundef %7558, ptr noundef %7561, ptr noundef %7564, i32 noundef %7566) #11
  br label %7568

7568:                                             ; preds = %7551, %7534
  call void @llvm.lifetime.end.p0(i64 4, ptr %173) #11
  br label %7569

7569:                                             ; preds = %7568
  br label %7570

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

7571:                                             ; No predecessors!
  br label %7572

7572:                                             ; preds = %7571
  br label %7573

7573:                                             ; preds = %7572, %7514
  br label %7574

7574:                                             ; preds = %7573
  br label %7575

7575:                                             ; preds = %7574
  br label %7576

7576:                                             ; preds = %7575
  %7577 = load i32, ptr @test_count, align 4, !tbaa !5
  %7578 = add nsw i32 %7577, 1
  store i32 %7578, ptr @test_count, align 4, !tbaa !5
  %7579 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7580 = load i32, ptr %7579, align 4, !tbaa !5
  %7581 = icmp eq i32 %7580, 335544390
  br i1 %7581, label %7635, label %7582

7582:                                             ; preds = %7576
  br label %7583

7583:                                             ; preds = %7582
  br label %7584

7584:                                             ; preds = %7583
  call void @llvm.lifetime.start.p0(i64 4, ptr %174) #11
  %7585 = call ptr @__errno_location() #12
  %7586 = load i32, ptr %7585, align 4, !tbaa !5
  store i32 %7586, ptr %174, align 4, !tbaa !5
  %7587 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7588 = call i32 @s2n_print_stacktrace(ptr noundef %7587)
  %7589 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7590 = trunc i8 %7589 to i1
  br i1 %7590, label %7591, label %7613

7591:                                             ; preds = %7584
  %7592 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7593 = call i32 @fileno(ptr noundef %7592) #11
  %7594 = call i32 @isatty(i32 noundef %7593) #11
  %7595 = icmp ne i32 %7594, 0
  br i1 %7595, label %7596, label %7613

7596:                                             ; preds = %7591
  %7597 = load i32, ptr %174, align 4, !tbaa !5
  %7598 = call ptr @__errno_location() #12
  store i32 %7597, ptr %7598, align 4, !tbaa !5
  %7599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7600 = load i32, ptr @test_count, align 4, !tbaa !5
  %7601 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7602 = load i32, ptr %7601, align 4, !tbaa !5
  %7603 = call ptr @s2n_strerror(i32 noundef %7602, ptr noundef @.str.3)
  %7604 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7605 = load i32, ptr %7604, align 4, !tbaa !5
  %7606 = call ptr @s2n_strerror_debug(i32 noundef %7605, ptr noundef @.str.3)
  %7607 = call ptr @__errno_location() #12
  %7608 = load i32, ptr %7607, align 4, !tbaa !5
  %7609 = call ptr @strerror(i32 noundef %7608) #11
  %7610 = call ptr @__errno_location() #12
  %7611 = load i32, ptr %7610, align 4, !tbaa !5
  %7612 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7599, ptr noundef @.str, i32 noundef %7600, ptr noundef @.str.29, ptr noundef @.str.2, i32 noundef 348, ptr noundef %7603, ptr noundef %7606, ptr noundef %7609, i32 noundef %7611) #11
  br label %7630

7613:                                             ; preds = %7591, %7584
  %7614 = load i32, ptr %174, align 4, !tbaa !5
  %7615 = call ptr @__errno_location() #12
  store i32 %7614, ptr %7615, align 4, !tbaa !5
  %7616 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7617 = load i32, ptr @test_count, align 4, !tbaa !5
  %7618 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7619 = load i32, ptr %7618, align 4, !tbaa !5
  %7620 = call ptr @s2n_strerror(i32 noundef %7619, ptr noundef @.str.3)
  %7621 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7622 = load i32, ptr %7621, align 4, !tbaa !5
  %7623 = call ptr @s2n_strerror_debug(i32 noundef %7622, ptr noundef @.str.3)
  %7624 = call ptr @__errno_location() #12
  %7625 = load i32, ptr %7624, align 4, !tbaa !5
  %7626 = call ptr @strerror(i32 noundef %7625) #11
  %7627 = call ptr @__errno_location() #12
  %7628 = load i32, ptr %7627, align 4, !tbaa !5
  %7629 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7616, ptr noundef @.str.4, i32 noundef %7617, ptr noundef @.str.29, ptr noundef @.str.2, i32 noundef 348, ptr noundef %7620, ptr noundef %7623, ptr noundef %7626, i32 noundef %7628) #11
  br label %7630

7630:                                             ; preds = %7613, %7596
  call void @llvm.lifetime.end.p0(i64 4, ptr %174) #11
  br label %7631

7631:                                             ; preds = %7630
  br label %7632

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

7633:                                             ; No predecessors!
  br label %7634

7634:                                             ; preds = %7633
  br label %7635

7635:                                             ; preds = %7634, %7576
  br label %7636

7636:                                             ; preds = %7635
  br label %7637

7637:                                             ; preds = %7636
  br label %7638

7638:                                             ; preds = %7637
  %7639 = load i32, ptr @test_count, align 4, !tbaa !5
  %7640 = add nsw i32 %7639, 1
  store i32 %7640, ptr @test_count, align 4, !tbaa !5
  %7641 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7642 = load i32, ptr %7641, align 4, !tbaa !5
  %7643 = call ptr @s2n_strerror_debug(i32 noundef %7642, ptr noundef @.str.3)
  %7644 = icmp eq ptr %7643, null
  br i1 %7644, label %7645, label %7698

7645:                                             ; preds = %7638
  br label %7646

7646:                                             ; preds = %7645
  br label %7647

7647:                                             ; preds = %7646
  call void @llvm.lifetime.start.p0(i64 4, ptr %175) #11
  %7648 = call ptr @__errno_location() #12
  %7649 = load i32, ptr %7648, align 4, !tbaa !5
  store i32 %7649, ptr %175, align 4, !tbaa !5
  %7650 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7651 = call i32 @s2n_print_stacktrace(ptr noundef %7650)
  %7652 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7653 = trunc i8 %7652 to i1
  br i1 %7653, label %7654, label %7676

7654:                                             ; preds = %7647
  %7655 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7656 = call i32 @fileno(ptr noundef %7655) #11
  %7657 = call i32 @isatty(i32 noundef %7656) #11
  %7658 = icmp ne i32 %7657, 0
  br i1 %7658, label %7659, label %7676

7659:                                             ; preds = %7654
  %7660 = load i32, ptr %175, align 4, !tbaa !5
  %7661 = call ptr @__errno_location() #12
  store i32 %7660, ptr %7661, align 4, !tbaa !5
  %7662 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7663 = load i32, ptr @test_count, align 4, !tbaa !5
  %7664 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7665 = load i32, ptr %7664, align 4, !tbaa !5
  %7666 = call ptr @s2n_strerror(i32 noundef %7665, ptr noundef @.str.3)
  %7667 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7668 = load i32, ptr %7667, align 4, !tbaa !5
  %7669 = call ptr @s2n_strerror_debug(i32 noundef %7668, ptr noundef @.str.3)
  %7670 = call ptr @__errno_location() #12
  %7671 = load i32, ptr %7670, align 4, !tbaa !5
  %7672 = call ptr @strerror(i32 noundef %7671) #11
  %7673 = call ptr @__errno_location() #12
  %7674 = load i32, ptr %7673, align 4, !tbaa !5
  %7675 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7662, ptr noundef @.str, i32 noundef %7663, ptr noundef @.str.30, ptr noundef @.str.2, i32 noundef 348, ptr noundef %7666, ptr noundef %7669, ptr noundef %7672, i32 noundef %7674) #11
  br label %7693

7676:                                             ; preds = %7654, %7647
  %7677 = load i32, ptr %175, align 4, !tbaa !5
  %7678 = call ptr @__errno_location() #12
  store i32 %7677, ptr %7678, align 4, !tbaa !5
  %7679 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7680 = load i32, ptr @test_count, align 4, !tbaa !5
  %7681 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7682 = load i32, ptr %7681, align 4, !tbaa !5
  %7683 = call ptr @s2n_strerror(i32 noundef %7682, ptr noundef @.str.3)
  %7684 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7685 = load i32, ptr %7684, align 4, !tbaa !5
  %7686 = call ptr @s2n_strerror_debug(i32 noundef %7685, ptr noundef @.str.3)
  %7687 = call ptr @__errno_location() #12
  %7688 = load i32, ptr %7687, align 4, !tbaa !5
  %7689 = call ptr @strerror(i32 noundef %7688) #11
  %7690 = call ptr @__errno_location() #12
  %7691 = load i32, ptr %7690, align 4, !tbaa !5
  %7692 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7679, ptr noundef @.str.4, i32 noundef %7680, ptr noundef @.str.30, ptr noundef @.str.2, i32 noundef 348, ptr noundef %7683, ptr noundef %7686, ptr noundef %7689, i32 noundef %7691) #11
  br label %7693

7693:                                             ; preds = %7676, %7659
  call void @llvm.lifetime.end.p0(i64 4, ptr %175) #11
  br label %7694

7694:                                             ; preds = %7693
  br label %7695

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

7696:                                             ; No predecessors!
  br label %7697

7697:                                             ; preds = %7696
  br label %7698

7698:                                             ; preds = %7697, %7638
  br label %7699

7699:                                             ; preds = %7698
  br label %7700

7700:                                             ; preds = %7699
  br label %7701

7701:                                             ; preds = %7700
  br label %7702

7702:                                             ; preds = %7701
  br label %7703

7703:                                             ; preds = %7702
  %7704 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %7704, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %7705 = call ptr @__errno_location() #12
  store i32 0, ptr %7705, align 4, !tbaa !5
  br label %7706

7706:                                             ; preds = %7703
  br label %7707

7707:                                             ; preds = %7706
  br label %7708

7708:                                             ; preds = %7707
  br label %7709

7709:                                             ; preds = %7708
  store i32 8087, ptr %161, align 4, !tbaa !5
  br label %7710

7710:                                             ; preds = %7709, %7509
  call void @llvm.lifetime.start.p0(i64 2, ptr %176) #11
  %7711 = load i32, ptr %161, align 4, !tbaa !5
  %7712 = add nsw i32 %7711, 1
  %7713 = add nsw i32 %7712, 32
  %7714 = load i32, ptr %170, align 4, !tbaa !5
  %7715 = add nsw i32 %7713, %7714
  %7716 = trunc i32 %7715 to i16
  store i16 %7716, ptr %176, align 2, !tbaa !60
  %7717 = load i16, ptr %176, align 2, !tbaa !60
  %7718 = zext i16 %7717 to i32
  %7719 = srem i32 %7718, 16
  %7720 = icmp ne i32 %7719, 0
  br i1 %7720, label %7721, label %7730

7721:                                             ; preds = %7710
  %7722 = load i16, ptr %176, align 2, !tbaa !60
  %7723 = zext i16 %7722 to i32
  %7724 = srem i32 %7723, 16
  %7725 = sub nsw i32 16, %7724
  %7726 = load i16, ptr %176, align 2, !tbaa !60
  %7727 = zext i16 %7726 to i32
  %7728 = add nsw i32 %7727, %7725
  %7729 = trunc i32 %7728 to i16
  store i16 %7729, ptr %176, align 2, !tbaa !60
  br label %7730

7730:                                             ; preds = %7721, %7710
  br label %7731

7731:                                             ; preds = %7730
  %7732 = load i32, ptr @test_count, align 4, !tbaa !5
  %7733 = add nsw i32 %7732, 1
  store i32 %7733, ptr @test_count, align 4, !tbaa !5
  %7734 = load ptr, ptr %6, align 8, !tbaa !9
  %7735 = getelementptr inbounds %struct.s2n_connection, ptr %7734, i32 0, i32 41
  %7736 = getelementptr inbounds %struct.s2n_stuffer, ptr %7735, i32 0, i32 0
  %7737 = getelementptr inbounds %struct.s2n_blob, ptr %7736, i32 0, i32 0
  %7738 = load ptr, ptr %7737, align 8, !tbaa !61
  %7739 = getelementptr inbounds i8, ptr %7738, i64 0
  %7740 = load i8, ptr %7739, align 1, !tbaa !58
  %7741 = zext i8 %7740 to i32
  %7742 = icmp eq i32 %7741, 23
  br i1 %7742, label %7796, label %7743

7743:                                             ; preds = %7731
  br label %7744

7744:                                             ; preds = %7743
  br label %7745

7745:                                             ; preds = %7744
  call void @llvm.lifetime.start.p0(i64 4, ptr %177) #11
  %7746 = call ptr @__errno_location() #12
  %7747 = load i32, ptr %7746, align 4, !tbaa !5
  store i32 %7747, ptr %177, align 4, !tbaa !5
  %7748 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7749 = call i32 @s2n_print_stacktrace(ptr noundef %7748)
  %7750 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7751 = trunc i8 %7750 to i1
  br i1 %7751, label %7752, label %7774

7752:                                             ; preds = %7745
  %7753 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7754 = call i32 @fileno(ptr noundef %7753) #11
  %7755 = call i32 @isatty(i32 noundef %7754) #11
  %7756 = icmp ne i32 %7755, 0
  br i1 %7756, label %7757, label %7774

7757:                                             ; preds = %7752
  %7758 = load i32, ptr %177, align 4, !tbaa !5
  %7759 = call ptr @__errno_location() #12
  store i32 %7758, ptr %7759, align 4, !tbaa !5
  %7760 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7761 = load i32, ptr @test_count, align 4, !tbaa !5
  %7762 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7763 = load i32, ptr %7762, align 4, !tbaa !5
  %7764 = call ptr @s2n_strerror(i32 noundef %7763, ptr noundef @.str.3)
  %7765 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7766 = load i32, ptr %7765, align 4, !tbaa !5
  %7767 = call ptr @s2n_strerror_debug(i32 noundef %7766, ptr noundef @.str.3)
  %7768 = call ptr @__errno_location() #12
  %7769 = load i32, ptr %7768, align 4, !tbaa !5
  %7770 = call ptr @strerror(i32 noundef %7769) #11
  %7771 = call ptr @__errno_location() #12
  %7772 = load i32, ptr %7771, align 4, !tbaa !5
  %7773 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7760, ptr noundef @.str, i32 noundef %7761, ptr noundef @.str.31, ptr noundef @.str.2, i32 noundef 356, ptr noundef %7764, ptr noundef %7767, ptr noundef %7770, i32 noundef %7772) #11
  br label %7791

7774:                                             ; preds = %7752, %7745
  %7775 = load i32, ptr %177, align 4, !tbaa !5
  %7776 = call ptr @__errno_location() #12
  store i32 %7775, ptr %7776, align 4, !tbaa !5
  %7777 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7778 = load i32, ptr @test_count, align 4, !tbaa !5
  %7779 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7780 = load i32, ptr %7779, align 4, !tbaa !5
  %7781 = call ptr @s2n_strerror(i32 noundef %7780, ptr noundef @.str.3)
  %7782 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7783 = load i32, ptr %7782, align 4, !tbaa !5
  %7784 = call ptr @s2n_strerror_debug(i32 noundef %7783, ptr noundef @.str.3)
  %7785 = call ptr @__errno_location() #12
  %7786 = load i32, ptr %7785, align 4, !tbaa !5
  %7787 = call ptr @strerror(i32 noundef %7786) #11
  %7788 = call ptr @__errno_location() #12
  %7789 = load i32, ptr %7788, align 4, !tbaa !5
  %7790 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7777, ptr noundef @.str.4, i32 noundef %7778, ptr noundef @.str.31, ptr noundef @.str.2, i32 noundef 356, ptr noundef %7781, ptr noundef %7784, ptr noundef %7787, i32 noundef %7789) #11
  br label %7791

7791:                                             ; preds = %7774, %7757
  call void @llvm.lifetime.end.p0(i64 4, ptr %177) #11
  br label %7792

7792:                                             ; preds = %7791
  br label %7793

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

7794:                                             ; No predecessors!
  br label %7795

7795:                                             ; preds = %7794
  br label %7796

7796:                                             ; preds = %7795, %7731
  br label %7797

7797:                                             ; preds = %7796
  br label %7798

7798:                                             ; preds = %7797
  call void @llvm.lifetime.start.p0(i64 1, ptr %178) #11
  %7799 = load ptr, ptr %6, align 8, !tbaa !9
  %7800 = getelementptr inbounds %struct.s2n_connection, ptr %7799, i32 0, i32 41
  %7801 = getelementptr inbounds %struct.s2n_stuffer, ptr %7800, i32 0, i32 0
  %7802 = getelementptr inbounds %struct.s2n_blob, ptr %7801, i32 0, i32 0
  %7803 = load ptr, ptr %7802, align 8, !tbaa !61
  %7804 = getelementptr inbounds i8, ptr %7803, i64 1
  %7805 = load i8, ptr %7804, align 1, !tbaa !58
  %7806 = zext i8 %7805 to i32
  %7807 = mul nsw i32 %7806, 10
  %7808 = load ptr, ptr %6, align 8, !tbaa !9
  %7809 = getelementptr inbounds %struct.s2n_connection, ptr %7808, i32 0, i32 41
  %7810 = getelementptr inbounds %struct.s2n_stuffer, ptr %7809, i32 0, i32 0
  %7811 = getelementptr inbounds %struct.s2n_blob, ptr %7810, i32 0, i32 0
  %7812 = load ptr, ptr %7811, align 8, !tbaa !61
  %7813 = getelementptr inbounds i8, ptr %7812, i64 2
  %7814 = load i8, ptr %7813, align 1, !tbaa !58
  %7815 = zext i8 %7814 to i32
  %7816 = add nsw i32 %7807, %7815
  %7817 = trunc i32 %7816 to i8
  store i8 %7817, ptr %178, align 1, !tbaa !58
  br label %7818

7818:                                             ; preds = %7798
  %7819 = load i32, ptr @test_count, align 4, !tbaa !5
  %7820 = add nsw i32 %7819, 1
  store i32 %7820, ptr @test_count, align 4, !tbaa !5
  %7821 = load i8, ptr %178, align 1, !tbaa !58
  %7822 = zext i8 %7821 to i32
  %7823 = load ptr, ptr %6, align 8, !tbaa !9
  %7824 = getelementptr inbounds %struct.s2n_connection, ptr %7823, i32 0, i32 23
  %7825 = load i8, ptr %7824, align 4, !tbaa !59
  %7826 = zext i8 %7825 to i32
  %7827 = icmp eq i32 %7822, %7826
  br i1 %7827, label %7881, label %7828

7828:                                             ; preds = %7818
  br label %7829

7829:                                             ; preds = %7828
  br label %7830

7830:                                             ; preds = %7829
  call void @llvm.lifetime.start.p0(i64 4, ptr %179) #11
  %7831 = call ptr @__errno_location() #12
  %7832 = load i32, ptr %7831, align 4, !tbaa !5
  store i32 %7832, ptr %179, align 4, !tbaa !5
  %7833 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7834 = call i32 @s2n_print_stacktrace(ptr noundef %7833)
  %7835 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7836 = trunc i8 %7835 to i1
  br i1 %7836, label %7837, label %7859

7837:                                             ; preds = %7830
  %7838 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7839 = call i32 @fileno(ptr noundef %7838) #11
  %7840 = call i32 @isatty(i32 noundef %7839) #11
  %7841 = icmp ne i32 %7840, 0
  br i1 %7841, label %7842, label %7859

7842:                                             ; preds = %7837
  %7843 = load i32, ptr %179, align 4, !tbaa !5
  %7844 = call ptr @__errno_location() #12
  store i32 %7843, ptr %7844, align 4, !tbaa !5
  %7845 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7846 = load i32, ptr @test_count, align 4, !tbaa !5
  %7847 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7848 = load i32, ptr %7847, align 4, !tbaa !5
  %7849 = call ptr @s2n_strerror(i32 noundef %7848, ptr noundef @.str.3)
  %7850 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7851 = load i32, ptr %7850, align 4, !tbaa !5
  %7852 = call ptr @s2n_strerror_debug(i32 noundef %7851, ptr noundef @.str.3)
  %7853 = call ptr @__errno_location() #12
  %7854 = load i32, ptr %7853, align 4, !tbaa !5
  %7855 = call ptr @strerror(i32 noundef %7854) #11
  %7856 = call ptr @__errno_location() #12
  %7857 = load i32, ptr %7856, align 4, !tbaa !5
  %7858 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7845, ptr noundef @.str, i32 noundef %7846, ptr noundef @.str.32, ptr noundef @.str.2, i32 noundef 358, ptr noundef %7849, ptr noundef %7852, ptr noundef %7855, i32 noundef %7857) #11
  br label %7876

7859:                                             ; preds = %7837, %7830
  %7860 = load i32, ptr %179, align 4, !tbaa !5
  %7861 = call ptr @__errno_location() #12
  store i32 %7860, ptr %7861, align 4, !tbaa !5
  %7862 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7863 = load i32, ptr @test_count, align 4, !tbaa !5
  %7864 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7865 = load i32, ptr %7864, align 4, !tbaa !5
  %7866 = call ptr @s2n_strerror(i32 noundef %7865, ptr noundef @.str.3)
  %7867 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7868 = load i32, ptr %7867, align 4, !tbaa !5
  %7869 = call ptr @s2n_strerror_debug(i32 noundef %7868, ptr noundef @.str.3)
  %7870 = call ptr @__errno_location() #12
  %7871 = load i32, ptr %7870, align 4, !tbaa !5
  %7872 = call ptr @strerror(i32 noundef %7871) #11
  %7873 = call ptr @__errno_location() #12
  %7874 = load i32, ptr %7873, align 4, !tbaa !5
  %7875 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7862, ptr noundef @.str.4, i32 noundef %7863, ptr noundef @.str.32, ptr noundef @.str.2, i32 noundef 358, ptr noundef %7866, ptr noundef %7869, ptr noundef %7872, i32 noundef %7874) #11
  br label %7876

7876:                                             ; preds = %7859, %7842
  call void @llvm.lifetime.end.p0(i64 4, ptr %179) #11
  br label %7877

7877:                                             ; preds = %7876
  br label %7878

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

7879:                                             ; No predecessors!
  br label %7880

7880:                                             ; preds = %7879
  br label %7881

7881:                                             ; preds = %7880, %7818
  br label %7882

7882:                                             ; preds = %7881
  br label %7883

7883:                                             ; preds = %7882
  br label %7884

7884:                                             ; preds = %7883
  %7885 = load i32, ptr @test_count, align 4, !tbaa !5
  %7886 = add nsw i32 %7885, 1
  store i32 %7886, ptr @test_count, align 4, !tbaa !5
  %7887 = load ptr, ptr %6, align 8, !tbaa !9
  %7888 = getelementptr inbounds %struct.s2n_connection, ptr %7887, i32 0, i32 41
  %7889 = getelementptr inbounds %struct.s2n_stuffer, ptr %7888, i32 0, i32 0
  %7890 = getelementptr inbounds %struct.s2n_blob, ptr %7889, i32 0, i32 0
  %7891 = load ptr, ptr %7890, align 8, !tbaa !61
  %7892 = getelementptr inbounds i8, ptr %7891, i64 3
  %7893 = load i8, ptr %7892, align 1, !tbaa !58
  %7894 = zext i8 %7893 to i32
  %7895 = load i16, ptr %176, align 2, !tbaa !60
  %7896 = zext i16 %7895 to i32
  %7897 = ashr i32 %7896, 8
  %7898 = and i32 %7897, 255
  %7899 = icmp eq i32 %7894, %7898
  br i1 %7899, label %7953, label %7900

7900:                                             ; preds = %7884
  br label %7901

7901:                                             ; preds = %7900
  br label %7902

7902:                                             ; preds = %7901
  call void @llvm.lifetime.start.p0(i64 4, ptr %180) #11
  %7903 = call ptr @__errno_location() #12
  %7904 = load i32, ptr %7903, align 4, !tbaa !5
  store i32 %7904, ptr %180, align 4, !tbaa !5
  %7905 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7906 = call i32 @s2n_print_stacktrace(ptr noundef %7905)
  %7907 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7908 = trunc i8 %7907 to i1
  br i1 %7908, label %7909, label %7931

7909:                                             ; preds = %7902
  %7910 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7911 = call i32 @fileno(ptr noundef %7910) #11
  %7912 = call i32 @isatty(i32 noundef %7911) #11
  %7913 = icmp ne i32 %7912, 0
  br i1 %7913, label %7914, label %7931

7914:                                             ; preds = %7909
  %7915 = load i32, ptr %180, align 4, !tbaa !5
  %7916 = call ptr @__errno_location() #12
  store i32 %7915, ptr %7916, align 4, !tbaa !5
  %7917 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7918 = load i32, ptr @test_count, align 4, !tbaa !5
  %7919 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7920 = load i32, ptr %7919, align 4, !tbaa !5
  %7921 = call ptr @s2n_strerror(i32 noundef %7920, ptr noundef @.str.3)
  %7922 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7923 = load i32, ptr %7922, align 4, !tbaa !5
  %7924 = call ptr @s2n_strerror_debug(i32 noundef %7923, ptr noundef @.str.3)
  %7925 = call ptr @__errno_location() #12
  %7926 = load i32, ptr %7925, align 4, !tbaa !5
  %7927 = call ptr @strerror(i32 noundef %7926) #11
  %7928 = call ptr @__errno_location() #12
  %7929 = load i32, ptr %7928, align 4, !tbaa !5
  %7930 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7917, ptr noundef @.str, i32 noundef %7918, ptr noundef @.str.33, ptr noundef @.str.2, i32 noundef 359, ptr noundef %7921, ptr noundef %7924, ptr noundef %7927, i32 noundef %7929) #11
  br label %7948

7931:                                             ; preds = %7909, %7902
  %7932 = load i32, ptr %180, align 4, !tbaa !5
  %7933 = call ptr @__errno_location() #12
  store i32 %7932, ptr %7933, align 4, !tbaa !5
  %7934 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7935 = load i32, ptr @test_count, align 4, !tbaa !5
  %7936 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7937 = load i32, ptr %7936, align 4, !tbaa !5
  %7938 = call ptr @s2n_strerror(i32 noundef %7937, ptr noundef @.str.3)
  %7939 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7940 = load i32, ptr %7939, align 4, !tbaa !5
  %7941 = call ptr @s2n_strerror_debug(i32 noundef %7940, ptr noundef @.str.3)
  %7942 = call ptr @__errno_location() #12
  %7943 = load i32, ptr %7942, align 4, !tbaa !5
  %7944 = call ptr @strerror(i32 noundef %7943) #11
  %7945 = call ptr @__errno_location() #12
  %7946 = load i32, ptr %7945, align 4, !tbaa !5
  %7947 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7934, ptr noundef @.str.4, i32 noundef %7935, ptr noundef @.str.33, ptr noundef @.str.2, i32 noundef 359, ptr noundef %7938, ptr noundef %7941, ptr noundef %7944, i32 noundef %7946) #11
  br label %7948

7948:                                             ; preds = %7931, %7914
  call void @llvm.lifetime.end.p0(i64 4, ptr %180) #11
  br label %7949

7949:                                             ; preds = %7948
  br label %7950

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

7951:                                             ; No predecessors!
  br label %7952

7952:                                             ; preds = %7951
  br label %7953

7953:                                             ; preds = %7952, %7884
  br label %7954

7954:                                             ; preds = %7953
  br label %7955

7955:                                             ; preds = %7954
  br label %7956

7956:                                             ; preds = %7955
  %7957 = load i32, ptr @test_count, align 4, !tbaa !5
  %7958 = add nsw i32 %7957, 1
  store i32 %7958, ptr @test_count, align 4, !tbaa !5
  %7959 = load ptr, ptr %6, align 8, !tbaa !9
  %7960 = getelementptr inbounds %struct.s2n_connection, ptr %7959, i32 0, i32 41
  %7961 = getelementptr inbounds %struct.s2n_stuffer, ptr %7960, i32 0, i32 0
  %7962 = getelementptr inbounds %struct.s2n_blob, ptr %7961, i32 0, i32 0
  %7963 = load ptr, ptr %7962, align 8, !tbaa !61
  %7964 = getelementptr inbounds i8, ptr %7963, i64 4
  %7965 = load i8, ptr %7964, align 1, !tbaa !58
  %7966 = zext i8 %7965 to i32
  %7967 = load i16, ptr %176, align 2, !tbaa !60
  %7968 = zext i16 %7967 to i32
  %7969 = and i32 %7968, 255
  %7970 = icmp eq i32 %7966, %7969
  br i1 %7970, label %8024, label %7971

7971:                                             ; preds = %7956
  br label %7972

7972:                                             ; preds = %7971
  br label %7973

7973:                                             ; preds = %7972
  call void @llvm.lifetime.start.p0(i64 4, ptr %181) #11
  %7974 = call ptr @__errno_location() #12
  %7975 = load i32, ptr %7974, align 4, !tbaa !5
  store i32 %7975, ptr %181, align 4, !tbaa !5
  %7976 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7977 = call i32 @s2n_print_stacktrace(ptr noundef %7976)
  %7978 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7979 = trunc i8 %7978 to i1
  br i1 %7979, label %7980, label %8002

7980:                                             ; preds = %7973
  %7981 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7982 = call i32 @fileno(ptr noundef %7981) #11
  %7983 = call i32 @isatty(i32 noundef %7982) #11
  %7984 = icmp ne i32 %7983, 0
  br i1 %7984, label %7985, label %8002

7985:                                             ; preds = %7980
  %7986 = load i32, ptr %181, align 4, !tbaa !5
  %7987 = call ptr @__errno_location() #12
  store i32 %7986, ptr %7987, align 4, !tbaa !5
  %7988 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7989 = load i32, ptr @test_count, align 4, !tbaa !5
  %7990 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7991 = load i32, ptr %7990, align 4, !tbaa !5
  %7992 = call ptr @s2n_strerror(i32 noundef %7991, ptr noundef @.str.3)
  %7993 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7994 = load i32, ptr %7993, align 4, !tbaa !5
  %7995 = call ptr @s2n_strerror_debug(i32 noundef %7994, ptr noundef @.str.3)
  %7996 = call ptr @__errno_location() #12
  %7997 = load i32, ptr %7996, align 4, !tbaa !5
  %7998 = call ptr @strerror(i32 noundef %7997) #11
  %7999 = call ptr @__errno_location() #12
  %8000 = load i32, ptr %7999, align 4, !tbaa !5
  %8001 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7988, ptr noundef @.str, i32 noundef %7989, ptr noundef @.str.34, ptr noundef @.str.2, i32 noundef 360, ptr noundef %7992, ptr noundef %7995, ptr noundef %7998, i32 noundef %8000) #11
  br label %8019

8002:                                             ; preds = %7980, %7973
  %8003 = load i32, ptr %181, align 4, !tbaa !5
  %8004 = call ptr @__errno_location() #12
  store i32 %8003, ptr %8004, align 4, !tbaa !5
  %8005 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8006 = load i32, ptr @test_count, align 4, !tbaa !5
  %8007 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8008 = load i32, ptr %8007, align 4, !tbaa !5
  %8009 = call ptr @s2n_strerror(i32 noundef %8008, ptr noundef @.str.3)
  %8010 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8011 = load i32, ptr %8010, align 4, !tbaa !5
  %8012 = call ptr @s2n_strerror_debug(i32 noundef %8011, ptr noundef @.str.3)
  %8013 = call ptr @__errno_location() #12
  %8014 = load i32, ptr %8013, align 4, !tbaa !5
  %8015 = call ptr @strerror(i32 noundef %8014) #11
  %8016 = call ptr @__errno_location() #12
  %8017 = load i32, ptr %8016, align 4, !tbaa !5
  %8018 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8005, ptr noundef @.str.4, i32 noundef %8006, ptr noundef @.str.34, ptr noundef @.str.2, i32 noundef 360, ptr noundef %8009, ptr noundef %8012, ptr noundef %8015, i32 noundef %8017) #11
  br label %8019

8019:                                             ; preds = %8002, %7985
  call void @llvm.lifetime.end.p0(i64 4, ptr %181) #11
  br label %8020

8020:                                             ; preds = %8019
  br label %8021

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

8022:                                             ; No predecessors!
  br label %8023

8023:                                             ; preds = %8022
  br label %8024

8024:                                             ; preds = %8023, %7956
  br label %8025

8025:                                             ; preds = %8024
  br label %8026

8026:                                             ; preds = %8025
  %8027 = load i32, ptr %161, align 4, !tbaa !5
  %8028 = icmp sgt i32 %8027, 10
  br i1 %8028, label %8029, label %8103

8029:                                             ; preds = %8026
  br label %8030

8030:                                             ; preds = %8029
  %8031 = load i32, ptr @test_count, align 4, !tbaa !5
  %8032 = add nsw i32 %8031, 1
  store i32 %8032, ptr @test_count, align 4, !tbaa !5
  %8033 = load ptr, ptr %6, align 8, !tbaa !9
  %8034 = getelementptr inbounds %struct.s2n_connection, ptr %8033, i32 0, i32 41
  %8035 = getelementptr inbounds %struct.s2n_stuffer, ptr %8034, i32 0, i32 0
  %8036 = getelementptr inbounds %struct.s2n_blob, ptr %8035, i32 0, i32 0
  %8037 = load ptr, ptr %8036, align 8, !tbaa !61
  %8038 = getelementptr inbounds i8, ptr %8037, i64 5
  %8039 = load i32, ptr %170, align 4, !tbaa !5
  %8040 = sext i32 %8039 to i64
  %8041 = getelementptr inbounds i8, ptr %8038, i64 %8040
  %8042 = getelementptr inbounds [8088 x i8], ptr %7, i64 0, i64 0
  %8043 = load i32, ptr %161, align 4, !tbaa !5
  %8044 = sext i32 %8043 to i64
  %8045 = call i32 @memcmp(ptr noundef %8041, ptr noundef %8042, i64 noundef %8044) #14
  %8046 = icmp eq i32 %8045, 0
  br i1 %8046, label %8047, label %8100

8047:                                             ; preds = %8030
  br label %8048

8048:                                             ; preds = %8047
  br label %8049

8049:                                             ; preds = %8048
  call void @llvm.lifetime.start.p0(i64 4, ptr %182) #11
  %8050 = call ptr @__errno_location() #12
  %8051 = load i32, ptr %8050, align 4, !tbaa !5
  store i32 %8051, ptr %182, align 4, !tbaa !5
  %8052 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8053 = call i32 @s2n_print_stacktrace(ptr noundef %8052)
  %8054 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8055 = trunc i8 %8054 to i1
  br i1 %8055, label %8056, label %8078

8056:                                             ; preds = %8049
  %8057 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8058 = call i32 @fileno(ptr noundef %8057) #11
  %8059 = call i32 @isatty(i32 noundef %8058) #11
  %8060 = icmp ne i32 %8059, 0
  br i1 %8060, label %8061, label %8078

8061:                                             ; preds = %8056
  %8062 = load i32, ptr %182, align 4, !tbaa !5
  %8063 = call ptr @__errno_location() #12
  store i32 %8062, ptr %8063, align 4, !tbaa !5
  %8064 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8065 = load i32, ptr @test_count, align 4, !tbaa !5
  %8066 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8067 = load i32, ptr %8066, align 4, !tbaa !5
  %8068 = call ptr @s2n_strerror(i32 noundef %8067, ptr noundef @.str.3)
  %8069 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8070 = load i32, ptr %8069, align 4, !tbaa !5
  %8071 = call ptr @s2n_strerror_debug(i32 noundef %8070, ptr noundef @.str.3)
  %8072 = call ptr @__errno_location() #12
  %8073 = load i32, ptr %8072, align 4, !tbaa !5
  %8074 = call ptr @strerror(i32 noundef %8073) #11
  %8075 = call ptr @__errno_location() #12
  %8076 = load i32, ptr %8075, align 4, !tbaa !5
  %8077 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8064, ptr noundef @.str, i32 noundef %8065, ptr noundef @.str.35, ptr noundef @.str.2, i32 noundef 364, ptr noundef %8068, ptr noundef %8071, ptr noundef %8074, i32 noundef %8076) #11
  br label %8095

8078:                                             ; preds = %8056, %8049
  %8079 = load i32, ptr %182, align 4, !tbaa !5
  %8080 = call ptr @__errno_location() #12
  store i32 %8079, ptr %8080, align 4, !tbaa !5
  %8081 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8082 = load i32, ptr @test_count, align 4, !tbaa !5
  %8083 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8084 = load i32, ptr %8083, align 4, !tbaa !5
  %8085 = call ptr @s2n_strerror(i32 noundef %8084, ptr noundef @.str.3)
  %8086 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8087 = load i32, ptr %8086, align 4, !tbaa !5
  %8088 = call ptr @s2n_strerror_debug(i32 noundef %8087, ptr noundef @.str.3)
  %8089 = call ptr @__errno_location() #12
  %8090 = load i32, ptr %8089, align 4, !tbaa !5
  %8091 = call ptr @strerror(i32 noundef %8090) #11
  %8092 = call ptr @__errno_location() #12
  %8093 = load i32, ptr %8092, align 4, !tbaa !5
  %8094 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8081, ptr noundef @.str.4, i32 noundef %8082, ptr noundef @.str.35, ptr noundef @.str.2, i32 noundef 364, ptr noundef %8085, ptr noundef %8088, ptr noundef %8091, i32 noundef %8093) #11
  br label %8095

8095:                                             ; preds = %8078, %8061
  call void @llvm.lifetime.end.p0(i64 4, ptr %182) #11
  br label %8096

8096:                                             ; preds = %8095
  br label %8097

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

8098:                                             ; No predecessors!
  br label %8099

8099:                                             ; preds = %8098
  br label %8100

8100:                                             ; preds = %8099, %8030
  br label %8101

8101:                                             ; preds = %8100
  br label %8102

8102:                                             ; preds = %8101
  br label %8103

8103:                                             ; preds = %8102, %8026
  %8104 = load i32, ptr %170, align 4, !tbaa !5
  %8105 = icmp sgt i32 %8104, 0
  br i1 %8105, label %8106, label %8250

8106:                                             ; preds = %8103
  call void @llvm.lifetime.start.p0(i64 8, ptr %183) #11
  %8107 = load ptr, ptr %6, align 8, !tbaa !9
  %8108 = getelementptr inbounds %struct.s2n_connection, ptr %8107, i32 0, i32 41
  %8109 = getelementptr inbounds %struct.s2n_stuffer, ptr %8108, i32 0, i32 0
  %8110 = getelementptr inbounds %struct.s2n_blob, ptr %8109, i32 0, i32 0
  %8111 = load ptr, ptr %8110, align 8, !tbaa !61
  %8112 = getelementptr inbounds i8, ptr %8111, i64 5
  store ptr %8112, ptr %183, align 8, !tbaa !9
  br label %8113

8113:                                             ; preds = %8106
  %8114 = load i32, ptr @test_count, align 4, !tbaa !5
  %8115 = add nsw i32 %8114, 1
  store i32 %8115, ptr @test_count, align 4, !tbaa !5
  %8116 = getelementptr inbounds [8089 x [16 x i8]], ptr %18, i64 0, i64 0
  %8117 = load i32, ptr %158, align 4, !tbaa !5
  %8118 = sext i32 %8117 to i64
  %8119 = load ptr, ptr %183, align 8, !tbaa !9
  %8120 = load i32, ptr %170, align 4, !tbaa !5
  %8121 = trunc i32 %8120 to i16
  %8122 = call i32 @ensure_explicit_iv_is_unique(ptr noundef %8116, i64 noundef %8118, ptr noundef %8119, i16 noundef zeroext %8121)
  %8123 = icmp eq i32 %8122, -1
  br i1 %8123, label %8124, label %8177

8124:                                             ; preds = %8113
  br label %8125

8125:                                             ; preds = %8124
  br label %8126

8126:                                             ; preds = %8125
  call void @llvm.lifetime.start.p0(i64 4, ptr %184) #11
  %8127 = call ptr @__errno_location() #12
  %8128 = load i32, ptr %8127, align 4, !tbaa !5
  store i32 %8128, ptr %184, align 4, !tbaa !5
  %8129 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8130 = call i32 @s2n_print_stacktrace(ptr noundef %8129)
  %8131 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8132 = trunc i8 %8131 to i1
  br i1 %8132, label %8133, label %8155

8133:                                             ; preds = %8126
  %8134 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8135 = call i32 @fileno(ptr noundef %8134) #11
  %8136 = call i32 @isatty(i32 noundef %8135) #11
  %8137 = icmp ne i32 %8136, 0
  br i1 %8137, label %8138, label %8155

8138:                                             ; preds = %8133
  %8139 = load i32, ptr %184, align 4, !tbaa !5
  %8140 = call ptr @__errno_location() #12
  store i32 %8139, ptr %8140, align 4, !tbaa !5
  %8141 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8142 = load i32, ptr @test_count, align 4, !tbaa !5
  %8143 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8144 = load i32, ptr %8143, align 4, !tbaa !5
  %8145 = call ptr @s2n_strerror(i32 noundef %8144, ptr noundef @.str.3)
  %8146 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8147 = load i32, ptr %8146, align 4, !tbaa !5
  %8148 = call ptr @s2n_strerror_debug(i32 noundef %8147, ptr noundef @.str.3)
  %8149 = call ptr @__errno_location() #12
  %8150 = load i32, ptr %8149, align 4, !tbaa !5
  %8151 = call ptr @strerror(i32 noundef %8150) #11
  %8152 = call ptr @__errno_location() #12
  %8153 = load i32, ptr %8152, align 4, !tbaa !5
  %8154 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8141, ptr noundef @.str, i32 noundef %8142, ptr noundef @.str.36, ptr noundef @.str.2, i32 noundef 370, ptr noundef %8145, ptr noundef %8148, ptr noundef %8151, i32 noundef %8153) #11
  br label %8172

8155:                                             ; preds = %8133, %8126
  %8156 = load i32, ptr %184, align 4, !tbaa !5
  %8157 = call ptr @__errno_location() #12
  store i32 %8156, ptr %8157, align 4, !tbaa !5
  %8158 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8159 = load i32, ptr @test_count, align 4, !tbaa !5
  %8160 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8161 = load i32, ptr %8160, align 4, !tbaa !5
  %8162 = call ptr @s2n_strerror(i32 noundef %8161, ptr noundef @.str.3)
  %8163 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8164 = load i32, ptr %8163, align 4, !tbaa !5
  %8165 = call ptr @s2n_strerror_debug(i32 noundef %8164, ptr noundef @.str.3)
  %8166 = call ptr @__errno_location() #12
  %8167 = load i32, ptr %8166, align 4, !tbaa !5
  %8168 = call ptr @strerror(i32 noundef %8167) #11
  %8169 = call ptr @__errno_location() #12
  %8170 = load i32, ptr %8169, align 4, !tbaa !5
  %8171 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8158, ptr noundef @.str.4, i32 noundef %8159, ptr noundef @.str.36, ptr noundef @.str.2, i32 noundef 370, ptr noundef %8162, ptr noundef %8165, ptr noundef %8168, i32 noundef %8170) #11
  br label %8172

8172:                                             ; preds = %8155, %8138
  call void @llvm.lifetime.end.p0(i64 4, ptr %184) #11
  br label %8173

8173:                                             ; preds = %8172
  br label %8174

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

8175:                                             ; No predecessors!
  br label %8176

8176:                                             ; preds = %8175
  br label %8177

8177:                                             ; preds = %8176, %8113
  br label %8178

8178:                                             ; preds = %8177
  br label %8179

8179:                                             ; preds = %8178
  br label %8180

8180:                                             ; preds = %8179
  call void @llvm.lifetime.start.p0(i64 4, ptr %185) #11
  %8181 = load i32, ptr %170, align 4, !tbaa !5
  store i32 %8181, ptr %185, align 4, !tbaa !5
  %8182 = load i32, ptr %185, align 4, !tbaa !5
  %8183 = icmp ne i32 %8182, 0
  br i1 %8183, label %8184, label %8247

8184:                                             ; preds = %8180
  %8185 = load i32, ptr %158, align 4, !tbaa !5
  %8186 = sext i32 %8185 to i64
  %8187 = getelementptr inbounds [8089 x [16 x i8]], ptr %18, i64 0, i64 %8186
  %8188 = getelementptr inbounds [16 x i8], ptr %8187, i64 0, i64 0
  %8189 = load ptr, ptr %183, align 8, !tbaa !9
  %8190 = load i32, ptr %185, align 4, !tbaa !5
  %8191 = sext i32 %8190 to i64
  call void @llvm.memmove.p0.p0.i64(ptr align 16 %8188, ptr align 1 %8189, i64 %8191, i1 false)
  %8192 = icmp eq ptr %8188, null
  br i1 %8192, label %8193, label %8246

8193:                                             ; preds = %8184
  br label %8194

8194:                                             ; preds = %8193
  br label %8195

8195:                                             ; preds = %8194
  call void @llvm.lifetime.start.p0(i64 4, ptr %186) #11
  %8196 = call ptr @__errno_location() #12
  %8197 = load i32, ptr %8196, align 4, !tbaa !5
  store i32 %8197, ptr %186, align 4, !tbaa !5
  %8198 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8199 = call i32 @s2n_print_stacktrace(ptr noundef %8198)
  %8200 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8201 = trunc i8 %8200 to i1
  br i1 %8201, label %8202, label %8224

8202:                                             ; preds = %8195
  %8203 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8204 = call i32 @fileno(ptr noundef %8203) #11
  %8205 = call i32 @isatty(i32 noundef %8204) #11
  %8206 = icmp ne i32 %8205, 0
  br i1 %8206, label %8207, label %8224

8207:                                             ; preds = %8202
  %8208 = load i32, ptr %186, align 4, !tbaa !5
  %8209 = call ptr @__errno_location() #12
  store i32 %8208, ptr %8209, align 4, !tbaa !5
  %8210 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8211 = load i32, ptr @test_count, align 4, !tbaa !5
  %8212 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8213 = load i32, ptr %8212, align 4, !tbaa !5
  %8214 = call ptr @s2n_strerror(i32 noundef %8213, ptr noundef @.str.3)
  %8215 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8216 = load i32, ptr %8215, align 4, !tbaa !5
  %8217 = call ptr @s2n_strerror_debug(i32 noundef %8216, ptr noundef @.str.3)
  %8218 = call ptr @__errno_location() #12
  %8219 = load i32, ptr %8218, align 4, !tbaa !5
  %8220 = call ptr @strerror(i32 noundef %8219) #11
  %8221 = call ptr @__errno_location() #12
  %8222 = load i32, ptr %8221, align 4, !tbaa !5
  %8223 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8210, ptr noundef @.str, i32 noundef %8211, ptr noundef @.str.37, ptr noundef @.str.2, i32 noundef 372, ptr noundef %8214, ptr noundef %8217, ptr noundef %8220, i32 noundef %8222) #11
  br label %8241

8224:                                             ; preds = %8202, %8195
  %8225 = load i32, ptr %186, align 4, !tbaa !5
  %8226 = call ptr @__errno_location() #12
  store i32 %8225, ptr %8226, align 4, !tbaa !5
  %8227 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8228 = load i32, ptr @test_count, align 4, !tbaa !5
  %8229 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8230 = load i32, ptr %8229, align 4, !tbaa !5
  %8231 = call ptr @s2n_strerror(i32 noundef %8230, ptr noundef @.str.3)
  %8232 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8233 = load i32, ptr %8232, align 4, !tbaa !5
  %8234 = call ptr @s2n_strerror_debug(i32 noundef %8233, ptr noundef @.str.3)
  %8235 = call ptr @__errno_location() #12
  %8236 = load i32, ptr %8235, align 4, !tbaa !5
  %8237 = call ptr @strerror(i32 noundef %8236) #11
  %8238 = call ptr @__errno_location() #12
  %8239 = load i32, ptr %8238, align 4, !tbaa !5
  %8240 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8227, ptr noundef @.str.4, i32 noundef %8228, ptr noundef @.str.37, ptr noundef @.str.2, i32 noundef 372, ptr noundef %8231, ptr noundef %8234, ptr noundef %8237, i32 noundef %8239) #11
  br label %8241

8241:                                             ; preds = %8224, %8207
  call void @llvm.lifetime.end.p0(i64 4, ptr %186) #11
  br label %8242

8242:                                             ; preds = %8241
  br label %8243

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

8244:                                             ; No predecessors!
  br label %8245

8245:                                             ; preds = %8244
  br label %8246

8246:                                             ; preds = %8245, %8184
  br label %8247

8247:                                             ; preds = %8246, %8180
  call void @llvm.lifetime.end.p0(i64 4, ptr %185) #11
  br label %8248

8248:                                             ; preds = %8247
  br label %8249

8249:                                             ; preds = %8248
  call void @llvm.lifetime.end.p0(i64 8, ptr %183) #11
  br label %8250

8250:                                             ; preds = %8249, %8103
  br label %8251

8251:                                             ; preds = %8250
  %8252 = load i32, ptr @test_count, align 4, !tbaa !5
  %8253 = add nsw i32 %8252, 1
  store i32 %8253, ptr @test_count, align 4, !tbaa !5
  %8254 = load ptr, ptr %6, align 8, !tbaa !9
  %8255 = getelementptr inbounds %struct.s2n_connection, ptr %8254, i32 0, i32 40
  %8256 = call i32 @s2n_stuffer_wipe(ptr noundef %8255)
  %8257 = icmp eq i32 %8256, -1
  br i1 %8257, label %8258, label %8311

8258:                                             ; preds = %8251
  br label %8259

8259:                                             ; preds = %8258
  br label %8260

8260:                                             ; preds = %8259
  call void @llvm.lifetime.start.p0(i64 4, ptr %187) #11
  %8261 = call ptr @__errno_location() #12
  %8262 = load i32, ptr %8261, align 4, !tbaa !5
  store i32 %8262, ptr %187, align 4, !tbaa !5
  %8263 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8264 = call i32 @s2n_print_stacktrace(ptr noundef %8263)
  %8265 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8266 = trunc i8 %8265 to i1
  br i1 %8266, label %8267, label %8289

8267:                                             ; preds = %8260
  %8268 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8269 = call i32 @fileno(ptr noundef %8268) #11
  %8270 = call i32 @isatty(i32 noundef %8269) #11
  %8271 = icmp ne i32 %8270, 0
  br i1 %8271, label %8272, label %8289

8272:                                             ; preds = %8267
  %8273 = load i32, ptr %187, align 4, !tbaa !5
  %8274 = call ptr @__errno_location() #12
  store i32 %8273, ptr %8274, align 4, !tbaa !5
  %8275 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8276 = load i32, ptr @test_count, align 4, !tbaa !5
  %8277 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8278 = load i32, ptr %8277, align 4, !tbaa !5
  %8279 = call ptr @s2n_strerror(i32 noundef %8278, ptr noundef @.str.3)
  %8280 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8281 = load i32, ptr %8280, align 4, !tbaa !5
  %8282 = call ptr @s2n_strerror_debug(i32 noundef %8281, ptr noundef @.str.3)
  %8283 = call ptr @__errno_location() #12
  %8284 = load i32, ptr %8283, align 4, !tbaa !5
  %8285 = call ptr @strerror(i32 noundef %8284) #11
  %8286 = call ptr @__errno_location() #12
  %8287 = load i32, ptr %8286, align 4, !tbaa !5
  %8288 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8275, ptr noundef @.str, i32 noundef %8276, ptr noundef @.str.38, ptr noundef @.str.2, i32 noundef 376, ptr noundef %8279, ptr noundef %8282, ptr noundef %8285, i32 noundef %8287) #11
  br label %8306

8289:                                             ; preds = %8267, %8260
  %8290 = load i32, ptr %187, align 4, !tbaa !5
  %8291 = call ptr @__errno_location() #12
  store i32 %8290, ptr %8291, align 4, !tbaa !5
  %8292 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8293 = load i32, ptr @test_count, align 4, !tbaa !5
  %8294 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8295 = load i32, ptr %8294, align 4, !tbaa !5
  %8296 = call ptr @s2n_strerror(i32 noundef %8295, ptr noundef @.str.3)
  %8297 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8298 = load i32, ptr %8297, align 4, !tbaa !5
  %8299 = call ptr @s2n_strerror_debug(i32 noundef %8298, ptr noundef @.str.3)
  %8300 = call ptr @__errno_location() #12
  %8301 = load i32, ptr %8300, align 4, !tbaa !5
  %8302 = call ptr @strerror(i32 noundef %8301) #11
  %8303 = call ptr @__errno_location() #12
  %8304 = load i32, ptr %8303, align 4, !tbaa !5
  %8305 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8292, ptr noundef @.str.4, i32 noundef %8293, ptr noundef @.str.38, ptr noundef @.str.2, i32 noundef 376, ptr noundef %8296, ptr noundef %8299, ptr noundef %8302, i32 noundef %8304) #11
  br label %8306

8306:                                             ; preds = %8289, %8272
  call void @llvm.lifetime.end.p0(i64 4, ptr %187) #11
  br label %8307

8307:                                             ; preds = %8306
  br label %8308

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

8309:                                             ; No predecessors!
  br label %8310

8310:                                             ; preds = %8309
  br label %8311

8311:                                             ; preds = %8310, %8251
  br label %8312

8312:                                             ; preds = %8311
  br label %8313

8313:                                             ; preds = %8312
  br label %8314

8314:                                             ; preds = %8313
  %8315 = load i32, ptr @test_count, align 4, !tbaa !5
  %8316 = add nsw i32 %8315, 1
  store i32 %8316, ptr @test_count, align 4, !tbaa !5
  %8317 = load ptr, ptr %6, align 8, !tbaa !9
  %8318 = getelementptr inbounds %struct.s2n_connection, ptr %8317, i32 0, i32 38
  %8319 = call i32 @s2n_stuffer_wipe(ptr noundef %8318)
  %8320 = icmp eq i32 %8319, -1
  br i1 %8320, label %8321, label %8374

8321:                                             ; preds = %8314
  br label %8322

8322:                                             ; preds = %8321
  br label %8323

8323:                                             ; preds = %8322
  call void @llvm.lifetime.start.p0(i64 4, ptr %188) #11
  %8324 = call ptr @__errno_location() #12
  %8325 = load i32, ptr %8324, align 4, !tbaa !5
  store i32 %8325, ptr %188, align 4, !tbaa !5
  %8326 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8327 = call i32 @s2n_print_stacktrace(ptr noundef %8326)
  %8328 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8329 = trunc i8 %8328 to i1
  br i1 %8329, label %8330, label %8352

8330:                                             ; preds = %8323
  %8331 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8332 = call i32 @fileno(ptr noundef %8331) #11
  %8333 = call i32 @isatty(i32 noundef %8332) #11
  %8334 = icmp ne i32 %8333, 0
  br i1 %8334, label %8335, label %8352

8335:                                             ; preds = %8330
  %8336 = load i32, ptr %188, align 4, !tbaa !5
  %8337 = call ptr @__errno_location() #12
  store i32 %8336, ptr %8337, align 4, !tbaa !5
  %8338 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8339 = load i32, ptr @test_count, align 4, !tbaa !5
  %8340 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8341 = load i32, ptr %8340, align 4, !tbaa !5
  %8342 = call ptr @s2n_strerror(i32 noundef %8341, ptr noundef @.str.3)
  %8343 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8344 = load i32, ptr %8343, align 4, !tbaa !5
  %8345 = call ptr @s2n_strerror_debug(i32 noundef %8344, ptr noundef @.str.3)
  %8346 = call ptr @__errno_location() #12
  %8347 = load i32, ptr %8346, align 4, !tbaa !5
  %8348 = call ptr @strerror(i32 noundef %8347) #11
  %8349 = call ptr @__errno_location() #12
  %8350 = load i32, ptr %8349, align 4, !tbaa !5
  %8351 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8338, ptr noundef @.str, i32 noundef %8339, ptr noundef @.str.39, ptr noundef @.str.2, i32 noundef 377, ptr noundef %8342, ptr noundef %8345, ptr noundef %8348, i32 noundef %8350) #11
  br label %8369

8352:                                             ; preds = %8330, %8323
  %8353 = load i32, ptr %188, align 4, !tbaa !5
  %8354 = call ptr @__errno_location() #12
  store i32 %8353, ptr %8354, align 4, !tbaa !5
  %8355 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8356 = load i32, ptr @test_count, align 4, !tbaa !5
  %8357 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8358 = load i32, ptr %8357, align 4, !tbaa !5
  %8359 = call ptr @s2n_strerror(i32 noundef %8358, ptr noundef @.str.3)
  %8360 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8361 = load i32, ptr %8360, align 4, !tbaa !5
  %8362 = call ptr @s2n_strerror_debug(i32 noundef %8361, ptr noundef @.str.3)
  %8363 = call ptr @__errno_location() #12
  %8364 = load i32, ptr %8363, align 4, !tbaa !5
  %8365 = call ptr @strerror(i32 noundef %8364) #11
  %8366 = call ptr @__errno_location() #12
  %8367 = load i32, ptr %8366, align 4, !tbaa !5
  %8368 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8355, ptr noundef @.str.4, i32 noundef %8356, ptr noundef @.str.39, ptr noundef @.str.2, i32 noundef 377, ptr noundef %8359, ptr noundef %8362, ptr noundef %8365, i32 noundef %8367) #11
  br label %8369

8369:                                             ; preds = %8352, %8335
  call void @llvm.lifetime.end.p0(i64 4, ptr %188) #11
  br label %8370

8370:                                             ; preds = %8369
  br label %8371

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

8372:                                             ; No predecessors!
  br label %8373

8373:                                             ; preds = %8372
  br label %8374

8374:                                             ; preds = %8373, %8314
  br label %8375

8375:                                             ; preds = %8374
  br label %8376

8376:                                             ; preds = %8375
  br label %8377

8377:                                             ; preds = %8376
  %8378 = load i32, ptr @test_count, align 4, !tbaa !5
  %8379 = add nsw i32 %8378, 1
  store i32 %8379, ptr @test_count, align 4, !tbaa !5
  %8380 = load ptr, ptr %6, align 8, !tbaa !9
  %8381 = getelementptr inbounds %struct.s2n_connection, ptr %8380, i32 0, i32 41
  %8382 = load ptr, ptr %6, align 8, !tbaa !9
  %8383 = getelementptr inbounds %struct.s2n_connection, ptr %8382, i32 0, i32 38
  %8384 = call i32 @s2n_stuffer_copy(ptr noundef %8381, ptr noundef %8383, i32 noundef 5)
  %8385 = icmp eq i32 %8384, -1
  br i1 %8385, label %8386, label %8439

8386:                                             ; preds = %8377
  br label %8387

8387:                                             ; preds = %8386
  br label %8388

8388:                                             ; preds = %8387
  call void @llvm.lifetime.start.p0(i64 4, ptr %189) #11
  %8389 = call ptr @__errno_location() #12
  %8390 = load i32, ptr %8389, align 4, !tbaa !5
  store i32 %8390, ptr %189, align 4, !tbaa !5
  %8391 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8392 = call i32 @s2n_print_stacktrace(ptr noundef %8391)
  %8393 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8394 = trunc i8 %8393 to i1
  br i1 %8394, label %8395, label %8417

8395:                                             ; preds = %8388
  %8396 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8397 = call i32 @fileno(ptr noundef %8396) #11
  %8398 = call i32 @isatty(i32 noundef %8397) #11
  %8399 = icmp ne i32 %8398, 0
  br i1 %8399, label %8400, label %8417

8400:                                             ; preds = %8395
  %8401 = load i32, ptr %189, align 4, !tbaa !5
  %8402 = call ptr @__errno_location() #12
  store i32 %8401, ptr %8402, align 4, !tbaa !5
  %8403 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8404 = load i32, ptr @test_count, align 4, !tbaa !5
  %8405 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8406 = load i32, ptr %8405, align 4, !tbaa !5
  %8407 = call ptr @s2n_strerror(i32 noundef %8406, ptr noundef @.str.3)
  %8408 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8409 = load i32, ptr %8408, align 4, !tbaa !5
  %8410 = call ptr @s2n_strerror_debug(i32 noundef %8409, ptr noundef @.str.3)
  %8411 = call ptr @__errno_location() #12
  %8412 = load i32, ptr %8411, align 4, !tbaa !5
  %8413 = call ptr @strerror(i32 noundef %8412) #11
  %8414 = call ptr @__errno_location() #12
  %8415 = load i32, ptr %8414, align 4, !tbaa !5
  %8416 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8403, ptr noundef @.str, i32 noundef %8404, ptr noundef @.str.40, ptr noundef @.str.2, i32 noundef 378, ptr noundef %8407, ptr noundef %8410, ptr noundef %8413, i32 noundef %8415) #11
  br label %8434

8417:                                             ; preds = %8395, %8388
  %8418 = load i32, ptr %189, align 4, !tbaa !5
  %8419 = call ptr @__errno_location() #12
  store i32 %8418, ptr %8419, align 4, !tbaa !5
  %8420 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8421 = load i32, ptr @test_count, align 4, !tbaa !5
  %8422 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8423 = load i32, ptr %8422, align 4, !tbaa !5
  %8424 = call ptr @s2n_strerror(i32 noundef %8423, ptr noundef @.str.3)
  %8425 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8426 = load i32, ptr %8425, align 4, !tbaa !5
  %8427 = call ptr @s2n_strerror_debug(i32 noundef %8426, ptr noundef @.str.3)
  %8428 = call ptr @__errno_location() #12
  %8429 = load i32, ptr %8428, align 4, !tbaa !5
  %8430 = call ptr @strerror(i32 noundef %8429) #11
  %8431 = call ptr @__errno_location() #12
  %8432 = load i32, ptr %8431, align 4, !tbaa !5
  %8433 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8420, ptr noundef @.str.4, i32 noundef %8421, ptr noundef @.str.40, ptr noundef @.str.2, i32 noundef 378, ptr noundef %8424, ptr noundef %8427, ptr noundef %8430, i32 noundef %8432) #11
  br label %8434

8434:                                             ; preds = %8417, %8400
  call void @llvm.lifetime.end.p0(i64 4, ptr %189) #11
  br label %8435

8435:                                             ; preds = %8434
  br label %8436

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

8437:                                             ; No predecessors!
  br label %8438

8438:                                             ; preds = %8437
  br label %8439

8439:                                             ; preds = %8438, %8377
  br label %8440

8440:                                             ; preds = %8439
  br label %8441

8441:                                             ; preds = %8440
  br label %8442

8442:                                             ; preds = %8441
  %8443 = load i32, ptr @test_count, align 4, !tbaa !5
  %8444 = add nsw i32 %8443, 1
  store i32 %8444, ptr @test_count, align 4, !tbaa !5
  %8445 = load ptr, ptr %6, align 8, !tbaa !9
  %8446 = getelementptr inbounds %struct.s2n_connection, ptr %8445, i32 0, i32 41
  %8447 = load ptr, ptr %6, align 8, !tbaa !9
  %8448 = getelementptr inbounds %struct.s2n_connection, ptr %8447, i32 0, i32 40
  %8449 = load ptr, ptr %6, align 8, !tbaa !9
  %8450 = getelementptr inbounds %struct.s2n_connection, ptr %8449, i32 0, i32 41
  %8451 = getelementptr inbounds %struct.s2n_stuffer, ptr %8450, i32 0, i32 2
  %8452 = load i32, ptr %8451, align 4, !tbaa !62
  %8453 = load ptr, ptr %6, align 8, !tbaa !9
  %8454 = getelementptr inbounds %struct.s2n_connection, ptr %8453, i32 0, i32 41
  %8455 = getelementptr inbounds %struct.s2n_stuffer, ptr %8454, i32 0, i32 1
  %8456 = load i32, ptr %8455, align 8, !tbaa !63
  %8457 = sub i32 %8452, %8456
  %8458 = call i32 @s2n_stuffer_copy(ptr noundef %8446, ptr noundef %8448, i32 noundef %8457)
  %8459 = icmp eq i32 %8458, -1
  br i1 %8459, label %8460, label %8513

8460:                                             ; preds = %8442
  br label %8461

8461:                                             ; preds = %8460
  br label %8462

8462:                                             ; preds = %8461
  call void @llvm.lifetime.start.p0(i64 4, ptr %190) #11
  %8463 = call ptr @__errno_location() #12
  %8464 = load i32, ptr %8463, align 4, !tbaa !5
  store i32 %8464, ptr %190, align 4, !tbaa !5
  %8465 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8466 = call i32 @s2n_print_stacktrace(ptr noundef %8465)
  %8467 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8468 = trunc i8 %8467 to i1
  br i1 %8468, label %8469, label %8491

8469:                                             ; preds = %8462
  %8470 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8471 = call i32 @fileno(ptr noundef %8470) #11
  %8472 = call i32 @isatty(i32 noundef %8471) #11
  %8473 = icmp ne i32 %8472, 0
  br i1 %8473, label %8474, label %8491

8474:                                             ; preds = %8469
  %8475 = load i32, ptr %190, align 4, !tbaa !5
  %8476 = call ptr @__errno_location() #12
  store i32 %8475, ptr %8476, align 4, !tbaa !5
  %8477 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8478 = load i32, ptr @test_count, align 4, !tbaa !5
  %8479 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8480 = load i32, ptr %8479, align 4, !tbaa !5
  %8481 = call ptr @s2n_strerror(i32 noundef %8480, ptr noundef @.str.3)
  %8482 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8483 = load i32, ptr %8482, align 4, !tbaa !5
  %8484 = call ptr @s2n_strerror_debug(i32 noundef %8483, ptr noundef @.str.3)
  %8485 = call ptr @__errno_location() #12
  %8486 = load i32, ptr %8485, align 4, !tbaa !5
  %8487 = call ptr @strerror(i32 noundef %8486) #11
  %8488 = call ptr @__errno_location() #12
  %8489 = load i32, ptr %8488, align 4, !tbaa !5
  %8490 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8477, ptr noundef @.str, i32 noundef %8478, ptr noundef @.str.41, ptr noundef @.str.2, i32 noundef 379, ptr noundef %8481, ptr noundef %8484, ptr noundef %8487, i32 noundef %8489) #11
  br label %8508

8491:                                             ; preds = %8469, %8462
  %8492 = load i32, ptr %190, align 4, !tbaa !5
  %8493 = call ptr @__errno_location() #12
  store i32 %8492, ptr %8493, align 4, !tbaa !5
  %8494 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8495 = load i32, ptr @test_count, align 4, !tbaa !5
  %8496 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8497 = load i32, ptr %8496, align 4, !tbaa !5
  %8498 = call ptr @s2n_strerror(i32 noundef %8497, ptr noundef @.str.3)
  %8499 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8500 = load i32, ptr %8499, align 4, !tbaa !5
  %8501 = call ptr @s2n_strerror_debug(i32 noundef %8500, ptr noundef @.str.3)
  %8502 = call ptr @__errno_location() #12
  %8503 = load i32, ptr %8502, align 4, !tbaa !5
  %8504 = call ptr @strerror(i32 noundef %8503) #11
  %8505 = call ptr @__errno_location() #12
  %8506 = load i32, ptr %8505, align 4, !tbaa !5
  %8507 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8494, ptr noundef @.str.4, i32 noundef %8495, ptr noundef @.str.41, ptr noundef @.str.2, i32 noundef 379, ptr noundef %8498, ptr noundef %8501, ptr noundef %8504, i32 noundef %8506) #11
  br label %8508

8508:                                             ; preds = %8491, %8474
  call void @llvm.lifetime.end.p0(i64 4, ptr %190) #11
  br label %8509

8509:                                             ; preds = %8508
  br label %8510

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

8511:                                             ; No predecessors!
  br label %8512

8512:                                             ; preds = %8511
  br label %8513

8513:                                             ; preds = %8512, %8442
  br label %8514

8514:                                             ; preds = %8513
  br label %8515

8515:                                             ; preds = %8514
  call void @llvm.lifetime.start.p0(i64 1, ptr %191) #11
  store i8 0, ptr %191, align 1, !tbaa !58
  call void @llvm.lifetime.start.p0(i64 2, ptr %192) #11
  store i16 0, ptr %192, align 2, !tbaa !60
  br label %8516

8516:                                             ; preds = %8515
  %8517 = load i32, ptr @test_count, align 4, !tbaa !5
  %8518 = add nsw i32 %8517, 1
  store i32 %8518, ptr @test_count, align 4, !tbaa !5
  %8519 = load ptr, ptr %6, align 8, !tbaa !9
  %8520 = call i32 @s2n_record_header_parse(ptr noundef %8519, ptr noundef %191, ptr noundef %192)
  %8521 = icmp eq i32 %8520, -1
  br i1 %8521, label %8522, label %8575

8522:                                             ; preds = %8516
  br label %8523

8523:                                             ; preds = %8522
  br label %8524

8524:                                             ; preds = %8523
  call void @llvm.lifetime.start.p0(i64 4, ptr %193) #11
  %8525 = call ptr @__errno_location() #12
  %8526 = load i32, ptr %8525, align 4, !tbaa !5
  store i32 %8526, ptr %193, align 4, !tbaa !5
  %8527 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8528 = call i32 @s2n_print_stacktrace(ptr noundef %8527)
  %8529 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8530 = trunc i8 %8529 to i1
  br i1 %8530, label %8531, label %8553

8531:                                             ; preds = %8524
  %8532 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8533 = call i32 @fileno(ptr noundef %8532) #11
  %8534 = call i32 @isatty(i32 noundef %8533) #11
  %8535 = icmp ne i32 %8534, 0
  br i1 %8535, label %8536, label %8553

8536:                                             ; preds = %8531
  %8537 = load i32, ptr %193, align 4, !tbaa !5
  %8538 = call ptr @__errno_location() #12
  store i32 %8537, ptr %8538, align 4, !tbaa !5
  %8539 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8540 = load i32, ptr @test_count, align 4, !tbaa !5
  %8541 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8542 = load i32, ptr %8541, align 4, !tbaa !5
  %8543 = call ptr @s2n_strerror(i32 noundef %8542, ptr noundef @.str.3)
  %8544 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8545 = load i32, ptr %8544, align 4, !tbaa !5
  %8546 = call ptr @s2n_strerror_debug(i32 noundef %8545, ptr noundef @.str.3)
  %8547 = call ptr @__errno_location() #12
  %8548 = load i32, ptr %8547, align 4, !tbaa !5
  %8549 = call ptr @strerror(i32 noundef %8548) #11
  %8550 = call ptr @__errno_location() #12
  %8551 = load i32, ptr %8550, align 4, !tbaa !5
  %8552 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8539, ptr noundef @.str, i32 noundef %8540, ptr noundef @.str.42, ptr noundef @.str.2, i32 noundef 384, ptr noundef %8543, ptr noundef %8546, ptr noundef %8549, i32 noundef %8551) #11
  br label %8570

8553:                                             ; preds = %8531, %8524
  %8554 = load i32, ptr %193, align 4, !tbaa !5
  %8555 = call ptr @__errno_location() #12
  store i32 %8554, ptr %8555, align 4, !tbaa !5
  %8556 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8557 = load i32, ptr @test_count, align 4, !tbaa !5
  %8558 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8559 = load i32, ptr %8558, align 4, !tbaa !5
  %8560 = call ptr @s2n_strerror(i32 noundef %8559, ptr noundef @.str.3)
  %8561 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8562 = load i32, ptr %8561, align 4, !tbaa !5
  %8563 = call ptr @s2n_strerror_debug(i32 noundef %8562, ptr noundef @.str.3)
  %8564 = call ptr @__errno_location() #12
  %8565 = load i32, ptr %8564, align 4, !tbaa !5
  %8566 = call ptr @strerror(i32 noundef %8565) #11
  %8567 = call ptr @__errno_location() #12
  %8568 = load i32, ptr %8567, align 4, !tbaa !5
  %8569 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8556, ptr noundef @.str.4, i32 noundef %8557, ptr noundef @.str.42, ptr noundef @.str.2, i32 noundef 384, ptr noundef %8560, ptr noundef %8563, ptr noundef %8566, i32 noundef %8568) #11
  br label %8570

8570:                                             ; preds = %8553, %8536
  call void @llvm.lifetime.end.p0(i64 4, ptr %193) #11
  br label %8571

8571:                                             ; preds = %8570
  br label %8572

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

8573:                                             ; No predecessors!
  br label %8574

8574:                                             ; preds = %8573
  br label %8575

8575:                                             ; preds = %8574, %8516
  br label %8576

8576:                                             ; preds = %8575
  br label %8577

8577:                                             ; preds = %8576
  br label %8578

8578:                                             ; preds = %8577
  %8579 = load i32, ptr @test_count, align 4, !tbaa !5
  %8580 = add nsw i32 %8579, 1
  store i32 %8580, ptr @test_count, align 4, !tbaa !5
  %8581 = load ptr, ptr %6, align 8, !tbaa !9
  %8582 = call i32 @s2n_record_parse(ptr noundef %8581)
  %8583 = icmp eq i32 %8582, -1
  br i1 %8583, label %8584, label %8637

8584:                                             ; preds = %8578
  br label %8585

8585:                                             ; preds = %8584
  br label %8586

8586:                                             ; preds = %8585
  call void @llvm.lifetime.start.p0(i64 4, ptr %194) #11
  %8587 = call ptr @__errno_location() #12
  %8588 = load i32, ptr %8587, align 4, !tbaa !5
  store i32 %8588, ptr %194, align 4, !tbaa !5
  %8589 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8590 = call i32 @s2n_print_stacktrace(ptr noundef %8589)
  %8591 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8592 = trunc i8 %8591 to i1
  br i1 %8592, label %8593, label %8615

8593:                                             ; preds = %8586
  %8594 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8595 = call i32 @fileno(ptr noundef %8594) #11
  %8596 = call i32 @isatty(i32 noundef %8595) #11
  %8597 = icmp ne i32 %8596, 0
  br i1 %8597, label %8598, label %8615

8598:                                             ; preds = %8593
  %8599 = load i32, ptr %194, align 4, !tbaa !5
  %8600 = call ptr @__errno_location() #12
  store i32 %8599, ptr %8600, align 4, !tbaa !5
  %8601 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8602 = load i32, ptr @test_count, align 4, !tbaa !5
  %8603 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8604 = load i32, ptr %8603, align 4, !tbaa !5
  %8605 = call ptr @s2n_strerror(i32 noundef %8604, ptr noundef @.str.3)
  %8606 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8607 = load i32, ptr %8606, align 4, !tbaa !5
  %8608 = call ptr @s2n_strerror_debug(i32 noundef %8607, ptr noundef @.str.3)
  %8609 = call ptr @__errno_location() #12
  %8610 = load i32, ptr %8609, align 4, !tbaa !5
  %8611 = call ptr @strerror(i32 noundef %8610) #11
  %8612 = call ptr @__errno_location() #12
  %8613 = load i32, ptr %8612, align 4, !tbaa !5
  %8614 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8601, ptr noundef @.str, i32 noundef %8602, ptr noundef @.str.43, ptr noundef @.str.2, i32 noundef 385, ptr noundef %8605, ptr noundef %8608, ptr noundef %8611, i32 noundef %8613) #11
  br label %8632

8615:                                             ; preds = %8593, %8586
  %8616 = load i32, ptr %194, align 4, !tbaa !5
  %8617 = call ptr @__errno_location() #12
  store i32 %8616, ptr %8617, align 4, !tbaa !5
  %8618 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8619 = load i32, ptr @test_count, align 4, !tbaa !5
  %8620 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8621 = load i32, ptr %8620, align 4, !tbaa !5
  %8622 = call ptr @s2n_strerror(i32 noundef %8621, ptr noundef @.str.3)
  %8623 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8624 = load i32, ptr %8623, align 4, !tbaa !5
  %8625 = call ptr @s2n_strerror_debug(i32 noundef %8624, ptr noundef @.str.3)
  %8626 = call ptr @__errno_location() #12
  %8627 = load i32, ptr %8626, align 4, !tbaa !5
  %8628 = call ptr @strerror(i32 noundef %8627) #11
  %8629 = call ptr @__errno_location() #12
  %8630 = load i32, ptr %8629, align 4, !tbaa !5
  %8631 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8618, ptr noundef @.str.4, i32 noundef %8619, ptr noundef @.str.43, ptr noundef @.str.2, i32 noundef 385, ptr noundef %8622, ptr noundef %8625, ptr noundef %8628, i32 noundef %8630) #11
  br label %8632

8632:                                             ; preds = %8615, %8598
  call void @llvm.lifetime.end.p0(i64 4, ptr %194) #11
  br label %8633

8633:                                             ; preds = %8632
  br label %8634

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

8635:                                             ; No predecessors!
  br label %8636

8636:                                             ; preds = %8635
  br label %8637

8637:                                             ; preds = %8636, %8578
  br label %8638

8638:                                             ; preds = %8637
  br label %8639

8639:                                             ; preds = %8638
  br label %8640

8640:                                             ; preds = %8639
  %8641 = load i32, ptr @test_count, align 4, !tbaa !5
  %8642 = add nsw i32 %8641, 1
  store i32 %8642, ptr @test_count, align 4, !tbaa !5
  %8643 = load i8, ptr %191, align 1, !tbaa !58
  %8644 = zext i8 %8643 to i32
  %8645 = icmp eq i32 %8644, 23
  br i1 %8645, label %8699, label %8646

8646:                                             ; preds = %8640
  br label %8647

8647:                                             ; preds = %8646
  br label %8648

8648:                                             ; preds = %8647
  call void @llvm.lifetime.start.p0(i64 4, ptr %195) #11
  %8649 = call ptr @__errno_location() #12
  %8650 = load i32, ptr %8649, align 4, !tbaa !5
  store i32 %8650, ptr %195, align 4, !tbaa !5
  %8651 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8652 = call i32 @s2n_print_stacktrace(ptr noundef %8651)
  %8653 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8654 = trunc i8 %8653 to i1
  br i1 %8654, label %8655, label %8677

8655:                                             ; preds = %8648
  %8656 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8657 = call i32 @fileno(ptr noundef %8656) #11
  %8658 = call i32 @isatty(i32 noundef %8657) #11
  %8659 = icmp ne i32 %8658, 0
  br i1 %8659, label %8660, label %8677

8660:                                             ; preds = %8655
  %8661 = load i32, ptr %195, align 4, !tbaa !5
  %8662 = call ptr @__errno_location() #12
  store i32 %8661, ptr %8662, align 4, !tbaa !5
  %8663 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8664 = load i32, ptr @test_count, align 4, !tbaa !5
  %8665 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8666 = load i32, ptr %8665, align 4, !tbaa !5
  %8667 = call ptr @s2n_strerror(i32 noundef %8666, ptr noundef @.str.3)
  %8668 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8669 = load i32, ptr %8668, align 4, !tbaa !5
  %8670 = call ptr @s2n_strerror_debug(i32 noundef %8669, ptr noundef @.str.3)
  %8671 = call ptr @__errno_location() #12
  %8672 = load i32, ptr %8671, align 4, !tbaa !5
  %8673 = call ptr @strerror(i32 noundef %8672) #11
  %8674 = call ptr @__errno_location() #12
  %8675 = load i32, ptr %8674, align 4, !tbaa !5
  %8676 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8663, ptr noundef @.str, i32 noundef %8664, ptr noundef @.str.44, ptr noundef @.str.2, i32 noundef 386, ptr noundef %8667, ptr noundef %8670, ptr noundef %8673, i32 noundef %8675) #11
  br label %8694

8677:                                             ; preds = %8655, %8648
  %8678 = load i32, ptr %195, align 4, !tbaa !5
  %8679 = call ptr @__errno_location() #12
  store i32 %8678, ptr %8679, align 4, !tbaa !5
  %8680 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8681 = load i32, ptr @test_count, align 4, !tbaa !5
  %8682 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8683 = load i32, ptr %8682, align 4, !tbaa !5
  %8684 = call ptr @s2n_strerror(i32 noundef %8683, ptr noundef @.str.3)
  %8685 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8686 = load i32, ptr %8685, align 4, !tbaa !5
  %8687 = call ptr @s2n_strerror_debug(i32 noundef %8686, ptr noundef @.str.3)
  %8688 = call ptr @__errno_location() #12
  %8689 = load i32, ptr %8688, align 4, !tbaa !5
  %8690 = call ptr @strerror(i32 noundef %8689) #11
  %8691 = call ptr @__errno_location() #12
  %8692 = load i32, ptr %8691, align 4, !tbaa !5
  %8693 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8680, ptr noundef @.str.4, i32 noundef %8681, ptr noundef @.str.44, ptr noundef @.str.2, i32 noundef 386, ptr noundef %8684, ptr noundef %8687, ptr noundef %8690, i32 noundef %8692) #11
  br label %8694

8694:                                             ; preds = %8677, %8660
  call void @llvm.lifetime.end.p0(i64 4, ptr %195) #11
  br label %8695

8695:                                             ; preds = %8694
  br label %8696

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

8697:                                             ; No predecessors!
  br label %8698

8698:                                             ; preds = %8697
  br label %8699

8699:                                             ; preds = %8698, %8640
  br label %8700

8700:                                             ; preds = %8699
  br label %8701

8701:                                             ; preds = %8700
  br label %8702

8702:                                             ; preds = %8701
  %8703 = load i32, ptr @test_count, align 4, !tbaa !5
  %8704 = add nsw i32 %8703, 1
  store i32 %8704, ptr @test_count, align 4, !tbaa !5
  %8705 = load i16, ptr %192, align 2, !tbaa !60
  %8706 = zext i16 %8705 to i32
  %8707 = load i16, ptr %176, align 2, !tbaa !60
  %8708 = zext i16 %8707 to i32
  %8709 = icmp eq i32 %8706, %8708
  br i1 %8709, label %8763, label %8710

8710:                                             ; preds = %8702
  br label %8711

8711:                                             ; preds = %8710
  br label %8712

8712:                                             ; preds = %8711
  call void @llvm.lifetime.start.p0(i64 4, ptr %196) #11
  %8713 = call ptr @__errno_location() #12
  %8714 = load i32, ptr %8713, align 4, !tbaa !5
  store i32 %8714, ptr %196, align 4, !tbaa !5
  %8715 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8716 = call i32 @s2n_print_stacktrace(ptr noundef %8715)
  %8717 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8718 = trunc i8 %8717 to i1
  br i1 %8718, label %8719, label %8741

8719:                                             ; preds = %8712
  %8720 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8721 = call i32 @fileno(ptr noundef %8720) #11
  %8722 = call i32 @isatty(i32 noundef %8721) #11
  %8723 = icmp ne i32 %8722, 0
  br i1 %8723, label %8724, label %8741

8724:                                             ; preds = %8719
  %8725 = load i32, ptr %196, align 4, !tbaa !5
  %8726 = call ptr @__errno_location() #12
  store i32 %8725, ptr %8726, align 4, !tbaa !5
  %8727 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8728 = load i32, ptr @test_count, align 4, !tbaa !5
  %8729 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8730 = load i32, ptr %8729, align 4, !tbaa !5
  %8731 = call ptr @s2n_strerror(i32 noundef %8730, ptr noundef @.str.3)
  %8732 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8733 = load i32, ptr %8732, align 4, !tbaa !5
  %8734 = call ptr @s2n_strerror_debug(i32 noundef %8733, ptr noundef @.str.3)
  %8735 = call ptr @__errno_location() #12
  %8736 = load i32, ptr %8735, align 4, !tbaa !5
  %8737 = call ptr @strerror(i32 noundef %8736) #11
  %8738 = call ptr @__errno_location() #12
  %8739 = load i32, ptr %8738, align 4, !tbaa !5
  %8740 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8727, ptr noundef @.str, i32 noundef %8728, ptr noundef @.str.45, ptr noundef @.str.2, i32 noundef 387, ptr noundef %8731, ptr noundef %8734, ptr noundef %8737, i32 noundef %8739) #11
  br label %8758

8741:                                             ; preds = %8719, %8712
  %8742 = load i32, ptr %196, align 4, !tbaa !5
  %8743 = call ptr @__errno_location() #12
  store i32 %8742, ptr %8743, align 4, !tbaa !5
  %8744 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8745 = load i32, ptr @test_count, align 4, !tbaa !5
  %8746 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8747 = load i32, ptr %8746, align 4, !tbaa !5
  %8748 = call ptr @s2n_strerror(i32 noundef %8747, ptr noundef @.str.3)
  %8749 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8750 = load i32, ptr %8749, align 4, !tbaa !5
  %8751 = call ptr @s2n_strerror_debug(i32 noundef %8750, ptr noundef @.str.3)
  %8752 = call ptr @__errno_location() #12
  %8753 = load i32, ptr %8752, align 4, !tbaa !5
  %8754 = call ptr @strerror(i32 noundef %8753) #11
  %8755 = call ptr @__errno_location() #12
  %8756 = load i32, ptr %8755, align 4, !tbaa !5
  %8757 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8744, ptr noundef @.str.4, i32 noundef %8745, ptr noundef @.str.45, ptr noundef @.str.2, i32 noundef 387, ptr noundef %8748, ptr noundef %8751, ptr noundef %8754, i32 noundef %8756) #11
  br label %8758

8758:                                             ; preds = %8741, %8724
  call void @llvm.lifetime.end.p0(i64 4, ptr %196) #11
  br label %8759

8759:                                             ; preds = %8758
  br label %8760

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

8761:                                             ; No predecessors!
  br label %8762

8762:                                             ; preds = %8761
  br label %8763

8763:                                             ; preds = %8762, %8702
  br label %8764

8764:                                             ; preds = %8763
  br label %8765

8765:                                             ; preds = %8764
  br label %8766

8766:                                             ; preds = %8765
  %8767 = load i32, ptr @test_count, align 4, !tbaa !5
  %8768 = add nsw i32 %8767, 1
  store i32 %8768, ptr @test_count, align 4, !tbaa !5
  %8769 = load ptr, ptr %6, align 8, !tbaa !9
  %8770 = getelementptr inbounds %struct.s2n_connection, ptr %8769, i32 0, i32 38
  %8771 = call i32 @s2n_stuffer_wipe(ptr noundef %8770)
  %8772 = icmp eq i32 %8771, -1
  br i1 %8772, label %8773, label %8826

8773:                                             ; preds = %8766
  br label %8774

8774:                                             ; preds = %8773
  br label %8775

8775:                                             ; preds = %8774
  call void @llvm.lifetime.start.p0(i64 4, ptr %197) #11
  %8776 = call ptr @__errno_location() #12
  %8777 = load i32, ptr %8776, align 4, !tbaa !5
  store i32 %8777, ptr %197, align 4, !tbaa !5
  %8778 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8779 = call i32 @s2n_print_stacktrace(ptr noundef %8778)
  %8780 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8781 = trunc i8 %8780 to i1
  br i1 %8781, label %8782, label %8804

8782:                                             ; preds = %8775
  %8783 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8784 = call i32 @fileno(ptr noundef %8783) #11
  %8785 = call i32 @isatty(i32 noundef %8784) #11
  %8786 = icmp ne i32 %8785, 0
  br i1 %8786, label %8787, label %8804

8787:                                             ; preds = %8782
  %8788 = load i32, ptr %197, align 4, !tbaa !5
  %8789 = call ptr @__errno_location() #12
  store i32 %8788, ptr %8789, align 4, !tbaa !5
  %8790 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8791 = load i32, ptr @test_count, align 4, !tbaa !5
  %8792 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8793 = load i32, ptr %8792, align 4, !tbaa !5
  %8794 = call ptr @s2n_strerror(i32 noundef %8793, ptr noundef @.str.3)
  %8795 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8796 = load i32, ptr %8795, align 4, !tbaa !5
  %8797 = call ptr @s2n_strerror_debug(i32 noundef %8796, ptr noundef @.str.3)
  %8798 = call ptr @__errno_location() #12
  %8799 = load i32, ptr %8798, align 4, !tbaa !5
  %8800 = call ptr @strerror(i32 noundef %8799) #11
  %8801 = call ptr @__errno_location() #12
  %8802 = load i32, ptr %8801, align 4, !tbaa !5
  %8803 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8790, ptr noundef @.str, i32 noundef %8791, ptr noundef @.str.39, ptr noundef @.str.2, i32 noundef 389, ptr noundef %8794, ptr noundef %8797, ptr noundef %8800, i32 noundef %8802) #11
  br label %8821

8804:                                             ; preds = %8782, %8775
  %8805 = load i32, ptr %197, align 4, !tbaa !5
  %8806 = call ptr @__errno_location() #12
  store i32 %8805, ptr %8806, align 4, !tbaa !5
  %8807 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8808 = load i32, ptr @test_count, align 4, !tbaa !5
  %8809 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8810 = load i32, ptr %8809, align 4, !tbaa !5
  %8811 = call ptr @s2n_strerror(i32 noundef %8810, ptr noundef @.str.3)
  %8812 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8813 = load i32, ptr %8812, align 4, !tbaa !5
  %8814 = call ptr @s2n_strerror_debug(i32 noundef %8813, ptr noundef @.str.3)
  %8815 = call ptr @__errno_location() #12
  %8816 = load i32, ptr %8815, align 4, !tbaa !5
  %8817 = call ptr @strerror(i32 noundef %8816) #11
  %8818 = call ptr @__errno_location() #12
  %8819 = load i32, ptr %8818, align 4, !tbaa !5
  %8820 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8807, ptr noundef @.str.4, i32 noundef %8808, ptr noundef @.str.39, ptr noundef @.str.2, i32 noundef 389, ptr noundef %8811, ptr noundef %8814, ptr noundef %8817, i32 noundef %8819) #11
  br label %8821

8821:                                             ; preds = %8804, %8787
  call void @llvm.lifetime.end.p0(i64 4, ptr %197) #11
  br label %8822

8822:                                             ; preds = %8821
  br label %8823

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

8824:                                             ; No predecessors!
  br label %8825

8825:                                             ; preds = %8824
  br label %8826

8826:                                             ; preds = %8825, %8766
  br label %8827

8827:                                             ; preds = %8826
  br label %8828

8828:                                             ; preds = %8827
  br label %8829

8829:                                             ; preds = %8828
  %8830 = load i32, ptr @test_count, align 4, !tbaa !5
  %8831 = add nsw i32 %8830, 1
  store i32 %8831, ptr @test_count, align 4, !tbaa !5
  %8832 = load ptr, ptr %6, align 8, !tbaa !9
  %8833 = getelementptr inbounds %struct.s2n_connection, ptr %8832, i32 0, i32 40
  %8834 = call i32 @s2n_stuffer_wipe(ptr noundef %8833)
  %8835 = icmp eq i32 %8834, -1
  br i1 %8835, label %8836, label %8889

8836:                                             ; preds = %8829
  br label %8837

8837:                                             ; preds = %8836
  br label %8838

8838:                                             ; preds = %8837
  call void @llvm.lifetime.start.p0(i64 4, ptr %198) #11
  %8839 = call ptr @__errno_location() #12
  %8840 = load i32, ptr %8839, align 4, !tbaa !5
  store i32 %8840, ptr %198, align 4, !tbaa !5
  %8841 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8842 = call i32 @s2n_print_stacktrace(ptr noundef %8841)
  %8843 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8844 = trunc i8 %8843 to i1
  br i1 %8844, label %8845, label %8867

8845:                                             ; preds = %8838
  %8846 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8847 = call i32 @fileno(ptr noundef %8846) #11
  %8848 = call i32 @isatty(i32 noundef %8847) #11
  %8849 = icmp ne i32 %8848, 0
  br i1 %8849, label %8850, label %8867

8850:                                             ; preds = %8845
  %8851 = load i32, ptr %198, align 4, !tbaa !5
  %8852 = call ptr @__errno_location() #12
  store i32 %8851, ptr %8852, align 4, !tbaa !5
  %8853 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8854 = load i32, ptr @test_count, align 4, !tbaa !5
  %8855 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8856 = load i32, ptr %8855, align 4, !tbaa !5
  %8857 = call ptr @s2n_strerror(i32 noundef %8856, ptr noundef @.str.3)
  %8858 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8859 = load i32, ptr %8858, align 4, !tbaa !5
  %8860 = call ptr @s2n_strerror_debug(i32 noundef %8859, ptr noundef @.str.3)
  %8861 = call ptr @__errno_location() #12
  %8862 = load i32, ptr %8861, align 4, !tbaa !5
  %8863 = call ptr @strerror(i32 noundef %8862) #11
  %8864 = call ptr @__errno_location() #12
  %8865 = load i32, ptr %8864, align 4, !tbaa !5
  %8866 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8853, ptr noundef @.str, i32 noundef %8854, ptr noundef @.str.38, ptr noundef @.str.2, i32 noundef 390, ptr noundef %8857, ptr noundef %8860, ptr noundef %8863, i32 noundef %8865) #11
  br label %8884

8867:                                             ; preds = %8845, %8838
  %8868 = load i32, ptr %198, align 4, !tbaa !5
  %8869 = call ptr @__errno_location() #12
  store i32 %8868, ptr %8869, align 4, !tbaa !5
  %8870 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8871 = load i32, ptr @test_count, align 4, !tbaa !5
  %8872 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8873 = load i32, ptr %8872, align 4, !tbaa !5
  %8874 = call ptr @s2n_strerror(i32 noundef %8873, ptr noundef @.str.3)
  %8875 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8876 = load i32, ptr %8875, align 4, !tbaa !5
  %8877 = call ptr @s2n_strerror_debug(i32 noundef %8876, ptr noundef @.str.3)
  %8878 = call ptr @__errno_location() #12
  %8879 = load i32, ptr %8878, align 4, !tbaa !5
  %8880 = call ptr @strerror(i32 noundef %8879) #11
  %8881 = call ptr @__errno_location() #12
  %8882 = load i32, ptr %8881, align 4, !tbaa !5
  %8883 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8870, ptr noundef @.str.4, i32 noundef %8871, ptr noundef @.str.38, ptr noundef @.str.2, i32 noundef 390, ptr noundef %8874, ptr noundef %8877, ptr noundef %8880, i32 noundef %8882) #11
  br label %8884

8884:                                             ; preds = %8867, %8850
  call void @llvm.lifetime.end.p0(i64 4, ptr %198) #11
  br label %8885

8885:                                             ; preds = %8884
  br label %8886

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

8887:                                             ; No predecessors!
  br label %8888

8888:                                             ; preds = %8887
  br label %8889

8889:                                             ; preds = %8888, %8829
  br label %8890

8890:                                             ; preds = %8889
  br label %8891

8891:                                             ; preds = %8890
  call void @llvm.lifetime.end.p0(i64 2, ptr %192) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %191) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %178) #11
  call void @llvm.lifetime.end.p0(i64 2, ptr %176) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %171) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %170) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %161) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %159) #11
  br label %8892

8892:                                             ; preds = %8891
  %8893 = load i32, ptr %158, align 4, !tbaa !5
  %8894 = add nsw i32 %8893, 1
  store i32 %8894, ptr %158, align 4, !tbaa !5
  br label %6921, !llvm.loop !71

8895:                                             ; preds = %6924
  br label %8896

8896:                                             ; preds = %8895
  %8897 = load i32, ptr %157, align 4, !tbaa !5
  %8898 = add nsw i32 %8897, 1
  store i32 %8898, ptr %157, align 4, !tbaa !5
  br label %6916, !llvm.loop !72

8899:                                             ; preds = %6919
  br label %8900

8900:                                             ; preds = %8899
  %8901 = load i32, ptr @test_count, align 4, !tbaa !5
  %8902 = add nsw i32 %8901, 1
  store i32 %8902, ptr @test_count, align 4, !tbaa !5
  %8903 = load ptr, ptr %6, align 8, !tbaa !9
  %8904 = call i32 @s2n_connection_free(ptr noundef %8903)
  %8905 = icmp eq i32 %8904, -1
  br i1 %8905, label %8906, label %8959

8906:                                             ; preds = %8900
  br label %8907

8907:                                             ; preds = %8906
  br label %8908

8908:                                             ; preds = %8907
  call void @llvm.lifetime.start.p0(i64 4, ptr %199) #11
  %8909 = call ptr @__errno_location() #12
  %8910 = load i32, ptr %8909, align 4, !tbaa !5
  store i32 %8910, ptr %199, align 4, !tbaa !5
  %8911 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8912 = call i32 @s2n_print_stacktrace(ptr noundef %8911)
  %8913 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8914 = trunc i8 %8913 to i1
  br i1 %8914, label %8915, label %8937

8915:                                             ; preds = %8908
  %8916 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8917 = call i32 @fileno(ptr noundef %8916) #11
  %8918 = call i32 @isatty(i32 noundef %8917) #11
  %8919 = icmp ne i32 %8918, 0
  br i1 %8919, label %8920, label %8937

8920:                                             ; preds = %8915
  %8921 = load i32, ptr %199, align 4, !tbaa !5
  %8922 = call ptr @__errno_location() #12
  store i32 %8921, ptr %8922, align 4, !tbaa !5
  %8923 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8924 = load i32, ptr @test_count, align 4, !tbaa !5
  %8925 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8926 = load i32, ptr %8925, align 4, !tbaa !5
  %8927 = call ptr @s2n_strerror(i32 noundef %8926, ptr noundef @.str.3)
  %8928 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8929 = load i32, ptr %8928, align 4, !tbaa !5
  %8930 = call ptr @s2n_strerror_debug(i32 noundef %8929, ptr noundef @.str.3)
  %8931 = call ptr @__errno_location() #12
  %8932 = load i32, ptr %8931, align 4, !tbaa !5
  %8933 = call ptr @strerror(i32 noundef %8932) #11
  %8934 = call ptr @__errno_location() #12
  %8935 = load i32, ptr %8934, align 4, !tbaa !5
  %8936 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8923, ptr noundef @.str, i32 noundef %8924, ptr noundef @.str.50, ptr noundef @.str.2, i32 noundef 394, ptr noundef %8927, ptr noundef %8930, ptr noundef %8933, i32 noundef %8935) #11
  br label %8954

8937:                                             ; preds = %8915, %8908
  %8938 = load i32, ptr %199, align 4, !tbaa !5
  %8939 = call ptr @__errno_location() #12
  store i32 %8938, ptr %8939, align 4, !tbaa !5
  %8940 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8941 = load i32, ptr @test_count, align 4, !tbaa !5
  %8942 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8943 = load i32, ptr %8942, align 4, !tbaa !5
  %8944 = call ptr @s2n_strerror(i32 noundef %8943, ptr noundef @.str.3)
  %8945 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8946 = load i32, ptr %8945, align 4, !tbaa !5
  %8947 = call ptr @s2n_strerror_debug(i32 noundef %8946, ptr noundef @.str.3)
  %8948 = call ptr @__errno_location() #12
  %8949 = load i32, ptr %8948, align 4, !tbaa !5
  %8950 = call ptr @strerror(i32 noundef %8949) #11
  %8951 = call ptr @__errno_location() #12
  %8952 = load i32, ptr %8951, align 4, !tbaa !5
  %8953 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8940, ptr noundef @.str.4, i32 noundef %8941, ptr noundef @.str.50, ptr noundef @.str.2, i32 noundef 394, ptr noundef %8944, ptr noundef %8947, ptr noundef %8950, i32 noundef %8952) #11
  br label %8954

8954:                                             ; preds = %8937, %8920
  call void @llvm.lifetime.end.p0(i64 4, ptr %199) #11
  br label %8955

8955:                                             ; preds = %8954
  br label %8956

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

8957:                                             ; No predecessors!
  br label %8958

8958:                                             ; preds = %8957
  br label %8959

8959:                                             ; preds = %8958, %8900
  br label %8960

8960:                                             ; preds = %8959
  br label %8961

8961:                                             ; preds = %8960
  br label %8962

8962:                                             ; preds = %8961
  br label %8963

8963:                                             ; preds = %8962
  %8964 = call i32 @s2n_cleanup()
  %8965 = icmp eq i32 %8964, -1
  br i1 %8965, label %8966, label %9019

8966:                                             ; preds = %8963
  br label %8967

8967:                                             ; preds = %8966
  br label %8968

8968:                                             ; preds = %8967
  call void @llvm.lifetime.start.p0(i64 4, ptr %200) #11
  %8969 = call ptr @__errno_location() #12
  %8970 = load i32, ptr %8969, align 4, !tbaa !5
  store i32 %8970, ptr %200, align 4, !tbaa !5
  %8971 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8972 = call i32 @s2n_print_stacktrace(ptr noundef %8971)
  %8973 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8974 = trunc i8 %8973 to i1
  br i1 %8974, label %8975, label %8997

8975:                                             ; preds = %8968
  %8976 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8977 = call i32 @fileno(ptr noundef %8976) #11
  %8978 = call i32 @isatty(i32 noundef %8977) #11
  %8979 = icmp ne i32 %8978, 0
  br i1 %8979, label %8980, label %8997

8980:                                             ; preds = %8975
  %8981 = load i32, ptr %200, align 4, !tbaa !5
  %8982 = call ptr @__errno_location() #12
  store i32 %8981, ptr %8982, align 4, !tbaa !5
  %8983 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8984 = load i32, ptr @test_count, align 4, !tbaa !5
  %8985 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8986 = load i32, ptr %8985, align 4, !tbaa !5
  %8987 = call ptr @s2n_strerror(i32 noundef %8986, ptr noundef @.str.3)
  %8988 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8989 = load i32, ptr %8988, align 4, !tbaa !5
  %8990 = call ptr @s2n_strerror_debug(i32 noundef %8989, ptr noundef @.str.3)
  %8991 = call ptr @__errno_location() #12
  %8992 = load i32, ptr %8991, align 4, !tbaa !5
  %8993 = call ptr @strerror(i32 noundef %8992) #11
  %8994 = call ptr @__errno_location() #12
  %8995 = load i32, ptr %8994, align 4, !tbaa !5
  %8996 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8983, ptr noundef @.str, i32 noundef %8984, ptr noundef @.str.12, ptr noundef @.str.2, i32 noundef 396, ptr noundef %8987, ptr noundef %8990, ptr noundef %8993, i32 noundef %8995) #11
  br label %9014

8997:                                             ; preds = %8975, %8968
  %8998 = load i32, ptr %200, align 4, !tbaa !5
  %8999 = call ptr @__errno_location() #12
  store i32 %8998, ptr %8999, align 4, !tbaa !5
  %9000 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9001 = load i32, ptr @test_count, align 4, !tbaa !5
  %9002 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9003 = load i32, ptr %9002, align 4, !tbaa !5
  %9004 = call ptr @s2n_strerror(i32 noundef %9003, ptr noundef @.str.3)
  %9005 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9006 = load i32, ptr %9005, align 4, !tbaa !5
  %9007 = call ptr @s2n_strerror_debug(i32 noundef %9006, ptr noundef @.str.3)
  %9008 = call ptr @__errno_location() #12
  %9009 = load i32, ptr %9008, align 4, !tbaa !5
  %9010 = call ptr @strerror(i32 noundef %9009) #11
  %9011 = call ptr @__errno_location() #12
  %9012 = load i32, ptr %9011, align 4, !tbaa !5
  %9013 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9000, ptr noundef @.str.4, i32 noundef %9001, ptr noundef @.str.12, ptr noundef @.str.2, i32 noundef 396, ptr noundef %9004, ptr noundef %9007, ptr noundef %9010, i32 noundef %9012) #11
  br label %9014

9014:                                             ; preds = %8997, %8980
  call void @llvm.lifetime.end.p0(i64 4, ptr %200) #11
  br label %9015

9015:                                             ; preds = %9014
  br label %9016

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

9017:                                             ; No predecessors!
  br label %9018

9018:                                             ; preds = %9017
  br label %9019

9019:                                             ; preds = %9018, %8963
  br label %9020

9020:                                             ; preds = %9019
  br label %9021

9021:                                             ; preds = %9020
  br label %9022

9022:                                             ; preds = %9021
  br label %9023

9023:                                             ; preds = %9022
  %9024 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %9025 = icmp eq i32 %9024, -1
  br i1 %9025, label %9026, label %9079

9026:                                             ; preds = %9023
  br label %9027

9027:                                             ; preds = %9026
  br label %9028

9028:                                             ; preds = %9027
  call void @llvm.lifetime.start.p0(i64 4, ptr %201) #11
  %9029 = call ptr @__errno_location() #12
  %9030 = load i32, ptr %9029, align 4, !tbaa !5
  store i32 %9030, ptr %201, align 4, !tbaa !5
  %9031 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9032 = call i32 @s2n_print_stacktrace(ptr noundef %9031)
  %9033 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9034 = trunc i8 %9033 to i1
  br i1 %9034, label %9035, label %9057

9035:                                             ; preds = %9028
  %9036 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9037 = call i32 @fileno(ptr noundef %9036) #11
  %9038 = call i32 @isatty(i32 noundef %9037) #11
  %9039 = icmp ne i32 %9038, 0
  br i1 %9039, label %9040, label %9057

9040:                                             ; preds = %9035
  %9041 = load i32, ptr %201, align 4, !tbaa !5
  %9042 = call ptr @__errno_location() #12
  store i32 %9041, ptr %9042, align 4, !tbaa !5
  %9043 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9044 = load i32, ptr @test_count, align 4, !tbaa !5
  %9045 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9046 = load i32, ptr %9045, align 4, !tbaa !5
  %9047 = call ptr @s2n_strerror(i32 noundef %9046, ptr noundef @.str.3)
  %9048 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9049 = load i32, ptr %9048, align 4, !tbaa !5
  %9050 = call ptr @s2n_strerror_debug(i32 noundef %9049, ptr noundef @.str.3)
  %9051 = call ptr @__errno_location() #12
  %9052 = load i32, ptr %9051, align 4, !tbaa !5
  %9053 = call ptr @strerror(i32 noundef %9052) #11
  %9054 = call ptr @__errno_location() #12
  %9055 = load i32, ptr %9054, align 4, !tbaa !5
  %9056 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9043, ptr noundef @.str, i32 noundef %9044, ptr noundef @.str.13, ptr noundef @.str.2, i32 noundef 396, ptr noundef %9047, ptr noundef %9050, ptr noundef %9053, i32 noundef %9055) #11
  br label %9074

9057:                                             ; preds = %9035, %9028
  %9058 = load i32, ptr %201, align 4, !tbaa !5
  %9059 = call ptr @__errno_location() #12
  store i32 %9058, ptr %9059, align 4, !tbaa !5
  %9060 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9061 = load i32, ptr @test_count, align 4, !tbaa !5
  %9062 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9063 = load i32, ptr %9062, align 4, !tbaa !5
  %9064 = call ptr @s2n_strerror(i32 noundef %9063, ptr noundef @.str.3)
  %9065 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9066 = load i32, ptr %9065, align 4, !tbaa !5
  %9067 = call ptr @s2n_strerror_debug(i32 noundef %9066, ptr noundef @.str.3)
  %9068 = call ptr @__errno_location() #12
  %9069 = load i32, ptr %9068, align 4, !tbaa !5
  %9070 = call ptr @strerror(i32 noundef %9069) #11
  %9071 = call ptr @__errno_location() #12
  %9072 = load i32, ptr %9071, align 4, !tbaa !5
  %9073 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9060, ptr noundef @.str.4, i32 noundef %9061, ptr noundef @.str.13, ptr noundef @.str.2, i32 noundef 396, ptr noundef %9064, ptr noundef %9067, ptr noundef %9070, i32 noundef %9072) #11
  br label %9074

9074:                                             ; preds = %9057, %9040
  call void @llvm.lifetime.end.p0(i64 4, ptr %201) #11
  br label %9075

9075:                                             ; preds = %9074
  br label %9076

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

9077:                                             ; No predecessors!
  br label %9078

9078:                                             ; preds = %9077
  br label %9079

9079:                                             ; preds = %9078, %9023
  br label %9080

9080:                                             ; preds = %9079
  br label %9081

9081:                                             ; preds = %9080
  %9082 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9083 = trunc i8 %9082 to i1
  br i1 %9083, label %9084, label %9100

9084:                                             ; preds = %9081
  %9085 = load ptr, ptr @stdout, align 8, !tbaa !9
  %9086 = call i32 @fileno(ptr noundef %9085) #11
  %9087 = call i32 @isatty(i32 noundef %9086) #11
  %9088 = icmp ne i32 %9087, 0
  br i1 %9088, label %9089, label %9100

9089:                                             ; preds = %9084
  %9090 = load i32, ptr @test_count, align 4, !tbaa !5
  %9091 = icmp ne i32 %9090, 0
  br i1 %9091, label %9092, label %9096

9092:                                             ; preds = %9089
  %9093 = load ptr, ptr @stdout, align 8, !tbaa !9
  %9094 = load i32, ptr @test_count, align 4, !tbaa !5
  %9095 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9093, ptr noundef @.str.14, i32 noundef %9094) #11
  br label %9099

9096:                                             ; preds = %9089
  %9097 = load ptr, ptr @stdout, align 8, !tbaa !9
  %9098 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9097, ptr noundef @.str.15) #11
  br label %9099

9099:                                             ; preds = %9096, %9092
  br label %9111

9100:                                             ; preds = %9084, %9081
  %9101 = load i32, ptr @test_count, align 4, !tbaa !5
  %9102 = icmp ne i32 %9101, 0
  br i1 %9102, label %9103, label %9107

9103:                                             ; preds = %9100
  %9104 = load ptr, ptr @stdout, align 8, !tbaa !9
  %9105 = load i32, ptr @test_count, align 4, !tbaa !5
  %9106 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9104, ptr noundef @.str.16, i32 noundef %9105) #11
  br label %9110

9107:                                             ; preds = %9100
  %9108 = load ptr, ptr @stdout, align 8, !tbaa !9
  %9109 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9108, ptr noundef @.str.17) #11
  br label %9110

9110:                                             ; preds = %9107, %9103
  br label %9111

9111:                                             ; preds = %9110, %9099
  store i32 0, ptr %3, align 4
  store i32 1, ptr %25, align 4
  br label %9116

9112:                                             ; No predecessors!
  br label %9113

9113:                                             ; preds = %9112
  br label %9114

9114:                                             ; preds = %9113
  br label %9115

9115:                                             ; preds = %9114
  store i32 0, ptr %25, align 4
  br label %9116

9116:                                             ; preds = %9115, %9111
  call void @llvm.lifetime.end.p0(i64 3, ptr %30) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #11
  br label %9117

9117:                                             ; preds = %9116, %799
  call void @llvm.lifetime.end.p0(i64 129424, ptr %18) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %16) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %14) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %12) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %11) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %10) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %9) #11
  call void @llvm.lifetime.end.p0(i64 20, ptr %8) #11
  call void @llvm.lifetime.end.p0(i64 8088, ptr %7) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #11
  %9118 = load i32, ptr %25, align 4
  switch i32 %9118, label %9121 [
    i32 0, label %9119
    i32 1, label %9119
  ]

9119:                                             ; preds = %9117, %9117
  %9120 = load i32, ptr %3, align 4
  ret i32 %9120

9121:                                             ; preds = %9117
  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

declare i32 @s2n_connection_wipe(ptr noundef) #4

declare i32 @s2n_stuffer_wipe(ptr noundef) #4

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

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

declare void @s2n_debug_info_reset() #4

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

; Function Attrs: nounwind uwtable
declare hidden i32 @ensure_explicit_iv_is_unique(ptr noundef, i64 noundef, ptr noundef, i16 noundef zeroext) #0

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

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 = !{!55, !10, i64 0}
!55 = !{!"s2n_record_algorithm", !10, i64 0, !6, i64 8, !6, i64 12, !20, i64 16}
!56 = !{!16, !10, i64 80}
!57 = !{!16, !10, i64 72}
!58 = !{!7, !7, i64 0}
!59 = !{!18, !7, i64 220}
!60 = !{!33, !33, i64 0}
!61 = !{!18, !10, i64 1896}
!62 = !{!18, !6, i64 1924}
!63 = !{!18, !6, i64 1920}
!64 = distinct !{!64, !65}
!65 = !{!"llvm.loop.mustprogress"}
!66 = distinct !{!66, !65}
!67 = distinct !{!67, !65}
!68 = distinct !{!68, !65}
!69 = distinct !{!69, !65}
!70 = distinct !{!70, !65}
!71 = distinct !{!71, !65}
!72 = distinct !{!72, !65}


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

%struct.s2n_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.mac_key_sha = external hidden unnamed_addr constant [20 x i8], align 16
@__const.main.mac_key_sha256 = external hidden unnamed_addr constant [32 x i8], align 16
@__const.main.aes128_key = external hidden unnamed_addr constant [16 x i8], align 16
@__const.main.aes256_key = external hidden unnamed_addr constant [32 x i8], align 16
@test_count = external dso_local local_unnamed_addr global i32, align 4
@stderr = external local_unnamed_addr global ptr, align 8
@.str = external hidden unnamed_addr constant [101 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [85 x i8], align 1
@s2n_errno = external thread_local local_unnamed_addr global i32, align 4
@.str.3 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [80 x i8], align 1
@stdout = external local_unnamed_addr global ptr, align 8
@.str.7 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [56 x i8], align 1
@s2n_aes128_sha = external local_unnamed_addr constant %struct.s2n_cipher, align 8
@s2n_aes256_sha = external local_unnamed_addr constant %struct.s2n_cipher, align 8
@s2n_aes128_sha256 = external local_unnamed_addr constant %struct.s2n_cipher, align 8
@s2n_aes256_sha256 = external local_unnamed_addr constant %struct.s2n_cipher, align 8
@.str.12 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [62 x i8], align 1
@__const.main.proto_versions = external hidden unnamed_addr constant [3 x i8], align 1
@s2n_record_alg_aes128_sha_composite = external constant %struct.s2n_record_algorithm, align 8
@.str.20 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [136 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [136 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [165 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [165 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [113 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [113 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [126 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [53 x i8], align 1
@s2n_record_alg_aes256_sha_composite = external constant %struct.s2n_record_algorithm, align 8
@.str.46 = external hidden unnamed_addr constant [136 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [136 x i8], align 1
@s2n_record_alg_aes128_sha256_composite = external constant %struct.s2n_record_algorithm, align 8
@.str.48 = external hidden unnamed_addr constant [171 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [171 x i8], align 1
@s2n_record_alg_aes256_sha256_composite = external constant %struct.s2n_record_algorithm, align 8
@.str.50 = external hidden unnamed_addr constant [54 x i8], align 1

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

28:                                               ; preds = %2
  %29 = tail call ptr @__errno_location() #13
  %30 = load i32, ptr %29, align 4, !tbaa !5
  %31 = load ptr, ptr @stderr, align 8, !tbaa !9
  %32 = call i32 @s2n_print_stacktrace(ptr noundef %31) #12
  %33 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %34 = trunc nuw i8 %33 to i1
  br i1 %34, label %35, label %39

35:                                               ; preds = %28
  %36 = load ptr, ptr @stderr, align 8, !tbaa !9
  %37 = call i32 @fileno(ptr noundef %36) #12
  %38 = call i32 @isatty(i32 noundef %37) #12
  %.not689 = icmp eq i32 %38, 0
  br i1 %.not689, label %39, label %40

39:                                               ; preds = %35, %28
  br label %40

40:                                               ; preds = %35, %39
  %.str.4.sink = phi ptr [ @.str.4, %39 ], [ @.str, %35 ]
  store i32 %30, ptr %29, align 4, !tbaa !5
  %41 = load ptr, ptr @stderr, align 8, !tbaa !9
  %42 = load i32, ptr @test_count, align 4, !tbaa !5
  %43 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %44 = load i32, ptr %43, align 4, !tbaa !5
  %45 = call ptr @s2n_strerror(i32 noundef %44, ptr noundef nonnull @.str.3) #12
  %46 = load i32, ptr %43, align 4, !tbaa !5
  %47 = call ptr @s2n_strerror_debug(i32 noundef %46, ptr noundef nonnull @.str.3) #12
  %48 = load i32, ptr %29, align 4, !tbaa !5
  %49 = call ptr @strerror(i32 noundef %48) #12
  %50 = load i32, ptr %29, align 4, !tbaa !5
  %51 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %41, ptr noundef nonnull %.str.4.sink, i32 noundef %42, ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.2, i32 noundef 57, ptr noundef %45, ptr noundef %47, ptr noundef %49, i32 noundef %50) #14
  call void @exit(i32 noundef 1) #15
  unreachable

52:                                               ; preds = %2
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %9) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %9, i8 0, i64 24, i1 false)
  %53 = load i32, ptr @test_count, align 4, !tbaa !5
  %54 = add nsw i32 %53, 1
  store i32 %54, ptr @test_count, align 4, !tbaa !5
  %55 = call i32 @s2n_blob_init(ptr noundef nonnull %9, ptr noundef nonnull %7, i32 noundef 32) #12
  %56 = icmp eq i32 %55, -1
  br i1 %56, label %57, label %81

57:                                               ; preds = %52
  %58 = tail call ptr @__errno_location() #13
  %59 = load i32, ptr %58, align 4, !tbaa !5
  %60 = load ptr, ptr @stderr, align 8, !tbaa !9
  %61 = call i32 @s2n_print_stacktrace(ptr noundef %60) #12
  %62 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %63 = trunc nuw i8 %62 to i1
  br i1 %63, label %64, label %68

64:                                               ; preds = %57
  %65 = load ptr, ptr @stderr, align 8, !tbaa !9
  %66 = call i32 @fileno(ptr noundef %65) #12
  %67 = call i32 @isatty(i32 noundef %66) #12
  %.not688 = icmp eq i32 %67, 0
  br i1 %.not688, label %68, label %69

68:                                               ; preds = %64, %57
  br label %69

69:                                               ; preds = %64, %68
  %.str.4.sink755 = phi ptr [ @.str.4, %68 ], [ @.str, %64 ]
  store i32 %59, ptr %58, align 4, !tbaa !5
  %70 = load ptr, ptr @stderr, align 8, !tbaa !9
  %71 = load i32, ptr @test_count, align 4, !tbaa !5
  %72 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %73 = load i32, ptr %72, align 4, !tbaa !5
  %74 = call ptr @s2n_strerror(i32 noundef %73, ptr noundef nonnull @.str.3) #12
  %75 = load i32, ptr %72, align 4, !tbaa !5
  %76 = call ptr @s2n_strerror_debug(i32 noundef %75, ptr noundef nonnull @.str.3) #12
  %77 = load i32, ptr %58, align 4, !tbaa !5
  %78 = call ptr @strerror(i32 noundef %77) #12
  %79 = load i32, ptr %58, align 4, !tbaa !5
  %80 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %70, ptr noundef nonnull %.str.4.sink755, i32 noundef %71, ptr noundef nonnull @.str.5, ptr noundef nonnull @.str.2, i32 noundef 59, ptr noundef %74, ptr noundef %76, ptr noundef %78, i32 noundef %79) #14
  call void @exit(i32 noundef 1) #15
  unreachable

81:                                               ; preds = %52
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %10) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %10, i8 0, i64 24, i1 false)
  %82 = load i32, ptr @test_count, align 4, !tbaa !5
  %83 = add nsw i32 %82, 1
  store i32 %83, ptr @test_count, align 4, !tbaa !5
  %84 = call i32 @s2n_blob_init(ptr noundef nonnull %10, ptr noundef nonnull %3, i32 noundef 8088) #12
  %85 = icmp eq i32 %84, -1
  br i1 %85, label %86, label %110

86:                                               ; preds = %81
  %87 = tail call ptr @__errno_location() #13
  %88 = load i32, ptr %87, align 4, !tbaa !5
  %89 = load ptr, ptr @stderr, align 8, !tbaa !9
  %90 = call i32 @s2n_print_stacktrace(ptr noundef %89) #12
  %91 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %92 = trunc nuw i8 %91 to i1
  br i1 %92, label %93, label %97

93:                                               ; preds = %86
  %94 = load ptr, ptr @stderr, align 8, !tbaa !9
  %95 = call i32 @fileno(ptr noundef %94) #12
  %96 = call i32 @isatty(i32 noundef %95) #12
  %.not687 = icmp eq i32 %96, 0
  br i1 %.not687, label %97, label %98

97:                                               ; preds = %93, %86
  br label %98

98:                                               ; preds = %93, %97
  %.str.4.sink766 = phi ptr [ @.str.4, %97 ], [ @.str, %93 ]
  store i32 %88, ptr %87, align 4, !tbaa !5
  %99 = load ptr, ptr @stderr, align 8, !tbaa !9
  %100 = load i32, ptr @test_count, align 4, !tbaa !5
  %101 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %102 = load i32, ptr %101, align 4, !tbaa !5
  %103 = call ptr @s2n_strerror(i32 noundef %102, ptr noundef nonnull @.str.3) #12
  %104 = load i32, ptr %101, align 4, !tbaa !5
  %105 = call ptr @s2n_strerror_debug(i32 noundef %104, ptr noundef nonnull @.str.3) #12
  %106 = load i32, ptr %87, align 4, !tbaa !5
  %107 = call ptr @strerror(i32 noundef %106) #12
  %108 = load i32, ptr %87, align 4, !tbaa !5
  %109 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %99, ptr noundef nonnull %.str.4.sink766, i32 noundef %100, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.2, i32 noundef 61, ptr noundef %103, ptr noundef %105, ptr noundef %107, i32 noundef %108) #14
  call void @exit(i32 noundef 1) #15
  unreachable

110:                                              ; preds = %81
  call void @llvm.lifetime.start.p0(i64 129424, ptr nonnull %11) #12
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %111 = load ptr, ptr @stdout, align 8, !tbaa !9
  %112 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %111, ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.2) #12
  %113 = load ptr, ptr @stdout, align 8, !tbaa !9
  %114 = call i32 @fflush(ptr noundef %113)
  %115 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true) #12
  %116 = icmp eq i32 %115, -1
  br i1 %116, label %117, label %141

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

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

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

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

141:                                              ; preds = %110
  %142 = load i32, ptr @test_count, align 4, !tbaa !5
  %143 = add nsw i32 %142, 1
  store i32 %143, ptr @test_count, align 4, !tbaa !5
  %144 = call i32 @s2n_enable_atexit() #12
  %145 = icmp eq i32 %144, -1
  br i1 %145, label %146, label %170

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

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

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

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

170:                                              ; preds = %141
  %171 = call i32 @s2n_init() #12
  %172 = icmp eq i32 %171, -1
  br i1 %172, label %173, label %197

173:                                              ; preds = %170
  %174 = tail call ptr @__errno_location() #13
  %175 = load i32, ptr %174, align 4, !tbaa !5
  %176 = load ptr, ptr @stderr, align 8, !tbaa !9
  %177 = call i32 @s2n_print_stacktrace(ptr noundef %176) #12
  %178 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %179 = trunc nuw i8 %178 to i1
  br i1 %179, label %180, label %184

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

184:                                              ; preds = %180, %173
  br label %185

185:                                              ; preds = %180, %184
  %.str.4.sink799 = phi ptr [ @.str.4, %184 ], [ @.str, %180 ]
  store i32 %175, ptr %174, align 4, !tbaa !5
  %186 = load ptr, ptr @stderr, align 8, !tbaa !9
  %187 = load i32, ptr @test_count, align 4, !tbaa !5
  %188 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %189 = load i32, ptr %188, align 4, !tbaa !5
  %190 = call ptr @s2n_strerror(i32 noundef %189, ptr noundef nonnull @.str.3) #12
  %191 = load i32, ptr %188, align 4, !tbaa !5
  %192 = call ptr @s2n_strerror_debug(i32 noundef %191, ptr noundef nonnull @.str.3) #12
  %193 = load i32, ptr %174, align 4, !tbaa !5
  %194 = call ptr @strerror(i32 noundef %193) #12
  %195 = load i32, ptr %174, align 4, !tbaa !5
  %196 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %186, ptr noundef nonnull %.str.4.sink799, i32 noundef %187, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.2, i32 noundef 65, ptr noundef %190, ptr noundef %192, ptr noundef %194, i32 noundef %195) #14
  call void @exit(i32 noundef 1) #15
  unreachable

197:                                              ; preds = %170
  %198 = load i32, ptr @test_count, align 4, !tbaa !5
  %199 = add nsw i32 %198, 1
  store i32 %199, ptr @test_count, align 4, !tbaa !5
  %200 = call i32 (...) @s2n_disable_tls13_in_test() #12
  %201 = icmp eq i32 %200, -1
  br i1 %201, label %202, label %226

202:                                              ; preds = %197
  %203 = tail call ptr @__errno_location() #13
  %204 = load i32, ptr %203, align 4, !tbaa !5
  %205 = load ptr, ptr @stderr, align 8, !tbaa !9
  %206 = call i32 @s2n_print_stacktrace(ptr noundef %205) #12
  %207 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %208 = trunc nuw i8 %207 to i1
  br i1 %208, label %209, label %213

209:                                              ; preds = %202
  %210 = load ptr, ptr @stderr, align 8, !tbaa !9
  %211 = call i32 @fileno(ptr noundef %210) #12
  %212 = call i32 @isatty(i32 noundef %211) #12
  %.not683 = icmp eq i32 %212, 0
  br i1 %.not683, label %213, label %214

213:                                              ; preds = %209, %202
  br label %214

214:                                              ; preds = %209, %213
  %.str.4.sink810 = phi ptr [ @.str.4, %213 ], [ @.str, %209 ]
  store i32 %204, ptr %203, align 4, !tbaa !5
  %215 = load ptr, ptr @stderr, align 8, !tbaa !9
  %216 = load i32, ptr @test_count, align 4, !tbaa !5
  %217 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %218 = load i32, ptr %217, align 4, !tbaa !5
  %219 = call ptr @s2n_strerror(i32 noundef %218, ptr noundef nonnull @.str.3) #12
  %220 = load i32, ptr %217, align 4, !tbaa !5
  %221 = call ptr @s2n_strerror_debug(i32 noundef %220, ptr noundef nonnull @.str.3) #12
  %222 = load i32, ptr %203, align 4, !tbaa !5
  %223 = call ptr @strerror(i32 noundef %222) #12
  %224 = load i32, ptr %203, align 4, !tbaa !5
  %225 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %215, ptr noundef nonnull %.str.4.sink810, i32 noundef %216, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.2, i32 noundef 66, ptr noundef %219, ptr noundef %221, ptr noundef %223, i32 noundef %224) #14
  call void @exit(i32 noundef 1) #15
  unreachable

226:                                              ; preds = %197
  %227 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_aes128_sha, i64 56), align 8, !tbaa !15
  %228 = call zeroext i1 %227() #12
  br i1 %228, label %229, label %238

229:                                              ; preds = %226
  %230 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_aes256_sha, i64 56), align 8, !tbaa !15
  %231 = call zeroext i1 %230() #12
  br i1 %231, label %232, label %238

232:                                              ; preds = %229
  %233 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_aes128_sha256, i64 56), align 8, !tbaa !15
  %234 = call zeroext i1 %233() #12
  br i1 %234, label %235, label %238

235:                                              ; preds = %232
  %236 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_aes256_sha256, i64 56), align 8, !tbaa !15
  %237 = call zeroext i1 %236() #12
  br i1 %237, label %313, label %238

238:                                              ; preds = %235, %232, %229, %226
  %239 = call i32 @s2n_cleanup() #12
  %240 = icmp eq i32 %239, -1
  br i1 %240, label %241, label %265

241:                                              ; preds = %238
  %242 = tail call ptr @__errno_location() #13
  %243 = load i32, ptr %242, align 4, !tbaa !5
  %244 = load ptr, ptr @stderr, align 8, !tbaa !9
  %245 = call i32 @s2n_print_stacktrace(ptr noundef %244) #12
  %246 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %247 = trunc nuw i8 %246 to i1
  br i1 %247, label %248, label %252

248:                                              ; preds = %241
  %249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %250 = call i32 @fileno(ptr noundef %249) #12
  %251 = call i32 @isatty(i32 noundef %250) #12
  %.not556 = icmp eq i32 %251, 0
  br i1 %.not556, label %252, label %253

252:                                              ; preds = %248, %241
  br label %253

253:                                              ; preds = %248, %252
  %.str.4.sink821 = phi ptr [ @.str.4, %252 ], [ @.str, %248 ]
  store i32 %243, ptr %242, align 4, !tbaa !5
  %254 = load ptr, ptr @stderr, align 8, !tbaa !9
  %255 = load i32, ptr @test_count, align 4, !tbaa !5
  %256 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %257 = load i32, ptr %256, align 4, !tbaa !5
  %258 = call ptr @s2n_strerror(i32 noundef %257, ptr noundef nonnull @.str.3) #12
  %259 = load i32, ptr %256, align 4, !tbaa !5
  %260 = call ptr @s2n_strerror_debug(i32 noundef %259, ptr noundef nonnull @.str.3) #12
  %261 = load i32, ptr %242, align 4, !tbaa !5
  %262 = call ptr @strerror(i32 noundef %261) #12
  %263 = load i32, ptr %242, align 4, !tbaa !5
  %264 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %254, ptr noundef nonnull %.str.4.sink821, i32 noundef %255, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.2, i32 noundef 73, ptr noundef %258, ptr noundef %260, ptr noundef %262, i32 noundef %263) #14
  call void @exit(i32 noundef 1) #15
  unreachable

265:                                              ; preds = %238
  %266 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #12
  %267 = icmp eq i32 %266, -1
  br i1 %267, label %268, label %292

268:                                              ; preds = %265
  %269 = tail call ptr @__errno_location() #13
  %270 = load i32, ptr %269, align 4, !tbaa !5
  %271 = load ptr, ptr @stderr, align 8, !tbaa !9
  %272 = call i32 @s2n_print_stacktrace(ptr noundef %271) #12
  %273 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %274 = trunc nuw i8 %273 to i1
  br i1 %274, label %275, label %279

275:                                              ; preds = %268
  %276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %277 = call i32 @fileno(ptr noundef %276) #12
  %278 = call i32 @isatty(i32 noundef %277) #12
  %.not555 = icmp eq i32 %278, 0
  br i1 %.not555, label %279, label %280

279:                                              ; preds = %275, %268
  br label %280

280:                                              ; preds = %275, %279
  %.str.4.sink832 = phi ptr [ @.str.4, %279 ], [ @.str, %275 ]
  store i32 %270, ptr %269, align 4, !tbaa !5
  %281 = load ptr, ptr @stderr, align 8, !tbaa !9
  %282 = load i32, ptr @test_count, align 4, !tbaa !5
  %283 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %284 = load i32, ptr %283, align 4, !tbaa !5
  %285 = call ptr @s2n_strerror(i32 noundef %284, ptr noundef nonnull @.str.3) #12
  %286 = load i32, ptr %283, align 4, !tbaa !5
  %287 = call ptr @s2n_strerror_debug(i32 noundef %286, ptr noundef nonnull @.str.3) #12
  %288 = load i32, ptr %269, align 4, !tbaa !5
  %289 = call ptr @strerror(i32 noundef %288) #12
  %290 = load i32, ptr %269, align 4, !tbaa !5
  %291 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %281, ptr noundef nonnull %.str.4.sink832, i32 noundef %282, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.2, i32 noundef 73, ptr noundef %285, ptr noundef %287, ptr noundef %289, i32 noundef %290) #14
  call void @exit(i32 noundef 1) #15
  unreachable

292:                                              ; preds = %265
  %293 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %294 = trunc nuw i8 %293 to i1
  br i1 %294, label %295, label %306

295:                                              ; preds = %292
  %296 = load ptr, ptr @stdout, align 8, !tbaa !9
  %297 = call i32 @fileno(ptr noundef %296) #12
  %298 = call i32 @isatty(i32 noundef %297) #12
  %.not = icmp eq i32 %298, 0
  br i1 %.not, label %306, label %299

299:                                              ; preds = %295
  %300 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not554 = icmp eq i32 %300, 0
  %301 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not554, label %304, label %302

302:                                              ; preds = %299
  %303 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %301, ptr noundef nonnull @.str.14, i32 noundef %300) #12
  br label %3680

304:                                              ; preds = %299
  %305 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %301, ptr noundef nonnull @.str.15) #12
  br label %3680

306:                                              ; preds = %295, %292
  %307 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not553 = icmp eq i32 %307, 0
  %308 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not553, label %311, label %309

309:                                              ; preds = %306
  %310 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %308, ptr noundef nonnull @.str.16, i32 noundef %307) #12
  br label %3680

311:                                              ; preds = %306
  %312 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %308, ptr noundef nonnull @.str.17) #12
  br label %3680

313:                                              ; preds = %235
  %314 = load i32, ptr @test_count, align 4, !tbaa !5
  %315 = add nsw i32 %314, 1
  store i32 %315, ptr @test_count, align 4, !tbaa !5
  %316 = call ptr @s2n_connection_new(i32 noundef 0) #12
  %317 = icmp eq ptr %316, null
  br i1 %317, label %318, label %342

318:                                              ; preds = %313
  %319 = tail call ptr @__errno_location() #13
  %320 = load i32, ptr %319, align 4, !tbaa !5
  %321 = load ptr, ptr @stderr, align 8, !tbaa !9
  %322 = call i32 @s2n_print_stacktrace(ptr noundef %321) #12
  %323 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %324 = trunc nuw i8 %323 to i1
  br i1 %324, label %325, label %329

325:                                              ; preds = %318
  %326 = load ptr, ptr @stderr, align 8, !tbaa !9
  %327 = call i32 @fileno(ptr noundef %326) #12
  %328 = call i32 @isatty(i32 noundef %327) #12
  %.not682 = icmp eq i32 %328, 0
  br i1 %.not682, label %329, label %330

329:                                              ; preds = %325, %318
  br label %330

330:                                              ; preds = %325, %329
  %.str.4.sink843 = phi ptr [ @.str.4, %329 ], [ @.str, %325 ]
  store i32 %320, ptr %319, align 4, !tbaa !5
  %331 = load ptr, ptr @stderr, align 8, !tbaa !9
  %332 = load i32, ptr @test_count, align 4, !tbaa !5
  %333 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %334 = load i32, ptr %333, align 4, !tbaa !5
  %335 = call ptr @s2n_strerror(i32 noundef %334, ptr noundef nonnull @.str.3) #12
  %336 = load i32, ptr %333, align 4, !tbaa !5
  %337 = call ptr @s2n_strerror_debug(i32 noundef %336, ptr noundef nonnull @.str.3) #12
  %338 = load i32, ptr %319, align 4, !tbaa !5
  %339 = call ptr @strerror(i32 noundef %338) #12
  %340 = load i32, ptr %319, align 4, !tbaa !5
  %341 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %331, ptr noundef nonnull %.str.4.sink843, i32 noundef %332, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.2, i32 noundef 76, ptr noundef %335, ptr noundef %337, ptr noundef %339, i32 noundef %340) #14
  call void @exit(i32 noundef 1) #15
  unreachable

342:                                              ; preds = %313
  %343 = load i32, ptr @test_count, align 4, !tbaa !5
  %344 = add nsw i32 %343, 1
  store i32 %344, ptr @test_count, align 4, !tbaa !5
  %345 = call i32 @s2n_get_public_random_data(ptr noundef nonnull %10) #12
  %346 = call zeroext i1 @s2n_result_is_ok(i32 %345)
  br i1 %346, label %371, label %347

347:                                              ; preds = %342
  %348 = tail call ptr @__errno_location() #13
  %349 = load i32, ptr %348, align 4, !tbaa !5
  %350 = load ptr, ptr @stderr, align 8, !tbaa !9
  %351 = call i32 @s2n_print_stacktrace(ptr noundef %350) #12
  %352 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %353 = trunc nuw i8 %352 to i1
  br i1 %353, label %354, label %358

354:                                              ; preds = %347
  %355 = load ptr, ptr @stderr, align 8, !tbaa !9
  %356 = call i32 @fileno(ptr noundef %355) #12
  %357 = call i32 @isatty(i32 noundef %356) #12
  %.not557 = icmp eq i32 %357, 0
  br i1 %.not557, label %358, label %359

358:                                              ; preds = %354, %347
  br label %359

359:                                              ; preds = %354, %358
  %.str.4.sink854 = phi ptr [ @.str.4, %358 ], [ @.str, %354 ]
  store i32 %349, ptr %348, align 4, !tbaa !5
  %360 = load ptr, ptr @stderr, align 8, !tbaa !9
  %361 = load i32, ptr @test_count, align 4, !tbaa !5
  %362 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %363 = load i32, ptr %362, align 4, !tbaa !5
  %364 = call ptr @s2n_strerror(i32 noundef %363, ptr noundef nonnull @.str.3) #12
  %365 = load i32, ptr %362, align 4, !tbaa !5
  %366 = call ptr @s2n_strerror_debug(i32 noundef %365, ptr noundef nonnull @.str.3) #12
  %367 = load i32, ptr %348, align 4, !tbaa !5
  %368 = call ptr @strerror(i32 noundef %367) #12
  %369 = load i32, ptr %348, align 4, !tbaa !5
  %370 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %360, ptr noundef nonnull %.str.4.sink854, i32 noundef %361, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.2, i32 noundef 77, ptr noundef %364, ptr noundef %366, ptr noundef %368, i32 noundef %369) #14
  call void @exit(i32 noundef 1) #15
  unreachable

371:                                              ; preds = %342
  %372 = getelementptr inbounds i8, ptr %316, i64 224
  %373 = load ptr, ptr %372, align 8, !tbaa !17
  %374 = getelementptr inbounds i8, ptr %316, i64 640
  store ptr %373, ptr %374, align 8, !tbaa !44
  %375 = getelementptr inbounds i8, ptr %316, i64 632
  store ptr %373, ptr %375, align 8, !tbaa !45
  %376 = load ptr, ptr %373, align 8, !tbaa !46
  %377 = getelementptr inbounds i8, ptr %376, i64 48
  store ptr @s2n_record_alg_aes128_sha_composite, ptr %377, align 8, !tbaa !51
  %378 = getelementptr inbounds i8, ptr %316, i64 1896
  %379 = getelementptr inbounds i8, ptr %316, i64 220
  %380 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %381 = getelementptr inbounds i8, ptr %316, i64 1856
  %382 = getelementptr inbounds i8, ptr %316, i64 1776
  %383 = getelementptr inbounds i8, ptr %316, i64 1924
  %384 = getelementptr inbounds i8, ptr %316, i64 1920
  br label %.preheader698

.preheader698:                                    ; preds = %371, %390
  %indvars.iv = phi i64 [ 0, %371 ], [ %indvars.iv.next, %390 ]
  %385 = getelementptr inbounds [3 x i8], ptr @__const.main.proto_versions, i64 0, i64 %indvars.iv
  br label %391

386:                                              ; preds = %390
  %387 = load ptr, ptr %372, align 8, !tbaa !17
  %388 = load ptr, ptr %387, align 8, !tbaa !46
  %389 = getelementptr inbounds i8, ptr %388, i64 48
  store ptr @s2n_record_alg_aes256_sha_composite, ptr %389, align 8, !tbaa !51
  br label %.preheader697

390:                                              ; preds = %1204
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond717.not = icmp eq i64 %indvars.iv.next, 3
  br i1 %exitcond717.not, label %386, label %.preheader698, !llvm.loop !53

391:                                              ; preds = %.preheader698, %1204
  %.0526704 = phi i64 [ 0, %.preheader698 ], [ %1205, %1204 ]
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %12) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %12, i8 0, i64 24, i1 false)
  %392 = load i32, ptr @test_count, align 4, !tbaa !5
  %393 = add nsw i32 %392, 1
  store i32 %393, ptr @test_count, align 4, !tbaa !5
  %394 = trunc nuw nsw i64 %.0526704 to i32
  %395 = call i32 @s2n_blob_init(ptr noundef nonnull %12, ptr noundef nonnull %3, i32 noundef %394) #12
  %396 = icmp eq i32 %395, -1
  br i1 %396, label %397, label %420

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

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

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

409:                                              ; preds = %404, %408
  %.str.4.sink865 = phi ptr [ @.str.4, %408 ], [ @.str, %404 ]
  store i32 %399, ptr %398, align 4, !tbaa !5
  %410 = load ptr, ptr @stderr, align 8, !tbaa !9
  %411 = load i32, ptr @test_count, align 4, !tbaa !5
  %412 = load i32, ptr %380, align 4, !tbaa !5
  %413 = call ptr @s2n_strerror(i32 noundef %412, ptr noundef nonnull @.str.3) #12
  %414 = load i32, ptr %380, align 4, !tbaa !5
  %415 = call ptr @s2n_strerror_debug(i32 noundef %414, ptr noundef nonnull @.str.3) #12
  %416 = load i32, ptr %398, align 4, !tbaa !5
  %417 = call ptr @strerror(i32 noundef %416) #12
  %418 = load i32, ptr %398, align 4, !tbaa !5
  %419 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %410, ptr noundef nonnull %.str.4.sink865, i32 noundef %411, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.2, i32 noundef 95, ptr noundef %413, ptr noundef %415, ptr noundef %417, i32 noundef %418) #14
  call void @exit(i32 noundef 1) #15
  unreachable

420:                                              ; preds = %391
  %421 = load i32, ptr @test_count, align 4, !tbaa !5
  %422 = add nsw i32 %421, 1
  store i32 %422, ptr @test_count, align 4, !tbaa !5
  %423 = call i32 @s2n_connection_wipe(ptr noundef nonnull %316) #12
  %424 = icmp eq i32 %423, -1
  br i1 %424, label %425, label %448

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

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

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

437:                                              ; preds = %432, %436
  %.str.4.sink874 = phi ptr [ @.str.4, %436 ], [ @.str, %432 ]
  store i32 %427, ptr %426, align 4, !tbaa !5
  %438 = load ptr, ptr @stderr, align 8, !tbaa !9
  %439 = load i32, ptr @test_count, align 4, !tbaa !5
  %440 = load i32, ptr %380, align 4, !tbaa !5
  %441 = call ptr @s2n_strerror(i32 noundef %440, ptr noundef nonnull @.str.3) #12
  %442 = load i32, ptr %380, align 4, !tbaa !5
  %443 = call ptr @s2n_strerror_debug(i32 noundef %442, ptr noundef nonnull @.str.3) #12
  %444 = load i32, ptr %426, align 4, !tbaa !5
  %445 = call ptr @strerror(i32 noundef %444) #12
  %446 = load i32, ptr %426, align 4, !tbaa !5
  %447 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %438, ptr noundef nonnull %.str.4.sink874, i32 noundef %439, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.2, i32 noundef 98, ptr noundef %441, ptr noundef %443, ptr noundef %445, i32 noundef %446) #14
  call void @exit(i32 noundef 1) #15
  unreachable

448:                                              ; preds = %420
  %449 = load i32, ptr @test_count, align 4, !tbaa !5
  %450 = add nsw i32 %449, 1
  store i32 %450, ptr @test_count, align 4, !tbaa !5
  %451 = load ptr, ptr %372, align 8, !tbaa !17
  %452 = load ptr, ptr %451, align 8, !tbaa !46
  %453 = getelementptr inbounds i8, ptr %452, i64 48
  %454 = load ptr, ptr %453, align 8, !tbaa !51
  %455 = load ptr, ptr %454, align 8, !tbaa !55
  %456 = getelementptr inbounds i8, ptr %455, i64 80
  %457 = load ptr, ptr %456, align 8, !tbaa !57
  %458 = getelementptr inbounds i8, ptr %451, i64 16
  %459 = call i32 %457(ptr noundef nonnull %458, ptr noundef nonnull %8) #12
  %460 = call zeroext i1 @s2n_result_is_ok(i32 %459)
  br i1 %460, label %484, label %461

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

468:                                              ; preds = %461
  %469 = load ptr, ptr @stderr, align 8, !tbaa !9
  %470 = call i32 @fileno(ptr noundef %469) #12
  %471 = call i32 @isatty(i32 noundef %470) #12
  %.not651 = icmp eq i32 %471, 0
  br i1 %.not651, label %472, label %473

472:                                              ; preds = %468, %461
  br label %473

473:                                              ; preds = %468, %472
  %.str.4.sink883 = phi ptr [ @.str.4, %472 ], [ @.str, %468 ]
  store i32 %463, ptr %462, align 4, !tbaa !5
  %474 = load ptr, ptr @stderr, align 8, !tbaa !9
  %475 = load i32, ptr @test_count, align 4, !tbaa !5
  %476 = load i32, ptr %380, align 4, !tbaa !5
  %477 = call ptr @s2n_strerror(i32 noundef %476, ptr noundef nonnull @.str.3) #12
  %478 = load i32, ptr %380, align 4, !tbaa !5
  %479 = call ptr @s2n_strerror_debug(i32 noundef %478, ptr noundef nonnull @.str.3) #12
  %480 = load i32, ptr %462, align 4, !tbaa !5
  %481 = call ptr @strerror(i32 noundef %480) #12
  %482 = load i32, ptr %462, align 4, !tbaa !5
  %483 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %474, ptr noundef nonnull %.str.4.sink883, i32 noundef %475, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.2, i32 noundef 100, ptr noundef %477, ptr noundef %479, ptr noundef %481, i32 noundef %482) #14
  call void @exit(i32 noundef 1) #15
  unreachable

484:                                              ; preds = %448
  %485 = load i32, ptr @test_count, align 4, !tbaa !5
  %486 = add nsw i32 %485, 1
  store i32 %486, ptr @test_count, align 4, !tbaa !5
  %487 = load ptr, ptr %372, align 8, !tbaa !17
  %488 = load ptr, ptr %487, align 8, !tbaa !46
  %489 = getelementptr inbounds i8, ptr %488, i64 48
  %490 = load ptr, ptr %489, align 8, !tbaa !51
  %491 = load ptr, ptr %490, align 8, !tbaa !55
  %492 = getelementptr inbounds i8, ptr %491, i64 72
  %493 = load ptr, ptr %492, align 8, !tbaa !58
  %494 = getelementptr inbounds i8, ptr %487, i64 8
  %495 = call i32 %493(ptr noundef nonnull %494, ptr noundef nonnull %8) #12
  %496 = call zeroext i1 @s2n_result_is_ok(i32 %495)
  br i1 %496, label %520, label %497

497:                                              ; preds = %484
  %498 = tail call ptr @__errno_location() #13
  %499 = load i32, ptr %498, align 4, !tbaa !5
  %500 = load ptr, ptr @stderr, align 8, !tbaa !9
  %501 = call i32 @s2n_print_stacktrace(ptr noundef %500) #12
  %502 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %503 = trunc nuw i8 %502 to i1
  br i1 %503, label %504, label %508

504:                                              ; preds = %497
  %505 = load ptr, ptr @stderr, align 8, !tbaa !9
  %506 = call i32 @fileno(ptr noundef %505) #12
  %507 = call i32 @isatty(i32 noundef %506) #12
  %.not652 = icmp eq i32 %507, 0
  br i1 %.not652, label %508, label %509

508:                                              ; preds = %504, %497
  br label %509

509:                                              ; preds = %504, %508
  %.str.4.sink892 = phi ptr [ @.str.4, %508 ], [ @.str, %504 ]
  store i32 %499, ptr %498, align 4, !tbaa !5
  %510 = load ptr, ptr @stderr, align 8, !tbaa !9
  %511 = load i32, ptr @test_count, align 4, !tbaa !5
  %512 = load i32, ptr %380, align 4, !tbaa !5
  %513 = call ptr @s2n_strerror(i32 noundef %512, ptr noundef nonnull @.str.3) #12
  %514 = load i32, ptr %380, align 4, !tbaa !5
  %515 = call ptr @s2n_strerror_debug(i32 noundef %514, ptr noundef nonnull @.str.3) #12
  %516 = load i32, ptr %498, align 4, !tbaa !5
  %517 = call ptr @strerror(i32 noundef %516) #12
  %518 = load i32, ptr %498, align 4, !tbaa !5
  %519 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %510, ptr noundef nonnull %.str.4.sink892, i32 noundef %511, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.2, i32 noundef 101, ptr noundef %513, ptr noundef %515, ptr noundef %517, i32 noundef %518) #14
  call void @exit(i32 noundef 1) #15
  unreachable

520:                                              ; preds = %484
  %521 = load i32, ptr @test_count, align 4, !tbaa !5
  %522 = add nsw i32 %521, 1
  store i32 %522, ptr @test_count, align 4, !tbaa !5
  %523 = load ptr, ptr %372, align 8, !tbaa !17
  %524 = load ptr, ptr %523, align 8, !tbaa !46
  %525 = getelementptr inbounds i8, ptr %524, i64 48
  %526 = load ptr, ptr %525, align 8, !tbaa !51
  %527 = load ptr, ptr %526, align 8, !tbaa !55
  %528 = getelementptr inbounds i8, ptr %527, i64 32
  %529 = load ptr, ptr %528, align 8, !tbaa !59
  %530 = getelementptr inbounds i8, ptr %523, i64 16
  %531 = call i32 %529(ptr noundef nonnull %530, ptr noundef nonnull %4, i32 noundef 20) #12
  %532 = icmp eq i32 %531, -1
  br i1 %532, label %533, label %556

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

540:                                              ; preds = %533
  %541 = load ptr, ptr @stderr, align 8, !tbaa !9
  %542 = call i32 @fileno(ptr noundef %541) #12
  %543 = call i32 @isatty(i32 noundef %542) #12
  %.not679 = icmp eq i32 %543, 0
  br i1 %.not679, label %544, label %545

544:                                              ; preds = %540, %533
  br label %545

545:                                              ; preds = %540, %544
  %.str.4.sink901 = phi ptr [ @.str.4, %544 ], [ @.str, %540 ]
  store i32 %535, ptr %534, align 4, !tbaa !5
  %546 = load ptr, ptr @stderr, align 8, !tbaa !9
  %547 = load i32, ptr @test_count, align 4, !tbaa !5
  %548 = load i32, ptr %380, align 4, !tbaa !5
  %549 = call ptr @s2n_strerror(i32 noundef %548, ptr noundef nonnull @.str.3) #12
  %550 = load i32, ptr %380, align 4, !tbaa !5
  %551 = call ptr @s2n_strerror_debug(i32 noundef %550, ptr noundef nonnull @.str.3) #12
  %552 = load i32, ptr %534, align 4, !tbaa !5
  %553 = call ptr @strerror(i32 noundef %552) #12
  %554 = load i32, ptr %534, align 4, !tbaa !5
  %555 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %546, ptr noundef nonnull %.str.4.sink901, i32 noundef %547, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.2, i32 noundef 102, ptr noundef %549, ptr noundef %551, ptr noundef %553, i32 noundef %554) #14
  call void @exit(i32 noundef 1) #15
  unreachable

556:                                              ; preds = %520
  %557 = load i32, ptr @test_count, align 4, !tbaa !5
  %558 = add nsw i32 %557, 1
  store i32 %558, ptr @test_count, align 4, !tbaa !5
  %559 = load ptr, ptr %372, align 8, !tbaa !17
  %560 = load ptr, ptr %559, align 8, !tbaa !46
  %561 = getelementptr inbounds i8, ptr %560, i64 48
  %562 = load ptr, ptr %561, align 8, !tbaa !51
  %563 = load ptr, ptr %562, align 8, !tbaa !55
  %564 = getelementptr inbounds i8, ptr %563, i64 32
  %565 = load ptr, ptr %564, align 8, !tbaa !59
  %566 = getelementptr inbounds i8, ptr %559, i64 8
  %567 = call i32 %565(ptr noundef nonnull %566, ptr noundef nonnull %4, i32 noundef 20) #12
  %568 = icmp eq i32 %567, -1
  br i1 %568, label %569, label %592

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

576:                                              ; preds = %569
  %577 = load ptr, ptr @stderr, align 8, !tbaa !9
  %578 = call i32 @fileno(ptr noundef %577) #12
  %579 = call i32 @isatty(i32 noundef %578) #12
  %.not678 = icmp eq i32 %579, 0
  br i1 %.not678, label %580, label %581

580:                                              ; preds = %576, %569
  br label %581

581:                                              ; preds = %576, %580
  %.str.4.sink910 = phi ptr [ @.str.4, %580 ], [ @.str, %576 ]
  store i32 %571, ptr %570, align 4, !tbaa !5
  %582 = load ptr, ptr @stderr, align 8, !tbaa !9
  %583 = load i32, ptr @test_count, align 4, !tbaa !5
  %584 = load i32, ptr %380, align 4, !tbaa !5
  %585 = call ptr @s2n_strerror(i32 noundef %584, ptr noundef nonnull @.str.3) #12
  %586 = load i32, ptr %380, align 4, !tbaa !5
  %587 = call ptr @s2n_strerror_debug(i32 noundef %586, ptr noundef nonnull @.str.3) #12
  %588 = load i32, ptr %570, align 4, !tbaa !5
  %589 = call ptr @strerror(i32 noundef %588) #12
  %590 = load i32, ptr %570, align 4, !tbaa !5
  %591 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %582, ptr noundef nonnull %.str.4.sink910, i32 noundef %583, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.2, i32 noundef 103, ptr noundef %585, ptr noundef %587, ptr noundef %589, i32 noundef %590) #14
  call void @exit(i32 noundef 1) #15
  unreachable

592:                                              ; preds = %556
  %593 = load i32, ptr @test_count, align 4, !tbaa !5
  %594 = add nsw i32 %593, 1
  store i32 %594, ptr @test_count, align 4, !tbaa !5
  %595 = call i32 @s2n_stuffer_wipe(ptr noundef nonnull %378) #12
  %596 = icmp eq i32 %595, -1
  br i1 %596, label %597, label %620

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

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

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

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

620:                                              ; preds = %592
  %621 = load i8, ptr %385, align 1, !tbaa !59
  store i8 %621, ptr %379, align 4, !tbaa !60
  %622 = icmp ugt i8 %621, 31
  %. = select i1 %622, i32 16, i32 0
  %623 = call i32 @s2n_record_write(ptr noundef nonnull %316, i8 noundef zeroext 23, ptr noundef nonnull %12) #12
  %.not653 = icmp eq i64 %.0526704, 8088
  %624 = load i32, ptr @test_count, align 4, !tbaa !5
  %625 = add nsw i32 %624, 1
  store i32 %625, ptr @test_count, align 4, !tbaa !5
  br i1 %.not653, label %651, label %626

626:                                              ; preds = %620
  %627 = call zeroext i1 @s2n_result_is_ok(i32 %623)
  br i1 %627, label %733, label %628

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

635:                                              ; preds = %628
  %636 = load ptr, ptr @stderr, align 8, !tbaa !9
  %637 = call i32 @fileno(ptr noundef %636) #12
  %638 = call i32 @isatty(i32 noundef %637) #12
  %.not657 = icmp eq i32 %638, 0
  br i1 %.not657, label %639, label %640

639:                                              ; preds = %635, %628
  br label %640

640:                                              ; preds = %635, %639
  %.str.4.sink928 = phi ptr [ @.str.4, %639 ], [ @.str, %635 ]
  store i32 %630, ptr %629, align 4, !tbaa !5
  %641 = load ptr, ptr @stderr, align 8, !tbaa !9
  %642 = load i32, ptr @test_count, align 4, !tbaa !5
  %643 = load i32, ptr %380, align 4, !tbaa !5
  %644 = call ptr @s2n_strerror(i32 noundef %643, ptr noundef nonnull @.str.3) #12
  %645 = load i32, ptr %380, align 4, !tbaa !5
  %646 = call ptr @s2n_strerror_debug(i32 noundef %645, ptr noundef nonnull @.str.3) #12
  %647 = load i32, ptr %629, align 4, !tbaa !5
  %648 = call ptr @strerror(i32 noundef %647) #12
  %649 = load i32, ptr %629, align 4, !tbaa !5
  %650 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %641, ptr noundef nonnull %.str.4.sink928, i32 noundef %642, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.2, i32 noundef 117, ptr noundef %644, ptr noundef %646, ptr noundef %648, i32 noundef %649) #14
  call void @exit(i32 noundef 1) #15
  unreachable

651:                                              ; preds = %620
  %652 = call zeroext i1 @s2n_result_is_error(i32 %623)
  br i1 %652, label %676, label %653

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

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

664:                                              ; preds = %660, %653
  br label %665

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

676:                                              ; preds = %651
  %677 = load i32, ptr @test_count, align 4, !tbaa !5
  %678 = add nsw i32 %677, 1
  store i32 %678, ptr @test_count, align 4, !tbaa !5
  %679 = load i32, ptr %380, align 4, !tbaa !5
  %680 = icmp eq i32 %679, 335544390
  br i1 %680, label %704, label %681

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

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

692:                                              ; preds = %688, %681
  br label %693

693:                                              ; preds = %688, %692
  %.str.4.sink946 = phi ptr [ @.str.4, %692 ], [ @.str, %688 ]
  store i32 %683, ptr %682, align 4, !tbaa !5
  %694 = load ptr, ptr @stderr, align 8, !tbaa !9
  %695 = load i32, ptr @test_count, align 4, !tbaa !5
  %696 = load i32, ptr %380, align 4, !tbaa !5
  %697 = call ptr @s2n_strerror(i32 noundef %696, ptr noundef nonnull @.str.3) #12
  %698 = load i32, ptr %380, align 4, !tbaa !5
  %699 = call ptr @s2n_strerror_debug(i32 noundef %698, ptr noundef nonnull @.str.3) #12
  %700 = load i32, ptr %682, align 4, !tbaa !5
  %701 = call ptr @strerror(i32 noundef %700) #12
  %702 = load i32, ptr %682, align 4, !tbaa !5
  %703 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %694, ptr noundef nonnull %.str.4.sink946, i32 noundef %695, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.2, i32 noundef 120, ptr noundef %697, ptr noundef %699, ptr noundef %701, i32 noundef %702) #14
  call void @exit(i32 noundef 1) #15
  unreachable

704:                                              ; preds = %676
  %705 = add nsw i32 %677, 2
  store i32 %705, ptr @test_count, align 4, !tbaa !5
  %706 = call ptr @s2n_strerror_debug(i32 noundef 335544390, ptr noundef nonnull @.str.3) #12
  %707 = icmp eq ptr %706, null
  br i1 %707, label %708, label %731

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

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

719:                                              ; preds = %715, %708
  br label %720

720:                                              ; preds = %715, %719
  %.str.4.sink955 = phi ptr [ @.str.4, %719 ], [ @.str, %715 ]
  store i32 %710, ptr %709, align 4, !tbaa !5
  %721 = load ptr, ptr @stderr, align 8, !tbaa !9
  %722 = load i32, ptr @test_count, align 4, !tbaa !5
  %723 = load i32, ptr %380, align 4, !tbaa !5
  %724 = call ptr @s2n_strerror(i32 noundef %723, ptr noundef nonnull @.str.3) #12
  %725 = load i32, ptr %380, align 4, !tbaa !5
  %726 = call ptr @s2n_strerror_debug(i32 noundef %725, ptr noundef nonnull @.str.3) #12
  %727 = load i32, ptr %709, align 4, !tbaa !5
  %728 = call ptr @strerror(i32 noundef %727) #12
  %729 = load i32, ptr %709, align 4, !tbaa !5
  %730 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %721, ptr noundef nonnull %.str.4.sink955, i32 noundef %722, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.2, i32 noundef 120, ptr noundef %724, ptr noundef %726, ptr noundef %728, i32 noundef %729) #14
  call void @exit(i32 noundef 1) #15
  unreachable

731:                                              ; preds = %704
  store i32 0, ptr %380, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  %732 = tail call ptr @__errno_location() #13
  store i32 0, ptr %732, align 4, !tbaa !5
  br label %733

733:                                              ; preds = %626, %731
  %.0527 = phi i32 [ 8087, %731 ], [ %394, %626 ]
  %734 = add nuw nsw i32 %.0527, 21
  %735 = add nuw nsw i32 %734, %.
  %736 = and i32 %734, 15
  %.not658 = icmp eq i32 %736, 0
  %reass.sub712 = sub nuw i32 %735, %736
  %737 = add i32 %reass.sub712, 16
  %.0529 = select i1 %.not658, i32 %735, i32 %737
  %738 = load i32, ptr @test_count, align 4, !tbaa !5
  %739 = add nsw i32 %738, 1
  store i32 %739, ptr @test_count, align 4, !tbaa !5
  %740 = load ptr, ptr %378, align 8, !tbaa !61
  %741 = load i8, ptr %740, align 1, !tbaa !59
  %742 = icmp eq i8 %741, 23
  br i1 %742, label %766, label %743

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

750:                                              ; preds = %743
  %751 = load ptr, ptr @stderr, align 8, !tbaa !9
  %752 = call i32 @fileno(ptr noundef %751) #12
  %753 = call i32 @isatty(i32 noundef %752) #12
  %.not660 = icmp eq i32 %753, 0
  br i1 %.not660, label %754, label %755

754:                                              ; preds = %750, %743
  br label %755

755:                                              ; preds = %750, %754
  %.str.4.sink964 = phi ptr [ @.str.4, %754 ], [ @.str, %750 ]
  store i32 %745, ptr %744, align 4, !tbaa !5
  %756 = load ptr, ptr @stderr, align 8, !tbaa !9
  %757 = load i32, ptr @test_count, align 4, !tbaa !5
  %758 = load i32, ptr %380, align 4, !tbaa !5
  %759 = call ptr @s2n_strerror(i32 noundef %758, ptr noundef nonnull @.str.3) #12
  %760 = load i32, ptr %380, align 4, !tbaa !5
  %761 = call ptr @s2n_strerror_debug(i32 noundef %760, ptr noundef nonnull @.str.3) #12
  %762 = load i32, ptr %744, align 4, !tbaa !5
  %763 = call ptr @strerror(i32 noundef %762) #12
  %764 = load i32, ptr %744, align 4, !tbaa !5
  %765 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %756, ptr noundef nonnull %.str.4.sink964, i32 noundef %757, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.2, i32 noundef 128, ptr noundef %759, ptr noundef %761, ptr noundef %763, i32 noundef %764) #14
  call void @exit(i32 noundef 1) #15
  unreachable

766:                                              ; preds = %733
  %767 = getelementptr inbounds i8, ptr %740, i64 1
  %768 = load i8, ptr %767, align 1, !tbaa !59
  %769 = mul i8 %768, 10
  %770 = getelementptr inbounds i8, ptr %740, i64 2
  %771 = load i8, ptr %770, align 1, !tbaa !59
  %772 = add i8 %769, %771
  %773 = add nsw i32 %738, 2
  store i32 %773, ptr @test_count, align 4, !tbaa !5
  %774 = load i8, ptr %379, align 4, !tbaa !60
  %775 = icmp eq i8 %772, %774
  br i1 %775, label %799, label %776

776:                                              ; preds = %766
  %777 = tail call ptr @__errno_location() #13
  %778 = load i32, ptr %777, align 4, !tbaa !5
  %779 = load ptr, ptr @stderr, align 8, !tbaa !9
  %780 = call i32 @s2n_print_stacktrace(ptr noundef %779) #12
  %781 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %782 = trunc nuw i8 %781 to i1
  br i1 %782, label %783, label %787

783:                                              ; preds = %776
  %784 = load ptr, ptr @stderr, align 8, !tbaa !9
  %785 = call i32 @fileno(ptr noundef %784) #12
  %786 = call i32 @isatty(i32 noundef %785) #12
  %.not661 = icmp eq i32 %786, 0
  br i1 %.not661, label %787, label %788

787:                                              ; preds = %783, %776
  br label %788

788:                                              ; preds = %783, %787
  %.str.4.sink973 = phi ptr [ @.str.4, %787 ], [ @.str, %783 ]
  store i32 %778, ptr %777, align 4, !tbaa !5
  %789 = load ptr, ptr @stderr, align 8, !tbaa !9
  %790 = load i32, ptr @test_count, align 4, !tbaa !5
  %791 = load i32, ptr %380, align 4, !tbaa !5
  %792 = call ptr @s2n_strerror(i32 noundef %791, ptr noundef nonnull @.str.3) #12
  %793 = load i32, ptr %380, align 4, !tbaa !5
  %794 = call ptr @s2n_strerror_debug(i32 noundef %793, ptr noundef nonnull @.str.3) #12
  %795 = load i32, ptr %777, align 4, !tbaa !5
  %796 = call ptr @strerror(i32 noundef %795) #12
  %797 = load i32, ptr %777, align 4, !tbaa !5
  %798 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %789, ptr noundef nonnull %.str.4.sink973, i32 noundef %790, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.2, i32 noundef 130, ptr noundef %792, ptr noundef %794, ptr noundef %796, i32 noundef %797) #14
  call void @exit(i32 noundef 1) #15
  unreachable

799:                                              ; preds = %766
  %800 = add nsw i32 %738, 3
  store i32 %800, ptr @test_count, align 4, !tbaa !5
  %801 = getelementptr inbounds i8, ptr %740, i64 3
  %802 = load i8, ptr %801, align 1, !tbaa !59
  %803 = lshr i32 %.0529, 8
  %804 = trunc i32 %803 to i8
  %805 = icmp eq i8 %802, %804
  br i1 %805, label %829, label %806

806:                                              ; preds = %799
  %807 = tail call ptr @__errno_location() #13
  %808 = load i32, ptr %807, align 4, !tbaa !5
  %809 = load ptr, ptr @stderr, align 8, !tbaa !9
  %810 = call i32 @s2n_print_stacktrace(ptr noundef %809) #12
  %811 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %812 = trunc nuw i8 %811 to i1
  br i1 %812, label %813, label %817

813:                                              ; preds = %806
  %814 = load ptr, ptr @stderr, align 8, !tbaa !9
  %815 = call i32 @fileno(ptr noundef %814) #12
  %816 = call i32 @isatty(i32 noundef %815) #12
  %.not662 = icmp eq i32 %816, 0
  br i1 %.not662, label %817, label %818

817:                                              ; preds = %813, %806
  br label %818

818:                                              ; preds = %813, %817
  %.str.4.sink982 = phi ptr [ @.str.4, %817 ], [ @.str, %813 ]
  store i32 %808, ptr %807, align 4, !tbaa !5
  %819 = load ptr, ptr @stderr, align 8, !tbaa !9
  %820 = load i32, ptr @test_count, align 4, !tbaa !5
  %821 = load i32, ptr %380, align 4, !tbaa !5
  %822 = call ptr @s2n_strerror(i32 noundef %821, ptr noundef nonnull @.str.3) #12
  %823 = load i32, ptr %380, align 4, !tbaa !5
  %824 = call ptr @s2n_strerror_debug(i32 noundef %823, ptr noundef nonnull @.str.3) #12
  %825 = load i32, ptr %807, align 4, !tbaa !5
  %826 = call ptr @strerror(i32 noundef %825) #12
  %827 = load i32, ptr %807, align 4, !tbaa !5
  %828 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %819, ptr noundef nonnull %.str.4.sink982, i32 noundef %820, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.2, i32 noundef 131, ptr noundef %822, ptr noundef %824, ptr noundef %826, i32 noundef %827) #14
  call void @exit(i32 noundef 1) #15
  unreachable

829:                                              ; preds = %799
  %830 = add nsw i32 %738, 4
  store i32 %830, ptr @test_count, align 4, !tbaa !5
  %831 = getelementptr inbounds i8, ptr %740, i64 4
  %832 = load i8, ptr %831, align 1, !tbaa !59
  %833 = trunc i32 %.0529 to i8
  %834 = icmp eq i8 %832, %833
  br i1 %834, label %858, label %835

835:                                              ; preds = %829
  %836 = tail call ptr @__errno_location() #13
  %837 = load i32, ptr %836, align 4, !tbaa !5
  %838 = load ptr, ptr @stderr, align 8, !tbaa !9
  %839 = call i32 @s2n_print_stacktrace(ptr noundef %838) #12
  %840 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %841 = trunc nuw i8 %840 to i1
  br i1 %841, label %842, label %846

842:                                              ; preds = %835
  %843 = load ptr, ptr @stderr, align 8, !tbaa !9
  %844 = call i32 @fileno(ptr noundef %843) #12
  %845 = call i32 @isatty(i32 noundef %844) #12
  %.not663 = icmp eq i32 %845, 0
  br i1 %.not663, label %846, label %847

846:                                              ; preds = %842, %835
  br label %847

847:                                              ; preds = %842, %846
  %.str.4.sink991 = phi ptr [ @.str.4, %846 ], [ @.str, %842 ]
  store i32 %837, ptr %836, align 4, !tbaa !5
  %848 = load ptr, ptr @stderr, align 8, !tbaa !9
  %849 = load i32, ptr @test_count, align 4, !tbaa !5
  %850 = load i32, ptr %380, align 4, !tbaa !5
  %851 = call ptr @s2n_strerror(i32 noundef %850, ptr noundef nonnull @.str.3) #12
  %852 = load i32, ptr %380, align 4, !tbaa !5
  %853 = call ptr @s2n_strerror_debug(i32 noundef %852, ptr noundef nonnull @.str.3) #12
  %854 = load i32, ptr %836, align 4, !tbaa !5
  %855 = call ptr @strerror(i32 noundef %854) #12
  %856 = load i32, ptr %836, align 4, !tbaa !5
  %857 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %848, ptr noundef nonnull %.str.4.sink991, i32 noundef %849, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.2, i32 noundef 132, ptr noundef %851, ptr noundef %853, ptr noundef %855, i32 noundef %856) #14
  call void @exit(i32 noundef 1) #15
  unreachable

858:                                              ; preds = %829
  %859 = icmp ugt i32 %.0527, 10
  br i1 %859, label %860, label %890

860:                                              ; preds = %858
  %861 = add nsw i32 %738, 5
  store i32 %861, ptr @test_count, align 4, !tbaa !5
  %862 = getelementptr inbounds i8, ptr %740, i64 5
  %863 = zext nneg i32 %. to i64
  %864 = getelementptr inbounds i8, ptr %862, i64 %863
  %865 = zext nneg i32 %.0527 to i64
  %bcmp664 = call i32 @bcmp(ptr nonnull %864, ptr nonnull %3, i64 %865)
  %866 = icmp eq i32 %bcmp664, 0
  br i1 %866, label %867, label %890

867:                                              ; preds = %860
  %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
  %.not676 = icmp eq i32 %877, 0
  br i1 %.not676, label %878, label %879

878:                                              ; preds = %874, %867
  br label %879

879:                                              ; preds = %874, %878
  %.str.4.sink1000 = 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 %380, align 4, !tbaa !5
  %883 = call ptr @s2n_strerror(i32 noundef %882, ptr noundef nonnull @.str.3) #12
  %884 = load i32, ptr %380, 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.sink1000, i32 noundef %881, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.2, i32 noundef 136, ptr noundef %883, ptr noundef %885, ptr noundef %887, i32 noundef %888) #14
  call void @exit(i32 noundef 1) #15
  unreachable

890:                                              ; preds = %860, %858
  %891 = phi i32 [ %861, %860 ], [ %830, %858 ]
  br i1 %622, label %892, label %922

892:                                              ; preds = %890
  %893 = getelementptr inbounds i8, ptr %740, i64 5
  %894 = add nsw i32 %891, 1
  store i32 %894, ptr @test_count, align 4, !tbaa !5
  %895 = call i32 @ensure_explicit_iv_is_unique(ptr noundef nonnull %11, i64 noundef %.0526704, ptr noundef nonnull %893, i16 noundef zeroext 16)
  %896 = icmp eq i32 %895, -1
  br i1 %896, label %897, label %920

897:                                              ; preds = %892
  %898 = tail call ptr @__errno_location() #13
  %899 = load i32, ptr %898, align 4, !tbaa !5
  %900 = load ptr, ptr @stderr, align 8, !tbaa !9
  %901 = call i32 @s2n_print_stacktrace(ptr noundef %900) #12
  %902 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %903 = trunc nuw i8 %902 to i1
  br i1 %903, label %904, label %908

904:                                              ; preds = %897
  %905 = load ptr, ptr @stderr, align 8, !tbaa !9
  %906 = call i32 @fileno(ptr noundef %905) #12
  %907 = call i32 @isatty(i32 noundef %906) #12
  %.not675 = icmp eq i32 %907, 0
  br i1 %.not675, label %908, label %909

908:                                              ; preds = %904, %897
  br label %909

909:                                              ; preds = %904, %908
  %.str.4.sink1009 = phi ptr [ @.str.4, %908 ], [ @.str, %904 ]
  store i32 %899, ptr %898, align 4, !tbaa !5
  %910 = load ptr, ptr @stderr, align 8, !tbaa !9
  %911 = load i32, ptr @test_count, align 4, !tbaa !5
  %912 = load i32, ptr %380, align 4, !tbaa !5
  %913 = call ptr @s2n_strerror(i32 noundef %912, ptr noundef nonnull @.str.3) #12
  %914 = load i32, ptr %380, align 4, !tbaa !5
  %915 = call ptr @s2n_strerror_debug(i32 noundef %914, ptr noundef nonnull @.str.3) #12
  %916 = load i32, ptr %898, align 4, !tbaa !5
  %917 = call ptr @strerror(i32 noundef %916) #12
  %918 = load i32, ptr %898, align 4, !tbaa !5
  %919 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %910, ptr noundef nonnull %.str.4.sink1009, i32 noundef %911, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.2, i32 noundef 142, ptr noundef %913, ptr noundef %915, ptr noundef %917, i32 noundef %918) #14
  call void @exit(i32 noundef 1) #15
  unreachable

920:                                              ; preds = %892
  %921 = getelementptr inbounds [8089 x [16 x i8]], ptr %11, i64 0, i64 %.0526704
  call void @llvm.memmove.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %921, ptr noundef nonnull align 1 dereferenceable(16) %893, i64 16, i1 false)
  %.pre = load i32, ptr @test_count, align 4, !tbaa !5
  br label %922

922:                                              ; preds = %890, %920
  %923 = phi i32 [ %891, %890 ], [ %.pre, %920 ]
  %924 = add nsw i32 %923, 1
  store i32 %924, ptr @test_count, align 4, !tbaa !5
  %925 = call i32 @s2n_stuffer_wipe(ptr noundef nonnull %381) #12
  %926 = icmp eq i32 %925, -1
  br i1 %926, label %927, label %950

927:                                              ; preds = %922
  %928 = tail call ptr @__errno_location() #13
  %929 = load i32, ptr %928, align 4, !tbaa !5
  %930 = load ptr, ptr @stderr, align 8, !tbaa !9
  %931 = call i32 @s2n_print_stacktrace(ptr noundef %930) #12
  %932 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %933 = trunc nuw i8 %932 to i1
  br i1 %933, label %934, label %938

934:                                              ; preds = %927
  %935 = load ptr, ptr @stderr, align 8, !tbaa !9
  %936 = call i32 @fileno(ptr noundef %935) #12
  %937 = call i32 @isatty(i32 noundef %936) #12
  %.not674 = icmp eq i32 %937, 0
  br i1 %.not674, label %938, label %939

938:                                              ; preds = %934, %927
  br label %939

939:                                              ; preds = %934, %938
  %.str.4.sink1018 = phi ptr [ @.str.4, %938 ], [ @.str, %934 ]
  store i32 %929, ptr %928, align 4, !tbaa !5
  %940 = load ptr, ptr @stderr, align 8, !tbaa !9
  %941 = load i32, ptr @test_count, align 4, !tbaa !5
  %942 = load i32, ptr %380, align 4, !tbaa !5
  %943 = call ptr @s2n_strerror(i32 noundef %942, ptr noundef nonnull @.str.3) #12
  %944 = load i32, ptr %380, align 4, !tbaa !5
  %945 = call ptr @s2n_strerror_debug(i32 noundef %944, ptr noundef nonnull @.str.3) #12
  %946 = load i32, ptr %928, align 4, !tbaa !5
  %947 = call ptr @strerror(i32 noundef %946) #12
  %948 = load i32, ptr %928, align 4, !tbaa !5
  %949 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %940, ptr noundef nonnull %.str.4.sink1018, i32 noundef %941, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.2, i32 noundef 148, ptr noundef %943, ptr noundef %945, ptr noundef %947, i32 noundef %948) #14
  call void @exit(i32 noundef 1) #15
  unreachable

950:                                              ; preds = %922
  %951 = load i32, ptr @test_count, align 4, !tbaa !5
  %952 = add nsw i32 %951, 1
  store i32 %952, ptr @test_count, align 4, !tbaa !5
  %953 = call i32 @s2n_stuffer_wipe(ptr noundef nonnull %382) #12
  %954 = icmp eq i32 %953, -1
  br i1 %954, label %955, label %978

955:                                              ; preds = %950
  %956 = tail call ptr @__errno_location() #13
  %957 = load i32, ptr %956, align 4, !tbaa !5
  %958 = load ptr, ptr @stderr, align 8, !tbaa !9
  %959 = call i32 @s2n_print_stacktrace(ptr noundef %958) #12
  %960 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %961 = trunc nuw i8 %960 to i1
  br i1 %961, label %962, label %966

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

966:                                              ; preds = %962, %955
  br label %967

967:                                              ; preds = %962, %966
  %.str.4.sink1027 = phi ptr [ @.str.4, %966 ], [ @.str, %962 ]
  store i32 %957, ptr %956, align 4, !tbaa !5
  %968 = load ptr, ptr @stderr, align 8, !tbaa !9
  %969 = load i32, ptr @test_count, align 4, !tbaa !5
  %970 = load i32, ptr %380, align 4, !tbaa !5
  %971 = call ptr @s2n_strerror(i32 noundef %970, ptr noundef nonnull @.str.3) #12
  %972 = load i32, ptr %380, align 4, !tbaa !5
  %973 = call ptr @s2n_strerror_debug(i32 noundef %972, ptr noundef nonnull @.str.3) #12
  %974 = load i32, ptr %956, align 4, !tbaa !5
  %975 = call ptr @strerror(i32 noundef %974) #12
  %976 = load i32, ptr %956, align 4, !tbaa !5
  %977 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %968, ptr noundef nonnull %.str.4.sink1027, i32 noundef %969, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.2, i32 noundef 149, ptr noundef %971, ptr noundef %973, ptr noundef %975, i32 noundef %976) #14
  call void @exit(i32 noundef 1) #15
  unreachable

978:                                              ; preds = %950
  %979 = load i32, ptr @test_count, align 4, !tbaa !5
  %980 = add nsw i32 %979, 1
  store i32 %980, ptr @test_count, align 4, !tbaa !5
  %981 = call i32 @s2n_stuffer_copy(ptr noundef nonnull %378, ptr noundef nonnull %382, i32 noundef 5) #12
  %982 = icmp eq i32 %981, -1
  br i1 %982, label %983, label %1006

983:                                              ; preds = %978
  %984 = tail call ptr @__errno_location() #13
  %985 = load i32, ptr %984, align 4, !tbaa !5
  %986 = load ptr, ptr @stderr, align 8, !tbaa !9
  %987 = call i32 @s2n_print_stacktrace(ptr noundef %986) #12
  %988 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %989 = trunc nuw i8 %988 to i1
  br i1 %989, label %990, label %994

990:                                              ; preds = %983
  %991 = load ptr, ptr @stderr, align 8, !tbaa !9
  %992 = call i32 @fileno(ptr noundef %991) #12
  %993 = call i32 @isatty(i32 noundef %992) #12
  %.not672 = icmp eq i32 %993, 0
  br i1 %.not672, label %994, label %995

994:                                              ; preds = %990, %983
  br label %995

995:                                              ; preds = %990, %994
  %.str.4.sink1036 = phi ptr [ @.str.4, %994 ], [ @.str, %990 ]
  store i32 %985, ptr %984, align 4, !tbaa !5
  %996 = load ptr, ptr @stderr, align 8, !tbaa !9
  %997 = load i32, ptr @test_count, align 4, !tbaa !5
  %998 = load i32, ptr %380, align 4, !tbaa !5
  %999 = call ptr @s2n_strerror(i32 noundef %998, ptr noundef nonnull @.str.3) #12
  %1000 = load i32, ptr %380, align 4, !tbaa !5
  %1001 = call ptr @s2n_strerror_debug(i32 noundef %1000, ptr noundef nonnull @.str.3) #12
  %1002 = load i32, ptr %984, align 4, !tbaa !5
  %1003 = call ptr @strerror(i32 noundef %1002) #12
  %1004 = load i32, ptr %984, align 4, !tbaa !5
  %1005 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %996, ptr noundef nonnull %.str.4.sink1036, i32 noundef %997, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.2, i32 noundef 150, ptr noundef %999, ptr noundef %1001, ptr noundef %1003, i32 noundef %1004) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1006:                                             ; preds = %978
  %1007 = load i32, ptr @test_count, align 4, !tbaa !5
  %1008 = add nsw i32 %1007, 1
  store i32 %1008, ptr @test_count, align 4, !tbaa !5
  %1009 = load i32, ptr %383, align 4, !tbaa !62
  %1010 = load i32, ptr %384, align 8, !tbaa !63
  %1011 = sub i32 %1009, %1010
  %1012 = call i32 @s2n_stuffer_copy(ptr noundef nonnull %378, ptr noundef nonnull %381, i32 noundef %1011) #12
  %1013 = icmp eq i32 %1012, -1
  br i1 %1013, label %1014, label %1037

1014:                                             ; preds = %1006
  %1015 = tail call ptr @__errno_location() #13
  %1016 = load i32, ptr %1015, align 4, !tbaa !5
  %1017 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1018 = call i32 @s2n_print_stacktrace(ptr noundef %1017) #12
  %1019 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1020 = trunc nuw i8 %1019 to i1
  br i1 %1020, label %1021, label %1025

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

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

1026:                                             ; preds = %1021, %1025
  %.str.4.sink1045 = phi ptr [ @.str.4, %1025 ], [ @.str, %1021 ]
  store i32 %1016, ptr %1015, align 4, !tbaa !5
  %1027 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1028 = load i32, ptr @test_count, align 4, !tbaa !5
  %1029 = load i32, ptr %380, align 4, !tbaa !5
  %1030 = call ptr @s2n_strerror(i32 noundef %1029, ptr noundef nonnull @.str.3) #12
  %1031 = load i32, ptr %380, align 4, !tbaa !5
  %1032 = call ptr @s2n_strerror_debug(i32 noundef %1031, ptr noundef nonnull @.str.3) #12
  %1033 = load i32, ptr %1015, align 4, !tbaa !5
  %1034 = call ptr @strerror(i32 noundef %1033) #12
  %1035 = load i32, ptr %1015, align 4, !tbaa !5
  %1036 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1027, ptr noundef nonnull %.str.4.sink1045, i32 noundef %1028, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.2, i32 noundef 151, ptr noundef %1030, ptr noundef %1032, ptr noundef %1034, i32 noundef %1035) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1037:                                             ; preds = %1006
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %13) #12
  store i8 0, ptr %13, align 1, !tbaa !59
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %14) #12
  store i16 0, ptr %14, align 2, !tbaa !64
  %1038 = load i32, ptr @test_count, align 4, !tbaa !5
  %1039 = add nsw i32 %1038, 1
  store i32 %1039, ptr @test_count, align 4, !tbaa !5
  %1040 = call i32 @s2n_record_header_parse(ptr noundef nonnull %316, ptr noundef nonnull %13, ptr noundef nonnull %14) #12
  %1041 = icmp eq i32 %1040, -1
  br i1 %1041, label %1042, label %1065

1042:                                             ; preds = %1037
  %1043 = tail call ptr @__errno_location() #13
  %1044 = load i32, ptr %1043, align 4, !tbaa !5
  %1045 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1046 = call i32 @s2n_print_stacktrace(ptr noundef %1045) #12
  %1047 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1048 = trunc nuw i8 %1047 to i1
  br i1 %1048, label %1049, label %1053

1049:                                             ; preds = %1042
  %1050 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1051 = call i32 @fileno(ptr noundef %1050) #12
  %1052 = call i32 @isatty(i32 noundef %1051) #12
  %.not670 = icmp eq i32 %1052, 0
  br i1 %.not670, label %1053, label %1054

1053:                                             ; preds = %1049, %1042
  br label %1054

1054:                                             ; preds = %1049, %1053
  %.str.4.sink1054 = phi ptr [ @.str.4, %1053 ], [ @.str, %1049 ]
  store i32 %1044, ptr %1043, align 4, !tbaa !5
  %1055 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1056 = load i32, ptr @test_count, align 4, !tbaa !5
  %1057 = load i32, ptr %380, align 4, !tbaa !5
  %1058 = call ptr @s2n_strerror(i32 noundef %1057, ptr noundef nonnull @.str.3) #12
  %1059 = load i32, ptr %380, align 4, !tbaa !5
  %1060 = call ptr @s2n_strerror_debug(i32 noundef %1059, ptr noundef nonnull @.str.3) #12
  %1061 = load i32, ptr %1043, align 4, !tbaa !5
  %1062 = call ptr @strerror(i32 noundef %1061) #12
  %1063 = load i32, ptr %1043, align 4, !tbaa !5
  %1064 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1055, ptr noundef nonnull %.str.4.sink1054, i32 noundef %1056, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.2, i32 noundef 156, ptr noundef %1058, ptr noundef %1060, ptr noundef %1062, i32 noundef %1063) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1065:                                             ; preds = %1037
  %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 = call i32 @s2n_record_parse(ptr noundef nonnull %316) #12
  %1069 = icmp eq i32 %1068, -1
  br i1 %1069, label %1070, label %1093

1070:                                             ; preds = %1065
  %1071 = tail call ptr @__errno_location() #13
  %1072 = load i32, ptr %1071, align 4, !tbaa !5
  %1073 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1074 = call i32 @s2n_print_stacktrace(ptr noundef %1073) #12
  %1075 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1076 = trunc nuw i8 %1075 to i1
  br i1 %1076, label %1077, label %1081

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

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

1082:                                             ; preds = %1077, %1081
  %.str.4.sink1063 = phi ptr [ @.str.4, %1081 ], [ @.str, %1077 ]
  store i32 %1072, ptr %1071, align 4, !tbaa !5
  %1083 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1084 = load i32, ptr @test_count, align 4, !tbaa !5
  %1085 = load i32, ptr %380, align 4, !tbaa !5
  %1086 = call ptr @s2n_strerror(i32 noundef %1085, ptr noundef nonnull @.str.3) #12
  %1087 = load i32, ptr %380, align 4, !tbaa !5
  %1088 = call ptr @s2n_strerror_debug(i32 noundef %1087, ptr noundef nonnull @.str.3) #12
  %1089 = load i32, ptr %1071, align 4, !tbaa !5
  %1090 = call ptr @strerror(i32 noundef %1089) #12
  %1091 = load i32, ptr %1071, align 4, !tbaa !5
  %1092 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1083, ptr noundef nonnull %.str.4.sink1063, i32 noundef %1084, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.2, i32 noundef 157, ptr noundef %1086, ptr noundef %1088, ptr noundef %1090, i32 noundef %1091) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1093:                                             ; preds = %1065
  %1094 = load i32, ptr @test_count, align 4, !tbaa !5
  %1095 = add nsw i32 %1094, 1
  store i32 %1095, ptr @test_count, align 4, !tbaa !5
  %1096 = load i8, ptr %13, align 1, !tbaa !59
  %1097 = icmp eq i8 %1096, 23
  br i1 %1097, label %1121, label %1098

1098:                                             ; preds = %1093
  %1099 = tail call ptr @__errno_location() #13
  %1100 = load i32, ptr %1099, align 4, !tbaa !5
  %1101 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1102 = call i32 @s2n_print_stacktrace(ptr noundef %1101) #12
  %1103 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1104 = trunc nuw i8 %1103 to i1
  br i1 %1104, label %1105, label %1109

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

1109:                                             ; preds = %1105, %1098
  br label %1110

1110:                                             ; preds = %1105, %1109
  %.str.4.sink1072 = phi ptr [ @.str.4, %1109 ], [ @.str, %1105 ]
  store i32 %1100, ptr %1099, align 4, !tbaa !5
  %1111 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1112 = load i32, ptr @test_count, align 4, !tbaa !5
  %1113 = load i32, ptr %380, align 4, !tbaa !5
  %1114 = call ptr @s2n_strerror(i32 noundef %1113, ptr noundef nonnull @.str.3) #12
  %1115 = load i32, ptr %380, align 4, !tbaa !5
  %1116 = call ptr @s2n_strerror_debug(i32 noundef %1115, ptr noundef nonnull @.str.3) #12
  %1117 = load i32, ptr %1099, align 4, !tbaa !5
  %1118 = call ptr @strerror(i32 noundef %1117) #12
  %1119 = load i32, ptr %1099, align 4, !tbaa !5
  %1120 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1111, ptr noundef nonnull %.str.4.sink1072, i32 noundef %1112, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.2, i32 noundef 158, ptr noundef %1114, ptr noundef %1116, ptr noundef %1118, i32 noundef %1119) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1121:                                             ; preds = %1093
  %1122 = add nsw i32 %1094, 2
  store i32 %1122, ptr @test_count, align 4, !tbaa !5
  %1123 = load i16, ptr %14, align 2, !tbaa !64
  %1124 = trunc i32 %.0529 to i16
  %1125 = icmp eq i16 %1123, %1124
  br i1 %1125, label %1149, label %1126

1126:                                             ; preds = %1121
  %1127 = tail call ptr @__errno_location() #13
  %1128 = load i32, ptr %1127, align 4, !tbaa !5
  %1129 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1130 = call i32 @s2n_print_stacktrace(ptr noundef %1129) #12
  %1131 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1132 = trunc nuw i8 %1131 to i1
  br i1 %1132, label %1133, label %1137

1133:                                             ; preds = %1126
  %1134 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1135 = call i32 @fileno(ptr noundef %1134) #12
  %1136 = call i32 @isatty(i32 noundef %1135) #12
  %.not666 = icmp eq i32 %1136, 0
  br i1 %.not666, label %1137, label %1138

1137:                                             ; preds = %1133, %1126
  br label %1138

1138:                                             ; preds = %1133, %1137
  %.str.4.sink1081 = phi ptr [ @.str.4, %1137 ], [ @.str, %1133 ]
  store i32 %1128, ptr %1127, align 4, !tbaa !5
  %1139 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1140 = load i32, ptr @test_count, align 4, !tbaa !5
  %1141 = load i32, ptr %380, align 4, !tbaa !5
  %1142 = call ptr @s2n_strerror(i32 noundef %1141, ptr noundef nonnull @.str.3) #12
  %1143 = load i32, ptr %380, align 4, !tbaa !5
  %1144 = call ptr @s2n_strerror_debug(i32 noundef %1143, ptr noundef nonnull @.str.3) #12
  %1145 = load i32, ptr %1127, align 4, !tbaa !5
  %1146 = call ptr @strerror(i32 noundef %1145) #12
  %1147 = load i32, ptr %1127, align 4, !tbaa !5
  %1148 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1139, ptr noundef nonnull %.str.4.sink1081, i32 noundef %1140, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.2, i32 noundef 159, ptr noundef %1142, ptr noundef %1144, ptr noundef %1146, i32 noundef %1147) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1149:                                             ; preds = %1121
  %1150 = add nsw i32 %1094, 3
  store i32 %1150, ptr @test_count, align 4, !tbaa !5
  %1151 = call i32 @s2n_stuffer_wipe(ptr noundef nonnull %382) #12
  %1152 = icmp eq i32 %1151, -1
  br i1 %1152, label %1153, label %1176

1153:                                             ; preds = %1149
  %1154 = tail call ptr @__errno_location() #13
  %1155 = load i32, ptr %1154, align 4, !tbaa !5
  %1156 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1157 = call i32 @s2n_print_stacktrace(ptr noundef %1156) #12
  %1158 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1159 = trunc nuw i8 %1158 to i1
  br i1 %1159, label %1160, label %1164

1160:                                             ; preds = %1153
  %1161 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1162 = call i32 @fileno(ptr noundef %1161) #12
  %1163 = call i32 @isatty(i32 noundef %1162) #12
  %.not668 = icmp eq i32 %1163, 0
  br i1 %.not668, label %1164, label %1165

1164:                                             ; preds = %1160, %1153
  br label %1165

1165:                                             ; preds = %1160, %1164
  %.str.4.sink1090 = phi ptr [ @.str.4, %1164 ], [ @.str, %1160 ]
  store i32 %1155, ptr %1154, align 4, !tbaa !5
  %1166 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1167 = load i32, ptr @test_count, align 4, !tbaa !5
  %1168 = load i32, ptr %380, align 4, !tbaa !5
  %1169 = call ptr @s2n_strerror(i32 noundef %1168, ptr noundef nonnull @.str.3) #12
  %1170 = load i32, ptr %380, align 4, !tbaa !5
  %1171 = call ptr @s2n_strerror_debug(i32 noundef %1170, ptr noundef nonnull @.str.3) #12
  %1172 = load i32, ptr %1154, align 4, !tbaa !5
  %1173 = call ptr @strerror(i32 noundef %1172) #12
  %1174 = load i32, ptr %1154, align 4, !tbaa !5
  %1175 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1166, ptr noundef nonnull %.str.4.sink1090, i32 noundef %1167, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.2, i32 noundef 161, ptr noundef %1169, ptr noundef %1171, ptr noundef %1173, i32 noundef %1174) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1176:                                             ; preds = %1149
  %1177 = load i32, ptr @test_count, align 4, !tbaa !5
  %1178 = add nsw i32 %1177, 1
  store i32 %1178, ptr @test_count, align 4, !tbaa !5
  %1179 = call i32 @s2n_stuffer_wipe(ptr noundef nonnull %381) #12
  %1180 = icmp eq i32 %1179, -1
  br i1 %1180, label %1181, label %1204

1181:                                             ; preds = %1176
  %1182 = tail call ptr @__errno_location() #13
  %1183 = load i32, ptr %1182, align 4, !tbaa !5
  %1184 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1185 = call i32 @s2n_print_stacktrace(ptr noundef %1184) #12
  %1186 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1187 = trunc nuw i8 %1186 to i1
  br i1 %1187, label %1188, label %1192

1188:                                             ; preds = %1181
  %1189 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1190 = call i32 @fileno(ptr noundef %1189) #12
  %1191 = call i32 @isatty(i32 noundef %1190) #12
  %.not667 = icmp eq i32 %1191, 0
  br i1 %.not667, label %1192, label %1193

1192:                                             ; preds = %1188, %1181
  br label %1193

1193:                                             ; preds = %1188, %1192
  %.str.4.sink1099 = phi ptr [ @.str.4, %1192 ], [ @.str, %1188 ]
  store i32 %1183, ptr %1182, align 4, !tbaa !5
  %1194 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1195 = load i32, ptr @test_count, align 4, !tbaa !5
  %1196 = load i32, ptr %380, align 4, !tbaa !5
  %1197 = call ptr @s2n_strerror(i32 noundef %1196, ptr noundef nonnull @.str.3) #12
  %1198 = load i32, ptr %380, align 4, !tbaa !5
  %1199 = call ptr @s2n_strerror_debug(i32 noundef %1198, ptr noundef nonnull @.str.3) #12
  %1200 = load i32, ptr %1182, align 4, !tbaa !5
  %1201 = call ptr @strerror(i32 noundef %1200) #12
  %1202 = load i32, ptr %1182, align 4, !tbaa !5
  %1203 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1194, ptr noundef nonnull %.str.4.sink1099, i32 noundef %1195, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.2, i32 noundef 162, ptr noundef %1197, ptr noundef %1199, ptr noundef %1201, i32 noundef %1202) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1204:                                             ; preds = %1176
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %14) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %13) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %12) #12
  %1205 = add nuw nsw i64 %.0526704, 1
  %exitcond.not = icmp eq i64 %1205, 8089
  br i1 %exitcond.not, label %390, label %391, !llvm.loop !65

.preheader697:                                    ; preds = %386, %1211
  %indvars.iv722 = phi i64 [ 0, %386 ], [ %indvars.iv.next723, %1211 ]
  %1206 = getelementptr inbounds [3 x i8], ptr @__const.main.proto_versions, i64 0, i64 %indvars.iv722
  br label %1212

1207:                                             ; preds = %1211
  %1208 = load ptr, ptr %372, align 8, !tbaa !17
  %1209 = load ptr, ptr %1208, align 8, !tbaa !46
  %1210 = getelementptr inbounds i8, ptr %1209, i64 48
  store ptr @s2n_record_alg_aes128_sha256_composite, ptr %1210, align 8, !tbaa !51
  br label %.preheader696

1211:                                             ; preds = %2025
  %indvars.iv.next723 = add nuw nsw i64 %indvars.iv722, 1
  %exitcond725.not = icmp eq i64 %indvars.iv.next723, 3
  br i1 %exitcond725.not, label %1207, label %.preheader697, !llvm.loop !66

1212:                                             ; preds = %.preheader697, %2025
  %indvars.iv718 = phi i64 [ 0, %.preheader697 ], [ %indvars.iv.next719, %2025 ]
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %15) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %15, i8 0, i64 24, i1 false)
  %1213 = load i32, ptr @test_count, align 4, !tbaa !5
  %1214 = add nsw i32 %1213, 1
  store i32 %1214, ptr @test_count, align 4, !tbaa !5
  %1215 = trunc nuw nsw i64 %indvars.iv718 to i32
  %1216 = call i32 @s2n_blob_init(ptr noundef nonnull %15, ptr noundef nonnull %3, i32 noundef %1215) #12
  %1217 = icmp eq i32 %1216, -1
  br i1 %1217, label %1218, label %1241

1218:                                             ; preds = %1212
  %1219 = tail call ptr @__errno_location() #13
  %1220 = load i32, ptr %1219, align 4, !tbaa !5
  %1221 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1222 = call i32 @s2n_print_stacktrace(ptr noundef %1221) #12
  %1223 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1224 = trunc nuw i8 %1223 to i1
  br i1 %1224, label %1225, label %1229

1225:                                             ; preds = %1218
  %1226 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1227 = call i32 @fileno(ptr noundef %1226) #12
  %1228 = call i32 @isatty(i32 noundef %1227) #12
  %.not650 = icmp eq i32 %1228, 0
  br i1 %.not650, label %1229, label %1230

1229:                                             ; preds = %1225, %1218
  br label %1230

1230:                                             ; preds = %1225, %1229
  %.str.4.sink1108 = phi ptr [ @.str.4, %1229 ], [ @.str, %1225 ]
  store i32 %1220, ptr %1219, align 4, !tbaa !5
  %1231 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1232 = load i32, ptr @test_count, align 4, !tbaa !5
  %1233 = load i32, ptr %380, align 4, !tbaa !5
  %1234 = call ptr @s2n_strerror(i32 noundef %1233, ptr noundef nonnull @.str.3) #12
  %1235 = load i32, ptr %380, align 4, !tbaa !5
  %1236 = call ptr @s2n_strerror_debug(i32 noundef %1235, ptr noundef nonnull @.str.3) #12
  %1237 = load i32, ptr %1219, align 4, !tbaa !5
  %1238 = call ptr @strerror(i32 noundef %1237) #12
  %1239 = load i32, ptr %1219, align 4, !tbaa !5
  %1240 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1231, ptr noundef nonnull %.str.4.sink1108, i32 noundef %1232, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.2, i32 noundef 171, ptr noundef %1234, ptr noundef %1236, ptr noundef %1238, i32 noundef %1239) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1241:                                             ; preds = %1212
  %1242 = load i32, ptr @test_count, align 4, !tbaa !5
  %1243 = add nsw i32 %1242, 1
  store i32 %1243, ptr @test_count, align 4, !tbaa !5
  %1244 = call i32 @s2n_connection_wipe(ptr noundef nonnull %316) #12
  %1245 = icmp eq i32 %1244, -1
  br i1 %1245, label %1246, label %1269

1246:                                             ; preds = %1241
  %1247 = tail call ptr @__errno_location() #13
  %1248 = load i32, ptr %1247, align 4, !tbaa !5
  %1249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1250 = call i32 @s2n_print_stacktrace(ptr noundef %1249) #12
  %1251 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1252 = trunc nuw i8 %1251 to i1
  br i1 %1252, label %1253, label %1257

1253:                                             ; preds = %1246
  %1254 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1255 = call i32 @fileno(ptr noundef %1254) #12
  %1256 = call i32 @isatty(i32 noundef %1255) #12
  %.not649 = icmp eq i32 %1256, 0
  br i1 %.not649, label %1257, label %1258

1257:                                             ; preds = %1253, %1246
  br label %1258

1258:                                             ; preds = %1253, %1257
  %.str.4.sink1117 = phi ptr [ @.str.4, %1257 ], [ @.str, %1253 ]
  store i32 %1248, ptr %1247, align 4, !tbaa !5
  %1259 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1260 = load i32, ptr @test_count, align 4, !tbaa !5
  %1261 = load i32, ptr %380, align 4, !tbaa !5
  %1262 = call ptr @s2n_strerror(i32 noundef %1261, ptr noundef nonnull @.str.3) #12
  %1263 = load i32, ptr %380, align 4, !tbaa !5
  %1264 = call ptr @s2n_strerror_debug(i32 noundef %1263, ptr noundef nonnull @.str.3) #12
  %1265 = load i32, ptr %1247, align 4, !tbaa !5
  %1266 = call ptr @strerror(i32 noundef %1265) #12
  %1267 = load i32, ptr %1247, align 4, !tbaa !5
  %1268 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1259, ptr noundef nonnull %.str.4.sink1117, i32 noundef %1260, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.2, i32 noundef 174, ptr noundef %1262, ptr noundef %1264, ptr noundef %1266, i32 noundef %1267) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1269:                                             ; preds = %1241
  %1270 = load i32, ptr @test_count, align 4, !tbaa !5
  %1271 = add nsw i32 %1270, 1
  store i32 %1271, ptr @test_count, align 4, !tbaa !5
  %1272 = load ptr, ptr %372, align 8, !tbaa !17
  %1273 = load ptr, ptr %1272, align 8, !tbaa !46
  %1274 = getelementptr inbounds i8, ptr %1273, i64 48
  %1275 = load ptr, ptr %1274, align 8, !tbaa !51
  %1276 = load ptr, ptr %1275, align 8, !tbaa !55
  %1277 = getelementptr inbounds i8, ptr %1276, i64 80
  %1278 = load ptr, ptr %1277, align 8, !tbaa !57
  %1279 = getelementptr inbounds i8, ptr %1272, i64 16
  %1280 = call i32 %1278(ptr noundef nonnull %1279, ptr noundef nonnull %9) #12
  %1281 = call zeroext i1 @s2n_result_is_ok(i32 %1280)
  br i1 %1281, label %1305, label %1282

1282:                                             ; preds = %1269
  %1283 = tail call ptr @__errno_location() #13
  %1284 = load i32, ptr %1283, align 4, !tbaa !5
  %1285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1286 = call i32 @s2n_print_stacktrace(ptr noundef %1285) #12
  %1287 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1288 = trunc nuw i8 %1287 to i1
  br i1 %1288, label %1289, label %1293

1289:                                             ; preds = %1282
  %1290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1291 = call i32 @fileno(ptr noundef %1290) #12
  %1292 = call i32 @isatty(i32 noundef %1291) #12
  %.not620 = icmp eq i32 %1292, 0
  br i1 %.not620, label %1293, label %1294

1293:                                             ; preds = %1289, %1282
  br label %1294

1294:                                             ; preds = %1289, %1293
  %.str.4.sink1126 = phi ptr [ @.str.4, %1293 ], [ @.str, %1289 ]
  store i32 %1284, ptr %1283, align 4, !tbaa !5
  %1295 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1296 = load i32, ptr @test_count, align 4, !tbaa !5
  %1297 = load i32, ptr %380, align 4, !tbaa !5
  %1298 = call ptr @s2n_strerror(i32 noundef %1297, ptr noundef nonnull @.str.3) #12
  %1299 = load i32, ptr %380, align 4, !tbaa !5
  %1300 = call ptr @s2n_strerror_debug(i32 noundef %1299, ptr noundef nonnull @.str.3) #12
  %1301 = load i32, ptr %1283, align 4, !tbaa !5
  %1302 = call ptr @strerror(i32 noundef %1301) #12
  %1303 = load i32, ptr %1283, align 4, !tbaa !5
  %1304 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1295, ptr noundef nonnull %.str.4.sink1126, i32 noundef %1296, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.2, i32 noundef 176, ptr noundef %1298, ptr noundef %1300, ptr noundef %1302, i32 noundef %1303) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1305:                                             ; preds = %1269
  %1306 = load i32, ptr @test_count, align 4, !tbaa !5
  %1307 = add nsw i32 %1306, 1
  store i32 %1307, ptr @test_count, align 4, !tbaa !5
  %1308 = load ptr, ptr %372, align 8, !tbaa !17
  %1309 = load ptr, ptr %1308, align 8, !tbaa !46
  %1310 = getelementptr inbounds i8, ptr %1309, i64 48
  %1311 = load ptr, ptr %1310, align 8, !tbaa !51
  %1312 = load ptr, ptr %1311, align 8, !tbaa !55
  %1313 = getelementptr inbounds i8, ptr %1312, i64 72
  %1314 = load ptr, ptr %1313, align 8, !tbaa !58
  %1315 = getelementptr inbounds i8, ptr %1308, i64 8
  %1316 = call i32 %1314(ptr noundef nonnull %1315, ptr noundef nonnull %9) #12
  %1317 = call zeroext i1 @s2n_result_is_ok(i32 %1316)
  br i1 %1317, label %1341, label %1318

1318:                                             ; preds = %1305
  %1319 = tail call ptr @__errno_location() #13
  %1320 = load i32, ptr %1319, align 4, !tbaa !5
  %1321 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1322 = call i32 @s2n_print_stacktrace(ptr noundef %1321) #12
  %1323 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1324 = trunc nuw i8 %1323 to i1
  br i1 %1324, label %1325, label %1329

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

1329:                                             ; preds = %1325, %1318
  br label %1330

1330:                                             ; preds = %1325, %1329
  %.str.4.sink1135 = phi ptr [ @.str.4, %1329 ], [ @.str, %1325 ]
  store i32 %1320, ptr %1319, align 4, !tbaa !5
  %1331 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1332 = load i32, ptr @test_count, align 4, !tbaa !5
  %1333 = load i32, ptr %380, align 4, !tbaa !5
  %1334 = call ptr @s2n_strerror(i32 noundef %1333, ptr noundef nonnull @.str.3) #12
  %1335 = load i32, ptr %380, align 4, !tbaa !5
  %1336 = call ptr @s2n_strerror_debug(i32 noundef %1335, ptr noundef nonnull @.str.3) #12
  %1337 = load i32, ptr %1319, align 4, !tbaa !5
  %1338 = call ptr @strerror(i32 noundef %1337) #12
  %1339 = load i32, ptr %1319, align 4, !tbaa !5
  %1340 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1331, ptr noundef nonnull %.str.4.sink1135, i32 noundef %1332, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.2, i32 noundef 177, ptr noundef %1334, ptr noundef %1336, ptr noundef %1338, i32 noundef %1339) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1341:                                             ; preds = %1305
  %1342 = load i32, ptr @test_count, align 4, !tbaa !5
  %1343 = add nsw i32 %1342, 1
  store i32 %1343, ptr @test_count, align 4, !tbaa !5
  %1344 = load ptr, ptr %372, align 8, !tbaa !17
  %1345 = load ptr, ptr %1344, align 8, !tbaa !46
  %1346 = getelementptr inbounds i8, ptr %1345, i64 48
  %1347 = load ptr, ptr %1346, align 8, !tbaa !51
  %1348 = load ptr, ptr %1347, align 8, !tbaa !55
  %1349 = getelementptr inbounds i8, ptr %1348, i64 32
  %1350 = load ptr, ptr %1349, align 8, !tbaa !59
  %1351 = getelementptr inbounds i8, ptr %1344, i64 16
  %1352 = call i32 %1350(ptr noundef nonnull %1351, ptr noundef nonnull %4, i32 noundef 20) #12
  %1353 = icmp eq i32 %1352, -1
  br i1 %1353, label %1354, label %1377

1354:                                             ; preds = %1341
  %1355 = tail call ptr @__errno_location() #13
  %1356 = load i32, ptr %1355, align 4, !tbaa !5
  %1357 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1358 = call i32 @s2n_print_stacktrace(ptr noundef %1357) #12
  %1359 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1360 = trunc nuw i8 %1359 to i1
  br i1 %1360, label %1361, label %1365

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

1365:                                             ; preds = %1361, %1354
  br label %1366

1366:                                             ; preds = %1361, %1365
  %.str.4.sink1144 = phi ptr [ @.str.4, %1365 ], [ @.str, %1361 ]
  store i32 %1356, ptr %1355, align 4, !tbaa !5
  %1367 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1368 = load i32, ptr @test_count, align 4, !tbaa !5
  %1369 = load i32, ptr %380, align 4, !tbaa !5
  %1370 = call ptr @s2n_strerror(i32 noundef %1369, ptr noundef nonnull @.str.3) #12
  %1371 = load i32, ptr %380, align 4, !tbaa !5
  %1372 = call ptr @s2n_strerror_debug(i32 noundef %1371, ptr noundef nonnull @.str.3) #12
  %1373 = load i32, ptr %1355, align 4, !tbaa !5
  %1374 = call ptr @strerror(i32 noundef %1373) #12
  %1375 = load i32, ptr %1355, align 4, !tbaa !5
  %1376 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1367, ptr noundef nonnull %.str.4.sink1144, i32 noundef %1368, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.2, i32 noundef 178, ptr noundef %1370, ptr noundef %1372, ptr noundef %1374, i32 noundef %1375) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1377:                                             ; preds = %1341
  %1378 = load i32, ptr @test_count, align 4, !tbaa !5
  %1379 = add nsw i32 %1378, 1
  store i32 %1379, ptr @test_count, align 4, !tbaa !5
  %1380 = load ptr, ptr %372, align 8, !tbaa !17
  %1381 = load ptr, ptr %1380, align 8, !tbaa !46
  %1382 = getelementptr inbounds i8, ptr %1381, i64 48
  %1383 = load ptr, ptr %1382, align 8, !tbaa !51
  %1384 = load ptr, ptr %1383, align 8, !tbaa !55
  %1385 = getelementptr inbounds i8, ptr %1384, i64 32
  %1386 = load ptr, ptr %1385, align 8, !tbaa !59
  %1387 = getelementptr inbounds i8, ptr %1380, i64 8
  %1388 = call i32 %1386(ptr noundef nonnull %1387, ptr noundef nonnull %4, i32 noundef 20) #12
  %1389 = icmp eq i32 %1388, -1
  br i1 %1389, label %1390, label %1413

1390:                                             ; preds = %1377
  %1391 = tail call ptr @__errno_location() #13
  %1392 = load i32, ptr %1391, align 4, !tbaa !5
  %1393 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1394 = call i32 @s2n_print_stacktrace(ptr noundef %1393) #12
  %1395 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1396 = trunc nuw i8 %1395 to i1
  br i1 %1396, label %1397, label %1401

1397:                                             ; preds = %1390
  %1398 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1399 = call i32 @fileno(ptr noundef %1398) #12
  %1400 = call i32 @isatty(i32 noundef %1399) #12
  %.not647 = icmp eq i32 %1400, 0
  br i1 %.not647, label %1401, label %1402

1401:                                             ; preds = %1397, %1390
  br label %1402

1402:                                             ; preds = %1397, %1401
  %.str.4.sink1153 = phi ptr [ @.str.4, %1401 ], [ @.str, %1397 ]
  store i32 %1392, ptr %1391, align 4, !tbaa !5
  %1403 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1404 = load i32, ptr @test_count, align 4, !tbaa !5
  %1405 = load i32, ptr %380, align 4, !tbaa !5
  %1406 = call ptr @s2n_strerror(i32 noundef %1405, ptr noundef nonnull @.str.3) #12
  %1407 = load i32, ptr %380, align 4, !tbaa !5
  %1408 = call ptr @s2n_strerror_debug(i32 noundef %1407, ptr noundef nonnull @.str.3) #12
  %1409 = load i32, ptr %1391, align 4, !tbaa !5
  %1410 = call ptr @strerror(i32 noundef %1409) #12
  %1411 = load i32, ptr %1391, align 4, !tbaa !5
  %1412 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1403, ptr noundef nonnull %.str.4.sink1153, i32 noundef %1404, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.2, i32 noundef 179, ptr noundef %1406, ptr noundef %1408, ptr noundef %1410, i32 noundef %1411) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1413:                                             ; preds = %1377
  %1414 = load i32, ptr @test_count, align 4, !tbaa !5
  %1415 = add nsw i32 %1414, 1
  store i32 %1415, ptr @test_count, align 4, !tbaa !5
  %1416 = call i32 @s2n_stuffer_wipe(ptr noundef nonnull %378) #12
  %1417 = icmp eq i32 %1416, -1
  br i1 %1417, label %1418, label %1441

1418:                                             ; preds = %1413
  %1419 = tail call ptr @__errno_location() #13
  %1420 = load i32, ptr %1419, align 4, !tbaa !5
  %1421 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1422 = call i32 @s2n_print_stacktrace(ptr noundef %1421) #12
  %1423 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1424 = trunc nuw i8 %1423 to i1
  br i1 %1424, label %1425, label %1429

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

1429:                                             ; preds = %1425, %1418
  br label %1430

1430:                                             ; preds = %1425, %1429
  %.str.4.sink1162 = phi ptr [ @.str.4, %1429 ], [ @.str, %1425 ]
  store i32 %1420, ptr %1419, align 4, !tbaa !5
  %1431 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1432 = load i32, ptr @test_count, align 4, !tbaa !5
  %1433 = load i32, ptr %380, align 4, !tbaa !5
  %1434 = call ptr @s2n_strerror(i32 noundef %1433, ptr noundef nonnull @.str.3) #12
  %1435 = load i32, ptr %380, align 4, !tbaa !5
  %1436 = call ptr @s2n_strerror_debug(i32 noundef %1435, ptr noundef nonnull @.str.3) #12
  %1437 = load i32, ptr %1419, align 4, !tbaa !5
  %1438 = call ptr @strerror(i32 noundef %1437) #12
  %1439 = load i32, ptr %1419, align 4, !tbaa !5
  %1440 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1431, ptr noundef nonnull %.str.4.sink1162, i32 noundef %1432, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.2, i32 noundef 181, ptr noundef %1434, ptr noundef %1436, ptr noundef %1438, i32 noundef %1439) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1441:                                             ; preds = %1413
  %1442 = load i8, ptr %1206, align 1, !tbaa !59
  store i8 %1442, ptr %379, align 4, !tbaa !60
  %1443 = icmp ugt i8 %1442, 31
  %.690 = select i1 %1443, i32 16, i32 0
  %1444 = call i32 @s2n_record_write(ptr noundef nonnull %316, i8 noundef zeroext 23, ptr noundef nonnull %15) #12
  %.not622 = icmp eq i64 %indvars.iv718, 8088
  %1445 = load i32, ptr @test_count, align 4, !tbaa !5
  %1446 = add nsw i32 %1445, 1
  store i32 %1446, ptr @test_count, align 4, !tbaa !5
  br i1 %.not622, label %1472, label %1447

1447:                                             ; preds = %1441
  %1448 = call zeroext i1 @s2n_result_is_ok(i32 %1444)
  br i1 %1448, label %1554, label %1449

1449:                                             ; preds = %1447
  %1450 = tail call ptr @__errno_location() #13
  %1451 = load i32, ptr %1450, align 4, !tbaa !5
  %1452 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1453 = call i32 @s2n_print_stacktrace(ptr noundef %1452) #12
  %1454 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1455 = trunc nuw i8 %1454 to i1
  br i1 %1455, label %1456, label %1460

1456:                                             ; preds = %1449
  %1457 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1458 = call i32 @fileno(ptr noundef %1457) #12
  %1459 = call i32 @isatty(i32 noundef %1458) #12
  %.not626 = icmp eq i32 %1459, 0
  br i1 %.not626, label %1460, label %1461

1460:                                             ; preds = %1456, %1449
  br label %1461

1461:                                             ; preds = %1456, %1460
  %.str.4.sink1171 = phi ptr [ @.str.4, %1460 ], [ @.str, %1456 ]
  store i32 %1451, ptr %1450, align 4, !tbaa !5
  %1462 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1463 = load i32, ptr @test_count, align 4, !tbaa !5
  %1464 = load i32, ptr %380, align 4, !tbaa !5
  %1465 = call ptr @s2n_strerror(i32 noundef %1464, ptr noundef nonnull @.str.3) #12
  %1466 = load i32, ptr %380, align 4, !tbaa !5
  %1467 = call ptr @s2n_strerror_debug(i32 noundef %1466, ptr noundef nonnull @.str.3) #12
  %1468 = load i32, ptr %1450, align 4, !tbaa !5
  %1469 = call ptr @strerror(i32 noundef %1468) #12
  %1470 = load i32, ptr %1450, align 4, !tbaa !5
  %1471 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1462, ptr noundef nonnull %.str.4.sink1171, i32 noundef %1463, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.2, i32 noundef 193, ptr noundef %1465, ptr noundef %1467, ptr noundef %1469, i32 noundef %1470) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1472:                                             ; preds = %1441
  %1473 = call zeroext i1 @s2n_result_is_error(i32 %1444)
  br i1 %1473, label %1497, label %1474

1474:                                             ; preds = %1472
  %1475 = tail call ptr @__errno_location() #13
  %1476 = load i32, ptr %1475, align 4, !tbaa !5
  %1477 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1478 = call i32 @s2n_print_stacktrace(ptr noundef %1477) #12
  %1479 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1480 = trunc nuw i8 %1479 to i1
  br i1 %1480, label %1481, label %1485

1481:                                             ; preds = %1474
  %1482 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1483 = call i32 @fileno(ptr noundef %1482) #12
  %1484 = call i32 @isatty(i32 noundef %1483) #12
  %.not623 = icmp eq i32 %1484, 0
  br i1 %.not623, label %1485, label %1486

1485:                                             ; preds = %1481, %1474
  br label %1486

1486:                                             ; preds = %1481, %1485
  %.str.4.sink1180 = phi ptr [ @.str.4, %1485 ], [ @.str, %1481 ]
  store i32 %1476, ptr %1475, align 4, !tbaa !5
  %1487 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1488 = load i32, ptr @test_count, align 4, !tbaa !5
  %1489 = load i32, ptr %380, align 4, !tbaa !5
  %1490 = call ptr @s2n_strerror(i32 noundef %1489, ptr noundef nonnull @.str.3) #12
  %1491 = load i32, ptr %380, align 4, !tbaa !5
  %1492 = call ptr @s2n_strerror_debug(i32 noundef %1491, ptr noundef nonnull @.str.3) #12
  %1493 = load i32, ptr %1475, align 4, !tbaa !5
  %1494 = call ptr @strerror(i32 noundef %1493) #12
  %1495 = load i32, ptr %1475, align 4, !tbaa !5
  %1496 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1487, ptr noundef nonnull %.str.4.sink1180, i32 noundef %1488, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.2, i32 noundef 196, ptr noundef %1490, ptr noundef %1492, ptr noundef %1494, i32 noundef %1495) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1497:                                             ; preds = %1472
  %1498 = load i32, ptr @test_count, align 4, !tbaa !5
  %1499 = add nsw i32 %1498, 1
  store i32 %1499, ptr @test_count, align 4, !tbaa !5
  %1500 = load i32, ptr %380, align 4, !tbaa !5
  %1501 = icmp eq i32 %1500, 335544390
  br i1 %1501, label %1525, label %1502

1502:                                             ; preds = %1497
  %1503 = tail call ptr @__errno_location() #13
  %1504 = load i32, ptr %1503, align 4, !tbaa !5
  %1505 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1506 = call i32 @s2n_print_stacktrace(ptr noundef %1505) #12
  %1507 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1508 = trunc nuw i8 %1507 to i1
  br i1 %1508, label %1509, label %1513

1509:                                             ; preds = %1502
  %1510 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1511 = call i32 @fileno(ptr noundef %1510) #12
  %1512 = call i32 @isatty(i32 noundef %1511) #12
  %.not624 = icmp eq i32 %1512, 0
  br i1 %.not624, label %1513, label %1514

1513:                                             ; preds = %1509, %1502
  br label %1514

1514:                                             ; preds = %1509, %1513
  %.str.4.sink1189 = phi ptr [ @.str.4, %1513 ], [ @.str, %1509 ]
  store i32 %1504, ptr %1503, align 4, !tbaa !5
  %1515 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1516 = load i32, ptr @test_count, align 4, !tbaa !5
  %1517 = load i32, ptr %380, align 4, !tbaa !5
  %1518 = call ptr @s2n_strerror(i32 noundef %1517, ptr noundef nonnull @.str.3) #12
  %1519 = load i32, ptr %380, align 4, !tbaa !5
  %1520 = call ptr @s2n_strerror_debug(i32 noundef %1519, ptr noundef nonnull @.str.3) #12
  %1521 = load i32, ptr %1503, align 4, !tbaa !5
  %1522 = call ptr @strerror(i32 noundef %1521) #12
  %1523 = load i32, ptr %1503, align 4, !tbaa !5
  %1524 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1515, ptr noundef nonnull %.str.4.sink1189, i32 noundef %1516, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.2, i32 noundef 196, ptr noundef %1518, ptr noundef %1520, ptr noundef %1522, i32 noundef %1523) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1525:                                             ; preds = %1497
  %1526 = add nsw i32 %1498, 2
  store i32 %1526, ptr @test_count, align 4, !tbaa !5
  %1527 = call ptr @s2n_strerror_debug(i32 noundef 335544390, ptr noundef nonnull @.str.3) #12
  %1528 = icmp eq ptr %1527, null
  br i1 %1528, label %1529, label %1552

1529:                                             ; preds = %1525
  %1530 = tail call ptr @__errno_location() #13
  %1531 = load i32, ptr %1530, align 4, !tbaa !5
  %1532 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1533 = call i32 @s2n_print_stacktrace(ptr noundef %1532) #12
  %1534 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1535 = trunc nuw i8 %1534 to i1
  br i1 %1535, label %1536, label %1540

1536:                                             ; preds = %1529
  %1537 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1538 = call i32 @fileno(ptr noundef %1537) #12
  %1539 = call i32 @isatty(i32 noundef %1538) #12
  %.not625 = icmp eq i32 %1539, 0
  br i1 %.not625, label %1540, label %1541

1540:                                             ; preds = %1536, %1529
  br label %1541

1541:                                             ; preds = %1536, %1540
  %.str.4.sink1198 = phi ptr [ @.str.4, %1540 ], [ @.str, %1536 ]
  store i32 %1531, ptr %1530, align 4, !tbaa !5
  %1542 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1543 = load i32, ptr @test_count, align 4, !tbaa !5
  %1544 = load i32, ptr %380, align 4, !tbaa !5
  %1545 = call ptr @s2n_strerror(i32 noundef %1544, ptr noundef nonnull @.str.3) #12
  %1546 = load i32, ptr %380, align 4, !tbaa !5
  %1547 = call ptr @s2n_strerror_debug(i32 noundef %1546, ptr noundef nonnull @.str.3) #12
  %1548 = load i32, ptr %1530, align 4, !tbaa !5
  %1549 = call ptr @strerror(i32 noundef %1548) #12
  %1550 = load i32, ptr %1530, align 4, !tbaa !5
  %1551 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1542, ptr noundef nonnull %.str.4.sink1198, i32 noundef %1543, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.2, i32 noundef 196, ptr noundef %1545, ptr noundef %1547, ptr noundef %1549, i32 noundef %1550) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1552:                                             ; preds = %1525
  store i32 0, ptr %380, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  %1553 = tail call ptr @__errno_location() #13
  store i32 0, ptr %1553, align 4, !tbaa !5
  br label %1554

1554:                                             ; preds = %1447, %1552
  %.0532 = phi i32 [ 8087, %1552 ], [ %1215, %1447 ]
  %1555 = add nuw nsw i32 %.0532, 21
  %1556 = add nuw nsw i32 %1555, %.690
  %1557 = and i32 %1555, 15
  %.not627 = icmp eq i32 %1557, 0
  %reass.sub713 = sub nuw nsw i32 %1556, %1557
  %1558 = add i32 %reass.sub713, 16
  %.0534 = select i1 %.not627, i32 %1556, i32 %1558
  %1559 = load i32, ptr @test_count, align 4, !tbaa !5
  %1560 = add nsw i32 %1559, 1
  store i32 %1560, ptr @test_count, align 4, !tbaa !5
  %1561 = load ptr, ptr %378, align 8, !tbaa !61
  %1562 = load i8, ptr %1561, align 1, !tbaa !59
  %1563 = icmp eq i8 %1562, 23
  br i1 %1563, label %1587, label %1564

1564:                                             ; preds = %1554
  %1565 = tail call ptr @__errno_location() #13
  %1566 = load i32, ptr %1565, align 4, !tbaa !5
  %1567 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1568 = call i32 @s2n_print_stacktrace(ptr noundef %1567) #12
  %1569 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1570 = trunc nuw i8 %1569 to i1
  br i1 %1570, label %1571, label %1575

1571:                                             ; preds = %1564
  %1572 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1573 = call i32 @fileno(ptr noundef %1572) #12
  %1574 = call i32 @isatty(i32 noundef %1573) #12
  %.not629 = icmp eq i32 %1574, 0
  br i1 %.not629, label %1575, label %1576

1575:                                             ; preds = %1571, %1564
  br label %1576

1576:                                             ; preds = %1571, %1575
  %.str.4.sink1207 = phi ptr [ @.str.4, %1575 ], [ @.str, %1571 ]
  store i32 %1566, ptr %1565, align 4, !tbaa !5
  %1577 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1578 = load i32, ptr @test_count, align 4, !tbaa !5
  %1579 = load i32, ptr %380, align 4, !tbaa !5
  %1580 = call ptr @s2n_strerror(i32 noundef %1579, ptr noundef nonnull @.str.3) #12
  %1581 = load i32, ptr %380, align 4, !tbaa !5
  %1582 = call ptr @s2n_strerror_debug(i32 noundef %1581, ptr noundef nonnull @.str.3) #12
  %1583 = load i32, ptr %1565, align 4, !tbaa !5
  %1584 = call ptr @strerror(i32 noundef %1583) #12
  %1585 = load i32, ptr %1565, align 4, !tbaa !5
  %1586 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1577, ptr noundef nonnull %.str.4.sink1207, i32 noundef %1578, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.2, i32 noundef 204, ptr noundef %1580, ptr noundef %1582, ptr noundef %1584, i32 noundef %1585) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1587:                                             ; preds = %1554
  %1588 = getelementptr inbounds i8, ptr %1561, i64 1
  %1589 = load i8, ptr %1588, align 1, !tbaa !59
  %1590 = mul i8 %1589, 10
  %1591 = getelementptr inbounds i8, ptr %1561, i64 2
  %1592 = load i8, ptr %1591, align 1, !tbaa !59
  %1593 = add i8 %1590, %1592
  %1594 = add nsw i32 %1559, 2
  store i32 %1594, ptr @test_count, align 4, !tbaa !5
  %1595 = load i8, ptr %379, align 4, !tbaa !60
  %1596 = icmp eq i8 %1593, %1595
  br i1 %1596, label %1620, label %1597

1597:                                             ; preds = %1587
  %1598 = tail call ptr @__errno_location() #13
  %1599 = load i32, ptr %1598, align 4, !tbaa !5
  %1600 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1601 = call i32 @s2n_print_stacktrace(ptr noundef %1600) #12
  %1602 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1603 = trunc nuw i8 %1602 to i1
  br i1 %1603, label %1604, label %1608

1604:                                             ; preds = %1597
  %1605 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1606 = call i32 @fileno(ptr noundef %1605) #12
  %1607 = call i32 @isatty(i32 noundef %1606) #12
  %.not630 = icmp eq i32 %1607, 0
  br i1 %.not630, label %1608, label %1609

1608:                                             ; preds = %1604, %1597
  br label %1609

1609:                                             ; preds = %1604, %1608
  %.str.4.sink1216 = phi ptr [ @.str.4, %1608 ], [ @.str, %1604 ]
  store i32 %1599, ptr %1598, align 4, !tbaa !5
  %1610 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1611 = load i32, ptr @test_count, align 4, !tbaa !5
  %1612 = load i32, ptr %380, align 4, !tbaa !5
  %1613 = call ptr @s2n_strerror(i32 noundef %1612, ptr noundef nonnull @.str.3) #12
  %1614 = load i32, ptr %380, align 4, !tbaa !5
  %1615 = call ptr @s2n_strerror_debug(i32 noundef %1614, ptr noundef nonnull @.str.3) #12
  %1616 = load i32, ptr %1598, align 4, !tbaa !5
  %1617 = call ptr @strerror(i32 noundef %1616) #12
  %1618 = load i32, ptr %1598, align 4, !tbaa !5
  %1619 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1610, ptr noundef nonnull %.str.4.sink1216, i32 noundef %1611, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.2, i32 noundef 206, ptr noundef %1613, ptr noundef %1615, ptr noundef %1617, i32 noundef %1618) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1620:                                             ; preds = %1587
  %1621 = add nsw i32 %1559, 3
  store i32 %1621, ptr @test_count, align 4, !tbaa !5
  %1622 = getelementptr inbounds i8, ptr %1561, i64 3
  %1623 = load i8, ptr %1622, align 1, !tbaa !59
  %1624 = lshr i32 %.0534, 8
  %1625 = trunc i32 %1624 to i8
  %1626 = icmp eq i8 %1623, %1625
  br i1 %1626, label %1650, label %1627

1627:                                             ; preds = %1620
  %1628 = tail call ptr @__errno_location() #13
  %1629 = load i32, ptr %1628, align 4, !tbaa !5
  %1630 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1631 = call i32 @s2n_print_stacktrace(ptr noundef %1630) #12
  %1632 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1633 = trunc nuw i8 %1632 to i1
  br i1 %1633, label %1634, label %1638

1634:                                             ; preds = %1627
  %1635 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1636 = call i32 @fileno(ptr noundef %1635) #12
  %1637 = call i32 @isatty(i32 noundef %1636) #12
  %.not631 = icmp eq i32 %1637, 0
  br i1 %.not631, label %1638, label %1639

1638:                                             ; preds = %1634, %1627
  br label %1639

1639:                                             ; preds = %1634, %1638
  %.str.4.sink1225 = phi ptr [ @.str.4, %1638 ], [ @.str, %1634 ]
  store i32 %1629, ptr %1628, align 4, !tbaa !5
  %1640 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1641 = load i32, ptr @test_count, align 4, !tbaa !5
  %1642 = load i32, ptr %380, align 4, !tbaa !5
  %1643 = call ptr @s2n_strerror(i32 noundef %1642, ptr noundef nonnull @.str.3) #12
  %1644 = load i32, ptr %380, align 4, !tbaa !5
  %1645 = call ptr @s2n_strerror_debug(i32 noundef %1644, ptr noundef nonnull @.str.3) #12
  %1646 = load i32, ptr %1628, align 4, !tbaa !5
  %1647 = call ptr @strerror(i32 noundef %1646) #12
  %1648 = load i32, ptr %1628, align 4, !tbaa !5
  %1649 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1640, ptr noundef nonnull %.str.4.sink1225, i32 noundef %1641, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.2, i32 noundef 207, ptr noundef %1643, ptr noundef %1645, ptr noundef %1647, i32 noundef %1648) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1650:                                             ; preds = %1620
  %1651 = add nsw i32 %1559, 4
  store i32 %1651, ptr @test_count, align 4, !tbaa !5
  %1652 = getelementptr inbounds i8, ptr %1561, i64 4
  %1653 = load i8, ptr %1652, align 1, !tbaa !59
  %1654 = trunc i32 %.0534 to i8
  %1655 = icmp eq i8 %1653, %1654
  br i1 %1655, label %1679, label %1656

1656:                                             ; preds = %1650
  %1657 = tail call ptr @__errno_location() #13
  %1658 = load i32, ptr %1657, align 4, !tbaa !5
  %1659 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1660 = call i32 @s2n_print_stacktrace(ptr noundef %1659) #12
  %1661 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1662 = trunc nuw i8 %1661 to i1
  br i1 %1662, label %1663, label %1667

1663:                                             ; preds = %1656
  %1664 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1665 = call i32 @fileno(ptr noundef %1664) #12
  %1666 = call i32 @isatty(i32 noundef %1665) #12
  %.not632 = icmp eq i32 %1666, 0
  br i1 %.not632, label %1667, label %1668

1667:                                             ; preds = %1663, %1656
  br label %1668

1668:                                             ; preds = %1663, %1667
  %.str.4.sink1234 = phi ptr [ @.str.4, %1667 ], [ @.str, %1663 ]
  store i32 %1658, ptr %1657, align 4, !tbaa !5
  %1669 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1670 = load i32, ptr @test_count, align 4, !tbaa !5
  %1671 = load i32, ptr %380, align 4, !tbaa !5
  %1672 = call ptr @s2n_strerror(i32 noundef %1671, ptr noundef nonnull @.str.3) #12
  %1673 = load i32, ptr %380, align 4, !tbaa !5
  %1674 = call ptr @s2n_strerror_debug(i32 noundef %1673, ptr noundef nonnull @.str.3) #12
  %1675 = load i32, ptr %1657, align 4, !tbaa !5
  %1676 = call ptr @strerror(i32 noundef %1675) #12
  %1677 = load i32, ptr %1657, align 4, !tbaa !5
  %1678 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1669, ptr noundef nonnull %.str.4.sink1234, i32 noundef %1670, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.2, i32 noundef 208, ptr noundef %1672, ptr noundef %1674, ptr noundef %1676, i32 noundef %1677) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1679:                                             ; preds = %1650
  %1680 = icmp ugt i32 %.0532, 10
  br i1 %1680, label %1681, label %1711

1681:                                             ; preds = %1679
  %1682 = add nsw i32 %1559, 5
  store i32 %1682, ptr @test_count, align 4, !tbaa !5
  %1683 = getelementptr inbounds i8, ptr %1561, i64 5
  %1684 = zext nneg i32 %.690 to i64
  %1685 = getelementptr inbounds i8, ptr %1683, i64 %1684
  %1686 = zext nneg i32 %.0532 to i64
  %bcmp633 = call i32 @bcmp(ptr nonnull %1685, ptr nonnull %3, i64 %1686)
  %1687 = icmp eq i32 %bcmp633, 0
  br i1 %1687, label %1688, label %1711

1688:                                             ; preds = %1681
  %1689 = tail call ptr @__errno_location() #13
  %1690 = load i32, ptr %1689, align 4, !tbaa !5
  %1691 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1692 = call i32 @s2n_print_stacktrace(ptr noundef %1691) #12
  %1693 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1694 = trunc nuw i8 %1693 to i1
  br i1 %1694, label %1695, label %1699

1695:                                             ; preds = %1688
  %1696 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1697 = call i32 @fileno(ptr noundef %1696) #12
  %1698 = call i32 @isatty(i32 noundef %1697) #12
  %.not645 = icmp eq i32 %1698, 0
  br i1 %.not645, label %1699, label %1700

1699:                                             ; preds = %1695, %1688
  br label %1700

1700:                                             ; preds = %1695, %1699
  %.str.4.sink1243 = phi ptr [ @.str.4, %1699 ], [ @.str, %1695 ]
  store i32 %1690, ptr %1689, align 4, !tbaa !5
  %1701 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1702 = load i32, ptr @test_count, align 4, !tbaa !5
  %1703 = load i32, ptr %380, align 4, !tbaa !5
  %1704 = call ptr @s2n_strerror(i32 noundef %1703, ptr noundef nonnull @.str.3) #12
  %1705 = load i32, ptr %380, align 4, !tbaa !5
  %1706 = call ptr @s2n_strerror_debug(i32 noundef %1705, ptr noundef nonnull @.str.3) #12
  %1707 = load i32, ptr %1689, align 4, !tbaa !5
  %1708 = call ptr @strerror(i32 noundef %1707) #12
  %1709 = load i32, ptr %1689, align 4, !tbaa !5
  %1710 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1701, ptr noundef nonnull %.str.4.sink1243, i32 noundef %1702, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.2, i32 noundef 212, ptr noundef %1704, ptr noundef %1706, ptr noundef %1708, i32 noundef %1709) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1711:                                             ; preds = %1681, %1679
  %1712 = phi i32 [ %1682, %1681 ], [ %1651, %1679 ]
  br i1 %1443, label %1713, label %1743

1713:                                             ; preds = %1711
  %1714 = getelementptr inbounds i8, ptr %1561, i64 5
  %1715 = add nsw i32 %1712, 1
  store i32 %1715, ptr @test_count, align 4, !tbaa !5
  %1716 = call i32 @ensure_explicit_iv_is_unique(ptr noundef nonnull %11, i64 noundef %indvars.iv718, ptr noundef nonnull %1714, i16 noundef zeroext 16)
  %1717 = icmp eq i32 %1716, -1
  br i1 %1717, label %1718, label %1741

1718:                                             ; preds = %1713
  %1719 = tail call ptr @__errno_location() #13
  %1720 = load i32, ptr %1719, align 4, !tbaa !5
  %1721 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1722 = call i32 @s2n_print_stacktrace(ptr noundef %1721) #12
  %1723 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1724 = trunc nuw i8 %1723 to i1
  br i1 %1724, label %1725, label %1729

1725:                                             ; preds = %1718
  %1726 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1727 = call i32 @fileno(ptr noundef %1726) #12
  %1728 = call i32 @isatty(i32 noundef %1727) #12
  %.not644 = icmp eq i32 %1728, 0
  br i1 %.not644, label %1729, label %1730

1729:                                             ; preds = %1725, %1718
  br label %1730

1730:                                             ; preds = %1725, %1729
  %.str.4.sink1252 = phi ptr [ @.str.4, %1729 ], [ @.str, %1725 ]
  store i32 %1720, ptr %1719, align 4, !tbaa !5
  %1731 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1732 = load i32, ptr @test_count, align 4, !tbaa !5
  %1733 = load i32, ptr %380, align 4, !tbaa !5
  %1734 = call ptr @s2n_strerror(i32 noundef %1733, ptr noundef nonnull @.str.3) #12
  %1735 = load i32, ptr %380, align 4, !tbaa !5
  %1736 = call ptr @s2n_strerror_debug(i32 noundef %1735, ptr noundef nonnull @.str.3) #12
  %1737 = load i32, ptr %1719, align 4, !tbaa !5
  %1738 = call ptr @strerror(i32 noundef %1737) #12
  %1739 = load i32, ptr %1719, align 4, !tbaa !5
  %1740 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1731, ptr noundef nonnull %.str.4.sink1252, i32 noundef %1732, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.2, i32 noundef 218, ptr noundef %1734, ptr noundef %1736, ptr noundef %1738, i32 noundef %1739) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1741:                                             ; preds = %1713
  %1742 = getelementptr inbounds [8089 x [16 x i8]], ptr %11, i64 0, i64 %indvars.iv718
  call void @llvm.memmove.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %1742, ptr noundef nonnull align 1 dereferenceable(16) %1714, i64 16, i1 false)
  %.pre742 = load i32, ptr @test_count, align 4, !tbaa !5
  br label %1743

1743:                                             ; preds = %1711, %1741
  %1744 = phi i32 [ %1712, %1711 ], [ %.pre742, %1741 ]
  %1745 = add nsw i32 %1744, 1
  store i32 %1745, ptr @test_count, align 4, !tbaa !5
  %1746 = call i32 @s2n_stuffer_wipe(ptr noundef nonnull %381) #12
  %1747 = icmp eq i32 %1746, -1
  br i1 %1747, label %1748, label %1771

1748:                                             ; preds = %1743
  %1749 = tail call ptr @__errno_location() #13
  %1750 = load i32, ptr %1749, align 4, !tbaa !5
  %1751 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1752 = call i32 @s2n_print_stacktrace(ptr noundef %1751) #12
  %1753 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1754 = trunc nuw i8 %1753 to i1
  br i1 %1754, label %1755, label %1759

1755:                                             ; preds = %1748
  %1756 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1757 = call i32 @fileno(ptr noundef %1756) #12
  %1758 = call i32 @isatty(i32 noundef %1757) #12
  %.not643 = icmp eq i32 %1758, 0
  br i1 %.not643, label %1759, label %1760

1759:                                             ; preds = %1755, %1748
  br label %1760

1760:                                             ; preds = %1755, %1759
  %.str.4.sink1261 = phi ptr [ @.str.4, %1759 ], [ @.str, %1755 ]
  store i32 %1750, ptr %1749, align 4, !tbaa !5
  %1761 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1762 = load i32, ptr @test_count, align 4, !tbaa !5
  %1763 = load i32, ptr %380, align 4, !tbaa !5
  %1764 = call ptr @s2n_strerror(i32 noundef %1763, ptr noundef nonnull @.str.3) #12
  %1765 = load i32, ptr %380, align 4, !tbaa !5
  %1766 = call ptr @s2n_strerror_debug(i32 noundef %1765, ptr noundef nonnull @.str.3) #12
  %1767 = load i32, ptr %1749, align 4, !tbaa !5
  %1768 = call ptr @strerror(i32 noundef %1767) #12
  %1769 = load i32, ptr %1749, align 4, !tbaa !5
  %1770 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1761, ptr noundef nonnull %.str.4.sink1261, i32 noundef %1762, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.2, i32 noundef 224, ptr noundef %1764, ptr noundef %1766, ptr noundef %1768, i32 noundef %1769) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1771:                                             ; preds = %1743
  %1772 = load i32, ptr @test_count, align 4, !tbaa !5
  %1773 = add nsw i32 %1772, 1
  store i32 %1773, ptr @test_count, align 4, !tbaa !5
  %1774 = call i32 @s2n_stuffer_wipe(ptr noundef nonnull %382) #12
  %1775 = icmp eq i32 %1774, -1
  br i1 %1775, label %1776, label %1799

1776:                                             ; preds = %1771
  %1777 = tail call ptr @__errno_location() #13
  %1778 = load i32, ptr %1777, align 4, !tbaa !5
  %1779 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1780 = call i32 @s2n_print_stacktrace(ptr noundef %1779) #12
  %1781 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1782 = trunc nuw i8 %1781 to i1
  br i1 %1782, label %1783, label %1787

1783:                                             ; preds = %1776
  %1784 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1785 = call i32 @fileno(ptr noundef %1784) #12
  %1786 = call i32 @isatty(i32 noundef %1785) #12
  %.not642 = icmp eq i32 %1786, 0
  br i1 %.not642, label %1787, label %1788

1787:                                             ; preds = %1783, %1776
  br label %1788

1788:                                             ; preds = %1783, %1787
  %.str.4.sink1270 = phi ptr [ @.str.4, %1787 ], [ @.str, %1783 ]
  store i32 %1778, ptr %1777, align 4, !tbaa !5
  %1789 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1790 = load i32, ptr @test_count, align 4, !tbaa !5
  %1791 = load i32, ptr %380, align 4, !tbaa !5
  %1792 = call ptr @s2n_strerror(i32 noundef %1791, ptr noundef nonnull @.str.3) #12
  %1793 = load i32, ptr %380, align 4, !tbaa !5
  %1794 = call ptr @s2n_strerror_debug(i32 noundef %1793, ptr noundef nonnull @.str.3) #12
  %1795 = load i32, ptr %1777, align 4, !tbaa !5
  %1796 = call ptr @strerror(i32 noundef %1795) #12
  %1797 = load i32, ptr %1777, align 4, !tbaa !5
  %1798 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1789, ptr noundef nonnull %.str.4.sink1270, i32 noundef %1790, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.2, i32 noundef 225, ptr noundef %1792, ptr noundef %1794, ptr noundef %1796, i32 noundef %1797) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1799:                                             ; preds = %1771
  %1800 = load i32, ptr @test_count, align 4, !tbaa !5
  %1801 = add nsw i32 %1800, 1
  store i32 %1801, ptr @test_count, align 4, !tbaa !5
  %1802 = call i32 @s2n_stuffer_copy(ptr noundef nonnull %378, ptr noundef nonnull %382, i32 noundef 5) #12
  %1803 = icmp eq i32 %1802, -1
  br i1 %1803, label %1804, label %1827

1804:                                             ; preds = %1799
  %1805 = tail call ptr @__errno_location() #13
  %1806 = load i32, ptr %1805, align 4, !tbaa !5
  %1807 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1808 = call i32 @s2n_print_stacktrace(ptr noundef %1807) #12
  %1809 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1810 = trunc nuw i8 %1809 to i1
  br i1 %1810, label %1811, label %1815

1811:                                             ; preds = %1804
  %1812 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1813 = call i32 @fileno(ptr noundef %1812) #12
  %1814 = call i32 @isatty(i32 noundef %1813) #12
  %.not641 = icmp eq i32 %1814, 0
  br i1 %.not641, label %1815, label %1816

1815:                                             ; preds = %1811, %1804
  br label %1816

1816:                                             ; preds = %1811, %1815
  %.str.4.sink1279 = phi ptr [ @.str.4, %1815 ], [ @.str, %1811 ]
  store i32 %1806, ptr %1805, align 4, !tbaa !5
  %1817 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1818 = load i32, ptr @test_count, align 4, !tbaa !5
  %1819 = load i32, ptr %380, align 4, !tbaa !5
  %1820 = call ptr @s2n_strerror(i32 noundef %1819, ptr noundef nonnull @.str.3) #12
  %1821 = load i32, ptr %380, align 4, !tbaa !5
  %1822 = call ptr @s2n_strerror_debug(i32 noundef %1821, ptr noundef nonnull @.str.3) #12
  %1823 = load i32, ptr %1805, align 4, !tbaa !5
  %1824 = call ptr @strerror(i32 noundef %1823) #12
  %1825 = load i32, ptr %1805, align 4, !tbaa !5
  %1826 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1817, ptr noundef nonnull %.str.4.sink1279, i32 noundef %1818, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.2, i32 noundef 226, ptr noundef %1820, ptr noundef %1822, ptr noundef %1824, i32 noundef %1825) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1827:                                             ; preds = %1799
  %1828 = load i32, ptr @test_count, align 4, !tbaa !5
  %1829 = add nsw i32 %1828, 1
  store i32 %1829, ptr @test_count, align 4, !tbaa !5
  %1830 = load i32, ptr %383, align 4, !tbaa !62
  %1831 = load i32, ptr %384, align 8, !tbaa !63
  %1832 = sub i32 %1830, %1831
  %1833 = call i32 @s2n_stuffer_copy(ptr noundef nonnull %378, ptr noundef nonnull %381, i32 noundef %1832) #12
  %1834 = icmp eq i32 %1833, -1
  br i1 %1834, label %1835, label %1858

1835:                                             ; preds = %1827
  %1836 = tail call ptr @__errno_location() #13
  %1837 = load i32, ptr %1836, align 4, !tbaa !5
  %1838 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1839 = call i32 @s2n_print_stacktrace(ptr noundef %1838) #12
  %1840 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1841 = trunc nuw i8 %1840 to i1
  br i1 %1841, label %1842, label %1846

1842:                                             ; preds = %1835
  %1843 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1844 = call i32 @fileno(ptr noundef %1843) #12
  %1845 = call i32 @isatty(i32 noundef %1844) #12
  %.not640 = icmp eq i32 %1845, 0
  br i1 %.not640, label %1846, label %1847

1846:                                             ; preds = %1842, %1835
  br label %1847

1847:                                             ; preds = %1842, %1846
  %.str.4.sink1288 = phi ptr [ @.str.4, %1846 ], [ @.str, %1842 ]
  store i32 %1837, ptr %1836, align 4, !tbaa !5
  %1848 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1849 = load i32, ptr @test_count, align 4, !tbaa !5
  %1850 = load i32, ptr %380, align 4, !tbaa !5
  %1851 = call ptr @s2n_strerror(i32 noundef %1850, ptr noundef nonnull @.str.3) #12
  %1852 = load i32, ptr %380, align 4, !tbaa !5
  %1853 = call ptr @s2n_strerror_debug(i32 noundef %1852, ptr noundef nonnull @.str.3) #12
  %1854 = load i32, ptr %1836, align 4, !tbaa !5
  %1855 = call ptr @strerror(i32 noundef %1854) #12
  %1856 = load i32, ptr %1836, align 4, !tbaa !5
  %1857 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1848, ptr noundef nonnull %.str.4.sink1288, i32 noundef %1849, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.2, i32 noundef 227, ptr noundef %1851, ptr noundef %1853, ptr noundef %1855, i32 noundef %1856) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1858:                                             ; preds = %1827
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %16) #12
  store i8 0, ptr %16, align 1, !tbaa !59
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %17) #12
  store i16 0, ptr %17, align 2, !tbaa !64
  %1859 = load i32, ptr @test_count, align 4, !tbaa !5
  %1860 = add nsw i32 %1859, 1
  store i32 %1860, ptr @test_count, align 4, !tbaa !5
  %1861 = call i32 @s2n_record_header_parse(ptr noundef nonnull %316, ptr noundef nonnull %16, ptr noundef nonnull %17) #12
  %1862 = icmp eq i32 %1861, -1
  br i1 %1862, label %1863, label %1886

1863:                                             ; preds = %1858
  %1864 = tail call ptr @__errno_location() #13
  %1865 = load i32, ptr %1864, align 4, !tbaa !5
  %1866 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1867 = call i32 @s2n_print_stacktrace(ptr noundef %1866) #12
  %1868 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1869 = trunc nuw i8 %1868 to i1
  br i1 %1869, label %1870, label %1874

1870:                                             ; preds = %1863
  %1871 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1872 = call i32 @fileno(ptr noundef %1871) #12
  %1873 = call i32 @isatty(i32 noundef %1872) #12
  %.not639 = icmp eq i32 %1873, 0
  br i1 %.not639, label %1874, label %1875

1874:                                             ; preds = %1870, %1863
  br label %1875

1875:                                             ; preds = %1870, %1874
  %.str.4.sink1297 = phi ptr [ @.str.4, %1874 ], [ @.str, %1870 ]
  store i32 %1865, ptr %1864, align 4, !tbaa !5
  %1876 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1877 = load i32, ptr @test_count, align 4, !tbaa !5
  %1878 = load i32, ptr %380, align 4, !tbaa !5
  %1879 = call ptr @s2n_strerror(i32 noundef %1878, ptr noundef nonnull @.str.3) #12
  %1880 = load i32, ptr %380, align 4, !tbaa !5
  %1881 = call ptr @s2n_strerror_debug(i32 noundef %1880, ptr noundef nonnull @.str.3) #12
  %1882 = load i32, ptr %1864, align 4, !tbaa !5
  %1883 = call ptr @strerror(i32 noundef %1882) #12
  %1884 = load i32, ptr %1864, align 4, !tbaa !5
  %1885 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1876, ptr noundef nonnull %.str.4.sink1297, i32 noundef %1877, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.2, i32 noundef 232, ptr noundef %1879, ptr noundef %1881, ptr noundef %1883, i32 noundef %1884) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1886:                                             ; preds = %1858
  %1887 = load i32, ptr @test_count, align 4, !tbaa !5
  %1888 = add nsw i32 %1887, 1
  store i32 %1888, ptr @test_count, align 4, !tbaa !5
  %1889 = call i32 @s2n_record_parse(ptr noundef nonnull %316) #12
  %1890 = icmp eq i32 %1889, -1
  br i1 %1890, label %1891, label %1914

1891:                                             ; preds = %1886
  %1892 = tail call ptr @__errno_location() #13
  %1893 = load i32, ptr %1892, align 4, !tbaa !5
  %1894 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1895 = call i32 @s2n_print_stacktrace(ptr noundef %1894) #12
  %1896 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1897 = trunc nuw i8 %1896 to i1
  br i1 %1897, label %1898, label %1902

1898:                                             ; preds = %1891
  %1899 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1900 = call i32 @fileno(ptr noundef %1899) #12
  %1901 = call i32 @isatty(i32 noundef %1900) #12
  %.not638 = icmp eq i32 %1901, 0
  br i1 %.not638, label %1902, label %1903

1902:                                             ; preds = %1898, %1891
  br label %1903

1903:                                             ; preds = %1898, %1902
  %.str.4.sink1306 = phi ptr [ @.str.4, %1902 ], [ @.str, %1898 ]
  store i32 %1893, ptr %1892, align 4, !tbaa !5
  %1904 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1905 = load i32, ptr @test_count, align 4, !tbaa !5
  %1906 = load i32, ptr %380, align 4, !tbaa !5
  %1907 = call ptr @s2n_strerror(i32 noundef %1906, ptr noundef nonnull @.str.3) #12
  %1908 = load i32, ptr %380, align 4, !tbaa !5
  %1909 = call ptr @s2n_strerror_debug(i32 noundef %1908, ptr noundef nonnull @.str.3) #12
  %1910 = load i32, ptr %1892, align 4, !tbaa !5
  %1911 = call ptr @strerror(i32 noundef %1910) #12
  %1912 = load i32, ptr %1892, align 4, !tbaa !5
  %1913 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1904, ptr noundef nonnull %.str.4.sink1306, i32 noundef %1905, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.2, i32 noundef 233, ptr noundef %1907, ptr noundef %1909, ptr noundef %1911, i32 noundef %1912) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1914:                                             ; preds = %1886
  %1915 = load i32, ptr @test_count, align 4, !tbaa !5
  %1916 = add nsw i32 %1915, 1
  store i32 %1916, ptr @test_count, align 4, !tbaa !5
  %1917 = load i8, ptr %16, align 1, !tbaa !59
  %1918 = icmp eq i8 %1917, 23
  br i1 %1918, label %1942, label %1919

1919:                                             ; preds = %1914
  %1920 = tail call ptr @__errno_location() #13
  %1921 = load i32, ptr %1920, align 4, !tbaa !5
  %1922 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1923 = call i32 @s2n_print_stacktrace(ptr noundef %1922) #12
  %1924 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1925 = trunc nuw i8 %1924 to i1
  br i1 %1925, label %1926, label %1930

1926:                                             ; preds = %1919
  %1927 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1928 = call i32 @fileno(ptr noundef %1927) #12
  %1929 = call i32 @isatty(i32 noundef %1928) #12
  %.not634 = icmp eq i32 %1929, 0
  br i1 %.not634, label %1930, label %1931

1930:                                             ; preds = %1926, %1919
  br label %1931

1931:                                             ; preds = %1926, %1930
  %.str.4.sink1315 = phi ptr [ @.str.4, %1930 ], [ @.str, %1926 ]
  store i32 %1921, ptr %1920, align 4, !tbaa !5
  %1932 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1933 = load i32, ptr @test_count, align 4, !tbaa !5
  %1934 = load i32, ptr %380, align 4, !tbaa !5
  %1935 = call ptr @s2n_strerror(i32 noundef %1934, ptr noundef nonnull @.str.3) #12
  %1936 = load i32, ptr %380, align 4, !tbaa !5
  %1937 = call ptr @s2n_strerror_debug(i32 noundef %1936, ptr noundef nonnull @.str.3) #12
  %1938 = load i32, ptr %1920, align 4, !tbaa !5
  %1939 = call ptr @strerror(i32 noundef %1938) #12
  %1940 = load i32, ptr %1920, align 4, !tbaa !5
  %1941 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1932, ptr noundef nonnull %.str.4.sink1315, i32 noundef %1933, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.2, i32 noundef 234, ptr noundef %1935, ptr noundef %1937, ptr noundef %1939, i32 noundef %1940) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1942:                                             ; preds = %1914
  %1943 = add nsw i32 %1915, 2
  store i32 %1943, ptr @test_count, align 4, !tbaa !5
  %1944 = load i16, ptr %17, align 2, !tbaa !64
  %1945 = trunc i32 %.0534 to i16
  %1946 = icmp eq i16 %1944, %1945
  br i1 %1946, label %1970, label %1947

1947:                                             ; preds = %1942
  %1948 = tail call ptr @__errno_location() #13
  %1949 = load i32, ptr %1948, align 4, !tbaa !5
  %1950 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1951 = call i32 @s2n_print_stacktrace(ptr noundef %1950) #12
  %1952 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1953 = trunc nuw i8 %1952 to i1
  br i1 %1953, label %1954, label %1958

1954:                                             ; preds = %1947
  %1955 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1956 = call i32 @fileno(ptr noundef %1955) #12
  %1957 = call i32 @isatty(i32 noundef %1956) #12
  %.not635 = icmp eq i32 %1957, 0
  br i1 %.not635, label %1958, label %1959

1958:                                             ; preds = %1954, %1947
  br label %1959

1959:                                             ; preds = %1954, %1958
  %.str.4.sink1324 = phi ptr [ @.str.4, %1958 ], [ @.str, %1954 ]
  store i32 %1949, ptr %1948, align 4, !tbaa !5
  %1960 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1961 = load i32, ptr @test_count, align 4, !tbaa !5
  %1962 = load i32, ptr %380, align 4, !tbaa !5
  %1963 = call ptr @s2n_strerror(i32 noundef %1962, ptr noundef nonnull @.str.3) #12
  %1964 = load i32, ptr %380, align 4, !tbaa !5
  %1965 = call ptr @s2n_strerror_debug(i32 noundef %1964, ptr noundef nonnull @.str.3) #12
  %1966 = load i32, ptr %1948, align 4, !tbaa !5
  %1967 = call ptr @strerror(i32 noundef %1966) #12
  %1968 = load i32, ptr %1948, align 4, !tbaa !5
  %1969 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1960, ptr noundef nonnull %.str.4.sink1324, i32 noundef %1961, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.2, i32 noundef 235, ptr noundef %1963, ptr noundef %1965, ptr noundef %1967, i32 noundef %1968) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1970:                                             ; preds = %1942
  %1971 = add nsw i32 %1915, 3
  store i32 %1971, ptr @test_count, align 4, !tbaa !5
  %1972 = call i32 @s2n_stuffer_wipe(ptr noundef nonnull %382) #12
  %1973 = icmp eq i32 %1972, -1
  br i1 %1973, label %1974, label %1997

1974:                                             ; preds = %1970
  %1975 = tail call ptr @__errno_location() #13
  %1976 = load i32, ptr %1975, align 4, !tbaa !5
  %1977 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1978 = call i32 @s2n_print_stacktrace(ptr noundef %1977) #12
  %1979 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1980 = trunc nuw i8 %1979 to i1
  br i1 %1980, label %1981, label %1985

1981:                                             ; preds = %1974
  %1982 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1983 = call i32 @fileno(ptr noundef %1982) #12
  %1984 = call i32 @isatty(i32 noundef %1983) #12
  %.not637 = icmp eq i32 %1984, 0
  br i1 %.not637, label %1985, label %1986

1985:                                             ; preds = %1981, %1974
  br label %1986

1986:                                             ; preds = %1981, %1985
  %.str.4.sink1333 = phi ptr [ @.str.4, %1985 ], [ @.str, %1981 ]
  store i32 %1976, ptr %1975, align 4, !tbaa !5
  %1987 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1988 = load i32, ptr @test_count, align 4, !tbaa !5
  %1989 = load i32, ptr %380, align 4, !tbaa !5
  %1990 = call ptr @s2n_strerror(i32 noundef %1989, ptr noundef nonnull @.str.3) #12
  %1991 = load i32, ptr %380, align 4, !tbaa !5
  %1992 = call ptr @s2n_strerror_debug(i32 noundef %1991, ptr noundef nonnull @.str.3) #12
  %1993 = load i32, ptr %1975, align 4, !tbaa !5
  %1994 = call ptr @strerror(i32 noundef %1993) #12
  %1995 = load i32, ptr %1975, align 4, !tbaa !5
  %1996 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1987, ptr noundef nonnull %.str.4.sink1333, i32 noundef %1988, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.2, i32 noundef 237, ptr noundef %1990, ptr noundef %1992, ptr noundef %1994, i32 noundef %1995) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1997:                                             ; preds = %1970
  %1998 = load i32, ptr @test_count, align 4, !tbaa !5
  %1999 = add nsw i32 %1998, 1
  store i32 %1999, ptr @test_count, align 4, !tbaa !5
  %2000 = call i32 @s2n_stuffer_wipe(ptr noundef nonnull %381) #12
  %2001 = icmp eq i32 %2000, -1
  br i1 %2001, label %2002, label %2025

2002:                                             ; preds = %1997
  %2003 = tail call ptr @__errno_location() #13
  %2004 = load i32, ptr %2003, align 4, !tbaa !5
  %2005 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2006 = call i32 @s2n_print_stacktrace(ptr noundef %2005) #12
  %2007 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2008 = trunc nuw i8 %2007 to i1
  br i1 %2008, label %2009, label %2013

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

2013:                                             ; preds = %2009, %2002
  br label %2014

2014:                                             ; preds = %2009, %2013
  %.str.4.sink1342 = phi ptr [ @.str.4, %2013 ], [ @.str, %2009 ]
  store i32 %2004, ptr %2003, align 4, !tbaa !5
  %2015 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2016 = load i32, ptr @test_count, align 4, !tbaa !5
  %2017 = load i32, ptr %380, align 4, !tbaa !5
  %2018 = call ptr @s2n_strerror(i32 noundef %2017, ptr noundef nonnull @.str.3) #12
  %2019 = load i32, ptr %380, align 4, !tbaa !5
  %2020 = call ptr @s2n_strerror_debug(i32 noundef %2019, ptr noundef nonnull @.str.3) #12
  %2021 = load i32, ptr %2003, align 4, !tbaa !5
  %2022 = call ptr @strerror(i32 noundef %2021) #12
  %2023 = load i32, ptr %2003, align 4, !tbaa !5
  %2024 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2015, ptr noundef nonnull %.str.4.sink1342, i32 noundef %2016, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.2, i32 noundef 238, ptr noundef %2018, ptr noundef %2020, ptr noundef %2022, i32 noundef %2023) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2025:                                             ; preds = %1997
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %17) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %16) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %15) #12
  %indvars.iv.next719 = add nuw nsw i64 %indvars.iv718, 1
  %exitcond721.not = icmp eq i64 %indvars.iv.next719, 8089
  br i1 %exitcond721.not, label %1211, label %1212, !llvm.loop !67

.preheader696:                                    ; preds = %1207, %2031
  %indvars.iv730 = phi i64 [ 0, %1207 ], [ %indvars.iv.next731, %2031 ]
  %2026 = getelementptr inbounds [3 x i8], ptr @__const.main.proto_versions, i64 0, i64 %indvars.iv730
  br label %2032

2027:                                             ; preds = %2031
  %2028 = load ptr, ptr %372, align 8, !tbaa !17
  %2029 = load ptr, ptr %2028, align 8, !tbaa !46
  %2030 = getelementptr inbounds i8, ptr %2029, i64 48
  store ptr @s2n_record_alg_aes256_sha256_composite, ptr %2030, align 8, !tbaa !51
  br label %.preheader

2031:                                             ; preds = %2762
  %indvars.iv.next731 = add nuw nsw i64 %indvars.iv730, 1
  %exitcond733.not = icmp eq i64 %indvars.iv.next731, 3
  br i1 %exitcond733.not, label %2027, label %.preheader696, !llvm.loop !68

2032:                                             ; preds = %.preheader696, %2762
  %indvars.iv726 = phi i64 [ 0, %.preheader696 ], [ %indvars.iv.next727, %2762 ]
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %18) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %18, i8 0, i64 24, i1 false)
  %2033 = load i32, ptr @test_count, align 4, !tbaa !5
  %2034 = add nsw i32 %2033, 1
  store i32 %2034, ptr @test_count, align 4, !tbaa !5
  %2035 = trunc nuw nsw i64 %indvars.iv726 to i32
  %2036 = call i32 @s2n_blob_init(ptr noundef nonnull %18, ptr noundef nonnull %3, i32 noundef %2035) #12
  %2037 = icmp eq i32 %2036, -1
  br i1 %2037, label %2038, label %2061

2038:                                             ; preds = %2032
  %2039 = tail call ptr @__errno_location() #13
  %2040 = load i32, ptr %2039, align 4, !tbaa !5
  %2041 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2042 = call i32 @s2n_print_stacktrace(ptr noundef %2041) #12
  %2043 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2044 = trunc nuw i8 %2043 to i1
  br i1 %2044, label %2045, label %2049

2045:                                             ; preds = %2038
  %2046 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2047 = call i32 @fileno(ptr noundef %2046) #12
  %2048 = call i32 @isatty(i32 noundef %2047) #12
  %.not619 = icmp eq i32 %2048, 0
  br i1 %.not619, label %2049, label %2050

2049:                                             ; preds = %2045, %2038
  br label %2050

2050:                                             ; preds = %2045, %2049
  %.str.4.sink1351 = phi ptr [ @.str.4, %2049 ], [ @.str, %2045 ]
  store i32 %2040, ptr %2039, align 4, !tbaa !5
  %2051 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2052 = load i32, ptr @test_count, align 4, !tbaa !5
  %2053 = load i32, ptr %380, align 4, !tbaa !5
  %2054 = call ptr @s2n_strerror(i32 noundef %2053, ptr noundef nonnull @.str.3) #12
  %2055 = load i32, ptr %380, align 4, !tbaa !5
  %2056 = call ptr @s2n_strerror_debug(i32 noundef %2055, ptr noundef nonnull @.str.3) #12
  %2057 = load i32, ptr %2039, align 4, !tbaa !5
  %2058 = call ptr @strerror(i32 noundef %2057) #12
  %2059 = load i32, ptr %2039, align 4, !tbaa !5
  %2060 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2051, ptr noundef nonnull %.str.4.sink1351, i32 noundef %2052, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.2, i32 noundef 247, ptr noundef %2054, ptr noundef %2056, ptr noundef %2058, i32 noundef %2059) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2061:                                             ; preds = %2032
  %2062 = load i32, ptr @test_count, align 4, !tbaa !5
  %2063 = add nsw i32 %2062, 1
  store i32 %2063, ptr @test_count, align 4, !tbaa !5
  %2064 = call i32 @s2n_connection_wipe(ptr noundef nonnull %316) #12
  %2065 = icmp eq i32 %2064, -1
  br i1 %2065, label %2066, label %2089

2066:                                             ; preds = %2061
  %2067 = tail call ptr @__errno_location() #13
  %2068 = load i32, ptr %2067, align 4, !tbaa !5
  %2069 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2070 = call i32 @s2n_print_stacktrace(ptr noundef %2069) #12
  %2071 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2072 = trunc nuw i8 %2071 to i1
  br i1 %2072, label %2073, label %2077

2073:                                             ; preds = %2066
  %2074 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2075 = call i32 @fileno(ptr noundef %2074) #12
  %2076 = call i32 @isatty(i32 noundef %2075) #12
  %.not618 = icmp eq i32 %2076, 0
  br i1 %.not618, label %2077, label %2078

2077:                                             ; preds = %2073, %2066
  br label %2078

2078:                                             ; preds = %2073, %2077
  %.str.4.sink1360 = phi ptr [ @.str.4, %2077 ], [ @.str, %2073 ]
  store i32 %2068, ptr %2067, align 4, !tbaa !5
  %2079 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2080 = load i32, ptr @test_count, align 4, !tbaa !5
  %2081 = load i32, ptr %380, align 4, !tbaa !5
  %2082 = call ptr @s2n_strerror(i32 noundef %2081, ptr noundef nonnull @.str.3) #12
  %2083 = load i32, ptr %380, align 4, !tbaa !5
  %2084 = call ptr @s2n_strerror_debug(i32 noundef %2083, ptr noundef nonnull @.str.3) #12
  %2085 = load i32, ptr %2067, align 4, !tbaa !5
  %2086 = call ptr @strerror(i32 noundef %2085) #12
  %2087 = load i32, ptr %2067, align 4, !tbaa !5
  %2088 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2079, ptr noundef nonnull %.str.4.sink1360, i32 noundef %2080, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.2, i32 noundef 250, ptr noundef %2082, ptr noundef %2084, ptr noundef %2086, i32 noundef %2087) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2089:                                             ; preds = %2061
  %2090 = load i32, ptr @test_count, align 4, !tbaa !5
  %2091 = add nsw i32 %2090, 1
  store i32 %2091, ptr @test_count, align 4, !tbaa !5
  %2092 = load ptr, ptr %372, align 8, !tbaa !17
  %2093 = load ptr, ptr %2092, align 8, !tbaa !46
  %2094 = getelementptr inbounds i8, ptr %2093, i64 48
  %2095 = load ptr, ptr %2094, align 8, !tbaa !51
  %2096 = load ptr, ptr %2095, align 8, !tbaa !55
  %2097 = getelementptr inbounds i8, ptr %2096, i64 80
  %2098 = load ptr, ptr %2097, align 8, !tbaa !57
  %2099 = getelementptr inbounds i8, ptr %2092, i64 16
  %2100 = call i32 %2098(ptr noundef nonnull %2099, ptr noundef nonnull %8) #12
  %2101 = call zeroext i1 @s2n_result_is_ok(i32 %2100)
  br i1 %2101, label %2125, label %2102

2102:                                             ; preds = %2089
  %2103 = tail call ptr @__errno_location() #13
  %2104 = load i32, ptr %2103, align 4, !tbaa !5
  %2105 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2106 = call i32 @s2n_print_stacktrace(ptr noundef %2105) #12
  %2107 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2108 = trunc nuw i8 %2107 to i1
  br i1 %2108, label %2109, label %2113

2109:                                             ; preds = %2102
  %2110 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2111 = call i32 @fileno(ptr noundef %2110) #12
  %2112 = call i32 @isatty(i32 noundef %2111) #12
  %.not593 = icmp eq i32 %2112, 0
  br i1 %.not593, label %2113, label %2114

2113:                                             ; preds = %2109, %2102
  br label %2114

2114:                                             ; preds = %2109, %2113
  %.str.4.sink1369 = phi ptr [ @.str.4, %2113 ], [ @.str, %2109 ]
  store i32 %2104, ptr %2103, align 4, !tbaa !5
  %2115 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2116 = load i32, ptr @test_count, align 4, !tbaa !5
  %2117 = load i32, ptr %380, align 4, !tbaa !5
  %2118 = call ptr @s2n_strerror(i32 noundef %2117, ptr noundef nonnull @.str.3) #12
  %2119 = load i32, ptr %380, align 4, !tbaa !5
  %2120 = call ptr @s2n_strerror_debug(i32 noundef %2119, ptr noundef nonnull @.str.3) #12
  %2121 = load i32, ptr %2103, align 4, !tbaa !5
  %2122 = call ptr @strerror(i32 noundef %2121) #12
  %2123 = load i32, ptr %2103, align 4, !tbaa !5
  %2124 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2115, ptr noundef nonnull %.str.4.sink1369, i32 noundef %2116, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.2, i32 noundef 252, ptr noundef %2118, ptr noundef %2120, ptr noundef %2122, i32 noundef %2123) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2125:                                             ; preds = %2089
  %2126 = load i32, ptr @test_count, align 4, !tbaa !5
  %2127 = add nsw i32 %2126, 1
  store i32 %2127, ptr @test_count, align 4, !tbaa !5
  %2128 = load ptr, ptr %372, align 8, !tbaa !17
  %2129 = load ptr, ptr %2128, align 8, !tbaa !46
  %2130 = getelementptr inbounds i8, ptr %2129, i64 48
  %2131 = load ptr, ptr %2130, align 8, !tbaa !51
  %2132 = load ptr, ptr %2131, align 8, !tbaa !55
  %2133 = getelementptr inbounds i8, ptr %2132, i64 72
  %2134 = load ptr, ptr %2133, align 8, !tbaa !58
  %2135 = getelementptr inbounds i8, ptr %2128, i64 8
  %2136 = call i32 %2134(ptr noundef nonnull %2135, ptr noundef nonnull %8) #12
  %2137 = call zeroext i1 @s2n_result_is_ok(i32 %2136)
  br i1 %2137, label %2161, label %2138

2138:                                             ; preds = %2125
  %2139 = tail call ptr @__errno_location() #13
  %2140 = load i32, ptr %2139, align 4, !tbaa !5
  %2141 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2142 = call i32 @s2n_print_stacktrace(ptr noundef %2141) #12
  %2143 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2144 = trunc nuw i8 %2143 to i1
  br i1 %2144, label %2145, label %2149

2145:                                             ; preds = %2138
  %2146 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2147 = call i32 @fileno(ptr noundef %2146) #12
  %2148 = call i32 @isatty(i32 noundef %2147) #12
  %.not594 = icmp eq i32 %2148, 0
  br i1 %.not594, label %2149, label %2150

2149:                                             ; preds = %2145, %2138
  br label %2150

2150:                                             ; preds = %2145, %2149
  %.str.4.sink1378 = phi ptr [ @.str.4, %2149 ], [ @.str, %2145 ]
  store i32 %2140, ptr %2139, align 4, !tbaa !5
  %2151 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2152 = load i32, ptr @test_count, align 4, !tbaa !5
  %2153 = load i32, ptr %380, align 4, !tbaa !5
  %2154 = call ptr @s2n_strerror(i32 noundef %2153, ptr noundef nonnull @.str.3) #12
  %2155 = load i32, ptr %380, align 4, !tbaa !5
  %2156 = call ptr @s2n_strerror_debug(i32 noundef %2155, ptr noundef nonnull @.str.3) #12
  %2157 = load i32, ptr %2139, align 4, !tbaa !5
  %2158 = call ptr @strerror(i32 noundef %2157) #12
  %2159 = load i32, ptr %2139, align 4, !tbaa !5
  %2160 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2151, ptr noundef nonnull %.str.4.sink1378, i32 noundef %2152, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.2, i32 noundef 253, ptr noundef %2154, ptr noundef %2156, ptr noundef %2158, i32 noundef %2159) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2161:                                             ; preds = %2125
  %2162 = load i32, ptr @test_count, align 4, !tbaa !5
  %2163 = add nsw i32 %2162, 1
  store i32 %2163, ptr @test_count, align 4, !tbaa !5
  %2164 = load ptr, ptr %372, align 8, !tbaa !17
  %2165 = load ptr, ptr %2164, align 8, !tbaa !46
  %2166 = getelementptr inbounds i8, ptr %2165, i64 48
  %2167 = load ptr, ptr %2166, align 8, !tbaa !51
  %2168 = load ptr, ptr %2167, align 8, !tbaa !55
  %2169 = getelementptr inbounds i8, ptr %2168, i64 32
  %2170 = load ptr, ptr %2169, align 8, !tbaa !59
  %2171 = getelementptr inbounds i8, ptr %2164, i64 16
  %2172 = call i32 %2170(ptr noundef nonnull %2171, ptr noundef nonnull %5, i32 noundef 32) #12
  %2173 = icmp eq i32 %2172, -1
  br i1 %2173, label %2174, label %2197

2174:                                             ; preds = %2161
  %2175 = tail call ptr @__errno_location() #13
  %2176 = load i32, ptr %2175, align 4, !tbaa !5
  %2177 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2178 = call i32 @s2n_print_stacktrace(ptr noundef %2177) #12
  %2179 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2180 = trunc nuw i8 %2179 to i1
  br i1 %2180, label %2181, label %2185

2181:                                             ; preds = %2174
  %2182 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2183 = call i32 @fileno(ptr noundef %2182) #12
  %2184 = call i32 @isatty(i32 noundef %2183) #12
  %.not617 = icmp eq i32 %2184, 0
  br i1 %.not617, label %2185, label %2186

2185:                                             ; preds = %2181, %2174
  br label %2186

2186:                                             ; preds = %2181, %2185
  %.str.4.sink1387 = phi ptr [ @.str.4, %2185 ], [ @.str, %2181 ]
  store i32 %2176, ptr %2175, align 4, !tbaa !5
  %2187 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2188 = load i32, ptr @test_count, align 4, !tbaa !5
  %2189 = load i32, ptr %380, align 4, !tbaa !5
  %2190 = call ptr @s2n_strerror(i32 noundef %2189, ptr noundef nonnull @.str.3) #12
  %2191 = load i32, ptr %380, align 4, !tbaa !5
  %2192 = call ptr @s2n_strerror_debug(i32 noundef %2191, ptr noundef nonnull @.str.3) #12
  %2193 = load i32, ptr %2175, align 4, !tbaa !5
  %2194 = call ptr @strerror(i32 noundef %2193) #12
  %2195 = load i32, ptr %2175, align 4, !tbaa !5
  %2196 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2187, ptr noundef nonnull %.str.4.sink1387, i32 noundef %2188, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.2, i32 noundef 254, ptr noundef %2190, ptr noundef %2192, ptr noundef %2194, i32 noundef %2195) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2197:                                             ; preds = %2161
  %2198 = load i32, ptr @test_count, align 4, !tbaa !5
  %2199 = add nsw i32 %2198, 1
  store i32 %2199, ptr @test_count, align 4, !tbaa !5
  %2200 = load ptr, ptr %372, align 8, !tbaa !17
  %2201 = load ptr, ptr %2200, align 8, !tbaa !46
  %2202 = getelementptr inbounds i8, ptr %2201, i64 48
  %2203 = load ptr, ptr %2202, align 8, !tbaa !51
  %2204 = load ptr, ptr %2203, align 8, !tbaa !55
  %2205 = getelementptr inbounds i8, ptr %2204, i64 32
  %2206 = load ptr, ptr %2205, align 8, !tbaa !59
  %2207 = getelementptr inbounds i8, ptr %2200, i64 8
  %2208 = call i32 %2206(ptr noundef nonnull %2207, ptr noundef nonnull %5, i32 noundef 32) #12
  %2209 = icmp eq i32 %2208, -1
  br i1 %2209, label %2210, label %2233

2210:                                             ; preds = %2197
  %2211 = tail call ptr @__errno_location() #13
  %2212 = load i32, ptr %2211, align 4, !tbaa !5
  %2213 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2214 = call i32 @s2n_print_stacktrace(ptr noundef %2213) #12
  %2215 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2216 = trunc nuw i8 %2215 to i1
  br i1 %2216, label %2217, label %2221

2217:                                             ; preds = %2210
  %2218 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2219 = call i32 @fileno(ptr noundef %2218) #12
  %2220 = call i32 @isatty(i32 noundef %2219) #12
  %.not616 = icmp eq i32 %2220, 0
  br i1 %.not616, label %2221, label %2222

2221:                                             ; preds = %2217, %2210
  br label %2222

2222:                                             ; preds = %2217, %2221
  %.str.4.sink1396 = phi ptr [ @.str.4, %2221 ], [ @.str, %2217 ]
  store i32 %2212, ptr %2211, align 4, !tbaa !5
  %2223 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2224 = load i32, ptr @test_count, align 4, !tbaa !5
  %2225 = load i32, ptr %380, align 4, !tbaa !5
  %2226 = call ptr @s2n_strerror(i32 noundef %2225, ptr noundef nonnull @.str.3) #12
  %2227 = load i32, ptr %380, align 4, !tbaa !5
  %2228 = call ptr @s2n_strerror_debug(i32 noundef %2227, ptr noundef nonnull @.str.3) #12
  %2229 = load i32, ptr %2211, align 4, !tbaa !5
  %2230 = call ptr @strerror(i32 noundef %2229) #12
  %2231 = load i32, ptr %2211, align 4, !tbaa !5
  %2232 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2223, ptr noundef nonnull %.str.4.sink1396, i32 noundef %2224, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.2, i32 noundef 255, ptr noundef %2226, ptr noundef %2228, ptr noundef %2230, i32 noundef %2231) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2233:                                             ; preds = %2197
  %2234 = load i32, ptr @test_count, align 4, !tbaa !5
  %2235 = add nsw i32 %2234, 1
  store i32 %2235, ptr @test_count, align 4, !tbaa !5
  %2236 = call i32 @s2n_stuffer_wipe(ptr noundef nonnull %378) #12
  %2237 = icmp eq i32 %2236, -1
  br i1 %2237, label %2238, label %2261

2238:                                             ; preds = %2233
  %2239 = tail call ptr @__errno_location() #13
  %2240 = load i32, ptr %2239, align 4, !tbaa !5
  %2241 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2242 = call i32 @s2n_print_stacktrace(ptr noundef %2241) #12
  %2243 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2244 = trunc nuw i8 %2243 to i1
  br i1 %2244, label %2245, label %2249

2245:                                             ; preds = %2238
  %2246 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2247 = call i32 @fileno(ptr noundef %2246) #12
  %2248 = call i32 @isatty(i32 noundef %2247) #12
  %.not615 = icmp eq i32 %2248, 0
  br i1 %.not615, label %2249, label %2250

2249:                                             ; preds = %2245, %2238
  br label %2250

2250:                                             ; preds = %2245, %2249
  %.str.4.sink1405 = phi ptr [ @.str.4, %2249 ], [ @.str, %2245 ]
  store i32 %2240, ptr %2239, align 4, !tbaa !5
  %2251 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2252 = load i32, ptr @test_count, align 4, !tbaa !5
  %2253 = load i32, ptr %380, align 4, !tbaa !5
  %2254 = call ptr @s2n_strerror(i32 noundef %2253, ptr noundef nonnull @.str.3) #12
  %2255 = load i32, ptr %380, align 4, !tbaa !5
  %2256 = call ptr @s2n_strerror_debug(i32 noundef %2255, ptr noundef nonnull @.str.3) #12
  %2257 = load i32, ptr %2239, align 4, !tbaa !5
  %2258 = call ptr @strerror(i32 noundef %2257) #12
  %2259 = load i32, ptr %2239, align 4, !tbaa !5
  %2260 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2251, ptr noundef nonnull %.str.4.sink1405, i32 noundef %2252, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.2, i32 noundef 257, ptr noundef %2254, ptr noundef %2256, ptr noundef %2258, i32 noundef %2259) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2261:                                             ; preds = %2233
  %2262 = load i8, ptr %2026, align 1, !tbaa !59
  store i8 %2262, ptr %379, align 4, !tbaa !60
  %2263 = icmp ugt i8 %2262, 31
  %.691 = select i1 %2263, i32 16, i32 0
  %2264 = call i32 @s2n_record_write(ptr noundef nonnull %316, i8 noundef zeroext 23, ptr noundef nonnull %18) #12
  %2265 = load i32, ptr @test_count, align 4, !tbaa !5
  %2266 = add nsw i32 %2265, 1
  store i32 %2266, ptr @test_count, align 4, !tbaa !5
  %2267 = call zeroext i1 @s2n_result_is_ok(i32 %2264)
  br i1 %2267, label %2291, label %2268

2268:                                             ; preds = %2261
  %2269 = tail call ptr @__errno_location() #13
  %2270 = load i32, ptr %2269, align 4, !tbaa !5
  %2271 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2272 = call i32 @s2n_print_stacktrace(ptr noundef %2271) #12
  %2273 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2274 = trunc nuw i8 %2273 to i1
  br i1 %2274, label %2275, label %2279

2275:                                             ; preds = %2268
  %2276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2277 = call i32 @fileno(ptr noundef %2276) #12
  %2278 = call i32 @isatty(i32 noundef %2277) #12
  %.not595 = icmp eq i32 %2278, 0
  br i1 %.not595, label %2279, label %2280

2279:                                             ; preds = %2275, %2268
  br label %2280

2280:                                             ; preds = %2275, %2279
  %.str.4.sink1414 = phi ptr [ @.str.4, %2279 ], [ @.str, %2275 ]
  store i32 %2270, ptr %2269, align 4, !tbaa !5
  %2281 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2282 = load i32, ptr @test_count, align 4, !tbaa !5
  %2283 = load i32, ptr %380, align 4, !tbaa !5
  %2284 = call ptr @s2n_strerror(i32 noundef %2283, ptr noundef nonnull @.str.3) #12
  %2285 = load i32, ptr %380, align 4, !tbaa !5
  %2286 = call ptr @s2n_strerror_debug(i32 noundef %2285, ptr noundef nonnull @.str.3) #12
  %2287 = load i32, ptr %2269, align 4, !tbaa !5
  %2288 = call ptr @strerror(i32 noundef %2287) #12
  %2289 = load i32, ptr %2269, align 4, !tbaa !5
  %2290 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2281, ptr noundef nonnull %.str.4.sink1414, i32 noundef %2282, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.2, i32 noundef 269, ptr noundef %2284, ptr noundef %2286, ptr noundef %2288, i32 noundef %2289) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2291:                                             ; preds = %2261
  %2292 = trunc i64 %indvars.iv726 to i32
  %2293 = add i32 %2292, 33
  %2294 = add nuw nsw i32 %.691, %2293
  %2295 = and i32 %2293, 15
  %.not596 = icmp eq i32 %2295, 0
  %reass.sub714 = sub nsw i32 %2294, %2295
  %2296 = add i32 %reass.sub714, 16
  %.0539 = select i1 %.not596, i32 %2294, i32 %2296
  %2297 = load i32, ptr @test_count, align 4, !tbaa !5
  %2298 = add nsw i32 %2297, 1
  store i32 %2298, ptr @test_count, align 4, !tbaa !5
  %2299 = load ptr, ptr %378, align 8, !tbaa !61
  %2300 = load i8, ptr %2299, align 1, !tbaa !59
  %2301 = icmp eq i8 %2300, 23
  br i1 %2301, label %2325, label %2302

2302:                                             ; preds = %2291
  %2303 = tail call ptr @__errno_location() #13
  %2304 = load i32, ptr %2303, align 4, !tbaa !5
  %2305 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2306 = call i32 @s2n_print_stacktrace(ptr noundef %2305) #12
  %2307 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2308 = trunc nuw i8 %2307 to i1
  br i1 %2308, label %2309, label %2313

2309:                                             ; preds = %2302
  %2310 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2311 = call i32 @fileno(ptr noundef %2310) #12
  %2312 = call i32 @isatty(i32 noundef %2311) #12
  %.not598 = icmp eq i32 %2312, 0
  br i1 %.not598, label %2313, label %2314

2313:                                             ; preds = %2309, %2302
  br label %2314

2314:                                             ; preds = %2309, %2313
  %.str.4.sink1423 = phi ptr [ @.str.4, %2313 ], [ @.str, %2309 ]
  store i32 %2304, ptr %2303, align 4, !tbaa !5
  %2315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2316 = load i32, ptr @test_count, align 4, !tbaa !5
  %2317 = load i32, ptr %380, align 4, !tbaa !5
  %2318 = call ptr @s2n_strerror(i32 noundef %2317, ptr noundef nonnull @.str.3) #12
  %2319 = load i32, ptr %380, align 4, !tbaa !5
  %2320 = call ptr @s2n_strerror_debug(i32 noundef %2319, ptr noundef nonnull @.str.3) #12
  %2321 = load i32, ptr %2303, align 4, !tbaa !5
  %2322 = call ptr @strerror(i32 noundef %2321) #12
  %2323 = load i32, ptr %2303, align 4, !tbaa !5
  %2324 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2315, ptr noundef nonnull %.str.4.sink1423, i32 noundef %2316, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.2, i32 noundef 280, ptr noundef %2318, ptr noundef %2320, ptr noundef %2322, i32 noundef %2323) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2325:                                             ; preds = %2291
  %2326 = getelementptr inbounds i8, ptr %2299, i64 1
  %2327 = load i8, ptr %2326, align 1, !tbaa !59
  %2328 = mul i8 %2327, 10
  %2329 = getelementptr inbounds i8, ptr %2299, i64 2
  %2330 = load i8, ptr %2329, align 1, !tbaa !59
  %2331 = add i8 %2328, %2330
  %2332 = add nsw i32 %2297, 2
  store i32 %2332, ptr @test_count, align 4, !tbaa !5
  %2333 = load i8, ptr %379, align 4, !tbaa !60
  %2334 = icmp eq i8 %2331, %2333
  br i1 %2334, label %2358, label %2335

2335:                                             ; preds = %2325
  %2336 = tail call ptr @__errno_location() #13
  %2337 = load i32, ptr %2336, align 4, !tbaa !5
  %2338 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2339 = call i32 @s2n_print_stacktrace(ptr noundef %2338) #12
  %2340 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2341 = trunc nuw i8 %2340 to i1
  br i1 %2341, label %2342, label %2346

2342:                                             ; preds = %2335
  %2343 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2344 = call i32 @fileno(ptr noundef %2343) #12
  %2345 = call i32 @isatty(i32 noundef %2344) #12
  %.not599 = icmp eq i32 %2345, 0
  br i1 %.not599, label %2346, label %2347

2346:                                             ; preds = %2342, %2335
  br label %2347

2347:                                             ; preds = %2342, %2346
  %.str.4.sink1432 = phi ptr [ @.str.4, %2346 ], [ @.str, %2342 ]
  store i32 %2337, ptr %2336, align 4, !tbaa !5
  %2348 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2349 = load i32, ptr @test_count, align 4, !tbaa !5
  %2350 = load i32, ptr %380, align 4, !tbaa !5
  %2351 = call ptr @s2n_strerror(i32 noundef %2350, ptr noundef nonnull @.str.3) #12
  %2352 = load i32, ptr %380, align 4, !tbaa !5
  %2353 = call ptr @s2n_strerror_debug(i32 noundef %2352, ptr noundef nonnull @.str.3) #12
  %2354 = load i32, ptr %2336, align 4, !tbaa !5
  %2355 = call ptr @strerror(i32 noundef %2354) #12
  %2356 = load i32, ptr %2336, align 4, !tbaa !5
  %2357 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2348, ptr noundef nonnull %.str.4.sink1432, i32 noundef %2349, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.2, i32 noundef 282, ptr noundef %2351, ptr noundef %2353, ptr noundef %2355, i32 noundef %2356) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2358:                                             ; preds = %2325
  %2359 = add nsw i32 %2297, 3
  store i32 %2359, ptr @test_count, align 4, !tbaa !5
  %2360 = getelementptr inbounds i8, ptr %2299, i64 3
  %2361 = load i8, ptr %2360, align 1, !tbaa !59
  %2362 = lshr i32 %.0539, 8
  %2363 = trunc i32 %2362 to i8
  %2364 = icmp eq i8 %2361, %2363
  br i1 %2364, label %2388, label %2365

2365:                                             ; preds = %2358
  %2366 = tail call ptr @__errno_location() #13
  %2367 = load i32, ptr %2366, align 4, !tbaa !5
  %2368 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2369 = call i32 @s2n_print_stacktrace(ptr noundef %2368) #12
  %2370 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2371 = trunc nuw i8 %2370 to i1
  br i1 %2371, label %2372, label %2376

2372:                                             ; preds = %2365
  %2373 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2374 = call i32 @fileno(ptr noundef %2373) #12
  %2375 = call i32 @isatty(i32 noundef %2374) #12
  %.not600 = icmp eq i32 %2375, 0
  br i1 %.not600, label %2376, label %2377

2376:                                             ; preds = %2372, %2365
  br label %2377

2377:                                             ; preds = %2372, %2376
  %.str.4.sink1441 = phi ptr [ @.str.4, %2376 ], [ @.str, %2372 ]
  store i32 %2367, ptr %2366, align 4, !tbaa !5
  %2378 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2379 = load i32, ptr @test_count, align 4, !tbaa !5
  %2380 = load i32, ptr %380, align 4, !tbaa !5
  %2381 = call ptr @s2n_strerror(i32 noundef %2380, ptr noundef nonnull @.str.3) #12
  %2382 = load i32, ptr %380, align 4, !tbaa !5
  %2383 = call ptr @s2n_strerror_debug(i32 noundef %2382, ptr noundef nonnull @.str.3) #12
  %2384 = load i32, ptr %2366, align 4, !tbaa !5
  %2385 = call ptr @strerror(i32 noundef %2384) #12
  %2386 = load i32, ptr %2366, align 4, !tbaa !5
  %2387 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2378, ptr noundef nonnull %.str.4.sink1441, i32 noundef %2379, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.2, i32 noundef 283, ptr noundef %2381, ptr noundef %2383, ptr noundef %2385, i32 noundef %2386) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2388:                                             ; preds = %2358
  %2389 = add nsw i32 %2297, 4
  store i32 %2389, ptr @test_count, align 4, !tbaa !5
  %2390 = getelementptr inbounds i8, ptr %2299, i64 4
  %2391 = load i8, ptr %2390, align 1, !tbaa !59
  %2392 = trunc i32 %.0539 to i8
  %2393 = icmp eq i8 %2391, %2392
  br i1 %2393, label %2417, label %2394

2394:                                             ; preds = %2388
  %2395 = tail call ptr @__errno_location() #13
  %2396 = load i32, ptr %2395, align 4, !tbaa !5
  %2397 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2398 = call i32 @s2n_print_stacktrace(ptr noundef %2397) #12
  %2399 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2400 = trunc nuw i8 %2399 to i1
  br i1 %2400, label %2401, label %2405

2401:                                             ; preds = %2394
  %2402 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2403 = call i32 @fileno(ptr noundef %2402) #12
  %2404 = call i32 @isatty(i32 noundef %2403) #12
  %.not601 = icmp eq i32 %2404, 0
  br i1 %.not601, label %2405, label %2406

2405:                                             ; preds = %2401, %2394
  br label %2406

2406:                                             ; preds = %2401, %2405
  %.str.4.sink1450 = phi ptr [ @.str.4, %2405 ], [ @.str, %2401 ]
  store i32 %2396, ptr %2395, align 4, !tbaa !5
  %2407 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2408 = load i32, ptr @test_count, align 4, !tbaa !5
  %2409 = load i32, ptr %380, align 4, !tbaa !5
  %2410 = call ptr @s2n_strerror(i32 noundef %2409, ptr noundef nonnull @.str.3) #12
  %2411 = load i32, ptr %380, align 4, !tbaa !5
  %2412 = call ptr @s2n_strerror_debug(i32 noundef %2411, ptr noundef nonnull @.str.3) #12
  %2413 = load i32, ptr %2395, align 4, !tbaa !5
  %2414 = call ptr @strerror(i32 noundef %2413) #12
  %2415 = load i32, ptr %2395, align 4, !tbaa !5
  %2416 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2407, ptr noundef nonnull %.str.4.sink1450, i32 noundef %2408, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.2, i32 noundef 284, ptr noundef %2410, ptr noundef %2412, ptr noundef %2414, i32 noundef %2415) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2417:                                             ; preds = %2388
  %2418 = icmp ugt i64 %indvars.iv726, 10
  br i1 %2418, label %2419, label %2448

2419:                                             ; preds = %2417
  %2420 = add nsw i32 %2297, 5
  store i32 %2420, ptr @test_count, align 4, !tbaa !5
  %2421 = getelementptr inbounds i8, ptr %2299, i64 5
  %2422 = zext nneg i32 %.691 to i64
  %2423 = getelementptr inbounds i8, ptr %2421, i64 %2422
  %bcmp602 = call i32 @bcmp(ptr nonnull %2423, ptr nonnull %3, i64 %indvars.iv726)
  %2424 = icmp eq i32 %bcmp602, 0
  br i1 %2424, label %2425, label %2448

2425:                                             ; preds = %2419
  %2426 = tail call ptr @__errno_location() #13
  %2427 = load i32, ptr %2426, align 4, !tbaa !5
  %2428 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2429 = call i32 @s2n_print_stacktrace(ptr noundef %2428) #12
  %2430 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2431 = trunc nuw i8 %2430 to i1
  br i1 %2431, label %2432, label %2436

2432:                                             ; preds = %2425
  %2433 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2434 = call i32 @fileno(ptr noundef %2433) #12
  %2435 = call i32 @isatty(i32 noundef %2434) #12
  %.not614 = icmp eq i32 %2435, 0
  br i1 %.not614, label %2436, label %2437

2436:                                             ; preds = %2432, %2425
  br label %2437

2437:                                             ; preds = %2432, %2436
  %.str.4.sink1459 = phi ptr [ @.str.4, %2436 ], [ @.str, %2432 ]
  store i32 %2427, ptr %2426, align 4, !tbaa !5
  %2438 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2439 = load i32, ptr @test_count, align 4, !tbaa !5
  %2440 = load i32, ptr %380, align 4, !tbaa !5
  %2441 = call ptr @s2n_strerror(i32 noundef %2440, ptr noundef nonnull @.str.3) #12
  %2442 = load i32, ptr %380, align 4, !tbaa !5
  %2443 = call ptr @s2n_strerror_debug(i32 noundef %2442, ptr noundef nonnull @.str.3) #12
  %2444 = load i32, ptr %2426, align 4, !tbaa !5
  %2445 = call ptr @strerror(i32 noundef %2444) #12
  %2446 = load i32, ptr %2426, align 4, !tbaa !5
  %2447 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2438, ptr noundef nonnull %.str.4.sink1459, i32 noundef %2439, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.2, i32 noundef 288, ptr noundef %2441, ptr noundef %2443, ptr noundef %2445, i32 noundef %2446) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2448:                                             ; preds = %2419, %2417
  %2449 = phi i32 [ %2420, %2419 ], [ %2389, %2417 ]
  br i1 %2263, label %2450, label %2480

2450:                                             ; preds = %2448
  %2451 = getelementptr inbounds i8, ptr %2299, i64 5
  %2452 = add nsw i32 %2449, 1
  store i32 %2452, ptr @test_count, align 4, !tbaa !5
  %2453 = call i32 @ensure_explicit_iv_is_unique(ptr noundef nonnull %11, i64 noundef %indvars.iv726, ptr noundef nonnull %2451, i16 noundef zeroext 16)
  %2454 = icmp eq i32 %2453, -1
  br i1 %2454, label %2455, label %2478

2455:                                             ; preds = %2450
  %2456 = tail call ptr @__errno_location() #13
  %2457 = load i32, ptr %2456, align 4, !tbaa !5
  %2458 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2459 = call i32 @s2n_print_stacktrace(ptr noundef %2458) #12
  %2460 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2461 = trunc nuw i8 %2460 to i1
  br i1 %2461, label %2462, label %2466

2462:                                             ; preds = %2455
  %2463 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2464 = call i32 @fileno(ptr noundef %2463) #12
  %2465 = call i32 @isatty(i32 noundef %2464) #12
  %.not613 = icmp eq i32 %2465, 0
  br i1 %.not613, label %2466, label %2467

2466:                                             ; preds = %2462, %2455
  br label %2467

2467:                                             ; preds = %2462, %2466
  %.str.4.sink1468 = phi ptr [ @.str.4, %2466 ], [ @.str, %2462 ]
  store i32 %2457, ptr %2456, align 4, !tbaa !5
  %2468 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2469 = load i32, ptr @test_count, align 4, !tbaa !5
  %2470 = load i32, ptr %380, align 4, !tbaa !5
  %2471 = call ptr @s2n_strerror(i32 noundef %2470, ptr noundef nonnull @.str.3) #12
  %2472 = load i32, ptr %380, align 4, !tbaa !5
  %2473 = call ptr @s2n_strerror_debug(i32 noundef %2472, ptr noundef nonnull @.str.3) #12
  %2474 = load i32, ptr %2456, align 4, !tbaa !5
  %2475 = call ptr @strerror(i32 noundef %2474) #12
  %2476 = load i32, ptr %2456, align 4, !tbaa !5
  %2477 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2468, ptr noundef nonnull %.str.4.sink1468, i32 noundef %2469, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.2, i32 noundef 294, ptr noundef %2471, ptr noundef %2473, ptr noundef %2475, i32 noundef %2476) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2478:                                             ; preds = %2450
  %2479 = getelementptr inbounds [8089 x [16 x i8]], ptr %11, i64 0, i64 %indvars.iv726
  call void @llvm.memmove.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %2479, ptr noundef nonnull align 1 dereferenceable(16) %2451, i64 16, i1 false)
  %.pre743 = load i32, ptr @test_count, align 4, !tbaa !5
  br label %2480

2480:                                             ; preds = %2448, %2478
  %2481 = phi i32 [ %2449, %2448 ], [ %.pre743, %2478 ]
  %2482 = add nsw i32 %2481, 1
  store i32 %2482, ptr @test_count, align 4, !tbaa !5
  %2483 = call i32 @s2n_stuffer_wipe(ptr noundef nonnull %381) #12
  %2484 = icmp eq i32 %2483, -1
  br i1 %2484, label %2485, label %2508

2485:                                             ; preds = %2480
  %2486 = tail call ptr @__errno_location() #13
  %2487 = load i32, ptr %2486, align 4, !tbaa !5
  %2488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2489 = call i32 @s2n_print_stacktrace(ptr noundef %2488) #12
  %2490 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2491 = trunc nuw i8 %2490 to i1
  br i1 %2491, label %2492, label %2496

2492:                                             ; preds = %2485
  %2493 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2494 = call i32 @fileno(ptr noundef %2493) #12
  %2495 = call i32 @isatty(i32 noundef %2494) #12
  %.not612 = icmp eq i32 %2495, 0
  br i1 %.not612, label %2496, label %2497

2496:                                             ; preds = %2492, %2485
  br label %2497

2497:                                             ; preds = %2492, %2496
  %.str.4.sink1477 = phi ptr [ @.str.4, %2496 ], [ @.str, %2492 ]
  store i32 %2487, ptr %2486, align 4, !tbaa !5
  %2498 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2499 = load i32, ptr @test_count, align 4, !tbaa !5
  %2500 = load i32, ptr %380, align 4, !tbaa !5
  %2501 = call ptr @s2n_strerror(i32 noundef %2500, ptr noundef nonnull @.str.3) #12
  %2502 = load i32, ptr %380, align 4, !tbaa !5
  %2503 = call ptr @s2n_strerror_debug(i32 noundef %2502, ptr noundef nonnull @.str.3) #12
  %2504 = load i32, ptr %2486, align 4, !tbaa !5
  %2505 = call ptr @strerror(i32 noundef %2504) #12
  %2506 = load i32, ptr %2486, align 4, !tbaa !5
  %2507 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2498, ptr noundef nonnull %.str.4.sink1477, i32 noundef %2499, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.2, i32 noundef 300, ptr noundef %2501, ptr noundef %2503, ptr noundef %2505, i32 noundef %2506) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2508:                                             ; preds = %2480
  %2509 = load i32, ptr @test_count, align 4, !tbaa !5
  %2510 = add nsw i32 %2509, 1
  store i32 %2510, ptr @test_count, align 4, !tbaa !5
  %2511 = call i32 @s2n_stuffer_wipe(ptr noundef nonnull %382) #12
  %2512 = icmp eq i32 %2511, -1
  br i1 %2512, label %2513, label %2536

2513:                                             ; preds = %2508
  %2514 = tail call ptr @__errno_location() #13
  %2515 = load i32, ptr %2514, align 4, !tbaa !5
  %2516 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2517 = call i32 @s2n_print_stacktrace(ptr noundef %2516) #12
  %2518 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2519 = trunc nuw i8 %2518 to i1
  br i1 %2519, label %2520, label %2524

2520:                                             ; preds = %2513
  %2521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2522 = call i32 @fileno(ptr noundef %2521) #12
  %2523 = call i32 @isatty(i32 noundef %2522) #12
  %.not611 = icmp eq i32 %2523, 0
  br i1 %.not611, label %2524, label %2525

2524:                                             ; preds = %2520, %2513
  br label %2525

2525:                                             ; preds = %2520, %2524
  %.str.4.sink1486 = phi ptr [ @.str.4, %2524 ], [ @.str, %2520 ]
  store i32 %2515, ptr %2514, align 4, !tbaa !5
  %2526 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2527 = load i32, ptr @test_count, align 4, !tbaa !5
  %2528 = load i32, ptr %380, align 4, !tbaa !5
  %2529 = call ptr @s2n_strerror(i32 noundef %2528, ptr noundef nonnull @.str.3) #12
  %2530 = load i32, ptr %380, align 4, !tbaa !5
  %2531 = call ptr @s2n_strerror_debug(i32 noundef %2530, ptr noundef nonnull @.str.3) #12
  %2532 = load i32, ptr %2514, align 4, !tbaa !5
  %2533 = call ptr @strerror(i32 noundef %2532) #12
  %2534 = load i32, ptr %2514, align 4, !tbaa !5
  %2535 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2526, ptr noundef nonnull %.str.4.sink1486, i32 noundef %2527, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.2, i32 noundef 301, ptr noundef %2529, ptr noundef %2531, ptr noundef %2533, i32 noundef %2534) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2536:                                             ; preds = %2508
  %2537 = load i32, ptr @test_count, align 4, !tbaa !5
  %2538 = add nsw i32 %2537, 1
  store i32 %2538, ptr @test_count, align 4, !tbaa !5
  %2539 = call i32 @s2n_stuffer_copy(ptr noundef nonnull %378, ptr noundef nonnull %382, i32 noundef 5) #12
  %2540 = icmp eq i32 %2539, -1
  br i1 %2540, label %2541, label %2564

2541:                                             ; preds = %2536
  %2542 = tail call ptr @__errno_location() #13
  %2543 = load i32, ptr %2542, align 4, !tbaa !5
  %2544 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2545 = call i32 @s2n_print_stacktrace(ptr noundef %2544) #12
  %2546 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2547 = trunc nuw i8 %2546 to i1
  br i1 %2547, label %2548, label %2552

2548:                                             ; preds = %2541
  %2549 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2550 = call i32 @fileno(ptr noundef %2549) #12
  %2551 = call i32 @isatty(i32 noundef %2550) #12
  %.not610 = icmp eq i32 %2551, 0
  br i1 %.not610, label %2552, label %2553

2552:                                             ; preds = %2548, %2541
  br label %2553

2553:                                             ; preds = %2548, %2552
  %.str.4.sink1495 = phi ptr [ @.str.4, %2552 ], [ @.str, %2548 ]
  store i32 %2543, ptr %2542, align 4, !tbaa !5
  %2554 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2555 = load i32, ptr @test_count, align 4, !tbaa !5
  %2556 = load i32, ptr %380, align 4, !tbaa !5
  %2557 = call ptr @s2n_strerror(i32 noundef %2556, ptr noundef nonnull @.str.3) #12
  %2558 = load i32, ptr %380, align 4, !tbaa !5
  %2559 = call ptr @s2n_strerror_debug(i32 noundef %2558, ptr noundef nonnull @.str.3) #12
  %2560 = load i32, ptr %2542, align 4, !tbaa !5
  %2561 = call ptr @strerror(i32 noundef %2560) #12
  %2562 = load i32, ptr %2542, align 4, !tbaa !5
  %2563 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2554, ptr noundef nonnull %.str.4.sink1495, i32 noundef %2555, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.2, i32 noundef 302, ptr noundef %2557, ptr noundef %2559, ptr noundef %2561, i32 noundef %2562) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2564:                                             ; preds = %2536
  %2565 = load i32, ptr @test_count, align 4, !tbaa !5
  %2566 = add nsw i32 %2565, 1
  store i32 %2566, ptr @test_count, align 4, !tbaa !5
  %2567 = load i32, ptr %383, align 4, !tbaa !62
  %2568 = load i32, ptr %384, align 8, !tbaa !63
  %2569 = sub i32 %2567, %2568
  %2570 = call i32 @s2n_stuffer_copy(ptr noundef nonnull %378, ptr noundef nonnull %381, i32 noundef %2569) #12
  %2571 = icmp eq i32 %2570, -1
  br i1 %2571, label %2572, label %2595

2572:                                             ; preds = %2564
  %2573 = tail call ptr @__errno_location() #13
  %2574 = load i32, ptr %2573, align 4, !tbaa !5
  %2575 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2576 = call i32 @s2n_print_stacktrace(ptr noundef %2575) #12
  %2577 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2578 = trunc nuw i8 %2577 to i1
  br i1 %2578, label %2579, label %2583

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

2583:                                             ; preds = %2579, %2572
  br label %2584

2584:                                             ; preds = %2579, %2583
  %.str.4.sink1504 = phi ptr [ @.str.4, %2583 ], [ @.str, %2579 ]
  store i32 %2574, ptr %2573, align 4, !tbaa !5
  %2585 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2586 = load i32, ptr @test_count, align 4, !tbaa !5
  %2587 = load i32, ptr %380, align 4, !tbaa !5
  %2588 = call ptr @s2n_strerror(i32 noundef %2587, ptr noundef nonnull @.str.3) #12
  %2589 = load i32, ptr %380, align 4, !tbaa !5
  %2590 = call ptr @s2n_strerror_debug(i32 noundef %2589, ptr noundef nonnull @.str.3) #12
  %2591 = load i32, ptr %2573, align 4, !tbaa !5
  %2592 = call ptr @strerror(i32 noundef %2591) #12
  %2593 = load i32, ptr %2573, align 4, !tbaa !5
  %2594 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2585, ptr noundef nonnull %.str.4.sink1504, i32 noundef %2586, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.2, i32 noundef 303, ptr noundef %2588, ptr noundef %2590, ptr noundef %2592, i32 noundef %2593) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2595:                                             ; preds = %2564
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %19) #12
  store i8 0, ptr %19, align 1, !tbaa !59
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %20) #12
  store i16 0, ptr %20, align 2, !tbaa !64
  %2596 = load i32, ptr @test_count, align 4, !tbaa !5
  %2597 = add nsw i32 %2596, 1
  store i32 %2597, ptr @test_count, align 4, !tbaa !5
  %2598 = call i32 @s2n_record_header_parse(ptr noundef nonnull %316, ptr noundef nonnull %19, ptr noundef nonnull %20) #12
  %2599 = icmp eq i32 %2598, -1
  br i1 %2599, label %2600, label %2623

2600:                                             ; preds = %2595
  %2601 = tail call ptr @__errno_location() #13
  %2602 = load i32, ptr %2601, align 4, !tbaa !5
  %2603 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2604 = call i32 @s2n_print_stacktrace(ptr noundef %2603) #12
  %2605 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2606 = trunc nuw i8 %2605 to i1
  br i1 %2606, label %2607, label %2611

2607:                                             ; preds = %2600
  %2608 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2609 = call i32 @fileno(ptr noundef %2608) #12
  %2610 = call i32 @isatty(i32 noundef %2609) #12
  %.not608 = icmp eq i32 %2610, 0
  br i1 %.not608, label %2611, label %2612

2611:                                             ; preds = %2607, %2600
  br label %2612

2612:                                             ; preds = %2607, %2611
  %.str.4.sink1513 = phi ptr [ @.str.4, %2611 ], [ @.str, %2607 ]
  store i32 %2602, ptr %2601, align 4, !tbaa !5
  %2613 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2614 = load i32, ptr @test_count, align 4, !tbaa !5
  %2615 = load i32, ptr %380, align 4, !tbaa !5
  %2616 = call ptr @s2n_strerror(i32 noundef %2615, ptr noundef nonnull @.str.3) #12
  %2617 = load i32, ptr %380, align 4, !tbaa !5
  %2618 = call ptr @s2n_strerror_debug(i32 noundef %2617, ptr noundef nonnull @.str.3) #12
  %2619 = load i32, ptr %2601, align 4, !tbaa !5
  %2620 = call ptr @strerror(i32 noundef %2619) #12
  %2621 = load i32, ptr %2601, align 4, !tbaa !5
  %2622 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2613, ptr noundef nonnull %.str.4.sink1513, i32 noundef %2614, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.2, i32 noundef 308, ptr noundef %2616, ptr noundef %2618, ptr noundef %2620, i32 noundef %2621) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2623:                                             ; preds = %2595
  %2624 = load i32, ptr @test_count, align 4, !tbaa !5
  %2625 = add nsw i32 %2624, 1
  store i32 %2625, ptr @test_count, align 4, !tbaa !5
  %2626 = call i32 @s2n_record_parse(ptr noundef nonnull %316) #12
  %2627 = icmp eq i32 %2626, -1
  br i1 %2627, label %2628, label %2651

2628:                                             ; preds = %2623
  %2629 = tail call ptr @__errno_location() #13
  %2630 = load i32, ptr %2629, align 4, !tbaa !5
  %2631 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2632 = call i32 @s2n_print_stacktrace(ptr noundef %2631) #12
  %2633 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2634 = trunc nuw i8 %2633 to i1
  br i1 %2634, label %2635, label %2639

2635:                                             ; preds = %2628
  %2636 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2637 = call i32 @fileno(ptr noundef %2636) #12
  %2638 = call i32 @isatty(i32 noundef %2637) #12
  %.not607 = icmp eq i32 %2638, 0
  br i1 %.not607, label %2639, label %2640

2639:                                             ; preds = %2635, %2628
  br label %2640

2640:                                             ; preds = %2635, %2639
  %.str.4.sink1522 = phi ptr [ @.str.4, %2639 ], [ @.str, %2635 ]
  store i32 %2630, ptr %2629, align 4, !tbaa !5
  %2641 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2642 = load i32, ptr @test_count, align 4, !tbaa !5
  %2643 = load i32, ptr %380, align 4, !tbaa !5
  %2644 = call ptr @s2n_strerror(i32 noundef %2643, ptr noundef nonnull @.str.3) #12
  %2645 = load i32, ptr %380, align 4, !tbaa !5
  %2646 = call ptr @s2n_strerror_debug(i32 noundef %2645, ptr noundef nonnull @.str.3) #12
  %2647 = load i32, ptr %2629, align 4, !tbaa !5
  %2648 = call ptr @strerror(i32 noundef %2647) #12
  %2649 = load i32, ptr %2629, align 4, !tbaa !5
  %2650 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2641, ptr noundef nonnull %.str.4.sink1522, i32 noundef %2642, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.2, i32 noundef 309, ptr noundef %2644, ptr noundef %2646, ptr noundef %2648, i32 noundef %2649) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2651:                                             ; preds = %2623
  %2652 = load i32, ptr @test_count, align 4, !tbaa !5
  %2653 = add nsw i32 %2652, 1
  store i32 %2653, ptr @test_count, align 4, !tbaa !5
  %2654 = load i8, ptr %19, align 1, !tbaa !59
  %2655 = icmp eq i8 %2654, 23
  br i1 %2655, label %2679, label %2656

2656:                                             ; preds = %2651
  %2657 = tail call ptr @__errno_location() #13
  %2658 = load i32, ptr %2657, align 4, !tbaa !5
  %2659 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2660 = call i32 @s2n_print_stacktrace(ptr noundef %2659) #12
  %2661 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2662 = trunc nuw i8 %2661 to i1
  br i1 %2662, label %2663, label %2667

2663:                                             ; preds = %2656
  %2664 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2665 = call i32 @fileno(ptr noundef %2664) #12
  %2666 = call i32 @isatty(i32 noundef %2665) #12
  %.not603 = icmp eq i32 %2666, 0
  br i1 %.not603, label %2667, label %2668

2667:                                             ; preds = %2663, %2656
  br label %2668

2668:                                             ; preds = %2663, %2667
  %.str.4.sink1531 = phi ptr [ @.str.4, %2667 ], [ @.str, %2663 ]
  store i32 %2658, ptr %2657, align 4, !tbaa !5
  %2669 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2670 = load i32, ptr @test_count, align 4, !tbaa !5
  %2671 = load i32, ptr %380, align 4, !tbaa !5
  %2672 = call ptr @s2n_strerror(i32 noundef %2671, ptr noundef nonnull @.str.3) #12
  %2673 = load i32, ptr %380, align 4, !tbaa !5
  %2674 = call ptr @s2n_strerror_debug(i32 noundef %2673, ptr noundef nonnull @.str.3) #12
  %2675 = load i32, ptr %2657, align 4, !tbaa !5
  %2676 = call ptr @strerror(i32 noundef %2675) #12
  %2677 = load i32, ptr %2657, align 4, !tbaa !5
  %2678 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2669, ptr noundef nonnull %.str.4.sink1531, i32 noundef %2670, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.2, i32 noundef 310, ptr noundef %2672, ptr noundef %2674, ptr noundef %2676, i32 noundef %2677) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2679:                                             ; preds = %2651
  %2680 = add nsw i32 %2652, 2
  store i32 %2680, ptr @test_count, align 4, !tbaa !5
  %2681 = load i16, ptr %20, align 2, !tbaa !64
  %2682 = trunc nuw i32 %.0539 to i16
  %2683 = icmp eq i16 %2681, %2682
  br i1 %2683, label %2707, label %2684

2684:                                             ; preds = %2679
  %2685 = tail call ptr @__errno_location() #13
  %2686 = load i32, ptr %2685, align 4, !tbaa !5
  %2687 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2688 = call i32 @s2n_print_stacktrace(ptr noundef %2687) #12
  %2689 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2690 = trunc nuw i8 %2689 to i1
  br i1 %2690, label %2691, label %2695

2691:                                             ; preds = %2684
  %2692 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2693 = call i32 @fileno(ptr noundef %2692) #12
  %2694 = call i32 @isatty(i32 noundef %2693) #12
  %.not604 = icmp eq i32 %2694, 0
  br i1 %.not604, label %2695, label %2696

2695:                                             ; preds = %2691, %2684
  br label %2696

2696:                                             ; preds = %2691, %2695
  %.str.4.sink1540 = phi ptr [ @.str.4, %2695 ], [ @.str, %2691 ]
  store i32 %2686, ptr %2685, align 4, !tbaa !5
  %2697 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2698 = load i32, ptr @test_count, align 4, !tbaa !5
  %2699 = load i32, ptr %380, align 4, !tbaa !5
  %2700 = call ptr @s2n_strerror(i32 noundef %2699, ptr noundef nonnull @.str.3) #12
  %2701 = load i32, ptr %380, align 4, !tbaa !5
  %2702 = call ptr @s2n_strerror_debug(i32 noundef %2701, ptr noundef nonnull @.str.3) #12
  %2703 = load i32, ptr %2685, align 4, !tbaa !5
  %2704 = call ptr @strerror(i32 noundef %2703) #12
  %2705 = load i32, ptr %2685, align 4, !tbaa !5
  %2706 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2697, ptr noundef nonnull %.str.4.sink1540, i32 noundef %2698, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.2, i32 noundef 311, ptr noundef %2700, ptr noundef %2702, ptr noundef %2704, i32 noundef %2705) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2707:                                             ; preds = %2679
  %2708 = add nsw i32 %2652, 3
  store i32 %2708, ptr @test_count, align 4, !tbaa !5
  %2709 = call i32 @s2n_stuffer_wipe(ptr noundef nonnull %382) #12
  %2710 = icmp eq i32 %2709, -1
  br i1 %2710, label %2711, label %2734

2711:                                             ; preds = %2707
  %2712 = tail call ptr @__errno_location() #13
  %2713 = load i32, ptr %2712, align 4, !tbaa !5
  %2714 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2715 = call i32 @s2n_print_stacktrace(ptr noundef %2714) #12
  %2716 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2717 = trunc nuw i8 %2716 to i1
  br i1 %2717, label %2718, label %2722

2718:                                             ; preds = %2711
  %2719 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2720 = call i32 @fileno(ptr noundef %2719) #12
  %2721 = call i32 @isatty(i32 noundef %2720) #12
  %.not606 = icmp eq i32 %2721, 0
  br i1 %.not606, label %2722, label %2723

2722:                                             ; preds = %2718, %2711
  br label %2723

2723:                                             ; preds = %2718, %2722
  %.str.4.sink1549 = phi ptr [ @.str.4, %2722 ], [ @.str, %2718 ]
  store i32 %2713, ptr %2712, align 4, !tbaa !5
  %2724 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2725 = load i32, ptr @test_count, align 4, !tbaa !5
  %2726 = load i32, ptr %380, align 4, !tbaa !5
  %2727 = call ptr @s2n_strerror(i32 noundef %2726, ptr noundef nonnull @.str.3) #12
  %2728 = load i32, ptr %380, align 4, !tbaa !5
  %2729 = call ptr @s2n_strerror_debug(i32 noundef %2728, ptr noundef nonnull @.str.3) #12
  %2730 = load i32, ptr %2712, align 4, !tbaa !5
  %2731 = call ptr @strerror(i32 noundef %2730) #12
  %2732 = load i32, ptr %2712, align 4, !tbaa !5
  %2733 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2724, ptr noundef nonnull %.str.4.sink1549, i32 noundef %2725, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.2, i32 noundef 313, ptr noundef %2727, ptr noundef %2729, ptr noundef %2731, i32 noundef %2732) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2734:                                             ; preds = %2707
  %2735 = load i32, ptr @test_count, align 4, !tbaa !5
  %2736 = add nsw i32 %2735, 1
  store i32 %2736, ptr @test_count, align 4, !tbaa !5
  %2737 = call i32 @s2n_stuffer_wipe(ptr noundef nonnull %381) #12
  %2738 = icmp eq i32 %2737, -1
  br i1 %2738, label %2739, label %2762

2739:                                             ; preds = %2734
  %2740 = tail call ptr @__errno_location() #13
  %2741 = load i32, ptr %2740, align 4, !tbaa !5
  %2742 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2743 = call i32 @s2n_print_stacktrace(ptr noundef %2742) #12
  %2744 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2745 = trunc nuw i8 %2744 to i1
  br i1 %2745, label %2746, label %2750

2746:                                             ; preds = %2739
  %2747 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2748 = call i32 @fileno(ptr noundef %2747) #12
  %2749 = call i32 @isatty(i32 noundef %2748) #12
  %.not605 = icmp eq i32 %2749, 0
  br i1 %.not605, label %2750, label %2751

2750:                                             ; preds = %2746, %2739
  br label %2751

2751:                                             ; preds = %2746, %2750
  %.str.4.sink1558 = phi ptr [ @.str.4, %2750 ], [ @.str, %2746 ]
  store i32 %2741, ptr %2740, align 4, !tbaa !5
  %2752 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2753 = load i32, ptr @test_count, align 4, !tbaa !5
  %2754 = load i32, ptr %380, align 4, !tbaa !5
  %2755 = call ptr @s2n_strerror(i32 noundef %2754, ptr noundef nonnull @.str.3) #12
  %2756 = load i32, ptr %380, align 4, !tbaa !5
  %2757 = call ptr @s2n_strerror_debug(i32 noundef %2756, ptr noundef nonnull @.str.3) #12
  %2758 = load i32, ptr %2740, align 4, !tbaa !5
  %2759 = call ptr @strerror(i32 noundef %2758) #12
  %2760 = load i32, ptr %2740, align 4, !tbaa !5
  %2761 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2752, ptr noundef nonnull %.str.4.sink1558, i32 noundef %2753, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.2, i32 noundef 314, ptr noundef %2755, ptr noundef %2757, ptr noundef %2759, i32 noundef %2760) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2762:                                             ; preds = %2734
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %20) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %19) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %18) #12
  %indvars.iv.next727 = add nuw nsw i64 %indvars.iv726, 1
  %exitcond729.not = icmp eq i64 %indvars.iv.next727, 8088
  br i1 %exitcond729.not, label %2031, label %2032, !llvm.loop !69

.preheader:                                       ; preds = %2027, %2769
  %indvars.iv738 = phi i64 [ 0, %2027 ], [ %indvars.iv.next739, %2769 ]
  %2763 = getelementptr inbounds [3 x i8], ptr @__const.main.proto_versions, i64 0, i64 %indvars.iv738
  br label %2770

2764:                                             ; preds = %2769
  %2765 = load i32, ptr @test_count, align 4, !tbaa !5
  %2766 = add nsw i32 %2765, 1
  store i32 %2766, ptr @test_count, align 4, !tbaa !5
  %2767 = call i32 @s2n_connection_free(ptr noundef nonnull %316) #12
  %2768 = icmp eq i32 %2767, -1
  br i1 %2768, label %3584, label %3607

2769:                                             ; preds = %3583
  %indvars.iv.next739 = add nuw nsw i64 %indvars.iv738, 1
  %exitcond741.not = icmp eq i64 %indvars.iv.next739, 3
  br i1 %exitcond741.not, label %2764, label %.preheader, !llvm.loop !70

2770:                                             ; preds = %.preheader, %3583
  %indvars.iv734 = phi i64 [ 0, %.preheader ], [ %indvars.iv.next735, %3583 ]
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %21) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %21, i8 0, i64 24, i1 false)
  %2771 = load i32, ptr @test_count, align 4, !tbaa !5
  %2772 = add nsw i32 %2771, 1
  store i32 %2772, ptr @test_count, align 4, !tbaa !5
  %2773 = trunc nuw nsw i64 %indvars.iv734 to i32
  %2774 = call i32 @s2n_blob_init(ptr noundef nonnull %21, ptr noundef nonnull %3, i32 noundef %2773) #12
  %2775 = icmp eq i32 %2774, -1
  br i1 %2775, label %2776, label %2799

2776:                                             ; preds = %2770
  %2777 = tail call ptr @__errno_location() #13
  %2778 = load i32, ptr %2777, align 4, !tbaa !5
  %2779 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2780 = call i32 @s2n_print_stacktrace(ptr noundef %2779) #12
  %2781 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2782 = trunc nuw i8 %2781 to i1
  br i1 %2782, label %2783, label %2787

2783:                                             ; preds = %2776
  %2784 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2785 = call i32 @fileno(ptr noundef %2784) #12
  %2786 = call i32 @isatty(i32 noundef %2785) #12
  %.not592 = icmp eq i32 %2786, 0
  br i1 %.not592, label %2787, label %2788

2787:                                             ; preds = %2783, %2776
  br label %2788

2788:                                             ; preds = %2783, %2787
  %.str.4.sink1567 = phi ptr [ @.str.4, %2787 ], [ @.str, %2783 ]
  store i32 %2778, ptr %2777, align 4, !tbaa !5
  %2789 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2790 = load i32, ptr @test_count, align 4, !tbaa !5
  %2791 = load i32, ptr %380, align 4, !tbaa !5
  %2792 = call ptr @s2n_strerror(i32 noundef %2791, ptr noundef nonnull @.str.3) #12
  %2793 = load i32, ptr %380, align 4, !tbaa !5
  %2794 = call ptr @s2n_strerror_debug(i32 noundef %2793, ptr noundef nonnull @.str.3) #12
  %2795 = load i32, ptr %2777, align 4, !tbaa !5
  %2796 = call ptr @strerror(i32 noundef %2795) #12
  %2797 = load i32, ptr %2777, align 4, !tbaa !5
  %2798 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2789, ptr noundef nonnull %.str.4.sink1567, i32 noundef %2790, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.2, i32 noundef 323, ptr noundef %2792, ptr noundef %2794, ptr noundef %2796, i32 noundef %2797) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2799:                                             ; preds = %2770
  %2800 = load i32, ptr @test_count, align 4, !tbaa !5
  %2801 = add nsw i32 %2800, 1
  store i32 %2801, ptr @test_count, align 4, !tbaa !5
  %2802 = call i32 @s2n_connection_wipe(ptr noundef nonnull %316) #12
  %2803 = icmp eq i32 %2802, -1
  br i1 %2803, label %2804, label %2827

2804:                                             ; preds = %2799
  %2805 = tail call ptr @__errno_location() #13
  %2806 = load i32, ptr %2805, align 4, !tbaa !5
  %2807 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2808 = call i32 @s2n_print_stacktrace(ptr noundef %2807) #12
  %2809 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2810 = trunc nuw i8 %2809 to i1
  br i1 %2810, label %2811, label %2815

2811:                                             ; preds = %2804
  %2812 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2813 = call i32 @fileno(ptr noundef %2812) #12
  %2814 = call i32 @isatty(i32 noundef %2813) #12
  %.not591 = icmp eq i32 %2814, 0
  br i1 %.not591, label %2815, label %2816

2815:                                             ; preds = %2811, %2804
  br label %2816

2816:                                             ; preds = %2811, %2815
  %.str.4.sink1576 = phi ptr [ @.str.4, %2815 ], [ @.str, %2811 ]
  store i32 %2806, ptr %2805, align 4, !tbaa !5
  %2817 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2818 = load i32, ptr @test_count, align 4, !tbaa !5
  %2819 = load i32, ptr %380, align 4, !tbaa !5
  %2820 = call ptr @s2n_strerror(i32 noundef %2819, ptr noundef nonnull @.str.3) #12
  %2821 = load i32, ptr %380, align 4, !tbaa !5
  %2822 = call ptr @s2n_strerror_debug(i32 noundef %2821, ptr noundef nonnull @.str.3) #12
  %2823 = load i32, ptr %2805, align 4, !tbaa !5
  %2824 = call ptr @strerror(i32 noundef %2823) #12
  %2825 = load i32, ptr %2805, align 4, !tbaa !5
  %2826 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2817, ptr noundef nonnull %.str.4.sink1576, i32 noundef %2818, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.2, i32 noundef 326, ptr noundef %2820, ptr noundef %2822, ptr noundef %2824, i32 noundef %2825) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2827:                                             ; preds = %2799
  %2828 = load i32, ptr @test_count, align 4, !tbaa !5
  %2829 = add nsw i32 %2828, 1
  store i32 %2829, ptr @test_count, align 4, !tbaa !5
  %2830 = load ptr, ptr %372, align 8, !tbaa !17
  %2831 = load ptr, ptr %2830, align 8, !tbaa !46
  %2832 = getelementptr inbounds i8, ptr %2831, i64 48
  %2833 = load ptr, ptr %2832, align 8, !tbaa !51
  %2834 = load ptr, ptr %2833, align 8, !tbaa !55
  %2835 = getelementptr inbounds i8, ptr %2834, i64 80
  %2836 = load ptr, ptr %2835, align 8, !tbaa !57
  %2837 = getelementptr inbounds i8, ptr %2830, i64 16
  %2838 = call i32 %2836(ptr noundef nonnull %2837, ptr noundef nonnull %9) #12
  %2839 = call zeroext i1 @s2n_result_is_ok(i32 %2838)
  br i1 %2839, label %2863, label %2840

2840:                                             ; preds = %2827
  %2841 = tail call ptr @__errno_location() #13
  %2842 = load i32, ptr %2841, align 4, !tbaa !5
  %2843 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2844 = call i32 @s2n_print_stacktrace(ptr noundef %2843) #12
  %2845 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2846 = trunc nuw i8 %2845 to i1
  br i1 %2846, label %2847, label %2851

2847:                                             ; preds = %2840
  %2848 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2849 = call i32 @fileno(ptr noundef %2848) #12
  %2850 = call i32 @isatty(i32 noundef %2849) #12
  %.not564 = icmp eq i32 %2850, 0
  br i1 %.not564, label %2851, label %2852

2851:                                             ; preds = %2847, %2840
  br label %2852

2852:                                             ; preds = %2847, %2851
  %.str.4.sink1585 = phi ptr [ @.str.4, %2851 ], [ @.str, %2847 ]
  store i32 %2842, ptr %2841, align 4, !tbaa !5
  %2853 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2854 = load i32, ptr @test_count, align 4, !tbaa !5
  %2855 = load i32, ptr %380, align 4, !tbaa !5
  %2856 = call ptr @s2n_strerror(i32 noundef %2855, ptr noundef nonnull @.str.3) #12
  %2857 = load i32, ptr %380, align 4, !tbaa !5
  %2858 = call ptr @s2n_strerror_debug(i32 noundef %2857, ptr noundef nonnull @.str.3) #12
  %2859 = load i32, ptr %2841, align 4, !tbaa !5
  %2860 = call ptr @strerror(i32 noundef %2859) #12
  %2861 = load i32, ptr %2841, align 4, !tbaa !5
  %2862 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2853, ptr noundef nonnull %.str.4.sink1585, i32 noundef %2854, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.2, i32 noundef 328, ptr noundef %2856, ptr noundef %2858, ptr noundef %2860, i32 noundef %2861) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2863:                                             ; preds = %2827
  %2864 = load i32, ptr @test_count, align 4, !tbaa !5
  %2865 = add nsw i32 %2864, 1
  store i32 %2865, ptr @test_count, align 4, !tbaa !5
  %2866 = load ptr, ptr %372, align 8, !tbaa !17
  %2867 = load ptr, ptr %2866, align 8, !tbaa !46
  %2868 = getelementptr inbounds i8, ptr %2867, i64 48
  %2869 = load ptr, ptr %2868, align 8, !tbaa !51
  %2870 = load ptr, ptr %2869, align 8, !tbaa !55
  %2871 = getelementptr inbounds i8, ptr %2870, i64 72
  %2872 = load ptr, ptr %2871, align 8, !tbaa !58
  %2873 = getelementptr inbounds i8, ptr %2866, i64 8
  %2874 = call i32 %2872(ptr noundef nonnull %2873, ptr noundef nonnull %9) #12
  %2875 = call zeroext i1 @s2n_result_is_ok(i32 %2874)
  br i1 %2875, label %2899, label %2876

2876:                                             ; preds = %2863
  %2877 = tail call ptr @__errno_location() #13
  %2878 = load i32, ptr %2877, align 4, !tbaa !5
  %2879 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2880 = call i32 @s2n_print_stacktrace(ptr noundef %2879) #12
  %2881 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2882 = trunc nuw i8 %2881 to i1
  br i1 %2882, label %2883, label %2887

2883:                                             ; preds = %2876
  %2884 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2885 = call i32 @fileno(ptr noundef %2884) #12
  %2886 = call i32 @isatty(i32 noundef %2885) #12
  %.not565 = icmp eq i32 %2886, 0
  br i1 %.not565, label %2887, label %2888

2887:                                             ; preds = %2883, %2876
  br label %2888

2888:                                             ; preds = %2883, %2887
  %.str.4.sink1594 = phi ptr [ @.str.4, %2887 ], [ @.str, %2883 ]
  store i32 %2878, ptr %2877, align 4, !tbaa !5
  %2889 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2890 = load i32, ptr @test_count, align 4, !tbaa !5
  %2891 = load i32, ptr %380, align 4, !tbaa !5
  %2892 = call ptr @s2n_strerror(i32 noundef %2891, ptr noundef nonnull @.str.3) #12
  %2893 = load i32, ptr %380, align 4, !tbaa !5
  %2894 = call ptr @s2n_strerror_debug(i32 noundef %2893, ptr noundef nonnull @.str.3) #12
  %2895 = load i32, ptr %2877, align 4, !tbaa !5
  %2896 = call ptr @strerror(i32 noundef %2895) #12
  %2897 = load i32, ptr %2877, align 4, !tbaa !5
  %2898 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2889, ptr noundef nonnull %.str.4.sink1594, i32 noundef %2890, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.2, i32 noundef 329, ptr noundef %2892, ptr noundef %2894, ptr noundef %2896, i32 noundef %2897) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2899:                                             ; preds = %2863
  %2900 = load i32, ptr @test_count, align 4, !tbaa !5
  %2901 = add nsw i32 %2900, 1
  store i32 %2901, ptr @test_count, align 4, !tbaa !5
  %2902 = load ptr, ptr %372, align 8, !tbaa !17
  %2903 = load ptr, ptr %2902, align 8, !tbaa !46
  %2904 = getelementptr inbounds i8, ptr %2903, i64 48
  %2905 = load ptr, ptr %2904, align 8, !tbaa !51
  %2906 = load ptr, ptr %2905, align 8, !tbaa !55
  %2907 = getelementptr inbounds i8, ptr %2906, i64 32
  %2908 = load ptr, ptr %2907, align 8, !tbaa !59
  %2909 = getelementptr inbounds i8, ptr %2902, i64 16
  %2910 = call i32 %2908(ptr noundef nonnull %2909, ptr noundef nonnull %5, i32 noundef 32) #12
  %2911 = icmp eq i32 %2910, -1
  br i1 %2911, label %2912, label %2935

2912:                                             ; preds = %2899
  %2913 = tail call ptr @__errno_location() #13
  %2914 = load i32, ptr %2913, align 4, !tbaa !5
  %2915 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2916 = call i32 @s2n_print_stacktrace(ptr noundef %2915) #12
  %2917 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2918 = trunc nuw i8 %2917 to i1
  br i1 %2918, label %2919, label %2923

2919:                                             ; preds = %2912
  %2920 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2921 = call i32 @fileno(ptr noundef %2920) #12
  %2922 = call i32 @isatty(i32 noundef %2921) #12
  %.not590 = icmp eq i32 %2922, 0
  br i1 %.not590, label %2923, label %2924

2923:                                             ; preds = %2919, %2912
  br label %2924

2924:                                             ; preds = %2919, %2923
  %.str.4.sink1603 = phi ptr [ @.str.4, %2923 ], [ @.str, %2919 ]
  store i32 %2914, ptr %2913, align 4, !tbaa !5
  %2925 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2926 = load i32, ptr @test_count, align 4, !tbaa !5
  %2927 = load i32, ptr %380, align 4, !tbaa !5
  %2928 = call ptr @s2n_strerror(i32 noundef %2927, ptr noundef nonnull @.str.3) #12
  %2929 = load i32, ptr %380, align 4, !tbaa !5
  %2930 = call ptr @s2n_strerror_debug(i32 noundef %2929, ptr noundef nonnull @.str.3) #12
  %2931 = load i32, ptr %2913, align 4, !tbaa !5
  %2932 = call ptr @strerror(i32 noundef %2931) #12
  %2933 = load i32, ptr %2913, align 4, !tbaa !5
  %2934 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2925, ptr noundef nonnull %.str.4.sink1603, i32 noundef %2926, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.2, i32 noundef 330, ptr noundef %2928, ptr noundef %2930, ptr noundef %2932, i32 noundef %2933) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2935:                                             ; preds = %2899
  %2936 = load i32, ptr @test_count, align 4, !tbaa !5
  %2937 = add nsw i32 %2936, 1
  store i32 %2937, ptr @test_count, align 4, !tbaa !5
  %2938 = load ptr, ptr %372, align 8, !tbaa !17
  %2939 = load ptr, ptr %2938, align 8, !tbaa !46
  %2940 = getelementptr inbounds i8, ptr %2939, i64 48
  %2941 = load ptr, ptr %2940, align 8, !tbaa !51
  %2942 = load ptr, ptr %2941, align 8, !tbaa !55
  %2943 = getelementptr inbounds i8, ptr %2942, i64 32
  %2944 = load ptr, ptr %2943, align 8, !tbaa !59
  %2945 = getelementptr inbounds i8, ptr %2938, i64 8
  %2946 = call i32 %2944(ptr noundef nonnull %2945, ptr noundef nonnull %5, i32 noundef 32) #12
  %2947 = icmp eq i32 %2946, -1
  br i1 %2947, label %2948, label %2971

2948:                                             ; preds = %2935
  %2949 = tail call ptr @__errno_location() #13
  %2950 = load i32, ptr %2949, align 4, !tbaa !5
  %2951 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2952 = call i32 @s2n_print_stacktrace(ptr noundef %2951) #12
  %2953 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2954 = trunc nuw i8 %2953 to i1
  br i1 %2954, label %2955, label %2959

2955:                                             ; preds = %2948
  %2956 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2957 = call i32 @fileno(ptr noundef %2956) #12
  %2958 = call i32 @isatty(i32 noundef %2957) #12
  %.not589 = icmp eq i32 %2958, 0
  br i1 %.not589, label %2959, label %2960

2959:                                             ; preds = %2955, %2948
  br label %2960

2960:                                             ; preds = %2955, %2959
  %.str.4.sink1612 = phi ptr [ @.str.4, %2959 ], [ @.str, %2955 ]
  store i32 %2950, ptr %2949, align 4, !tbaa !5
  %2961 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2962 = load i32, ptr @test_count, align 4, !tbaa !5
  %2963 = load i32, ptr %380, align 4, !tbaa !5
  %2964 = call ptr @s2n_strerror(i32 noundef %2963, ptr noundef nonnull @.str.3) #12
  %2965 = load i32, ptr %380, align 4, !tbaa !5
  %2966 = call ptr @s2n_strerror_debug(i32 noundef %2965, ptr noundef nonnull @.str.3) #12
  %2967 = load i32, ptr %2949, align 4, !tbaa !5
  %2968 = call ptr @strerror(i32 noundef %2967) #12
  %2969 = load i32, ptr %2949, align 4, !tbaa !5
  %2970 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2961, ptr noundef nonnull %.str.4.sink1612, i32 noundef %2962, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.2, i32 noundef 331, ptr noundef %2964, ptr noundef %2966, ptr noundef %2968, i32 noundef %2969) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2971:                                             ; preds = %2935
  %2972 = load i32, ptr @test_count, align 4, !tbaa !5
  %2973 = add nsw i32 %2972, 1
  store i32 %2973, ptr @test_count, align 4, !tbaa !5
  %2974 = call i32 @s2n_stuffer_wipe(ptr noundef nonnull %378) #12
  %2975 = icmp eq i32 %2974, -1
  br i1 %2975, label %2976, label %2999

2976:                                             ; preds = %2971
  %2977 = tail call ptr @__errno_location() #13
  %2978 = load i32, ptr %2977, align 4, !tbaa !5
  %2979 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2980 = call i32 @s2n_print_stacktrace(ptr noundef %2979) #12
  %2981 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2982 = trunc nuw i8 %2981 to i1
  br i1 %2982, label %2983, label %2987

2983:                                             ; preds = %2976
  %2984 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2985 = call i32 @fileno(ptr noundef %2984) #12
  %2986 = call i32 @isatty(i32 noundef %2985) #12
  %.not588 = icmp eq i32 %2986, 0
  br i1 %.not588, label %2987, label %2988

2987:                                             ; preds = %2983, %2976
  br label %2988

2988:                                             ; preds = %2983, %2987
  %.str.4.sink1621 = phi ptr [ @.str.4, %2987 ], [ @.str, %2983 ]
  store i32 %2978, ptr %2977, align 4, !tbaa !5
  %2989 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2990 = load i32, ptr @test_count, align 4, !tbaa !5
  %2991 = load i32, ptr %380, align 4, !tbaa !5
  %2992 = call ptr @s2n_strerror(i32 noundef %2991, ptr noundef nonnull @.str.3) #12
  %2993 = load i32, ptr %380, align 4, !tbaa !5
  %2994 = call ptr @s2n_strerror_debug(i32 noundef %2993, ptr noundef nonnull @.str.3) #12
  %2995 = load i32, ptr %2977, align 4, !tbaa !5
  %2996 = call ptr @strerror(i32 noundef %2995) #12
  %2997 = load i32, ptr %2977, align 4, !tbaa !5
  %2998 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2989, ptr noundef nonnull %.str.4.sink1621, i32 noundef %2990, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.2, i32 noundef 333, ptr noundef %2992, ptr noundef %2994, ptr noundef %2996, i32 noundef %2997) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2999:                                             ; preds = %2971
  %3000 = load i8, ptr %2763, align 1, !tbaa !59
  store i8 %3000, ptr %379, align 4, !tbaa !60
  %3001 = icmp ugt i8 %3000, 31
  %.692 = select i1 %3001, i32 16, i32 0
  %3002 = call i32 @s2n_record_write(ptr noundef nonnull %316, i8 noundef zeroext 23, ptr noundef nonnull %21) #12
  %.not566 = icmp eq i64 %indvars.iv734, 8088
  %3003 = load i32, ptr @test_count, align 4, !tbaa !5
  %3004 = add nsw i32 %3003, 1
  store i32 %3004, ptr @test_count, align 4, !tbaa !5
  br i1 %.not566, label %3030, label %3005

3005:                                             ; preds = %2999
  %3006 = call zeroext i1 @s2n_result_is_ok(i32 %3002)
  br i1 %3006, label %3112, label %3007

3007:                                             ; preds = %3005
  %3008 = tail call ptr @__errno_location() #13
  %3009 = load i32, ptr %3008, align 4, !tbaa !5
  %3010 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3011 = call i32 @s2n_print_stacktrace(ptr noundef %3010) #12
  %3012 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3013 = trunc nuw i8 %3012 to i1
  br i1 %3013, label %3014, label %3018

3014:                                             ; preds = %3007
  %3015 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3016 = call i32 @fileno(ptr noundef %3015) #12
  %3017 = call i32 @isatty(i32 noundef %3016) #12
  %.not570 = icmp eq i32 %3017, 0
  br i1 %.not570, label %3018, label %3019

3018:                                             ; preds = %3014, %3007
  br label %3019

3019:                                             ; preds = %3014, %3018
  %.str.4.sink1630 = phi ptr [ @.str.4, %3018 ], [ @.str, %3014 ]
  store i32 %3009, ptr %3008, align 4, !tbaa !5
  %3020 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3021 = load i32, ptr @test_count, align 4, !tbaa !5
  %3022 = load i32, ptr %380, align 4, !tbaa !5
  %3023 = call ptr @s2n_strerror(i32 noundef %3022, ptr noundef nonnull @.str.3) #12
  %3024 = load i32, ptr %380, align 4, !tbaa !5
  %3025 = call ptr @s2n_strerror_debug(i32 noundef %3024, ptr noundef nonnull @.str.3) #12
  %3026 = load i32, ptr %3008, align 4, !tbaa !5
  %3027 = call ptr @strerror(i32 noundef %3026) #12
  %3028 = load i32, ptr %3008, align 4, !tbaa !5
  %3029 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3020, ptr noundef nonnull %.str.4.sink1630, i32 noundef %3021, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.2, i32 noundef 345, ptr noundef %3023, ptr noundef %3025, ptr noundef %3027, i32 noundef %3028) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3030:                                             ; preds = %2999
  %3031 = call zeroext i1 @s2n_result_is_error(i32 %3002)
  br i1 %3031, label %3055, label %3032

3032:                                             ; preds = %3030
  %3033 = tail call ptr @__errno_location() #13
  %3034 = load i32, ptr %3033, align 4, !tbaa !5
  %3035 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3036 = call i32 @s2n_print_stacktrace(ptr noundef %3035) #12
  %3037 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3038 = trunc nuw i8 %3037 to i1
  br i1 %3038, label %3039, label %3043

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

3043:                                             ; preds = %3039, %3032
  br label %3044

3044:                                             ; preds = %3039, %3043
  %.str.4.sink1639 = phi ptr [ @.str.4, %3043 ], [ @.str, %3039 ]
  store i32 %3034, ptr %3033, align 4, !tbaa !5
  %3045 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3046 = load i32, ptr @test_count, align 4, !tbaa !5
  %3047 = load i32, ptr %380, align 4, !tbaa !5
  %3048 = call ptr @s2n_strerror(i32 noundef %3047, ptr noundef nonnull @.str.3) #12
  %3049 = load i32, ptr %380, align 4, !tbaa !5
  %3050 = call ptr @s2n_strerror_debug(i32 noundef %3049, ptr noundef nonnull @.str.3) #12
  %3051 = load i32, ptr %3033, align 4, !tbaa !5
  %3052 = call ptr @strerror(i32 noundef %3051) #12
  %3053 = load i32, ptr %3033, align 4, !tbaa !5
  %3054 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3045, ptr noundef nonnull %.str.4.sink1639, i32 noundef %3046, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.2, i32 noundef 348, ptr noundef %3048, ptr noundef %3050, ptr noundef %3052, i32 noundef %3053) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3055:                                             ; preds = %3030
  %3056 = load i32, ptr @test_count, align 4, !tbaa !5
  %3057 = add nsw i32 %3056, 1
  store i32 %3057, ptr @test_count, align 4, !tbaa !5
  %3058 = load i32, ptr %380, align 4, !tbaa !5
  %3059 = icmp eq i32 %3058, 335544390
  br i1 %3059, label %3083, label %3060

3060:                                             ; preds = %3055
  %3061 = tail call ptr @__errno_location() #13
  %3062 = load i32, ptr %3061, align 4, !tbaa !5
  %3063 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3064 = call i32 @s2n_print_stacktrace(ptr noundef %3063) #12
  %3065 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3066 = trunc nuw i8 %3065 to i1
  br i1 %3066, label %3067, label %3071

3067:                                             ; preds = %3060
  %3068 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3069 = call i32 @fileno(ptr noundef %3068) #12
  %3070 = call i32 @isatty(i32 noundef %3069) #12
  %.not568 = icmp eq i32 %3070, 0
  br i1 %.not568, label %3071, label %3072

3071:                                             ; preds = %3067, %3060
  br label %3072

3072:                                             ; preds = %3067, %3071
  %.str.4.sink1648 = phi ptr [ @.str.4, %3071 ], [ @.str, %3067 ]
  store i32 %3062, ptr %3061, align 4, !tbaa !5
  %3073 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3074 = load i32, ptr @test_count, align 4, !tbaa !5
  %3075 = load i32, ptr %380, align 4, !tbaa !5
  %3076 = call ptr @s2n_strerror(i32 noundef %3075, ptr noundef nonnull @.str.3) #12
  %3077 = load i32, ptr %380, align 4, !tbaa !5
  %3078 = call ptr @s2n_strerror_debug(i32 noundef %3077, ptr noundef nonnull @.str.3) #12
  %3079 = load i32, ptr %3061, align 4, !tbaa !5
  %3080 = call ptr @strerror(i32 noundef %3079) #12
  %3081 = load i32, ptr %3061, align 4, !tbaa !5
  %3082 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3073, ptr noundef nonnull %.str.4.sink1648, i32 noundef %3074, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.2, i32 noundef 348, ptr noundef %3076, ptr noundef %3078, ptr noundef %3080, i32 noundef %3081) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3083:                                             ; preds = %3055
  %3084 = add nsw i32 %3056, 2
  store i32 %3084, ptr @test_count, align 4, !tbaa !5
  %3085 = call ptr @s2n_strerror_debug(i32 noundef 335544390, ptr noundef nonnull @.str.3) #12
  %3086 = icmp eq ptr %3085, null
  br i1 %3086, label %3087, label %3110

3087:                                             ; preds = %3083
  %3088 = tail call ptr @__errno_location() #13
  %3089 = load i32, ptr %3088, align 4, !tbaa !5
  %3090 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3091 = call i32 @s2n_print_stacktrace(ptr noundef %3090) #12
  %3092 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3093 = trunc nuw i8 %3092 to i1
  br i1 %3093, label %3094, label %3098

3094:                                             ; preds = %3087
  %3095 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3096 = call i32 @fileno(ptr noundef %3095) #12
  %3097 = call i32 @isatty(i32 noundef %3096) #12
  %.not569 = icmp eq i32 %3097, 0
  br i1 %.not569, label %3098, label %3099

3098:                                             ; preds = %3094, %3087
  br label %3099

3099:                                             ; preds = %3094, %3098
  %.str.4.sink1657 = phi ptr [ @.str.4, %3098 ], [ @.str, %3094 ]
  store i32 %3089, ptr %3088, align 4, !tbaa !5
  %3100 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3101 = load i32, ptr @test_count, align 4, !tbaa !5
  %3102 = load i32, ptr %380, align 4, !tbaa !5
  %3103 = call ptr @s2n_strerror(i32 noundef %3102, ptr noundef nonnull @.str.3) #12
  %3104 = load i32, ptr %380, align 4, !tbaa !5
  %3105 = call ptr @s2n_strerror_debug(i32 noundef %3104, ptr noundef nonnull @.str.3) #12
  %3106 = load i32, ptr %3088, align 4, !tbaa !5
  %3107 = call ptr @strerror(i32 noundef %3106) #12
  %3108 = load i32, ptr %3088, align 4, !tbaa !5
  %3109 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3100, ptr noundef nonnull %.str.4.sink1657, i32 noundef %3101, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.2, i32 noundef 348, ptr noundef %3103, ptr noundef %3105, ptr noundef %3107, i32 noundef %3108) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3110:                                             ; preds = %3083
  store i32 0, ptr %380, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  %3111 = tail call ptr @__errno_location() #13
  store i32 0, ptr %3111, align 4, !tbaa !5
  br label %3112

3112:                                             ; preds = %3005, %3110
  %.0542 = phi i32 [ 8087, %3110 ], [ %2773, %3005 ]
  %3113 = add nuw nsw i32 %.0542, 33
  %3114 = add nuw nsw i32 %3113, %.692
  %3115 = and i32 %3113, 15
  %.not571 = icmp eq i32 %3115, 0
  %reass.sub715 = sub nuw nsw i32 %3114, %3115
  %3116 = add i32 %reass.sub715, 16
  %.0544 = select i1 %.not571, i32 %3114, i32 %3116
  %3117 = load i32, ptr @test_count, align 4, !tbaa !5
  %3118 = add nsw i32 %3117, 1
  store i32 %3118, ptr @test_count, align 4, !tbaa !5
  %3119 = load ptr, ptr %378, align 8, !tbaa !61
  %3120 = load i8, ptr %3119, align 1, !tbaa !59
  %3121 = icmp eq i8 %3120, 23
  br i1 %3121, label %3145, label %3122

3122:                                             ; preds = %3112
  %3123 = tail call ptr @__errno_location() #13
  %3124 = load i32, ptr %3123, align 4, !tbaa !5
  %3125 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3126 = call i32 @s2n_print_stacktrace(ptr noundef %3125) #12
  %3127 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3128 = trunc nuw i8 %3127 to i1
  br i1 %3128, label %3129, label %3133

3129:                                             ; preds = %3122
  %3130 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3131 = call i32 @fileno(ptr noundef %3130) #12
  %3132 = call i32 @isatty(i32 noundef %3131) #12
  %.not572 = icmp eq i32 %3132, 0
  br i1 %.not572, label %3133, label %3134

3133:                                             ; preds = %3129, %3122
  br label %3134

3134:                                             ; preds = %3129, %3133
  %.str.4.sink1666 = phi ptr [ @.str.4, %3133 ], [ @.str, %3129 ]
  store i32 %3124, ptr %3123, align 4, !tbaa !5
  %3135 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3136 = load i32, ptr @test_count, align 4, !tbaa !5
  %3137 = load i32, ptr %380, align 4, !tbaa !5
  %3138 = call ptr @s2n_strerror(i32 noundef %3137, ptr noundef nonnull @.str.3) #12
  %3139 = load i32, ptr %380, align 4, !tbaa !5
  %3140 = call ptr @s2n_strerror_debug(i32 noundef %3139, ptr noundef nonnull @.str.3) #12
  %3141 = load i32, ptr %3123, align 4, !tbaa !5
  %3142 = call ptr @strerror(i32 noundef %3141) #12
  %3143 = load i32, ptr %3123, align 4, !tbaa !5
  %3144 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3135, ptr noundef nonnull %.str.4.sink1666, i32 noundef %3136, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.2, i32 noundef 356, ptr noundef %3138, ptr noundef %3140, ptr noundef %3142, i32 noundef %3143) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3145:                                             ; preds = %3112
  %3146 = getelementptr inbounds i8, ptr %3119, i64 1
  %3147 = load i8, ptr %3146, align 1, !tbaa !59
  %3148 = mul i8 %3147, 10
  %3149 = getelementptr inbounds i8, ptr %3119, i64 2
  %3150 = load i8, ptr %3149, align 1, !tbaa !59
  %3151 = add i8 %3148, %3150
  %3152 = add nsw i32 %3117, 2
  store i32 %3152, ptr @test_count, align 4, !tbaa !5
  %3153 = load i8, ptr %379, align 4, !tbaa !60
  %3154 = icmp eq i8 %3151, %3153
  br i1 %3154, label %3178, label %3155

3155:                                             ; preds = %3145
  %3156 = tail call ptr @__errno_location() #13
  %3157 = load i32, ptr %3156, align 4, !tbaa !5
  %3158 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3159 = call i32 @s2n_print_stacktrace(ptr noundef %3158) #12
  %3160 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3161 = trunc nuw i8 %3160 to i1
  br i1 %3161, label %3162, label %3166

3162:                                             ; preds = %3155
  %3163 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3164 = call i32 @fileno(ptr noundef %3163) #12
  %3165 = call i32 @isatty(i32 noundef %3164) #12
  %.not573 = icmp eq i32 %3165, 0
  br i1 %.not573, label %3166, label %3167

3166:                                             ; preds = %3162, %3155
  br label %3167

3167:                                             ; preds = %3162, %3166
  %.str.4.sink1675 = phi ptr [ @.str.4, %3166 ], [ @.str, %3162 ]
  store i32 %3157, ptr %3156, align 4, !tbaa !5
  %3168 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3169 = load i32, ptr @test_count, align 4, !tbaa !5
  %3170 = load i32, ptr %380, align 4, !tbaa !5
  %3171 = call ptr @s2n_strerror(i32 noundef %3170, ptr noundef nonnull @.str.3) #12
  %3172 = load i32, ptr %380, align 4, !tbaa !5
  %3173 = call ptr @s2n_strerror_debug(i32 noundef %3172, ptr noundef nonnull @.str.3) #12
  %3174 = load i32, ptr %3156, align 4, !tbaa !5
  %3175 = call ptr @strerror(i32 noundef %3174) #12
  %3176 = load i32, ptr %3156, align 4, !tbaa !5
  %3177 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3168, ptr noundef nonnull %.str.4.sink1675, i32 noundef %3169, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.2, i32 noundef 358, ptr noundef %3171, ptr noundef %3173, ptr noundef %3175, i32 noundef %3176) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3178:                                             ; preds = %3145
  %3179 = add nsw i32 %3117, 3
  store i32 %3179, ptr @test_count, align 4, !tbaa !5
  %3180 = getelementptr inbounds i8, ptr %3119, i64 3
  %3181 = load i8, ptr %3180, align 1, !tbaa !59
  %3182 = lshr i32 %.0544, 8
  %3183 = trunc i32 %3182 to i8
  %3184 = icmp eq i8 %3181, %3183
  br i1 %3184, label %3208, label %3185

3185:                                             ; preds = %3178
  %3186 = tail call ptr @__errno_location() #13
  %3187 = load i32, ptr %3186, align 4, !tbaa !5
  %3188 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3189 = call i32 @s2n_print_stacktrace(ptr noundef %3188) #12
  %3190 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3191 = trunc nuw i8 %3190 to i1
  br i1 %3191, label %3192, label %3196

3192:                                             ; preds = %3185
  %3193 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3194 = call i32 @fileno(ptr noundef %3193) #12
  %3195 = call i32 @isatty(i32 noundef %3194) #12
  %.not574 = icmp eq i32 %3195, 0
  br i1 %.not574, label %3196, label %3197

3196:                                             ; preds = %3192, %3185
  br label %3197

3197:                                             ; preds = %3192, %3196
  %.str.4.sink1684 = phi ptr [ @.str.4, %3196 ], [ @.str, %3192 ]
  store i32 %3187, ptr %3186, align 4, !tbaa !5
  %3198 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3199 = load i32, ptr @test_count, align 4, !tbaa !5
  %3200 = load i32, ptr %380, align 4, !tbaa !5
  %3201 = call ptr @s2n_strerror(i32 noundef %3200, ptr noundef nonnull @.str.3) #12
  %3202 = load i32, ptr %380, align 4, !tbaa !5
  %3203 = call ptr @s2n_strerror_debug(i32 noundef %3202, ptr noundef nonnull @.str.3) #12
  %3204 = load i32, ptr %3186, align 4, !tbaa !5
  %3205 = call ptr @strerror(i32 noundef %3204) #12
  %3206 = load i32, ptr %3186, align 4, !tbaa !5
  %3207 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3198, ptr noundef nonnull %.str.4.sink1684, i32 noundef %3199, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.2, i32 noundef 359, ptr noundef %3201, ptr noundef %3203, ptr noundef %3205, i32 noundef %3206) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3208:                                             ; preds = %3178
  %3209 = add nsw i32 %3117, 4
  store i32 %3209, ptr @test_count, align 4, !tbaa !5
  %3210 = getelementptr inbounds i8, ptr %3119, i64 4
  %3211 = load i8, ptr %3210, align 1, !tbaa !59
  %3212 = trunc i32 %.0544 to i8
  %3213 = icmp eq i8 %3211, %3212
  br i1 %3213, label %3237, label %3214

3214:                                             ; preds = %3208
  %3215 = tail call ptr @__errno_location() #13
  %3216 = load i32, ptr %3215, align 4, !tbaa !5
  %3217 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3218 = call i32 @s2n_print_stacktrace(ptr noundef %3217) #12
  %3219 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3220 = trunc nuw i8 %3219 to i1
  br i1 %3220, label %3221, label %3225

3221:                                             ; preds = %3214
  %3222 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3223 = call i32 @fileno(ptr noundef %3222) #12
  %3224 = call i32 @isatty(i32 noundef %3223) #12
  %.not575 = icmp eq i32 %3224, 0
  br i1 %.not575, label %3225, label %3226

3225:                                             ; preds = %3221, %3214
  br label %3226

3226:                                             ; preds = %3221, %3225
  %.str.4.sink1693 = phi ptr [ @.str.4, %3225 ], [ @.str, %3221 ]
  store i32 %3216, ptr %3215, align 4, !tbaa !5
  %3227 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3228 = load i32, ptr @test_count, align 4, !tbaa !5
  %3229 = load i32, ptr %380, align 4, !tbaa !5
  %3230 = call ptr @s2n_strerror(i32 noundef %3229, ptr noundef nonnull @.str.3) #12
  %3231 = load i32, ptr %380, align 4, !tbaa !5
  %3232 = call ptr @s2n_strerror_debug(i32 noundef %3231, ptr noundef nonnull @.str.3) #12
  %3233 = load i32, ptr %3215, align 4, !tbaa !5
  %3234 = call ptr @strerror(i32 noundef %3233) #12
  %3235 = load i32, ptr %3215, align 4, !tbaa !5
  %3236 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3227, ptr noundef nonnull %.str.4.sink1693, i32 noundef %3228, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.2, i32 noundef 360, ptr noundef %3230, ptr noundef %3232, ptr noundef %3234, i32 noundef %3235) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3237:                                             ; preds = %3208
  %3238 = icmp ugt i32 %.0542, 10
  br i1 %3238, label %3239, label %3269

3239:                                             ; preds = %3237
  %3240 = add nsw i32 %3117, 5
  store i32 %3240, ptr @test_count, align 4, !tbaa !5
  %3241 = getelementptr inbounds i8, ptr %3119, i64 5
  %3242 = zext nneg i32 %.692 to i64
  %3243 = getelementptr inbounds i8, ptr %3241, i64 %3242
  %3244 = zext nneg i32 %.0542 to i64
  %bcmp = call i32 @bcmp(ptr nonnull %3243, ptr nonnull %3, i64 %3244)
  %3245 = icmp eq i32 %bcmp, 0
  br i1 %3245, label %3246, label %3269

3246:                                             ; preds = %3239
  %3247 = tail call ptr @__errno_location() #13
  %3248 = load i32, ptr %3247, align 4, !tbaa !5
  %3249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3250 = call i32 @s2n_print_stacktrace(ptr noundef %3249) #12
  %3251 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3252 = trunc nuw i8 %3251 to i1
  br i1 %3252, label %3253, label %3257

3253:                                             ; preds = %3246
  %3254 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3255 = call i32 @fileno(ptr noundef %3254) #12
  %3256 = call i32 @isatty(i32 noundef %3255) #12
  %.not587 = icmp eq i32 %3256, 0
  br i1 %.not587, label %3257, label %3258

3257:                                             ; preds = %3253, %3246
  br label %3258

3258:                                             ; preds = %3253, %3257
  %.str.4.sink1702 = phi ptr [ @.str.4, %3257 ], [ @.str, %3253 ]
  store i32 %3248, ptr %3247, align 4, !tbaa !5
  %3259 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3260 = load i32, ptr @test_count, align 4, !tbaa !5
  %3261 = load i32, ptr %380, align 4, !tbaa !5
  %3262 = call ptr @s2n_strerror(i32 noundef %3261, ptr noundef nonnull @.str.3) #12
  %3263 = load i32, ptr %380, align 4, !tbaa !5
  %3264 = call ptr @s2n_strerror_debug(i32 noundef %3263, ptr noundef nonnull @.str.3) #12
  %3265 = load i32, ptr %3247, align 4, !tbaa !5
  %3266 = call ptr @strerror(i32 noundef %3265) #12
  %3267 = load i32, ptr %3247, align 4, !tbaa !5
  %3268 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3259, ptr noundef nonnull %.str.4.sink1702, i32 noundef %3260, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.2, i32 noundef 364, ptr noundef %3262, ptr noundef %3264, ptr noundef %3266, i32 noundef %3267) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3269:                                             ; preds = %3239, %3237
  %3270 = phi i32 [ %3240, %3239 ], [ %3209, %3237 ]
  br i1 %3001, label %3271, label %3301

3271:                                             ; preds = %3269
  %3272 = getelementptr inbounds i8, ptr %3119, i64 5
  %3273 = add nsw i32 %3270, 1
  store i32 %3273, ptr @test_count, align 4, !tbaa !5
  %3274 = call i32 @ensure_explicit_iv_is_unique(ptr noundef nonnull %11, i64 noundef %indvars.iv734, ptr noundef nonnull %3272, i16 noundef zeroext 16)
  %3275 = icmp eq i32 %3274, -1
  br i1 %3275, label %3276, label %3299

3276:                                             ; preds = %3271
  %3277 = tail call ptr @__errno_location() #13
  %3278 = load i32, ptr %3277, align 4, !tbaa !5
  %3279 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3280 = call i32 @s2n_print_stacktrace(ptr noundef %3279) #12
  %3281 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3282 = trunc nuw i8 %3281 to i1
  br i1 %3282, label %3283, label %3287

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

3287:                                             ; preds = %3283, %3276
  br label %3288

3288:                                             ; preds = %3283, %3287
  %.str.4.sink1711 = phi ptr [ @.str.4, %3287 ], [ @.str, %3283 ]
  store i32 %3278, ptr %3277, align 4, !tbaa !5
  %3289 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3290 = load i32, ptr @test_count, align 4, !tbaa !5
  %3291 = load i32, ptr %380, align 4, !tbaa !5
  %3292 = call ptr @s2n_strerror(i32 noundef %3291, ptr noundef nonnull @.str.3) #12
  %3293 = load i32, ptr %380, align 4, !tbaa !5
  %3294 = call ptr @s2n_strerror_debug(i32 noundef %3293, ptr noundef nonnull @.str.3) #12
  %3295 = load i32, ptr %3277, align 4, !tbaa !5
  %3296 = call ptr @strerror(i32 noundef %3295) #12
  %3297 = load i32, ptr %3277, align 4, !tbaa !5
  %3298 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3289, ptr noundef nonnull %.str.4.sink1711, i32 noundef %3290, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.2, i32 noundef 370, ptr noundef %3292, ptr noundef %3294, ptr noundef %3296, i32 noundef %3297) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3299:                                             ; preds = %3271
  %3300 = getelementptr inbounds [8089 x [16 x i8]], ptr %11, i64 0, i64 %indvars.iv734
  call void @llvm.memmove.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %3300, ptr noundef nonnull align 1 dereferenceable(16) %3272, i64 16, i1 false)
  %.pre744 = load i32, ptr @test_count, align 4, !tbaa !5
  br label %3301

3301:                                             ; preds = %3269, %3299
  %3302 = phi i32 [ %3270, %3269 ], [ %.pre744, %3299 ]
  %3303 = add nsw i32 %3302, 1
  store i32 %3303, ptr @test_count, align 4, !tbaa !5
  %3304 = call i32 @s2n_stuffer_wipe(ptr noundef nonnull %381) #12
  %3305 = icmp eq i32 %3304, -1
  br i1 %3305, label %3306, label %3329

3306:                                             ; preds = %3301
  %3307 = tail call ptr @__errno_location() #13
  %3308 = load i32, ptr %3307, align 4, !tbaa !5
  %3309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3310 = call i32 @s2n_print_stacktrace(ptr noundef %3309) #12
  %3311 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3312 = trunc nuw i8 %3311 to i1
  br i1 %3312, label %3313, label %3317

3313:                                             ; preds = %3306
  %3314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3315 = call i32 @fileno(ptr noundef %3314) #12
  %3316 = call i32 @isatty(i32 noundef %3315) #12
  %.not585 = icmp eq i32 %3316, 0
  br i1 %.not585, label %3317, label %3318

3317:                                             ; preds = %3313, %3306
  br label %3318

3318:                                             ; preds = %3313, %3317
  %.str.4.sink1720 = phi ptr [ @.str.4, %3317 ], [ @.str, %3313 ]
  store i32 %3308, ptr %3307, align 4, !tbaa !5
  %3319 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3320 = load i32, ptr @test_count, align 4, !tbaa !5
  %3321 = load i32, ptr %380, align 4, !tbaa !5
  %3322 = call ptr @s2n_strerror(i32 noundef %3321, ptr noundef nonnull @.str.3) #12
  %3323 = load i32, ptr %380, align 4, !tbaa !5
  %3324 = call ptr @s2n_strerror_debug(i32 noundef %3323, ptr noundef nonnull @.str.3) #12
  %3325 = load i32, ptr %3307, align 4, !tbaa !5
  %3326 = call ptr @strerror(i32 noundef %3325) #12
  %3327 = load i32, ptr %3307, align 4, !tbaa !5
  %3328 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3319, ptr noundef nonnull %.str.4.sink1720, i32 noundef %3320, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.2, i32 noundef 376, ptr noundef %3322, ptr noundef %3324, ptr noundef %3326, i32 noundef %3327) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3329:                                             ; preds = %3301
  %3330 = load i32, ptr @test_count, align 4, !tbaa !5
  %3331 = add nsw i32 %3330, 1
  store i32 %3331, ptr @test_count, align 4, !tbaa !5
  %3332 = call i32 @s2n_stuffer_wipe(ptr noundef nonnull %382) #12
  %3333 = icmp eq i32 %3332, -1
  br i1 %3333, label %3334, label %3357

3334:                                             ; preds = %3329
  %3335 = tail call ptr @__errno_location() #13
  %3336 = load i32, ptr %3335, align 4, !tbaa !5
  %3337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3338 = call i32 @s2n_print_stacktrace(ptr noundef %3337) #12
  %3339 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3340 = trunc nuw i8 %3339 to i1
  br i1 %3340, label %3341, label %3345

3341:                                             ; preds = %3334
  %3342 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3343 = call i32 @fileno(ptr noundef %3342) #12
  %3344 = call i32 @isatty(i32 noundef %3343) #12
  %.not584 = icmp eq i32 %3344, 0
  br i1 %.not584, label %3345, label %3346

3345:                                             ; preds = %3341, %3334
  br label %3346

3346:                                             ; preds = %3341, %3345
  %.str.4.sink1729 = phi ptr [ @.str.4, %3345 ], [ @.str, %3341 ]
  store i32 %3336, ptr %3335, align 4, !tbaa !5
  %3347 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3348 = load i32, ptr @test_count, align 4, !tbaa !5
  %3349 = load i32, ptr %380, align 4, !tbaa !5
  %3350 = call ptr @s2n_strerror(i32 noundef %3349, ptr noundef nonnull @.str.3) #12
  %3351 = load i32, ptr %380, align 4, !tbaa !5
  %3352 = call ptr @s2n_strerror_debug(i32 noundef %3351, ptr noundef nonnull @.str.3) #12
  %3353 = load i32, ptr %3335, align 4, !tbaa !5
  %3354 = call ptr @strerror(i32 noundef %3353) #12
  %3355 = load i32, ptr %3335, align 4, !tbaa !5
  %3356 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3347, ptr noundef nonnull %.str.4.sink1729, i32 noundef %3348, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.2, i32 noundef 377, ptr noundef %3350, ptr noundef %3352, ptr noundef %3354, i32 noundef %3355) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3357:                                             ; preds = %3329
  %3358 = load i32, ptr @test_count, align 4, !tbaa !5
  %3359 = add nsw i32 %3358, 1
  store i32 %3359, ptr @test_count, align 4, !tbaa !5
  %3360 = call i32 @s2n_stuffer_copy(ptr noundef nonnull %378, ptr noundef nonnull %382, i32 noundef 5) #12
  %3361 = icmp eq i32 %3360, -1
  br i1 %3361, label %3362, label %3385

3362:                                             ; preds = %3357
  %3363 = tail call ptr @__errno_location() #13
  %3364 = load i32, ptr %3363, align 4, !tbaa !5
  %3365 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3366 = call i32 @s2n_print_stacktrace(ptr noundef %3365) #12
  %3367 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3368 = trunc nuw i8 %3367 to i1
  br i1 %3368, label %3369, label %3373

3369:                                             ; preds = %3362
  %3370 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3371 = call i32 @fileno(ptr noundef %3370) #12
  %3372 = call i32 @isatty(i32 noundef %3371) #12
  %.not583 = icmp eq i32 %3372, 0
  br i1 %.not583, label %3373, label %3374

3373:                                             ; preds = %3369, %3362
  br label %3374

3374:                                             ; preds = %3369, %3373
  %.str.4.sink1738 = phi ptr [ @.str.4, %3373 ], [ @.str, %3369 ]
  store i32 %3364, ptr %3363, align 4, !tbaa !5
  %3375 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3376 = load i32, ptr @test_count, align 4, !tbaa !5
  %3377 = load i32, ptr %380, align 4, !tbaa !5
  %3378 = call ptr @s2n_strerror(i32 noundef %3377, ptr noundef nonnull @.str.3) #12
  %3379 = load i32, ptr %380, align 4, !tbaa !5
  %3380 = call ptr @s2n_strerror_debug(i32 noundef %3379, ptr noundef nonnull @.str.3) #12
  %3381 = load i32, ptr %3363, align 4, !tbaa !5
  %3382 = call ptr @strerror(i32 noundef %3381) #12
  %3383 = load i32, ptr %3363, align 4, !tbaa !5
  %3384 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3375, ptr noundef nonnull %.str.4.sink1738, i32 noundef %3376, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.2, i32 noundef 378, ptr noundef %3378, ptr noundef %3380, ptr noundef %3382, i32 noundef %3383) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3385:                                             ; preds = %3357
  %3386 = load i32, ptr @test_count, align 4, !tbaa !5
  %3387 = add nsw i32 %3386, 1
  store i32 %3387, ptr @test_count, align 4, !tbaa !5
  %3388 = load i32, ptr %383, align 4, !tbaa !62
  %3389 = load i32, ptr %384, align 8, !tbaa !63
  %3390 = sub i32 %3388, %3389
  %3391 = call i32 @s2n_stuffer_copy(ptr noundef nonnull %378, ptr noundef nonnull %381, i32 noundef %3390) #12
  %3392 = icmp eq i32 %3391, -1
  br i1 %3392, label %3393, label %3416

3393:                                             ; preds = %3385
  %3394 = tail call ptr @__errno_location() #13
  %3395 = load i32, ptr %3394, align 4, !tbaa !5
  %3396 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3397 = call i32 @s2n_print_stacktrace(ptr noundef %3396) #12
  %3398 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3399 = trunc nuw i8 %3398 to i1
  br i1 %3399, label %3400, label %3404

3400:                                             ; preds = %3393
  %3401 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3402 = call i32 @fileno(ptr noundef %3401) #12
  %3403 = call i32 @isatty(i32 noundef %3402) #12
  %.not582 = icmp eq i32 %3403, 0
  br i1 %.not582, label %3404, label %3405

3404:                                             ; preds = %3400, %3393
  br label %3405

3405:                                             ; preds = %3400, %3404
  %.str.4.sink1747 = phi ptr [ @.str.4, %3404 ], [ @.str, %3400 ]
  store i32 %3395, ptr %3394, align 4, !tbaa !5
  %3406 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3407 = load i32, ptr @test_count, align 4, !tbaa !5
  %3408 = load i32, ptr %380, align 4, !tbaa !5
  %3409 = call ptr @s2n_strerror(i32 noundef %3408, ptr noundef nonnull @.str.3) #12
  %3410 = load i32, ptr %380, align 4, !tbaa !5
  %3411 = call ptr @s2n_strerror_debug(i32 noundef %3410, ptr noundef nonnull @.str.3) #12
  %3412 = load i32, ptr %3394, align 4, !tbaa !5
  %3413 = call ptr @strerror(i32 noundef %3412) #12
  %3414 = load i32, ptr %3394, align 4, !tbaa !5
  %3415 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3406, ptr noundef nonnull %.str.4.sink1747, i32 noundef %3407, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.2, i32 noundef 379, ptr noundef %3409, ptr noundef %3411, ptr noundef %3413, i32 noundef %3414) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3416:                                             ; preds = %3385
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %22) #12
  store i8 0, ptr %22, align 1, !tbaa !59
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %23) #12
  store i16 0, ptr %23, align 2, !tbaa !64
  %3417 = load i32, ptr @test_count, align 4, !tbaa !5
  %3418 = add nsw i32 %3417, 1
  store i32 %3418, ptr @test_count, align 4, !tbaa !5
  %3419 = call i32 @s2n_record_header_parse(ptr noundef nonnull %316, ptr noundef nonnull %22, ptr noundef nonnull %23) #12
  %3420 = icmp eq i32 %3419, -1
  br i1 %3420, label %3421, label %3444

3421:                                             ; preds = %3416
  %3422 = tail call ptr @__errno_location() #13
  %3423 = load i32, ptr %3422, align 4, !tbaa !5
  %3424 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3425 = call i32 @s2n_print_stacktrace(ptr noundef %3424) #12
  %3426 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3427 = trunc nuw i8 %3426 to i1
  br i1 %3427, label %3428, label %3432

3428:                                             ; preds = %3421
  %3429 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3430 = call i32 @fileno(ptr noundef %3429) #12
  %3431 = call i32 @isatty(i32 noundef %3430) #12
  %.not581 = icmp eq i32 %3431, 0
  br i1 %.not581, label %3432, label %3433

3432:                                             ; preds = %3428, %3421
  br label %3433

3433:                                             ; preds = %3428, %3432
  %.str.4.sink1756 = phi ptr [ @.str.4, %3432 ], [ @.str, %3428 ]
  store i32 %3423, ptr %3422, align 4, !tbaa !5
  %3434 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3435 = load i32, ptr @test_count, align 4, !tbaa !5
  %3436 = load i32, ptr %380, align 4, !tbaa !5
  %3437 = call ptr @s2n_strerror(i32 noundef %3436, ptr noundef nonnull @.str.3) #12
  %3438 = load i32, ptr %380, align 4, !tbaa !5
  %3439 = call ptr @s2n_strerror_debug(i32 noundef %3438, ptr noundef nonnull @.str.3) #12
  %3440 = load i32, ptr %3422, align 4, !tbaa !5
  %3441 = call ptr @strerror(i32 noundef %3440) #12
  %3442 = load i32, ptr %3422, align 4, !tbaa !5
  %3443 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3434, ptr noundef nonnull %.str.4.sink1756, i32 noundef %3435, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.2, i32 noundef 384, ptr noundef %3437, ptr noundef %3439, ptr noundef %3441, i32 noundef %3442) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3444:                                             ; preds = %3416
  %3445 = load i32, ptr @test_count, align 4, !tbaa !5
  %3446 = add nsw i32 %3445, 1
  store i32 %3446, ptr @test_count, align 4, !tbaa !5
  %3447 = call i32 @s2n_record_parse(ptr noundef nonnull %316) #12
  %3448 = icmp eq i32 %3447, -1
  br i1 %3448, label %3449, label %3472

3449:                                             ; preds = %3444
  %3450 = tail call ptr @__errno_location() #13
  %3451 = load i32, ptr %3450, align 4, !tbaa !5
  %3452 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3453 = call i32 @s2n_print_stacktrace(ptr noundef %3452) #12
  %3454 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3455 = trunc nuw i8 %3454 to i1
  br i1 %3455, label %3456, label %3460

3456:                                             ; preds = %3449
  %3457 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3458 = call i32 @fileno(ptr noundef %3457) #12
  %3459 = call i32 @isatty(i32 noundef %3458) #12
  %.not580 = icmp eq i32 %3459, 0
  br i1 %.not580, label %3460, label %3461

3460:                                             ; preds = %3456, %3449
  br label %3461

3461:                                             ; preds = %3456, %3460
  %.str.4.sink1765 = phi ptr [ @.str.4, %3460 ], [ @.str, %3456 ]
  store i32 %3451, ptr %3450, align 4, !tbaa !5
  %3462 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3463 = load i32, ptr @test_count, align 4, !tbaa !5
  %3464 = load i32, ptr %380, align 4, !tbaa !5
  %3465 = call ptr @s2n_strerror(i32 noundef %3464, ptr noundef nonnull @.str.3) #12
  %3466 = load i32, ptr %380, align 4, !tbaa !5
  %3467 = call ptr @s2n_strerror_debug(i32 noundef %3466, ptr noundef nonnull @.str.3) #12
  %3468 = load i32, ptr %3450, align 4, !tbaa !5
  %3469 = call ptr @strerror(i32 noundef %3468) #12
  %3470 = load i32, ptr %3450, align 4, !tbaa !5
  %3471 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3462, ptr noundef nonnull %.str.4.sink1765, i32 noundef %3463, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.2, i32 noundef 385, ptr noundef %3465, ptr noundef %3467, ptr noundef %3469, i32 noundef %3470) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3472:                                             ; preds = %3444
  %3473 = load i32, ptr @test_count, align 4, !tbaa !5
  %3474 = add nsw i32 %3473, 1
  store i32 %3474, ptr @test_count, align 4, !tbaa !5
  %3475 = load i8, ptr %22, align 1, !tbaa !59
  %3476 = icmp eq i8 %3475, 23
  br i1 %3476, label %3500, label %3477

3477:                                             ; preds = %3472
  %3478 = tail call ptr @__errno_location() #13
  %3479 = load i32, ptr %3478, align 4, !tbaa !5
  %3480 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3481 = call i32 @s2n_print_stacktrace(ptr noundef %3480) #12
  %3482 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3483 = trunc nuw i8 %3482 to i1
  br i1 %3483, label %3484, label %3488

3484:                                             ; preds = %3477
  %3485 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3486 = call i32 @fileno(ptr noundef %3485) #12
  %3487 = call i32 @isatty(i32 noundef %3486) #12
  %.not576 = icmp eq i32 %3487, 0
  br i1 %.not576, label %3488, label %3489

3488:                                             ; preds = %3484, %3477
  br label %3489

3489:                                             ; preds = %3484, %3488
  %.str.4.sink1774 = phi ptr [ @.str.4, %3488 ], [ @.str, %3484 ]
  store i32 %3479, ptr %3478, align 4, !tbaa !5
  %3490 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3491 = load i32, ptr @test_count, align 4, !tbaa !5
  %3492 = load i32, ptr %380, align 4, !tbaa !5
  %3493 = call ptr @s2n_strerror(i32 noundef %3492, ptr noundef nonnull @.str.3) #12
  %3494 = load i32, ptr %380, align 4, !tbaa !5
  %3495 = call ptr @s2n_strerror_debug(i32 noundef %3494, ptr noundef nonnull @.str.3) #12
  %3496 = load i32, ptr %3478, align 4, !tbaa !5
  %3497 = call ptr @strerror(i32 noundef %3496) #12
  %3498 = load i32, ptr %3478, align 4, !tbaa !5
  %3499 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3490, ptr noundef nonnull %.str.4.sink1774, i32 noundef %3491, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.2, i32 noundef 386, ptr noundef %3493, ptr noundef %3495, ptr noundef %3497, i32 noundef %3498) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3500:                                             ; preds = %3472
  %3501 = add nsw i32 %3473, 2
  store i32 %3501, ptr @test_count, align 4, !tbaa !5
  %3502 = load i16, ptr %23, align 2, !tbaa !64
  %3503 = trunc i32 %.0544 to i16
  %3504 = icmp eq i16 %3502, %3503
  br i1 %3504, label %3528, label %3505

3505:                                             ; preds = %3500
  %3506 = tail call ptr @__errno_location() #13
  %3507 = load i32, ptr %3506, align 4, !tbaa !5
  %3508 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3509 = call i32 @s2n_print_stacktrace(ptr noundef %3508) #12
  %3510 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3511 = trunc nuw i8 %3510 to i1
  br i1 %3511, label %3512, label %3516

3512:                                             ; preds = %3505
  %3513 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3514 = call i32 @fileno(ptr noundef %3513) #12
  %3515 = call i32 @isatty(i32 noundef %3514) #12
  %.not577 = icmp eq i32 %3515, 0
  br i1 %.not577, label %3516, label %3517

3516:                                             ; preds = %3512, %3505
  br label %3517

3517:                                             ; preds = %3512, %3516
  %.str.4.sink1783 = phi ptr [ @.str.4, %3516 ], [ @.str, %3512 ]
  store i32 %3507, ptr %3506, align 4, !tbaa !5
  %3518 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3519 = load i32, ptr @test_count, align 4, !tbaa !5
  %3520 = load i32, ptr %380, align 4, !tbaa !5
  %3521 = call ptr @s2n_strerror(i32 noundef %3520, ptr noundef nonnull @.str.3) #12
  %3522 = load i32, ptr %380, align 4, !tbaa !5
  %3523 = call ptr @s2n_strerror_debug(i32 noundef %3522, ptr noundef nonnull @.str.3) #12
  %3524 = load i32, ptr %3506, align 4, !tbaa !5
  %3525 = call ptr @strerror(i32 noundef %3524) #12
  %3526 = load i32, ptr %3506, align 4, !tbaa !5
  %3527 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3518, ptr noundef nonnull %.str.4.sink1783, i32 noundef %3519, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.2, i32 noundef 387, ptr noundef %3521, ptr noundef %3523, ptr noundef %3525, i32 noundef %3526) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3528:                                             ; preds = %3500
  %3529 = add nsw i32 %3473, 3
  store i32 %3529, ptr @test_count, align 4, !tbaa !5
  %3530 = call i32 @s2n_stuffer_wipe(ptr noundef nonnull %382) #12
  %3531 = icmp eq i32 %3530, -1
  br i1 %3531, label %3532, label %3555

3532:                                             ; preds = %3528
  %3533 = tail call ptr @__errno_location() #13
  %3534 = load i32, ptr %3533, align 4, !tbaa !5
  %3535 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3536 = call i32 @s2n_print_stacktrace(ptr noundef %3535) #12
  %3537 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3538 = trunc nuw i8 %3537 to i1
  br i1 %3538, label %3539, label %3543

3539:                                             ; preds = %3532
  %3540 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3541 = call i32 @fileno(ptr noundef %3540) #12
  %3542 = call i32 @isatty(i32 noundef %3541) #12
  %.not579 = icmp eq i32 %3542, 0
  br i1 %.not579, label %3543, label %3544

3543:                                             ; preds = %3539, %3532
  br label %3544

3544:                                             ; preds = %3539, %3543
  %.str.4.sink1792 = phi ptr [ @.str.4, %3543 ], [ @.str, %3539 ]
  store i32 %3534, ptr %3533, align 4, !tbaa !5
  %3545 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3546 = load i32, ptr @test_count, align 4, !tbaa !5
  %3547 = load i32, ptr %380, align 4, !tbaa !5
  %3548 = call ptr @s2n_strerror(i32 noundef %3547, ptr noundef nonnull @.str.3) #12
  %3549 = load i32, ptr %380, align 4, !tbaa !5
  %3550 = call ptr @s2n_strerror_debug(i32 noundef %3549, ptr noundef nonnull @.str.3) #12
  %3551 = load i32, ptr %3533, align 4, !tbaa !5
  %3552 = call ptr @strerror(i32 noundef %3551) #12
  %3553 = load i32, ptr %3533, align 4, !tbaa !5
  %3554 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3545, ptr noundef nonnull %.str.4.sink1792, i32 noundef %3546, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.2, i32 noundef 389, ptr noundef %3548, ptr noundef %3550, ptr noundef %3552, i32 noundef %3553) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3555:                                             ; preds = %3528
  %3556 = load i32, ptr @test_count, align 4, !tbaa !5
  %3557 = add nsw i32 %3556, 1
  store i32 %3557, ptr @test_count, align 4, !tbaa !5
  %3558 = call i32 @s2n_stuffer_wipe(ptr noundef nonnull %381) #12
  %3559 = icmp eq i32 %3558, -1
  br i1 %3559, label %3560, label %3583

3560:                                             ; preds = %3555
  %3561 = tail call ptr @__errno_location() #13
  %3562 = load i32, ptr %3561, align 4, !tbaa !5
  %3563 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3564 = call i32 @s2n_print_stacktrace(ptr noundef %3563) #12
  %3565 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3566 = trunc nuw i8 %3565 to i1
  br i1 %3566, label %3567, label %3571

3567:                                             ; preds = %3560
  %3568 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3569 = call i32 @fileno(ptr noundef %3568) #12
  %3570 = call i32 @isatty(i32 noundef %3569) #12
  %.not578 = icmp eq i32 %3570, 0
  br i1 %.not578, label %3571, label %3572

3571:                                             ; preds = %3567, %3560
  br label %3572

3572:                                             ; preds = %3567, %3571
  %.str.4.sink1801 = phi ptr [ @.str.4, %3571 ], [ @.str, %3567 ]
  store i32 %3562, ptr %3561, align 4, !tbaa !5
  %3573 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3574 = load i32, ptr @test_count, align 4, !tbaa !5
  %3575 = load i32, ptr %380, align 4, !tbaa !5
  %3576 = call ptr @s2n_strerror(i32 noundef %3575, ptr noundef nonnull @.str.3) #12
  %3577 = load i32, ptr %380, align 4, !tbaa !5
  %3578 = call ptr @s2n_strerror_debug(i32 noundef %3577, ptr noundef nonnull @.str.3) #12
  %3579 = load i32, ptr %3561, align 4, !tbaa !5
  %3580 = call ptr @strerror(i32 noundef %3579) #12
  %3581 = load i32, ptr %3561, align 4, !tbaa !5
  %3582 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3573, ptr noundef nonnull %.str.4.sink1801, i32 noundef %3574, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.2, i32 noundef 390, ptr noundef %3576, ptr noundef %3578, ptr noundef %3580, i32 noundef %3581) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3583:                                             ; preds = %3555
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %23) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %22) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %21) #12
  %indvars.iv.next735 = add nuw nsw i64 %indvars.iv734, 1
  %exitcond737.not = icmp eq i64 %indvars.iv.next735, 8089
  br i1 %exitcond737.not, label %2769, label %2770, !llvm.loop !71

3584:                                             ; preds = %2764
  %3585 = tail call ptr @__errno_location() #13
  %3586 = load i32, ptr %3585, align 4, !tbaa !5
  %3587 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3588 = call i32 @s2n_print_stacktrace(ptr noundef %3587) #12
  %3589 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3590 = trunc nuw i8 %3589 to i1
  br i1 %3590, label %3591, label %3595

3591:                                             ; preds = %3584
  %3592 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3593 = call i32 @fileno(ptr noundef %3592) #12
  %3594 = call i32 @isatty(i32 noundef %3593) #12
  %.not563 = icmp eq i32 %3594, 0
  br i1 %.not563, label %3595, label %3596

3595:                                             ; preds = %3591, %3584
  br label %3596

3596:                                             ; preds = %3591, %3595
  %.str.4.sink1810 = phi ptr [ @.str.4, %3595 ], [ @.str, %3591 ]
  store i32 %3586, ptr %3585, align 4, !tbaa !5
  %3597 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3598 = load i32, ptr @test_count, align 4, !tbaa !5
  %3599 = load i32, ptr %380, align 4, !tbaa !5
  %3600 = call ptr @s2n_strerror(i32 noundef %3599, ptr noundef nonnull @.str.3) #12
  %3601 = load i32, ptr %380, align 4, !tbaa !5
  %3602 = call ptr @s2n_strerror_debug(i32 noundef %3601, ptr noundef nonnull @.str.3) #12
  %3603 = load i32, ptr %3585, align 4, !tbaa !5
  %3604 = call ptr @strerror(i32 noundef %3603) #12
  %3605 = load i32, ptr %3585, align 4, !tbaa !5
  %3606 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3597, ptr noundef nonnull %.str.4.sink1810, i32 noundef %3598, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.2, i32 noundef 394, ptr noundef %3600, ptr noundef %3602, ptr noundef %3604, i32 noundef %3605) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3607:                                             ; preds = %2764
  %3608 = call i32 @s2n_cleanup() #12
  %3609 = icmp eq i32 %3608, -1
  br i1 %3609, label %3610, label %3633

3610:                                             ; preds = %3607
  %3611 = tail call ptr @__errno_location() #13
  %3612 = load i32, ptr %3611, align 4, !tbaa !5
  %3613 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3614 = call i32 @s2n_print_stacktrace(ptr noundef %3613) #12
  %3615 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3616 = trunc nuw i8 %3615 to i1
  br i1 %3616, label %3617, label %3621

3617:                                             ; preds = %3610
  %3618 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3619 = call i32 @fileno(ptr noundef %3618) #12
  %3620 = call i32 @isatty(i32 noundef %3619) #12
  %.not562 = icmp eq i32 %3620, 0
  br i1 %.not562, label %3621, label %3622

3621:                                             ; preds = %3617, %3610
  br label %3622

3622:                                             ; preds = %3617, %3621
  %.str.4.sink1819 = phi ptr [ @.str.4, %3621 ], [ @.str, %3617 ]
  store i32 %3612, ptr %3611, align 4, !tbaa !5
  %3623 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3624 = load i32, ptr @test_count, align 4, !tbaa !5
  %3625 = load i32, ptr %380, align 4, !tbaa !5
  %3626 = call ptr @s2n_strerror(i32 noundef %3625, ptr noundef nonnull @.str.3) #12
  %3627 = load i32, ptr %380, align 4, !tbaa !5
  %3628 = call ptr @s2n_strerror_debug(i32 noundef %3627, ptr noundef nonnull @.str.3) #12
  %3629 = load i32, ptr %3611, align 4, !tbaa !5
  %3630 = call ptr @strerror(i32 noundef %3629) #12
  %3631 = load i32, ptr %3611, align 4, !tbaa !5
  %3632 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3623, ptr noundef nonnull %.str.4.sink1819, i32 noundef %3624, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.2, i32 noundef 396, ptr noundef %3626, ptr noundef %3628, ptr noundef %3630, i32 noundef %3631) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3633:                                             ; preds = %3607
  %3634 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #12
  %3635 = icmp eq i32 %3634, -1
  br i1 %3635, label %3636, label %3659

3636:                                             ; preds = %3633
  %3637 = tail call ptr @__errno_location() #13
  %3638 = load i32, ptr %3637, align 4, !tbaa !5
  %3639 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3640 = call i32 @s2n_print_stacktrace(ptr noundef %3639) #12
  %3641 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3642 = trunc nuw i8 %3641 to i1
  br i1 %3642, label %3643, label %3647

3643:                                             ; preds = %3636
  %3644 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3645 = call i32 @fileno(ptr noundef %3644) #12
  %3646 = call i32 @isatty(i32 noundef %3645) #12
  %.not561 = icmp eq i32 %3646, 0
  br i1 %.not561, label %3647, label %3648

3647:                                             ; preds = %3643, %3636
  br label %3648

3648:                                             ; preds = %3643, %3647
  %.str.4.sink1828 = phi ptr [ @.str.4, %3647 ], [ @.str, %3643 ]
  store i32 %3638, ptr %3637, align 4, !tbaa !5
  %3649 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3650 = load i32, ptr @test_count, align 4, !tbaa !5
  %3651 = load i32, ptr %380, align 4, !tbaa !5
  %3652 = call ptr @s2n_strerror(i32 noundef %3651, ptr noundef nonnull @.str.3) #12
  %3653 = load i32, ptr %380, align 4, !tbaa !5
  %3654 = call ptr @s2n_strerror_debug(i32 noundef %3653, ptr noundef nonnull @.str.3) #12
  %3655 = load i32, ptr %3637, align 4, !tbaa !5
  %3656 = call ptr @strerror(i32 noundef %3655) #12
  %3657 = load i32, ptr %3637, align 4, !tbaa !5
  %3658 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3649, ptr noundef nonnull %.str.4.sink1828, i32 noundef %3650, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.2, i32 noundef 396, ptr noundef %3652, ptr noundef %3654, ptr noundef %3656, i32 noundef %3657) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3659:                                             ; preds = %3633
  %3660 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3661 = trunc nuw i8 %3660 to i1
  br i1 %3661, label %3662, label %3673

3662:                                             ; preds = %3659
  %3663 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3664 = call i32 @fileno(ptr noundef %3663) #12
  %3665 = call i32 @isatty(i32 noundef %3664) #12
  %.not558 = icmp eq i32 %3665, 0
  br i1 %.not558, label %3673, label %3666

3666:                                             ; preds = %3662
  %3667 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not560 = icmp eq i32 %3667, 0
  %3668 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not560, label %3671, label %3669

3669:                                             ; preds = %3666
  %3670 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3668, ptr noundef nonnull @.str.14, i32 noundef %3667) #12
  br label %3680

3671:                                             ; preds = %3666
  %3672 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3668, ptr noundef nonnull @.str.15) #12
  br label %3680

3673:                                             ; preds = %3662, %3659
  %3674 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not559 = icmp eq i32 %3674, 0
  %3675 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not559, label %3678, label %3676

3676:                                             ; preds = %3673
  %3677 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3675, ptr noundef nonnull @.str.16, i32 noundef %3674) #12
  br label %3680

3678:                                             ; preds = %3673
  %3679 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3675, ptr noundef nonnull @.str.17) #12
  br label %3680

3680:                                             ; preds = %3671, %3669, %3678, %3676, %304, %302, %311, %309
  call void @llvm.lifetime.end.p0(i64 129424, ptr nonnull %11) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %10) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %9) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %8) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #12
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %6) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #12
  call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %4) #12
  call void @llvm.lifetime.end.p0(i64 8088, ptr nonnull %3) #12
  ret i32 0
}

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

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

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

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

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

declare i32 @s2n_print_stacktrace(ptr noundef) local_unnamed_addr #4

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

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

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

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

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

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

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

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

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

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

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) local_unnamed_addr #4

declare i32 @s2n_enable_atexit() local_unnamed_addr #4

declare i32 @s2n_init() local_unnamed_addr #4

declare i32 @s2n_disable_tls13_in_test(...) local_unnamed_addr #4

declare 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

declare i32 @s2n_connection_wipe(ptr noundef) local_unnamed_addr #4

declare i32 @s2n_stuffer_wipe(ptr noundef) local_unnamed_addr #4

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

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

declare void @s2n_debug_info_reset() local_unnamed_addr #4

; Function Attrs: nounwind uwtable
declare hidden i32 @ensure_explicit_iv_is_unique(ptr noundef, i64 noundef, ptr noundef, i16 noundef zeroext) local_unnamed_addr #0

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

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 = distinct !{!53, !54}
!54 = !{!"llvm.loop.mustprogress"}
!55 = !{!56, !10, i64 0}
!56 = !{!"s2n_record_algorithm", !10, i64 0, !6, i64 8, !6, i64 12, !20, i64 16}
!57 = !{!16, !10, i64 80}
!58 = !{!16, !10, i64 72}
!59 = !{!7, !7, i64 0}
!60 = !{!18, !7, i64 220}
!61 = !{!18, !10, i64 1896}
!62 = !{!18, !6, i64 1924}
!63 = !{!18, !6, i64 1920}
!64 = !{!33, !33, i64 0}
!65 = distinct !{!65, !54}
!66 = distinct !{!66, !54}
!67 = distinct !{!67, !54}
!68 = distinct !{!68, !54}
!69 = distinct !{!69, !54}
!70 = distinct !{!70, !54}
!71 = distinct !{!71, !54}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,LCSSAPass,LICMPass,LoopRotatePass,LoopSimplifyPass,PostOrderFunctionAttrsPass,ReassociatePass,SCCPPass,SROAPass,SimplifyCFGPass,TailCallElimPass