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

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

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

@s2n_use_color_in_output = external dso_local global i8, align 1
@test_count = external dso_local global i32, align 4
@stdout = external global ptr, align 8
@.str = external hidden unnamed_addr constant [19 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [89 x i8], align 1
@stderr = external global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [52 x i8], align 1
@s2n_errno = external thread_local global i32, align 4
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [56 x i8], align 1
@s2n_tls13_aes_128_gcm_sha256 = external global %struct.s2n_cipher_suite, align 8
@s2n_tls13_aes_256_gcm_sha384 = external global %struct.s2n_cipher_suite, align 8
@s2n_tls13_chacha20_poly1305_sha256 = external global %struct.s2n_cipher_suite, align 8
@__const.main.hash_sizes = external hidden unnamed_addr constant [3 x i32], align 4
@.str.9 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [119 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [112 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [116 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [112 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [112 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [25 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local i32 @main(i32 noundef %0, ptr noundef %1) #0 {
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca [3 x %struct.s2n_cipher_suite], align 16
  %11 = alloca [3 x i32], align 4
  %12 = alloca i32, align 4
  %13 = alloca ptr, align 8
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca ptr, align 8
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca 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 i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca i32, align 4
  %46 = alloca ptr, align 8
  %47 = alloca i32, align 4
  %48 = alloca i32, align 4
  %49 = alloca i32, align 4
  %50 = alloca i32, align 4
  %51 = alloca i32, align 4
  %52 = alloca i32, align 4
  %53 = alloca ptr, align 8
  %54 = alloca i32, align 4
  %55 = alloca i32, align 4
  %56 = alloca i32, align 4
  %57 = alloca i32, align 4
  %58 = alloca i32, align 4
  %59 = alloca i32, align 4
  %60 = alloca i32, align 4
  %61 = alloca ptr, align 8
  %62 = alloca i32, align 4
  %63 = alloca i32, align 4
  %64 = alloca i32, align 4
  %65 = alloca ptr, align 8
  %66 = alloca i32, align 4
  %67 = alloca i32, align 4
  %68 = alloca i32, align 4
  %69 = alloca i32, align 4
  %70 = alloca i32, align 4
  %71 = alloca i32, align 4
  %72 = alloca i32, align 4
  %73 = alloca i32, align 4
  %74 = alloca ptr, align 8
  %75 = alloca i32, align 4
  %76 = alloca i32, align 4
  %77 = alloca i32, align 4
  %78 = alloca ptr, align 8
  %79 = alloca i32, align 4
  %80 = alloca i32, align 4
  %81 = alloca i32, align 4
  %82 = alloca i32, align 4
  %83 = alloca i32, align 4
  %84 = alloca i32, align 4
  %85 = alloca i32, align 4
  %86 = alloca i32, align 4
  %87 = alloca i32, align 4
  %88 = alloca i32, align 4
  %89 = alloca i32, align 4
  store i32 0, ptr %3, align 4
  store i32 %0, ptr %4, align 4, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !9
  br label %90

90:                                               ; preds = %2
  br label %91

91:                                               ; preds = %90
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %92 = load ptr, ptr @stdout, align 8, !tbaa !9
  %93 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %92, ptr noundef @.str, ptr noundef @.str.1) #8
  %94 = load ptr, ptr @stdout, align 8, !tbaa !9
  %95 = call i32 @fflush(ptr noundef %94)
  br label %96

96:                                               ; preds = %91
  %97 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %98 = icmp eq i32 %97, -1
  br i1 %98, label %99, label %150

99:                                               ; preds = %96
  br label %100

100:                                              ; preds = %99
  br label %101

101:                                              ; preds = %100
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #8
  %102 = call ptr @__errno_location() #9
  %103 = load i32, ptr %102, align 4, !tbaa !5
  store i32 %103, ptr %6, align 4, !tbaa !5
  %104 = load ptr, ptr @stderr, align 8, !tbaa !9
  %105 = call i32 @s2n_print_stacktrace(ptr noundef %104)
  %106 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %107 = trunc i8 %106 to i1
  br i1 %107, label %108, label %130

108:                                              ; preds = %101
  %109 = load ptr, ptr @stderr, align 8, !tbaa !9
  %110 = call i32 @fileno(ptr noundef %109) #8
  %111 = call i32 @isatty(i32 noundef %110) #8
  %112 = icmp ne i32 %111, 0
  br i1 %112, label %113, label %130

113:                                              ; preds = %108
  %114 = load i32, ptr %6, align 4, !tbaa !5
  %115 = call ptr @__errno_location() #9
  store i32 %114, ptr %115, align 4, !tbaa !5
  %116 = load ptr, ptr @stderr, align 8, !tbaa !9
  %117 = load i32, ptr @test_count, align 4, !tbaa !5
  %118 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %119 = load i32, ptr %118, align 4, !tbaa !5
  %120 = call ptr @s2n_strerror(i32 noundef %119, ptr noundef @.str.4)
  %121 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %122 = load i32, ptr %121, align 4, !tbaa !5
  %123 = call ptr @s2n_strerror_debug(i32 noundef %122, ptr noundef @.str.4)
  %124 = call ptr @__errno_location() #9
  %125 = load i32, ptr %124, align 4, !tbaa !5
  %126 = call ptr @strerror(i32 noundef %125) #8
  %127 = call ptr @__errno_location() #9
  %128 = load i32, ptr %127, align 4, !tbaa !5
  %129 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %116, ptr noundef @.str.2, i32 noundef %117, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 32, ptr noundef %120, ptr noundef %123, ptr noundef %126, i32 noundef %128) #8
  br label %147

130:                                              ; preds = %108, %101
  %131 = load i32, ptr %6, align 4, !tbaa !5
  %132 = call ptr @__errno_location() #9
  store i32 %131, ptr %132, align 4, !tbaa !5
  %133 = load ptr, ptr @stderr, align 8, !tbaa !9
  %134 = load i32, ptr @test_count, align 4, !tbaa !5
  %135 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %136 = load i32, ptr %135, align 4, !tbaa !5
  %137 = call ptr @s2n_strerror(i32 noundef %136, ptr noundef @.str.4)
  %138 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %139 = load i32, ptr %138, align 4, !tbaa !5
  %140 = call ptr @s2n_strerror_debug(i32 noundef %139, ptr noundef @.str.4)
  %141 = call ptr @__errno_location() #9
  %142 = load i32, ptr %141, align 4, !tbaa !5
  %143 = call ptr @strerror(i32 noundef %142) #8
  %144 = call ptr @__errno_location() #9
  %145 = load i32, ptr %144, align 4, !tbaa !5
  %146 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %133, ptr noundef @.str.5, i32 noundef %134, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 32, ptr noundef %137, ptr noundef %140, ptr noundef %143, i32 noundef %145) #8
  br label %147

147:                                              ; preds = %130, %113
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #8
  br label %148

148:                                              ; preds = %147
  call void @exit(i32 noundef 1) #10
  unreachable

149:                                              ; No predecessors!
  br label %150

150:                                              ; preds = %149, %96
  br label %151

151:                                              ; preds = %150
  br label %152

152:                                              ; preds = %151
  %153 = load i32, ptr @test_count, align 4, !tbaa !5
  %154 = add nsw i32 %153, 1
  store i32 %154, ptr @test_count, align 4, !tbaa !5
  %155 = call i32 @s2n_enable_atexit()
  %156 = icmp eq i32 %155, -1
  br i1 %156, label %157, label %208

157:                                              ; preds = %152
  br label %158

158:                                              ; preds = %157
  br label %159

159:                                              ; preds = %158
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #8
  %160 = call ptr @__errno_location() #9
  %161 = load i32, ptr %160, align 4, !tbaa !5
  store i32 %161, ptr %7, align 4, !tbaa !5
  %162 = load ptr, ptr @stderr, align 8, !tbaa !9
  %163 = call i32 @s2n_print_stacktrace(ptr noundef %162)
  %164 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %165 = trunc i8 %164 to i1
  br i1 %165, label %166, label %188

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

171:                                              ; preds = %166
  %172 = load i32, ptr %7, align 4, !tbaa !5
  %173 = call ptr @__errno_location() #9
  store i32 %172, ptr %173, align 4, !tbaa !5
  %174 = load ptr, ptr @stderr, align 8, !tbaa !9
  %175 = load i32, ptr @test_count, align 4, !tbaa !5
  %176 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %177 = load i32, ptr %176, align 4, !tbaa !5
  %178 = call ptr @s2n_strerror(i32 noundef %177, ptr noundef @.str.4)
  %179 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %180 = load i32, ptr %179, align 4, !tbaa !5
  %181 = call ptr @s2n_strerror_debug(i32 noundef %180, ptr noundef @.str.4)
  %182 = call ptr @__errno_location() #9
  %183 = load i32, ptr %182, align 4, !tbaa !5
  %184 = call ptr @strerror(i32 noundef %183) #8
  %185 = call ptr @__errno_location() #9
  %186 = load i32, ptr %185, align 4, !tbaa !5
  %187 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %174, ptr noundef @.str.2, i32 noundef %175, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 32, ptr noundef %178, ptr noundef %181, ptr noundef %184, i32 noundef %186) #8
  br label %205

188:                                              ; preds = %166, %159
  %189 = load i32, ptr %7, align 4, !tbaa !5
  %190 = call ptr @__errno_location() #9
  store i32 %189, ptr %190, align 4, !tbaa !5
  %191 = load ptr, ptr @stderr, align 8, !tbaa !9
  %192 = load i32, ptr @test_count, align 4, !tbaa !5
  %193 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %194 = load i32, ptr %193, align 4, !tbaa !5
  %195 = call ptr @s2n_strerror(i32 noundef %194, ptr noundef @.str.4)
  %196 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %197 = load i32, ptr %196, align 4, !tbaa !5
  %198 = call ptr @s2n_strerror_debug(i32 noundef %197, ptr noundef @.str.4)
  %199 = call ptr @__errno_location() #9
  %200 = load i32, ptr %199, align 4, !tbaa !5
  %201 = call ptr @strerror(i32 noundef %200) #8
  %202 = call ptr @__errno_location() #9
  %203 = load i32, ptr %202, align 4, !tbaa !5
  %204 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %191, ptr noundef @.str.5, i32 noundef %192, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 32, ptr noundef %195, ptr noundef %198, ptr noundef %201, i32 noundef %203) #8
  br label %205

205:                                              ; preds = %188, %171
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #8
  br label %206

206:                                              ; preds = %205
  call void @exit(i32 noundef 1) #10
  unreachable

207:                                              ; No predecessors!
  br label %208

208:                                              ; preds = %207, %152
  br label %209

209:                                              ; preds = %208
  br label %210

210:                                              ; preds = %209
  br label %211

211:                                              ; preds = %210
  %212 = call i32 @s2n_init()
  %213 = icmp eq i32 %212, -1
  br i1 %213, label %214, label %265

214:                                              ; preds = %211
  br label %215

215:                                              ; preds = %214
  br label %216

216:                                              ; preds = %215
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #8
  %217 = call ptr @__errno_location() #9
  %218 = load i32, ptr %217, align 4, !tbaa !5
  store i32 %218, ptr %8, align 4, !tbaa !5
  %219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %220 = call i32 @s2n_print_stacktrace(ptr noundef %219)
  %221 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %222 = trunc i8 %221 to i1
  br i1 %222, label %223, label %245

223:                                              ; preds = %216
  %224 = load ptr, ptr @stderr, align 8, !tbaa !9
  %225 = call i32 @fileno(ptr noundef %224) #8
  %226 = call i32 @isatty(i32 noundef %225) #8
  %227 = icmp ne i32 %226, 0
  br i1 %227, label %228, label %245

228:                                              ; preds = %223
  %229 = load i32, ptr %8, align 4, !tbaa !5
  %230 = call ptr @__errno_location() #9
  store i32 %229, ptr %230, align 4, !tbaa !5
  %231 = load ptr, ptr @stderr, align 8, !tbaa !9
  %232 = load i32, ptr @test_count, align 4, !tbaa !5
  %233 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %234 = load i32, ptr %233, align 4, !tbaa !5
  %235 = call ptr @s2n_strerror(i32 noundef %234, ptr noundef @.str.4)
  %236 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %237 = load i32, ptr %236, align 4, !tbaa !5
  %238 = call ptr @s2n_strerror_debug(i32 noundef %237, ptr noundef @.str.4)
  %239 = call ptr @__errno_location() #9
  %240 = load i32, ptr %239, align 4, !tbaa !5
  %241 = call ptr @strerror(i32 noundef %240) #8
  %242 = call ptr @__errno_location() #9
  %243 = load i32, ptr %242, align 4, !tbaa !5
  %244 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %231, ptr noundef @.str.2, i32 noundef %232, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 32, ptr noundef %235, ptr noundef %238, ptr noundef %241, i32 noundef %243) #8
  br label %262

245:                                              ; preds = %223, %216
  %246 = load i32, ptr %8, align 4, !tbaa !5
  %247 = call ptr @__errno_location() #9
  store i32 %246, ptr %247, align 4, !tbaa !5
  %248 = load ptr, ptr @stderr, align 8, !tbaa !9
  %249 = load i32, ptr @test_count, align 4, !tbaa !5
  %250 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %251 = load i32, ptr %250, align 4, !tbaa !5
  %252 = call ptr @s2n_strerror(i32 noundef %251, ptr noundef @.str.4)
  %253 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %254 = load i32, ptr %253, align 4, !tbaa !5
  %255 = call ptr @s2n_strerror_debug(i32 noundef %254, ptr noundef @.str.4)
  %256 = call ptr @__errno_location() #9
  %257 = load i32, ptr %256, align 4, !tbaa !5
  %258 = call ptr @strerror(i32 noundef %257) #8
  %259 = call ptr @__errno_location() #9
  %260 = load i32, ptr %259, align 4, !tbaa !5
  %261 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %248, ptr noundef @.str.5, i32 noundef %249, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 32, ptr noundef %252, ptr noundef %255, ptr noundef %258, i32 noundef %260) #8
  br label %262

262:                                              ; preds = %245, %228
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #8
  br label %263

263:                                              ; preds = %262
  call void @exit(i32 noundef 1) #10
  unreachable

264:                                              ; No predecessors!
  br label %265

265:                                              ; preds = %264, %211
  br label %266

266:                                              ; preds = %265
  br label %267

267:                                              ; preds = %266
  br label %268

268:                                              ; preds = %267
  %269 = load i32, ptr @test_count, align 4, !tbaa !5
  %270 = add nsw i32 %269, 1
  store i32 %270, ptr @test_count, align 4, !tbaa !5
  %271 = call i32 (...) @s2n_disable_tls13_in_test()
  %272 = icmp eq i32 %271, -1
  br i1 %272, label %273, label %324

273:                                              ; preds = %268
  br label %274

274:                                              ; preds = %273
  br label %275

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

282:                                              ; preds = %275
  %283 = load ptr, ptr @stderr, align 8, !tbaa !9
  %284 = call i32 @fileno(ptr noundef %283) #8
  %285 = call i32 @isatty(i32 noundef %284) #8
  %286 = icmp ne i32 %285, 0
  br i1 %286, label %287, label %304

287:                                              ; preds = %282
  %288 = load i32, ptr %9, align 4, !tbaa !5
  %289 = call ptr @__errno_location() #9
  store i32 %288, ptr %289, align 4, !tbaa !5
  %290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %291 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %293, ptr noundef @.str.4)
  %295 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %296 = load i32, ptr %295, align 4, !tbaa !5
  %297 = call ptr @s2n_strerror_debug(i32 noundef %296, ptr noundef @.str.4)
  %298 = call ptr @__errno_location() #9
  %299 = load i32, ptr %298, align 4, !tbaa !5
  %300 = call ptr @strerror(i32 noundef %299) #8
  %301 = call ptr @__errno_location() #9
  %302 = load i32, ptr %301, align 4, !tbaa !5
  %303 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %290, ptr noundef @.str.2, i32 noundef %291, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 33, ptr noundef %294, ptr noundef %297, ptr noundef %300, i32 noundef %302) #8
  br label %321

304:                                              ; preds = %282, %275
  %305 = load i32, ptr %9, align 4, !tbaa !5
  %306 = call ptr @__errno_location() #9
  store i32 %305, ptr %306, align 4, !tbaa !5
  %307 = load ptr, ptr @stderr, align 8, !tbaa !9
  %308 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %310, ptr noundef @.str.4)
  %312 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %313 = load i32, ptr %312, align 4, !tbaa !5
  %314 = call ptr @s2n_strerror_debug(i32 noundef %313, ptr noundef @.str.4)
  %315 = call ptr @__errno_location() #9
  %316 = load i32, ptr %315, align 4, !tbaa !5
  %317 = call ptr @strerror(i32 noundef %316) #8
  %318 = call ptr @__errno_location() #9
  %319 = load i32, ptr %318, align 4, !tbaa !5
  %320 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %307, ptr noundef @.str.5, i32 noundef %308, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 33, ptr noundef %311, ptr noundef %314, ptr noundef %317, i32 noundef %319) #8
  br label %321

321:                                              ; preds = %304, %287
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #8
  br label %322

322:                                              ; preds = %321
  call void @exit(i32 noundef 1) #10
  unreachable

323:                                              ; No predecessors!
  br label %324

324:                                              ; preds = %323, %268
  br label %325

325:                                              ; preds = %324
  call void @llvm.lifetime.start.p0(i64 312, ptr %10) #8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %10, ptr align 8 @s2n_tls13_aes_128_gcm_sha256, i64 104, i1 false), !tbaa.struct !15
  %326 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %10, i64 1
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %326, ptr align 8 @s2n_tls13_aes_256_gcm_sha384, i64 104, i1 false), !tbaa.struct !15
  %327 = getelementptr inbounds %struct.s2n_cipher_suite, ptr %10, i64 2
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %327, ptr align 8 @s2n_tls13_chacha20_poly1305_sha256, i64 104, i1 false), !tbaa.struct !15
  call void @llvm.lifetime.start.p0(i64 12, ptr %11) #8
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %11, ptr align 4 @__const.main.hash_sizes, i64 12, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #8
  store i32 0, ptr %12, align 4, !tbaa !5
  br label %328

328:                                              ; preds = %2336, %325
  %329 = load i32, ptr %12, align 4, !tbaa !5
  %330 = icmp slt i32 %329, 3
  br i1 %330, label %332, label %331

331:                                              ; preds = %328
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #8
  br label %2339

332:                                              ; preds = %328
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #8
  store ptr null, ptr %13, align 8, !tbaa !9
  br label %333

333:                                              ; preds = %332
  %334 = load i32, ptr @test_count, align 4, !tbaa !5
  %335 = add nsw i32 %334, 1
  store i32 %335, ptr @test_count, align 4, !tbaa !5
  %336 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %336, ptr %13, align 8, !tbaa !9
  %337 = icmp eq ptr %336, null
  br i1 %337, label %338, label %391

338:                                              ; preds = %333
  br label %339

339:                                              ; preds = %338
  br label %340

340:                                              ; preds = %339
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #8
  %341 = call ptr @__errno_location() #9
  %342 = load i32, ptr %341, align 4, !tbaa !5
  store i32 %342, ptr %14, align 4, !tbaa !5
  %343 = load ptr, ptr @stderr, align 8, !tbaa !9
  %344 = call i32 @s2n_print_stacktrace(ptr noundef %343)
  %345 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %346 = trunc i8 %345 to i1
  br i1 %346, label %347, label %369

347:                                              ; preds = %340
  %348 = load ptr, ptr @stderr, align 8, !tbaa !9
  %349 = call i32 @fileno(ptr noundef %348) #8
  %350 = call i32 @isatty(i32 noundef %349) #8
  %351 = icmp ne i32 %350, 0
  br i1 %351, label %352, label %369

352:                                              ; preds = %347
  %353 = load i32, ptr %14, align 4, !tbaa !5
  %354 = call ptr @__errno_location() #9
  store i32 %353, ptr %354, align 4, !tbaa !5
  %355 = load ptr, ptr @stderr, align 8, !tbaa !9
  %356 = load i32, ptr @test_count, align 4, !tbaa !5
  %357 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %358 = load i32, ptr %357, align 4, !tbaa !5
  %359 = call ptr @s2n_strerror(i32 noundef %358, ptr noundef @.str.4)
  %360 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %361 = load i32, ptr %360, align 4, !tbaa !5
  %362 = call ptr @s2n_strerror_debug(i32 noundef %361, ptr noundef @.str.4)
  %363 = call ptr @__errno_location() #9
  %364 = load i32, ptr %363, align 4, !tbaa !5
  %365 = call ptr @strerror(i32 noundef %364) #8
  %366 = call ptr @__errno_location() #9
  %367 = load i32, ptr %366, align 4, !tbaa !5
  %368 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %355, ptr noundef @.str.2, i32 noundef %356, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 49, ptr noundef %359, ptr noundef %362, ptr noundef %365, i32 noundef %367) #8
  br label %386

369:                                              ; preds = %347, %340
  %370 = load i32, ptr %14, align 4, !tbaa !5
  %371 = call ptr @__errno_location() #9
  store i32 %370, ptr %371, align 4, !tbaa !5
  %372 = load ptr, ptr @stderr, align 8, !tbaa !9
  %373 = load i32, ptr @test_count, align 4, !tbaa !5
  %374 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %375 = load i32, ptr %374, align 4, !tbaa !5
  %376 = call ptr @s2n_strerror(i32 noundef %375, ptr noundef @.str.4)
  %377 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %378 = load i32, ptr %377, align 4, !tbaa !5
  %379 = call ptr @s2n_strerror_debug(i32 noundef %378, ptr noundef @.str.4)
  %380 = call ptr @__errno_location() #9
  %381 = load i32, ptr %380, align 4, !tbaa !5
  %382 = call ptr @strerror(i32 noundef %381) #8
  %383 = call ptr @__errno_location() #9
  %384 = load i32, ptr %383, align 4, !tbaa !5
  %385 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %372, ptr noundef @.str.5, i32 noundef %373, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 49, ptr noundef %376, ptr noundef %379, ptr noundef %382, i32 noundef %384) #8
  br label %386

386:                                              ; preds = %369, %352
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #8
  br label %387

387:                                              ; preds = %386
  br label %388

388:                                              ; preds = %387
  call void @exit(i32 noundef 1) #10
  unreachable

389:                                              ; No predecessors!
  br label %390

390:                                              ; preds = %389
  br label %391

391:                                              ; preds = %390, %333
  br label %392

392:                                              ; preds = %391
  br label %393

393:                                              ; preds = %392
  %394 = load ptr, ptr %13, align 8, !tbaa !9
  %395 = getelementptr inbounds %struct.s2n_connection, ptr %394, i32 0, i32 23
  store i8 34, ptr %395, align 4, !tbaa !17
  %396 = load i32, ptr %12, align 4, !tbaa !5
  %397 = sext i32 %396 to i64
  %398 = getelementptr inbounds [3 x %struct.s2n_cipher_suite], ptr %10, i64 0, i64 %397
  %399 = load ptr, ptr %13, align 8, !tbaa !9
  %400 = getelementptr inbounds %struct.s2n_connection, ptr %399, i32 0, i32 27
  %401 = load ptr, ptr %400, align 8, !tbaa !44
  %402 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %401, i32 0, i32 0
  store ptr %398, ptr %402, align 8, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #8
  %403 = load i32, ptr %12, align 4, !tbaa !5
  %404 = sext i32 %403 to i64
  %405 = getelementptr inbounds [3 x i32], ptr %11, i64 0, i64 %404
  %406 = load i32, ptr %405, align 4, !tbaa !5
  store i32 %406, ptr %15, align 4, !tbaa !5
  br label %407

407:                                              ; preds = %393
  %408 = load i32, ptr @test_count, align 4, !tbaa !5
  %409 = add nsw i32 %408, 1
  store i32 %409, ptr @test_count, align 4, !tbaa !5
  %410 = load ptr, ptr %13, align 8, !tbaa !9
  %411 = call i32 @s2n_tls13_client_finished_send(ptr noundef %410)
  %412 = icmp eq i32 %411, -1
  br i1 %412, label %413, label %466

413:                                              ; preds = %407
  br label %414

414:                                              ; preds = %413
  br label %415

415:                                              ; preds = %414
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #8
  %416 = call ptr @__errno_location() #9
  %417 = load i32, ptr %416, align 4, !tbaa !5
  store i32 %417, ptr %16, align 4, !tbaa !5
  %418 = load ptr, ptr @stderr, align 8, !tbaa !9
  %419 = call i32 @s2n_print_stacktrace(ptr noundef %418)
  %420 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %421 = trunc i8 %420 to i1
  br i1 %421, label %422, label %444

422:                                              ; preds = %415
  %423 = load ptr, ptr @stderr, align 8, !tbaa !9
  %424 = call i32 @fileno(ptr noundef %423) #8
  %425 = call i32 @isatty(i32 noundef %424) #8
  %426 = icmp ne i32 %425, 0
  br i1 %426, label %427, label %444

427:                                              ; preds = %422
  %428 = load i32, ptr %16, align 4, !tbaa !5
  %429 = call ptr @__errno_location() #9
  store i32 %428, ptr %429, align 4, !tbaa !5
  %430 = load ptr, ptr @stderr, align 8, !tbaa !9
  %431 = load i32, ptr @test_count, align 4, !tbaa !5
  %432 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %433 = load i32, ptr %432, align 4, !tbaa !5
  %434 = call ptr @s2n_strerror(i32 noundef %433, ptr noundef @.str.4)
  %435 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %436 = load i32, ptr %435, align 4, !tbaa !5
  %437 = call ptr @s2n_strerror_debug(i32 noundef %436, ptr noundef @.str.4)
  %438 = call ptr @__errno_location() #9
  %439 = load i32, ptr %438, align 4, !tbaa !5
  %440 = call ptr @strerror(i32 noundef %439) #8
  %441 = call ptr @__errno_location() #9
  %442 = load i32, ptr %441, align 4, !tbaa !5
  %443 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %430, ptr noundef @.str.2, i32 noundef %431, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 56, ptr noundef %434, ptr noundef %437, ptr noundef %440, i32 noundef %442) #8
  br label %461

444:                                              ; preds = %422, %415
  %445 = load i32, ptr %16, align 4, !tbaa !5
  %446 = call ptr @__errno_location() #9
  store i32 %445, ptr %446, align 4, !tbaa !5
  %447 = load ptr, ptr @stderr, align 8, !tbaa !9
  %448 = load i32, ptr @test_count, align 4, !tbaa !5
  %449 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %450 = load i32, ptr %449, align 4, !tbaa !5
  %451 = call ptr @s2n_strerror(i32 noundef %450, ptr noundef @.str.4)
  %452 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %453 = load i32, ptr %452, align 4, !tbaa !5
  %454 = call ptr @s2n_strerror_debug(i32 noundef %453, ptr noundef @.str.4)
  %455 = call ptr @__errno_location() #9
  %456 = load i32, ptr %455, align 4, !tbaa !5
  %457 = call ptr @strerror(i32 noundef %456) #8
  %458 = call ptr @__errno_location() #9
  %459 = load i32, ptr %458, align 4, !tbaa !5
  %460 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %447, ptr noundef @.str.5, i32 noundef %448, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 56, ptr noundef %451, ptr noundef %454, ptr noundef %457, i32 noundef %459) #8
  br label %461

461:                                              ; preds = %444, %427
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #8
  br label %462

462:                                              ; preds = %461
  br label %463

463:                                              ; preds = %462
  call void @exit(i32 noundef 1) #10
  unreachable

464:                                              ; No predecessors!
  br label %465

465:                                              ; preds = %464
  br label %466

466:                                              ; preds = %465, %407
  br label %467

467:                                              ; preds = %466
  br label %468

468:                                              ; preds = %467
  br label %469

469:                                              ; preds = %468
  %470 = load i32, ptr @test_count, align 4, !tbaa !5
  %471 = add nsw i32 %470, 1
  store i32 %471, ptr @test_count, align 4, !tbaa !5
  %472 = load ptr, ptr %13, align 8, !tbaa !9
  %473 = getelementptr inbounds %struct.s2n_connection, ptr %472, i32 0, i32 52
  %474 = getelementptr inbounds %struct.s2n_handshake, ptr %473, i32 0, i32 0
  %475 = getelementptr inbounds %struct.s2n_stuffer, ptr %474, i32 0, i32 2
  %476 = load i32, ptr %475, align 4, !tbaa !50
  %477 = load ptr, ptr %13, align 8, !tbaa !9
  %478 = getelementptr inbounds %struct.s2n_connection, ptr %477, i32 0, i32 52
  %479 = getelementptr inbounds %struct.s2n_handshake, ptr %478, i32 0, i32 0
  %480 = getelementptr inbounds %struct.s2n_stuffer, ptr %479, i32 0, i32 1
  %481 = load i32, ptr %480, align 8, !tbaa !51
  %482 = sub i32 %476, %481
  %483 = load i32, ptr %15, align 4, !tbaa !5
  %484 = icmp eq i32 %482, %483
  br i1 %484, label %538, label %485

485:                                              ; preds = %469
  br label %486

486:                                              ; preds = %485
  br label %487

487:                                              ; preds = %486
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #8
  %488 = call ptr @__errno_location() #9
  %489 = load i32, ptr %488, align 4, !tbaa !5
  store i32 %489, ptr %17, align 4, !tbaa !5
  %490 = load ptr, ptr @stderr, align 8, !tbaa !9
  %491 = call i32 @s2n_print_stacktrace(ptr noundef %490)
  %492 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %493 = trunc i8 %492 to i1
  br i1 %493, label %494, label %516

494:                                              ; preds = %487
  %495 = load ptr, ptr @stderr, align 8, !tbaa !9
  %496 = call i32 @fileno(ptr noundef %495) #8
  %497 = call i32 @isatty(i32 noundef %496) #8
  %498 = icmp ne i32 %497, 0
  br i1 %498, label %499, label %516

499:                                              ; preds = %494
  %500 = load i32, ptr %17, align 4, !tbaa !5
  %501 = call ptr @__errno_location() #9
  store i32 %500, ptr %501, align 4, !tbaa !5
  %502 = load ptr, ptr @stderr, align 8, !tbaa !9
  %503 = load i32, ptr @test_count, align 4, !tbaa !5
  %504 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %505 = load i32, ptr %504, align 4, !tbaa !5
  %506 = call ptr @s2n_strerror(i32 noundef %505, ptr noundef @.str.4)
  %507 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %508 = load i32, ptr %507, align 4, !tbaa !5
  %509 = call ptr @s2n_strerror_debug(i32 noundef %508, ptr noundef @.str.4)
  %510 = call ptr @__errno_location() #9
  %511 = load i32, ptr %510, align 4, !tbaa !5
  %512 = call ptr @strerror(i32 noundef %511) #8
  %513 = call ptr @__errno_location() #9
  %514 = load i32, ptr %513, align 4, !tbaa !5
  %515 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %502, ptr noundef @.str.2, i32 noundef %503, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 57, ptr noundef %506, ptr noundef %509, ptr noundef %512, i32 noundef %514) #8
  br label %533

516:                                              ; preds = %494, %487
  %517 = load i32, ptr %17, align 4, !tbaa !5
  %518 = call ptr @__errno_location() #9
  store i32 %517, ptr %518, align 4, !tbaa !5
  %519 = load ptr, ptr @stderr, align 8, !tbaa !9
  %520 = load i32, ptr @test_count, align 4, !tbaa !5
  %521 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %522 = load i32, ptr %521, align 4, !tbaa !5
  %523 = call ptr @s2n_strerror(i32 noundef %522, ptr noundef @.str.4)
  %524 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %525 = load i32, ptr %524, align 4, !tbaa !5
  %526 = call ptr @s2n_strerror_debug(i32 noundef %525, ptr noundef @.str.4)
  %527 = call ptr @__errno_location() #9
  %528 = load i32, ptr %527, align 4, !tbaa !5
  %529 = call ptr @strerror(i32 noundef %528) #8
  %530 = call ptr @__errno_location() #9
  %531 = load i32, ptr %530, align 4, !tbaa !5
  %532 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %519, ptr noundef @.str.5, i32 noundef %520, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 57, ptr noundef %523, ptr noundef %526, ptr noundef %529, i32 noundef %531) #8
  br label %533

533:                                              ; preds = %516, %499
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #8
  br label %534

534:                                              ; preds = %533
  br label %535

535:                                              ; preds = %534
  call void @exit(i32 noundef 1) #10
  unreachable

536:                                              ; No predecessors!
  br label %537

537:                                              ; preds = %536
  br label %538

538:                                              ; preds = %537, %469
  br label %539

539:                                              ; preds = %538
  br label %540

540:                                              ; preds = %539
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #8
  store ptr null, ptr %18, align 8, !tbaa !9
  br label %541

541:                                              ; preds = %540
  %542 = load i32, ptr @test_count, align 4, !tbaa !5
  %543 = add nsw i32 %542, 1
  store i32 %543, ptr @test_count, align 4, !tbaa !5
  %544 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %544, ptr %18, align 8, !tbaa !9
  %545 = icmp eq ptr %544, null
  br i1 %545, label %546, label %599

546:                                              ; preds = %541
  br label %547

547:                                              ; preds = %546
  br label %548

548:                                              ; preds = %547
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #8
  %549 = call ptr @__errno_location() #9
  %550 = load i32, ptr %549, align 4, !tbaa !5
  store i32 %550, ptr %19, align 4, !tbaa !5
  %551 = load ptr, ptr @stderr, align 8, !tbaa !9
  %552 = call i32 @s2n_print_stacktrace(ptr noundef %551)
  %553 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %554 = trunc i8 %553 to i1
  br i1 %554, label %555, label %577

555:                                              ; preds = %548
  %556 = load ptr, ptr @stderr, align 8, !tbaa !9
  %557 = call i32 @fileno(ptr noundef %556) #8
  %558 = call i32 @isatty(i32 noundef %557) #8
  %559 = icmp ne i32 %558, 0
  br i1 %559, label %560, label %577

560:                                              ; preds = %555
  %561 = load i32, ptr %19, align 4, !tbaa !5
  %562 = call ptr @__errno_location() #9
  store i32 %561, ptr %562, align 4, !tbaa !5
  %563 = load ptr, ptr @stderr, align 8, !tbaa !9
  %564 = load i32, ptr @test_count, align 4, !tbaa !5
  %565 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %566 = load i32, ptr %565, align 4, !tbaa !5
  %567 = call ptr @s2n_strerror(i32 noundef %566, ptr noundef @.str.4)
  %568 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %569 = load i32, ptr %568, align 4, !tbaa !5
  %570 = call ptr @s2n_strerror_debug(i32 noundef %569, ptr noundef @.str.4)
  %571 = call ptr @__errno_location() #9
  %572 = load i32, ptr %571, align 4, !tbaa !5
  %573 = call ptr @strerror(i32 noundef %572) #8
  %574 = call ptr @__errno_location() #9
  %575 = load i32, ptr %574, align 4, !tbaa !5
  %576 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %563, ptr noundef @.str.2, i32 noundef %564, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 60, ptr noundef %567, ptr noundef %570, ptr noundef %573, i32 noundef %575) #8
  br label %594

577:                                              ; preds = %555, %548
  %578 = load i32, ptr %19, align 4, !tbaa !5
  %579 = call ptr @__errno_location() #9
  store i32 %578, ptr %579, align 4, !tbaa !5
  %580 = load ptr, ptr @stderr, align 8, !tbaa !9
  %581 = load i32, ptr @test_count, align 4, !tbaa !5
  %582 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %583 = load i32, ptr %582, align 4, !tbaa !5
  %584 = call ptr @s2n_strerror(i32 noundef %583, ptr noundef @.str.4)
  %585 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %586 = load i32, ptr %585, align 4, !tbaa !5
  %587 = call ptr @s2n_strerror_debug(i32 noundef %586, ptr noundef @.str.4)
  %588 = call ptr @__errno_location() #9
  %589 = load i32, ptr %588, align 4, !tbaa !5
  %590 = call ptr @strerror(i32 noundef %589) #8
  %591 = call ptr @__errno_location() #9
  %592 = load i32, ptr %591, align 4, !tbaa !5
  %593 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %580, ptr noundef @.str.5, i32 noundef %581, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 60, ptr noundef %584, ptr noundef %587, ptr noundef %590, i32 noundef %592) #8
  br label %594

594:                                              ; preds = %577, %560
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #8
  br label %595

595:                                              ; preds = %594
  br label %596

596:                                              ; preds = %595
  call void @exit(i32 noundef 1) #10
  unreachable

597:                                              ; No predecessors!
  br label %598

598:                                              ; preds = %597
  br label %599

599:                                              ; preds = %598, %541
  br label %600

600:                                              ; preds = %599
  br label %601

601:                                              ; preds = %600
  %602 = load ptr, ptr %18, align 8, !tbaa !9
  %603 = getelementptr inbounds %struct.s2n_connection, ptr %602, i32 0, i32 23
  store i8 34, ptr %603, align 4, !tbaa !17
  %604 = load i32, ptr %12, align 4, !tbaa !5
  %605 = sext i32 %604 to i64
  %606 = getelementptr inbounds [3 x %struct.s2n_cipher_suite], ptr %10, i64 0, i64 %605
  %607 = load ptr, ptr %18, align 8, !tbaa !9
  %608 = getelementptr inbounds %struct.s2n_connection, ptr %607, i32 0, i32 27
  %609 = load ptr, ptr %608, align 8, !tbaa !44
  %610 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %609, i32 0, i32 0
  store ptr %606, ptr %610, align 8, !tbaa !45
  br label %611

611:                                              ; preds = %601
  %612 = load i32, ptr @test_count, align 4, !tbaa !5
  %613 = add nsw i32 %612, 1
  store i32 %613, ptr @test_count, align 4, !tbaa !5
  %614 = load ptr, ptr %13, align 8, !tbaa !9
  %615 = getelementptr inbounds %struct.s2n_connection, ptr %614, i32 0, i32 52
  %616 = getelementptr inbounds %struct.s2n_handshake, ptr %615, i32 0, i32 0
  %617 = load ptr, ptr %18, align 8, !tbaa !9
  %618 = getelementptr inbounds %struct.s2n_connection, ptr %617, i32 0, i32 52
  %619 = getelementptr inbounds %struct.s2n_handshake, ptr %618, i32 0, i32 0
  %620 = call i32 @reset_stuffers(ptr noundef %616, ptr noundef %619)
  %621 = icmp eq i32 %620, -1
  br i1 %621, label %622, label %675

622:                                              ; preds = %611
  br label %623

623:                                              ; preds = %622
  br label %624

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

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

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

653:                                              ; preds = %631, %624
  %654 = load i32, ptr %20, align 4, !tbaa !5
  %655 = call ptr @__errno_location() #9
  store i32 %654, ptr %655, align 4, !tbaa !5
  %656 = load ptr, ptr @stderr, align 8, !tbaa !9
  %657 = load i32, ptr @test_count, align 4, !tbaa !5
  %658 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %659 = load i32, ptr %658, align 4, !tbaa !5
  %660 = call ptr @s2n_strerror(i32 noundef %659, ptr noundef @.str.4)
  %661 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %662 = load i32, ptr %661, align 4, !tbaa !5
  %663 = call ptr @s2n_strerror_debug(i32 noundef %662, ptr noundef @.str.4)
  %664 = call ptr @__errno_location() #9
  %665 = load i32, ptr %664, align 4, !tbaa !5
  %666 = call ptr @strerror(i32 noundef %665) #8
  %667 = call ptr @__errno_location() #9
  %668 = load i32, ptr %667, align 4, !tbaa !5
  %669 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %656, ptr noundef @.str.5, i32 noundef %657, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 64, ptr noundef %660, ptr noundef %663, ptr noundef %666, i32 noundef %668) #8
  br label %670

670:                                              ; preds = %653, %636
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #8
  br label %671

671:                                              ; preds = %670
  br label %672

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

673:                                              ; No predecessors!
  br label %674

674:                                              ; preds = %673
  br label %675

675:                                              ; preds = %674, %611
  br label %676

676:                                              ; preds = %675
  br label %677

677:                                              ; preds = %676
  br label %678

678:                                              ; preds = %677
  %679 = load i32, ptr @test_count, align 4, !tbaa !5
  %680 = add nsw i32 %679, 1
  store i32 %680, ptr @test_count, align 4, !tbaa !5
  %681 = load ptr, ptr %13, align 8, !tbaa !9
  %682 = getelementptr inbounds %struct.s2n_connection, ptr %681, i32 0, i32 52
  %683 = getelementptr inbounds %struct.s2n_handshake, ptr %682, i32 0, i32 0
  %684 = load ptr, ptr %18, align 8, !tbaa !9
  %685 = getelementptr inbounds %struct.s2n_connection, ptr %684, i32 0, i32 52
  %686 = getelementptr inbounds %struct.s2n_handshake, ptr %685, i32 0, i32 0
  %687 = load i32, ptr %15, align 4, !tbaa !5
  %688 = call i32 @s2n_stuffer_copy(ptr noundef %683, ptr noundef %686, i32 noundef %687)
  %689 = icmp eq i32 %688, -1
  br i1 %689, label %690, label %743

690:                                              ; preds = %678
  br label %691

691:                                              ; preds = %690
  br label %692

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

699:                                              ; preds = %692
  %700 = load ptr, ptr @stderr, align 8, !tbaa !9
  %701 = call i32 @fileno(ptr noundef %700) #8
  %702 = call i32 @isatty(i32 noundef %701) #8
  %703 = icmp ne i32 %702, 0
  br i1 %703, label %704, label %721

704:                                              ; preds = %699
  %705 = load i32, ptr %21, align 4, !tbaa !5
  %706 = call ptr @__errno_location() #9
  store i32 %705, ptr %706, align 4, !tbaa !5
  %707 = load ptr, ptr @stderr, align 8, !tbaa !9
  %708 = load i32, ptr @test_count, align 4, !tbaa !5
  %709 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %710 = load i32, ptr %709, align 4, !tbaa !5
  %711 = call ptr @s2n_strerror(i32 noundef %710, ptr noundef @.str.4)
  %712 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %713 = load i32, ptr %712, align 4, !tbaa !5
  %714 = call ptr @s2n_strerror_debug(i32 noundef %713, ptr noundef @.str.4)
  %715 = call ptr @__errno_location() #9
  %716 = load i32, ptr %715, align 4, !tbaa !5
  %717 = call ptr @strerror(i32 noundef %716) #8
  %718 = call ptr @__errno_location() #9
  %719 = load i32, ptr %718, align 4, !tbaa !5
  %720 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %707, ptr noundef @.str.2, i32 noundef %708, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 65, ptr noundef %711, ptr noundef %714, ptr noundef %717, i32 noundef %719) #8
  br label %738

721:                                              ; preds = %699, %692
  %722 = load i32, ptr %21, align 4, !tbaa !5
  %723 = call ptr @__errno_location() #9
  store i32 %722, ptr %723, align 4, !tbaa !5
  %724 = load ptr, ptr @stderr, align 8, !tbaa !9
  %725 = load i32, ptr @test_count, align 4, !tbaa !5
  %726 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %727 = load i32, ptr %726, align 4, !tbaa !5
  %728 = call ptr @s2n_strerror(i32 noundef %727, ptr noundef @.str.4)
  %729 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %730 = load i32, ptr %729, align 4, !tbaa !5
  %731 = call ptr @s2n_strerror_debug(i32 noundef %730, ptr noundef @.str.4)
  %732 = call ptr @__errno_location() #9
  %733 = load i32, ptr %732, align 4, !tbaa !5
  %734 = call ptr @strerror(i32 noundef %733) #8
  %735 = call ptr @__errno_location() #9
  %736 = load i32, ptr %735, align 4, !tbaa !5
  %737 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %724, ptr noundef @.str.5, i32 noundef %725, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 65, ptr noundef %728, ptr noundef %731, ptr noundef %734, i32 noundef %736) #8
  br label %738

738:                                              ; preds = %721, %704
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #8
  br label %739

739:                                              ; preds = %738
  br label %740

740:                                              ; preds = %739
  call void @exit(i32 noundef 1) #10
  unreachable

741:                                              ; No predecessors!
  br label %742

742:                                              ; preds = %741
  br label %743

743:                                              ; preds = %742, %678
  br label %744

744:                                              ; preds = %743
  br label %745

745:                                              ; preds = %744
  br label %746

746:                                              ; preds = %745
  %747 = load i32, ptr @test_count, align 4, !tbaa !5
  %748 = add nsw i32 %747, 1
  store i32 %748, ptr @test_count, align 4, !tbaa !5
  %749 = load ptr, ptr %18, align 8, !tbaa !9
  %750 = call i32 @s2n_tls13_client_finished_recv(ptr noundef %749)
  %751 = icmp eq i32 %750, -1
  br i1 %751, label %752, label %805

752:                                              ; preds = %746
  br label %753

753:                                              ; preds = %752
  br label %754

754:                                              ; preds = %753
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #8
  %755 = call ptr @__errno_location() #9
  %756 = load i32, ptr %755, align 4, !tbaa !5
  store i32 %756, ptr %22, align 4, !tbaa !5
  %757 = load ptr, ptr @stderr, align 8, !tbaa !9
  %758 = call i32 @s2n_print_stacktrace(ptr noundef %757)
  %759 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %760 = trunc i8 %759 to i1
  br i1 %760, label %761, label %783

761:                                              ; preds = %754
  %762 = load ptr, ptr @stderr, align 8, !tbaa !9
  %763 = call i32 @fileno(ptr noundef %762) #8
  %764 = call i32 @isatty(i32 noundef %763) #8
  %765 = icmp ne i32 %764, 0
  br i1 %765, label %766, label %783

766:                                              ; preds = %761
  %767 = load i32, ptr %22, align 4, !tbaa !5
  %768 = call ptr @__errno_location() #9
  store i32 %767, ptr %768, align 4, !tbaa !5
  %769 = load ptr, ptr @stderr, align 8, !tbaa !9
  %770 = load i32, ptr @test_count, align 4, !tbaa !5
  %771 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %772 = load i32, ptr %771, align 4, !tbaa !5
  %773 = call ptr @s2n_strerror(i32 noundef %772, ptr noundef @.str.4)
  %774 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %775 = load i32, ptr %774, align 4, !tbaa !5
  %776 = call ptr @s2n_strerror_debug(i32 noundef %775, ptr noundef @.str.4)
  %777 = call ptr @__errno_location() #9
  %778 = load i32, ptr %777, align 4, !tbaa !5
  %779 = call ptr @strerror(i32 noundef %778) #8
  %780 = call ptr @__errno_location() #9
  %781 = load i32, ptr %780, align 4, !tbaa !5
  %782 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %769, ptr noundef @.str.2, i32 noundef %770, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 66, ptr noundef %773, ptr noundef %776, ptr noundef %779, i32 noundef %781) #8
  br label %800

783:                                              ; preds = %761, %754
  %784 = load i32, ptr %22, align 4, !tbaa !5
  %785 = call ptr @__errno_location() #9
  store i32 %784, ptr %785, align 4, !tbaa !5
  %786 = load ptr, ptr @stderr, align 8, !tbaa !9
  %787 = load i32, ptr @test_count, align 4, !tbaa !5
  %788 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %789 = load i32, ptr %788, align 4, !tbaa !5
  %790 = call ptr @s2n_strerror(i32 noundef %789, ptr noundef @.str.4)
  %791 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %792 = load i32, ptr %791, align 4, !tbaa !5
  %793 = call ptr @s2n_strerror_debug(i32 noundef %792, ptr noundef @.str.4)
  %794 = call ptr @__errno_location() #9
  %795 = load i32, ptr %794, align 4, !tbaa !5
  %796 = call ptr @strerror(i32 noundef %795) #8
  %797 = call ptr @__errno_location() #9
  %798 = load i32, ptr %797, align 4, !tbaa !5
  %799 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %786, ptr noundef @.str.5, i32 noundef %787, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 66, ptr noundef %790, ptr noundef %793, ptr noundef %796, i32 noundef %798) #8
  br label %800

800:                                              ; preds = %783, %766
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #8
  br label %801

801:                                              ; preds = %800
  br label %802

802:                                              ; preds = %801
  call void @exit(i32 noundef 1) #10
  unreachable

803:                                              ; No predecessors!
  br label %804

804:                                              ; preds = %803
  br label %805

805:                                              ; preds = %804, %746
  br label %806

806:                                              ; preds = %805
  br label %807

807:                                              ; preds = %806
  br label %808

808:                                              ; preds = %807
  %809 = load i32, ptr @test_count, align 4, !tbaa !5
  %810 = add nsw i32 %809, 1
  store i32 %810, ptr @test_count, align 4, !tbaa !5
  %811 = load ptr, ptr %13, align 8, !tbaa !9
  %812 = getelementptr inbounds %struct.s2n_connection, ptr %811, i32 0, i32 52
  %813 = getelementptr inbounds %struct.s2n_handshake, ptr %812, i32 0, i32 0
  %814 = load ptr, ptr %18, align 8, !tbaa !9
  %815 = getelementptr inbounds %struct.s2n_connection, ptr %814, i32 0, i32 52
  %816 = getelementptr inbounds %struct.s2n_handshake, ptr %815, i32 0, i32 0
  %817 = call i32 @reset_stuffers(ptr noundef %813, ptr noundef %816)
  %818 = icmp eq i32 %817, -1
  br i1 %818, label %819, label %872

819:                                              ; preds = %808
  br label %820

820:                                              ; preds = %819
  br label %821

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

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

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

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

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

868:                                              ; preds = %867
  br label %869

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

870:                                              ; No predecessors!
  br label %871

871:                                              ; preds = %870
  br label %872

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

873:                                              ; preds = %872
  br label %874

874:                                              ; preds = %873
  br label %875

875:                                              ; preds = %874
  %876 = load i32, ptr @test_count, align 4, !tbaa !5
  %877 = add nsw i32 %876, 1
  store i32 %877, ptr @test_count, align 4, !tbaa !5
  %878 = load ptr, ptr %13, align 8, !tbaa !9
  %879 = getelementptr inbounds %struct.s2n_connection, ptr %878, i32 0, i32 52
  %880 = getelementptr inbounds %struct.s2n_handshake, ptr %879, i32 0, i32 0
  %881 = load ptr, ptr %18, align 8, !tbaa !9
  %882 = getelementptr inbounds %struct.s2n_connection, ptr %881, i32 0, i32 52
  %883 = getelementptr inbounds %struct.s2n_handshake, ptr %882, i32 0, i32 0
  %884 = load i32, ptr %15, align 4, !tbaa !5
  %885 = sub nsw i32 %884, 1
  %886 = call i32 @s2n_stuffer_copy(ptr noundef %880, ptr noundef %883, i32 noundef %885)
  %887 = icmp eq i32 %886, -1
  br i1 %887, label %888, label %941

888:                                              ; preds = %875
  br label %889

889:                                              ; preds = %888
  br label %890

890:                                              ; preds = %889
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #8
  %891 = call ptr @__errno_location() #9
  %892 = load i32, ptr %891, align 4, !tbaa !5
  store i32 %892, ptr %24, align 4, !tbaa !5
  %893 = load ptr, ptr @stderr, align 8, !tbaa !9
  %894 = call i32 @s2n_print_stacktrace(ptr noundef %893)
  %895 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %896 = trunc i8 %895 to i1
  br i1 %896, label %897, label %919

897:                                              ; preds = %890
  %898 = load ptr, ptr @stderr, align 8, !tbaa !9
  %899 = call i32 @fileno(ptr noundef %898) #8
  %900 = call i32 @isatty(i32 noundef %899) #8
  %901 = icmp ne i32 %900, 0
  br i1 %901, label %902, label %919

902:                                              ; preds = %897
  %903 = load i32, ptr %24, align 4, !tbaa !5
  %904 = call ptr @__errno_location() #9
  store i32 %903, ptr %904, align 4, !tbaa !5
  %905 = load ptr, ptr @stderr, align 8, !tbaa !9
  %906 = load i32, ptr @test_count, align 4, !tbaa !5
  %907 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %908 = load i32, ptr %907, align 4, !tbaa !5
  %909 = call ptr @s2n_strerror(i32 noundef %908, ptr noundef @.str.4)
  %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_debug(i32 noundef %911, ptr noundef @.str.4)
  %913 = call ptr @__errno_location() #9
  %914 = load i32, ptr %913, align 4, !tbaa !5
  %915 = call ptr @strerror(i32 noundef %914) #8
  %916 = call ptr @__errno_location() #9
  %917 = load i32, ptr %916, align 4, !tbaa !5
  %918 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %905, ptr noundef @.str.2, i32 noundef %906, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 70, ptr noundef %909, ptr noundef %912, ptr noundef %915, i32 noundef %917) #8
  br label %936

919:                                              ; preds = %897, %890
  %920 = load i32, ptr %24, align 4, !tbaa !5
  %921 = call ptr @__errno_location() #9
  store i32 %920, ptr %921, align 4, !tbaa !5
  %922 = load ptr, ptr @stderr, align 8, !tbaa !9
  %923 = load i32, ptr @test_count, align 4, !tbaa !5
  %924 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %925 = load i32, ptr %924, align 4, !tbaa !5
  %926 = call ptr @s2n_strerror(i32 noundef %925, ptr noundef @.str.4)
  %927 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %928 = load i32, ptr %927, align 4, !tbaa !5
  %929 = call ptr @s2n_strerror_debug(i32 noundef %928, ptr noundef @.str.4)
  %930 = call ptr @__errno_location() #9
  %931 = load i32, ptr %930, align 4, !tbaa !5
  %932 = call ptr @strerror(i32 noundef %931) #8
  %933 = call ptr @__errno_location() #9
  %934 = load i32, ptr %933, align 4, !tbaa !5
  %935 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %922, ptr noundef @.str.5, i32 noundef %923, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 70, ptr noundef %926, ptr noundef %929, ptr noundef %932, i32 noundef %934) #8
  br label %936

936:                                              ; preds = %919, %902
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #8
  br label %937

937:                                              ; preds = %936
  br label %938

938:                                              ; preds = %937
  call void @exit(i32 noundef 1) #10
  unreachable

939:                                              ; No predecessors!
  br label %940

940:                                              ; preds = %939
  br label %941

941:                                              ; preds = %940, %875
  br label %942

942:                                              ; preds = %941
  br label %943

943:                                              ; preds = %942
  br label %944

944:                                              ; preds = %943
  br label %945

945:                                              ; preds = %944
  %946 = load i32, ptr @test_count, align 4, !tbaa !5
  %947 = add nsw i32 %946, 1
  store i32 %947, ptr @test_count, align 4, !tbaa !5
  %948 = load ptr, ptr %18, align 8, !tbaa !9
  %949 = call i32 @s2n_tls13_client_finished_recv(ptr noundef %948)
  %950 = icmp eq i32 %949, -1
  br i1 %950, label %1004, label %951

951:                                              ; preds = %945
  br label %952

952:                                              ; preds = %951
  br label %953

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

960:                                              ; preds = %953
  %961 = load ptr, ptr @stderr, align 8, !tbaa !9
  %962 = call i32 @fileno(ptr noundef %961) #8
  %963 = call i32 @isatty(i32 noundef %962) #8
  %964 = icmp ne i32 %963, 0
  br i1 %964, label %965, label %982

965:                                              ; preds = %960
  %966 = load i32, ptr %25, align 4, !tbaa !5
  %967 = call ptr @__errno_location() #9
  store i32 %966, ptr %967, align 4, !tbaa !5
  %968 = load ptr, ptr @stderr, align 8, !tbaa !9
  %969 = load i32, ptr @test_count, align 4, !tbaa !5
  %970 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %971 = load i32, ptr %970, align 4, !tbaa !5
  %972 = call ptr @s2n_strerror(i32 noundef %971, ptr noundef @.str.4)
  %973 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %974 = load i32, ptr %973, align 4, !tbaa !5
  %975 = call ptr @s2n_strerror_debug(i32 noundef %974, ptr noundef @.str.4)
  %976 = call ptr @__errno_location() #9
  %977 = load i32, ptr %976, align 4, !tbaa !5
  %978 = call ptr @strerror(i32 noundef %977) #8
  %979 = call ptr @__errno_location() #9
  %980 = load i32, ptr %979, align 4, !tbaa !5
  %981 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %968, ptr noundef @.str.2, i32 noundef %969, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 71, ptr noundef %972, ptr noundef %975, ptr noundef %978, i32 noundef %980) #8
  br label %999

982:                                              ; preds = %960, %953
  %983 = load i32, ptr %25, align 4, !tbaa !5
  %984 = call ptr @__errno_location() #9
  store i32 %983, ptr %984, align 4, !tbaa !5
  %985 = load ptr, ptr @stderr, align 8, !tbaa !9
  %986 = load i32, ptr @test_count, align 4, !tbaa !5
  %987 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %988 = load i32, ptr %987, align 4, !tbaa !5
  %989 = call ptr @s2n_strerror(i32 noundef %988, ptr noundef @.str.4)
  %990 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %991 = load i32, ptr %990, align 4, !tbaa !5
  %992 = call ptr @s2n_strerror_debug(i32 noundef %991, ptr noundef @.str.4)
  %993 = call ptr @__errno_location() #9
  %994 = load i32, ptr %993, align 4, !tbaa !5
  %995 = call ptr @strerror(i32 noundef %994) #8
  %996 = call ptr @__errno_location() #9
  %997 = load i32, ptr %996, align 4, !tbaa !5
  %998 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %985, ptr noundef @.str.5, i32 noundef %986, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 71, ptr noundef %989, ptr noundef %992, ptr noundef %995, i32 noundef %997) #8
  br label %999

999:                                              ; preds = %982, %965
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #8
  br label %1000

1000:                                             ; preds = %999
  br label %1001

1001:                                             ; preds = %1000
  call void @exit(i32 noundef 1) #10
  unreachable

1002:                                             ; No predecessors!
  br label %1003

1003:                                             ; preds = %1002
  br label %1004

1004:                                             ; preds = %1003, %945
  br label %1005

1005:                                             ; preds = %1004
  br label %1006

1006:                                             ; preds = %1005
  br label %1007

1007:                                             ; preds = %1006
  %1008 = load i32, ptr @test_count, align 4, !tbaa !5
  %1009 = add nsw i32 %1008, 1
  store i32 %1009, ptr @test_count, align 4, !tbaa !5
  %1010 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1011 = load i32, ptr %1010, align 4, !tbaa !5
  %1012 = icmp eq i32 %1011, 0
  br i1 %1012, label %1013, label %1066

1013:                                             ; preds = %1007
  br label %1014

1014:                                             ; preds = %1013
  br label %1015

1015:                                             ; preds = %1014
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #8
  %1016 = call ptr @__errno_location() #9
  %1017 = load i32, ptr %1016, align 4, !tbaa !5
  store i32 %1017, ptr %26, align 4, !tbaa !5
  %1018 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1019 = call i32 @s2n_print_stacktrace(ptr noundef %1018)
  %1020 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1021 = trunc i8 %1020 to i1
  br i1 %1021, label %1022, label %1044

1022:                                             ; preds = %1015
  %1023 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1024 = call i32 @fileno(ptr noundef %1023) #8
  %1025 = call i32 @isatty(i32 noundef %1024) #8
  %1026 = icmp ne i32 %1025, 0
  br i1 %1026, label %1027, label %1044

1027:                                             ; preds = %1022
  %1028 = load i32, ptr %26, align 4, !tbaa !5
  %1029 = call ptr @__errno_location() #9
  store i32 %1028, ptr %1029, align 4, !tbaa !5
  %1030 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1031 = load i32, ptr @test_count, align 4, !tbaa !5
  %1032 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1033 = load i32, ptr %1032, align 4, !tbaa !5
  %1034 = call ptr @s2n_strerror(i32 noundef %1033, ptr noundef @.str.4)
  %1035 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1036 = load i32, ptr %1035, align 4, !tbaa !5
  %1037 = call ptr @s2n_strerror_debug(i32 noundef %1036, ptr noundef @.str.4)
  %1038 = call ptr @__errno_location() #9
  %1039 = load i32, ptr %1038, align 4, !tbaa !5
  %1040 = call ptr @strerror(i32 noundef %1039) #8
  %1041 = call ptr @__errno_location() #9
  %1042 = load i32, ptr %1041, align 4, !tbaa !5
  %1043 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1030, ptr noundef @.str.2, i32 noundef %1031, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 71, ptr noundef %1034, ptr noundef %1037, ptr noundef %1040, i32 noundef %1042) #8
  br label %1061

1044:                                             ; preds = %1022, %1015
  %1045 = load i32, ptr %26, align 4, !tbaa !5
  %1046 = call ptr @__errno_location() #9
  store i32 %1045, ptr %1046, align 4, !tbaa !5
  %1047 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1048 = load i32, ptr @test_count, align 4, !tbaa !5
  %1049 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1050 = load i32, ptr %1049, align 4, !tbaa !5
  %1051 = call ptr @s2n_strerror(i32 noundef %1050, ptr noundef @.str.4)
  %1052 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1053 = load i32, ptr %1052, align 4, !tbaa !5
  %1054 = call ptr @s2n_strerror_debug(i32 noundef %1053, ptr noundef @.str.4)
  %1055 = call ptr @__errno_location() #9
  %1056 = load i32, ptr %1055, align 4, !tbaa !5
  %1057 = call ptr @strerror(i32 noundef %1056) #8
  %1058 = call ptr @__errno_location() #9
  %1059 = load i32, ptr %1058, align 4, !tbaa !5
  %1060 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1047, ptr noundef @.str.5, i32 noundef %1048, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 71, ptr noundef %1051, ptr noundef %1054, ptr noundef %1057, i32 noundef %1059) #8
  br label %1061

1061:                                             ; preds = %1044, %1027
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #8
  br label %1062

1062:                                             ; preds = %1061
  br label %1063

1063:                                             ; preds = %1062
  call void @exit(i32 noundef 1) #10
  unreachable

1064:                                             ; No predecessors!
  br label %1065

1065:                                             ; preds = %1064
  br label %1066

1066:                                             ; preds = %1065, %1007
  br label %1067

1067:                                             ; preds = %1066
  br label %1068

1068:                                             ; preds = %1067
  br label %1069

1069:                                             ; preds = %1068
  %1070 = load i32, ptr @test_count, align 4, !tbaa !5
  %1071 = add nsw i32 %1070, 1
  store i32 %1071, ptr @test_count, align 4, !tbaa !5
  %1072 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1073 = load i32, ptr %1072, align 4, !tbaa !5
  %1074 = call ptr @s2n_strerror_debug(i32 noundef %1073, ptr noundef @.str.4)
  %1075 = icmp eq ptr %1074, null
  br i1 %1075, label %1076, label %1129

1076:                                             ; preds = %1069
  br label %1077

1077:                                             ; preds = %1076
  br label %1078

1078:                                             ; preds = %1077
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #8
  %1079 = call ptr @__errno_location() #9
  %1080 = load i32, ptr %1079, align 4, !tbaa !5
  store i32 %1080, ptr %27, align 4, !tbaa !5
  %1081 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1082 = call i32 @s2n_print_stacktrace(ptr noundef %1081)
  %1083 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1084 = trunc i8 %1083 to i1
  br i1 %1084, label %1085, label %1107

1085:                                             ; preds = %1078
  %1086 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1087 = call i32 @fileno(ptr noundef %1086) #8
  %1088 = call i32 @isatty(i32 noundef %1087) #8
  %1089 = icmp ne i32 %1088, 0
  br i1 %1089, label %1090, label %1107

1090:                                             ; preds = %1085
  %1091 = load i32, ptr %27, align 4, !tbaa !5
  %1092 = call ptr @__errno_location() #9
  store i32 %1091, ptr %1092, align 4, !tbaa !5
  %1093 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1094 = load i32, ptr @test_count, align 4, !tbaa !5
  %1095 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1096 = load i32, ptr %1095, align 4, !tbaa !5
  %1097 = call ptr @s2n_strerror(i32 noundef %1096, ptr noundef @.str.4)
  %1098 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1099 = load i32, ptr %1098, align 4, !tbaa !5
  %1100 = call ptr @s2n_strerror_debug(i32 noundef %1099, ptr noundef @.str.4)
  %1101 = call ptr @__errno_location() #9
  %1102 = load i32, ptr %1101, align 4, !tbaa !5
  %1103 = call ptr @strerror(i32 noundef %1102) #8
  %1104 = call ptr @__errno_location() #9
  %1105 = load i32, ptr %1104, align 4, !tbaa !5
  %1106 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1093, ptr noundef @.str.2, i32 noundef %1094, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 71, ptr noundef %1097, ptr noundef %1100, ptr noundef %1103, i32 noundef %1105) #8
  br label %1124

1107:                                             ; preds = %1085, %1078
  %1108 = load i32, ptr %27, align 4, !tbaa !5
  %1109 = call ptr @__errno_location() #9
  store i32 %1108, ptr %1109, align 4, !tbaa !5
  %1110 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1111 = load i32, ptr @test_count, align 4, !tbaa !5
  %1112 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1113 = load i32, ptr %1112, align 4, !tbaa !5
  %1114 = call ptr @s2n_strerror(i32 noundef %1113, ptr noundef @.str.4)
  %1115 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1116 = load i32, ptr %1115, align 4, !tbaa !5
  %1117 = call ptr @s2n_strerror_debug(i32 noundef %1116, ptr noundef @.str.4)
  %1118 = call ptr @__errno_location() #9
  %1119 = load i32, ptr %1118, align 4, !tbaa !5
  %1120 = call ptr @strerror(i32 noundef %1119) #8
  %1121 = call ptr @__errno_location() #9
  %1122 = load i32, ptr %1121, align 4, !tbaa !5
  %1123 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1110, ptr noundef @.str.5, i32 noundef %1111, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 71, ptr noundef %1114, ptr noundef %1117, ptr noundef %1120, i32 noundef %1122) #8
  br label %1124

1124:                                             ; preds = %1107, %1090
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #8
  br label %1125

1125:                                             ; preds = %1124
  br label %1126

1126:                                             ; preds = %1125
  call void @exit(i32 noundef 1) #10
  unreachable

1127:                                             ; No predecessors!
  br label %1128

1128:                                             ; preds = %1127
  br label %1129

1129:                                             ; preds = %1128, %1069
  br label %1130

1130:                                             ; preds = %1129
  br label %1131

1131:                                             ; preds = %1130
  br label %1132

1132:                                             ; preds = %1131
  %1133 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1133, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1134 = call ptr @__errno_location() #9
  store i32 0, ptr %1134, align 4, !tbaa !5
  br label %1135

1135:                                             ; preds = %1132
  br label %1136

1136:                                             ; preds = %1135
  br label %1137

1137:                                             ; preds = %1136
  br label %1138

1138:                                             ; preds = %1137
  br label %1139

1139:                                             ; preds = %1138
  %1140 = load i32, ptr @test_count, align 4, !tbaa !5
  %1141 = add nsw i32 %1140, 1
  store i32 %1141, ptr @test_count, align 4, !tbaa !5
  %1142 = load ptr, ptr %13, align 8, !tbaa !9
  %1143 = getelementptr inbounds %struct.s2n_connection, ptr %1142, i32 0, i32 52
  %1144 = getelementptr inbounds %struct.s2n_handshake, ptr %1143, i32 0, i32 0
  %1145 = load ptr, ptr %18, align 8, !tbaa !9
  %1146 = getelementptr inbounds %struct.s2n_connection, ptr %1145, i32 0, i32 52
  %1147 = getelementptr inbounds %struct.s2n_handshake, ptr %1146, i32 0, i32 0
  %1148 = call i32 @reset_stuffers(ptr noundef %1144, ptr noundef %1147)
  %1149 = icmp eq i32 %1148, -1
  br i1 %1149, label %1150, label %1203

1150:                                             ; preds = %1139
  br label %1151

1151:                                             ; preds = %1150
  br label %1152

1152:                                             ; preds = %1151
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #8
  %1153 = call ptr @__errno_location() #9
  %1154 = load i32, ptr %1153, align 4, !tbaa !5
  store i32 %1154, ptr %28, align 4, !tbaa !5
  %1155 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1156 = call i32 @s2n_print_stacktrace(ptr noundef %1155)
  %1157 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1158 = trunc i8 %1157 to i1
  br i1 %1158, label %1159, label %1181

1159:                                             ; preds = %1152
  %1160 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1161 = call i32 @fileno(ptr noundef %1160) #8
  %1162 = call i32 @isatty(i32 noundef %1161) #8
  %1163 = icmp ne i32 %1162, 0
  br i1 %1163, label %1164, label %1181

1164:                                             ; preds = %1159
  %1165 = load i32, ptr %28, align 4, !tbaa !5
  %1166 = call ptr @__errno_location() #9
  store i32 %1165, ptr %1166, align 4, !tbaa !5
  %1167 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1168 = load i32, ptr @test_count, align 4, !tbaa !5
  %1169 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1170 = load i32, ptr %1169, align 4, !tbaa !5
  %1171 = call ptr @s2n_strerror(i32 noundef %1170, ptr noundef @.str.4)
  %1172 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1173 = load i32, ptr %1172, align 4, !tbaa !5
  %1174 = call ptr @s2n_strerror_debug(i32 noundef %1173, ptr noundef @.str.4)
  %1175 = call ptr @__errno_location() #9
  %1176 = load i32, ptr %1175, align 4, !tbaa !5
  %1177 = call ptr @strerror(i32 noundef %1176) #8
  %1178 = call ptr @__errno_location() #9
  %1179 = load i32, ptr %1178, align 4, !tbaa !5
  %1180 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1167, ptr noundef @.str.2, i32 noundef %1168, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 74, ptr noundef %1171, ptr noundef %1174, ptr noundef %1177, i32 noundef %1179) #8
  br label %1198

1181:                                             ; preds = %1159, %1152
  %1182 = load i32, ptr %28, align 4, !tbaa !5
  %1183 = call ptr @__errno_location() #9
  store i32 %1182, ptr %1183, align 4, !tbaa !5
  %1184 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1185 = load i32, ptr @test_count, align 4, !tbaa !5
  %1186 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1187 = load i32, ptr %1186, align 4, !tbaa !5
  %1188 = call ptr @s2n_strerror(i32 noundef %1187, ptr noundef @.str.4)
  %1189 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1190 = load i32, ptr %1189, align 4, !tbaa !5
  %1191 = call ptr @s2n_strerror_debug(i32 noundef %1190, ptr noundef @.str.4)
  %1192 = call ptr @__errno_location() #9
  %1193 = load i32, ptr %1192, align 4, !tbaa !5
  %1194 = call ptr @strerror(i32 noundef %1193) #8
  %1195 = call ptr @__errno_location() #9
  %1196 = load i32, ptr %1195, align 4, !tbaa !5
  %1197 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1184, ptr noundef @.str.5, i32 noundef %1185, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 74, ptr noundef %1188, ptr noundef %1191, ptr noundef %1194, i32 noundef %1196) #8
  br label %1198

1198:                                             ; preds = %1181, %1164
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #8
  br label %1199

1199:                                             ; preds = %1198
  br label %1200

1200:                                             ; preds = %1199
  call void @exit(i32 noundef 1) #10
  unreachable

1201:                                             ; No predecessors!
  br label %1202

1202:                                             ; preds = %1201
  br label %1203

1203:                                             ; preds = %1202, %1139
  br label %1204

1204:                                             ; preds = %1203
  br label %1205

1205:                                             ; preds = %1204
  br label %1206

1206:                                             ; preds = %1205
  %1207 = load i32, ptr @test_count, align 4, !tbaa !5
  %1208 = add nsw i32 %1207, 1
  store i32 %1208, ptr @test_count, align 4, !tbaa !5
  %1209 = load ptr, ptr %13, align 8, !tbaa !9
  %1210 = getelementptr inbounds %struct.s2n_connection, ptr %1209, i32 0, i32 52
  %1211 = getelementptr inbounds %struct.s2n_handshake, ptr %1210, i32 0, i32 0
  %1212 = load ptr, ptr %18, align 8, !tbaa !9
  %1213 = getelementptr inbounds %struct.s2n_connection, ptr %1212, i32 0, i32 52
  %1214 = getelementptr inbounds %struct.s2n_handshake, ptr %1213, i32 0, i32 0
  %1215 = load i32, ptr %15, align 4, !tbaa !5
  %1216 = call i32 @s2n_stuffer_copy(ptr noundef %1211, ptr noundef %1214, i32 noundef %1215)
  %1217 = icmp eq i32 %1216, -1
  br i1 %1217, label %1218, label %1271

1218:                                             ; preds = %1206
  br label %1219

1219:                                             ; preds = %1218
  br label %1220

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

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

1232:                                             ; preds = %1227
  %1233 = load i32, ptr %29, align 4, !tbaa !5
  %1234 = call ptr @__errno_location() #9
  store i32 %1233, ptr %1234, align 4, !tbaa !5
  %1235 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1236 = load i32, ptr @test_count, align 4, !tbaa !5
  %1237 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1238 = load i32, ptr %1237, align 4, !tbaa !5
  %1239 = call ptr @s2n_strerror(i32 noundef %1238, ptr noundef @.str.4)
  %1240 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1241 = load i32, ptr %1240, align 4, !tbaa !5
  %1242 = call ptr @s2n_strerror_debug(i32 noundef %1241, ptr noundef @.str.4)
  %1243 = call ptr @__errno_location() #9
  %1244 = load i32, ptr %1243, align 4, !tbaa !5
  %1245 = call ptr @strerror(i32 noundef %1244) #8
  %1246 = call ptr @__errno_location() #9
  %1247 = load i32, ptr %1246, align 4, !tbaa !5
  %1248 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1235, ptr noundef @.str.2, i32 noundef %1236, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 75, ptr noundef %1239, ptr noundef %1242, ptr noundef %1245, i32 noundef %1247) #8
  br label %1266

1249:                                             ; preds = %1227, %1220
  %1250 = load i32, ptr %29, align 4, !tbaa !5
  %1251 = call ptr @__errno_location() #9
  store i32 %1250, ptr %1251, align 4, !tbaa !5
  %1252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1253 = load i32, ptr @test_count, align 4, !tbaa !5
  %1254 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1255 = load i32, ptr %1254, align 4, !tbaa !5
  %1256 = call ptr @s2n_strerror(i32 noundef %1255, ptr noundef @.str.4)
  %1257 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1258 = load i32, ptr %1257, align 4, !tbaa !5
  %1259 = call ptr @s2n_strerror_debug(i32 noundef %1258, ptr noundef @.str.4)
  %1260 = call ptr @__errno_location() #9
  %1261 = load i32, ptr %1260, align 4, !tbaa !5
  %1262 = call ptr @strerror(i32 noundef %1261) #8
  %1263 = call ptr @__errno_location() #9
  %1264 = load i32, ptr %1263, align 4, !tbaa !5
  %1265 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1252, ptr noundef @.str.5, i32 noundef %1253, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 75, ptr noundef %1256, ptr noundef %1259, ptr noundef %1262, i32 noundef %1264) #8
  br label %1266

1266:                                             ; preds = %1249, %1232
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #8
  br label %1267

1267:                                             ; preds = %1266
  br label %1268

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

1269:                                             ; No predecessors!
  br label %1270

1270:                                             ; preds = %1269
  br label %1271

1271:                                             ; preds = %1270, %1206
  br label %1272

1272:                                             ; preds = %1271
  br label %1273

1273:                                             ; preds = %1272
  br label %1274

1274:                                             ; preds = %1273
  %1275 = load i32, ptr @test_count, align 4, !tbaa !5
  %1276 = add nsw i32 %1275, 1
  store i32 %1276, ptr @test_count, align 4, !tbaa !5
  %1277 = load ptr, ptr %18, align 8, !tbaa !9
  %1278 = getelementptr inbounds %struct.s2n_connection, ptr %1277, i32 0, i32 52
  %1279 = getelementptr inbounds %struct.s2n_handshake, ptr %1278, i32 0, i32 0
  %1280 = call i32 @s2n_stuffer_write_uint8(ptr noundef %1279, i8 noundef zeroext 0)
  %1281 = icmp eq i32 %1280, -1
  br i1 %1281, label %1282, label %1335

1282:                                             ; preds = %1274
  br label %1283

1283:                                             ; preds = %1282
  br label %1284

1284:                                             ; preds = %1283
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #8
  %1285 = call ptr @__errno_location() #9
  %1286 = load i32, ptr %1285, align 4, !tbaa !5
  store i32 %1286, ptr %30, align 4, !tbaa !5
  %1287 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1288 = call i32 @s2n_print_stacktrace(ptr noundef %1287)
  %1289 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1290 = trunc i8 %1289 to i1
  br i1 %1290, label %1291, label %1313

1291:                                             ; preds = %1284
  %1292 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1293 = call i32 @fileno(ptr noundef %1292) #8
  %1294 = call i32 @isatty(i32 noundef %1293) #8
  %1295 = icmp ne i32 %1294, 0
  br i1 %1295, label %1296, label %1313

1296:                                             ; preds = %1291
  %1297 = load i32, ptr %30, align 4, !tbaa !5
  %1298 = call ptr @__errno_location() #9
  store i32 %1297, ptr %1298, align 4, !tbaa !5
  %1299 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1300 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1302, ptr noundef @.str.4)
  %1304 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1305 = load i32, ptr %1304, align 4, !tbaa !5
  %1306 = call ptr @s2n_strerror_debug(i32 noundef %1305, ptr noundef @.str.4)
  %1307 = call ptr @__errno_location() #9
  %1308 = load i32, ptr %1307, align 4, !tbaa !5
  %1309 = call ptr @strerror(i32 noundef %1308) #8
  %1310 = call ptr @__errno_location() #9
  %1311 = load i32, ptr %1310, align 4, !tbaa !5
  %1312 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1299, ptr noundef @.str.2, i32 noundef %1300, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 76, ptr noundef %1303, ptr noundef %1306, ptr noundef %1309, i32 noundef %1311) #8
  br label %1330

1313:                                             ; preds = %1291, %1284
  %1314 = load i32, ptr %30, align 4, !tbaa !5
  %1315 = call ptr @__errno_location() #9
  store i32 %1314, ptr %1315, align 4, !tbaa !5
  %1316 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1317 = load i32, ptr @test_count, align 4, !tbaa !5
  %1318 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1319 = load i32, ptr %1318, align 4, !tbaa !5
  %1320 = call ptr @s2n_strerror(i32 noundef %1319, ptr noundef @.str.4)
  %1321 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1322 = load i32, ptr %1321, align 4, !tbaa !5
  %1323 = call ptr @s2n_strerror_debug(i32 noundef %1322, ptr noundef @.str.4)
  %1324 = call ptr @__errno_location() #9
  %1325 = load i32, ptr %1324, align 4, !tbaa !5
  %1326 = call ptr @strerror(i32 noundef %1325) #8
  %1327 = call ptr @__errno_location() #9
  %1328 = load i32, ptr %1327, align 4, !tbaa !5
  %1329 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1316, ptr noundef @.str.5, i32 noundef %1317, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 76, ptr noundef %1320, ptr noundef %1323, ptr noundef %1326, i32 noundef %1328) #8
  br label %1330

1330:                                             ; preds = %1313, %1296
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #8
  br label %1331

1331:                                             ; preds = %1330
  br label %1332

1332:                                             ; preds = %1331
  call void @exit(i32 noundef 1) #10
  unreachable

1333:                                             ; No predecessors!
  br label %1334

1334:                                             ; preds = %1333
  br label %1335

1335:                                             ; preds = %1334, %1274
  br label %1336

1336:                                             ; preds = %1335
  br label %1337

1337:                                             ; preds = %1336
  br label %1338

1338:                                             ; preds = %1337
  br label %1339

1339:                                             ; preds = %1338
  %1340 = load i32, ptr @test_count, align 4, !tbaa !5
  %1341 = add nsw i32 %1340, 1
  store i32 %1341, ptr @test_count, align 4, !tbaa !5
  %1342 = load ptr, ptr %18, align 8, !tbaa !9
  %1343 = call i32 @s2n_tls13_client_finished_recv(ptr noundef %1342)
  %1344 = icmp eq i32 %1343, -1
  br i1 %1344, label %1398, label %1345

1345:                                             ; preds = %1339
  br label %1346

1346:                                             ; preds = %1345
  br label %1347

1347:                                             ; preds = %1346
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #8
  %1348 = call ptr @__errno_location() #9
  %1349 = load i32, ptr %1348, align 4, !tbaa !5
  store i32 %1349, ptr %31, align 4, !tbaa !5
  %1350 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1351 = call i32 @s2n_print_stacktrace(ptr noundef %1350)
  %1352 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1353 = trunc i8 %1352 to i1
  br i1 %1353, label %1354, label %1376

1354:                                             ; preds = %1347
  %1355 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1356 = call i32 @fileno(ptr noundef %1355) #8
  %1357 = call i32 @isatty(i32 noundef %1356) #8
  %1358 = icmp ne i32 %1357, 0
  br i1 %1358, label %1359, label %1376

1359:                                             ; preds = %1354
  %1360 = load i32, ptr %31, align 4, !tbaa !5
  %1361 = call ptr @__errno_location() #9
  store i32 %1360, ptr %1361, align 4, !tbaa !5
  %1362 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1363 = load i32, ptr @test_count, align 4, !tbaa !5
  %1364 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1365 = load i32, ptr %1364, align 4, !tbaa !5
  %1366 = call ptr @s2n_strerror(i32 noundef %1365, ptr noundef @.str.4)
  %1367 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1368 = load i32, ptr %1367, align 4, !tbaa !5
  %1369 = call ptr @s2n_strerror_debug(i32 noundef %1368, ptr noundef @.str.4)
  %1370 = call ptr @__errno_location() #9
  %1371 = load i32, ptr %1370, align 4, !tbaa !5
  %1372 = call ptr @strerror(i32 noundef %1371) #8
  %1373 = call ptr @__errno_location() #9
  %1374 = load i32, ptr %1373, align 4, !tbaa !5
  %1375 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1362, ptr noundef @.str.2, i32 noundef %1363, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 77, ptr noundef %1366, ptr noundef %1369, ptr noundef %1372, i32 noundef %1374) #8
  br label %1393

1376:                                             ; preds = %1354, %1347
  %1377 = load i32, ptr %31, align 4, !tbaa !5
  %1378 = call ptr @__errno_location() #9
  store i32 %1377, ptr %1378, align 4, !tbaa !5
  %1379 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1380 = load i32, ptr @test_count, align 4, !tbaa !5
  %1381 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1382 = load i32, ptr %1381, align 4, !tbaa !5
  %1383 = call ptr @s2n_strerror(i32 noundef %1382, ptr noundef @.str.4)
  %1384 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1385 = load i32, ptr %1384, align 4, !tbaa !5
  %1386 = call ptr @s2n_strerror_debug(i32 noundef %1385, ptr noundef @.str.4)
  %1387 = call ptr @__errno_location() #9
  %1388 = load i32, ptr %1387, align 4, !tbaa !5
  %1389 = call ptr @strerror(i32 noundef %1388) #8
  %1390 = call ptr @__errno_location() #9
  %1391 = load i32, ptr %1390, align 4, !tbaa !5
  %1392 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1379, ptr noundef @.str.5, i32 noundef %1380, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 77, ptr noundef %1383, ptr noundef %1386, ptr noundef %1389, i32 noundef %1391) #8
  br label %1393

1393:                                             ; preds = %1376, %1359
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #8
  br label %1394

1394:                                             ; preds = %1393
  br label %1395

1395:                                             ; preds = %1394
  call void @exit(i32 noundef 1) #10
  unreachable

1396:                                             ; No predecessors!
  br label %1397

1397:                                             ; preds = %1396
  br label %1398

1398:                                             ; preds = %1397, %1339
  br label %1399

1399:                                             ; preds = %1398
  br label %1400

1400:                                             ; preds = %1399
  br label %1401

1401:                                             ; preds = %1400
  %1402 = load i32, ptr @test_count, align 4, !tbaa !5
  %1403 = add nsw i32 %1402, 1
  store i32 %1403, ptr @test_count, align 4, !tbaa !5
  %1404 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1405 = load i32, ptr %1404, align 4, !tbaa !5
  %1406 = icmp eq i32 %1405, 0
  br i1 %1406, label %1407, label %1460

1407:                                             ; preds = %1401
  br label %1408

1408:                                             ; preds = %1407
  br label %1409

1409:                                             ; preds = %1408
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #8
  %1410 = call ptr @__errno_location() #9
  %1411 = load i32, ptr %1410, align 4, !tbaa !5
  store i32 %1411, ptr %32, align 4, !tbaa !5
  %1412 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1413 = call i32 @s2n_print_stacktrace(ptr noundef %1412)
  %1414 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1415 = trunc i8 %1414 to i1
  br i1 %1415, label %1416, label %1438

1416:                                             ; preds = %1409
  %1417 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1418 = call i32 @fileno(ptr noundef %1417) #8
  %1419 = call i32 @isatty(i32 noundef %1418) #8
  %1420 = icmp ne i32 %1419, 0
  br i1 %1420, label %1421, label %1438

1421:                                             ; preds = %1416
  %1422 = load i32, ptr %32, align 4, !tbaa !5
  %1423 = call ptr @__errno_location() #9
  store i32 %1422, ptr %1423, align 4, !tbaa !5
  %1424 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1425 = load i32, ptr @test_count, align 4, !tbaa !5
  %1426 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1427 = load i32, ptr %1426, align 4, !tbaa !5
  %1428 = call ptr @s2n_strerror(i32 noundef %1427, ptr noundef @.str.4)
  %1429 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1430 = load i32, ptr %1429, align 4, !tbaa !5
  %1431 = call ptr @s2n_strerror_debug(i32 noundef %1430, ptr noundef @.str.4)
  %1432 = call ptr @__errno_location() #9
  %1433 = load i32, ptr %1432, align 4, !tbaa !5
  %1434 = call ptr @strerror(i32 noundef %1433) #8
  %1435 = call ptr @__errno_location() #9
  %1436 = load i32, ptr %1435, align 4, !tbaa !5
  %1437 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1424, ptr noundef @.str.2, i32 noundef %1425, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 77, ptr noundef %1428, ptr noundef %1431, ptr noundef %1434, i32 noundef %1436) #8
  br label %1455

1438:                                             ; preds = %1416, %1409
  %1439 = load i32, ptr %32, align 4, !tbaa !5
  %1440 = call ptr @__errno_location() #9
  store i32 %1439, ptr %1440, align 4, !tbaa !5
  %1441 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1442 = load i32, ptr @test_count, align 4, !tbaa !5
  %1443 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1444 = load i32, ptr %1443, align 4, !tbaa !5
  %1445 = call ptr @s2n_strerror(i32 noundef %1444, ptr noundef @.str.4)
  %1446 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1447 = load i32, ptr %1446, align 4, !tbaa !5
  %1448 = call ptr @s2n_strerror_debug(i32 noundef %1447, ptr noundef @.str.4)
  %1449 = call ptr @__errno_location() #9
  %1450 = load i32, ptr %1449, align 4, !tbaa !5
  %1451 = call ptr @strerror(i32 noundef %1450) #8
  %1452 = call ptr @__errno_location() #9
  %1453 = load i32, ptr %1452, align 4, !tbaa !5
  %1454 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1441, ptr noundef @.str.5, i32 noundef %1442, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 77, ptr noundef %1445, ptr noundef %1448, ptr noundef %1451, i32 noundef %1453) #8
  br label %1455

1455:                                             ; preds = %1438, %1421
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #8
  br label %1456

1456:                                             ; preds = %1455
  br label %1457

1457:                                             ; preds = %1456
  call void @exit(i32 noundef 1) #10
  unreachable

1458:                                             ; No predecessors!
  br label %1459

1459:                                             ; preds = %1458
  br label %1460

1460:                                             ; preds = %1459, %1401
  br label %1461

1461:                                             ; preds = %1460
  br label %1462

1462:                                             ; preds = %1461
  br label %1463

1463:                                             ; preds = %1462
  %1464 = load i32, ptr @test_count, align 4, !tbaa !5
  %1465 = add nsw i32 %1464, 1
  store i32 %1465, ptr @test_count, align 4, !tbaa !5
  %1466 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1467 = load i32, ptr %1466, align 4, !tbaa !5
  %1468 = call ptr @s2n_strerror_debug(i32 noundef %1467, ptr noundef @.str.4)
  %1469 = icmp eq ptr %1468, null
  br i1 %1469, label %1470, label %1523

1470:                                             ; preds = %1463
  br label %1471

1471:                                             ; preds = %1470
  br label %1472

1472:                                             ; preds = %1471
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #8
  %1473 = call ptr @__errno_location() #9
  %1474 = load i32, ptr %1473, align 4, !tbaa !5
  store i32 %1474, ptr %33, align 4, !tbaa !5
  %1475 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1476 = call i32 @s2n_print_stacktrace(ptr noundef %1475)
  %1477 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1478 = trunc i8 %1477 to i1
  br i1 %1478, label %1479, label %1501

1479:                                             ; preds = %1472
  %1480 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1481 = call i32 @fileno(ptr noundef %1480) #8
  %1482 = call i32 @isatty(i32 noundef %1481) #8
  %1483 = icmp ne i32 %1482, 0
  br i1 %1483, label %1484, label %1501

1484:                                             ; preds = %1479
  %1485 = load i32, ptr %33, align 4, !tbaa !5
  %1486 = call ptr @__errno_location() #9
  store i32 %1485, ptr %1486, align 4, !tbaa !5
  %1487 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1488 = load i32, ptr @test_count, align 4, !tbaa !5
  %1489 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1490 = load i32, ptr %1489, align 4, !tbaa !5
  %1491 = call ptr @s2n_strerror(i32 noundef %1490, ptr noundef @.str.4)
  %1492 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1493 = load i32, ptr %1492, align 4, !tbaa !5
  %1494 = call ptr @s2n_strerror_debug(i32 noundef %1493, ptr noundef @.str.4)
  %1495 = call ptr @__errno_location() #9
  %1496 = load i32, ptr %1495, align 4, !tbaa !5
  %1497 = call ptr @strerror(i32 noundef %1496) #8
  %1498 = call ptr @__errno_location() #9
  %1499 = load i32, ptr %1498, align 4, !tbaa !5
  %1500 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1487, ptr noundef @.str.2, i32 noundef %1488, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 77, ptr noundef %1491, ptr noundef %1494, ptr noundef %1497, i32 noundef %1499) #8
  br label %1518

1501:                                             ; preds = %1479, %1472
  %1502 = load i32, ptr %33, align 4, !tbaa !5
  %1503 = call ptr @__errno_location() #9
  store i32 %1502, ptr %1503, align 4, !tbaa !5
  %1504 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1505 = load i32, ptr @test_count, align 4, !tbaa !5
  %1506 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1507 = load i32, ptr %1506, align 4, !tbaa !5
  %1508 = call ptr @s2n_strerror(i32 noundef %1507, ptr noundef @.str.4)
  %1509 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1510 = load i32, ptr %1509, align 4, !tbaa !5
  %1511 = call ptr @s2n_strerror_debug(i32 noundef %1510, ptr noundef @.str.4)
  %1512 = call ptr @__errno_location() #9
  %1513 = load i32, ptr %1512, align 4, !tbaa !5
  %1514 = call ptr @strerror(i32 noundef %1513) #8
  %1515 = call ptr @__errno_location() #9
  %1516 = load i32, ptr %1515, align 4, !tbaa !5
  %1517 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1504, ptr noundef @.str.5, i32 noundef %1505, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 77, ptr noundef %1508, ptr noundef %1511, ptr noundef %1514, i32 noundef %1516) #8
  br label %1518

1518:                                             ; preds = %1501, %1484
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #8
  br label %1519

1519:                                             ; preds = %1518
  br label %1520

1520:                                             ; preds = %1519
  call void @exit(i32 noundef 1) #10
  unreachable

1521:                                             ; No predecessors!
  br label %1522

1522:                                             ; preds = %1521
  br label %1523

1523:                                             ; preds = %1522, %1463
  br label %1524

1524:                                             ; preds = %1523
  br label %1525

1525:                                             ; preds = %1524
  br label %1526

1526:                                             ; preds = %1525
  %1527 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1527, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1528 = call ptr @__errno_location() #9
  store i32 0, ptr %1528, align 4, !tbaa !5
  br label %1529

1529:                                             ; preds = %1526
  br label %1530

1530:                                             ; preds = %1529
  br label %1531

1531:                                             ; preds = %1530
  br label %1532

1532:                                             ; preds = %1531
  br label %1533

1533:                                             ; preds = %1532
  %1534 = load i32, ptr @test_count, align 4, !tbaa !5
  %1535 = add nsw i32 %1534, 1
  store i32 %1535, ptr @test_count, align 4, !tbaa !5
  %1536 = load ptr, ptr %13, align 8, !tbaa !9
  %1537 = getelementptr inbounds %struct.s2n_connection, ptr %1536, i32 0, i32 52
  %1538 = getelementptr inbounds %struct.s2n_handshake, ptr %1537, i32 0, i32 0
  %1539 = load ptr, ptr %18, align 8, !tbaa !9
  %1540 = getelementptr inbounds %struct.s2n_connection, ptr %1539, i32 0, i32 52
  %1541 = getelementptr inbounds %struct.s2n_handshake, ptr %1540, i32 0, i32 0
  %1542 = call i32 @reset_stuffers(ptr noundef %1538, ptr noundef %1541)
  %1543 = icmp eq i32 %1542, -1
  br i1 %1543, label %1544, label %1597

1544:                                             ; preds = %1533
  br label %1545

1545:                                             ; preds = %1544
  br label %1546

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

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

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

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

1592:                                             ; preds = %1575, %1558
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #8
  br label %1593

1593:                                             ; preds = %1592
  br label %1594

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

1595:                                             ; No predecessors!
  br label %1596

1596:                                             ; preds = %1595
  br label %1597

1597:                                             ; preds = %1596, %1533
  br label %1598

1598:                                             ; preds = %1597
  br label %1599

1599:                                             ; preds = %1598
  br label %1600

1600:                                             ; preds = %1599
  %1601 = load i32, ptr @test_count, align 4, !tbaa !5
  %1602 = add nsw i32 %1601, 1
  store i32 %1602, ptr @test_count, align 4, !tbaa !5
  %1603 = load ptr, ptr %13, align 8, !tbaa !9
  %1604 = getelementptr inbounds %struct.s2n_connection, ptr %1603, i32 0, i32 52
  %1605 = getelementptr inbounds %struct.s2n_handshake, ptr %1604, i32 0, i32 0
  %1606 = load ptr, ptr %18, align 8, !tbaa !9
  %1607 = getelementptr inbounds %struct.s2n_connection, ptr %1606, i32 0, i32 52
  %1608 = getelementptr inbounds %struct.s2n_handshake, ptr %1607, i32 0, i32 0
  %1609 = load i32, ptr %15, align 4, !tbaa !5
  %1610 = call i32 @s2n_stuffer_copy(ptr noundef %1605, ptr noundef %1608, i32 noundef %1609)
  %1611 = icmp eq i32 %1610, -1
  br i1 %1611, label %1612, label %1665

1612:                                             ; preds = %1600
  br label %1613

1613:                                             ; preds = %1612
  br label %1614

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

1621:                                             ; preds = %1614
  %1622 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1623 = call i32 @fileno(ptr noundef %1622) #8
  %1624 = call i32 @isatty(i32 noundef %1623) #8
  %1625 = icmp ne i32 %1624, 0
  br i1 %1625, label %1626, label %1643

1626:                                             ; preds = %1621
  %1627 = load i32, ptr %35, align 4, !tbaa !5
  %1628 = call ptr @__errno_location() #9
  store i32 %1627, ptr %1628, align 4, !tbaa !5
  %1629 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1630 = load i32, ptr @test_count, align 4, !tbaa !5
  %1631 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1632 = load i32, ptr %1631, align 4, !tbaa !5
  %1633 = call ptr @s2n_strerror(i32 noundef %1632, ptr noundef @.str.4)
  %1634 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1635 = load i32, ptr %1634, align 4, !tbaa !5
  %1636 = call ptr @s2n_strerror_debug(i32 noundef %1635, ptr noundef @.str.4)
  %1637 = call ptr @__errno_location() #9
  %1638 = load i32, ptr %1637, align 4, !tbaa !5
  %1639 = call ptr @strerror(i32 noundef %1638) #8
  %1640 = call ptr @__errno_location() #9
  %1641 = load i32, ptr %1640, align 4, !tbaa !5
  %1642 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1629, ptr noundef @.str.2, i32 noundef %1630, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 81, ptr noundef %1633, ptr noundef %1636, ptr noundef %1639, i32 noundef %1641) #8
  br label %1660

1643:                                             ; preds = %1621, %1614
  %1644 = load i32, ptr %35, align 4, !tbaa !5
  %1645 = call ptr @__errno_location() #9
  store i32 %1644, ptr %1645, align 4, !tbaa !5
  %1646 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1647 = load i32, ptr @test_count, align 4, !tbaa !5
  %1648 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1649 = load i32, ptr %1648, align 4, !tbaa !5
  %1650 = call ptr @s2n_strerror(i32 noundef %1649, ptr noundef @.str.4)
  %1651 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1652 = load i32, ptr %1651, align 4, !tbaa !5
  %1653 = call ptr @s2n_strerror_debug(i32 noundef %1652, ptr noundef @.str.4)
  %1654 = call ptr @__errno_location() #9
  %1655 = load i32, ptr %1654, align 4, !tbaa !5
  %1656 = call ptr @strerror(i32 noundef %1655) #8
  %1657 = call ptr @__errno_location() #9
  %1658 = load i32, ptr %1657, align 4, !tbaa !5
  %1659 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1646, ptr noundef @.str.5, i32 noundef %1647, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 81, ptr noundef %1650, ptr noundef %1653, ptr noundef %1656, i32 noundef %1658) #8
  br label %1660

1660:                                             ; preds = %1643, %1626
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #8
  br label %1661

1661:                                             ; preds = %1660
  br label %1662

1662:                                             ; preds = %1661
  call void @exit(i32 noundef 1) #10
  unreachable

1663:                                             ; No predecessors!
  br label %1664

1664:                                             ; preds = %1663
  br label %1665

1665:                                             ; preds = %1664, %1600
  br label %1666

1666:                                             ; preds = %1665
  br label %1667

1667:                                             ; preds = %1666
  %1668 = load ptr, ptr %18, align 8, !tbaa !9
  %1669 = getelementptr inbounds %struct.s2n_connection, ptr %1668, i32 0, i32 52
  %1670 = getelementptr inbounds %struct.s2n_handshake, ptr %1669, i32 0, i32 0
  %1671 = getelementptr inbounds %struct.s2n_stuffer, ptr %1670, i32 0, i32 0
  %1672 = getelementptr inbounds %struct.s2n_blob, ptr %1671, i32 0, i32 0
  %1673 = load ptr, ptr %1672, align 8, !tbaa !52
  %1674 = getelementptr inbounds i8, ptr %1673, i64 0
  %1675 = load i8, ptr %1674, align 1, !tbaa !16
  %1676 = zext i8 %1675 to i32
  %1677 = xor i32 %1676, 1
  %1678 = trunc i32 %1677 to i8
  store i8 %1678, ptr %1674, align 1, !tbaa !16
  br label %1679

1679:                                             ; preds = %1667
  br label %1680

1680:                                             ; preds = %1679
  %1681 = load i32, ptr @test_count, align 4, !tbaa !5
  %1682 = add nsw i32 %1681, 1
  store i32 %1682, ptr @test_count, align 4, !tbaa !5
  %1683 = load ptr, ptr %18, align 8, !tbaa !9
  %1684 = call i32 @s2n_tls13_client_finished_recv(ptr noundef %1683)
  %1685 = icmp eq i32 %1684, -1
  br i1 %1685, label %1739, label %1686

1686:                                             ; preds = %1680
  br label %1687

1687:                                             ; preds = %1686
  br label %1688

1688:                                             ; preds = %1687
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #8
  %1689 = call ptr @__errno_location() #9
  %1690 = load i32, ptr %1689, align 4, !tbaa !5
  store i32 %1690, ptr %36, align 4, !tbaa !5
  %1691 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1692 = call i32 @s2n_print_stacktrace(ptr noundef %1691)
  %1693 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1694 = trunc i8 %1693 to i1
  br i1 %1694, label %1695, label %1717

1695:                                             ; preds = %1688
  %1696 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1697 = call i32 @fileno(ptr noundef %1696) #8
  %1698 = call i32 @isatty(i32 noundef %1697) #8
  %1699 = icmp ne i32 %1698, 0
  br i1 %1699, label %1700, label %1717

1700:                                             ; preds = %1695
  %1701 = load i32, ptr %36, align 4, !tbaa !5
  %1702 = call ptr @__errno_location() #9
  store i32 %1701, ptr %1702, align 4, !tbaa !5
  %1703 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1704 = load i32, ptr @test_count, align 4, !tbaa !5
  %1705 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1706 = load i32, ptr %1705, align 4, !tbaa !5
  %1707 = call ptr @s2n_strerror(i32 noundef %1706, ptr noundef @.str.4)
  %1708 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1709 = load i32, ptr %1708, align 4, !tbaa !5
  %1710 = call ptr @s2n_strerror_debug(i32 noundef %1709, ptr noundef @.str.4)
  %1711 = call ptr @__errno_location() #9
  %1712 = load i32, ptr %1711, align 4, !tbaa !5
  %1713 = call ptr @strerror(i32 noundef %1712) #8
  %1714 = call ptr @__errno_location() #9
  %1715 = load i32, ptr %1714, align 4, !tbaa !5
  %1716 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1703, ptr noundef @.str.2, i32 noundef %1704, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 83, ptr noundef %1707, ptr noundef %1710, ptr noundef %1713, i32 noundef %1715) #8
  br label %1734

1717:                                             ; preds = %1695, %1688
  %1718 = load i32, ptr %36, align 4, !tbaa !5
  %1719 = call ptr @__errno_location() #9
  store i32 %1718, ptr %1719, align 4, !tbaa !5
  %1720 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1721 = load i32, ptr @test_count, align 4, !tbaa !5
  %1722 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1723 = load i32, ptr %1722, align 4, !tbaa !5
  %1724 = call ptr @s2n_strerror(i32 noundef %1723, ptr noundef @.str.4)
  %1725 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1726 = load i32, ptr %1725, align 4, !tbaa !5
  %1727 = call ptr @s2n_strerror_debug(i32 noundef %1726, ptr noundef @.str.4)
  %1728 = call ptr @__errno_location() #9
  %1729 = load i32, ptr %1728, align 4, !tbaa !5
  %1730 = call ptr @strerror(i32 noundef %1729) #8
  %1731 = call ptr @__errno_location() #9
  %1732 = load i32, ptr %1731, align 4, !tbaa !5
  %1733 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1720, ptr noundef @.str.5, i32 noundef %1721, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 83, ptr noundef %1724, ptr noundef %1727, ptr noundef %1730, i32 noundef %1732) #8
  br label %1734

1734:                                             ; preds = %1717, %1700
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #8
  br label %1735

1735:                                             ; preds = %1734
  br label %1736

1736:                                             ; preds = %1735
  call void @exit(i32 noundef 1) #10
  unreachable

1737:                                             ; No predecessors!
  br label %1738

1738:                                             ; preds = %1737
  br label %1739

1739:                                             ; preds = %1738, %1680
  br label %1740

1740:                                             ; preds = %1739
  br label %1741

1741:                                             ; preds = %1740
  br label %1742

1742:                                             ; preds = %1741
  %1743 = load i32, ptr @test_count, align 4, !tbaa !5
  %1744 = add nsw i32 %1743, 1
  store i32 %1744, ptr @test_count, align 4, !tbaa !5
  %1745 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1746 = load i32, ptr %1745, align 4, !tbaa !5
  %1747 = icmp eq i32 %1746, 0
  br i1 %1747, label %1748, label %1801

1748:                                             ; preds = %1742
  br label %1749

1749:                                             ; preds = %1748
  br label %1750

1750:                                             ; preds = %1749
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #8
  %1751 = call ptr @__errno_location() #9
  %1752 = load i32, ptr %1751, align 4, !tbaa !5
  store i32 %1752, ptr %37, align 4, !tbaa !5
  %1753 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1754 = call i32 @s2n_print_stacktrace(ptr noundef %1753)
  %1755 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1756 = trunc i8 %1755 to i1
  br i1 %1756, label %1757, label %1779

1757:                                             ; preds = %1750
  %1758 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1759 = call i32 @fileno(ptr noundef %1758) #8
  %1760 = call i32 @isatty(i32 noundef %1759) #8
  %1761 = icmp ne i32 %1760, 0
  br i1 %1761, label %1762, label %1779

1762:                                             ; preds = %1757
  %1763 = load i32, ptr %37, align 4, !tbaa !5
  %1764 = call ptr @__errno_location() #9
  store i32 %1763, ptr %1764, align 4, !tbaa !5
  %1765 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1766 = load i32, ptr @test_count, align 4, !tbaa !5
  %1767 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1768 = load i32, ptr %1767, align 4, !tbaa !5
  %1769 = call ptr @s2n_strerror(i32 noundef %1768, ptr noundef @.str.4)
  %1770 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1771 = load i32, ptr %1770, align 4, !tbaa !5
  %1772 = call ptr @s2n_strerror_debug(i32 noundef %1771, ptr noundef @.str.4)
  %1773 = call ptr @__errno_location() #9
  %1774 = load i32, ptr %1773, align 4, !tbaa !5
  %1775 = call ptr @strerror(i32 noundef %1774) #8
  %1776 = call ptr @__errno_location() #9
  %1777 = load i32, ptr %1776, align 4, !tbaa !5
  %1778 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1765, ptr noundef @.str.2, i32 noundef %1766, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 83, ptr noundef %1769, ptr noundef %1772, ptr noundef %1775, i32 noundef %1777) #8
  br label %1796

1779:                                             ; preds = %1757, %1750
  %1780 = load i32, ptr %37, align 4, !tbaa !5
  %1781 = call ptr @__errno_location() #9
  store i32 %1780, ptr %1781, align 4, !tbaa !5
  %1782 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1783 = load i32, ptr @test_count, align 4, !tbaa !5
  %1784 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1785 = load i32, ptr %1784, align 4, !tbaa !5
  %1786 = call ptr @s2n_strerror(i32 noundef %1785, ptr noundef @.str.4)
  %1787 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1788 = load i32, ptr %1787, align 4, !tbaa !5
  %1789 = call ptr @s2n_strerror_debug(i32 noundef %1788, ptr noundef @.str.4)
  %1790 = call ptr @__errno_location() #9
  %1791 = load i32, ptr %1790, align 4, !tbaa !5
  %1792 = call ptr @strerror(i32 noundef %1791) #8
  %1793 = call ptr @__errno_location() #9
  %1794 = load i32, ptr %1793, align 4, !tbaa !5
  %1795 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1782, ptr noundef @.str.5, i32 noundef %1783, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 83, ptr noundef %1786, ptr noundef %1789, ptr noundef %1792, i32 noundef %1794) #8
  br label %1796

1796:                                             ; preds = %1779, %1762
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #8
  br label %1797

1797:                                             ; preds = %1796
  br label %1798

1798:                                             ; preds = %1797
  call void @exit(i32 noundef 1) #10
  unreachable

1799:                                             ; No predecessors!
  br label %1800

1800:                                             ; preds = %1799
  br label %1801

1801:                                             ; preds = %1800, %1742
  br label %1802

1802:                                             ; preds = %1801
  br label %1803

1803:                                             ; preds = %1802
  br label %1804

1804:                                             ; preds = %1803
  %1805 = load i32, ptr @test_count, align 4, !tbaa !5
  %1806 = add nsw i32 %1805, 1
  store i32 %1806, ptr @test_count, align 4, !tbaa !5
  %1807 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1808 = load i32, ptr %1807, align 4, !tbaa !5
  %1809 = call ptr @s2n_strerror_debug(i32 noundef %1808, ptr noundef @.str.4)
  %1810 = icmp eq ptr %1809, null
  br i1 %1810, label %1811, label %1864

1811:                                             ; preds = %1804
  br label %1812

1812:                                             ; preds = %1811
  br label %1813

1813:                                             ; preds = %1812
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #8
  %1814 = call ptr @__errno_location() #9
  %1815 = load i32, ptr %1814, align 4, !tbaa !5
  store i32 %1815, ptr %38, align 4, !tbaa !5
  %1816 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1817 = call i32 @s2n_print_stacktrace(ptr noundef %1816)
  %1818 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1819 = trunc i8 %1818 to i1
  br i1 %1819, label %1820, label %1842

1820:                                             ; preds = %1813
  %1821 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1822 = call i32 @fileno(ptr noundef %1821) #8
  %1823 = call i32 @isatty(i32 noundef %1822) #8
  %1824 = icmp ne i32 %1823, 0
  br i1 %1824, label %1825, label %1842

1825:                                             ; preds = %1820
  %1826 = load i32, ptr %38, align 4, !tbaa !5
  %1827 = call ptr @__errno_location() #9
  store i32 %1826, ptr %1827, align 4, !tbaa !5
  %1828 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1829 = load i32, ptr @test_count, align 4, !tbaa !5
  %1830 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1831 = load i32, ptr %1830, align 4, !tbaa !5
  %1832 = call ptr @s2n_strerror(i32 noundef %1831, ptr noundef @.str.4)
  %1833 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1834 = load i32, ptr %1833, align 4, !tbaa !5
  %1835 = call ptr @s2n_strerror_debug(i32 noundef %1834, ptr noundef @.str.4)
  %1836 = call ptr @__errno_location() #9
  %1837 = load i32, ptr %1836, align 4, !tbaa !5
  %1838 = call ptr @strerror(i32 noundef %1837) #8
  %1839 = call ptr @__errno_location() #9
  %1840 = load i32, ptr %1839, align 4, !tbaa !5
  %1841 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1828, ptr noundef @.str.2, i32 noundef %1829, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 83, ptr noundef %1832, ptr noundef %1835, ptr noundef %1838, i32 noundef %1840) #8
  br label %1859

1842:                                             ; preds = %1820, %1813
  %1843 = load i32, ptr %38, align 4, !tbaa !5
  %1844 = call ptr @__errno_location() #9
  store i32 %1843, ptr %1844, align 4, !tbaa !5
  %1845 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1846 = load i32, ptr @test_count, align 4, !tbaa !5
  %1847 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1848 = load i32, ptr %1847, align 4, !tbaa !5
  %1849 = call ptr @s2n_strerror(i32 noundef %1848, ptr noundef @.str.4)
  %1850 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1851 = load i32, ptr %1850, align 4, !tbaa !5
  %1852 = call ptr @s2n_strerror_debug(i32 noundef %1851, ptr noundef @.str.4)
  %1853 = call ptr @__errno_location() #9
  %1854 = load i32, ptr %1853, align 4, !tbaa !5
  %1855 = call ptr @strerror(i32 noundef %1854) #8
  %1856 = call ptr @__errno_location() #9
  %1857 = load i32, ptr %1856, align 4, !tbaa !5
  %1858 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1845, ptr noundef @.str.5, i32 noundef %1846, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 83, ptr noundef %1849, ptr noundef %1852, ptr noundef %1855, i32 noundef %1857) #8
  br label %1859

1859:                                             ; preds = %1842, %1825
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #8
  br label %1860

1860:                                             ; preds = %1859
  br label %1861

1861:                                             ; preds = %1860
  call void @exit(i32 noundef 1) #10
  unreachable

1862:                                             ; No predecessors!
  br label %1863

1863:                                             ; preds = %1862
  br label %1864

1864:                                             ; preds = %1863, %1804
  br label %1865

1865:                                             ; preds = %1864
  br label %1866

1866:                                             ; preds = %1865
  br label %1867

1867:                                             ; preds = %1866
  %1868 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1868, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1869 = call ptr @__errno_location() #9
  store i32 0, ptr %1869, align 4, !tbaa !5
  br label %1870

1870:                                             ; preds = %1867
  br label %1871

1871:                                             ; preds = %1870
  br label %1872

1872:                                             ; preds = %1871
  br label %1873

1873:                                             ; preds = %1872
  br label %1874

1874:                                             ; preds = %1873
  %1875 = load i32, ptr @test_count, align 4, !tbaa !5
  %1876 = add nsw i32 %1875, 1
  store i32 %1876, ptr @test_count, align 4, !tbaa !5
  %1877 = load ptr, ptr %13, align 8, !tbaa !9
  %1878 = getelementptr inbounds %struct.s2n_connection, ptr %1877, i32 0, i32 52
  %1879 = getelementptr inbounds %struct.s2n_handshake, ptr %1878, i32 0, i32 0
  %1880 = load ptr, ptr %18, align 8, !tbaa !9
  %1881 = getelementptr inbounds %struct.s2n_connection, ptr %1880, i32 0, i32 52
  %1882 = getelementptr inbounds %struct.s2n_handshake, ptr %1881, i32 0, i32 0
  %1883 = call i32 @reset_stuffers(ptr noundef %1879, ptr noundef %1882)
  %1884 = icmp eq i32 %1883, -1
  br i1 %1884, label %1885, label %1938

1885:                                             ; preds = %1874
  br label %1886

1886:                                             ; preds = %1885
  br label %1887

1887:                                             ; preds = %1886
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #8
  %1888 = call ptr @__errno_location() #9
  %1889 = load i32, ptr %1888, align 4, !tbaa !5
  store i32 %1889, ptr %39, align 4, !tbaa !5
  %1890 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1891 = call i32 @s2n_print_stacktrace(ptr noundef %1890)
  %1892 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1893 = trunc i8 %1892 to i1
  br i1 %1893, label %1894, label %1916

1894:                                             ; preds = %1887
  %1895 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1896 = call i32 @fileno(ptr noundef %1895) #8
  %1897 = call i32 @isatty(i32 noundef %1896) #8
  %1898 = icmp ne i32 %1897, 0
  br i1 %1898, label %1899, label %1916

1899:                                             ; preds = %1894
  %1900 = load i32, ptr %39, align 4, !tbaa !5
  %1901 = call ptr @__errno_location() #9
  store i32 %1900, ptr %1901, align 4, !tbaa !5
  %1902 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1903 = load i32, ptr @test_count, align 4, !tbaa !5
  %1904 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1905 = load i32, ptr %1904, align 4, !tbaa !5
  %1906 = call ptr @s2n_strerror(i32 noundef %1905, ptr noundef @.str.4)
  %1907 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1908 = load i32, ptr %1907, align 4, !tbaa !5
  %1909 = call ptr @s2n_strerror_debug(i32 noundef %1908, ptr noundef @.str.4)
  %1910 = call ptr @__errno_location() #9
  %1911 = load i32, ptr %1910, align 4, !tbaa !5
  %1912 = call ptr @strerror(i32 noundef %1911) #8
  %1913 = call ptr @__errno_location() #9
  %1914 = load i32, ptr %1913, align 4, !tbaa !5
  %1915 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1902, ptr noundef @.str.2, i32 noundef %1903, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 86, ptr noundef %1906, ptr noundef %1909, ptr noundef %1912, i32 noundef %1914) #8
  br label %1933

1916:                                             ; preds = %1894, %1887
  %1917 = load i32, ptr %39, align 4, !tbaa !5
  %1918 = call ptr @__errno_location() #9
  store i32 %1917, ptr %1918, align 4, !tbaa !5
  %1919 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1920 = load i32, ptr @test_count, align 4, !tbaa !5
  %1921 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1922 = load i32, ptr %1921, align 4, !tbaa !5
  %1923 = call ptr @s2n_strerror(i32 noundef %1922, ptr noundef @.str.4)
  %1924 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1925 = load i32, ptr %1924, align 4, !tbaa !5
  %1926 = call ptr @s2n_strerror_debug(i32 noundef %1925, ptr noundef @.str.4)
  %1927 = call ptr @__errno_location() #9
  %1928 = load i32, ptr %1927, align 4, !tbaa !5
  %1929 = call ptr @strerror(i32 noundef %1928) #8
  %1930 = call ptr @__errno_location() #9
  %1931 = load i32, ptr %1930, align 4, !tbaa !5
  %1932 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1919, ptr noundef @.str.5, i32 noundef %1920, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 86, ptr noundef %1923, ptr noundef %1926, ptr noundef %1929, i32 noundef %1931) #8
  br label %1933

1933:                                             ; preds = %1916, %1899
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #8
  br label %1934

1934:                                             ; preds = %1933
  br label %1935

1935:                                             ; preds = %1934
  call void @exit(i32 noundef 1) #10
  unreachable

1936:                                             ; No predecessors!
  br label %1937

1937:                                             ; preds = %1936
  br label %1938

1938:                                             ; preds = %1937, %1874
  br label %1939

1939:                                             ; preds = %1938
  br label %1940

1940:                                             ; preds = %1939
  br label %1941

1941:                                             ; preds = %1940
  %1942 = load i32, ptr @test_count, align 4, !tbaa !5
  %1943 = add nsw i32 %1942, 1
  store i32 %1943, ptr @test_count, align 4, !tbaa !5
  %1944 = load ptr, ptr %13, align 8, !tbaa !9
  %1945 = getelementptr inbounds %struct.s2n_connection, ptr %1944, i32 0, i32 52
  %1946 = getelementptr inbounds %struct.s2n_handshake, ptr %1945, i32 0, i32 0
  %1947 = load ptr, ptr %18, align 8, !tbaa !9
  %1948 = getelementptr inbounds %struct.s2n_connection, ptr %1947, i32 0, i32 52
  %1949 = getelementptr inbounds %struct.s2n_handshake, ptr %1948, i32 0, i32 0
  %1950 = load i32, ptr %15, align 4, !tbaa !5
  %1951 = call i32 @s2n_stuffer_copy(ptr noundef %1946, ptr noundef %1949, i32 noundef %1950)
  %1952 = icmp eq i32 %1951, -1
  br i1 %1952, label %1953, label %2006

1953:                                             ; preds = %1941
  br label %1954

1954:                                             ; preds = %1953
  br label %1955

1955:                                             ; preds = %1954
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #8
  %1956 = call ptr @__errno_location() #9
  %1957 = load i32, ptr %1956, align 4, !tbaa !5
  store i32 %1957, ptr %40, align 4, !tbaa !5
  %1958 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1959 = call i32 @s2n_print_stacktrace(ptr noundef %1958)
  %1960 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1961 = trunc i8 %1960 to i1
  br i1 %1961, label %1962, label %1984

1962:                                             ; preds = %1955
  %1963 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1964 = call i32 @fileno(ptr noundef %1963) #8
  %1965 = call i32 @isatty(i32 noundef %1964) #8
  %1966 = icmp ne i32 %1965, 0
  br i1 %1966, label %1967, label %1984

1967:                                             ; preds = %1962
  %1968 = load i32, ptr %40, align 4, !tbaa !5
  %1969 = call ptr @__errno_location() #9
  store i32 %1968, ptr %1969, align 4, !tbaa !5
  %1970 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1971 = load i32, ptr @test_count, align 4, !tbaa !5
  %1972 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1973 = load i32, ptr %1972, align 4, !tbaa !5
  %1974 = call ptr @s2n_strerror(i32 noundef %1973, ptr noundef @.str.4)
  %1975 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1976 = load i32, ptr %1975, align 4, !tbaa !5
  %1977 = call ptr @s2n_strerror_debug(i32 noundef %1976, ptr noundef @.str.4)
  %1978 = call ptr @__errno_location() #9
  %1979 = load i32, ptr %1978, align 4, !tbaa !5
  %1980 = call ptr @strerror(i32 noundef %1979) #8
  %1981 = call ptr @__errno_location() #9
  %1982 = load i32, ptr %1981, align 4, !tbaa !5
  %1983 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1970, ptr noundef @.str.2, i32 noundef %1971, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 87, ptr noundef %1974, ptr noundef %1977, ptr noundef %1980, i32 noundef %1982) #8
  br label %2001

1984:                                             ; preds = %1962, %1955
  %1985 = load i32, ptr %40, align 4, !tbaa !5
  %1986 = call ptr @__errno_location() #9
  store i32 %1985, ptr %1986, align 4, !tbaa !5
  %1987 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1988 = load i32, ptr @test_count, align 4, !tbaa !5
  %1989 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1990 = load i32, ptr %1989, align 4, !tbaa !5
  %1991 = call ptr @s2n_strerror(i32 noundef %1990, ptr noundef @.str.4)
  %1992 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1993 = load i32, ptr %1992, align 4, !tbaa !5
  %1994 = call ptr @s2n_strerror_debug(i32 noundef %1993, ptr noundef @.str.4)
  %1995 = call ptr @__errno_location() #9
  %1996 = load i32, ptr %1995, align 4, !tbaa !5
  %1997 = call ptr @strerror(i32 noundef %1996) #8
  %1998 = call ptr @__errno_location() #9
  %1999 = load i32, ptr %1998, align 4, !tbaa !5
  %2000 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1987, ptr noundef @.str.5, i32 noundef %1988, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 87, ptr noundef %1991, ptr noundef %1994, ptr noundef %1997, i32 noundef %1999) #8
  br label %2001

2001:                                             ; preds = %1984, %1967
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #8
  br label %2002

2002:                                             ; preds = %2001
  br label %2003

2003:                                             ; preds = %2002
  call void @exit(i32 noundef 1) #10
  unreachable

2004:                                             ; No predecessors!
  br label %2005

2005:                                             ; preds = %2004
  br label %2006

2006:                                             ; preds = %2005, %1941
  br label %2007

2007:                                             ; preds = %2006
  br label %2008

2008:                                             ; preds = %2007
  %2009 = load ptr, ptr %18, align 8, !tbaa !9
  %2010 = getelementptr inbounds %struct.s2n_connection, ptr %2009, i32 0, i32 52
  %2011 = getelementptr inbounds %struct.s2n_handshake, ptr %2010, i32 0, i32 4
  %2012 = getelementptr inbounds [48 x i8], ptr %2011, i64 0, i64 0
  %2013 = load i8, ptr %2012, align 8, !tbaa !16
  %2014 = zext i8 %2013 to i32
  %2015 = xor i32 %2014, 1
  %2016 = trunc i32 %2015 to i8
  store i8 %2016, ptr %2012, align 8, !tbaa !16
  br label %2017

2017:                                             ; preds = %2008
  br label %2018

2018:                                             ; preds = %2017
  %2019 = load i32, ptr @test_count, align 4, !tbaa !5
  %2020 = add nsw i32 %2019, 1
  store i32 %2020, ptr @test_count, align 4, !tbaa !5
  %2021 = load ptr, ptr %18, align 8, !tbaa !9
  %2022 = call i32 @s2n_tls13_client_finished_recv(ptr noundef %2021)
  %2023 = icmp eq i32 %2022, -1
  br i1 %2023, label %2077, label %2024

2024:                                             ; preds = %2018
  br label %2025

2025:                                             ; preds = %2024
  br label %2026

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

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

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

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

2072:                                             ; preds = %2055, %2038
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #8
  br label %2073

2073:                                             ; preds = %2072
  br label %2074

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

2075:                                             ; No predecessors!
  br label %2076

2076:                                             ; preds = %2075
  br label %2077

2077:                                             ; preds = %2076, %2018
  br label %2078

2078:                                             ; preds = %2077
  br label %2079

2079:                                             ; preds = %2078
  br label %2080

2080:                                             ; preds = %2079
  %2081 = load i32, ptr @test_count, align 4, !tbaa !5
  %2082 = add nsw i32 %2081, 1
  store i32 %2082, ptr @test_count, align 4, !tbaa !5
  %2083 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2084 = load i32, ptr %2083, align 4, !tbaa !5
  %2085 = icmp eq i32 %2084, 0
  br i1 %2085, label %2086, label %2139

2086:                                             ; preds = %2080
  br label %2087

2087:                                             ; preds = %2086
  br label %2088

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

2095:                                             ; preds = %2088
  %2096 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2097 = call i32 @fileno(ptr noundef %2096) #8
  %2098 = call i32 @isatty(i32 noundef %2097) #8
  %2099 = icmp ne i32 %2098, 0
  br i1 %2099, label %2100, label %2117

2100:                                             ; preds = %2095
  %2101 = load i32, ptr %42, align 4, !tbaa !5
  %2102 = call ptr @__errno_location() #9
  store i32 %2101, ptr %2102, align 4, !tbaa !5
  %2103 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2104 = load i32, ptr @test_count, align 4, !tbaa !5
  %2105 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2106 = load i32, ptr %2105, align 4, !tbaa !5
  %2107 = call ptr @s2n_strerror(i32 noundef %2106, ptr noundef @.str.4)
  %2108 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2109 = load i32, ptr %2108, align 4, !tbaa !5
  %2110 = call ptr @s2n_strerror_debug(i32 noundef %2109, ptr noundef @.str.4)
  %2111 = call ptr @__errno_location() #9
  %2112 = load i32, ptr %2111, align 4, !tbaa !5
  %2113 = call ptr @strerror(i32 noundef %2112) #8
  %2114 = call ptr @__errno_location() #9
  %2115 = load i32, ptr %2114, align 4, !tbaa !5
  %2116 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2103, ptr noundef @.str.2, i32 noundef %2104, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 89, ptr noundef %2107, ptr noundef %2110, ptr noundef %2113, i32 noundef %2115) #8
  br label %2134

2117:                                             ; preds = %2095, %2088
  %2118 = load i32, ptr %42, align 4, !tbaa !5
  %2119 = call ptr @__errno_location() #9
  store i32 %2118, ptr %2119, align 4, !tbaa !5
  %2120 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2121 = load i32, ptr @test_count, align 4, !tbaa !5
  %2122 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2123 = load i32, ptr %2122, align 4, !tbaa !5
  %2124 = call ptr @s2n_strerror(i32 noundef %2123, ptr noundef @.str.4)
  %2125 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2126 = load i32, ptr %2125, align 4, !tbaa !5
  %2127 = call ptr @s2n_strerror_debug(i32 noundef %2126, ptr noundef @.str.4)
  %2128 = call ptr @__errno_location() #9
  %2129 = load i32, ptr %2128, align 4, !tbaa !5
  %2130 = call ptr @strerror(i32 noundef %2129) #8
  %2131 = call ptr @__errno_location() #9
  %2132 = load i32, ptr %2131, align 4, !tbaa !5
  %2133 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2120, ptr noundef @.str.5, i32 noundef %2121, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 89, ptr noundef %2124, ptr noundef %2127, ptr noundef %2130, i32 noundef %2132) #8
  br label %2134

2134:                                             ; preds = %2117, %2100
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #8
  br label %2135

2135:                                             ; preds = %2134
  br label %2136

2136:                                             ; preds = %2135
  call void @exit(i32 noundef 1) #10
  unreachable

2137:                                             ; No predecessors!
  br label %2138

2138:                                             ; preds = %2137
  br label %2139

2139:                                             ; preds = %2138, %2080
  br label %2140

2140:                                             ; preds = %2139
  br label %2141

2141:                                             ; preds = %2140
  br label %2142

2142:                                             ; preds = %2141
  %2143 = load i32, ptr @test_count, align 4, !tbaa !5
  %2144 = add nsw i32 %2143, 1
  store i32 %2144, ptr @test_count, align 4, !tbaa !5
  %2145 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2146 = load i32, ptr %2145, align 4, !tbaa !5
  %2147 = call ptr @s2n_strerror_debug(i32 noundef %2146, ptr noundef @.str.4)
  %2148 = icmp eq ptr %2147, null
  br i1 %2148, label %2149, label %2202

2149:                                             ; preds = %2142
  br label %2150

2150:                                             ; preds = %2149
  br label %2151

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

2158:                                             ; preds = %2151
  %2159 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2160 = call i32 @fileno(ptr noundef %2159) #8
  %2161 = call i32 @isatty(i32 noundef %2160) #8
  %2162 = icmp ne i32 %2161, 0
  br i1 %2162, label %2163, label %2180

2163:                                             ; preds = %2158
  %2164 = load i32, ptr %43, align 4, !tbaa !5
  %2165 = call ptr @__errno_location() #9
  store i32 %2164, ptr %2165, align 4, !tbaa !5
  %2166 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2167 = load i32, ptr @test_count, align 4, !tbaa !5
  %2168 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2169 = load i32, ptr %2168, align 4, !tbaa !5
  %2170 = call ptr @s2n_strerror(i32 noundef %2169, ptr noundef @.str.4)
  %2171 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2172 = load i32, ptr %2171, align 4, !tbaa !5
  %2173 = call ptr @s2n_strerror_debug(i32 noundef %2172, ptr noundef @.str.4)
  %2174 = call ptr @__errno_location() #9
  %2175 = load i32, ptr %2174, align 4, !tbaa !5
  %2176 = call ptr @strerror(i32 noundef %2175) #8
  %2177 = call ptr @__errno_location() #9
  %2178 = load i32, ptr %2177, align 4, !tbaa !5
  %2179 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2166, ptr noundef @.str.2, i32 noundef %2167, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 89, ptr noundef %2170, ptr noundef %2173, ptr noundef %2176, i32 noundef %2178) #8
  br label %2197

2180:                                             ; preds = %2158, %2151
  %2181 = load i32, ptr %43, align 4, !tbaa !5
  %2182 = call ptr @__errno_location() #9
  store i32 %2181, ptr %2182, align 4, !tbaa !5
  %2183 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2184 = load i32, ptr @test_count, align 4, !tbaa !5
  %2185 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2186 = load i32, ptr %2185, align 4, !tbaa !5
  %2187 = call ptr @s2n_strerror(i32 noundef %2186, ptr noundef @.str.4)
  %2188 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2189 = load i32, ptr %2188, align 4, !tbaa !5
  %2190 = call ptr @s2n_strerror_debug(i32 noundef %2189, ptr noundef @.str.4)
  %2191 = call ptr @__errno_location() #9
  %2192 = load i32, ptr %2191, align 4, !tbaa !5
  %2193 = call ptr @strerror(i32 noundef %2192) #8
  %2194 = call ptr @__errno_location() #9
  %2195 = load i32, ptr %2194, align 4, !tbaa !5
  %2196 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2183, ptr noundef @.str.5, i32 noundef %2184, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 89, ptr noundef %2187, ptr noundef %2190, ptr noundef %2193, i32 noundef %2195) #8
  br label %2197

2197:                                             ; preds = %2180, %2163
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #8
  br label %2198

2198:                                             ; preds = %2197
  br label %2199

2199:                                             ; preds = %2198
  call void @exit(i32 noundef 1) #10
  unreachable

2200:                                             ; No predecessors!
  br label %2201

2201:                                             ; preds = %2200
  br label %2202

2202:                                             ; preds = %2201, %2142
  br label %2203

2203:                                             ; preds = %2202
  br label %2204

2204:                                             ; preds = %2203
  br label %2205

2205:                                             ; preds = %2204
  %2206 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %2206, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %2207 = call ptr @__errno_location() #9
  store i32 0, ptr %2207, align 4, !tbaa !5
  br label %2208

2208:                                             ; preds = %2205
  br label %2209

2209:                                             ; preds = %2208
  br label %2210

2210:                                             ; preds = %2209
  br label %2211

2211:                                             ; preds = %2210
  br label %2212

2212:                                             ; preds = %2211
  %2213 = load i32, ptr @test_count, align 4, !tbaa !5
  %2214 = add nsw i32 %2213, 1
  store i32 %2214, ptr @test_count, align 4, !tbaa !5
  %2215 = load ptr, ptr %18, align 8, !tbaa !9
  %2216 = call i32 @s2n_connection_free(ptr noundef %2215)
  %2217 = icmp eq i32 %2216, -1
  br i1 %2217, label %2218, label %2271

2218:                                             ; preds = %2212
  br label %2219

2219:                                             ; preds = %2218
  br label %2220

2220:                                             ; preds = %2219
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #8
  %2221 = call ptr @__errno_location() #9
  %2222 = load i32, ptr %2221, align 4, !tbaa !5
  store i32 %2222, ptr %44, align 4, !tbaa !5
  %2223 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2224 = call i32 @s2n_print_stacktrace(ptr noundef %2223)
  %2225 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2226 = trunc i8 %2225 to i1
  br i1 %2226, label %2227, label %2249

2227:                                             ; preds = %2220
  %2228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2229 = call i32 @fileno(ptr noundef %2228) #8
  %2230 = call i32 @isatty(i32 noundef %2229) #8
  %2231 = icmp ne i32 %2230, 0
  br i1 %2231, label %2232, label %2249

2232:                                             ; preds = %2227
  %2233 = load i32, ptr %44, align 4, !tbaa !5
  %2234 = call ptr @__errno_location() #9
  store i32 %2233, ptr %2234, align 4, !tbaa !5
  %2235 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2236 = load i32, ptr @test_count, align 4, !tbaa !5
  %2237 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2238 = load i32, ptr %2237, align 4, !tbaa !5
  %2239 = call ptr @s2n_strerror(i32 noundef %2238, ptr noundef @.str.4)
  %2240 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2241 = load i32, ptr %2240, align 4, !tbaa !5
  %2242 = call ptr @s2n_strerror_debug(i32 noundef %2241, ptr noundef @.str.4)
  %2243 = call ptr @__errno_location() #9
  %2244 = load i32, ptr %2243, align 4, !tbaa !5
  %2245 = call ptr @strerror(i32 noundef %2244) #8
  %2246 = call ptr @__errno_location() #9
  %2247 = load i32, ptr %2246, align 4, !tbaa !5
  %2248 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2235, ptr noundef @.str.2, i32 noundef %2236, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 91, ptr noundef %2239, ptr noundef %2242, ptr noundef %2245, i32 noundef %2247) #8
  br label %2266

2249:                                             ; preds = %2227, %2220
  %2250 = load i32, ptr %44, align 4, !tbaa !5
  %2251 = call ptr @__errno_location() #9
  store i32 %2250, ptr %2251, align 4, !tbaa !5
  %2252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2253 = load i32, ptr @test_count, align 4, !tbaa !5
  %2254 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2255 = load i32, ptr %2254, align 4, !tbaa !5
  %2256 = call ptr @s2n_strerror(i32 noundef %2255, ptr noundef @.str.4)
  %2257 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2258 = load i32, ptr %2257, align 4, !tbaa !5
  %2259 = call ptr @s2n_strerror_debug(i32 noundef %2258, ptr noundef @.str.4)
  %2260 = call ptr @__errno_location() #9
  %2261 = load i32, ptr %2260, align 4, !tbaa !5
  %2262 = call ptr @strerror(i32 noundef %2261) #8
  %2263 = call ptr @__errno_location() #9
  %2264 = load i32, ptr %2263, align 4, !tbaa !5
  %2265 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2252, ptr noundef @.str.5, i32 noundef %2253, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 91, ptr noundef %2256, ptr noundef %2259, ptr noundef %2262, i32 noundef %2264) #8
  br label %2266

2266:                                             ; preds = %2249, %2232
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #8
  br label %2267

2267:                                             ; preds = %2266
  br label %2268

2268:                                             ; preds = %2267
  call void @exit(i32 noundef 1) #10
  unreachable

2269:                                             ; No predecessors!
  br label %2270

2270:                                             ; preds = %2269
  br label %2271

2271:                                             ; preds = %2270, %2212
  br label %2272

2272:                                             ; preds = %2271
  br label %2273

2273:                                             ; preds = %2272
  br label %2274

2274:                                             ; preds = %2273
  %2275 = load i32, ptr @test_count, align 4, !tbaa !5
  %2276 = add nsw i32 %2275, 1
  store i32 %2276, ptr @test_count, align 4, !tbaa !5
  %2277 = load ptr, ptr %13, align 8, !tbaa !9
  %2278 = call i32 @s2n_connection_free(ptr noundef %2277)
  %2279 = icmp eq i32 %2278, -1
  br i1 %2279, label %2280, label %2333

2280:                                             ; preds = %2274
  br label %2281

2281:                                             ; preds = %2280
  br label %2282

2282:                                             ; preds = %2281
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #8
  %2283 = call ptr @__errno_location() #9
  %2284 = load i32, ptr %2283, align 4, !tbaa !5
  store i32 %2284, ptr %45, align 4, !tbaa !5
  %2285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2286 = call i32 @s2n_print_stacktrace(ptr noundef %2285)
  %2287 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2288 = trunc i8 %2287 to i1
  br i1 %2288, label %2289, label %2311

2289:                                             ; preds = %2282
  %2290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2291 = call i32 @fileno(ptr noundef %2290) #8
  %2292 = call i32 @isatty(i32 noundef %2291) #8
  %2293 = icmp ne i32 %2292, 0
  br i1 %2293, label %2294, label %2311

2294:                                             ; preds = %2289
  %2295 = load i32, ptr %45, align 4, !tbaa !5
  %2296 = call ptr @__errno_location() #9
  store i32 %2295, ptr %2296, align 4, !tbaa !5
  %2297 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2298 = load i32, ptr @test_count, align 4, !tbaa !5
  %2299 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2300 = load i32, ptr %2299, align 4, !tbaa !5
  %2301 = call ptr @s2n_strerror(i32 noundef %2300, ptr noundef @.str.4)
  %2302 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2303 = load i32, ptr %2302, align 4, !tbaa !5
  %2304 = call ptr @s2n_strerror_debug(i32 noundef %2303, ptr noundef @.str.4)
  %2305 = call ptr @__errno_location() #9
  %2306 = load i32, ptr %2305, align 4, !tbaa !5
  %2307 = call ptr @strerror(i32 noundef %2306) #8
  %2308 = call ptr @__errno_location() #9
  %2309 = load i32, ptr %2308, align 4, !tbaa !5
  %2310 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2297, ptr noundef @.str.2, i32 noundef %2298, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 92, ptr noundef %2301, ptr noundef %2304, ptr noundef %2307, i32 noundef %2309) #8
  br label %2328

2311:                                             ; preds = %2289, %2282
  %2312 = load i32, ptr %45, align 4, !tbaa !5
  %2313 = call ptr @__errno_location() #9
  store i32 %2312, ptr %2313, align 4, !tbaa !5
  %2314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2315 = load i32, ptr @test_count, align 4, !tbaa !5
  %2316 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2317 = load i32, ptr %2316, align 4, !tbaa !5
  %2318 = call ptr @s2n_strerror(i32 noundef %2317, ptr noundef @.str.4)
  %2319 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2320 = load i32, ptr %2319, align 4, !tbaa !5
  %2321 = call ptr @s2n_strerror_debug(i32 noundef %2320, ptr noundef @.str.4)
  %2322 = call ptr @__errno_location() #9
  %2323 = load i32, ptr %2322, align 4, !tbaa !5
  %2324 = call ptr @strerror(i32 noundef %2323) #8
  %2325 = call ptr @__errno_location() #9
  %2326 = load i32, ptr %2325, align 4, !tbaa !5
  %2327 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2314, ptr noundef @.str.5, i32 noundef %2315, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 92, ptr noundef %2318, ptr noundef %2321, ptr noundef %2324, i32 noundef %2326) #8
  br label %2328

2328:                                             ; preds = %2311, %2294
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #8
  br label %2329

2329:                                             ; preds = %2328
  br label %2330

2330:                                             ; preds = %2329
  call void @exit(i32 noundef 1) #10
  unreachable

2331:                                             ; No predecessors!
  br label %2332

2332:                                             ; preds = %2331
  br label %2333

2333:                                             ; preds = %2332, %2274
  br label %2334

2334:                                             ; preds = %2333
  br label %2335

2335:                                             ; preds = %2334
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #8
  br label %2336

2336:                                             ; preds = %2335
  %2337 = load i32, ptr %12, align 4, !tbaa !5
  %2338 = add nsw i32 %2337, 1
  store i32 %2338, ptr %12, align 4, !tbaa !5
  br label %328, !llvm.loop !53

2339:                                             ; preds = %331
  call void @llvm.lifetime.end.p0(i64 12, ptr %11) #8
  call void @llvm.lifetime.end.p0(i64 312, ptr %10) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #8
  store ptr null, ptr %46, align 8, !tbaa !9
  br label %2340

2340:                                             ; preds = %2339
  %2341 = load i32, ptr @test_count, align 4, !tbaa !5
  %2342 = add nsw i32 %2341, 1
  store i32 %2342, ptr @test_count, align 4, !tbaa !5
  %2343 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %2343, ptr %46, align 8, !tbaa !9
  %2344 = icmp eq ptr %2343, null
  br i1 %2344, label %2345, label %2398

2345:                                             ; preds = %2340
  br label %2346

2346:                                             ; preds = %2345
  br label %2347

2347:                                             ; preds = %2346
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #8
  %2348 = call ptr @__errno_location() #9
  %2349 = load i32, ptr %2348, align 4, !tbaa !5
  store i32 %2349, ptr %47, align 4, !tbaa !5
  %2350 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2351 = call i32 @s2n_print_stacktrace(ptr noundef %2350)
  %2352 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2353 = trunc i8 %2352 to i1
  br i1 %2353, label %2354, label %2376

2354:                                             ; preds = %2347
  %2355 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2356 = call i32 @fileno(ptr noundef %2355) #8
  %2357 = call i32 @isatty(i32 noundef %2356) #8
  %2358 = icmp ne i32 %2357, 0
  br i1 %2358, label %2359, label %2376

2359:                                             ; preds = %2354
  %2360 = load i32, ptr %47, align 4, !tbaa !5
  %2361 = call ptr @__errno_location() #9
  store i32 %2360, ptr %2361, align 4, !tbaa !5
  %2362 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2363 = load i32, ptr @test_count, align 4, !tbaa !5
  %2364 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2365 = load i32, ptr %2364, align 4, !tbaa !5
  %2366 = call ptr @s2n_strerror(i32 noundef %2365, ptr noundef @.str.4)
  %2367 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2368 = load i32, ptr %2367, align 4, !tbaa !5
  %2369 = call ptr @s2n_strerror_debug(i32 noundef %2368, ptr noundef @.str.4)
  %2370 = call ptr @__errno_location() #9
  %2371 = load i32, ptr %2370, align 4, !tbaa !5
  %2372 = call ptr @strerror(i32 noundef %2371) #8
  %2373 = call ptr @__errno_location() #9
  %2374 = load i32, ptr %2373, align 4, !tbaa !5
  %2375 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2362, ptr noundef @.str.2, i32 noundef %2363, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 99, ptr noundef %2366, ptr noundef %2369, ptr noundef %2372, i32 noundef %2374) #8
  br label %2393

2376:                                             ; preds = %2354, %2347
  %2377 = load i32, ptr %47, align 4, !tbaa !5
  %2378 = call ptr @__errno_location() #9
  store i32 %2377, ptr %2378, align 4, !tbaa !5
  %2379 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2380 = load i32, ptr @test_count, align 4, !tbaa !5
  %2381 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2382 = load i32, ptr %2381, align 4, !tbaa !5
  %2383 = call ptr @s2n_strerror(i32 noundef %2382, ptr noundef @.str.4)
  %2384 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2385 = load i32, ptr %2384, align 4, !tbaa !5
  %2386 = call ptr @s2n_strerror_debug(i32 noundef %2385, ptr noundef @.str.4)
  %2387 = call ptr @__errno_location() #9
  %2388 = load i32, ptr %2387, align 4, !tbaa !5
  %2389 = call ptr @strerror(i32 noundef %2388) #8
  %2390 = call ptr @__errno_location() #9
  %2391 = load i32, ptr %2390, align 4, !tbaa !5
  %2392 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2379, ptr noundef @.str.5, i32 noundef %2380, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 99, ptr noundef %2383, ptr noundef %2386, ptr noundef %2389, i32 noundef %2391) #8
  br label %2393

2393:                                             ; preds = %2376, %2359
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #8
  br label %2394

2394:                                             ; preds = %2393
  br label %2395

2395:                                             ; preds = %2394
  call void @exit(i32 noundef 1) #10
  unreachable

2396:                                             ; No predecessors!
  br label %2397

2397:                                             ; preds = %2396
  br label %2398

2398:                                             ; preds = %2397, %2340
  br label %2399

2399:                                             ; preds = %2398
  br label %2400

2400:                                             ; preds = %2399
  %2401 = load ptr, ptr %46, align 8, !tbaa !9
  %2402 = getelementptr inbounds %struct.s2n_connection, ptr %2401, i32 0, i32 27
  %2403 = load ptr, ptr %2402, align 8, !tbaa !44
  %2404 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %2403, i32 0, i32 0
  store ptr @s2n_tls13_aes_256_gcm_sha384, ptr %2404, align 8, !tbaa !45
  br label %2405

2405:                                             ; preds = %2400
  br label %2406

2406:                                             ; preds = %2405
  %2407 = load i32, ptr @test_count, align 4, !tbaa !5
  %2408 = add nsw i32 %2407, 1
  store i32 %2408, ptr @test_count, align 4, !tbaa !5
  %2409 = load ptr, ptr %46, align 8, !tbaa !9
  %2410 = call i32 @s2n_tls13_client_finished_send(ptr noundef %2409)
  %2411 = icmp eq i32 %2410, -1
  br i1 %2411, label %2465, label %2412

2412:                                             ; preds = %2406
  br label %2413

2413:                                             ; preds = %2412
  br label %2414

2414:                                             ; preds = %2413
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #8
  %2415 = call ptr @__errno_location() #9
  %2416 = load i32, ptr %2415, align 4, !tbaa !5
  store i32 %2416, ptr %48, align 4, !tbaa !5
  %2417 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2418 = call i32 @s2n_print_stacktrace(ptr noundef %2417)
  %2419 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2420 = trunc i8 %2419 to i1
  br i1 %2420, label %2421, label %2443

2421:                                             ; preds = %2414
  %2422 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2423 = call i32 @fileno(ptr noundef %2422) #8
  %2424 = call i32 @isatty(i32 noundef %2423) #8
  %2425 = icmp ne i32 %2424, 0
  br i1 %2425, label %2426, label %2443

2426:                                             ; preds = %2421
  %2427 = load i32, ptr %48, align 4, !tbaa !5
  %2428 = call ptr @__errno_location() #9
  store i32 %2427, ptr %2428, align 4, !tbaa !5
  %2429 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2430 = load i32, ptr @test_count, align 4, !tbaa !5
  %2431 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2432 = load i32, ptr %2431, align 4, !tbaa !5
  %2433 = call ptr @s2n_strerror(i32 noundef %2432, ptr noundef @.str.4)
  %2434 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2435 = load i32, ptr %2434, align 4, !tbaa !5
  %2436 = call ptr @s2n_strerror_debug(i32 noundef %2435, ptr noundef @.str.4)
  %2437 = call ptr @__errno_location() #9
  %2438 = load i32, ptr %2437, align 4, !tbaa !5
  %2439 = call ptr @strerror(i32 noundef %2438) #8
  %2440 = call ptr @__errno_location() #9
  %2441 = load i32, ptr %2440, align 4, !tbaa !5
  %2442 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2429, ptr noundef @.str.2, i32 noundef %2430, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 102, ptr noundef %2433, ptr noundef %2436, ptr noundef %2439, i32 noundef %2441) #8
  br label %2460

2443:                                             ; preds = %2421, %2414
  %2444 = load i32, ptr %48, align 4, !tbaa !5
  %2445 = call ptr @__errno_location() #9
  store i32 %2444, ptr %2445, align 4, !tbaa !5
  %2446 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2447 = load i32, ptr @test_count, align 4, !tbaa !5
  %2448 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2449 = load i32, ptr %2448, align 4, !tbaa !5
  %2450 = call ptr @s2n_strerror(i32 noundef %2449, ptr noundef @.str.4)
  %2451 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2452 = load i32, ptr %2451, align 4, !tbaa !5
  %2453 = call ptr @s2n_strerror_debug(i32 noundef %2452, ptr noundef @.str.4)
  %2454 = call ptr @__errno_location() #9
  %2455 = load i32, ptr %2454, align 4, !tbaa !5
  %2456 = call ptr @strerror(i32 noundef %2455) #8
  %2457 = call ptr @__errno_location() #9
  %2458 = load i32, ptr %2457, align 4, !tbaa !5
  %2459 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2446, ptr noundef @.str.5, i32 noundef %2447, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 102, ptr noundef %2450, ptr noundef %2453, ptr noundef %2456, i32 noundef %2458) #8
  br label %2460

2460:                                             ; preds = %2443, %2426
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #8
  br label %2461

2461:                                             ; preds = %2460
  br label %2462

2462:                                             ; preds = %2461
  call void @exit(i32 noundef 1) #10
  unreachable

2463:                                             ; No predecessors!
  br label %2464

2464:                                             ; preds = %2463
  br label %2465

2465:                                             ; preds = %2464, %2406
  br label %2466

2466:                                             ; preds = %2465
  br label %2467

2467:                                             ; preds = %2466
  br label %2468

2468:                                             ; preds = %2467
  %2469 = load i32, ptr @test_count, align 4, !tbaa !5
  %2470 = add nsw i32 %2469, 1
  store i32 %2470, ptr @test_count, align 4, !tbaa !5
  %2471 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2472 = load i32, ptr %2471, align 4, !tbaa !5
  %2473 = icmp eq i32 %2472, 0
  br i1 %2473, label %2474, label %2527

2474:                                             ; preds = %2468
  br label %2475

2475:                                             ; preds = %2474
  br label %2476

2476:                                             ; preds = %2475
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #8
  %2477 = call ptr @__errno_location() #9
  %2478 = load i32, ptr %2477, align 4, !tbaa !5
  store i32 %2478, ptr %49, align 4, !tbaa !5
  %2479 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2480 = call i32 @s2n_print_stacktrace(ptr noundef %2479)
  %2481 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2482 = trunc i8 %2481 to i1
  br i1 %2482, label %2483, label %2505

2483:                                             ; preds = %2476
  %2484 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2485 = call i32 @fileno(ptr noundef %2484) #8
  %2486 = call i32 @isatty(i32 noundef %2485) #8
  %2487 = icmp ne i32 %2486, 0
  br i1 %2487, label %2488, label %2505

2488:                                             ; preds = %2483
  %2489 = load i32, ptr %49, align 4, !tbaa !5
  %2490 = call ptr @__errno_location() #9
  store i32 %2489, ptr %2490, align 4, !tbaa !5
  %2491 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2492 = load i32, ptr @test_count, align 4, !tbaa !5
  %2493 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2494 = load i32, ptr %2493, align 4, !tbaa !5
  %2495 = call ptr @s2n_strerror(i32 noundef %2494, ptr noundef @.str.4)
  %2496 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2497 = load i32, ptr %2496, align 4, !tbaa !5
  %2498 = call ptr @s2n_strerror_debug(i32 noundef %2497, ptr noundef @.str.4)
  %2499 = call ptr @__errno_location() #9
  %2500 = load i32, ptr %2499, align 4, !tbaa !5
  %2501 = call ptr @strerror(i32 noundef %2500) #8
  %2502 = call ptr @__errno_location() #9
  %2503 = load i32, ptr %2502, align 4, !tbaa !5
  %2504 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2491, ptr noundef @.str.2, i32 noundef %2492, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 102, ptr noundef %2495, ptr noundef %2498, ptr noundef %2501, i32 noundef %2503) #8
  br label %2522

2505:                                             ; preds = %2483, %2476
  %2506 = load i32, ptr %49, align 4, !tbaa !5
  %2507 = call ptr @__errno_location() #9
  store i32 %2506, ptr %2507, align 4, !tbaa !5
  %2508 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2509 = load i32, ptr @test_count, align 4, !tbaa !5
  %2510 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2511 = load i32, ptr %2510, align 4, !tbaa !5
  %2512 = call ptr @s2n_strerror(i32 noundef %2511, ptr noundef @.str.4)
  %2513 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2514 = load i32, ptr %2513, align 4, !tbaa !5
  %2515 = call ptr @s2n_strerror_debug(i32 noundef %2514, ptr noundef @.str.4)
  %2516 = call ptr @__errno_location() #9
  %2517 = load i32, ptr %2516, align 4, !tbaa !5
  %2518 = call ptr @strerror(i32 noundef %2517) #8
  %2519 = call ptr @__errno_location() #9
  %2520 = load i32, ptr %2519, align 4, !tbaa !5
  %2521 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2508, ptr noundef @.str.5, i32 noundef %2509, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 102, ptr noundef %2512, ptr noundef %2515, ptr noundef %2518, i32 noundef %2520) #8
  br label %2522

2522:                                             ; preds = %2505, %2488
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #8
  br label %2523

2523:                                             ; preds = %2522
  br label %2524

2524:                                             ; preds = %2523
  call void @exit(i32 noundef 1) #10
  unreachable

2525:                                             ; No predecessors!
  br label %2526

2526:                                             ; preds = %2525
  br label %2527

2527:                                             ; preds = %2526, %2468
  br label %2528

2528:                                             ; preds = %2527
  br label %2529

2529:                                             ; preds = %2528
  br label %2530

2530:                                             ; preds = %2529
  %2531 = load i32, ptr @test_count, align 4, !tbaa !5
  %2532 = add nsw i32 %2531, 1
  store i32 %2532, ptr @test_count, align 4, !tbaa !5
  %2533 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2534 = load i32, ptr %2533, align 4, !tbaa !5
  %2535 = call ptr @s2n_strerror_debug(i32 noundef %2534, ptr noundef @.str.4)
  %2536 = icmp eq ptr %2535, null
  br i1 %2536, label %2537, label %2590

2537:                                             ; preds = %2530
  br label %2538

2538:                                             ; preds = %2537
  br label %2539

2539:                                             ; preds = %2538
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #8
  %2540 = call ptr @__errno_location() #9
  %2541 = load i32, ptr %2540, align 4, !tbaa !5
  store i32 %2541, ptr %50, align 4, !tbaa !5
  %2542 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2543 = call i32 @s2n_print_stacktrace(ptr noundef %2542)
  %2544 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2545 = trunc i8 %2544 to i1
  br i1 %2545, label %2546, label %2568

2546:                                             ; preds = %2539
  %2547 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2548 = call i32 @fileno(ptr noundef %2547) #8
  %2549 = call i32 @isatty(i32 noundef %2548) #8
  %2550 = icmp ne i32 %2549, 0
  br i1 %2550, label %2551, label %2568

2551:                                             ; preds = %2546
  %2552 = load i32, ptr %50, align 4, !tbaa !5
  %2553 = call ptr @__errno_location() #9
  store i32 %2552, ptr %2553, align 4, !tbaa !5
  %2554 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2555 = load i32, ptr @test_count, align 4, !tbaa !5
  %2556 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2557 = load i32, ptr %2556, align 4, !tbaa !5
  %2558 = call ptr @s2n_strerror(i32 noundef %2557, ptr noundef @.str.4)
  %2559 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2560 = load i32, ptr %2559, align 4, !tbaa !5
  %2561 = call ptr @s2n_strerror_debug(i32 noundef %2560, ptr noundef @.str.4)
  %2562 = call ptr @__errno_location() #9
  %2563 = load i32, ptr %2562, align 4, !tbaa !5
  %2564 = call ptr @strerror(i32 noundef %2563) #8
  %2565 = call ptr @__errno_location() #9
  %2566 = load i32, ptr %2565, align 4, !tbaa !5
  %2567 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2554, ptr noundef @.str.2, i32 noundef %2555, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 102, ptr noundef %2558, ptr noundef %2561, ptr noundef %2564, i32 noundef %2566) #8
  br label %2585

2568:                                             ; preds = %2546, %2539
  %2569 = load i32, ptr %50, align 4, !tbaa !5
  %2570 = call ptr @__errno_location() #9
  store i32 %2569, ptr %2570, align 4, !tbaa !5
  %2571 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2572 = load i32, ptr @test_count, align 4, !tbaa !5
  %2573 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2574 = load i32, ptr %2573, align 4, !tbaa !5
  %2575 = call ptr @s2n_strerror(i32 noundef %2574, ptr noundef @.str.4)
  %2576 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2577 = load i32, ptr %2576, align 4, !tbaa !5
  %2578 = call ptr @s2n_strerror_debug(i32 noundef %2577, ptr noundef @.str.4)
  %2579 = call ptr @__errno_location() #9
  %2580 = load i32, ptr %2579, align 4, !tbaa !5
  %2581 = call ptr @strerror(i32 noundef %2580) #8
  %2582 = call ptr @__errno_location() #9
  %2583 = load i32, ptr %2582, align 4, !tbaa !5
  %2584 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2571, ptr noundef @.str.5, i32 noundef %2572, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 102, ptr noundef %2575, ptr noundef %2578, ptr noundef %2581, i32 noundef %2583) #8
  br label %2585

2585:                                             ; preds = %2568, %2551
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #8
  br label %2586

2586:                                             ; preds = %2585
  br label %2587

2587:                                             ; preds = %2586
  call void @exit(i32 noundef 1) #10
  unreachable

2588:                                             ; No predecessors!
  br label %2589

2589:                                             ; preds = %2588
  br label %2590

2590:                                             ; preds = %2589, %2530
  br label %2591

2591:                                             ; preds = %2590
  br label %2592

2592:                                             ; preds = %2591
  br label %2593

2593:                                             ; preds = %2592
  %2594 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %2594, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %2595 = call ptr @__errno_location() #9
  store i32 0, ptr %2595, align 4, !tbaa !5
  br label %2596

2596:                                             ; preds = %2593
  br label %2597

2597:                                             ; preds = %2596
  br label %2598

2598:                                             ; preds = %2597
  br label %2599

2599:                                             ; preds = %2598
  %2600 = load ptr, ptr %46, align 8, !tbaa !9
  %2601 = getelementptr inbounds %struct.s2n_connection, ptr %2600, i32 0, i32 23
  store i8 34, ptr %2601, align 4, !tbaa !17
  br label %2602

2602:                                             ; preds = %2599
  %2603 = load i32, ptr @test_count, align 4, !tbaa !5
  %2604 = add nsw i32 %2603, 1
  store i32 %2604, ptr @test_count, align 4, !tbaa !5
  %2605 = load ptr, ptr %46, align 8, !tbaa !9
  %2606 = call i32 @s2n_tls13_client_finished_send(ptr noundef %2605)
  %2607 = icmp eq i32 %2606, -1
  br i1 %2607, label %2608, label %2661

2608:                                             ; preds = %2602
  br label %2609

2609:                                             ; preds = %2608
  br label %2610

2610:                                             ; preds = %2609
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #8
  %2611 = call ptr @__errno_location() #9
  %2612 = load i32, ptr %2611, align 4, !tbaa !5
  store i32 %2612, ptr %51, align 4, !tbaa !5
  %2613 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2614 = call i32 @s2n_print_stacktrace(ptr noundef %2613)
  %2615 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2616 = trunc i8 %2615 to i1
  br i1 %2616, label %2617, label %2639

2617:                                             ; preds = %2610
  %2618 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2619 = call i32 @fileno(ptr noundef %2618) #8
  %2620 = call i32 @isatty(i32 noundef %2619) #8
  %2621 = icmp ne i32 %2620, 0
  br i1 %2621, label %2622, label %2639

2622:                                             ; preds = %2617
  %2623 = load i32, ptr %51, align 4, !tbaa !5
  %2624 = call ptr @__errno_location() #9
  store i32 %2623, ptr %2624, align 4, !tbaa !5
  %2625 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2626 = load i32, ptr @test_count, align 4, !tbaa !5
  %2627 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2628 = load i32, ptr %2627, align 4, !tbaa !5
  %2629 = call ptr @s2n_strerror(i32 noundef %2628, ptr noundef @.str.4)
  %2630 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2631 = load i32, ptr %2630, align 4, !tbaa !5
  %2632 = call ptr @s2n_strerror_debug(i32 noundef %2631, ptr noundef @.str.4)
  %2633 = call ptr @__errno_location() #9
  %2634 = load i32, ptr %2633, align 4, !tbaa !5
  %2635 = call ptr @strerror(i32 noundef %2634) #8
  %2636 = call ptr @__errno_location() #9
  %2637 = load i32, ptr %2636, align 4, !tbaa !5
  %2638 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2625, ptr noundef @.str.2, i32 noundef %2626, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 106, ptr noundef %2629, ptr noundef %2632, ptr noundef %2635, i32 noundef %2637) #8
  br label %2656

2639:                                             ; preds = %2617, %2610
  %2640 = load i32, ptr %51, align 4, !tbaa !5
  %2641 = call ptr @__errno_location() #9
  store i32 %2640, ptr %2641, align 4, !tbaa !5
  %2642 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2643 = load i32, ptr @test_count, align 4, !tbaa !5
  %2644 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2645 = load i32, ptr %2644, align 4, !tbaa !5
  %2646 = call ptr @s2n_strerror(i32 noundef %2645, ptr noundef @.str.4)
  %2647 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2648 = load i32, ptr %2647, align 4, !tbaa !5
  %2649 = call ptr @s2n_strerror_debug(i32 noundef %2648, ptr noundef @.str.4)
  %2650 = call ptr @__errno_location() #9
  %2651 = load i32, ptr %2650, align 4, !tbaa !5
  %2652 = call ptr @strerror(i32 noundef %2651) #8
  %2653 = call ptr @__errno_location() #9
  %2654 = load i32, ptr %2653, align 4, !tbaa !5
  %2655 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2642, ptr noundef @.str.5, i32 noundef %2643, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 106, ptr noundef %2646, ptr noundef %2649, ptr noundef %2652, i32 noundef %2654) #8
  br label %2656

2656:                                             ; preds = %2639, %2622
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #8
  br label %2657

2657:                                             ; preds = %2656
  br label %2658

2658:                                             ; preds = %2657
  call void @exit(i32 noundef 1) #10
  unreachable

2659:                                             ; No predecessors!
  br label %2660

2660:                                             ; preds = %2659
  br label %2661

2661:                                             ; preds = %2660, %2602
  br label %2662

2662:                                             ; preds = %2661
  br label %2663

2663:                                             ; preds = %2662
  br label %2664

2664:                                             ; preds = %2663
  %2665 = load i32, ptr @test_count, align 4, !tbaa !5
  %2666 = add nsw i32 %2665, 1
  store i32 %2666, ptr @test_count, align 4, !tbaa !5
  %2667 = load ptr, ptr %46, align 8, !tbaa !9
  %2668 = getelementptr inbounds %struct.s2n_connection, ptr %2667, i32 0, i32 52
  %2669 = getelementptr inbounds %struct.s2n_handshake, ptr %2668, i32 0, i32 0
  %2670 = getelementptr inbounds %struct.s2n_stuffer, ptr %2669, i32 0, i32 2
  %2671 = load i32, ptr %2670, align 4, !tbaa !50
  %2672 = load ptr, ptr %46, align 8, !tbaa !9
  %2673 = getelementptr inbounds %struct.s2n_connection, ptr %2672, i32 0, i32 52
  %2674 = getelementptr inbounds %struct.s2n_handshake, ptr %2673, i32 0, i32 0
  %2675 = getelementptr inbounds %struct.s2n_stuffer, ptr %2674, i32 0, i32 1
  %2676 = load i32, ptr %2675, align 8, !tbaa !51
  %2677 = sub i32 %2671, %2676
  %2678 = icmp eq i32 %2677, 48
  br i1 %2678, label %2732, label %2679

2679:                                             ; preds = %2664
  br label %2680

2680:                                             ; preds = %2679
  br label %2681

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

2688:                                             ; preds = %2681
  %2689 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2690 = call i32 @fileno(ptr noundef %2689) #8
  %2691 = call i32 @isatty(i32 noundef %2690) #8
  %2692 = icmp ne i32 %2691, 0
  br i1 %2692, label %2693, label %2710

2693:                                             ; preds = %2688
  %2694 = load i32, ptr %52, align 4, !tbaa !5
  %2695 = call ptr @__errno_location() #9
  store i32 %2694, ptr %2695, align 4, !tbaa !5
  %2696 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2697 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %2699, ptr noundef @.str.4)
  %2701 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2702 = load i32, ptr %2701, align 4, !tbaa !5
  %2703 = call ptr @s2n_strerror_debug(i32 noundef %2702, ptr noundef @.str.4)
  %2704 = call ptr @__errno_location() #9
  %2705 = load i32, ptr %2704, align 4, !tbaa !5
  %2706 = call ptr @strerror(i32 noundef %2705) #8
  %2707 = call ptr @__errno_location() #9
  %2708 = load i32, ptr %2707, align 4, !tbaa !5
  %2709 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2696, ptr noundef @.str.2, i32 noundef %2697, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 107, ptr noundef %2700, ptr noundef %2703, ptr noundef %2706, i32 noundef %2708) #8
  br label %2727

2710:                                             ; preds = %2688, %2681
  %2711 = load i32, ptr %52, align 4, !tbaa !5
  %2712 = call ptr @__errno_location() #9
  store i32 %2711, ptr %2712, align 4, !tbaa !5
  %2713 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2714 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %2716, ptr noundef @.str.4)
  %2718 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2719 = load i32, ptr %2718, align 4, !tbaa !5
  %2720 = call ptr @s2n_strerror_debug(i32 noundef %2719, ptr noundef @.str.4)
  %2721 = call ptr @__errno_location() #9
  %2722 = load i32, ptr %2721, align 4, !tbaa !5
  %2723 = call ptr @strerror(i32 noundef %2722) #8
  %2724 = call ptr @__errno_location() #9
  %2725 = load i32, ptr %2724, align 4, !tbaa !5
  %2726 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2713, ptr noundef @.str.5, i32 noundef %2714, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 107, ptr noundef %2717, ptr noundef %2720, ptr noundef %2723, i32 noundef %2725) #8
  br label %2727

2727:                                             ; preds = %2710, %2693
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #8
  br label %2728

2728:                                             ; preds = %2727
  br label %2729

2729:                                             ; preds = %2728
  call void @exit(i32 noundef 1) #10
  unreachable

2730:                                             ; No predecessors!
  br label %2731

2731:                                             ; preds = %2730
  br label %2732

2732:                                             ; preds = %2731, %2664
  br label %2733

2733:                                             ; preds = %2732
  br label %2734

2734:                                             ; preds = %2733
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #8
  store ptr null, ptr %53, align 8, !tbaa !9
  br label %2735

2735:                                             ; preds = %2734
  %2736 = load i32, ptr @test_count, align 4, !tbaa !5
  %2737 = add nsw i32 %2736, 1
  store i32 %2737, ptr @test_count, align 4, !tbaa !5
  %2738 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %2738, ptr %53, align 8, !tbaa !9
  %2739 = icmp eq ptr %2738, null
  br i1 %2739, label %2740, label %2793

2740:                                             ; preds = %2735
  br label %2741

2741:                                             ; preds = %2740
  br label %2742

2742:                                             ; preds = %2741
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #8
  %2743 = call ptr @__errno_location() #9
  %2744 = load i32, ptr %2743, align 4, !tbaa !5
  store i32 %2744, ptr %54, 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) #8
  %2752 = call i32 @isatty(i32 noundef %2751) #8
  %2753 = icmp ne i32 %2752, 0
  br i1 %2753, label %2754, label %2771

2754:                                             ; preds = %2749
  %2755 = load i32, ptr %54, align 4, !tbaa !5
  %2756 = call ptr @__errno_location() #9
  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.4)
  %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.4)
  %2765 = call ptr @__errno_location() #9
  %2766 = load i32, ptr %2765, align 4, !tbaa !5
  %2767 = call ptr @strerror(i32 noundef %2766) #8
  %2768 = call ptr @__errno_location() #9
  %2769 = load i32, ptr %2768, align 4, !tbaa !5
  %2770 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2757, ptr noundef @.str.2, i32 noundef %2758, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 110, ptr noundef %2761, ptr noundef %2764, ptr noundef %2767, i32 noundef %2769) #8
  br label %2788

2771:                                             ; preds = %2749, %2742
  %2772 = load i32, ptr %54, align 4, !tbaa !5
  %2773 = call ptr @__errno_location() #9
  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.4)
  %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.4)
  %2782 = call ptr @__errno_location() #9
  %2783 = load i32, ptr %2782, align 4, !tbaa !5
  %2784 = call ptr @strerror(i32 noundef %2783) #8
  %2785 = call ptr @__errno_location() #9
  %2786 = load i32, ptr %2785, align 4, !tbaa !5
  %2787 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2774, ptr noundef @.str.5, i32 noundef %2775, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 110, ptr noundef %2778, ptr noundef %2781, ptr noundef %2784, i32 noundef %2786) #8
  br label %2788

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

2789:                                             ; preds = %2788
  br label %2790

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

2791:                                             ; No predecessors!
  br label %2792

2792:                                             ; preds = %2791
  br label %2793

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

2794:                                             ; preds = %2793
  br label %2795

2795:                                             ; preds = %2794
  %2796 = load ptr, ptr %53, align 8, !tbaa !9
  %2797 = getelementptr inbounds %struct.s2n_connection, ptr %2796, i32 0, i32 27
  %2798 = load ptr, ptr %2797, align 8, !tbaa !44
  %2799 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %2798, i32 0, i32 0
  store ptr @s2n_tls13_aes_256_gcm_sha384, ptr %2799, align 8, !tbaa !45
  br label %2800

2800:                                             ; preds = %2795
  %2801 = load i32, ptr @test_count, align 4, !tbaa !5
  %2802 = add nsw i32 %2801, 1
  store i32 %2802, ptr @test_count, align 4, !tbaa !5
  %2803 = load ptr, ptr %46, align 8, !tbaa !9
  %2804 = getelementptr inbounds %struct.s2n_connection, ptr %2803, i32 0, i32 52
  %2805 = getelementptr inbounds %struct.s2n_handshake, ptr %2804, i32 0, i32 0
  %2806 = load ptr, ptr %53, align 8, !tbaa !9
  %2807 = getelementptr inbounds %struct.s2n_connection, ptr %2806, i32 0, i32 52
  %2808 = getelementptr inbounds %struct.s2n_handshake, ptr %2807, i32 0, i32 0
  %2809 = call i32 @s2n_stuffer_copy(ptr noundef %2805, ptr noundef %2808, i32 noundef 48)
  %2810 = icmp eq i32 %2809, -1
  br i1 %2810, label %2811, label %2864

2811:                                             ; preds = %2800
  br label %2812

2812:                                             ; preds = %2811
  br label %2813

2813:                                             ; preds = %2812
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #8
  %2814 = call ptr @__errno_location() #9
  %2815 = load i32, ptr %2814, align 4, !tbaa !5
  store i32 %2815, ptr %55, align 4, !tbaa !5
  %2816 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2817 = call i32 @s2n_print_stacktrace(ptr noundef %2816)
  %2818 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2819 = trunc i8 %2818 to i1
  br i1 %2819, label %2820, label %2842

2820:                                             ; preds = %2813
  %2821 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2822 = call i32 @fileno(ptr noundef %2821) #8
  %2823 = call i32 @isatty(i32 noundef %2822) #8
  %2824 = icmp ne i32 %2823, 0
  br i1 %2824, label %2825, label %2842

2825:                                             ; preds = %2820
  %2826 = load i32, ptr %55, align 4, !tbaa !5
  %2827 = call ptr @__errno_location() #9
  store i32 %2826, ptr %2827, align 4, !tbaa !5
  %2828 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2829 = load i32, ptr @test_count, align 4, !tbaa !5
  %2830 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2831 = load i32, ptr %2830, align 4, !tbaa !5
  %2832 = call ptr @s2n_strerror(i32 noundef %2831, ptr noundef @.str.4)
  %2833 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2834 = load i32, ptr %2833, align 4, !tbaa !5
  %2835 = call ptr @s2n_strerror_debug(i32 noundef %2834, ptr noundef @.str.4)
  %2836 = call ptr @__errno_location() #9
  %2837 = load i32, ptr %2836, align 4, !tbaa !5
  %2838 = call ptr @strerror(i32 noundef %2837) #8
  %2839 = call ptr @__errno_location() #9
  %2840 = load i32, ptr %2839, align 4, !tbaa !5
  %2841 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2828, ptr noundef @.str.2, i32 noundef %2829, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 113, ptr noundef %2832, ptr noundef %2835, ptr noundef %2838, i32 noundef %2840) #8
  br label %2859

2842:                                             ; preds = %2820, %2813
  %2843 = load i32, ptr %55, align 4, !tbaa !5
  %2844 = call ptr @__errno_location() #9
  store i32 %2843, ptr %2844, align 4, !tbaa !5
  %2845 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2846 = load i32, ptr @test_count, align 4, !tbaa !5
  %2847 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2848 = load i32, ptr %2847, align 4, !tbaa !5
  %2849 = call ptr @s2n_strerror(i32 noundef %2848, ptr noundef @.str.4)
  %2850 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2851 = load i32, ptr %2850, align 4, !tbaa !5
  %2852 = call ptr @s2n_strerror_debug(i32 noundef %2851, ptr noundef @.str.4)
  %2853 = call ptr @__errno_location() #9
  %2854 = load i32, ptr %2853, align 4, !tbaa !5
  %2855 = call ptr @strerror(i32 noundef %2854) #8
  %2856 = call ptr @__errno_location() #9
  %2857 = load i32, ptr %2856, align 4, !tbaa !5
  %2858 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2845, ptr noundef @.str.5, i32 noundef %2846, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 113, ptr noundef %2849, ptr noundef %2852, ptr noundef %2855, i32 noundef %2857) #8
  br label %2859

2859:                                             ; preds = %2842, %2825
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #8
  br label %2860

2860:                                             ; preds = %2859
  br label %2861

2861:                                             ; preds = %2860
  call void @exit(i32 noundef 1) #10
  unreachable

2862:                                             ; No predecessors!
  br label %2863

2863:                                             ; preds = %2862
  br label %2864

2864:                                             ; preds = %2863, %2800
  br label %2865

2865:                                             ; preds = %2864
  br label %2866

2866:                                             ; preds = %2865
  br label %2867

2867:                                             ; preds = %2866
  br label %2868

2868:                                             ; preds = %2867
  %2869 = load i32, ptr @test_count, align 4, !tbaa !5
  %2870 = add nsw i32 %2869, 1
  store i32 %2870, ptr @test_count, align 4, !tbaa !5
  %2871 = load ptr, ptr %53, align 8, !tbaa !9
  %2872 = call i32 @s2n_tls13_client_finished_recv(ptr noundef %2871)
  %2873 = icmp eq i32 %2872, -1
  br i1 %2873, label %2927, label %2874

2874:                                             ; preds = %2868
  br label %2875

2875:                                             ; preds = %2874
  br label %2876

2876:                                             ; preds = %2875
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #8
  %2877 = call ptr @__errno_location() #9
  %2878 = load i32, ptr %2877, align 4, !tbaa !5
  store i32 %2878, ptr %56, align 4, !tbaa !5
  %2879 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2880 = call i32 @s2n_print_stacktrace(ptr noundef %2879)
  %2881 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2882 = trunc i8 %2881 to i1
  br i1 %2882, label %2883, label %2905

2883:                                             ; preds = %2876
  %2884 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2885 = call i32 @fileno(ptr noundef %2884) #8
  %2886 = call i32 @isatty(i32 noundef %2885) #8
  %2887 = icmp ne i32 %2886, 0
  br i1 %2887, label %2888, label %2905

2888:                                             ; preds = %2883
  %2889 = load i32, ptr %56, align 4, !tbaa !5
  %2890 = call ptr @__errno_location() #9
  store i32 %2889, ptr %2890, align 4, !tbaa !5
  %2891 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2892 = load i32, ptr @test_count, align 4, !tbaa !5
  %2893 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2894 = load i32, ptr %2893, align 4, !tbaa !5
  %2895 = call ptr @s2n_strerror(i32 noundef %2894, ptr noundef @.str.4)
  %2896 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2897 = load i32, ptr %2896, align 4, !tbaa !5
  %2898 = call ptr @s2n_strerror_debug(i32 noundef %2897, ptr noundef @.str.4)
  %2899 = call ptr @__errno_location() #9
  %2900 = load i32, ptr %2899, align 4, !tbaa !5
  %2901 = call ptr @strerror(i32 noundef %2900) #8
  %2902 = call ptr @__errno_location() #9
  %2903 = load i32, ptr %2902, align 4, !tbaa !5
  %2904 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2891, ptr noundef @.str.2, i32 noundef %2892, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 114, ptr noundef %2895, ptr noundef %2898, ptr noundef %2901, i32 noundef %2903) #8
  br label %2922

2905:                                             ; preds = %2883, %2876
  %2906 = load i32, ptr %56, align 4, !tbaa !5
  %2907 = call ptr @__errno_location() #9
  store i32 %2906, ptr %2907, align 4, !tbaa !5
  %2908 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2909 = load i32, ptr @test_count, align 4, !tbaa !5
  %2910 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2911 = load i32, ptr %2910, align 4, !tbaa !5
  %2912 = call ptr @s2n_strerror(i32 noundef %2911, ptr noundef @.str.4)
  %2913 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2914 = load i32, ptr %2913, align 4, !tbaa !5
  %2915 = call ptr @s2n_strerror_debug(i32 noundef %2914, ptr noundef @.str.4)
  %2916 = call ptr @__errno_location() #9
  %2917 = load i32, ptr %2916, align 4, !tbaa !5
  %2918 = call ptr @strerror(i32 noundef %2917) #8
  %2919 = call ptr @__errno_location() #9
  %2920 = load i32, ptr %2919, align 4, !tbaa !5
  %2921 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2908, ptr noundef @.str.5, i32 noundef %2909, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 114, ptr noundef %2912, ptr noundef %2915, ptr noundef %2918, i32 noundef %2920) #8
  br label %2922

2922:                                             ; preds = %2905, %2888
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #8
  br label %2923

2923:                                             ; preds = %2922
  br label %2924

2924:                                             ; preds = %2923
  call void @exit(i32 noundef 1) #10
  unreachable

2925:                                             ; No predecessors!
  br label %2926

2926:                                             ; preds = %2925
  br label %2927

2927:                                             ; preds = %2926, %2868
  br label %2928

2928:                                             ; preds = %2927
  br label %2929

2929:                                             ; preds = %2928
  br label %2930

2930:                                             ; preds = %2929
  %2931 = load i32, ptr @test_count, align 4, !tbaa !5
  %2932 = add nsw i32 %2931, 1
  store i32 %2932, ptr @test_count, align 4, !tbaa !5
  %2933 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2934 = load i32, ptr %2933, align 4, !tbaa !5
  %2935 = icmp eq i32 %2934, 0
  br i1 %2935, label %2936, label %2989

2936:                                             ; preds = %2930
  br label %2937

2937:                                             ; preds = %2936
  br label %2938

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

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

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

2967:                                             ; preds = %2945, %2938
  %2968 = load i32, ptr %57, align 4, !tbaa !5
  %2969 = call ptr @__errno_location() #9
  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.4)
  %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.4)
  %2978 = call ptr @__errno_location() #9
  %2979 = load i32, ptr %2978, align 4, !tbaa !5
  %2980 = call ptr @strerror(i32 noundef %2979) #8
  %2981 = call ptr @__errno_location() #9
  %2982 = load i32, ptr %2981, align 4, !tbaa !5
  %2983 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2970, ptr noundef @.str.5, i32 noundef %2971, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 114, ptr noundef %2974, ptr noundef %2977, ptr noundef %2980, i32 noundef %2982) #8
  br label %2984

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

2985:                                             ; preds = %2984
  br label %2986

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

2987:                                             ; No predecessors!
  br label %2988

2988:                                             ; preds = %2987
  br label %2989

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

2990:                                             ; preds = %2989
  br label %2991

2991:                                             ; preds = %2990
  br label %2992

2992:                                             ; preds = %2991
  %2993 = load i32, ptr @test_count, align 4, !tbaa !5
  %2994 = add nsw i32 %2993, 1
  store i32 %2994, ptr @test_count, align 4, !tbaa !5
  %2995 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2996 = load i32, ptr %2995, align 4, !tbaa !5
  %2997 = call ptr @s2n_strerror_debug(i32 noundef %2996, ptr noundef @.str.4)
  %2998 = icmp eq ptr %2997, null
  br i1 %2998, label %2999, label %3052

2999:                                             ; preds = %2992
  br label %3000

3000:                                             ; preds = %2999
  br label %3001

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

3008:                                             ; preds = %3001
  %3009 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3010 = call i32 @fileno(ptr noundef %3009) #8
  %3011 = call i32 @isatty(i32 noundef %3010) #8
  %3012 = icmp ne i32 %3011, 0
  br i1 %3012, label %3013, label %3030

3013:                                             ; preds = %3008
  %3014 = load i32, ptr %58, align 4, !tbaa !5
  %3015 = call ptr @__errno_location() #9
  store i32 %3014, ptr %3015, align 4, !tbaa !5
  %3016 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3017 = load i32, ptr @test_count, align 4, !tbaa !5
  %3018 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3019 = load i32, ptr %3018, align 4, !tbaa !5
  %3020 = call ptr @s2n_strerror(i32 noundef %3019, ptr noundef @.str.4)
  %3021 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3022 = load i32, ptr %3021, align 4, !tbaa !5
  %3023 = call ptr @s2n_strerror_debug(i32 noundef %3022, ptr noundef @.str.4)
  %3024 = call ptr @__errno_location() #9
  %3025 = load i32, ptr %3024, align 4, !tbaa !5
  %3026 = call ptr @strerror(i32 noundef %3025) #8
  %3027 = call ptr @__errno_location() #9
  %3028 = load i32, ptr %3027, align 4, !tbaa !5
  %3029 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3016, ptr noundef @.str.2, i32 noundef %3017, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 114, ptr noundef %3020, ptr noundef %3023, ptr noundef %3026, i32 noundef %3028) #8
  br label %3047

3030:                                             ; preds = %3008, %3001
  %3031 = load i32, ptr %58, align 4, !tbaa !5
  %3032 = call ptr @__errno_location() #9
  store i32 %3031, ptr %3032, align 4, !tbaa !5
  %3033 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3034 = load i32, ptr @test_count, align 4, !tbaa !5
  %3035 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3036 = load i32, ptr %3035, align 4, !tbaa !5
  %3037 = call ptr @s2n_strerror(i32 noundef %3036, ptr noundef @.str.4)
  %3038 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3039 = load i32, ptr %3038, align 4, !tbaa !5
  %3040 = call ptr @s2n_strerror_debug(i32 noundef %3039, ptr noundef @.str.4)
  %3041 = call ptr @__errno_location() #9
  %3042 = load i32, ptr %3041, align 4, !tbaa !5
  %3043 = call ptr @strerror(i32 noundef %3042) #8
  %3044 = call ptr @__errno_location() #9
  %3045 = load i32, ptr %3044, align 4, !tbaa !5
  %3046 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3033, ptr noundef @.str.5, i32 noundef %3034, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 114, ptr noundef %3037, ptr noundef %3040, ptr noundef %3043, i32 noundef %3045) #8
  br label %3047

3047:                                             ; preds = %3030, %3013
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #8
  br label %3048

3048:                                             ; preds = %3047
  br label %3049

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

3050:                                             ; No predecessors!
  br label %3051

3051:                                             ; preds = %3050
  br label %3052

3052:                                             ; preds = %3051, %2992
  br label %3053

3053:                                             ; preds = %3052
  br label %3054

3054:                                             ; preds = %3053
  br label %3055

3055:                                             ; preds = %3054
  %3056 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %3056, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %3057 = call ptr @__errno_location() #9
  store i32 0, ptr %3057, align 4, !tbaa !5
  br label %3058

3058:                                             ; preds = %3055
  br label %3059

3059:                                             ; preds = %3058
  br label %3060

3060:                                             ; preds = %3059
  br label %3061

3061:                                             ; preds = %3060
  br label %3062

3062:                                             ; preds = %3061
  %3063 = load i32, ptr @test_count, align 4, !tbaa !5
  %3064 = add nsw i32 %3063, 1
  store i32 %3064, ptr @test_count, align 4, !tbaa !5
  %3065 = load ptr, ptr %53, align 8, !tbaa !9
  %3066 = call i32 @s2n_connection_free(ptr noundef %3065)
  %3067 = icmp eq i32 %3066, -1
  br i1 %3067, label %3068, label %3121

3068:                                             ; preds = %3062
  br label %3069

3069:                                             ; preds = %3068
  br label %3070

3070:                                             ; preds = %3069
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #8
  %3071 = call ptr @__errno_location() #9
  %3072 = load i32, ptr %3071, align 4, !tbaa !5
  store i32 %3072, ptr %59, align 4, !tbaa !5
  %3073 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3074 = call i32 @s2n_print_stacktrace(ptr noundef %3073)
  %3075 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3076 = trunc i8 %3075 to i1
  br i1 %3076, label %3077, label %3099

3077:                                             ; preds = %3070
  %3078 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3079 = call i32 @fileno(ptr noundef %3078) #8
  %3080 = call i32 @isatty(i32 noundef %3079) #8
  %3081 = icmp ne i32 %3080, 0
  br i1 %3081, label %3082, label %3099

3082:                                             ; preds = %3077
  %3083 = load i32, ptr %59, align 4, !tbaa !5
  %3084 = call ptr @__errno_location() #9
  store i32 %3083, ptr %3084, align 4, !tbaa !5
  %3085 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3086 = load i32, ptr @test_count, align 4, !tbaa !5
  %3087 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3088 = load i32, ptr %3087, align 4, !tbaa !5
  %3089 = call ptr @s2n_strerror(i32 noundef %3088, ptr noundef @.str.4)
  %3090 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3091 = load i32, ptr %3090, align 4, !tbaa !5
  %3092 = call ptr @s2n_strerror_debug(i32 noundef %3091, ptr noundef @.str.4)
  %3093 = call ptr @__errno_location() #9
  %3094 = load i32, ptr %3093, align 4, !tbaa !5
  %3095 = call ptr @strerror(i32 noundef %3094) #8
  %3096 = call ptr @__errno_location() #9
  %3097 = load i32, ptr %3096, align 4, !tbaa !5
  %3098 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3085, ptr noundef @.str.2, i32 noundef %3086, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 116, ptr noundef %3089, ptr noundef %3092, ptr noundef %3095, i32 noundef %3097) #8
  br label %3116

3099:                                             ; preds = %3077, %3070
  %3100 = load i32, ptr %59, align 4, !tbaa !5
  %3101 = call ptr @__errno_location() #9
  store i32 %3100, ptr %3101, align 4, !tbaa !5
  %3102 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3103 = load i32, ptr @test_count, align 4, !tbaa !5
  %3104 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3105 = load i32, ptr %3104, align 4, !tbaa !5
  %3106 = call ptr @s2n_strerror(i32 noundef %3105, ptr noundef @.str.4)
  %3107 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3108 = load i32, ptr %3107, align 4, !tbaa !5
  %3109 = call ptr @s2n_strerror_debug(i32 noundef %3108, ptr noundef @.str.4)
  %3110 = call ptr @__errno_location() #9
  %3111 = load i32, ptr %3110, align 4, !tbaa !5
  %3112 = call ptr @strerror(i32 noundef %3111) #8
  %3113 = call ptr @__errno_location() #9
  %3114 = load i32, ptr %3113, align 4, !tbaa !5
  %3115 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3102, ptr noundef @.str.5, i32 noundef %3103, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 116, ptr noundef %3106, ptr noundef %3109, ptr noundef %3112, i32 noundef %3114) #8
  br label %3116

3116:                                             ; preds = %3099, %3082
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #8
  br label %3117

3117:                                             ; preds = %3116
  br label %3118

3118:                                             ; preds = %3117
  call void @exit(i32 noundef 1) #10
  unreachable

3119:                                             ; No predecessors!
  br label %3120

3120:                                             ; preds = %3119
  br label %3121

3121:                                             ; preds = %3120, %3062
  br label %3122

3122:                                             ; preds = %3121
  br label %3123

3123:                                             ; preds = %3122
  br label %3124

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

3130:                                             ; preds = %3124
  br label %3131

3131:                                             ; preds = %3130
  br label %3132

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

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

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

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

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

3179:                                             ; preds = %3178
  br label %3180

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

3181:                                             ; No predecessors!
  br label %3182

3182:                                             ; preds = %3181
  br label %3183

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

3184:                                             ; preds = %3183
  br label %3185

3185:                                             ; preds = %3184
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %61) #8
  store ptr null, ptr %61, align 8, !tbaa !9
  br label %3186

3186:                                             ; preds = %3185
  %3187 = load i32, ptr @test_count, align 4, !tbaa !5
  %3188 = add nsw i32 %3187, 1
  store i32 %3188, ptr @test_count, align 4, !tbaa !5
  %3189 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %3189, ptr %61, align 8, !tbaa !9
  %3190 = icmp eq ptr %3189, null
  br i1 %3190, label %3191, label %3244

3191:                                             ; preds = %3186
  br label %3192

3192:                                             ; preds = %3191
  br label %3193

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

3200:                                             ; preds = %3193
  %3201 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3202 = call i32 @fileno(ptr noundef %3201) #8
  %3203 = call i32 @isatty(i32 noundef %3202) #8
  %3204 = icmp ne i32 %3203, 0
  br i1 %3204, label %3205, label %3222

3205:                                             ; preds = %3200
  %3206 = load i32, ptr %62, align 4, !tbaa !5
  %3207 = call ptr @__errno_location() #9
  store i32 %3206, ptr %3207, align 4, !tbaa !5
  %3208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3209 = load i32, ptr @test_count, align 4, !tbaa !5
  %3210 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3211 = load i32, ptr %3210, align 4, !tbaa !5
  %3212 = call ptr @s2n_strerror(i32 noundef %3211, ptr noundef @.str.4)
  %3213 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3214 = load i32, ptr %3213, align 4, !tbaa !5
  %3215 = call ptr @s2n_strerror_debug(i32 noundef %3214, ptr noundef @.str.4)
  %3216 = call ptr @__errno_location() #9
  %3217 = load i32, ptr %3216, align 4, !tbaa !5
  %3218 = call ptr @strerror(i32 noundef %3217) #8
  %3219 = call ptr @__errno_location() #9
  %3220 = load i32, ptr %3219, align 4, !tbaa !5
  %3221 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3208, ptr noundef @.str.2, i32 noundef %3209, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 123, ptr noundef %3212, ptr noundef %3215, ptr noundef %3218, i32 noundef %3220) #8
  br label %3239

3222:                                             ; preds = %3200, %3193
  %3223 = load i32, ptr %62, align 4, !tbaa !5
  %3224 = call ptr @__errno_location() #9
  store i32 %3223, ptr %3224, align 4, !tbaa !5
  %3225 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3226 = load i32, ptr @test_count, align 4, !tbaa !5
  %3227 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3228 = load i32, ptr %3227, align 4, !tbaa !5
  %3229 = call ptr @s2n_strerror(i32 noundef %3228, ptr noundef @.str.4)
  %3230 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3231 = load i32, ptr %3230, align 4, !tbaa !5
  %3232 = call ptr @s2n_strerror_debug(i32 noundef %3231, ptr noundef @.str.4)
  %3233 = call ptr @__errno_location() #9
  %3234 = load i32, ptr %3233, align 4, !tbaa !5
  %3235 = call ptr @strerror(i32 noundef %3234) #8
  %3236 = call ptr @__errno_location() #9
  %3237 = load i32, ptr %3236, align 4, !tbaa !5
  %3238 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3225, ptr noundef @.str.5, i32 noundef %3226, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 123, ptr noundef %3229, ptr noundef %3232, ptr noundef %3235, i32 noundef %3237) #8
  br label %3239

3239:                                             ; preds = %3222, %3205
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #8
  br label %3240

3240:                                             ; preds = %3239
  br label %3241

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

3242:                                             ; No predecessors!
  br label %3243

3243:                                             ; preds = %3242
  br label %3244

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

3245:                                             ; preds = %3244
  br label %3246

3246:                                             ; preds = %3245
  %3247 = load ptr, ptr %61, align 8, !tbaa !9
  %3248 = getelementptr inbounds %struct.s2n_connection, ptr %3247, i32 0, i32 23
  store i8 34, ptr %3248, align 4, !tbaa !17
  %3249 = load ptr, ptr %61, align 8, !tbaa !9
  %3250 = getelementptr inbounds %struct.s2n_connection, ptr %3249, i32 0, i32 27
  %3251 = load ptr, ptr %3250, align 8, !tbaa !44
  %3252 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %3251, i32 0, i32 0
  store ptr @s2n_tls13_aes_128_gcm_sha256, ptr %3252, align 8, !tbaa !45
  br label %3253

3253:                                             ; preds = %3246
  %3254 = load i32, ptr @test_count, align 4, !tbaa !5
  %3255 = add nsw i32 %3254, 1
  store i32 %3255, ptr @test_count, align 4, !tbaa !5
  %3256 = load ptr, ptr %61, align 8, !tbaa !9
  %3257 = call i32 @s2n_tls13_client_finished_send(ptr noundef %3256)
  %3258 = icmp eq i32 %3257, -1
  br i1 %3258, label %3259, label %3312

3259:                                             ; preds = %3253
  br label %3260

3260:                                             ; preds = %3259
  br label %3261

3261:                                             ; preds = %3260
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #8
  %3262 = call ptr @__errno_location() #9
  %3263 = load i32, ptr %3262, align 4, !tbaa !5
  store i32 %3263, ptr %63, align 4, !tbaa !5
  %3264 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3265 = call i32 @s2n_print_stacktrace(ptr noundef %3264)
  %3266 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3267 = trunc i8 %3266 to i1
  br i1 %3267, label %3268, label %3290

3268:                                             ; preds = %3261
  %3269 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3270 = call i32 @fileno(ptr noundef %3269) #8
  %3271 = call i32 @isatty(i32 noundef %3270) #8
  %3272 = icmp ne i32 %3271, 0
  br i1 %3272, label %3273, label %3290

3273:                                             ; preds = %3268
  %3274 = load i32, ptr %63, align 4, !tbaa !5
  %3275 = call ptr @__errno_location() #9
  store i32 %3274, ptr %3275, align 4, !tbaa !5
  %3276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3277 = load i32, ptr @test_count, align 4, !tbaa !5
  %3278 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3279 = load i32, ptr %3278, align 4, !tbaa !5
  %3280 = call ptr @s2n_strerror(i32 noundef %3279, ptr noundef @.str.4)
  %3281 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3282 = load i32, ptr %3281, align 4, !tbaa !5
  %3283 = call ptr @s2n_strerror_debug(i32 noundef %3282, ptr noundef @.str.4)
  %3284 = call ptr @__errno_location() #9
  %3285 = load i32, ptr %3284, align 4, !tbaa !5
  %3286 = call ptr @strerror(i32 noundef %3285) #8
  %3287 = call ptr @__errno_location() #9
  %3288 = load i32, ptr %3287, align 4, !tbaa !5
  %3289 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3276, ptr noundef @.str.2, i32 noundef %3277, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 128, ptr noundef %3280, ptr noundef %3283, ptr noundef %3286, i32 noundef %3288) #8
  br label %3307

3290:                                             ; preds = %3268, %3261
  %3291 = load i32, ptr %63, align 4, !tbaa !5
  %3292 = call ptr @__errno_location() #9
  store i32 %3291, ptr %3292, align 4, !tbaa !5
  %3293 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3294 = load i32, ptr @test_count, align 4, !tbaa !5
  %3295 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3296 = load i32, ptr %3295, align 4, !tbaa !5
  %3297 = call ptr @s2n_strerror(i32 noundef %3296, ptr noundef @.str.4)
  %3298 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3299 = load i32, ptr %3298, align 4, !tbaa !5
  %3300 = call ptr @s2n_strerror_debug(i32 noundef %3299, ptr noundef @.str.4)
  %3301 = call ptr @__errno_location() #9
  %3302 = load i32, ptr %3301, align 4, !tbaa !5
  %3303 = call ptr @strerror(i32 noundef %3302) #8
  %3304 = call ptr @__errno_location() #9
  %3305 = load i32, ptr %3304, align 4, !tbaa !5
  %3306 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3293, ptr noundef @.str.5, i32 noundef %3294, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 128, ptr noundef %3297, ptr noundef %3300, ptr noundef %3303, i32 noundef %3305) #8
  br label %3307

3307:                                             ; preds = %3290, %3273
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #8
  br label %3308

3308:                                             ; preds = %3307
  br label %3309

3309:                                             ; preds = %3308
  call void @exit(i32 noundef 1) #10
  unreachable

3310:                                             ; No predecessors!
  br label %3311

3311:                                             ; preds = %3310
  br label %3312

3312:                                             ; preds = %3311, %3253
  br label %3313

3313:                                             ; preds = %3312
  br label %3314

3314:                                             ; preds = %3313
  br label %3315

3315:                                             ; preds = %3314
  %3316 = load i32, ptr @test_count, align 4, !tbaa !5
  %3317 = add nsw i32 %3316, 1
  store i32 %3317, ptr @test_count, align 4, !tbaa !5
  %3318 = load ptr, ptr %61, align 8, !tbaa !9
  %3319 = getelementptr inbounds %struct.s2n_connection, ptr %3318, i32 0, i32 52
  %3320 = getelementptr inbounds %struct.s2n_handshake, ptr %3319, i32 0, i32 0
  %3321 = getelementptr inbounds %struct.s2n_stuffer, ptr %3320, i32 0, i32 2
  %3322 = load i32, ptr %3321, align 4, !tbaa !50
  %3323 = load ptr, ptr %61, align 8, !tbaa !9
  %3324 = getelementptr inbounds %struct.s2n_connection, ptr %3323, i32 0, i32 52
  %3325 = getelementptr inbounds %struct.s2n_handshake, ptr %3324, i32 0, i32 0
  %3326 = getelementptr inbounds %struct.s2n_stuffer, ptr %3325, i32 0, i32 1
  %3327 = load i32, ptr %3326, align 8, !tbaa !51
  %3328 = sub i32 %3322, %3327
  %3329 = icmp eq i32 %3328, 32
  br i1 %3329, label %3383, label %3330

3330:                                             ; preds = %3315
  br label %3331

3331:                                             ; preds = %3330
  br label %3332

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

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

3344:                                             ; preds = %3339
  %3345 = load i32, ptr %64, align 4, !tbaa !5
  %3346 = call ptr @__errno_location() #9
  store i32 %3345, ptr %3346, align 4, !tbaa !5
  %3347 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3348 = load i32, ptr @test_count, align 4, !tbaa !5
  %3349 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3350 = load i32, ptr %3349, align 4, !tbaa !5
  %3351 = call ptr @s2n_strerror(i32 noundef %3350, ptr noundef @.str.4)
  %3352 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3353 = load i32, ptr %3352, align 4, !tbaa !5
  %3354 = call ptr @s2n_strerror_debug(i32 noundef %3353, ptr noundef @.str.4)
  %3355 = call ptr @__errno_location() #9
  %3356 = load i32, ptr %3355, align 4, !tbaa !5
  %3357 = call ptr @strerror(i32 noundef %3356) #8
  %3358 = call ptr @__errno_location() #9
  %3359 = load i32, ptr %3358, align 4, !tbaa !5
  %3360 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3347, ptr noundef @.str.2, i32 noundef %3348, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 129, ptr noundef %3351, ptr noundef %3354, ptr noundef %3357, i32 noundef %3359) #8
  br label %3378

3361:                                             ; preds = %3339, %3332
  %3362 = load i32, ptr %64, align 4, !tbaa !5
  %3363 = call ptr @__errno_location() #9
  store i32 %3362, ptr %3363, align 4, !tbaa !5
  %3364 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3365 = load i32, ptr @test_count, align 4, !tbaa !5
  %3366 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3367 = load i32, ptr %3366, align 4, !tbaa !5
  %3368 = call ptr @s2n_strerror(i32 noundef %3367, ptr noundef @.str.4)
  %3369 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3370 = load i32, ptr %3369, align 4, !tbaa !5
  %3371 = call ptr @s2n_strerror_debug(i32 noundef %3370, ptr noundef @.str.4)
  %3372 = call ptr @__errno_location() #9
  %3373 = load i32, ptr %3372, align 4, !tbaa !5
  %3374 = call ptr @strerror(i32 noundef %3373) #8
  %3375 = call ptr @__errno_location() #9
  %3376 = load i32, ptr %3375, align 4, !tbaa !5
  %3377 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3364, ptr noundef @.str.5, i32 noundef %3365, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 129, ptr noundef %3368, ptr noundef %3371, ptr noundef %3374, i32 noundef %3376) #8
  br label %3378

3378:                                             ; preds = %3361, %3344
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #8
  br label %3379

3379:                                             ; preds = %3378
  br label %3380

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

3381:                                             ; No predecessors!
  br label %3382

3382:                                             ; preds = %3381
  br label %3383

3383:                                             ; preds = %3382, %3315
  br label %3384

3384:                                             ; preds = %3383
  br label %3385

3385:                                             ; preds = %3384
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #8
  store ptr null, ptr %65, align 8, !tbaa !9
  br label %3386

3386:                                             ; preds = %3385
  %3387 = load i32, ptr @test_count, align 4, !tbaa !5
  %3388 = add nsw i32 %3387, 1
  store i32 %3388, ptr @test_count, align 4, !tbaa !5
  %3389 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %3389, ptr %65, align 8, !tbaa !9
  %3390 = icmp eq ptr %3389, null
  br i1 %3390, label %3391, label %3444

3391:                                             ; preds = %3386
  br label %3392

3392:                                             ; preds = %3391
  br label %3393

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

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

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

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

3439:                                             ; preds = %3422, %3405
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #8
  br label %3440

3440:                                             ; preds = %3439
  br label %3441

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

3442:                                             ; No predecessors!
  br label %3443

3443:                                             ; preds = %3442
  br label %3444

3444:                                             ; preds = %3443, %3386
  br label %3445

3445:                                             ; preds = %3444
  br label %3446

3446:                                             ; preds = %3445
  %3447 = load ptr, ptr %65, align 8, !tbaa !9
  %3448 = getelementptr inbounds %struct.s2n_connection, ptr %3447, i32 0, i32 23
  store i8 34, ptr %3448, align 4, !tbaa !17
  %3449 = load ptr, ptr %65, align 8, !tbaa !9
  %3450 = getelementptr inbounds %struct.s2n_connection, ptr %3449, i32 0, i32 27
  %3451 = load ptr, ptr %3450, align 8, !tbaa !44
  %3452 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %3451, i32 0, i32 0
  store ptr @s2n_tls13_aes_256_gcm_sha384, ptr %3452, align 8, !tbaa !45
  br label %3453

3453:                                             ; preds = %3446
  %3454 = load i32, ptr @test_count, align 4, !tbaa !5
  %3455 = add nsw i32 %3454, 1
  store i32 %3455, ptr @test_count, align 4, !tbaa !5
  %3456 = load ptr, ptr %61, align 8, !tbaa !9
  %3457 = getelementptr inbounds %struct.s2n_connection, ptr %3456, i32 0, i32 52
  %3458 = getelementptr inbounds %struct.s2n_handshake, ptr %3457, i32 0, i32 0
  %3459 = load ptr, ptr %65, align 8, !tbaa !9
  %3460 = getelementptr inbounds %struct.s2n_connection, ptr %3459, i32 0, i32 52
  %3461 = getelementptr inbounds %struct.s2n_handshake, ptr %3460, i32 0, i32 0
  %3462 = call i32 @reset_stuffers(ptr noundef %3458, ptr noundef %3461)
  %3463 = icmp eq i32 %3462, -1
  br i1 %3463, label %3464, label %3517

3464:                                             ; preds = %3453
  br label %3465

3465:                                             ; preds = %3464
  br label %3466

3466:                                             ; preds = %3465
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #8
  %3467 = call ptr @__errno_location() #9
  %3468 = load i32, ptr %3467, align 4, !tbaa !5
  store i32 %3468, ptr %67, align 4, !tbaa !5
  %3469 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3470 = call i32 @s2n_print_stacktrace(ptr noundef %3469)
  %3471 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3472 = trunc i8 %3471 to i1
  br i1 %3472, label %3473, label %3495

3473:                                             ; preds = %3466
  %3474 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3475 = call i32 @fileno(ptr noundef %3474) #8
  %3476 = call i32 @isatty(i32 noundef %3475) #8
  %3477 = icmp ne i32 %3476, 0
  br i1 %3477, label %3478, label %3495

3478:                                             ; preds = %3473
  %3479 = load i32, ptr %67, align 4, !tbaa !5
  %3480 = call ptr @__errno_location() #9
  store i32 %3479, ptr %3480, align 4, !tbaa !5
  %3481 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3482 = load i32, ptr @test_count, align 4, !tbaa !5
  %3483 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3484 = load i32, ptr %3483, align 4, !tbaa !5
  %3485 = call ptr @s2n_strerror(i32 noundef %3484, ptr noundef @.str.4)
  %3486 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3487 = load i32, ptr %3486, align 4, !tbaa !5
  %3488 = call ptr @s2n_strerror_debug(i32 noundef %3487, ptr noundef @.str.4)
  %3489 = call ptr @__errno_location() #9
  %3490 = load i32, ptr %3489, align 4, !tbaa !5
  %3491 = call ptr @strerror(i32 noundef %3490) #8
  %3492 = call ptr @__errno_location() #9
  %3493 = load i32, ptr %3492, align 4, !tbaa !5
  %3494 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3481, ptr noundef @.str.2, i32 noundef %3482, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 136, ptr noundef %3485, ptr noundef %3488, ptr noundef %3491, i32 noundef %3493) #8
  br label %3512

3495:                                             ; preds = %3473, %3466
  %3496 = load i32, ptr %67, align 4, !tbaa !5
  %3497 = call ptr @__errno_location() #9
  store i32 %3496, ptr %3497, align 4, !tbaa !5
  %3498 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3499 = load i32, ptr @test_count, align 4, !tbaa !5
  %3500 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3501 = load i32, ptr %3500, align 4, !tbaa !5
  %3502 = call ptr @s2n_strerror(i32 noundef %3501, ptr noundef @.str.4)
  %3503 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3504 = load i32, ptr %3503, align 4, !tbaa !5
  %3505 = call ptr @s2n_strerror_debug(i32 noundef %3504, ptr noundef @.str.4)
  %3506 = call ptr @__errno_location() #9
  %3507 = load i32, ptr %3506, align 4, !tbaa !5
  %3508 = call ptr @strerror(i32 noundef %3507) #8
  %3509 = call ptr @__errno_location() #9
  %3510 = load i32, ptr %3509, align 4, !tbaa !5
  %3511 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3498, ptr noundef @.str.5, i32 noundef %3499, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 136, ptr noundef %3502, ptr noundef %3505, ptr noundef %3508, i32 noundef %3510) #8
  br label %3512

3512:                                             ; preds = %3495, %3478
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #8
  br label %3513

3513:                                             ; preds = %3512
  br label %3514

3514:                                             ; preds = %3513
  call void @exit(i32 noundef 1) #10
  unreachable

3515:                                             ; No predecessors!
  br label %3516

3516:                                             ; preds = %3515
  br label %3517

3517:                                             ; preds = %3516, %3453
  br label %3518

3518:                                             ; preds = %3517
  br label %3519

3519:                                             ; preds = %3518
  br label %3520

3520:                                             ; preds = %3519
  %3521 = load i32, ptr @test_count, align 4, !tbaa !5
  %3522 = add nsw i32 %3521, 1
  store i32 %3522, ptr @test_count, align 4, !tbaa !5
  %3523 = load ptr, ptr %61, align 8, !tbaa !9
  %3524 = getelementptr inbounds %struct.s2n_connection, ptr %3523, i32 0, i32 52
  %3525 = getelementptr inbounds %struct.s2n_handshake, ptr %3524, i32 0, i32 0
  %3526 = load ptr, ptr %65, align 8, !tbaa !9
  %3527 = getelementptr inbounds %struct.s2n_connection, ptr %3526, i32 0, i32 52
  %3528 = getelementptr inbounds %struct.s2n_handshake, ptr %3527, i32 0, i32 0
  %3529 = call i32 @s2n_stuffer_copy(ptr noundef %3525, ptr noundef %3528, i32 noundef 32)
  %3530 = icmp eq i32 %3529, -1
  br i1 %3530, label %3531, label %3584

3531:                                             ; preds = %3520
  br label %3532

3532:                                             ; preds = %3531
  br label %3533

3533:                                             ; preds = %3532
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #8
  %3534 = call ptr @__errno_location() #9
  %3535 = load i32, ptr %3534, align 4, !tbaa !5
  store i32 %3535, ptr %68, align 4, !tbaa !5
  %3536 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3537 = call i32 @s2n_print_stacktrace(ptr noundef %3536)
  %3538 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3539 = trunc i8 %3538 to i1
  br i1 %3539, label %3540, label %3562

3540:                                             ; preds = %3533
  %3541 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3542 = call i32 @fileno(ptr noundef %3541) #8
  %3543 = call i32 @isatty(i32 noundef %3542) #8
  %3544 = icmp ne i32 %3543, 0
  br i1 %3544, label %3545, label %3562

3545:                                             ; preds = %3540
  %3546 = load i32, ptr %68, align 4, !tbaa !5
  %3547 = call ptr @__errno_location() #9
  store i32 %3546, ptr %3547, align 4, !tbaa !5
  %3548 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3549 = load i32, ptr @test_count, align 4, !tbaa !5
  %3550 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3551 = load i32, ptr %3550, align 4, !tbaa !5
  %3552 = call ptr @s2n_strerror(i32 noundef %3551, ptr noundef @.str.4)
  %3553 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3554 = load i32, ptr %3553, align 4, !tbaa !5
  %3555 = call ptr @s2n_strerror_debug(i32 noundef %3554, ptr noundef @.str.4)
  %3556 = call ptr @__errno_location() #9
  %3557 = load i32, ptr %3556, align 4, !tbaa !5
  %3558 = call ptr @strerror(i32 noundef %3557) #8
  %3559 = call ptr @__errno_location() #9
  %3560 = load i32, ptr %3559, align 4, !tbaa !5
  %3561 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3548, ptr noundef @.str.2, i32 noundef %3549, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 137, ptr noundef %3552, ptr noundef %3555, ptr noundef %3558, i32 noundef %3560) #8
  br label %3579

3562:                                             ; preds = %3540, %3533
  %3563 = load i32, ptr %68, align 4, !tbaa !5
  %3564 = call ptr @__errno_location() #9
  store i32 %3563, ptr %3564, align 4, !tbaa !5
  %3565 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3566 = load i32, ptr @test_count, align 4, !tbaa !5
  %3567 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3568 = load i32, ptr %3567, align 4, !tbaa !5
  %3569 = call ptr @s2n_strerror(i32 noundef %3568, ptr noundef @.str.4)
  %3570 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3571 = load i32, ptr %3570, align 4, !tbaa !5
  %3572 = call ptr @s2n_strerror_debug(i32 noundef %3571, ptr noundef @.str.4)
  %3573 = call ptr @__errno_location() #9
  %3574 = load i32, ptr %3573, align 4, !tbaa !5
  %3575 = call ptr @strerror(i32 noundef %3574) #8
  %3576 = call ptr @__errno_location() #9
  %3577 = load i32, ptr %3576, align 4, !tbaa !5
  %3578 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3565, ptr noundef @.str.5, i32 noundef %3566, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 137, ptr noundef %3569, ptr noundef %3572, ptr noundef %3575, i32 noundef %3577) #8
  br label %3579

3579:                                             ; preds = %3562, %3545
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #8
  br label %3580

3580:                                             ; preds = %3579
  br label %3581

3581:                                             ; preds = %3580
  call void @exit(i32 noundef 1) #10
  unreachable

3582:                                             ; No predecessors!
  br label %3583

3583:                                             ; preds = %3582
  br label %3584

3584:                                             ; preds = %3583, %3520
  br label %3585

3585:                                             ; preds = %3584
  br label %3586

3586:                                             ; preds = %3585
  br label %3587

3587:                                             ; preds = %3586
  br label %3588

3588:                                             ; preds = %3587
  %3589 = load i32, ptr @test_count, align 4, !tbaa !5
  %3590 = add nsw i32 %3589, 1
  store i32 %3590, ptr @test_count, align 4, !tbaa !5
  %3591 = load ptr, ptr %65, align 8, !tbaa !9
  %3592 = call i32 @s2n_tls13_client_finished_recv(ptr noundef %3591)
  %3593 = icmp eq i32 %3592, -1
  br i1 %3593, label %3647, label %3594

3594:                                             ; preds = %3588
  br label %3595

3595:                                             ; preds = %3594
  br label %3596

3596:                                             ; preds = %3595
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #8
  %3597 = call ptr @__errno_location() #9
  %3598 = load i32, ptr %3597, align 4, !tbaa !5
  store i32 %3598, ptr %69, align 4, !tbaa !5
  %3599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3600 = call i32 @s2n_print_stacktrace(ptr noundef %3599)
  %3601 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3602 = trunc i8 %3601 to i1
  br i1 %3602, label %3603, label %3625

3603:                                             ; preds = %3596
  %3604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3605 = call i32 @fileno(ptr noundef %3604) #8
  %3606 = call i32 @isatty(i32 noundef %3605) #8
  %3607 = icmp ne i32 %3606, 0
  br i1 %3607, label %3608, label %3625

3608:                                             ; preds = %3603
  %3609 = load i32, ptr %69, align 4, !tbaa !5
  %3610 = call ptr @__errno_location() #9
  store i32 %3609, ptr %3610, align 4, !tbaa !5
  %3611 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3612 = load i32, ptr @test_count, align 4, !tbaa !5
  %3613 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3614 = load i32, ptr %3613, align 4, !tbaa !5
  %3615 = call ptr @s2n_strerror(i32 noundef %3614, ptr noundef @.str.4)
  %3616 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3617 = load i32, ptr %3616, align 4, !tbaa !5
  %3618 = call ptr @s2n_strerror_debug(i32 noundef %3617, ptr noundef @.str.4)
  %3619 = call ptr @__errno_location() #9
  %3620 = load i32, ptr %3619, align 4, !tbaa !5
  %3621 = call ptr @strerror(i32 noundef %3620) #8
  %3622 = call ptr @__errno_location() #9
  %3623 = load i32, ptr %3622, align 4, !tbaa !5
  %3624 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3611, ptr noundef @.str.2, i32 noundef %3612, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 138, ptr noundef %3615, ptr noundef %3618, ptr noundef %3621, i32 noundef %3623) #8
  br label %3642

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

3642:                                             ; preds = %3625, %3608
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #8
  br label %3643

3643:                                             ; preds = %3642
  br label %3644

3644:                                             ; preds = %3643
  call void @exit(i32 noundef 1) #10
  unreachable

3645:                                             ; No predecessors!
  br label %3646

3646:                                             ; preds = %3645
  br label %3647

3647:                                             ; preds = %3646, %3588
  br label %3648

3648:                                             ; preds = %3647
  br label %3649

3649:                                             ; preds = %3648
  br label %3650

3650:                                             ; preds = %3649
  %3651 = load i32, ptr @test_count, align 4, !tbaa !5
  %3652 = add nsw i32 %3651, 1
  store i32 %3652, ptr @test_count, align 4, !tbaa !5
  %3653 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3654 = load i32, ptr %3653, align 4, !tbaa !5
  %3655 = icmp eq i32 %3654, 0
  br i1 %3655, label %3656, label %3709

3656:                                             ; preds = %3650
  br label %3657

3657:                                             ; preds = %3656
  br label %3658

3658:                                             ; preds = %3657
  call void @llvm.lifetime.start.p0(i64 4, ptr %70) #8
  %3659 = call ptr @__errno_location() #9
  %3660 = load i32, ptr %3659, align 4, !tbaa !5
  store i32 %3660, ptr %70, align 4, !tbaa !5
  %3661 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3662 = call i32 @s2n_print_stacktrace(ptr noundef %3661)
  %3663 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3664 = trunc i8 %3663 to i1
  br i1 %3664, label %3665, label %3687

3665:                                             ; preds = %3658
  %3666 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3667 = call i32 @fileno(ptr noundef %3666) #8
  %3668 = call i32 @isatty(i32 noundef %3667) #8
  %3669 = icmp ne i32 %3668, 0
  br i1 %3669, label %3670, label %3687

3670:                                             ; preds = %3665
  %3671 = load i32, ptr %70, align 4, !tbaa !5
  %3672 = call ptr @__errno_location() #9
  store i32 %3671, ptr %3672, align 4, !tbaa !5
  %3673 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3674 = load i32, ptr @test_count, align 4, !tbaa !5
  %3675 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3676 = load i32, ptr %3675, align 4, !tbaa !5
  %3677 = call ptr @s2n_strerror(i32 noundef %3676, ptr noundef @.str.4)
  %3678 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3679 = load i32, ptr %3678, align 4, !tbaa !5
  %3680 = call ptr @s2n_strerror_debug(i32 noundef %3679, ptr noundef @.str.4)
  %3681 = call ptr @__errno_location() #9
  %3682 = load i32, ptr %3681, align 4, !tbaa !5
  %3683 = call ptr @strerror(i32 noundef %3682) #8
  %3684 = call ptr @__errno_location() #9
  %3685 = load i32, ptr %3684, align 4, !tbaa !5
  %3686 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3673, ptr noundef @.str.2, i32 noundef %3674, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 138, ptr noundef %3677, ptr noundef %3680, ptr noundef %3683, i32 noundef %3685) #8
  br label %3704

3687:                                             ; preds = %3665, %3658
  %3688 = load i32, ptr %70, align 4, !tbaa !5
  %3689 = call ptr @__errno_location() #9
  store i32 %3688, ptr %3689, align 4, !tbaa !5
  %3690 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3691 = load i32, ptr @test_count, align 4, !tbaa !5
  %3692 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3693 = load i32, ptr %3692, align 4, !tbaa !5
  %3694 = call ptr @s2n_strerror(i32 noundef %3693, ptr noundef @.str.4)
  %3695 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3696 = load i32, ptr %3695, align 4, !tbaa !5
  %3697 = call ptr @s2n_strerror_debug(i32 noundef %3696, ptr noundef @.str.4)
  %3698 = call ptr @__errno_location() #9
  %3699 = load i32, ptr %3698, align 4, !tbaa !5
  %3700 = call ptr @strerror(i32 noundef %3699) #8
  %3701 = call ptr @__errno_location() #9
  %3702 = load i32, ptr %3701, align 4, !tbaa !5
  %3703 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3690, ptr noundef @.str.5, i32 noundef %3691, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 138, ptr noundef %3694, ptr noundef %3697, ptr noundef %3700, i32 noundef %3702) #8
  br label %3704

3704:                                             ; preds = %3687, %3670
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #8
  br label %3705

3705:                                             ; preds = %3704
  br label %3706

3706:                                             ; preds = %3705
  call void @exit(i32 noundef 1) #10
  unreachable

3707:                                             ; No predecessors!
  br label %3708

3708:                                             ; preds = %3707
  br label %3709

3709:                                             ; preds = %3708, %3650
  br label %3710

3710:                                             ; preds = %3709
  br label %3711

3711:                                             ; preds = %3710
  br label %3712

3712:                                             ; preds = %3711
  %3713 = load i32, ptr @test_count, align 4, !tbaa !5
  %3714 = add nsw i32 %3713, 1
  store i32 %3714, ptr @test_count, align 4, !tbaa !5
  %3715 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3716 = load i32, ptr %3715, align 4, !tbaa !5
  %3717 = call ptr @s2n_strerror_debug(i32 noundef %3716, ptr noundef @.str.4)
  %3718 = icmp eq ptr %3717, null
  br i1 %3718, label %3719, label %3772

3719:                                             ; preds = %3712
  br label %3720

3720:                                             ; preds = %3719
  br label %3721

3721:                                             ; preds = %3720
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #8
  %3722 = call ptr @__errno_location() #9
  %3723 = load i32, ptr %3722, align 4, !tbaa !5
  store i32 %3723, ptr %71, align 4, !tbaa !5
  %3724 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3725 = call i32 @s2n_print_stacktrace(ptr noundef %3724)
  %3726 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3727 = trunc i8 %3726 to i1
  br i1 %3727, label %3728, label %3750

3728:                                             ; preds = %3721
  %3729 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3730 = call i32 @fileno(ptr noundef %3729) #8
  %3731 = call i32 @isatty(i32 noundef %3730) #8
  %3732 = icmp ne i32 %3731, 0
  br i1 %3732, label %3733, label %3750

3733:                                             ; preds = %3728
  %3734 = load i32, ptr %71, align 4, !tbaa !5
  %3735 = call ptr @__errno_location() #9
  store i32 %3734, ptr %3735, align 4, !tbaa !5
  %3736 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3737 = load i32, ptr @test_count, align 4, !tbaa !5
  %3738 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3739 = load i32, ptr %3738, align 4, !tbaa !5
  %3740 = call ptr @s2n_strerror(i32 noundef %3739, ptr noundef @.str.4)
  %3741 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3742 = load i32, ptr %3741, align 4, !tbaa !5
  %3743 = call ptr @s2n_strerror_debug(i32 noundef %3742, ptr noundef @.str.4)
  %3744 = call ptr @__errno_location() #9
  %3745 = load i32, ptr %3744, align 4, !tbaa !5
  %3746 = call ptr @strerror(i32 noundef %3745) #8
  %3747 = call ptr @__errno_location() #9
  %3748 = load i32, ptr %3747, align 4, !tbaa !5
  %3749 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3736, ptr noundef @.str.2, i32 noundef %3737, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 138, ptr noundef %3740, ptr noundef %3743, ptr noundef %3746, i32 noundef %3748) #8
  br label %3767

3750:                                             ; preds = %3728, %3721
  %3751 = load i32, ptr %71, align 4, !tbaa !5
  %3752 = call ptr @__errno_location() #9
  store i32 %3751, ptr %3752, align 4, !tbaa !5
  %3753 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3754 = load i32, ptr @test_count, align 4, !tbaa !5
  %3755 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3756 = load i32, ptr %3755, align 4, !tbaa !5
  %3757 = call ptr @s2n_strerror(i32 noundef %3756, ptr noundef @.str.4)
  %3758 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3759 = load i32, ptr %3758, align 4, !tbaa !5
  %3760 = call ptr @s2n_strerror_debug(i32 noundef %3759, ptr noundef @.str.4)
  %3761 = call ptr @__errno_location() #9
  %3762 = load i32, ptr %3761, align 4, !tbaa !5
  %3763 = call ptr @strerror(i32 noundef %3762) #8
  %3764 = call ptr @__errno_location() #9
  %3765 = load i32, ptr %3764, align 4, !tbaa !5
  %3766 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3753, ptr noundef @.str.5, i32 noundef %3754, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 138, ptr noundef %3757, ptr noundef %3760, ptr noundef %3763, i32 noundef %3765) #8
  br label %3767

3767:                                             ; preds = %3750, %3733
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #8
  br label %3768

3768:                                             ; preds = %3767
  br label %3769

3769:                                             ; preds = %3768
  call void @exit(i32 noundef 1) #10
  unreachable

3770:                                             ; No predecessors!
  br label %3771

3771:                                             ; preds = %3770
  br label %3772

3772:                                             ; preds = %3771, %3712
  br label %3773

3773:                                             ; preds = %3772
  br label %3774

3774:                                             ; preds = %3773
  br label %3775

3775:                                             ; preds = %3774
  %3776 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %3776, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %3777 = call ptr @__errno_location() #9
  store i32 0, ptr %3777, align 4, !tbaa !5
  br label %3778

3778:                                             ; preds = %3775
  br label %3779

3779:                                             ; preds = %3778
  br label %3780

3780:                                             ; preds = %3779
  br label %3781

3781:                                             ; preds = %3780
  br label %3782

3782:                                             ; preds = %3781
  %3783 = load i32, ptr @test_count, align 4, !tbaa !5
  %3784 = add nsw i32 %3783, 1
  store i32 %3784, ptr @test_count, align 4, !tbaa !5
  %3785 = load ptr, ptr %65, align 8, !tbaa !9
  %3786 = call i32 @s2n_connection_free(ptr noundef %3785)
  %3787 = icmp eq i32 %3786, -1
  br i1 %3787, label %3788, label %3841

3788:                                             ; preds = %3782
  br label %3789

3789:                                             ; preds = %3788
  br label %3790

3790:                                             ; preds = %3789
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #8
  %3791 = call ptr @__errno_location() #9
  %3792 = load i32, ptr %3791, align 4, !tbaa !5
  store i32 %3792, ptr %72, align 4, !tbaa !5
  %3793 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3794 = call i32 @s2n_print_stacktrace(ptr noundef %3793)
  %3795 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3796 = trunc i8 %3795 to i1
  br i1 %3796, label %3797, label %3819

3797:                                             ; preds = %3790
  %3798 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3799 = call i32 @fileno(ptr noundef %3798) #8
  %3800 = call i32 @isatty(i32 noundef %3799) #8
  %3801 = icmp ne i32 %3800, 0
  br i1 %3801, label %3802, label %3819

3802:                                             ; preds = %3797
  %3803 = load i32, ptr %72, align 4, !tbaa !5
  %3804 = call ptr @__errno_location() #9
  store i32 %3803, ptr %3804, align 4, !tbaa !5
  %3805 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3806 = load i32, ptr @test_count, align 4, !tbaa !5
  %3807 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3808 = load i32, ptr %3807, align 4, !tbaa !5
  %3809 = call ptr @s2n_strerror(i32 noundef %3808, ptr noundef @.str.4)
  %3810 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3811 = load i32, ptr %3810, align 4, !tbaa !5
  %3812 = call ptr @s2n_strerror_debug(i32 noundef %3811, ptr noundef @.str.4)
  %3813 = call ptr @__errno_location() #9
  %3814 = load i32, ptr %3813, align 4, !tbaa !5
  %3815 = call ptr @strerror(i32 noundef %3814) #8
  %3816 = call ptr @__errno_location() #9
  %3817 = load i32, ptr %3816, align 4, !tbaa !5
  %3818 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3805, ptr noundef @.str.2, i32 noundef %3806, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 140, ptr noundef %3809, ptr noundef %3812, ptr noundef %3815, i32 noundef %3817) #8
  br label %3836

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

3836:                                             ; preds = %3819, %3802
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #8
  br label %3837

3837:                                             ; preds = %3836
  br label %3838

3838:                                             ; preds = %3837
  call void @exit(i32 noundef 1) #10
  unreachable

3839:                                             ; No predecessors!
  br label %3840

3840:                                             ; preds = %3839
  br label %3841

3841:                                             ; preds = %3840, %3782
  br label %3842

3842:                                             ; preds = %3841
  br label %3843

3843:                                             ; preds = %3842
  br label %3844

3844:                                             ; preds = %3843
  %3845 = load i32, ptr @test_count, align 4, !tbaa !5
  %3846 = add nsw i32 %3845, 1
  store i32 %3846, ptr @test_count, align 4, !tbaa !5
  %3847 = load ptr, ptr %61, align 8, !tbaa !9
  %3848 = call i32 @s2n_connection_free(ptr noundef %3847)
  %3849 = icmp eq i32 %3848, -1
  br i1 %3849, label %3850, label %3903

3850:                                             ; preds = %3844
  br label %3851

3851:                                             ; preds = %3850
  br label %3852

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

3859:                                             ; preds = %3852
  %3860 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3861 = call i32 @fileno(ptr noundef %3860) #8
  %3862 = call i32 @isatty(i32 noundef %3861) #8
  %3863 = icmp ne i32 %3862, 0
  br i1 %3863, label %3864, label %3881

3864:                                             ; preds = %3859
  %3865 = load i32, ptr %73, align 4, !tbaa !5
  %3866 = call ptr @__errno_location() #9
  store i32 %3865, ptr %3866, align 4, !tbaa !5
  %3867 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3868 = load i32, ptr @test_count, align 4, !tbaa !5
  %3869 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3870 = load i32, ptr %3869, align 4, !tbaa !5
  %3871 = call ptr @s2n_strerror(i32 noundef %3870, ptr noundef @.str.4)
  %3872 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3873 = load i32, ptr %3872, align 4, !tbaa !5
  %3874 = call ptr @s2n_strerror_debug(i32 noundef %3873, ptr noundef @.str.4)
  %3875 = call ptr @__errno_location() #9
  %3876 = load i32, ptr %3875, align 4, !tbaa !5
  %3877 = call ptr @strerror(i32 noundef %3876) #8
  %3878 = call ptr @__errno_location() #9
  %3879 = load i32, ptr %3878, align 4, !tbaa !5
  %3880 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3867, ptr noundef @.str.2, i32 noundef %3868, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 141, ptr noundef %3871, ptr noundef %3874, ptr noundef %3877, i32 noundef %3879) #8
  br label %3898

3881:                                             ; preds = %3859, %3852
  %3882 = load i32, ptr %73, align 4, !tbaa !5
  %3883 = call ptr @__errno_location() #9
  store i32 %3882, ptr %3883, align 4, !tbaa !5
  %3884 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3885 = load i32, ptr @test_count, align 4, !tbaa !5
  %3886 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3887 = load i32, ptr %3886, align 4, !tbaa !5
  %3888 = call ptr @s2n_strerror(i32 noundef %3887, ptr noundef @.str.4)
  %3889 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3890 = load i32, ptr %3889, align 4, !tbaa !5
  %3891 = call ptr @s2n_strerror_debug(i32 noundef %3890, ptr noundef @.str.4)
  %3892 = call ptr @__errno_location() #9
  %3893 = load i32, ptr %3892, align 4, !tbaa !5
  %3894 = call ptr @strerror(i32 noundef %3893) #8
  %3895 = call ptr @__errno_location() #9
  %3896 = load i32, ptr %3895, align 4, !tbaa !5
  %3897 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3884, ptr noundef @.str.5, i32 noundef %3885, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 141, ptr noundef %3888, ptr noundef %3891, ptr noundef %3894, i32 noundef %3896) #8
  br label %3898

3898:                                             ; preds = %3881, %3864
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #8
  br label %3899

3899:                                             ; preds = %3898
  br label %3900

3900:                                             ; preds = %3899
  call void @exit(i32 noundef 1) #10
  unreachable

3901:                                             ; No predecessors!
  br label %3902

3902:                                             ; preds = %3901
  br label %3903

3903:                                             ; preds = %3902, %3844
  br label %3904

3904:                                             ; preds = %3903
  br label %3905

3905:                                             ; preds = %3904
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %74) #8
  store ptr null, ptr %74, align 8, !tbaa !9
  br label %3906

3906:                                             ; preds = %3905
  %3907 = load i32, ptr @test_count, align 4, !tbaa !5
  %3908 = add nsw i32 %3907, 1
  store i32 %3908, ptr @test_count, align 4, !tbaa !5
  %3909 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %3909, ptr %74, align 8, !tbaa !9
  %3910 = icmp eq ptr %3909, null
  br i1 %3910, label %3911, label %3964

3911:                                             ; preds = %3906
  br label %3912

3912:                                             ; preds = %3911
  br label %3913

3913:                                             ; preds = %3912
  call void @llvm.lifetime.start.p0(i64 4, ptr %75) #8
  %3914 = call ptr @__errno_location() #9
  %3915 = load i32, ptr %3914, align 4, !tbaa !5
  store i32 %3915, ptr %75, align 4, !tbaa !5
  %3916 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3917 = call i32 @s2n_print_stacktrace(ptr noundef %3916)
  %3918 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3919 = trunc i8 %3918 to i1
  br i1 %3919, label %3920, label %3942

3920:                                             ; preds = %3913
  %3921 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3922 = call i32 @fileno(ptr noundef %3921) #8
  %3923 = call i32 @isatty(i32 noundef %3922) #8
  %3924 = icmp ne i32 %3923, 0
  br i1 %3924, label %3925, label %3942

3925:                                             ; preds = %3920
  %3926 = load i32, ptr %75, align 4, !tbaa !5
  %3927 = call ptr @__errno_location() #9
  store i32 %3926, ptr %3927, align 4, !tbaa !5
  %3928 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3929 = load i32, ptr @test_count, align 4, !tbaa !5
  %3930 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3931 = load i32, ptr %3930, align 4, !tbaa !5
  %3932 = call ptr @s2n_strerror(i32 noundef %3931, ptr noundef @.str.4)
  %3933 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3934 = load i32, ptr %3933, align 4, !tbaa !5
  %3935 = call ptr @s2n_strerror_debug(i32 noundef %3934, ptr noundef @.str.4)
  %3936 = call ptr @__errno_location() #9
  %3937 = load i32, ptr %3936, align 4, !tbaa !5
  %3938 = call ptr @strerror(i32 noundef %3937) #8
  %3939 = call ptr @__errno_location() #9
  %3940 = load i32, ptr %3939, align 4, !tbaa !5
  %3941 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3928, ptr noundef @.str.2, i32 noundef %3929, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 147, ptr noundef %3932, ptr noundef %3935, ptr noundef %3938, i32 noundef %3940) #8
  br label %3959

3942:                                             ; preds = %3920, %3913
  %3943 = load i32, ptr %75, align 4, !tbaa !5
  %3944 = call ptr @__errno_location() #9
  store i32 %3943, ptr %3944, align 4, !tbaa !5
  %3945 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3946 = load i32, ptr @test_count, align 4, !tbaa !5
  %3947 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3948 = load i32, ptr %3947, align 4, !tbaa !5
  %3949 = call ptr @s2n_strerror(i32 noundef %3948, ptr noundef @.str.4)
  %3950 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3951 = load i32, ptr %3950, align 4, !tbaa !5
  %3952 = call ptr @s2n_strerror_debug(i32 noundef %3951, ptr noundef @.str.4)
  %3953 = call ptr @__errno_location() #9
  %3954 = load i32, ptr %3953, align 4, !tbaa !5
  %3955 = call ptr @strerror(i32 noundef %3954) #8
  %3956 = call ptr @__errno_location() #9
  %3957 = load i32, ptr %3956, align 4, !tbaa !5
  %3958 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3945, ptr noundef @.str.5, i32 noundef %3946, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 147, ptr noundef %3949, ptr noundef %3952, ptr noundef %3955, i32 noundef %3957) #8
  br label %3959

3959:                                             ; preds = %3942, %3925
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #8
  br label %3960

3960:                                             ; preds = %3959
  br label %3961

3961:                                             ; preds = %3960
  call void @exit(i32 noundef 1) #10
  unreachable

3962:                                             ; No predecessors!
  br label %3963

3963:                                             ; preds = %3962
  br label %3964

3964:                                             ; preds = %3963, %3906
  br label %3965

3965:                                             ; preds = %3964
  br label %3966

3966:                                             ; preds = %3965
  %3967 = load ptr, ptr %74, align 8, !tbaa !9
  %3968 = getelementptr inbounds %struct.s2n_connection, ptr %3967, i32 0, i32 23
  store i8 34, ptr %3968, align 4, !tbaa !17
  %3969 = load ptr, ptr %74, align 8, !tbaa !9
  %3970 = getelementptr inbounds %struct.s2n_connection, ptr %3969, i32 0, i32 27
  %3971 = load ptr, ptr %3970, align 8, !tbaa !44
  %3972 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %3971, i32 0, i32 0
  store ptr @s2n_tls13_aes_256_gcm_sha384, ptr %3972, align 8, !tbaa !45
  br label %3973

3973:                                             ; preds = %3966
  %3974 = load i32, ptr @test_count, align 4, !tbaa !5
  %3975 = add nsw i32 %3974, 1
  store i32 %3975, ptr @test_count, align 4, !tbaa !5
  %3976 = load ptr, ptr %74, align 8, !tbaa !9
  %3977 = call i32 @s2n_tls13_client_finished_send(ptr noundef %3976)
  %3978 = icmp eq i32 %3977, -1
  br i1 %3978, label %3979, label %4032

3979:                                             ; preds = %3973
  br label %3980

3980:                                             ; preds = %3979
  br label %3981

3981:                                             ; preds = %3980
  call void @llvm.lifetime.start.p0(i64 4, ptr %76) #8
  %3982 = call ptr @__errno_location() #9
  %3983 = load i32, ptr %3982, align 4, !tbaa !5
  store i32 %3983, ptr %76, align 4, !tbaa !5
  %3984 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3985 = call i32 @s2n_print_stacktrace(ptr noundef %3984)
  %3986 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3987 = trunc i8 %3986 to i1
  br i1 %3987, label %3988, label %4010

3988:                                             ; preds = %3981
  %3989 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3990 = call i32 @fileno(ptr noundef %3989) #8
  %3991 = call i32 @isatty(i32 noundef %3990) #8
  %3992 = icmp ne i32 %3991, 0
  br i1 %3992, label %3993, label %4010

3993:                                             ; preds = %3988
  %3994 = load i32, ptr %76, align 4, !tbaa !5
  %3995 = call ptr @__errno_location() #9
  store i32 %3994, ptr %3995, align 4, !tbaa !5
  %3996 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3997 = load i32, ptr @test_count, align 4, !tbaa !5
  %3998 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3999 = load i32, ptr %3998, align 4, !tbaa !5
  %4000 = call ptr @s2n_strerror(i32 noundef %3999, ptr noundef @.str.4)
  %4001 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4002 = load i32, ptr %4001, align 4, !tbaa !5
  %4003 = call ptr @s2n_strerror_debug(i32 noundef %4002, ptr noundef @.str.4)
  %4004 = call ptr @__errno_location() #9
  %4005 = load i32, ptr %4004, align 4, !tbaa !5
  %4006 = call ptr @strerror(i32 noundef %4005) #8
  %4007 = call ptr @__errno_location() #9
  %4008 = load i32, ptr %4007, align 4, !tbaa !5
  %4009 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3996, ptr noundef @.str.2, i32 noundef %3997, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 152, ptr noundef %4000, ptr noundef %4003, ptr noundef %4006, i32 noundef %4008) #8
  br label %4027

4010:                                             ; preds = %3988, %3981
  %4011 = load i32, ptr %76, align 4, !tbaa !5
  %4012 = call ptr @__errno_location() #9
  store i32 %4011, ptr %4012, align 4, !tbaa !5
  %4013 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4014 = load i32, ptr @test_count, align 4, !tbaa !5
  %4015 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4016 = load i32, ptr %4015, align 4, !tbaa !5
  %4017 = call ptr @s2n_strerror(i32 noundef %4016, ptr noundef @.str.4)
  %4018 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4019 = load i32, ptr %4018, align 4, !tbaa !5
  %4020 = call ptr @s2n_strerror_debug(i32 noundef %4019, ptr noundef @.str.4)
  %4021 = call ptr @__errno_location() #9
  %4022 = load i32, ptr %4021, align 4, !tbaa !5
  %4023 = call ptr @strerror(i32 noundef %4022) #8
  %4024 = call ptr @__errno_location() #9
  %4025 = load i32, ptr %4024, align 4, !tbaa !5
  %4026 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4013, ptr noundef @.str.5, i32 noundef %4014, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 152, ptr noundef %4017, ptr noundef %4020, ptr noundef %4023, i32 noundef %4025) #8
  br label %4027

4027:                                             ; preds = %4010, %3993
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #8
  br label %4028

4028:                                             ; preds = %4027
  br label %4029

4029:                                             ; preds = %4028
  call void @exit(i32 noundef 1) #10
  unreachable

4030:                                             ; No predecessors!
  br label %4031

4031:                                             ; preds = %4030
  br label %4032

4032:                                             ; preds = %4031, %3973
  br label %4033

4033:                                             ; preds = %4032
  br label %4034

4034:                                             ; preds = %4033
  br label %4035

4035:                                             ; preds = %4034
  %4036 = load i32, ptr @test_count, align 4, !tbaa !5
  %4037 = add nsw i32 %4036, 1
  store i32 %4037, ptr @test_count, align 4, !tbaa !5
  %4038 = load ptr, ptr %74, align 8, !tbaa !9
  %4039 = getelementptr inbounds %struct.s2n_connection, ptr %4038, i32 0, i32 52
  %4040 = getelementptr inbounds %struct.s2n_handshake, ptr %4039, i32 0, i32 0
  %4041 = getelementptr inbounds %struct.s2n_stuffer, ptr %4040, i32 0, i32 2
  %4042 = load i32, ptr %4041, align 4, !tbaa !50
  %4043 = load ptr, ptr %74, align 8, !tbaa !9
  %4044 = getelementptr inbounds %struct.s2n_connection, ptr %4043, i32 0, i32 52
  %4045 = getelementptr inbounds %struct.s2n_handshake, ptr %4044, i32 0, i32 0
  %4046 = getelementptr inbounds %struct.s2n_stuffer, ptr %4045, i32 0, i32 1
  %4047 = load i32, ptr %4046, align 8, !tbaa !51
  %4048 = sub i32 %4042, %4047
  %4049 = icmp eq i32 %4048, 48
  br i1 %4049, label %4103, label %4050

4050:                                             ; preds = %4035
  br label %4051

4051:                                             ; preds = %4050
  br label %4052

4052:                                             ; preds = %4051
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #8
  %4053 = call ptr @__errno_location() #9
  %4054 = load i32, ptr %4053, align 4, !tbaa !5
  store i32 %4054, ptr %77, align 4, !tbaa !5
  %4055 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4056 = call i32 @s2n_print_stacktrace(ptr noundef %4055)
  %4057 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4058 = trunc i8 %4057 to i1
  br i1 %4058, label %4059, label %4081

4059:                                             ; preds = %4052
  %4060 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4061 = call i32 @fileno(ptr noundef %4060) #8
  %4062 = call i32 @isatty(i32 noundef %4061) #8
  %4063 = icmp ne i32 %4062, 0
  br i1 %4063, label %4064, label %4081

4064:                                             ; preds = %4059
  %4065 = load i32, ptr %77, align 4, !tbaa !5
  %4066 = call ptr @__errno_location() #9
  store i32 %4065, ptr %4066, align 4, !tbaa !5
  %4067 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4068 = load i32, ptr @test_count, align 4, !tbaa !5
  %4069 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4070 = load i32, ptr %4069, align 4, !tbaa !5
  %4071 = call ptr @s2n_strerror(i32 noundef %4070, ptr noundef @.str.4)
  %4072 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4073 = load i32, ptr %4072, align 4, !tbaa !5
  %4074 = call ptr @s2n_strerror_debug(i32 noundef %4073, ptr noundef @.str.4)
  %4075 = call ptr @__errno_location() #9
  %4076 = load i32, ptr %4075, align 4, !tbaa !5
  %4077 = call ptr @strerror(i32 noundef %4076) #8
  %4078 = call ptr @__errno_location() #9
  %4079 = load i32, ptr %4078, align 4, !tbaa !5
  %4080 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4067, ptr noundef @.str.2, i32 noundef %4068, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 153, ptr noundef %4071, ptr noundef %4074, ptr noundef %4077, i32 noundef %4079) #8
  br label %4098

4081:                                             ; preds = %4059, %4052
  %4082 = load i32, ptr %77, align 4, !tbaa !5
  %4083 = call ptr @__errno_location() #9
  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.4)
  %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.4)
  %4092 = call ptr @__errno_location() #9
  %4093 = load i32, ptr %4092, align 4, !tbaa !5
  %4094 = call ptr @strerror(i32 noundef %4093) #8
  %4095 = call ptr @__errno_location() #9
  %4096 = load i32, ptr %4095, align 4, !tbaa !5
  %4097 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4084, ptr noundef @.str.5, i32 noundef %4085, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 153, ptr noundef %4088, ptr noundef %4091, ptr noundef %4094, i32 noundef %4096) #8
  br label %4098

4098:                                             ; preds = %4081, %4064
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #8
  br label %4099

4099:                                             ; preds = %4098
  br label %4100

4100:                                             ; preds = %4099
  call void @exit(i32 noundef 1) #10
  unreachable

4101:                                             ; No predecessors!
  br label %4102

4102:                                             ; preds = %4101
  br label %4103

4103:                                             ; preds = %4102, %4035
  br label %4104

4104:                                             ; preds = %4103
  br label %4105

4105:                                             ; preds = %4104
  call void @llvm.lifetime.start.p0(i64 8, ptr %78) #8
  store ptr null, ptr %78, align 8, !tbaa !9
  br label %4106

4106:                                             ; preds = %4105
  %4107 = load i32, ptr @test_count, align 4, !tbaa !5
  %4108 = add nsw i32 %4107, 1
  store i32 %4108, ptr @test_count, align 4, !tbaa !5
  %4109 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %4109, ptr %78, align 8, !tbaa !9
  %4110 = icmp eq ptr %4109, null
  br i1 %4110, label %4111, label %4164

4111:                                             ; preds = %4106
  br label %4112

4112:                                             ; preds = %4111
  br label %4113

4113:                                             ; preds = %4112
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #8
  %4114 = call ptr @__errno_location() #9
  %4115 = load i32, ptr %4114, align 4, !tbaa !5
  store i32 %4115, ptr %79, align 4, !tbaa !5
  %4116 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4117 = call i32 @s2n_print_stacktrace(ptr noundef %4116)
  %4118 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4119 = trunc i8 %4118 to i1
  br i1 %4119, label %4120, label %4142

4120:                                             ; preds = %4113
  %4121 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4122 = call i32 @fileno(ptr noundef %4121) #8
  %4123 = call i32 @isatty(i32 noundef %4122) #8
  %4124 = icmp ne i32 %4123, 0
  br i1 %4124, label %4125, label %4142

4125:                                             ; preds = %4120
  %4126 = load i32, ptr %79, align 4, !tbaa !5
  %4127 = call ptr @__errno_location() #9
  store i32 %4126, ptr %4127, align 4, !tbaa !5
  %4128 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4129 = load i32, ptr @test_count, align 4, !tbaa !5
  %4130 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4131 = load i32, ptr %4130, align 4, !tbaa !5
  %4132 = call ptr @s2n_strerror(i32 noundef %4131, ptr noundef @.str.4)
  %4133 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4134 = load i32, ptr %4133, align 4, !tbaa !5
  %4135 = call ptr @s2n_strerror_debug(i32 noundef %4134, ptr noundef @.str.4)
  %4136 = call ptr @__errno_location() #9
  %4137 = load i32, ptr %4136, align 4, !tbaa !5
  %4138 = call ptr @strerror(i32 noundef %4137) #8
  %4139 = call ptr @__errno_location() #9
  %4140 = load i32, ptr %4139, align 4, !tbaa !5
  %4141 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4128, ptr noundef @.str.2, i32 noundef %4129, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 156, ptr noundef %4132, ptr noundef %4135, ptr noundef %4138, i32 noundef %4140) #8
  br label %4159

4142:                                             ; preds = %4120, %4113
  %4143 = load i32, ptr %79, align 4, !tbaa !5
  %4144 = call ptr @__errno_location() #9
  store i32 %4143, ptr %4144, align 4, !tbaa !5
  %4145 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4146 = load i32, ptr @test_count, align 4, !tbaa !5
  %4147 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4148 = load i32, ptr %4147, align 4, !tbaa !5
  %4149 = call ptr @s2n_strerror(i32 noundef %4148, ptr noundef @.str.4)
  %4150 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4151 = load i32, ptr %4150, align 4, !tbaa !5
  %4152 = call ptr @s2n_strerror_debug(i32 noundef %4151, ptr noundef @.str.4)
  %4153 = call ptr @__errno_location() #9
  %4154 = load i32, ptr %4153, align 4, !tbaa !5
  %4155 = call ptr @strerror(i32 noundef %4154) #8
  %4156 = call ptr @__errno_location() #9
  %4157 = load i32, ptr %4156, align 4, !tbaa !5
  %4158 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4145, ptr noundef @.str.5, i32 noundef %4146, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 156, ptr noundef %4149, ptr noundef %4152, ptr noundef %4155, i32 noundef %4157) #8
  br label %4159

4159:                                             ; preds = %4142, %4125
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #8
  br label %4160

4160:                                             ; preds = %4159
  br label %4161

4161:                                             ; preds = %4160
  call void @exit(i32 noundef 1) #10
  unreachable

4162:                                             ; No predecessors!
  br label %4163

4163:                                             ; preds = %4162
  br label %4164

4164:                                             ; preds = %4163, %4106
  br label %4165

4165:                                             ; preds = %4164
  br label %4166

4166:                                             ; preds = %4165
  %4167 = load ptr, ptr %78, align 8, !tbaa !9
  %4168 = getelementptr inbounds %struct.s2n_connection, ptr %4167, i32 0, i32 23
  store i8 34, ptr %4168, align 4, !tbaa !17
  %4169 = load ptr, ptr %78, align 8, !tbaa !9
  %4170 = getelementptr inbounds %struct.s2n_connection, ptr %4169, i32 0, i32 27
  %4171 = load ptr, ptr %4170, align 8, !tbaa !44
  %4172 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %4171, i32 0, i32 0
  store ptr @s2n_tls13_aes_256_gcm_sha384, ptr %4172, align 8, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #8
  store i32 0, ptr %80, align 4, !tbaa !5
  br label %4173

4173:                                             ; preds = %4527, %4166
  %4174 = load i32, ptr %80, align 4, !tbaa !5
  %4175 = icmp slt i32 %4174, 48
  br i1 %4175, label %4177, label %4176

4176:                                             ; preds = %4173
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #8
  br label %4530

4177:                                             ; preds = %4173
  br label %4178

4178:                                             ; preds = %4177
  %4179 = load i32, ptr @test_count, align 4, !tbaa !5
  %4180 = add nsw i32 %4179, 1
  store i32 %4180, ptr @test_count, align 4, !tbaa !5
  %4181 = load ptr, ptr %74, align 8, !tbaa !9
  %4182 = getelementptr inbounds %struct.s2n_connection, ptr %4181, i32 0, i32 52
  %4183 = getelementptr inbounds %struct.s2n_handshake, ptr %4182, i32 0, i32 0
  %4184 = load ptr, ptr %78, align 8, !tbaa !9
  %4185 = getelementptr inbounds %struct.s2n_connection, ptr %4184, i32 0, i32 52
  %4186 = getelementptr inbounds %struct.s2n_handshake, ptr %4185, i32 0, i32 0
  %4187 = call i32 @reset_stuffers(ptr noundef %4183, ptr noundef %4186)
  %4188 = icmp eq i32 %4187, -1
  br i1 %4188, label %4189, label %4242

4189:                                             ; preds = %4178
  br label %4190

4190:                                             ; preds = %4189
  br label %4191

4191:                                             ; preds = %4190
  call void @llvm.lifetime.start.p0(i64 4, ptr %81) #8
  %4192 = call ptr @__errno_location() #9
  %4193 = load i32, ptr %4192, align 4, !tbaa !5
  store i32 %4193, ptr %81, align 4, !tbaa !5
  %4194 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4195 = call i32 @s2n_print_stacktrace(ptr noundef %4194)
  %4196 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4197 = trunc i8 %4196 to i1
  br i1 %4197, label %4198, label %4220

4198:                                             ; preds = %4191
  %4199 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4200 = call i32 @fileno(ptr noundef %4199) #8
  %4201 = call i32 @isatty(i32 noundef %4200) #8
  %4202 = icmp ne i32 %4201, 0
  br i1 %4202, label %4203, label %4220

4203:                                             ; preds = %4198
  %4204 = load i32, ptr %81, align 4, !tbaa !5
  %4205 = call ptr @__errno_location() #9
  store i32 %4204, ptr %4205, align 4, !tbaa !5
  %4206 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4207 = load i32, ptr @test_count, align 4, !tbaa !5
  %4208 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4209 = load i32, ptr %4208, align 4, !tbaa !5
  %4210 = call ptr @s2n_strerror(i32 noundef %4209, ptr noundef @.str.4)
  %4211 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4212 = load i32, ptr %4211, align 4, !tbaa !5
  %4213 = call ptr @s2n_strerror_debug(i32 noundef %4212, ptr noundef @.str.4)
  %4214 = call ptr @__errno_location() #9
  %4215 = load i32, ptr %4214, align 4, !tbaa !5
  %4216 = call ptr @strerror(i32 noundef %4215) #8
  %4217 = call ptr @__errno_location() #9
  %4218 = load i32, ptr %4217, align 4, !tbaa !5
  %4219 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4206, ptr noundef @.str.2, i32 noundef %4207, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 161, ptr noundef %4210, ptr noundef %4213, ptr noundef %4216, i32 noundef %4218) #8
  br label %4237

4220:                                             ; preds = %4198, %4191
  %4221 = load i32, ptr %81, align 4, !tbaa !5
  %4222 = call ptr @__errno_location() #9
  store i32 %4221, ptr %4222, align 4, !tbaa !5
  %4223 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4224 = load i32, ptr @test_count, align 4, !tbaa !5
  %4225 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4226 = load i32, ptr %4225, align 4, !tbaa !5
  %4227 = call ptr @s2n_strerror(i32 noundef %4226, ptr noundef @.str.4)
  %4228 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4229 = load i32, ptr %4228, align 4, !tbaa !5
  %4230 = call ptr @s2n_strerror_debug(i32 noundef %4229, ptr noundef @.str.4)
  %4231 = call ptr @__errno_location() #9
  %4232 = load i32, ptr %4231, align 4, !tbaa !5
  %4233 = call ptr @strerror(i32 noundef %4232) #8
  %4234 = call ptr @__errno_location() #9
  %4235 = load i32, ptr %4234, align 4, !tbaa !5
  %4236 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4223, ptr noundef @.str.5, i32 noundef %4224, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 161, ptr noundef %4227, ptr noundef %4230, ptr noundef %4233, i32 noundef %4235) #8
  br label %4237

4237:                                             ; preds = %4220, %4203
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #8
  br label %4238

4238:                                             ; preds = %4237
  br label %4239

4239:                                             ; preds = %4238
  call void @exit(i32 noundef 1) #10
  unreachable

4240:                                             ; No predecessors!
  br label %4241

4241:                                             ; preds = %4240
  br label %4242

4242:                                             ; preds = %4241, %4178
  br label %4243

4243:                                             ; preds = %4242
  br label %4244

4244:                                             ; preds = %4243
  br label %4245

4245:                                             ; preds = %4244
  %4246 = load i32, ptr @test_count, align 4, !tbaa !5
  %4247 = add nsw i32 %4246, 1
  store i32 %4247, ptr @test_count, align 4, !tbaa !5
  %4248 = load ptr, ptr %74, align 8, !tbaa !9
  %4249 = getelementptr inbounds %struct.s2n_connection, ptr %4248, i32 0, i32 52
  %4250 = getelementptr inbounds %struct.s2n_handshake, ptr %4249, i32 0, i32 0
  %4251 = load ptr, ptr %78, align 8, !tbaa !9
  %4252 = getelementptr inbounds %struct.s2n_connection, ptr %4251, i32 0, i32 52
  %4253 = getelementptr inbounds %struct.s2n_handshake, ptr %4252, i32 0, i32 0
  %4254 = call i32 @s2n_stuffer_copy(ptr noundef %4250, ptr noundef %4253, i32 noundef 48)
  %4255 = icmp eq i32 %4254, -1
  br i1 %4255, label %4256, label %4309

4256:                                             ; preds = %4245
  br label %4257

4257:                                             ; preds = %4256
  br label %4258

4258:                                             ; preds = %4257
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #8
  %4259 = call ptr @__errno_location() #9
  %4260 = load i32, ptr %4259, align 4, !tbaa !5
  store i32 %4260, ptr %82, align 4, !tbaa !5
  %4261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4262 = call i32 @s2n_print_stacktrace(ptr noundef %4261)
  %4263 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4264 = trunc i8 %4263 to i1
  br i1 %4264, label %4265, label %4287

4265:                                             ; preds = %4258
  %4266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4267 = call i32 @fileno(ptr noundef %4266) #8
  %4268 = call i32 @isatty(i32 noundef %4267) #8
  %4269 = icmp ne i32 %4268, 0
  br i1 %4269, label %4270, label %4287

4270:                                             ; preds = %4265
  %4271 = load i32, ptr %82, align 4, !tbaa !5
  %4272 = call ptr @__errno_location() #9
  store i32 %4271, ptr %4272, align 4, !tbaa !5
  %4273 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4274 = load i32, ptr @test_count, align 4, !tbaa !5
  %4275 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4276 = load i32, ptr %4275, align 4, !tbaa !5
  %4277 = call ptr @s2n_strerror(i32 noundef %4276, ptr noundef @.str.4)
  %4278 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4279 = load i32, ptr %4278, align 4, !tbaa !5
  %4280 = call ptr @s2n_strerror_debug(i32 noundef %4279, ptr noundef @.str.4)
  %4281 = call ptr @__errno_location() #9
  %4282 = load i32, ptr %4281, align 4, !tbaa !5
  %4283 = call ptr @strerror(i32 noundef %4282) #8
  %4284 = call ptr @__errno_location() #9
  %4285 = load i32, ptr %4284, align 4, !tbaa !5
  %4286 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4273, ptr noundef @.str.2, i32 noundef %4274, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 162, ptr noundef %4277, ptr noundef %4280, ptr noundef %4283, i32 noundef %4285) #8
  br label %4304

4287:                                             ; preds = %4265, %4258
  %4288 = load i32, ptr %82, align 4, !tbaa !5
  %4289 = call ptr @__errno_location() #9
  store i32 %4288, ptr %4289, align 4, !tbaa !5
  %4290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4291 = load i32, ptr @test_count, align 4, !tbaa !5
  %4292 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4293 = load i32, ptr %4292, align 4, !tbaa !5
  %4294 = call ptr @s2n_strerror(i32 noundef %4293, ptr noundef @.str.4)
  %4295 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4296 = load i32, ptr %4295, align 4, !tbaa !5
  %4297 = call ptr @s2n_strerror_debug(i32 noundef %4296, ptr noundef @.str.4)
  %4298 = call ptr @__errno_location() #9
  %4299 = load i32, ptr %4298, align 4, !tbaa !5
  %4300 = call ptr @strerror(i32 noundef %4299) #8
  %4301 = call ptr @__errno_location() #9
  %4302 = load i32, ptr %4301, align 4, !tbaa !5
  %4303 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4290, ptr noundef @.str.5, i32 noundef %4291, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 162, ptr noundef %4294, ptr noundef %4297, ptr noundef %4300, i32 noundef %4302) #8
  br label %4304

4304:                                             ; preds = %4287, %4270
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #8
  br label %4305

4305:                                             ; preds = %4304
  br label %4306

4306:                                             ; preds = %4305
  call void @exit(i32 noundef 1) #10
  unreachable

4307:                                             ; No predecessors!
  br label %4308

4308:                                             ; preds = %4307
  br label %4309

4309:                                             ; preds = %4308, %4245
  br label %4310

4310:                                             ; preds = %4309
  br label %4311

4311:                                             ; preds = %4310
  %4312 = load ptr, ptr %78, align 8, !tbaa !9
  %4313 = getelementptr inbounds %struct.s2n_connection, ptr %4312, i32 0, i32 52
  %4314 = getelementptr inbounds %struct.s2n_handshake, ptr %4313, i32 0, i32 4
  %4315 = load i32, ptr %80, align 4, !tbaa !5
  %4316 = sext i32 %4315 to i64
  %4317 = getelementptr inbounds [48 x i8], ptr %4314, i64 0, i64 %4316
  %4318 = load i8, ptr %4317, align 1, !tbaa !16
  %4319 = zext i8 %4318 to i32
  %4320 = xor i32 %4319, 1
  %4321 = trunc i32 %4320 to i8
  store i8 %4321, ptr %4317, align 1, !tbaa !16
  br label %4322

4322:                                             ; preds = %4311
  br label %4323

4323:                                             ; preds = %4322
  %4324 = load i32, ptr @test_count, align 4, !tbaa !5
  %4325 = add nsw i32 %4324, 1
  store i32 %4325, ptr @test_count, align 4, !tbaa !5
  %4326 = load ptr, ptr %78, align 8, !tbaa !9
  %4327 = call i32 @s2n_tls13_client_finished_recv(ptr noundef %4326)
  %4328 = icmp eq i32 %4327, -1
  br i1 %4328, label %4382, label %4329

4329:                                             ; preds = %4323
  br label %4330

4330:                                             ; preds = %4329
  br label %4331

4331:                                             ; preds = %4330
  call void @llvm.lifetime.start.p0(i64 4, ptr %83) #8
  %4332 = call ptr @__errno_location() #9
  %4333 = load i32, ptr %4332, align 4, !tbaa !5
  store i32 %4333, ptr %83, align 4, !tbaa !5
  %4334 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4335 = call i32 @s2n_print_stacktrace(ptr noundef %4334)
  %4336 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4337 = trunc i8 %4336 to i1
  br i1 %4337, label %4338, label %4360

4338:                                             ; preds = %4331
  %4339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4340 = call i32 @fileno(ptr noundef %4339) #8
  %4341 = call i32 @isatty(i32 noundef %4340) #8
  %4342 = icmp ne i32 %4341, 0
  br i1 %4342, label %4343, label %4360

4343:                                             ; preds = %4338
  %4344 = load i32, ptr %83, align 4, !tbaa !5
  %4345 = call ptr @__errno_location() #9
  store i32 %4344, ptr %4345, align 4, !tbaa !5
  %4346 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4347 = load i32, ptr @test_count, align 4, !tbaa !5
  %4348 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4349 = load i32, ptr %4348, align 4, !tbaa !5
  %4350 = call ptr @s2n_strerror(i32 noundef %4349, ptr noundef @.str.4)
  %4351 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4352 = load i32, ptr %4351, align 4, !tbaa !5
  %4353 = call ptr @s2n_strerror_debug(i32 noundef %4352, ptr noundef @.str.4)
  %4354 = call ptr @__errno_location() #9
  %4355 = load i32, ptr %4354, align 4, !tbaa !5
  %4356 = call ptr @strerror(i32 noundef %4355) #8
  %4357 = call ptr @__errno_location() #9
  %4358 = load i32, ptr %4357, align 4, !tbaa !5
  %4359 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4346, ptr noundef @.str.2, i32 noundef %4347, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 166, ptr noundef %4350, ptr noundef %4353, ptr noundef %4356, i32 noundef %4358) #8
  br label %4377

4360:                                             ; preds = %4338, %4331
  %4361 = load i32, ptr %83, align 4, !tbaa !5
  %4362 = call ptr @__errno_location() #9
  store i32 %4361, ptr %4362, align 4, !tbaa !5
  %4363 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4364 = load i32, ptr @test_count, align 4, !tbaa !5
  %4365 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4366 = load i32, ptr %4365, align 4, !tbaa !5
  %4367 = call ptr @s2n_strerror(i32 noundef %4366, ptr noundef @.str.4)
  %4368 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4369 = load i32, ptr %4368, align 4, !tbaa !5
  %4370 = call ptr @s2n_strerror_debug(i32 noundef %4369, ptr noundef @.str.4)
  %4371 = call ptr @__errno_location() #9
  %4372 = load i32, ptr %4371, align 4, !tbaa !5
  %4373 = call ptr @strerror(i32 noundef %4372) #8
  %4374 = call ptr @__errno_location() #9
  %4375 = load i32, ptr %4374, align 4, !tbaa !5
  %4376 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4363, ptr noundef @.str.5, i32 noundef %4364, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 166, ptr noundef %4367, ptr noundef %4370, ptr noundef %4373, i32 noundef %4375) #8
  br label %4377

4377:                                             ; preds = %4360, %4343
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #8
  br label %4378

4378:                                             ; preds = %4377
  br label %4379

4379:                                             ; preds = %4378
  call void @exit(i32 noundef 1) #10
  unreachable

4380:                                             ; No predecessors!
  br label %4381

4381:                                             ; preds = %4380
  br label %4382

4382:                                             ; preds = %4381, %4323
  br label %4383

4383:                                             ; preds = %4382
  br label %4384

4384:                                             ; preds = %4383
  br label %4385

4385:                                             ; preds = %4384
  %4386 = load i32, ptr @test_count, align 4, !tbaa !5
  %4387 = add nsw i32 %4386, 1
  store i32 %4387, ptr @test_count, align 4, !tbaa !5
  %4388 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4389 = load i32, ptr %4388, align 4, !tbaa !5
  %4390 = icmp eq i32 %4389, 0
  br i1 %4390, label %4391, label %4444

4391:                                             ; preds = %4385
  br label %4392

4392:                                             ; preds = %4391
  br label %4393

4393:                                             ; preds = %4392
  call void @llvm.lifetime.start.p0(i64 4, ptr %84) #8
  %4394 = call ptr @__errno_location() #9
  %4395 = load i32, ptr %4394, align 4, !tbaa !5
  store i32 %4395, ptr %84, align 4, !tbaa !5
  %4396 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4397 = call i32 @s2n_print_stacktrace(ptr noundef %4396)
  %4398 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4399 = trunc i8 %4398 to i1
  br i1 %4399, label %4400, label %4422

4400:                                             ; preds = %4393
  %4401 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4402 = call i32 @fileno(ptr noundef %4401) #8
  %4403 = call i32 @isatty(i32 noundef %4402) #8
  %4404 = icmp ne i32 %4403, 0
  br i1 %4404, label %4405, label %4422

4405:                                             ; preds = %4400
  %4406 = load i32, ptr %84, align 4, !tbaa !5
  %4407 = call ptr @__errno_location() #9
  store i32 %4406, ptr %4407, align 4, !tbaa !5
  %4408 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4409 = load i32, ptr @test_count, align 4, !tbaa !5
  %4410 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4411 = load i32, ptr %4410, align 4, !tbaa !5
  %4412 = call ptr @s2n_strerror(i32 noundef %4411, ptr noundef @.str.4)
  %4413 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4414 = load i32, ptr %4413, align 4, !tbaa !5
  %4415 = call ptr @s2n_strerror_debug(i32 noundef %4414, ptr noundef @.str.4)
  %4416 = call ptr @__errno_location() #9
  %4417 = load i32, ptr %4416, align 4, !tbaa !5
  %4418 = call ptr @strerror(i32 noundef %4417) #8
  %4419 = call ptr @__errno_location() #9
  %4420 = load i32, ptr %4419, align 4, !tbaa !5
  %4421 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4408, ptr noundef @.str.2, i32 noundef %4409, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 166, ptr noundef %4412, ptr noundef %4415, ptr noundef %4418, i32 noundef %4420) #8
  br label %4439

4422:                                             ; preds = %4400, %4393
  %4423 = load i32, ptr %84, align 4, !tbaa !5
  %4424 = call ptr @__errno_location() #9
  store i32 %4423, ptr %4424, align 4, !tbaa !5
  %4425 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4426 = load i32, ptr @test_count, align 4, !tbaa !5
  %4427 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4428 = load i32, ptr %4427, align 4, !tbaa !5
  %4429 = call ptr @s2n_strerror(i32 noundef %4428, ptr noundef @.str.4)
  %4430 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4431 = load i32, ptr %4430, align 4, !tbaa !5
  %4432 = call ptr @s2n_strerror_debug(i32 noundef %4431, ptr noundef @.str.4)
  %4433 = call ptr @__errno_location() #9
  %4434 = load i32, ptr %4433, align 4, !tbaa !5
  %4435 = call ptr @strerror(i32 noundef %4434) #8
  %4436 = call ptr @__errno_location() #9
  %4437 = load i32, ptr %4436, align 4, !tbaa !5
  %4438 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4425, ptr noundef @.str.5, i32 noundef %4426, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 166, ptr noundef %4429, ptr noundef %4432, ptr noundef %4435, i32 noundef %4437) #8
  br label %4439

4439:                                             ; preds = %4422, %4405
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #8
  br label %4440

4440:                                             ; preds = %4439
  br label %4441

4441:                                             ; preds = %4440
  call void @exit(i32 noundef 1) #10
  unreachable

4442:                                             ; No predecessors!
  br label %4443

4443:                                             ; preds = %4442
  br label %4444

4444:                                             ; preds = %4443, %4385
  br label %4445

4445:                                             ; preds = %4444
  br label %4446

4446:                                             ; preds = %4445
  br label %4447

4447:                                             ; preds = %4446
  %4448 = load i32, ptr @test_count, align 4, !tbaa !5
  %4449 = add nsw i32 %4448, 1
  store i32 %4449, ptr @test_count, align 4, !tbaa !5
  %4450 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4451 = load i32, ptr %4450, align 4, !tbaa !5
  %4452 = call ptr @s2n_strerror_debug(i32 noundef %4451, ptr noundef @.str.4)
  %4453 = icmp eq ptr %4452, null
  br i1 %4453, label %4454, label %4507

4454:                                             ; preds = %4447
  br label %4455

4455:                                             ; preds = %4454
  br label %4456

4456:                                             ; preds = %4455
  call void @llvm.lifetime.start.p0(i64 4, ptr %85) #8
  %4457 = call ptr @__errno_location() #9
  %4458 = load i32, ptr %4457, align 4, !tbaa !5
  store i32 %4458, ptr %85, align 4, !tbaa !5
  %4459 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4460 = call i32 @s2n_print_stacktrace(ptr noundef %4459)
  %4461 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4462 = trunc i8 %4461 to i1
  br i1 %4462, label %4463, label %4485

4463:                                             ; preds = %4456
  %4464 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4465 = call i32 @fileno(ptr noundef %4464) #8
  %4466 = call i32 @isatty(i32 noundef %4465) #8
  %4467 = icmp ne i32 %4466, 0
  br i1 %4467, label %4468, label %4485

4468:                                             ; preds = %4463
  %4469 = load i32, ptr %85, align 4, !tbaa !5
  %4470 = call ptr @__errno_location() #9
  store i32 %4469, ptr %4470, align 4, !tbaa !5
  %4471 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4472 = load i32, ptr @test_count, align 4, !tbaa !5
  %4473 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4474 = load i32, ptr %4473, align 4, !tbaa !5
  %4475 = call ptr @s2n_strerror(i32 noundef %4474, ptr noundef @.str.4)
  %4476 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4477 = load i32, ptr %4476, align 4, !tbaa !5
  %4478 = call ptr @s2n_strerror_debug(i32 noundef %4477, ptr noundef @.str.4)
  %4479 = call ptr @__errno_location() #9
  %4480 = load i32, ptr %4479, align 4, !tbaa !5
  %4481 = call ptr @strerror(i32 noundef %4480) #8
  %4482 = call ptr @__errno_location() #9
  %4483 = load i32, ptr %4482, align 4, !tbaa !5
  %4484 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4471, ptr noundef @.str.2, i32 noundef %4472, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 166, ptr noundef %4475, ptr noundef %4478, ptr noundef %4481, i32 noundef %4483) #8
  br label %4502

4485:                                             ; preds = %4463, %4456
  %4486 = load i32, ptr %85, align 4, !tbaa !5
  %4487 = call ptr @__errno_location() #9
  store i32 %4486, ptr %4487, align 4, !tbaa !5
  %4488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4489 = load i32, ptr @test_count, align 4, !tbaa !5
  %4490 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4491 = load i32, ptr %4490, align 4, !tbaa !5
  %4492 = call ptr @s2n_strerror(i32 noundef %4491, ptr noundef @.str.4)
  %4493 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4494 = load i32, ptr %4493, align 4, !tbaa !5
  %4495 = call ptr @s2n_strerror_debug(i32 noundef %4494, ptr noundef @.str.4)
  %4496 = call ptr @__errno_location() #9
  %4497 = load i32, ptr %4496, align 4, !tbaa !5
  %4498 = call ptr @strerror(i32 noundef %4497) #8
  %4499 = call ptr @__errno_location() #9
  %4500 = load i32, ptr %4499, align 4, !tbaa !5
  %4501 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4488, ptr noundef @.str.5, i32 noundef %4489, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 166, ptr noundef %4492, ptr noundef %4495, ptr noundef %4498, i32 noundef %4500) #8
  br label %4502

4502:                                             ; preds = %4485, %4468
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #8
  br label %4503

4503:                                             ; preds = %4502
  br label %4504

4504:                                             ; preds = %4503
  call void @exit(i32 noundef 1) #10
  unreachable

4505:                                             ; No predecessors!
  br label %4506

4506:                                             ; preds = %4505
  br label %4507

4507:                                             ; preds = %4506, %4447
  br label %4508

4508:                                             ; preds = %4507
  br label %4509

4509:                                             ; preds = %4508
  br label %4510

4510:                                             ; preds = %4509
  %4511 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %4511, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %4512 = call ptr @__errno_location() #9
  store i32 0, ptr %4512, align 4, !tbaa !5
  br label %4513

4513:                                             ; preds = %4510
  br label %4514

4514:                                             ; preds = %4513
  br label %4515

4515:                                             ; preds = %4514
  br label %4516

4516:                                             ; preds = %4515
  %4517 = load ptr, ptr %78, align 8, !tbaa !9
  %4518 = getelementptr inbounds %struct.s2n_connection, ptr %4517, i32 0, i32 52
  %4519 = getelementptr inbounds %struct.s2n_handshake, ptr %4518, i32 0, i32 4
  %4520 = load i32, ptr %80, align 4, !tbaa !5
  %4521 = sext i32 %4520 to i64
  %4522 = getelementptr inbounds [48 x i8], ptr %4519, i64 0, i64 %4521
  %4523 = load i8, ptr %4522, align 1, !tbaa !16
  %4524 = zext i8 %4523 to i32
  %4525 = xor i32 %4524, 1
  %4526 = trunc i32 %4525 to i8
  store i8 %4526, ptr %4522, align 1, !tbaa !16
  br label %4527

4527:                                             ; preds = %4516
  %4528 = load i32, ptr %80, align 4, !tbaa !5
  %4529 = add nsw i32 %4528, 1
  store i32 %4529, ptr %80, align 4, !tbaa !5
  br label %4173, !llvm.loop !55

4530:                                             ; preds = %4176
  br label %4531

4531:                                             ; preds = %4530
  %4532 = load i32, ptr @test_count, align 4, !tbaa !5
  %4533 = add nsw i32 %4532, 1
  store i32 %4533, ptr @test_count, align 4, !tbaa !5
  %4534 = load ptr, ptr %78, align 8, !tbaa !9
  %4535 = call i32 @s2n_connection_free(ptr noundef %4534)
  %4536 = icmp eq i32 %4535, -1
  br i1 %4536, label %4537, label %4590

4537:                                             ; preds = %4531
  br label %4538

4538:                                             ; preds = %4537
  br label %4539

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

4546:                                             ; preds = %4539
  %4547 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4548 = call i32 @fileno(ptr noundef %4547) #8
  %4549 = call i32 @isatty(i32 noundef %4548) #8
  %4550 = icmp ne i32 %4549, 0
  br i1 %4550, label %4551, label %4568

4551:                                             ; preds = %4546
  %4552 = load i32, ptr %86, align 4, !tbaa !5
  %4553 = call ptr @__errno_location() #9
  store i32 %4552, ptr %4553, align 4, !tbaa !5
  %4554 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4555 = load i32, ptr @test_count, align 4, !tbaa !5
  %4556 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4557 = load i32, ptr %4556, align 4, !tbaa !5
  %4558 = call ptr @s2n_strerror(i32 noundef %4557, ptr noundef @.str.4)
  %4559 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4560 = load i32, ptr %4559, align 4, !tbaa !5
  %4561 = call ptr @s2n_strerror_debug(i32 noundef %4560, ptr noundef @.str.4)
  %4562 = call ptr @__errno_location() #9
  %4563 = load i32, ptr %4562, align 4, !tbaa !5
  %4564 = call ptr @strerror(i32 noundef %4563) #8
  %4565 = call ptr @__errno_location() #9
  %4566 = load i32, ptr %4565, align 4, !tbaa !5
  %4567 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4554, ptr noundef @.str.2, i32 noundef %4555, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 172, ptr noundef %4558, ptr noundef %4561, ptr noundef %4564, i32 noundef %4566) #8
  br label %4585

4568:                                             ; preds = %4546, %4539
  %4569 = load i32, ptr %86, align 4, !tbaa !5
  %4570 = call ptr @__errno_location() #9
  store i32 %4569, ptr %4570, align 4, !tbaa !5
  %4571 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4572 = load i32, ptr @test_count, align 4, !tbaa !5
  %4573 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4574 = load i32, ptr %4573, align 4, !tbaa !5
  %4575 = call ptr @s2n_strerror(i32 noundef %4574, ptr noundef @.str.4)
  %4576 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4577 = load i32, ptr %4576, align 4, !tbaa !5
  %4578 = call ptr @s2n_strerror_debug(i32 noundef %4577, ptr noundef @.str.4)
  %4579 = call ptr @__errno_location() #9
  %4580 = load i32, ptr %4579, align 4, !tbaa !5
  %4581 = call ptr @strerror(i32 noundef %4580) #8
  %4582 = call ptr @__errno_location() #9
  %4583 = load i32, ptr %4582, align 4, !tbaa !5
  %4584 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4571, ptr noundef @.str.5, i32 noundef %4572, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 172, ptr noundef %4575, ptr noundef %4578, ptr noundef %4581, i32 noundef %4583) #8
  br label %4585

4585:                                             ; preds = %4568, %4551
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #8
  br label %4586

4586:                                             ; preds = %4585
  br label %4587

4587:                                             ; preds = %4586
  call void @exit(i32 noundef 1) #10
  unreachable

4588:                                             ; No predecessors!
  br label %4589

4589:                                             ; preds = %4588
  br label %4590

4590:                                             ; preds = %4589, %4531
  br label %4591

4591:                                             ; preds = %4590
  br label %4592

4592:                                             ; preds = %4591
  br label %4593

4593:                                             ; preds = %4592
  %4594 = load i32, ptr @test_count, align 4, !tbaa !5
  %4595 = add nsw i32 %4594, 1
  store i32 %4595, ptr @test_count, align 4, !tbaa !5
  %4596 = load ptr, ptr %74, align 8, !tbaa !9
  %4597 = call i32 @s2n_connection_free(ptr noundef %4596)
  %4598 = icmp eq i32 %4597, -1
  br i1 %4598, label %4599, label %4652

4599:                                             ; preds = %4593
  br label %4600

4600:                                             ; preds = %4599
  br label %4601

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

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

4613:                                             ; preds = %4608
  %4614 = load i32, ptr %87, align 4, !tbaa !5
  %4615 = call ptr @__errno_location() #9
  store i32 %4614, ptr %4615, align 4, !tbaa !5
  %4616 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4617 = load i32, ptr @test_count, align 4, !tbaa !5
  %4618 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4619 = load i32, ptr %4618, align 4, !tbaa !5
  %4620 = call ptr @s2n_strerror(i32 noundef %4619, ptr noundef @.str.4)
  %4621 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4622 = load i32, ptr %4621, align 4, !tbaa !5
  %4623 = call ptr @s2n_strerror_debug(i32 noundef %4622, ptr noundef @.str.4)
  %4624 = call ptr @__errno_location() #9
  %4625 = load i32, ptr %4624, align 4, !tbaa !5
  %4626 = call ptr @strerror(i32 noundef %4625) #8
  %4627 = call ptr @__errno_location() #9
  %4628 = load i32, ptr %4627, align 4, !tbaa !5
  %4629 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4616, ptr noundef @.str.2, i32 noundef %4617, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 173, ptr noundef %4620, ptr noundef %4623, ptr noundef %4626, i32 noundef %4628) #8
  br label %4647

4630:                                             ; preds = %4608, %4601
  %4631 = load i32, ptr %87, align 4, !tbaa !5
  %4632 = call ptr @__errno_location() #9
  store i32 %4631, ptr %4632, align 4, !tbaa !5
  %4633 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4634 = load i32, ptr @test_count, align 4, !tbaa !5
  %4635 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4636 = load i32, ptr %4635, align 4, !tbaa !5
  %4637 = call ptr @s2n_strerror(i32 noundef %4636, ptr noundef @.str.4)
  %4638 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4639 = load i32, ptr %4638, align 4, !tbaa !5
  %4640 = call ptr @s2n_strerror_debug(i32 noundef %4639, ptr noundef @.str.4)
  %4641 = call ptr @__errno_location() #9
  %4642 = load i32, ptr %4641, align 4, !tbaa !5
  %4643 = call ptr @strerror(i32 noundef %4642) #8
  %4644 = call ptr @__errno_location() #9
  %4645 = load i32, ptr %4644, align 4, !tbaa !5
  %4646 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4633, ptr noundef @.str.5, i32 noundef %4634, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 173, ptr noundef %4637, ptr noundef %4640, ptr noundef %4643, i32 noundef %4645) #8
  br label %4647

4647:                                             ; preds = %4630, %4613
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #8
  br label %4648

4648:                                             ; preds = %4647
  br label %4649

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

4650:                                             ; No predecessors!
  br label %4651

4651:                                             ; preds = %4650
  br label %4652

4652:                                             ; preds = %4651, %4593
  br label %4653

4653:                                             ; preds = %4652
  br label %4654

4654:                                             ; preds = %4653
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #8
  br label %4655

4655:                                             ; preds = %4654
  br label %4656

4656:                                             ; preds = %4655
  %4657 = call i32 @s2n_cleanup()
  %4658 = icmp eq i32 %4657, -1
  br i1 %4658, label %4659, label %4710

4659:                                             ; preds = %4656
  br label %4660

4660:                                             ; preds = %4659
  br label %4661

4661:                                             ; preds = %4660
  call void @llvm.lifetime.start.p0(i64 4, ptr %88) #8
  %4662 = call ptr @__errno_location() #9
  %4663 = load i32, ptr %4662, align 4, !tbaa !5
  store i32 %4663, ptr %88, align 4, !tbaa !5
  %4664 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4665 = call i32 @s2n_print_stacktrace(ptr noundef %4664)
  %4666 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4667 = trunc i8 %4666 to i1
  br i1 %4667, label %4668, label %4690

4668:                                             ; preds = %4661
  %4669 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4670 = call i32 @fileno(ptr noundef %4669) #8
  %4671 = call i32 @isatty(i32 noundef %4670) #8
  %4672 = icmp ne i32 %4671, 0
  br i1 %4672, label %4673, label %4690

4673:                                             ; preds = %4668
  %4674 = load i32, ptr %88, align 4, !tbaa !5
  %4675 = call ptr @__errno_location() #9
  store i32 %4674, ptr %4675, align 4, !tbaa !5
  %4676 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4677 = load i32, ptr @test_count, align 4, !tbaa !5
  %4678 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4679 = load i32, ptr %4678, align 4, !tbaa !5
  %4680 = call ptr @s2n_strerror(i32 noundef %4679, ptr noundef @.str.4)
  %4681 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4682 = load i32, ptr %4681, align 4, !tbaa !5
  %4683 = call ptr @s2n_strerror_debug(i32 noundef %4682, ptr noundef @.str.4)
  %4684 = call ptr @__errno_location() #9
  %4685 = load i32, ptr %4684, align 4, !tbaa !5
  %4686 = call ptr @strerror(i32 noundef %4685) #8
  %4687 = call ptr @__errno_location() #9
  %4688 = load i32, ptr %4687, align 4, !tbaa !5
  %4689 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4676, ptr noundef @.str.2, i32 noundef %4677, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 176, ptr noundef %4680, ptr noundef %4683, ptr noundef %4686, i32 noundef %4688) #8
  br label %4707

4690:                                             ; preds = %4668, %4661
  %4691 = load i32, ptr %88, align 4, !tbaa !5
  %4692 = call ptr @__errno_location() #9
  store i32 %4691, ptr %4692, align 4, !tbaa !5
  %4693 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4694 = load i32, ptr @test_count, align 4, !tbaa !5
  %4695 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4696 = load i32, ptr %4695, align 4, !tbaa !5
  %4697 = call ptr @s2n_strerror(i32 noundef %4696, ptr noundef @.str.4)
  %4698 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4699 = load i32, ptr %4698, align 4, !tbaa !5
  %4700 = call ptr @s2n_strerror_debug(i32 noundef %4699, ptr noundef @.str.4)
  %4701 = call ptr @__errno_location() #9
  %4702 = load i32, ptr %4701, align 4, !tbaa !5
  %4703 = call ptr @strerror(i32 noundef %4702) #8
  %4704 = call ptr @__errno_location() #9
  %4705 = load i32, ptr %4704, align 4, !tbaa !5
  %4706 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4693, ptr noundef @.str.5, i32 noundef %4694, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 176, ptr noundef %4697, ptr noundef %4700, ptr noundef %4703, i32 noundef %4705) #8
  br label %4707

4707:                                             ; preds = %4690, %4673
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #8
  br label %4708

4708:                                             ; preds = %4707
  call void @exit(i32 noundef 1) #10
  unreachable

4709:                                             ; No predecessors!
  br label %4710

4710:                                             ; preds = %4709, %4656
  br label %4711

4711:                                             ; preds = %4710
  br label %4712

4712:                                             ; preds = %4711
  br label %4713

4713:                                             ; preds = %4712
  %4714 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %4715 = icmp eq i32 %4714, -1
  br i1 %4715, label %4716, label %4767

4716:                                             ; preds = %4713
  br label %4717

4717:                                             ; preds = %4716
  br label %4718

4718:                                             ; preds = %4717
  call void @llvm.lifetime.start.p0(i64 4, ptr %89) #8
  %4719 = call ptr @__errno_location() #9
  %4720 = load i32, ptr %4719, align 4, !tbaa !5
  store i32 %4720, ptr %89, align 4, !tbaa !5
  %4721 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4722 = call i32 @s2n_print_stacktrace(ptr noundef %4721)
  %4723 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4724 = trunc i8 %4723 to i1
  br i1 %4724, label %4725, label %4747

4725:                                             ; preds = %4718
  %4726 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4727 = call i32 @fileno(ptr noundef %4726) #8
  %4728 = call i32 @isatty(i32 noundef %4727) #8
  %4729 = icmp ne i32 %4728, 0
  br i1 %4729, label %4730, label %4747

4730:                                             ; preds = %4725
  %4731 = load i32, ptr %89, align 4, !tbaa !5
  %4732 = call ptr @__errno_location() #9
  store i32 %4731, ptr %4732, align 4, !tbaa !5
  %4733 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4734 = load i32, ptr @test_count, align 4, !tbaa !5
  %4735 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4736 = load i32, ptr %4735, align 4, !tbaa !5
  %4737 = call ptr @s2n_strerror(i32 noundef %4736, ptr noundef @.str.4)
  %4738 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4739 = load i32, ptr %4738, align 4, !tbaa !5
  %4740 = call ptr @s2n_strerror_debug(i32 noundef %4739, ptr noundef @.str.4)
  %4741 = call ptr @__errno_location() #9
  %4742 = load i32, ptr %4741, align 4, !tbaa !5
  %4743 = call ptr @strerror(i32 noundef %4742) #8
  %4744 = call ptr @__errno_location() #9
  %4745 = load i32, ptr %4744, align 4, !tbaa !5
  %4746 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4733, ptr noundef @.str.2, i32 noundef %4734, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 176, ptr noundef %4737, ptr noundef %4740, ptr noundef %4743, i32 noundef %4745) #8
  br label %4764

4747:                                             ; preds = %4725, %4718
  %4748 = load i32, ptr %89, align 4, !tbaa !5
  %4749 = call ptr @__errno_location() #9
  store i32 %4748, ptr %4749, align 4, !tbaa !5
  %4750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4751 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %4753, ptr noundef @.str.4)
  %4755 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4756 = load i32, ptr %4755, align 4, !tbaa !5
  %4757 = call ptr @s2n_strerror_debug(i32 noundef %4756, ptr noundef @.str.4)
  %4758 = call ptr @__errno_location() #9
  %4759 = load i32, ptr %4758, align 4, !tbaa !5
  %4760 = call ptr @strerror(i32 noundef %4759) #8
  %4761 = call ptr @__errno_location() #9
  %4762 = load i32, ptr %4761, align 4, !tbaa !5
  %4763 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4750, ptr noundef @.str.5, i32 noundef %4751, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 176, ptr noundef %4754, ptr noundef %4757, ptr noundef %4760, i32 noundef %4762) #8
  br label %4764

4764:                                             ; preds = %4747, %4730
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #8
  br label %4765

4765:                                             ; preds = %4764
  call void @exit(i32 noundef 1) #10
  unreachable

4766:                                             ; No predecessors!
  br label %4767

4767:                                             ; preds = %4766, %4713
  br label %4768

4768:                                             ; preds = %4767
  %4769 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4770 = trunc i8 %4769 to i1
  br i1 %4770, label %4771, label %4787

4771:                                             ; preds = %4768
  %4772 = load ptr, ptr @stdout, align 8, !tbaa !9
  %4773 = call i32 @fileno(ptr noundef %4772) #8
  %4774 = call i32 @isatty(i32 noundef %4773) #8
  %4775 = icmp ne i32 %4774, 0
  br i1 %4775, label %4776, label %4787

4776:                                             ; preds = %4771
  %4777 = load i32, ptr @test_count, align 4, !tbaa !5
  %4778 = icmp ne i32 %4777, 0
  br i1 %4778, label %4779, label %4783

4779:                                             ; preds = %4776
  %4780 = load ptr, ptr @stdout, align 8, !tbaa !9
  %4781 = load i32, ptr @test_count, align 4, !tbaa !5
  %4782 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4780, ptr noundef @.str.30, i32 noundef %4781) #8
  br label %4786

4783:                                             ; preds = %4776
  %4784 = load ptr, ptr @stdout, align 8, !tbaa !9
  %4785 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4784, ptr noundef @.str.31) #8
  br label %4786

4786:                                             ; preds = %4783, %4779
  br label %4798

4787:                                             ; preds = %4771, %4768
  %4788 = load i32, ptr @test_count, align 4, !tbaa !5
  %4789 = icmp ne i32 %4788, 0
  br i1 %4789, label %4790, label %4794

4790:                                             ; preds = %4787
  %4791 = load ptr, ptr @stdout, align 8, !tbaa !9
  %4792 = load i32, ptr @test_count, align 4, !tbaa !5
  %4793 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4791, ptr noundef @.str.32, i32 noundef %4792) #8
  br label %4797

4794:                                             ; preds = %4787
  %4795 = load ptr, ptr @stdout, align 8, !tbaa !9
  %4796 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4795, ptr noundef @.str.33) #8
  br label %4797

4797:                                             ; preds = %4794, %4790
  br label %4798

4798:                                             ; preds = %4797, %4786
  store i32 0, ptr %3, align 4
  br label %4800

4799:                                             ; No predecessors!
  br label %4800

4800:                                             ; preds = %4799, %4798
  %4801 = load i32, ptr %3, align 4
  ret i32 %4801
}

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

declare i32 @fflush(ptr noundef) #2

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) #2

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

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

declare i32 @s2n_print_stacktrace(ptr noundef) #2

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

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

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

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

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

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

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

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

declare i32 @s2n_enable_atexit() #2

declare i32 @s2n_init() #2

declare i32 @s2n_disable_tls13_in_test(...) #2

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

declare ptr @s2n_connection_new(i32 noundef) #2

declare i32 @s2n_tls13_client_finished_send(ptr noundef) #2

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

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

declare i32 @s2n_tls13_client_finished_recv(ptr noundef) #2

declare void @s2n_debug_info_reset() #2

declare i32 @s2n_stuffer_write_uint8(ptr noundef, i8 noundef zeroext) #2

declare i32 @s2n_connection_free(ptr noundef) #2

declare i32 @s2n_cleanup() #2

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #4 = { nounwind willreturn memory(none) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #6 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #8 = { nounwind }
attributes #9 = { nounwind willreturn memory(none) }
attributes #10 = { 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 = !{i64 0, i64 1, !16, i64 8, i64 8, !9, i64 16, i64 8, !9, i64 24, i64 2, !16, i64 32, i64 8, !9, i64 40, i64 4, !5, i64 48, i64 8, !9, i64 56, i64 16, !16, i64 72, i64 1, !16, i64 80, i64 8, !9, i64 88, i64 8, !9, i64 96, i64 4, !5, i64 100, i64 1, !16}
!16 = !{!7, !7, i64 0}
!17 = !{!18, !7, i64 220}
!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 232}
!45 = !{!46, !10, i64 0}
!46 = !{!"s2n_crypto_parameters", !10, i64 0, !47, i64 8, !47, i64 16, !48, i64 24, !48, i64 456, !7, i64 888, !7, i64 904, !7, i64 920, !7, i64 928}
!47 = !{!"s2n_session_key", !10, i64 0}
!48 = !{!"s2n_hmac_state", !6, i64 0, !33, i64 4, !6, i64 8, !33, i64 12, !7, i64 14, !49, i64 16, !49, i64 72, !49, i64 128, !49, i64 184, !7, i64 240, !7, i64 368}
!49 = !{!"s2n_hash_state", !10, i64 0, !6, i64 8, !7, i64 12, !20, i64 16, !7, i64 24}
!50 = !{!18, !6, i64 2044}
!51 = !{!18, !6, i64 2040}
!52 = !{!18, !10, i64 2016}
!53 = distinct !{!53, !54}
!54 = !{!"llvm.loop.mustprogress"}
!55 = distinct !{!55, !54}


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

%struct.s2n_cipher_suite = type { i8, ptr, ptr, [2 x i8], ptr, i32, ptr, [2 x ptr], i8, ptr, ptr, i32, i8 }

@s2n_use_color_in_output = external dso_local local_unnamed_addr global i8, align 1
@test_count = external dso_local local_unnamed_addr global i32, align 4
@stdout = external local_unnamed_addr global ptr, align 8
@.str = external hidden unnamed_addr constant [19 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [89 x i8], align 1
@stderr = external local_unnamed_addr global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [52 x i8], align 1
@s2n_errno = external thread_local local_unnamed_addr global i32, align 4
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [56 x i8], align 1
@s2n_tls13_aes_128_gcm_sha256 = external global %struct.s2n_cipher_suite, align 8
@s2n_tls13_aes_256_gcm_sha384 = external global %struct.s2n_cipher_suite, align 8
@s2n_tls13_chacha20_poly1305_sha256 = external local_unnamed_addr global %struct.s2n_cipher_suite, align 8
@__const.main.hash_sizes = external hidden unnamed_addr constant [3 x i32], align 4
@.str.9 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [119 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [112 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [116 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [112 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [112 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [25 x i8], align 1

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

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

17:                                               ; preds = %10
  %18 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19 = tail call i32 @fileno(ptr noundef %18) #9
  %20 = tail call i32 @isatty(i32 noundef %19) #9
  %.not320 = icmp eq i32 %20, 0
  br i1 %.not320, label %21, label %22

21:                                               ; preds = %17, %10
  br label %22

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

34:                                               ; preds = %2
  %35 = load i32, ptr @test_count, align 4, !tbaa !5
  %36 = add nsw i32 %35, 1
  store i32 %36, ptr @test_count, align 4, !tbaa !5
  %37 = tail call i32 @s2n_enable_atexit() #9
  %38 = icmp eq i32 %37, -1
  br i1 %38, label %39, label %63

39:                                               ; preds = %34
  %40 = tail call ptr @__errno_location() #10
  %41 = load i32, ptr %40, align 4, !tbaa !5
  %42 = load ptr, ptr @stderr, align 8, !tbaa !9
  %43 = tail call i32 @s2n_print_stacktrace(ptr noundef %42) #9
  %44 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %45 = trunc nuw i8 %44 to i1
  br i1 %45, label %46, label %50

46:                                               ; preds = %39
  %47 = load ptr, ptr @stderr, align 8, !tbaa !9
  %48 = tail call i32 @fileno(ptr noundef %47) #9
  %49 = tail call i32 @isatty(i32 noundef %48) #9
  %.not319 = icmp eq i32 %49, 0
  br i1 %.not319, label %50, label %51

50:                                               ; preds = %46, %39
  br label %51

51:                                               ; preds = %46, %50
  %.str.5.sink411 = phi ptr [ @.str.5, %50 ], [ @.str.2, %46 ]
  store i32 %41, ptr %40, align 4, !tbaa !5
  %52 = load ptr, ptr @stderr, align 8, !tbaa !9
  %53 = load i32, ptr @test_count, align 4, !tbaa !5
  %54 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %55 = load i32, ptr %54, align 4, !tbaa !5
  %56 = tail call ptr @s2n_strerror(i32 noundef %55, ptr noundef nonnull @.str.4) #9
  %57 = load i32, ptr %54, align 4, !tbaa !5
  %58 = tail call ptr @s2n_strerror_debug(i32 noundef %57, ptr noundef nonnull @.str.4) #9
  %59 = load i32, ptr %40, align 4, !tbaa !5
  %60 = tail call ptr @strerror(i32 noundef %59) #9
  %61 = load i32, ptr %40, align 4, !tbaa !5
  %62 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %52, ptr noundef nonnull %.str.5.sink411, i32 noundef %53, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.1, i32 noundef 32, ptr noundef %56, ptr noundef %58, ptr noundef %60, i32 noundef %61) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

63:                                               ; preds = %34
  %64 = tail call i32 @s2n_init() #9
  %65 = icmp eq i32 %64, -1
  br i1 %65, label %66, label %90

66:                                               ; preds = %63
  %67 = tail call ptr @__errno_location() #10
  %68 = load i32, ptr %67, align 4, !tbaa !5
  %69 = load ptr, ptr @stderr, align 8, !tbaa !9
  %70 = tail call i32 @s2n_print_stacktrace(ptr noundef %69) #9
  %71 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %72 = trunc nuw i8 %71 to i1
  br i1 %72, label %73, label %77

73:                                               ; preds = %66
  %74 = load ptr, ptr @stderr, align 8, !tbaa !9
  %75 = tail call i32 @fileno(ptr noundef %74) #9
  %76 = tail call i32 @isatty(i32 noundef %75) #9
  %.not318 = icmp eq i32 %76, 0
  br i1 %.not318, label %77, label %78

77:                                               ; preds = %73, %66
  br label %78

78:                                               ; preds = %73, %77
  %.str.5.sink422 = phi ptr [ @.str.5, %77 ], [ @.str.2, %73 ]
  store i32 %68, ptr %67, align 4, !tbaa !5
  %79 = load ptr, ptr @stderr, align 8, !tbaa !9
  %80 = load i32, ptr @test_count, align 4, !tbaa !5
  %81 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %82 = load i32, ptr %81, align 4, !tbaa !5
  %83 = tail call ptr @s2n_strerror(i32 noundef %82, ptr noundef nonnull @.str.4) #9
  %84 = load i32, ptr %81, align 4, !tbaa !5
  %85 = tail call ptr @s2n_strerror_debug(i32 noundef %84, ptr noundef nonnull @.str.4) #9
  %86 = load i32, ptr %67, align 4, !tbaa !5
  %87 = tail call ptr @strerror(i32 noundef %86) #9
  %88 = load i32, ptr %67, align 4, !tbaa !5
  %89 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %79, ptr noundef nonnull %.str.5.sink422, i32 noundef %80, ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.1, i32 noundef 32, ptr noundef %83, ptr noundef %85, ptr noundef %87, i32 noundef %88) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

90:                                               ; preds = %63
  %91 = load i32, ptr @test_count, align 4, !tbaa !5
  %92 = add nsw i32 %91, 1
  store i32 %92, ptr @test_count, align 4, !tbaa !5
  %93 = tail call i32 (...) @s2n_disable_tls13_in_test() #9
  %94 = icmp eq i32 %93, -1
  br i1 %94, label %95, label %119

95:                                               ; preds = %90
  %96 = tail call ptr @__errno_location() #10
  %97 = load i32, ptr %96, align 4, !tbaa !5
  %98 = load ptr, ptr @stderr, align 8, !tbaa !9
  %99 = tail call i32 @s2n_print_stacktrace(ptr noundef %98) #9
  %100 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %101 = trunc nuw i8 %100 to i1
  br i1 %101, label %102, label %106

102:                                              ; preds = %95
  %103 = load ptr, ptr @stderr, align 8, !tbaa !9
  %104 = tail call i32 @fileno(ptr noundef %103) #9
  %105 = tail call i32 @isatty(i32 noundef %104) #9
  %.not317 = icmp eq i32 %105, 0
  br i1 %.not317, label %106, label %107

106:                                              ; preds = %102, %95
  br label %107

107:                                              ; preds = %102, %106
  %.str.5.sink433 = phi ptr [ @.str.5, %106 ], [ @.str.2, %102 ]
  store i32 %97, ptr %96, align 4, !tbaa !5
  %108 = load ptr, ptr @stderr, align 8, !tbaa !9
  %109 = load i32, ptr @test_count, align 4, !tbaa !5
  %110 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %111 = load i32, ptr %110, align 4, !tbaa !5
  %112 = tail call ptr @s2n_strerror(i32 noundef %111, ptr noundef nonnull @.str.4) #9
  %113 = load i32, ptr %110, align 4, !tbaa !5
  %114 = tail call ptr @s2n_strerror_debug(i32 noundef %113, ptr noundef nonnull @.str.4) #9
  %115 = load i32, ptr %96, align 4, !tbaa !5
  %116 = tail call ptr @strerror(i32 noundef %115) #9
  %117 = load i32, ptr %96, align 4, !tbaa !5
  %118 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %108, ptr noundef nonnull %.str.5.sink433, i32 noundef %109, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 33, ptr noundef %112, ptr noundef %114, ptr noundef %116, i32 noundef %117) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

119:                                              ; preds = %90
  call void @llvm.lifetime.start.p0(i64 312, ptr nonnull %3) #9
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(104) %3, ptr noundef nonnull align 8 dereferenceable(104) @s2n_tls13_aes_128_gcm_sha256, i64 104, i1 false), !tbaa.struct !15
  %120 = getelementptr inbounds i8, ptr %3, i64 104
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(104) %120, ptr noundef nonnull align 8 dereferenceable(104) @s2n_tls13_aes_256_gcm_sha384, i64 104, i1 false), !tbaa.struct !15
  %121 = getelementptr inbounds i8, ptr %3, i64 208
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(104) %121, ptr noundef nonnull align 8 dereferenceable(104) @s2n_tls13_chacha20_poly1305_sha256, i64 104, i1 false), !tbaa.struct !15
  %122 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  br label %129

123:                                              ; preds = %942
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, 3
  br i1 %exitcond.not, label %124, label %129, !llvm.loop !17

124:                                              ; preds = %123
  call void @llvm.lifetime.end.p0(i64 312, ptr nonnull %3) #9
  %125 = load i32, ptr @test_count, align 4, !tbaa !5
  %126 = add nsw i32 %125, 1
  store i32 %126, ptr @test_count, align 4, !tbaa !5
  %127 = call ptr @s2n_connection_new(i32 noundef 1) #9
  %128 = icmp eq ptr %127, null
  br i1 %128, label %969, label %991

129:                                              ; preds = %119, %123
  %indvars.iv = phi i64 [ 0, %119 ], [ %indvars.iv.next, %123 ]
  %130 = load i32, ptr @test_count, align 4, !tbaa !5
  %131 = add nsw i32 %130, 1
  store i32 %131, ptr @test_count, align 4, !tbaa !5
  %132 = call ptr @s2n_connection_new(i32 noundef 1) #9
  %133 = icmp eq ptr %132, null
  br i1 %133, label %134, label %157

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

141:                                              ; preds = %134
  %142 = load ptr, ptr @stderr, align 8, !tbaa !9
  %143 = call i32 @fileno(ptr noundef %142) #9
  %144 = call i32 @isatty(i32 noundef %143) #9
  %.not316 = icmp eq i32 %144, 0
  br i1 %.not316, label %145, label %146

145:                                              ; preds = %141, %134
  br label %146

146:                                              ; preds = %141, %145
  %.str.5.sink444 = phi ptr [ @.str.5, %145 ], [ @.str.2, %141 ]
  store i32 %136, ptr %135, align 4, !tbaa !5
  %147 = load ptr, ptr @stderr, align 8, !tbaa !9
  %148 = load i32, ptr @test_count, align 4, !tbaa !5
  %149 = load i32, ptr %122, align 4, !tbaa !5
  %150 = call ptr @s2n_strerror(i32 noundef %149, ptr noundef nonnull @.str.4) #9
  %151 = load i32, ptr %122, align 4, !tbaa !5
  %152 = call ptr @s2n_strerror_debug(i32 noundef %151, ptr noundef nonnull @.str.4) #9
  %153 = load i32, ptr %135, align 4, !tbaa !5
  %154 = call ptr @strerror(i32 noundef %153) #9
  %155 = load i32, ptr %135, align 4, !tbaa !5
  %156 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %147, ptr noundef nonnull %.str.5.sink444, i32 noundef %148, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 49, ptr noundef %150, ptr noundef %152, ptr noundef %154, i32 noundef %155) #11
  call void @exit(i32 noundef 1) #12
  unreachable

157:                                              ; preds = %129
  %158 = getelementptr inbounds i8, ptr %132, i64 220
  store i8 34, ptr %158, align 4, !tbaa !19
  %159 = getelementptr inbounds [3 x %struct.s2n_cipher_suite], ptr %3, i64 0, i64 %indvars.iv
  %160 = getelementptr inbounds i8, ptr %132, i64 232
  %161 = load ptr, ptr %160, align 8, !tbaa !46
  store ptr %159, ptr %161, align 8, !tbaa !47
  %162 = getelementptr inbounds [3 x i32], ptr @__const.main.hash_sizes, i64 0, i64 %indvars.iv
  %163 = load i32, ptr %162, align 4, !tbaa !5
  %164 = load i32, ptr @test_count, align 4, !tbaa !5
  %165 = add nsw i32 %164, 1
  store i32 %165, ptr @test_count, align 4, !tbaa !5
  %166 = call i32 @s2n_tls13_client_finished_send(ptr noundef nonnull %132) #9
  %167 = icmp eq i32 %166, -1
  br i1 %167, label %168, label %191

168:                                              ; preds = %157
  %169 = tail call ptr @__errno_location() #10
  %170 = load i32, ptr %169, align 4, !tbaa !5
  %171 = load ptr, ptr @stderr, align 8, !tbaa !9
  %172 = call i32 @s2n_print_stacktrace(ptr noundef %171) #9
  %173 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %174 = trunc nuw i8 %173 to i1
  br i1 %174, label %175, label %179

175:                                              ; preds = %168
  %176 = load ptr, ptr @stderr, align 8, !tbaa !9
  %177 = call i32 @fileno(ptr noundef %176) #9
  %178 = call i32 @isatty(i32 noundef %177) #9
  %.not315 = icmp eq i32 %178, 0
  br i1 %.not315, label %179, label %180

179:                                              ; preds = %175, %168
  br label %180

180:                                              ; preds = %175, %179
  %.str.5.sink453 = phi ptr [ @.str.5, %179 ], [ @.str.2, %175 ]
  store i32 %170, ptr %169, align 4, !tbaa !5
  %181 = load ptr, ptr @stderr, align 8, !tbaa !9
  %182 = load i32, ptr @test_count, align 4, !tbaa !5
  %183 = load i32, ptr %122, align 4, !tbaa !5
  %184 = call ptr @s2n_strerror(i32 noundef %183, ptr noundef nonnull @.str.4) #9
  %185 = load i32, ptr %122, align 4, !tbaa !5
  %186 = call ptr @s2n_strerror_debug(i32 noundef %185, ptr noundef nonnull @.str.4) #9
  %187 = load i32, ptr %169, align 4, !tbaa !5
  %188 = call ptr @strerror(i32 noundef %187) #9
  %189 = load i32, ptr %169, align 4, !tbaa !5
  %190 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %181, ptr noundef nonnull %.str.5.sink453, i32 noundef %182, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 56, ptr noundef %184, ptr noundef %186, ptr noundef %188, i32 noundef %189) #11
  call void @exit(i32 noundef 1) #12
  unreachable

191:                                              ; preds = %157
  %192 = load i32, ptr @test_count, align 4, !tbaa !5
  %193 = add nsw i32 %192, 1
  store i32 %193, ptr @test_count, align 4, !tbaa !5
  %194 = getelementptr inbounds i8, ptr %132, i64 2016
  %195 = getelementptr inbounds i8, ptr %132, i64 2044
  %196 = load i32, ptr %195, align 4, !tbaa !52
  %197 = getelementptr inbounds i8, ptr %132, i64 2040
  %198 = load i32, ptr %197, align 8, !tbaa !53
  %199 = sub i32 %196, %198
  %200 = icmp eq i32 %199, %163
  br i1 %200, label %224, label %201

201:                                              ; preds = %191
  %202 = tail call ptr @__errno_location() #10
  %203 = load i32, ptr %202, align 4, !tbaa !5
  %204 = load ptr, ptr @stderr, align 8, !tbaa !9
  %205 = call i32 @s2n_print_stacktrace(ptr noundef %204) #9
  %206 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %207 = trunc nuw i8 %206 to i1
  br i1 %207, label %208, label %212

208:                                              ; preds = %201
  %209 = load ptr, ptr @stderr, align 8, !tbaa !9
  %210 = call i32 @fileno(ptr noundef %209) #9
  %211 = call i32 @isatty(i32 noundef %210) #9
  %.not287 = icmp eq i32 %211, 0
  br i1 %.not287, label %212, label %213

212:                                              ; preds = %208, %201
  br label %213

213:                                              ; preds = %208, %212
  %.str.5.sink462 = phi ptr [ @.str.5, %212 ], [ @.str.2, %208 ]
  store i32 %203, ptr %202, align 4, !tbaa !5
  %214 = load ptr, ptr @stderr, align 8, !tbaa !9
  %215 = load i32, ptr @test_count, align 4, !tbaa !5
  %216 = load i32, ptr %122, align 4, !tbaa !5
  %217 = call ptr @s2n_strerror(i32 noundef %216, ptr noundef nonnull @.str.4) #9
  %218 = load i32, ptr %122, align 4, !tbaa !5
  %219 = call ptr @s2n_strerror_debug(i32 noundef %218, ptr noundef nonnull @.str.4) #9
  %220 = load i32, ptr %202, align 4, !tbaa !5
  %221 = call ptr @strerror(i32 noundef %220) #9
  %222 = load i32, ptr %202, align 4, !tbaa !5
  %223 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %214, ptr noundef nonnull %.str.5.sink462, i32 noundef %215, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 57, ptr noundef %217, ptr noundef %219, ptr noundef %221, i32 noundef %222) #11
  call void @exit(i32 noundef 1) #12
  unreachable

224:                                              ; preds = %191
  %225 = add nsw i32 %192, 2
  store i32 %225, ptr @test_count, align 4, !tbaa !5
  %226 = call ptr @s2n_connection_new(i32 noundef 1) #9
  %227 = icmp eq ptr %226, null
  br i1 %227, label %228, label %251

228:                                              ; preds = %224
  %229 = tail call ptr @__errno_location() #10
  %230 = load i32, ptr %229, align 4, !tbaa !5
  %231 = load ptr, ptr @stderr, align 8, !tbaa !9
  %232 = call i32 @s2n_print_stacktrace(ptr noundef %231) #9
  %233 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %234 = trunc nuw i8 %233 to i1
  br i1 %234, label %235, label %239

235:                                              ; preds = %228
  %236 = load ptr, ptr @stderr, align 8, !tbaa !9
  %237 = call i32 @fileno(ptr noundef %236) #9
  %238 = call i32 @isatty(i32 noundef %237) #9
  %.not314 = icmp eq i32 %238, 0
  br i1 %.not314, label %239, label %240

239:                                              ; preds = %235, %228
  br label %240

240:                                              ; preds = %235, %239
  %.str.5.sink471 = phi ptr [ @.str.5, %239 ], [ @.str.2, %235 ]
  store i32 %230, ptr %229, align 4, !tbaa !5
  %241 = load ptr, ptr @stderr, align 8, !tbaa !9
  %242 = load i32, ptr @test_count, align 4, !tbaa !5
  %243 = load i32, ptr %122, align 4, !tbaa !5
  %244 = call ptr @s2n_strerror(i32 noundef %243, ptr noundef nonnull @.str.4) #9
  %245 = load i32, ptr %122, align 4, !tbaa !5
  %246 = call ptr @s2n_strerror_debug(i32 noundef %245, ptr noundef nonnull @.str.4) #9
  %247 = load i32, ptr %229, align 4, !tbaa !5
  %248 = call ptr @strerror(i32 noundef %247) #9
  %249 = load i32, ptr %229, align 4, !tbaa !5
  %250 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %241, ptr noundef nonnull %.str.5.sink471, i32 noundef %242, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 60, ptr noundef %244, ptr noundef %246, ptr noundef %248, i32 noundef %249) #11
  call void @exit(i32 noundef 1) #12
  unreachable

251:                                              ; preds = %224
  %252 = getelementptr inbounds i8, ptr %226, i64 220
  store i8 34, ptr %252, align 4, !tbaa !19
  %253 = getelementptr inbounds i8, ptr %226, i64 232
  %254 = load ptr, ptr %253, align 8, !tbaa !46
  store ptr %159, ptr %254, align 8, !tbaa !47
  %255 = load i32, ptr @test_count, align 4, !tbaa !5
  %256 = add nsw i32 %255, 1
  store i32 %256, ptr @test_count, align 4, !tbaa !5
  %257 = getelementptr inbounds i8, ptr %226, i64 2016
  %258 = call i32 @reset_stuffers(ptr noundef nonnull %194, ptr noundef nonnull %257)
  %259 = icmp eq i32 %258, -1
  br i1 %259, label %260, label %283

260:                                              ; preds = %251
  %261 = tail call ptr @__errno_location() #10
  %262 = load i32, ptr %261, align 4, !tbaa !5
  %263 = load ptr, ptr @stderr, align 8, !tbaa !9
  %264 = call i32 @s2n_print_stacktrace(ptr noundef %263) #9
  %265 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %266 = trunc nuw i8 %265 to i1
  br i1 %266, label %267, label %271

267:                                              ; preds = %260
  %268 = load ptr, ptr @stderr, align 8, !tbaa !9
  %269 = call i32 @fileno(ptr noundef %268) #9
  %270 = call i32 @isatty(i32 noundef %269) #9
  %.not313 = icmp eq i32 %270, 0
  br i1 %.not313, label %271, label %272

271:                                              ; preds = %267, %260
  br label %272

272:                                              ; preds = %267, %271
  %.str.5.sink480 = phi ptr [ @.str.5, %271 ], [ @.str.2, %267 ]
  store i32 %262, ptr %261, align 4, !tbaa !5
  %273 = load ptr, ptr @stderr, align 8, !tbaa !9
  %274 = load i32, ptr @test_count, align 4, !tbaa !5
  %275 = load i32, ptr %122, align 4, !tbaa !5
  %276 = call ptr @s2n_strerror(i32 noundef %275, ptr noundef nonnull @.str.4) #9
  %277 = load i32, ptr %122, align 4, !tbaa !5
  %278 = call ptr @s2n_strerror_debug(i32 noundef %277, ptr noundef nonnull @.str.4) #9
  %279 = load i32, ptr %261, align 4, !tbaa !5
  %280 = call ptr @strerror(i32 noundef %279) #9
  %281 = load i32, ptr %261, align 4, !tbaa !5
  %282 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %273, ptr noundef nonnull %.str.5.sink480, i32 noundef %274, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 64, ptr noundef %276, ptr noundef %278, ptr noundef %280, i32 noundef %281) #11
  call void @exit(i32 noundef 1) #12
  unreachable

283:                                              ; preds = %251
  %284 = load i32, ptr @test_count, align 4, !tbaa !5
  %285 = add nsw i32 %284, 1
  store i32 %285, ptr @test_count, align 4, !tbaa !5
  %286 = call i32 @s2n_stuffer_copy(ptr noundef nonnull %194, ptr noundef nonnull %257, i32 noundef %163) #9
  %287 = icmp eq i32 %286, -1
  br i1 %287, label %288, label %311

288:                                              ; preds = %283
  %289 = tail call ptr @__errno_location() #10
  %290 = load i32, ptr %289, align 4, !tbaa !5
  %291 = load ptr, ptr @stderr, align 8, !tbaa !9
  %292 = call i32 @s2n_print_stacktrace(ptr noundef %291) #9
  %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 %299

295:                                              ; preds = %288
  %296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %297 = call i32 @fileno(ptr noundef %296) #9
  %298 = call i32 @isatty(i32 noundef %297) #9
  %.not312 = icmp eq i32 %298, 0
  br i1 %.not312, label %299, label %300

299:                                              ; preds = %295, %288
  br label %300

300:                                              ; preds = %295, %299
  %.str.5.sink489 = phi ptr [ @.str.5, %299 ], [ @.str.2, %295 ]
  store i32 %290, ptr %289, align 4, !tbaa !5
  %301 = load ptr, ptr @stderr, align 8, !tbaa !9
  %302 = load i32, ptr @test_count, align 4, !tbaa !5
  %303 = load i32, ptr %122, align 4, !tbaa !5
  %304 = call ptr @s2n_strerror(i32 noundef %303, ptr noundef nonnull @.str.4) #9
  %305 = load i32, ptr %122, align 4, !tbaa !5
  %306 = call ptr @s2n_strerror_debug(i32 noundef %305, ptr noundef nonnull @.str.4) #9
  %307 = load i32, ptr %289, align 4, !tbaa !5
  %308 = call ptr @strerror(i32 noundef %307) #9
  %309 = load i32, ptr %289, align 4, !tbaa !5
  %310 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %301, ptr noundef nonnull %.str.5.sink489, i32 noundef %302, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 65, ptr noundef %304, ptr noundef %306, ptr noundef %308, i32 noundef %309) #11
  call void @exit(i32 noundef 1) #12
  unreachable

311:                                              ; preds = %283
  %312 = load i32, ptr @test_count, align 4, !tbaa !5
  %313 = add nsw i32 %312, 1
  store i32 %313, ptr @test_count, align 4, !tbaa !5
  %314 = call i32 @s2n_tls13_client_finished_recv(ptr noundef nonnull %226) #9
  %315 = icmp eq i32 %314, -1
  br i1 %315, label %316, label %339

316:                                              ; preds = %311
  %317 = tail call ptr @__errno_location() #10
  %318 = load i32, ptr %317, align 4, !tbaa !5
  %319 = load ptr, ptr @stderr, align 8, !tbaa !9
  %320 = call i32 @s2n_print_stacktrace(ptr noundef %319) #9
  %321 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %322 = trunc nuw i8 %321 to i1
  br i1 %322, label %323, label %327

323:                                              ; preds = %316
  %324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %325 = call i32 @fileno(ptr noundef %324) #9
  %326 = call i32 @isatty(i32 noundef %325) #9
  %.not311 = icmp eq i32 %326, 0
  br i1 %.not311, label %327, label %328

327:                                              ; preds = %323, %316
  br label %328

328:                                              ; preds = %323, %327
  %.str.5.sink498 = phi ptr [ @.str.5, %327 ], [ @.str.2, %323 ]
  store i32 %318, ptr %317, align 4, !tbaa !5
  %329 = load ptr, ptr @stderr, align 8, !tbaa !9
  %330 = load i32, ptr @test_count, align 4, !tbaa !5
  %331 = load i32, ptr %122, align 4, !tbaa !5
  %332 = call ptr @s2n_strerror(i32 noundef %331, ptr noundef nonnull @.str.4) #9
  %333 = load i32, ptr %122, align 4, !tbaa !5
  %334 = call ptr @s2n_strerror_debug(i32 noundef %333, ptr noundef nonnull @.str.4) #9
  %335 = load i32, ptr %317, align 4, !tbaa !5
  %336 = call ptr @strerror(i32 noundef %335) #9
  %337 = load i32, ptr %317, align 4, !tbaa !5
  %338 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %329, ptr noundef nonnull %.str.5.sink498, i32 noundef %330, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 66, ptr noundef %332, ptr noundef %334, ptr noundef %336, i32 noundef %337) #11
  call void @exit(i32 noundef 1) #12
  unreachable

339:                                              ; preds = %311
  %340 = load i32, ptr @test_count, align 4, !tbaa !5
  %341 = add nsw i32 %340, 1
  store i32 %341, ptr @test_count, align 4, !tbaa !5
  %342 = call i32 @reset_stuffers(ptr noundef nonnull %194, ptr noundef nonnull %257)
  %343 = icmp eq i32 %342, -1
  br i1 %343, label %344, label %367

344:                                              ; preds = %339
  %345 = tail call ptr @__errno_location() #10
  %346 = load i32, ptr %345, align 4, !tbaa !5
  %347 = load ptr, ptr @stderr, align 8, !tbaa !9
  %348 = call i32 @s2n_print_stacktrace(ptr noundef %347) #9
  %349 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %350 = trunc nuw i8 %349 to i1
  br i1 %350, label %351, label %355

351:                                              ; preds = %344
  %352 = load ptr, ptr @stderr, align 8, !tbaa !9
  %353 = call i32 @fileno(ptr noundef %352) #9
  %354 = call i32 @isatty(i32 noundef %353) #9
  %.not310 = icmp eq i32 %354, 0
  br i1 %.not310, label %355, label %356

355:                                              ; preds = %351, %344
  br label %356

356:                                              ; preds = %351, %355
  %.str.5.sink507 = phi ptr [ @.str.5, %355 ], [ @.str.2, %351 ]
  store i32 %346, ptr %345, align 4, !tbaa !5
  %357 = load ptr, ptr @stderr, align 8, !tbaa !9
  %358 = load i32, ptr @test_count, align 4, !tbaa !5
  %359 = load i32, ptr %122, align 4, !tbaa !5
  %360 = call ptr @s2n_strerror(i32 noundef %359, ptr noundef nonnull @.str.4) #9
  %361 = load i32, ptr %122, align 4, !tbaa !5
  %362 = call ptr @s2n_strerror_debug(i32 noundef %361, ptr noundef nonnull @.str.4) #9
  %363 = load i32, ptr %345, align 4, !tbaa !5
  %364 = call ptr @strerror(i32 noundef %363) #9
  %365 = load i32, ptr %345, align 4, !tbaa !5
  %366 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %357, ptr noundef nonnull %.str.5.sink507, i32 noundef %358, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 69, ptr noundef %360, ptr noundef %362, ptr noundef %364, i32 noundef %365) #11
  call void @exit(i32 noundef 1) #12
  unreachable

367:                                              ; preds = %339
  %368 = load i32, ptr @test_count, align 4, !tbaa !5
  %369 = add nsw i32 %368, 1
  store i32 %369, ptr @test_count, align 4, !tbaa !5
  %370 = add nsw i32 %163, -1
  %371 = call i32 @s2n_stuffer_copy(ptr noundef nonnull %194, ptr noundef nonnull %257, i32 noundef %370) #9
  %372 = icmp eq i32 %371, -1
  br i1 %372, label %373, label %396

373:                                              ; preds = %367
  %374 = tail call ptr @__errno_location() #10
  %375 = load i32, ptr %374, align 4, !tbaa !5
  %376 = load ptr, ptr @stderr, align 8, !tbaa !9
  %377 = call i32 @s2n_print_stacktrace(ptr noundef %376) #9
  %378 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %379 = trunc nuw i8 %378 to i1
  br i1 %379, label %380, label %384

380:                                              ; preds = %373
  %381 = load ptr, ptr @stderr, align 8, !tbaa !9
  %382 = call i32 @fileno(ptr noundef %381) #9
  %383 = call i32 @isatty(i32 noundef %382) #9
  %.not309 = icmp eq i32 %383, 0
  br i1 %.not309, label %384, label %385

384:                                              ; preds = %380, %373
  br label %385

385:                                              ; preds = %380, %384
  %.str.5.sink516 = phi ptr [ @.str.5, %384 ], [ @.str.2, %380 ]
  store i32 %375, ptr %374, align 4, !tbaa !5
  %386 = load ptr, ptr @stderr, align 8, !tbaa !9
  %387 = load i32, ptr @test_count, align 4, !tbaa !5
  %388 = load i32, ptr %122, align 4, !tbaa !5
  %389 = call ptr @s2n_strerror(i32 noundef %388, ptr noundef nonnull @.str.4) #9
  %390 = load i32, ptr %122, align 4, !tbaa !5
  %391 = call ptr @s2n_strerror_debug(i32 noundef %390, ptr noundef nonnull @.str.4) #9
  %392 = load i32, ptr %374, align 4, !tbaa !5
  %393 = call ptr @strerror(i32 noundef %392) #9
  %394 = load i32, ptr %374, align 4, !tbaa !5
  %395 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %386, ptr noundef nonnull %.str.5.sink516, i32 noundef %387, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 70, ptr noundef %389, ptr noundef %391, ptr noundef %393, i32 noundef %394) #11
  call void @exit(i32 noundef 1) #12
  unreachable

396:                                              ; preds = %367
  %397 = load i32, ptr @test_count, align 4, !tbaa !5
  %398 = add nsw i32 %397, 1
  store i32 %398, ptr @test_count, align 4, !tbaa !5
  %399 = call i32 @s2n_tls13_client_finished_recv(ptr noundef nonnull %226) #9
  %400 = icmp eq i32 %399, -1
  br i1 %400, label %424, label %401

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

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

412:                                              ; preds = %408, %401
  br label %413

413:                                              ; preds = %408, %412
  %.str.5.sink525 = phi ptr [ @.str.5, %412 ], [ @.str.2, %408 ]
  store i32 %403, ptr %402, align 4, !tbaa !5
  %414 = load ptr, ptr @stderr, align 8, !tbaa !9
  %415 = load i32, ptr @test_count, align 4, !tbaa !5
  %416 = load i32, ptr %122, align 4, !tbaa !5
  %417 = call ptr @s2n_strerror(i32 noundef %416, ptr noundef nonnull @.str.4) #9
  %418 = load i32, ptr %122, align 4, !tbaa !5
  %419 = call ptr @s2n_strerror_debug(i32 noundef %418, ptr noundef nonnull @.str.4) #9
  %420 = load i32, ptr %402, align 4, !tbaa !5
  %421 = call ptr @strerror(i32 noundef %420) #9
  %422 = load i32, ptr %402, align 4, !tbaa !5
  %423 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %414, ptr noundef nonnull %.str.5.sink525, i32 noundef %415, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 71, ptr noundef %417, ptr noundef %419, ptr noundef %421, i32 noundef %422) #11
  call void @exit(i32 noundef 1) #12
  unreachable

424:                                              ; preds = %396
  %425 = load i32, ptr @test_count, align 4, !tbaa !5
  %426 = add nsw i32 %425, 1
  store i32 %426, ptr @test_count, align 4, !tbaa !5
  %427 = load i32, ptr %122, align 4, !tbaa !5
  %428 = icmp eq i32 %427, 0
  br i1 %428, label %429, label %452

429:                                              ; preds = %424
  %430 = tail call ptr @__errno_location() #10
  %431 = load i32, ptr %430, align 4, !tbaa !5
  %432 = load ptr, ptr @stderr, align 8, !tbaa !9
  %433 = call i32 @s2n_print_stacktrace(ptr noundef %432) #9
  %434 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %435 = trunc nuw i8 %434 to i1
  br i1 %435, label %436, label %440

436:                                              ; preds = %429
  %437 = load ptr, ptr @stderr, align 8, !tbaa !9
  %438 = call i32 @fileno(ptr noundef %437) #9
  %439 = call i32 @isatty(i32 noundef %438) #9
  %.not308 = icmp eq i32 %439, 0
  br i1 %.not308, label %440, label %441

440:                                              ; preds = %436, %429
  br label %441

441:                                              ; preds = %436, %440
  %.str.5.sink534 = phi ptr [ @.str.5, %440 ], [ @.str.2, %436 ]
  store i32 %431, ptr %430, align 4, !tbaa !5
  %442 = load ptr, ptr @stderr, align 8, !tbaa !9
  %443 = load i32, ptr @test_count, align 4, !tbaa !5
  %444 = load i32, ptr %122, align 4, !tbaa !5
  %445 = call ptr @s2n_strerror(i32 noundef %444, ptr noundef nonnull @.str.4) #9
  %446 = load i32, ptr %122, align 4, !tbaa !5
  %447 = call ptr @s2n_strerror_debug(i32 noundef %446, ptr noundef nonnull @.str.4) #9
  %448 = load i32, ptr %430, align 4, !tbaa !5
  %449 = call ptr @strerror(i32 noundef %448) #9
  %450 = load i32, ptr %430, align 4, !tbaa !5
  %451 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %442, ptr noundef nonnull %.str.5.sink534, i32 noundef %443, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 71, ptr noundef %445, ptr noundef %447, ptr noundef %449, i32 noundef %450) #11
  call void @exit(i32 noundef 1) #12
  unreachable

452:                                              ; preds = %424
  %453 = add nsw i32 %425, 2
  store i32 %453, ptr @test_count, align 4, !tbaa !5
  %454 = call ptr @s2n_strerror_debug(i32 noundef %427, ptr noundef nonnull @.str.4) #9
  %455 = icmp eq ptr %454, null
  br i1 %455, label %456, label %479

456:                                              ; preds = %452
  %457 = tail call ptr @__errno_location() #10
  %458 = load i32, ptr %457, align 4, !tbaa !5
  %459 = load ptr, ptr @stderr, align 8, !tbaa !9
  %460 = call i32 @s2n_print_stacktrace(ptr noundef %459) #9
  %461 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %462 = trunc nuw i8 %461 to i1
  br i1 %462, label %463, label %467

463:                                              ; preds = %456
  %464 = load ptr, ptr @stderr, align 8, !tbaa !9
  %465 = call i32 @fileno(ptr noundef %464) #9
  %466 = call i32 @isatty(i32 noundef %465) #9
  %.not307 = icmp eq i32 %466, 0
  br i1 %.not307, label %467, label %468

467:                                              ; preds = %463, %456
  br label %468

468:                                              ; preds = %463, %467
  %.str.5.sink543 = phi ptr [ @.str.5, %467 ], [ @.str.2, %463 ]
  store i32 %458, ptr %457, align 4, !tbaa !5
  %469 = load ptr, ptr @stderr, align 8, !tbaa !9
  %470 = load i32, ptr @test_count, align 4, !tbaa !5
  %471 = load i32, ptr %122, align 4, !tbaa !5
  %472 = call ptr @s2n_strerror(i32 noundef %471, ptr noundef nonnull @.str.4) #9
  %473 = load i32, ptr %122, align 4, !tbaa !5
  %474 = call ptr @s2n_strerror_debug(i32 noundef %473, ptr noundef nonnull @.str.4) #9
  %475 = load i32, ptr %457, align 4, !tbaa !5
  %476 = call ptr @strerror(i32 noundef %475) #9
  %477 = load i32, ptr %457, align 4, !tbaa !5
  %478 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %469, ptr noundef nonnull %.str.5.sink543, i32 noundef %470, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 71, ptr noundef %472, ptr noundef %474, ptr noundef %476, i32 noundef %477) #11
  call void @exit(i32 noundef 1) #12
  unreachable

479:                                              ; preds = %452
  store i32 0, ptr %122, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #9
  %480 = tail call ptr @__errno_location() #10
  store i32 0, ptr %480, align 4, !tbaa !5
  %481 = load i32, ptr @test_count, align 4, !tbaa !5
  %482 = add nsw i32 %481, 1
  store i32 %482, ptr @test_count, align 4, !tbaa !5
  %483 = call i32 @reset_stuffers(ptr noundef nonnull %194, ptr noundef nonnull %257)
  %484 = icmp eq i32 %483, -1
  br i1 %484, label %485, label %507

485:                                              ; preds = %479
  %486 = load i32, ptr %480, align 4, !tbaa !5
  %487 = load ptr, ptr @stderr, align 8, !tbaa !9
  %488 = call i32 @s2n_print_stacktrace(ptr noundef %487) #9
  %489 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %490 = trunc nuw i8 %489 to i1
  br i1 %490, label %491, label %495

491:                                              ; preds = %485
  %492 = load ptr, ptr @stderr, align 8, !tbaa !9
  %493 = call i32 @fileno(ptr noundef %492) #9
  %494 = call i32 @isatty(i32 noundef %493) #9
  %.not306 = icmp eq i32 %494, 0
  br i1 %.not306, label %495, label %496

495:                                              ; preds = %491, %485
  br label %496

496:                                              ; preds = %491, %495
  %.str.5.sink552 = phi ptr [ @.str.5, %495 ], [ @.str.2, %491 ]
  store i32 %486, ptr %480, align 4, !tbaa !5
  %497 = load ptr, ptr @stderr, align 8, !tbaa !9
  %498 = load i32, ptr @test_count, align 4, !tbaa !5
  %499 = load i32, ptr %122, align 4, !tbaa !5
  %500 = call ptr @s2n_strerror(i32 noundef %499, ptr noundef nonnull @.str.4) #9
  %501 = load i32, ptr %122, align 4, !tbaa !5
  %502 = call ptr @s2n_strerror_debug(i32 noundef %501, ptr noundef nonnull @.str.4) #9
  %503 = load i32, ptr %480, align 4, !tbaa !5
  %504 = call ptr @strerror(i32 noundef %503) #9
  %505 = load i32, ptr %480, align 4, !tbaa !5
  %506 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %497, ptr noundef nonnull %.str.5.sink552, i32 noundef %498, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 74, ptr noundef %500, ptr noundef %502, ptr noundef %504, i32 noundef %505) #11
  call void @exit(i32 noundef 1) #12
  unreachable

507:                                              ; preds = %479
  %508 = load i32, ptr @test_count, align 4, !tbaa !5
  %509 = add nsw i32 %508, 1
  store i32 %509, ptr @test_count, align 4, !tbaa !5
  %510 = call i32 @s2n_stuffer_copy(ptr noundef nonnull %194, ptr noundef nonnull %257, i32 noundef %163) #9
  %511 = icmp eq i32 %510, -1
  br i1 %511, label %512, label %534

512:                                              ; preds = %507
  %513 = load i32, ptr %480, align 4, !tbaa !5
  %514 = load ptr, ptr @stderr, align 8, !tbaa !9
  %515 = call i32 @s2n_print_stacktrace(ptr noundef %514) #9
  %516 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %517 = trunc nuw i8 %516 to i1
  br i1 %517, label %518, label %522

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

522:                                              ; preds = %518, %512
  br label %523

523:                                              ; preds = %518, %522
  %.str.5.sink561 = phi ptr [ @.str.5, %522 ], [ @.str.2, %518 ]
  store i32 %513, ptr %480, align 4, !tbaa !5
  %524 = load ptr, ptr @stderr, align 8, !tbaa !9
  %525 = load i32, ptr @test_count, align 4, !tbaa !5
  %526 = load i32, ptr %122, align 4, !tbaa !5
  %527 = call ptr @s2n_strerror(i32 noundef %526, ptr noundef nonnull @.str.4) #9
  %528 = load i32, ptr %122, align 4, !tbaa !5
  %529 = call ptr @s2n_strerror_debug(i32 noundef %528, ptr noundef nonnull @.str.4) #9
  %530 = load i32, ptr %480, align 4, !tbaa !5
  %531 = call ptr @strerror(i32 noundef %530) #9
  %532 = load i32, ptr %480, align 4, !tbaa !5
  %533 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %524, ptr noundef nonnull %.str.5.sink561, i32 noundef %525, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 75, ptr noundef %527, ptr noundef %529, ptr noundef %531, i32 noundef %532) #11
  call void @exit(i32 noundef 1) #12
  unreachable

534:                                              ; preds = %507
  %535 = load i32, ptr @test_count, align 4, !tbaa !5
  %536 = add nsw i32 %535, 1
  store i32 %536, ptr @test_count, align 4, !tbaa !5
  %537 = call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %257, i8 noundef zeroext 0) #9
  %538 = icmp eq i32 %537, -1
  br i1 %538, label %539, label %561

539:                                              ; preds = %534
  %540 = load i32, ptr %480, align 4, !tbaa !5
  %541 = load ptr, ptr @stderr, align 8, !tbaa !9
  %542 = call i32 @s2n_print_stacktrace(ptr noundef %541) #9
  %543 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %544 = trunc nuw i8 %543 to i1
  br i1 %544, label %545, label %549

545:                                              ; preds = %539
  %546 = load ptr, ptr @stderr, align 8, !tbaa !9
  %547 = call i32 @fileno(ptr noundef %546) #9
  %548 = call i32 @isatty(i32 noundef %547) #9
  %.not304 = icmp eq i32 %548, 0
  br i1 %.not304, label %549, label %550

549:                                              ; preds = %545, %539
  br label %550

550:                                              ; preds = %545, %549
  %.str.5.sink570 = phi ptr [ @.str.5, %549 ], [ @.str.2, %545 ]
  store i32 %540, ptr %480, align 4, !tbaa !5
  %551 = load ptr, ptr @stderr, align 8, !tbaa !9
  %552 = load i32, ptr @test_count, align 4, !tbaa !5
  %553 = load i32, ptr %122, align 4, !tbaa !5
  %554 = call ptr @s2n_strerror(i32 noundef %553, ptr noundef nonnull @.str.4) #9
  %555 = load i32, ptr %122, align 4, !tbaa !5
  %556 = call ptr @s2n_strerror_debug(i32 noundef %555, ptr noundef nonnull @.str.4) #9
  %557 = load i32, ptr %480, align 4, !tbaa !5
  %558 = call ptr @strerror(i32 noundef %557) #9
  %559 = load i32, ptr %480, align 4, !tbaa !5
  %560 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %551, ptr noundef nonnull %.str.5.sink570, i32 noundef %552, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 76, ptr noundef %554, ptr noundef %556, ptr noundef %558, i32 noundef %559) #11
  call void @exit(i32 noundef 1) #12
  unreachable

561:                                              ; preds = %534
  %562 = load i32, ptr @test_count, align 4, !tbaa !5
  %563 = add nsw i32 %562, 1
  store i32 %563, ptr @test_count, align 4, !tbaa !5
  %564 = call i32 @s2n_tls13_client_finished_recv(ptr noundef nonnull %226) #9
  %565 = icmp eq i32 %564, -1
  br i1 %565, label %588, label %566

566:                                              ; preds = %561
  %567 = load i32, ptr %480, align 4, !tbaa !5
  %568 = load ptr, ptr @stderr, align 8, !tbaa !9
  %569 = call i32 @s2n_print_stacktrace(ptr noundef %568) #9
  %570 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %571 = trunc nuw i8 %570 to i1
  br i1 %571, label %572, label %576

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

576:                                              ; preds = %572, %566
  br label %577

577:                                              ; preds = %572, %576
  %.str.5.sink579 = phi ptr [ @.str.5, %576 ], [ @.str.2, %572 ]
  store i32 %567, ptr %480, align 4, !tbaa !5
  %578 = load ptr, ptr @stderr, align 8, !tbaa !9
  %579 = load i32, ptr @test_count, align 4, !tbaa !5
  %580 = load i32, ptr %122, align 4, !tbaa !5
  %581 = call ptr @s2n_strerror(i32 noundef %580, ptr noundef nonnull @.str.4) #9
  %582 = load i32, ptr %122, align 4, !tbaa !5
  %583 = call ptr @s2n_strerror_debug(i32 noundef %582, ptr noundef nonnull @.str.4) #9
  %584 = load i32, ptr %480, align 4, !tbaa !5
  %585 = call ptr @strerror(i32 noundef %584) #9
  %586 = load i32, ptr %480, align 4, !tbaa !5
  %587 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %578, ptr noundef nonnull %.str.5.sink579, i32 noundef %579, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 77, ptr noundef %581, ptr noundef %583, ptr noundef %585, i32 noundef %586) #11
  call void @exit(i32 noundef 1) #12
  unreachable

588:                                              ; preds = %561
  %589 = load i32, ptr @test_count, align 4, !tbaa !5
  %590 = add nsw i32 %589, 1
  store i32 %590, ptr @test_count, align 4, !tbaa !5
  %591 = load i32, ptr %122, align 4, !tbaa !5
  %592 = icmp eq i32 %591, 0
  br i1 %592, label %593, label %615

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

599:                                              ; preds = %593
  %600 = load ptr, ptr @stderr, align 8, !tbaa !9
  %601 = call i32 @fileno(ptr noundef %600) #9
  %602 = call i32 @isatty(i32 noundef %601) #9
  %.not303 = icmp eq i32 %602, 0
  br i1 %.not303, label %603, label %604

603:                                              ; preds = %599, %593
  br label %604

604:                                              ; preds = %599, %603
  %.str.5.sink588 = phi ptr [ @.str.5, %603 ], [ @.str.2, %599 ]
  store i32 %594, ptr %480, align 4, !tbaa !5
  %605 = load ptr, ptr @stderr, align 8, !tbaa !9
  %606 = load i32, ptr @test_count, align 4, !tbaa !5
  %607 = load i32, ptr %122, align 4, !tbaa !5
  %608 = call ptr @s2n_strerror(i32 noundef %607, ptr noundef nonnull @.str.4) #9
  %609 = load i32, ptr %122, align 4, !tbaa !5
  %610 = call ptr @s2n_strerror_debug(i32 noundef %609, ptr noundef nonnull @.str.4) #9
  %611 = load i32, ptr %480, align 4, !tbaa !5
  %612 = call ptr @strerror(i32 noundef %611) #9
  %613 = load i32, ptr %480, align 4, !tbaa !5
  %614 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %605, ptr noundef nonnull %.str.5.sink588, i32 noundef %606, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 77, ptr noundef %608, ptr noundef %610, ptr noundef %612, i32 noundef %613) #11
  call void @exit(i32 noundef 1) #12
  unreachable

615:                                              ; preds = %588
  %616 = add nsw i32 %589, 2
  store i32 %616, ptr @test_count, align 4, !tbaa !5
  %617 = call ptr @s2n_strerror_debug(i32 noundef %591, ptr noundef nonnull @.str.4) #9
  %618 = icmp eq ptr %617, null
  br i1 %618, label %619, label %641

619:                                              ; preds = %615
  %620 = load i32, ptr %480, align 4, !tbaa !5
  %621 = load ptr, ptr @stderr, align 8, !tbaa !9
  %622 = call i32 @s2n_print_stacktrace(ptr noundef %621) #9
  %623 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %624 = trunc nuw i8 %623 to i1
  br i1 %624, label %625, label %629

625:                                              ; preds = %619
  %626 = load ptr, ptr @stderr, align 8, !tbaa !9
  %627 = call i32 @fileno(ptr noundef %626) #9
  %628 = call i32 @isatty(i32 noundef %627) #9
  %.not302 = icmp eq i32 %628, 0
  br i1 %.not302, label %629, label %630

629:                                              ; preds = %625, %619
  br label %630

630:                                              ; preds = %625, %629
  %.str.5.sink597 = phi ptr [ @.str.5, %629 ], [ @.str.2, %625 ]
  store i32 %620, ptr %480, align 4, !tbaa !5
  %631 = load ptr, ptr @stderr, align 8, !tbaa !9
  %632 = load i32, ptr @test_count, align 4, !tbaa !5
  %633 = load i32, ptr %122, align 4, !tbaa !5
  %634 = call ptr @s2n_strerror(i32 noundef %633, ptr noundef nonnull @.str.4) #9
  %635 = load i32, ptr %122, align 4, !tbaa !5
  %636 = call ptr @s2n_strerror_debug(i32 noundef %635, ptr noundef nonnull @.str.4) #9
  %637 = load i32, ptr %480, align 4, !tbaa !5
  %638 = call ptr @strerror(i32 noundef %637) #9
  %639 = load i32, ptr %480, align 4, !tbaa !5
  %640 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %631, ptr noundef nonnull %.str.5.sink597, i32 noundef %632, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 77, ptr noundef %634, ptr noundef %636, ptr noundef %638, i32 noundef %639) #11
  call void @exit(i32 noundef 1) #12
  unreachable

641:                                              ; preds = %615
  store i32 0, ptr %122, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #9
  store i32 0, ptr %480, align 4, !tbaa !5
  %642 = load i32, ptr @test_count, align 4, !tbaa !5
  %643 = add nsw i32 %642, 1
  store i32 %643, ptr @test_count, align 4, !tbaa !5
  %644 = call i32 @reset_stuffers(ptr noundef nonnull %194, ptr noundef nonnull %257)
  %645 = icmp eq i32 %644, -1
  br i1 %645, label %646, label %668

646:                                              ; preds = %641
  %647 = load i32, ptr %480, align 4, !tbaa !5
  %648 = load ptr, ptr @stderr, align 8, !tbaa !9
  %649 = call i32 @s2n_print_stacktrace(ptr noundef %648) #9
  %650 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %651 = trunc nuw i8 %650 to i1
  br i1 %651, label %652, label %656

652:                                              ; preds = %646
  %653 = load ptr, ptr @stderr, align 8, !tbaa !9
  %654 = call i32 @fileno(ptr noundef %653) #9
  %655 = call i32 @isatty(i32 noundef %654) #9
  %.not301 = icmp eq i32 %655, 0
  br i1 %.not301, label %656, label %657

656:                                              ; preds = %652, %646
  br label %657

657:                                              ; preds = %652, %656
  %.str.5.sink606 = phi ptr [ @.str.5, %656 ], [ @.str.2, %652 ]
  store i32 %647, ptr %480, align 4, !tbaa !5
  %658 = load ptr, ptr @stderr, align 8, !tbaa !9
  %659 = load i32, ptr @test_count, align 4, !tbaa !5
  %660 = load i32, ptr %122, align 4, !tbaa !5
  %661 = call ptr @s2n_strerror(i32 noundef %660, ptr noundef nonnull @.str.4) #9
  %662 = load i32, ptr %122, align 4, !tbaa !5
  %663 = call ptr @s2n_strerror_debug(i32 noundef %662, ptr noundef nonnull @.str.4) #9
  %664 = load i32, ptr %480, align 4, !tbaa !5
  %665 = call ptr @strerror(i32 noundef %664) #9
  %666 = load i32, ptr %480, align 4, !tbaa !5
  %667 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %658, ptr noundef nonnull %.str.5.sink606, i32 noundef %659, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 80, ptr noundef %661, ptr noundef %663, ptr noundef %665, i32 noundef %666) #11
  call void @exit(i32 noundef 1) #12
  unreachable

668:                                              ; preds = %641
  %669 = load i32, ptr @test_count, align 4, !tbaa !5
  %670 = add nsw i32 %669, 1
  store i32 %670, ptr @test_count, align 4, !tbaa !5
  %671 = call i32 @s2n_stuffer_copy(ptr noundef nonnull %194, ptr noundef nonnull %257, i32 noundef %163) #9
  %672 = icmp eq i32 %671, -1
  br i1 %672, label %673, label %695

673:                                              ; preds = %668
  %674 = load i32, ptr %480, align 4, !tbaa !5
  %675 = load ptr, ptr @stderr, align 8, !tbaa !9
  %676 = call i32 @s2n_print_stacktrace(ptr noundef %675) #9
  %677 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %678 = trunc nuw i8 %677 to i1
  br i1 %678, label %679, label %683

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

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

684:                                              ; preds = %679, %683
  %.str.5.sink615 = phi ptr [ @.str.5, %683 ], [ @.str.2, %679 ]
  store i32 %674, ptr %480, align 4, !tbaa !5
  %685 = load ptr, ptr @stderr, align 8, !tbaa !9
  %686 = load i32, ptr @test_count, align 4, !tbaa !5
  %687 = load i32, ptr %122, align 4, !tbaa !5
  %688 = call ptr @s2n_strerror(i32 noundef %687, ptr noundef nonnull @.str.4) #9
  %689 = load i32, ptr %122, align 4, !tbaa !5
  %690 = call ptr @s2n_strerror_debug(i32 noundef %689, ptr noundef nonnull @.str.4) #9
  %691 = load i32, ptr %480, align 4, !tbaa !5
  %692 = call ptr @strerror(i32 noundef %691) #9
  %693 = load i32, ptr %480, align 4, !tbaa !5
  %694 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %685, ptr noundef nonnull %.str.5.sink615, i32 noundef %686, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 81, ptr noundef %688, ptr noundef %690, ptr noundef %692, i32 noundef %693) #11
  call void @exit(i32 noundef 1) #12
  unreachable

695:                                              ; preds = %668
  %696 = load ptr, ptr %257, align 8, !tbaa !54
  %697 = load i8, ptr %696, align 1, !tbaa !16
  %698 = xor i8 %697, 1
  store i8 %698, ptr %696, align 1, !tbaa !16
  %699 = load i32, ptr @test_count, align 4, !tbaa !5
  %700 = add nsw i32 %699, 1
  store i32 %700, ptr @test_count, align 4, !tbaa !5
  %701 = call i32 @s2n_tls13_client_finished_recv(ptr noundef nonnull %226) #9
  %702 = icmp eq i32 %701, -1
  br i1 %702, label %725, label %703

703:                                              ; preds = %695
  %704 = load i32, ptr %480, align 4, !tbaa !5
  %705 = load ptr, ptr @stderr, align 8, !tbaa !9
  %706 = call i32 @s2n_print_stacktrace(ptr noundef %705) #9
  %707 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %708 = trunc nuw i8 %707 to i1
  br i1 %708, label %709, label %713

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

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

714:                                              ; preds = %709, %713
  %.str.5.sink624 = phi ptr [ @.str.5, %713 ], [ @.str.2, %709 ]
  store i32 %704, ptr %480, align 4, !tbaa !5
  %715 = load ptr, ptr @stderr, align 8, !tbaa !9
  %716 = load i32, ptr @test_count, align 4, !tbaa !5
  %717 = load i32, ptr %122, align 4, !tbaa !5
  %718 = call ptr @s2n_strerror(i32 noundef %717, ptr noundef nonnull @.str.4) #9
  %719 = load i32, ptr %122, align 4, !tbaa !5
  %720 = call ptr @s2n_strerror_debug(i32 noundef %719, ptr noundef nonnull @.str.4) #9
  %721 = load i32, ptr %480, align 4, !tbaa !5
  %722 = call ptr @strerror(i32 noundef %721) #9
  %723 = load i32, ptr %480, align 4, !tbaa !5
  %724 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %715, ptr noundef nonnull %.str.5.sink624, i32 noundef %716, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 83, ptr noundef %718, ptr noundef %720, ptr noundef %722, i32 noundef %723) #11
  call void @exit(i32 noundef 1) #12
  unreachable

725:                                              ; preds = %695
  %726 = load i32, ptr @test_count, align 4, !tbaa !5
  %727 = add nsw i32 %726, 1
  store i32 %727, ptr @test_count, align 4, !tbaa !5
  %728 = load i32, ptr %122, align 4, !tbaa !5
  %729 = icmp eq i32 %728, 0
  br i1 %729, label %730, label %752

730:                                              ; preds = %725
  %731 = load i32, ptr %480, align 4, !tbaa !5
  %732 = load ptr, ptr @stderr, align 8, !tbaa !9
  %733 = call i32 @s2n_print_stacktrace(ptr noundef %732) #9
  %734 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %735 = trunc nuw i8 %734 to i1
  br i1 %735, label %736, label %740

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

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

741:                                              ; preds = %736, %740
  %.str.5.sink633 = phi ptr [ @.str.5, %740 ], [ @.str.2, %736 ]
  store i32 %731, ptr %480, align 4, !tbaa !5
  %742 = load ptr, ptr @stderr, align 8, !tbaa !9
  %743 = load i32, ptr @test_count, align 4, !tbaa !5
  %744 = load i32, ptr %122, align 4, !tbaa !5
  %745 = call ptr @s2n_strerror(i32 noundef %744, ptr noundef nonnull @.str.4) #9
  %746 = load i32, ptr %122, align 4, !tbaa !5
  %747 = call ptr @s2n_strerror_debug(i32 noundef %746, ptr noundef nonnull @.str.4) #9
  %748 = load i32, ptr %480, align 4, !tbaa !5
  %749 = call ptr @strerror(i32 noundef %748) #9
  %750 = load i32, ptr %480, align 4, !tbaa !5
  %751 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %742, ptr noundef nonnull %.str.5.sink633, i32 noundef %743, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 83, ptr noundef %745, ptr noundef %747, ptr noundef %749, i32 noundef %750) #11
  call void @exit(i32 noundef 1) #12
  unreachable

752:                                              ; preds = %725
  %753 = add nsw i32 %726, 2
  store i32 %753, ptr @test_count, align 4, !tbaa !5
  %754 = call ptr @s2n_strerror_debug(i32 noundef %728, ptr noundef nonnull @.str.4) #9
  %755 = icmp eq ptr %754, null
  br i1 %755, label %756, label %778

756:                                              ; preds = %752
  %757 = load i32, ptr %480, align 4, !tbaa !5
  %758 = load ptr, ptr @stderr, align 8, !tbaa !9
  %759 = call i32 @s2n_print_stacktrace(ptr noundef %758) #9
  %760 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %761 = trunc nuw i8 %760 to i1
  br i1 %761, label %762, label %766

762:                                              ; preds = %756
  %763 = load ptr, ptr @stderr, align 8, !tbaa !9
  %764 = call i32 @fileno(ptr noundef %763) #9
  %765 = call i32 @isatty(i32 noundef %764) #9
  %.not298 = icmp eq i32 %765, 0
  br i1 %.not298, label %766, label %767

766:                                              ; preds = %762, %756
  br label %767

767:                                              ; preds = %762, %766
  %.str.5.sink642 = phi ptr [ @.str.5, %766 ], [ @.str.2, %762 ]
  store i32 %757, ptr %480, align 4, !tbaa !5
  %768 = load ptr, ptr @stderr, align 8, !tbaa !9
  %769 = load i32, ptr @test_count, align 4, !tbaa !5
  %770 = load i32, ptr %122, align 4, !tbaa !5
  %771 = call ptr @s2n_strerror(i32 noundef %770, ptr noundef nonnull @.str.4) #9
  %772 = load i32, ptr %122, align 4, !tbaa !5
  %773 = call ptr @s2n_strerror_debug(i32 noundef %772, ptr noundef nonnull @.str.4) #9
  %774 = load i32, ptr %480, align 4, !tbaa !5
  %775 = call ptr @strerror(i32 noundef %774) #9
  %776 = load i32, ptr %480, align 4, !tbaa !5
  %777 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %768, ptr noundef nonnull %.str.5.sink642, i32 noundef %769, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 83, ptr noundef %771, ptr noundef %773, ptr noundef %775, i32 noundef %776) #11
  call void @exit(i32 noundef 1) #12
  unreachable

778:                                              ; preds = %752
  store i32 0, ptr %122, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #9
  store i32 0, ptr %480, align 4, !tbaa !5
  %779 = load i32, ptr @test_count, align 4, !tbaa !5
  %780 = add nsw i32 %779, 1
  store i32 %780, ptr @test_count, align 4, !tbaa !5
  %781 = call i32 @reset_stuffers(ptr noundef nonnull %194, ptr noundef nonnull %257)
  %782 = icmp eq i32 %781, -1
  br i1 %782, label %783, label %805

783:                                              ; preds = %778
  %784 = load i32, ptr %480, align 4, !tbaa !5
  %785 = load ptr, ptr @stderr, align 8, !tbaa !9
  %786 = call i32 @s2n_print_stacktrace(ptr noundef %785) #9
  %787 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %788 = trunc nuw i8 %787 to i1
  br i1 %788, label %789, label %793

789:                                              ; preds = %783
  %790 = load ptr, ptr @stderr, align 8, !tbaa !9
  %791 = call i32 @fileno(ptr noundef %790) #9
  %792 = call i32 @isatty(i32 noundef %791) #9
  %.not297 = icmp eq i32 %792, 0
  br i1 %.not297, label %793, label %794

793:                                              ; preds = %789, %783
  br label %794

794:                                              ; preds = %789, %793
  %.str.5.sink651 = phi ptr [ @.str.5, %793 ], [ @.str.2, %789 ]
  store i32 %784, ptr %480, align 4, !tbaa !5
  %795 = load ptr, ptr @stderr, align 8, !tbaa !9
  %796 = load i32, ptr @test_count, align 4, !tbaa !5
  %797 = load i32, ptr %122, align 4, !tbaa !5
  %798 = call ptr @s2n_strerror(i32 noundef %797, ptr noundef nonnull @.str.4) #9
  %799 = load i32, ptr %122, align 4, !tbaa !5
  %800 = call ptr @s2n_strerror_debug(i32 noundef %799, ptr noundef nonnull @.str.4) #9
  %801 = load i32, ptr %480, align 4, !tbaa !5
  %802 = call ptr @strerror(i32 noundef %801) #9
  %803 = load i32, ptr %480, align 4, !tbaa !5
  %804 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %795, ptr noundef nonnull %.str.5.sink651, i32 noundef %796, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 86, ptr noundef %798, ptr noundef %800, ptr noundef %802, i32 noundef %803) #11
  call void @exit(i32 noundef 1) #12
  unreachable

805:                                              ; preds = %778
  %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 i32 @s2n_stuffer_copy(ptr noundef nonnull %194, ptr noundef nonnull %257, i32 noundef %163) #9
  %809 = icmp eq i32 %808, -1
  br i1 %809, label %810, label %832

810:                                              ; preds = %805
  %811 = load i32, ptr %480, align 4, !tbaa !5
  %812 = load ptr, ptr @stderr, align 8, !tbaa !9
  %813 = call i32 @s2n_print_stacktrace(ptr noundef %812) #9
  %814 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %815 = trunc nuw i8 %814 to i1
  br i1 %815, label %816, label %820

816:                                              ; preds = %810
  %817 = load ptr, ptr @stderr, align 8, !tbaa !9
  %818 = call i32 @fileno(ptr noundef %817) #9
  %819 = call i32 @isatty(i32 noundef %818) #9
  %.not296 = icmp eq i32 %819, 0
  br i1 %.not296, label %820, label %821

820:                                              ; preds = %816, %810
  br label %821

821:                                              ; preds = %816, %820
  %.str.5.sink660 = phi ptr [ @.str.5, %820 ], [ @.str.2, %816 ]
  store i32 %811, ptr %480, align 4, !tbaa !5
  %822 = load ptr, ptr @stderr, align 8, !tbaa !9
  %823 = load i32, ptr @test_count, align 4, !tbaa !5
  %824 = load i32, ptr %122, align 4, !tbaa !5
  %825 = call ptr @s2n_strerror(i32 noundef %824, ptr noundef nonnull @.str.4) #9
  %826 = load i32, ptr %122, align 4, !tbaa !5
  %827 = call ptr @s2n_strerror_debug(i32 noundef %826, ptr noundef nonnull @.str.4) #9
  %828 = load i32, ptr %480, align 4, !tbaa !5
  %829 = call ptr @strerror(i32 noundef %828) #9
  %830 = load i32, ptr %480, align 4, !tbaa !5
  %831 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %822, ptr noundef nonnull %.str.5.sink660, i32 noundef %823, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 87, ptr noundef %825, ptr noundef %827, ptr noundef %829, i32 noundef %830) #11
  call void @exit(i32 noundef 1) #12
  unreachable

832:                                              ; preds = %805
  %833 = getelementptr inbounds i8, ptr %226, i64 2120
  %834 = load i8, ptr %833, align 8, !tbaa !16
  %835 = xor i8 %834, 1
  store i8 %835, ptr %833, align 8, !tbaa !16
  %836 = load i32, ptr @test_count, align 4, !tbaa !5
  %837 = add nsw i32 %836, 1
  store i32 %837, ptr @test_count, align 4, !tbaa !5
  %838 = call i32 @s2n_tls13_client_finished_recv(ptr noundef nonnull %226) #9
  %839 = icmp eq i32 %838, -1
  br i1 %839, label %862, label %840

840:                                              ; preds = %832
  %841 = load i32, ptr %480, align 4, !tbaa !5
  %842 = load ptr, ptr @stderr, align 8, !tbaa !9
  %843 = call i32 @s2n_print_stacktrace(ptr noundef %842) #9
  %844 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %845 = trunc nuw i8 %844 to i1
  br i1 %845, label %846, label %850

846:                                              ; preds = %840
  %847 = load ptr, ptr @stderr, align 8, !tbaa !9
  %848 = call i32 @fileno(ptr noundef %847) #9
  %849 = call i32 @isatty(i32 noundef %848) #9
  %.not291 = icmp eq i32 %849, 0
  br i1 %.not291, label %850, label %851

850:                                              ; preds = %846, %840
  br label %851

851:                                              ; preds = %846, %850
  %.str.5.sink669 = phi ptr [ @.str.5, %850 ], [ @.str.2, %846 ]
  store i32 %841, ptr %480, align 4, !tbaa !5
  %852 = load ptr, ptr @stderr, align 8, !tbaa !9
  %853 = load i32, ptr @test_count, align 4, !tbaa !5
  %854 = load i32, ptr %122, align 4, !tbaa !5
  %855 = call ptr @s2n_strerror(i32 noundef %854, ptr noundef nonnull @.str.4) #9
  %856 = load i32, ptr %122, align 4, !tbaa !5
  %857 = call ptr @s2n_strerror_debug(i32 noundef %856, ptr noundef nonnull @.str.4) #9
  %858 = load i32, ptr %480, align 4, !tbaa !5
  %859 = call ptr @strerror(i32 noundef %858) #9
  %860 = load i32, ptr %480, align 4, !tbaa !5
  %861 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %852, ptr noundef nonnull %.str.5.sink669, i32 noundef %853, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 89, ptr noundef %855, ptr noundef %857, ptr noundef %859, i32 noundef %860) #11
  call void @exit(i32 noundef 1) #12
  unreachable

862:                                              ; preds = %832
  %863 = load i32, ptr @test_count, align 4, !tbaa !5
  %864 = add nsw i32 %863, 1
  store i32 %864, ptr @test_count, align 4, !tbaa !5
  %865 = load i32, ptr %122, align 4, !tbaa !5
  %866 = icmp eq i32 %865, 0
  br i1 %866, label %867, label %889

867:                                              ; preds = %862
  %868 = load i32, ptr %480, align 4, !tbaa !5
  %869 = load ptr, ptr @stderr, align 8, !tbaa !9
  %870 = call i32 @s2n_print_stacktrace(ptr noundef %869) #9
  %871 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %872 = trunc nuw i8 %871 to i1
  br i1 %872, label %873, label %877

873:                                              ; preds = %867
  %874 = load ptr, ptr @stderr, align 8, !tbaa !9
  %875 = call i32 @fileno(ptr noundef %874) #9
  %876 = call i32 @isatty(i32 noundef %875) #9
  %.not295 = icmp eq i32 %876, 0
  br i1 %.not295, label %877, label %878

877:                                              ; preds = %873, %867
  br label %878

878:                                              ; preds = %873, %877
  %.str.5.sink678 = phi ptr [ @.str.5, %877 ], [ @.str.2, %873 ]
  store i32 %868, ptr %480, align 4, !tbaa !5
  %879 = load ptr, ptr @stderr, align 8, !tbaa !9
  %880 = load i32, ptr @test_count, align 4, !tbaa !5
  %881 = load i32, ptr %122, align 4, !tbaa !5
  %882 = call ptr @s2n_strerror(i32 noundef %881, ptr noundef nonnull @.str.4) #9
  %883 = load i32, ptr %122, align 4, !tbaa !5
  %884 = call ptr @s2n_strerror_debug(i32 noundef %883, ptr noundef nonnull @.str.4) #9
  %885 = load i32, ptr %480, align 4, !tbaa !5
  %886 = call ptr @strerror(i32 noundef %885) #9
  %887 = load i32, ptr %480, align 4, !tbaa !5
  %888 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %879, ptr noundef nonnull %.str.5.sink678, i32 noundef %880, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 89, ptr noundef %882, ptr noundef %884, ptr noundef %886, i32 noundef %887) #11
  call void @exit(i32 noundef 1) #12
  unreachable

889:                                              ; preds = %862
  %890 = add nsw i32 %863, 2
  store i32 %890, ptr @test_count, align 4, !tbaa !5
  %891 = call ptr @s2n_strerror_debug(i32 noundef %865, ptr noundef nonnull @.str.4) #9
  %892 = icmp eq ptr %891, null
  br i1 %892, label %893, label %915

893:                                              ; preds = %889
  %894 = load i32, ptr %480, align 4, !tbaa !5
  %895 = load ptr, ptr @stderr, align 8, !tbaa !9
  %896 = call i32 @s2n_print_stacktrace(ptr noundef %895) #9
  %897 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %898 = trunc nuw i8 %897 to i1
  br i1 %898, label %899, label %903

899:                                              ; preds = %893
  %900 = load ptr, ptr @stderr, align 8, !tbaa !9
  %901 = call i32 @fileno(ptr noundef %900) #9
  %902 = call i32 @isatty(i32 noundef %901) #9
  %.not294 = icmp eq i32 %902, 0
  br i1 %.not294, label %903, label %904

903:                                              ; preds = %899, %893
  br label %904

904:                                              ; preds = %899, %903
  %.str.5.sink687 = phi ptr [ @.str.5, %903 ], [ @.str.2, %899 ]
  store i32 %894, ptr %480, align 4, !tbaa !5
  %905 = load ptr, ptr @stderr, align 8, !tbaa !9
  %906 = load i32, ptr @test_count, align 4, !tbaa !5
  %907 = load i32, ptr %122, align 4, !tbaa !5
  %908 = call ptr @s2n_strerror(i32 noundef %907, ptr noundef nonnull @.str.4) #9
  %909 = load i32, ptr %122, align 4, !tbaa !5
  %910 = call ptr @s2n_strerror_debug(i32 noundef %909, ptr noundef nonnull @.str.4) #9
  %911 = load i32, ptr %480, align 4, !tbaa !5
  %912 = call ptr @strerror(i32 noundef %911) #9
  %913 = load i32, ptr %480, align 4, !tbaa !5
  %914 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %905, ptr noundef nonnull %.str.5.sink687, i32 noundef %906, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 89, ptr noundef %908, ptr noundef %910, ptr noundef %912, i32 noundef %913) #11
  call void @exit(i32 noundef 1) #12
  unreachable

915:                                              ; preds = %889
  store i32 0, ptr %122, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #9
  store i32 0, ptr %480, align 4, !tbaa !5
  %916 = load i32, ptr @test_count, align 4, !tbaa !5
  %917 = add nsw i32 %916, 1
  store i32 %917, ptr @test_count, align 4, !tbaa !5
  %918 = call i32 @s2n_connection_free(ptr noundef nonnull %226) #9
  %919 = icmp eq i32 %918, -1
  br i1 %919, label %920, label %942

920:                                              ; preds = %915
  %921 = load i32, ptr %480, align 4, !tbaa !5
  %922 = load ptr, ptr @stderr, align 8, !tbaa !9
  %923 = call i32 @s2n_print_stacktrace(ptr noundef %922) #9
  %924 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %925 = trunc nuw i8 %924 to i1
  br i1 %925, label %926, label %930

926:                                              ; preds = %920
  %927 = load ptr, ptr @stderr, align 8, !tbaa !9
  %928 = call i32 @fileno(ptr noundef %927) #9
  %929 = call i32 @isatty(i32 noundef %928) #9
  %.not293 = icmp eq i32 %929, 0
  br i1 %.not293, label %930, label %931

930:                                              ; preds = %926, %920
  br label %931

931:                                              ; preds = %926, %930
  %.str.5.sink696 = phi ptr [ @.str.5, %930 ], [ @.str.2, %926 ]
  store i32 %921, ptr %480, align 4, !tbaa !5
  %932 = load ptr, ptr @stderr, align 8, !tbaa !9
  %933 = load i32, ptr @test_count, align 4, !tbaa !5
  %934 = load i32, ptr %122, align 4, !tbaa !5
  %935 = call ptr @s2n_strerror(i32 noundef %934, ptr noundef nonnull @.str.4) #9
  %936 = load i32, ptr %122, align 4, !tbaa !5
  %937 = call ptr @s2n_strerror_debug(i32 noundef %936, ptr noundef nonnull @.str.4) #9
  %938 = load i32, ptr %480, align 4, !tbaa !5
  %939 = call ptr @strerror(i32 noundef %938) #9
  %940 = load i32, ptr %480, align 4, !tbaa !5
  %941 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %932, ptr noundef nonnull %.str.5.sink696, i32 noundef %933, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 91, ptr noundef %935, ptr noundef %937, ptr noundef %939, i32 noundef %940) #11
  call void @exit(i32 noundef 1) #12
  unreachable

942:                                              ; preds = %915
  %943 = load i32, ptr @test_count, align 4, !tbaa !5
  %944 = add nsw i32 %943, 1
  store i32 %944, ptr @test_count, align 4, !tbaa !5
  %945 = call i32 @s2n_connection_free(ptr noundef nonnull %132) #9
  %946 = icmp eq i32 %945, -1
  br i1 %946, label %947, label %123

947:                                              ; preds = %942
  %948 = load i32, ptr %480, align 4, !tbaa !5
  %949 = load ptr, ptr @stderr, align 8, !tbaa !9
  %950 = call i32 @s2n_print_stacktrace(ptr noundef %949) #9
  %951 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %952 = trunc nuw i8 %951 to i1
  br i1 %952, label %953, label %957

953:                                              ; preds = %947
  %954 = load ptr, ptr @stderr, align 8, !tbaa !9
  %955 = call i32 @fileno(ptr noundef %954) #9
  %956 = call i32 @isatty(i32 noundef %955) #9
  %.not292 = icmp eq i32 %956, 0
  br i1 %.not292, label %957, label %958

957:                                              ; preds = %953, %947
  br label %958

958:                                              ; preds = %953, %957
  %.str.5.sink705 = phi ptr [ @.str.5, %957 ], [ @.str.2, %953 ]
  store i32 %948, ptr %480, align 4, !tbaa !5
  %959 = load ptr, ptr @stderr, align 8, !tbaa !9
  %960 = load i32, ptr @test_count, align 4, !tbaa !5
  %961 = load i32, ptr %122, align 4, !tbaa !5
  %962 = call ptr @s2n_strerror(i32 noundef %961, ptr noundef nonnull @.str.4) #9
  %963 = load i32, ptr %122, align 4, !tbaa !5
  %964 = call ptr @s2n_strerror_debug(i32 noundef %963, ptr noundef nonnull @.str.4) #9
  %965 = load i32, ptr %480, align 4, !tbaa !5
  %966 = call ptr @strerror(i32 noundef %965) #9
  %967 = load i32, ptr %480, align 4, !tbaa !5
  %968 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %959, ptr noundef nonnull %.str.5.sink705, i32 noundef %960, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 92, ptr noundef %962, ptr noundef %964, ptr noundef %966, i32 noundef %967) #11
  call void @exit(i32 noundef 1) #12
  unreachable

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

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

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

980:                                              ; preds = %975, %979
  %.str.5.sink714 = phi ptr [ @.str.5, %979 ], [ @.str.2, %975 ]
  store i32 %970, ptr %480, align 4, !tbaa !5
  %981 = load ptr, ptr @stderr, align 8, !tbaa !9
  %982 = load i32, ptr @test_count, align 4, !tbaa !5
  %983 = load i32, ptr %122, align 4, !tbaa !5
  %984 = call ptr @s2n_strerror(i32 noundef %983, ptr noundef nonnull @.str.4) #9
  %985 = load i32, ptr %122, align 4, !tbaa !5
  %986 = call ptr @s2n_strerror_debug(i32 noundef %985, ptr noundef nonnull @.str.4) #9
  %987 = load i32, ptr %480, align 4, !tbaa !5
  %988 = call ptr @strerror(i32 noundef %987) #9
  %989 = load i32, ptr %480, align 4, !tbaa !5
  %990 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %981, ptr noundef nonnull %.str.5.sink714, i32 noundef %982, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 99, ptr noundef %984, ptr noundef %986, ptr noundef %988, i32 noundef %989) #11
  call void @exit(i32 noundef 1) #12
  unreachable

991:                                              ; preds = %124
  %992 = getelementptr inbounds i8, ptr %127, i64 232
  %993 = load ptr, ptr %992, align 8, !tbaa !46
  store ptr @s2n_tls13_aes_256_gcm_sha384, ptr %993, align 8, !tbaa !47
  %994 = load i32, ptr @test_count, align 4, !tbaa !5
  %995 = add nsw i32 %994, 1
  store i32 %995, ptr @test_count, align 4, !tbaa !5
  %996 = call i32 @s2n_tls13_client_finished_send(ptr noundef nonnull %127) #9
  %997 = icmp eq i32 %996, -1
  br i1 %997, label %1020, label %998

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

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

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

1009:                                             ; preds = %1004, %1008
  %.str.5.sink723 = phi ptr [ @.str.5, %1008 ], [ @.str.2, %1004 ]
  store i32 %999, ptr %480, align 4, !tbaa !5
  %1010 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1011 = load i32, ptr @test_count, align 4, !tbaa !5
  %1012 = load i32, ptr %122, align 4, !tbaa !5
  %1013 = call ptr @s2n_strerror(i32 noundef %1012, ptr noundef nonnull @.str.4) #9
  %1014 = load i32, ptr %122, align 4, !tbaa !5
  %1015 = call ptr @s2n_strerror_debug(i32 noundef %1014, ptr noundef nonnull @.str.4) #9
  %1016 = load i32, ptr %480, align 4, !tbaa !5
  %1017 = call ptr @strerror(i32 noundef %1016) #9
  %1018 = load i32, ptr %480, align 4, !tbaa !5
  %1019 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1010, ptr noundef nonnull %.str.5.sink723, i32 noundef %1011, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 102, ptr noundef %1013, ptr noundef %1015, ptr noundef %1017, i32 noundef %1018) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1020:                                             ; preds = %991
  %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 i32, ptr %122, align 4, !tbaa !5
  %1024 = icmp eq i32 %1023, 0
  br i1 %1024, label %1025, label %1047

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

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

1035:                                             ; preds = %1031, %1025
  br label %1036

1036:                                             ; preds = %1031, %1035
  %.str.5.sink732 = phi ptr [ @.str.5, %1035 ], [ @.str.2, %1031 ]
  store i32 %1026, ptr %480, align 4, !tbaa !5
  %1037 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1038 = load i32, ptr @test_count, align 4, !tbaa !5
  %1039 = load i32, ptr %122, align 4, !tbaa !5
  %1040 = call ptr @s2n_strerror(i32 noundef %1039, ptr noundef nonnull @.str.4) #9
  %1041 = load i32, ptr %122, align 4, !tbaa !5
  %1042 = call ptr @s2n_strerror_debug(i32 noundef %1041, ptr noundef nonnull @.str.4) #9
  %1043 = load i32, ptr %480, align 4, !tbaa !5
  %1044 = call ptr @strerror(i32 noundef %1043) #9
  %1045 = load i32, ptr %480, align 4, !tbaa !5
  %1046 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1037, ptr noundef nonnull %.str.5.sink732, i32 noundef %1038, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 102, ptr noundef %1040, ptr noundef %1042, ptr noundef %1044, i32 noundef %1045) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1047:                                             ; preds = %1020
  %1048 = add nsw i32 %1021, 2
  store i32 %1048, ptr @test_count, align 4, !tbaa !5
  %1049 = call ptr @s2n_strerror_debug(i32 noundef %1023, ptr noundef nonnull @.str.4) #9
  %1050 = icmp eq ptr %1049, null
  br i1 %1050, label %1051, label %1073

1051:                                             ; preds = %1047
  %1052 = load i32, ptr %480, align 4, !tbaa !5
  %1053 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1054 = call i32 @s2n_print_stacktrace(ptr noundef %1053) #9
  %1055 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1056 = trunc nuw i8 %1055 to i1
  br i1 %1056, label %1057, label %1061

1057:                                             ; preds = %1051
  %1058 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1059 = call i32 @fileno(ptr noundef %1058) #9
  %1060 = call i32 @isatty(i32 noundef %1059) #9
  %.not284 = icmp eq i32 %1060, 0
  br i1 %.not284, label %1061, label %1062

1061:                                             ; preds = %1057, %1051
  br label %1062

1062:                                             ; preds = %1057, %1061
  %.str.5.sink741 = phi ptr [ @.str.5, %1061 ], [ @.str.2, %1057 ]
  store i32 %1052, ptr %480, align 4, !tbaa !5
  %1063 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1064 = load i32, ptr @test_count, align 4, !tbaa !5
  %1065 = load i32, ptr %122, align 4, !tbaa !5
  %1066 = call ptr @s2n_strerror(i32 noundef %1065, ptr noundef nonnull @.str.4) #9
  %1067 = load i32, ptr %122, align 4, !tbaa !5
  %1068 = call ptr @s2n_strerror_debug(i32 noundef %1067, ptr noundef nonnull @.str.4) #9
  %1069 = load i32, ptr %480, align 4, !tbaa !5
  %1070 = call ptr @strerror(i32 noundef %1069) #9
  %1071 = load i32, ptr %480, align 4, !tbaa !5
  %1072 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1063, ptr noundef nonnull %.str.5.sink741, i32 noundef %1064, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 102, ptr noundef %1066, ptr noundef %1068, ptr noundef %1070, i32 noundef %1071) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1073:                                             ; preds = %1047
  store i32 0, ptr %122, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #9
  store i32 0, ptr %480, align 4, !tbaa !5
  %1074 = getelementptr inbounds i8, ptr %127, i64 220
  store i8 34, ptr %1074, align 4, !tbaa !19
  %1075 = load i32, ptr @test_count, align 4, !tbaa !5
  %1076 = add nsw i32 %1075, 1
  store i32 %1076, ptr @test_count, align 4, !tbaa !5
  %1077 = call i32 @s2n_tls13_client_finished_send(ptr noundef nonnull %127) #9
  %1078 = icmp eq i32 %1077, -1
  br i1 %1078, label %1079, label %1101

1079:                                             ; preds = %1073
  %1080 = load i32, ptr %480, align 4, !tbaa !5
  %1081 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1082 = call i32 @s2n_print_stacktrace(ptr noundef %1081) #9
  %1083 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1084 = trunc nuw i8 %1083 to i1
  br i1 %1084, label %1085, label %1089

1085:                                             ; preds = %1079
  %1086 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1087 = call i32 @fileno(ptr noundef %1086) #9
  %1088 = call i32 @isatty(i32 noundef %1087) #9
  %.not283 = icmp eq i32 %1088, 0
  br i1 %.not283, label %1089, label %1090

1089:                                             ; preds = %1085, %1079
  br label %1090

1090:                                             ; preds = %1085, %1089
  %.str.5.sink750 = phi ptr [ @.str.5, %1089 ], [ @.str.2, %1085 ]
  store i32 %1080, ptr %480, align 4, !tbaa !5
  %1091 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1092 = load i32, ptr @test_count, align 4, !tbaa !5
  %1093 = load i32, ptr %122, align 4, !tbaa !5
  %1094 = call ptr @s2n_strerror(i32 noundef %1093, ptr noundef nonnull @.str.4) #9
  %1095 = load i32, ptr %122, align 4, !tbaa !5
  %1096 = call ptr @s2n_strerror_debug(i32 noundef %1095, ptr noundef nonnull @.str.4) #9
  %1097 = load i32, ptr %480, align 4, !tbaa !5
  %1098 = call ptr @strerror(i32 noundef %1097) #9
  %1099 = load i32, ptr %480, align 4, !tbaa !5
  %1100 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1091, ptr noundef nonnull %.str.5.sink750, i32 noundef %1092, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 106, ptr noundef %1094, ptr noundef %1096, ptr noundef %1098, i32 noundef %1099) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1101:                                             ; preds = %1073
  %1102 = load i32, ptr @test_count, align 4, !tbaa !5
  %1103 = add nsw i32 %1102, 1
  store i32 %1103, ptr @test_count, align 4, !tbaa !5
  %1104 = getelementptr inbounds i8, ptr %127, i64 2016
  %1105 = getelementptr inbounds i8, ptr %127, i64 2044
  %1106 = load i32, ptr %1105, align 4, !tbaa !52
  %1107 = getelementptr inbounds i8, ptr %127, i64 2040
  %1108 = load i32, ptr %1107, align 8, !tbaa !53
  %1109 = sub i32 %1106, %1108
  %1110 = icmp eq i32 %1109, 48
  br i1 %1110, label %1133, label %1111

1111:                                             ; preds = %1101
  %1112 = load i32, ptr %480, align 4, !tbaa !5
  %1113 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1114 = call i32 @s2n_print_stacktrace(ptr noundef %1113) #9
  %1115 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1116 = trunc nuw i8 %1115 to i1
  br i1 %1116, label %1117, label %1121

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

1121:                                             ; preds = %1117, %1111
  br label %1122

1122:                                             ; preds = %1117, %1121
  %.str.5.sink759 = phi ptr [ @.str.5, %1121 ], [ @.str.2, %1117 ]
  store i32 %1112, ptr %480, align 4, !tbaa !5
  %1123 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1124 = load i32, ptr @test_count, align 4, !tbaa !5
  %1125 = load i32, ptr %122, align 4, !tbaa !5
  %1126 = call ptr @s2n_strerror(i32 noundef %1125, ptr noundef nonnull @.str.4) #9
  %1127 = load i32, ptr %122, align 4, !tbaa !5
  %1128 = call ptr @s2n_strerror_debug(i32 noundef %1127, ptr noundef nonnull @.str.4) #9
  %1129 = load i32, ptr %480, align 4, !tbaa !5
  %1130 = call ptr @strerror(i32 noundef %1129) #9
  %1131 = load i32, ptr %480, align 4, !tbaa !5
  %1132 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1123, ptr noundef nonnull %.str.5.sink759, i32 noundef %1124, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 107, ptr noundef %1126, ptr noundef %1128, ptr noundef %1130, i32 noundef %1131) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1133:                                             ; preds = %1101
  %1134 = add nsw i32 %1102, 2
  store i32 %1134, ptr @test_count, align 4, !tbaa !5
  %1135 = call ptr @s2n_connection_new(i32 noundef 1) #9
  %1136 = icmp eq ptr %1135, null
  br i1 %1136, label %1137, label %1159

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

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

1147:                                             ; preds = %1143, %1137
  br label %1148

1148:                                             ; preds = %1143, %1147
  %.str.5.sink768 = phi ptr [ @.str.5, %1147 ], [ @.str.2, %1143 ]
  store i32 %1138, ptr %480, align 4, !tbaa !5
  %1149 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1150 = load i32, ptr @test_count, align 4, !tbaa !5
  %1151 = load i32, ptr %122, align 4, !tbaa !5
  %1152 = call ptr @s2n_strerror(i32 noundef %1151, ptr noundef nonnull @.str.4) #9
  %1153 = load i32, ptr %122, align 4, !tbaa !5
  %1154 = call ptr @s2n_strerror_debug(i32 noundef %1153, ptr noundef nonnull @.str.4) #9
  %1155 = load i32, ptr %480, align 4, !tbaa !5
  %1156 = call ptr @strerror(i32 noundef %1155) #9
  %1157 = load i32, ptr %480, align 4, !tbaa !5
  %1158 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1149, ptr noundef nonnull %.str.5.sink768, i32 noundef %1150, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 110, ptr noundef %1152, ptr noundef %1154, ptr noundef %1156, i32 noundef %1157) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1159:                                             ; preds = %1133
  %1160 = getelementptr inbounds i8, ptr %1135, i64 232
  %1161 = load ptr, ptr %1160, align 8, !tbaa !46
  store ptr @s2n_tls13_aes_256_gcm_sha384, ptr %1161, align 8, !tbaa !47
  %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 = getelementptr inbounds i8, ptr %1135, i64 2016
  %1165 = call i32 @s2n_stuffer_copy(ptr noundef nonnull %1104, ptr noundef nonnull %1164, i32 noundef 48) #9
  %1166 = icmp eq i32 %1165, -1
  br i1 %1166, label %1167, label %1189

1167:                                             ; preds = %1159
  %1168 = load i32, ptr %480, align 4, !tbaa !5
  %1169 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1170 = call i32 @s2n_print_stacktrace(ptr noundef %1169) #9
  %1171 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1172 = trunc nuw i8 %1171 to i1
  br i1 %1172, label %1173, label %1177

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

1177:                                             ; preds = %1173, %1167
  br label %1178

1178:                                             ; preds = %1173, %1177
  %.str.5.sink777 = phi ptr [ @.str.5, %1177 ], [ @.str.2, %1173 ]
  store i32 %1168, ptr %480, align 4, !tbaa !5
  %1179 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1180 = load i32, ptr @test_count, align 4, !tbaa !5
  %1181 = load i32, ptr %122, align 4, !tbaa !5
  %1182 = call ptr @s2n_strerror(i32 noundef %1181, ptr noundef nonnull @.str.4) #9
  %1183 = load i32, ptr %122, align 4, !tbaa !5
  %1184 = call ptr @s2n_strerror_debug(i32 noundef %1183, ptr noundef nonnull @.str.4) #9
  %1185 = load i32, ptr %480, align 4, !tbaa !5
  %1186 = call ptr @strerror(i32 noundef %1185) #9
  %1187 = load i32, ptr %480, align 4, !tbaa !5
  %1188 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1179, ptr noundef nonnull %.str.5.sink777, i32 noundef %1180, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 113, ptr noundef %1182, ptr noundef %1184, ptr noundef %1186, i32 noundef %1187) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1189:                                             ; preds = %1159
  %1190 = load i32, ptr @test_count, align 4, !tbaa !5
  %1191 = add nsw i32 %1190, 1
  store i32 %1191, ptr @test_count, align 4, !tbaa !5
  %1192 = call i32 @s2n_tls13_client_finished_recv(ptr noundef nonnull %1135) #9
  %1193 = icmp eq i32 %1192, -1
  br i1 %1193, label %1216, label %1194

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

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

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

1205:                                             ; preds = %1200, %1204
  %.str.5.sink786 = phi ptr [ @.str.5, %1204 ], [ @.str.2, %1200 ]
  store i32 %1195, ptr %480, align 4, !tbaa !5
  %1206 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1207 = load i32, ptr @test_count, align 4, !tbaa !5
  %1208 = load i32, ptr %122, align 4, !tbaa !5
  %1209 = call ptr @s2n_strerror(i32 noundef %1208, ptr noundef nonnull @.str.4) #9
  %1210 = load i32, ptr %122, align 4, !tbaa !5
  %1211 = call ptr @s2n_strerror_debug(i32 noundef %1210, ptr noundef nonnull @.str.4) #9
  %1212 = load i32, ptr %480, align 4, !tbaa !5
  %1213 = call ptr @strerror(i32 noundef %1212) #9
  %1214 = load i32, ptr %480, align 4, !tbaa !5
  %1215 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1206, ptr noundef nonnull %.str.5.sink786, i32 noundef %1207, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 114, ptr noundef %1209, ptr noundef %1211, ptr noundef %1213, i32 noundef %1214) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1216:                                             ; preds = %1189
  %1217 = load i32, ptr @test_count, align 4, !tbaa !5
  %1218 = add nsw i32 %1217, 1
  store i32 %1218, ptr @test_count, align 4, !tbaa !5
  %1219 = load i32, ptr %122, align 4, !tbaa !5
  %1220 = icmp eq i32 %1219, 0
  br i1 %1220, label %1221, label %1243

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

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

1231:                                             ; preds = %1227, %1221
  br label %1232

1232:                                             ; preds = %1227, %1231
  %.str.5.sink795 = phi ptr [ @.str.5, %1231 ], [ @.str.2, %1227 ]
  store i32 %1222, ptr %480, align 4, !tbaa !5
  %1233 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1234 = load i32, ptr @test_count, align 4, !tbaa !5
  %1235 = load i32, ptr %122, align 4, !tbaa !5
  %1236 = call ptr @s2n_strerror(i32 noundef %1235, ptr noundef nonnull @.str.4) #9
  %1237 = load i32, ptr %122, align 4, !tbaa !5
  %1238 = call ptr @s2n_strerror_debug(i32 noundef %1237, ptr noundef nonnull @.str.4) #9
  %1239 = load i32, ptr %480, align 4, !tbaa !5
  %1240 = call ptr @strerror(i32 noundef %1239) #9
  %1241 = load i32, ptr %480, align 4, !tbaa !5
  %1242 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1233, ptr noundef nonnull %.str.5.sink795, i32 noundef %1234, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 114, ptr noundef %1236, ptr noundef %1238, ptr noundef %1240, i32 noundef %1241) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1243:                                             ; preds = %1216
  %1244 = add nsw i32 %1217, 2
  store i32 %1244, ptr @test_count, align 4, !tbaa !5
  %1245 = call ptr @s2n_strerror_debug(i32 noundef %1219, ptr noundef nonnull @.str.4) #9
  %1246 = icmp eq ptr %1245, null
  br i1 %1246, label %1247, label %1269

1247:                                             ; preds = %1243
  %1248 = load i32, ptr %480, align 4, !tbaa !5
  %1249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1250 = call i32 @s2n_print_stacktrace(ptr noundef %1249) #9
  %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 = %1247
  %1254 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1255 = call i32 @fileno(ptr noundef %1254) #9
  %1256 = call i32 @isatty(i32 noundef %1255) #9
  %.not279 = icmp eq i32 %1256, 0
  br i1 %.not279, label %1257, label %1258

1257:                                             ; preds = %1253, %1247
  br label %1258

1258:                                             ; preds = %1253, %1257
  %.str.5.sink804 = phi ptr [ @.str.5, %1257 ], [ @.str.2, %1253 ]
  store i32 %1248, ptr %480, 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 %122, align 4, !tbaa !5
  %1262 = call ptr @s2n_strerror(i32 noundef %1261, ptr noundef nonnull @.str.4) #9
  %1263 = load i32, ptr %122, align 4, !tbaa !5
  %1264 = call ptr @s2n_strerror_debug(i32 noundef %1263, ptr noundef nonnull @.str.4) #9
  %1265 = load i32, ptr %480, align 4, !tbaa !5
  %1266 = call ptr @strerror(i32 noundef %1265) #9
  %1267 = load i32, ptr %480, align 4, !tbaa !5
  %1268 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1259, ptr noundef nonnull %.str.5.sink804, i32 noundef %1260, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 114, ptr noundef %1262, ptr noundef %1264, ptr noundef %1266, i32 noundef %1267) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1269:                                             ; preds = %1243
  store i32 0, ptr %122, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #9
  store i32 0, ptr %480, align 4, !tbaa !5
  %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 = call i32 @s2n_connection_free(ptr noundef nonnull %1135) #9
  %1273 = icmp eq i32 %1272, -1
  br i1 %1273, label %1274, label %1296

1274:                                             ; preds = %1269
  %1275 = load i32, ptr %480, align 4, !tbaa !5
  %1276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1277 = call i32 @s2n_print_stacktrace(ptr noundef %1276) #9
  %1278 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1279 = trunc nuw i8 %1278 to i1
  br i1 %1279, label %1280, label %1284

1280:                                             ; preds = %1274
  %1281 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1282 = call i32 @fileno(ptr noundef %1281) #9
  %1283 = call i32 @isatty(i32 noundef %1282) #9
  %.not278 = icmp eq i32 %1283, 0
  br i1 %.not278, label %1284, label %1285

1284:                                             ; preds = %1280, %1274
  br label %1285

1285:                                             ; preds = %1280, %1284
  %.str.5.sink813 = phi ptr [ @.str.5, %1284 ], [ @.str.2, %1280 ]
  store i32 %1275, ptr %480, align 4, !tbaa !5
  %1286 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1287 = load i32, ptr @test_count, align 4, !tbaa !5
  %1288 = load i32, ptr %122, align 4, !tbaa !5
  %1289 = call ptr @s2n_strerror(i32 noundef %1288, ptr noundef nonnull @.str.4) #9
  %1290 = load i32, ptr %122, align 4, !tbaa !5
  %1291 = call ptr @s2n_strerror_debug(i32 noundef %1290, ptr noundef nonnull @.str.4) #9
  %1292 = load i32, ptr %480, align 4, !tbaa !5
  %1293 = call ptr @strerror(i32 noundef %1292) #9
  %1294 = load i32, ptr %480, align 4, !tbaa !5
  %1295 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1286, ptr noundef nonnull %.str.5.sink813, i32 noundef %1287, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 116, ptr noundef %1289, ptr noundef %1291, ptr noundef %1293, i32 noundef %1294) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1296:                                             ; preds = %1269
  %1297 = load i32, ptr @test_count, align 4, !tbaa !5
  %1298 = add nsw i32 %1297, 1
  store i32 %1298, ptr @test_count, align 4, !tbaa !5
  %1299 = call i32 @s2n_connection_free(ptr noundef nonnull %127) #9
  %1300 = icmp eq i32 %1299, -1
  br i1 %1300, label %1301, label %1323

1301:                                             ; preds = %1296
  %1302 = load i32, ptr %480, align 4, !tbaa !5
  %1303 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1304 = call i32 @s2n_print_stacktrace(ptr noundef %1303) #9
  %1305 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1306 = trunc nuw i8 %1305 to i1
  br i1 %1306, label %1307, label %1311

1307:                                             ; preds = %1301
  %1308 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1309 = call i32 @fileno(ptr noundef %1308) #9
  %1310 = call i32 @isatty(i32 noundef %1309) #9
  %.not277 = icmp eq i32 %1310, 0
  br i1 %.not277, label %1311, label %1312

1311:                                             ; preds = %1307, %1301
  br label %1312

1312:                                             ; preds = %1307, %1311
  %.str.5.sink822 = phi ptr [ @.str.5, %1311 ], [ @.str.2, %1307 ]
  store i32 %1302, ptr %480, align 4, !tbaa !5
  %1313 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1314 = load i32, ptr @test_count, align 4, !tbaa !5
  %1315 = load i32, ptr %122, align 4, !tbaa !5
  %1316 = call ptr @s2n_strerror(i32 noundef %1315, ptr noundef nonnull @.str.4) #9
  %1317 = load i32, ptr %122, align 4, !tbaa !5
  %1318 = call ptr @s2n_strerror_debug(i32 noundef %1317, ptr noundef nonnull @.str.4) #9
  %1319 = load i32, ptr %480, align 4, !tbaa !5
  %1320 = call ptr @strerror(i32 noundef %1319) #9
  %1321 = load i32, ptr %480, align 4, !tbaa !5
  %1322 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1313, ptr noundef nonnull %.str.5.sink822, i32 noundef %1314, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 117, ptr noundef %1316, ptr noundef %1318, ptr noundef %1320, i32 noundef %1321) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1323:                                             ; preds = %1296
  %1324 = load i32, ptr @test_count, align 4, !tbaa !5
  %1325 = add nsw i32 %1324, 1
  store i32 %1325, ptr @test_count, align 4, !tbaa !5
  %1326 = call ptr @s2n_connection_new(i32 noundef 1) #9
  %1327 = icmp eq ptr %1326, null
  br i1 %1327, label %1328, label %1350

1328:                                             ; preds = %1323
  %1329 = load i32, ptr %480, align 4, !tbaa !5
  %1330 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1331 = call i32 @s2n_print_stacktrace(ptr noundef %1330) #9
  %1332 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1333 = trunc nuw i8 %1332 to i1
  br i1 %1333, label %1334, label %1338

1334:                                             ; preds = %1328
  %1335 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1336 = call i32 @fileno(ptr noundef %1335) #9
  %1337 = call i32 @isatty(i32 noundef %1336) #9
  %.not276 = icmp eq i32 %1337, 0
  br i1 %.not276, label %1338, label %1339

1338:                                             ; preds = %1334, %1328
  br label %1339

1339:                                             ; preds = %1334, %1338
  %.str.5.sink831 = phi ptr [ @.str.5, %1338 ], [ @.str.2, %1334 ]
  store i32 %1329, ptr %480, align 4, !tbaa !5
  %1340 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1341 = load i32, ptr @test_count, align 4, !tbaa !5
  %1342 = load i32, ptr %122, align 4, !tbaa !5
  %1343 = call ptr @s2n_strerror(i32 noundef %1342, ptr noundef nonnull @.str.4) #9
  %1344 = load i32, ptr %122, align 4, !tbaa !5
  %1345 = call ptr @s2n_strerror_debug(i32 noundef %1344, ptr noundef nonnull @.str.4) #9
  %1346 = load i32, ptr %480, align 4, !tbaa !5
  %1347 = call ptr @strerror(i32 noundef %1346) #9
  %1348 = load i32, ptr %480, align 4, !tbaa !5
  %1349 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1340, ptr noundef nonnull %.str.5.sink831, i32 noundef %1341, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 123, ptr noundef %1343, ptr noundef %1345, ptr noundef %1347, i32 noundef %1348) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1350:                                             ; preds = %1323
  %1351 = getelementptr inbounds i8, ptr %1326, i64 220
  store i8 34, ptr %1351, align 4, !tbaa !19
  %1352 = getelementptr inbounds i8, ptr %1326, i64 232
  %1353 = load ptr, ptr %1352, align 8, !tbaa !46
  store ptr @s2n_tls13_aes_128_gcm_sha256, ptr %1353, align 8, !tbaa !47
  %1354 = load i32, ptr @test_count, align 4, !tbaa !5
  %1355 = add nsw i32 %1354, 1
  store i32 %1355, ptr @test_count, align 4, !tbaa !5
  %1356 = call i32 @s2n_tls13_client_finished_send(ptr noundef nonnull %1326) #9
  %1357 = icmp eq i32 %1356, -1
  br i1 %1357, label %1358, label %1380

1358:                                             ; preds = %1350
  %1359 = load i32, ptr %480, align 4, !tbaa !5
  %1360 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1361 = call i32 @s2n_print_stacktrace(ptr noundef %1360) #9
  %1362 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1363 = trunc nuw i8 %1362 to i1
  br i1 %1363, label %1364, label %1368

1364:                                             ; preds = %1358
  %1365 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1366 = call i32 @fileno(ptr noundef %1365) #9
  %1367 = call i32 @isatty(i32 noundef %1366) #9
  %.not275 = icmp eq i32 %1367, 0
  br i1 %.not275, label %1368, label %1369

1368:                                             ; preds = %1364, %1358
  br label %1369

1369:                                             ; preds = %1364, %1368
  %.str.5.sink840 = phi ptr [ @.str.5, %1368 ], [ @.str.2, %1364 ]
  store i32 %1359, ptr %480, align 4, !tbaa !5
  %1370 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1371 = load i32, ptr @test_count, align 4, !tbaa !5
  %1372 = load i32, ptr %122, align 4, !tbaa !5
  %1373 = call ptr @s2n_strerror(i32 noundef %1372, ptr noundef nonnull @.str.4) #9
  %1374 = load i32, ptr %122, align 4, !tbaa !5
  %1375 = call ptr @s2n_strerror_debug(i32 noundef %1374, ptr noundef nonnull @.str.4) #9
  %1376 = load i32, ptr %480, align 4, !tbaa !5
  %1377 = call ptr @strerror(i32 noundef %1376) #9
  %1378 = load i32, ptr %480, align 4, !tbaa !5
  %1379 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1370, ptr noundef nonnull %.str.5.sink840, i32 noundef %1371, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 128, ptr noundef %1373, ptr noundef %1375, ptr noundef %1377, i32 noundef %1378) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1380:                                             ; preds = %1350
  %1381 = load i32, ptr @test_count, align 4, !tbaa !5
  %1382 = add nsw i32 %1381, 1
  store i32 %1382, ptr @test_count, align 4, !tbaa !5
  %1383 = getelementptr inbounds i8, ptr %1326, i64 2016
  %1384 = getelementptr inbounds i8, ptr %1326, i64 2044
  %1385 = load i32, ptr %1384, align 4, !tbaa !52
  %1386 = getelementptr inbounds i8, ptr %1326, i64 2040
  %1387 = load i32, ptr %1386, align 8, !tbaa !53
  %1388 = sub i32 %1385, %1387
  %1389 = icmp eq i32 %1388, 32
  br i1 %1389, label %1412, label %1390

1390:                                             ; preds = %1380
  %1391 = load i32, ptr %480, align 4, !tbaa !5
  %1392 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1393 = call i32 @s2n_print_stacktrace(ptr noundef %1392) #9
  %1394 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1395 = trunc nuw i8 %1394 to i1
  br i1 %1395, label %1396, label %1400

1396:                                             ; preds = %1390
  %1397 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1398 = call i32 @fileno(ptr noundef %1397) #9
  %1399 = call i32 @isatty(i32 noundef %1398) #9
  %.not250 = icmp eq i32 %1399, 0
  br i1 %.not250, label %1400, label %1401

1400:                                             ; preds = %1396, %1390
  br label %1401

1401:                                             ; preds = %1396, %1400
  %.str.5.sink849 = phi ptr [ @.str.5, %1400 ], [ @.str.2, %1396 ]
  store i32 %1391, ptr %480, align 4, !tbaa !5
  %1402 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1403 = load i32, ptr @test_count, align 4, !tbaa !5
  %1404 = load i32, ptr %122, align 4, !tbaa !5
  %1405 = call ptr @s2n_strerror(i32 noundef %1404, ptr noundef nonnull @.str.4) #9
  %1406 = load i32, ptr %122, align 4, !tbaa !5
  %1407 = call ptr @s2n_strerror_debug(i32 noundef %1406, ptr noundef nonnull @.str.4) #9
  %1408 = load i32, ptr %480, align 4, !tbaa !5
  %1409 = call ptr @strerror(i32 noundef %1408) #9
  %1410 = load i32, ptr %480, align 4, !tbaa !5
  %1411 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1402, ptr noundef nonnull %.str.5.sink849, i32 noundef %1403, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 129, ptr noundef %1405, ptr noundef %1407, ptr noundef %1409, i32 noundef %1410) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1412:                                             ; preds = %1380
  %1413 = add nsw i32 %1381, 2
  store i32 %1413, ptr @test_count, align 4, !tbaa !5
  %1414 = call ptr @s2n_connection_new(i32 noundef 1) #9
  %1415 = icmp eq ptr %1414, null
  br i1 %1415, label %1416, label %1438

1416:                                             ; preds = %1412
  %1417 = load i32, ptr %480, align 4, !tbaa !5
  %1418 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1419 = call i32 @s2n_print_stacktrace(ptr noundef %1418) #9
  %1420 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1421 = trunc nuw i8 %1420 to i1
  br i1 %1421, label %1422, label %1426

1422:                                             ; preds = %1416
  %1423 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1424 = call i32 @fileno(ptr noundef %1423) #9
  %1425 = call i32 @isatty(i32 noundef %1424) #9
  %.not274 = icmp eq i32 %1425, 0
  br i1 %.not274, label %1426, label %1427

1426:                                             ; preds = %1422, %1416
  br label %1427

1427:                                             ; preds = %1422, %1426
  %.str.5.sink858 = phi ptr [ @.str.5, %1426 ], [ @.str.2, %1422 ]
  store i32 %1417, ptr %480, align 4, !tbaa !5
  %1428 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1429 = load i32, ptr @test_count, align 4, !tbaa !5
  %1430 = load i32, ptr %122, align 4, !tbaa !5
  %1431 = call ptr @s2n_strerror(i32 noundef %1430, ptr noundef nonnull @.str.4) #9
  %1432 = load i32, ptr %122, align 4, !tbaa !5
  %1433 = call ptr @s2n_strerror_debug(i32 noundef %1432, ptr noundef nonnull @.str.4) #9
  %1434 = load i32, ptr %480, align 4, !tbaa !5
  %1435 = call ptr @strerror(i32 noundef %1434) #9
  %1436 = load i32, ptr %480, align 4, !tbaa !5
  %1437 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1428, ptr noundef nonnull %.str.5.sink858, i32 noundef %1429, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 132, ptr noundef %1431, ptr noundef %1433, ptr noundef %1435, i32 noundef %1436) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1438:                                             ; preds = %1412
  %1439 = getelementptr inbounds i8, ptr %1414, i64 220
  store i8 34, ptr %1439, align 4, !tbaa !19
  %1440 = getelementptr inbounds i8, ptr %1414, i64 232
  %1441 = load ptr, ptr %1440, align 8, !tbaa !46
  store ptr @s2n_tls13_aes_256_gcm_sha384, ptr %1441, align 8, !tbaa !47
  %1442 = load i32, ptr @test_count, align 4, !tbaa !5
  %1443 = add nsw i32 %1442, 1
  store i32 %1443, ptr @test_count, align 4, !tbaa !5
  %1444 = getelementptr inbounds i8, ptr %1414, i64 2016
  %1445 = call i32 @reset_stuffers(ptr noundef nonnull %1383, ptr noundef nonnull %1444)
  %1446 = icmp eq i32 %1445, -1
  br i1 %1446, label %1447, label %1469

1447:                                             ; preds = %1438
  %1448 = load i32, ptr %480, align 4, !tbaa !5
  %1449 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1450 = call i32 @s2n_print_stacktrace(ptr noundef %1449) #9
  %1451 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1452 = trunc nuw i8 %1451 to i1
  br i1 %1452, label %1453, label %1457

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

1457:                                             ; preds = %1453, %1447
  br label %1458

1458:                                             ; preds = %1453, %1457
  %.str.5.sink867 = phi ptr [ @.str.5, %1457 ], [ @.str.2, %1453 ]
  store i32 %1448, ptr %480, align 4, !tbaa !5
  %1459 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1460 = load i32, ptr @test_count, align 4, !tbaa !5
  %1461 = load i32, ptr %122, align 4, !tbaa !5
  %1462 = call ptr @s2n_strerror(i32 noundef %1461, ptr noundef nonnull @.str.4) #9
  %1463 = load i32, ptr %122, align 4, !tbaa !5
  %1464 = call ptr @s2n_strerror_debug(i32 noundef %1463, ptr noundef nonnull @.str.4) #9
  %1465 = load i32, ptr %480, align 4, !tbaa !5
  %1466 = call ptr @strerror(i32 noundef %1465) #9
  %1467 = load i32, ptr %480, align 4, !tbaa !5
  %1468 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1459, ptr noundef nonnull %.str.5.sink867, i32 noundef %1460, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 136, ptr noundef %1462, ptr noundef %1464, ptr noundef %1466, i32 noundef %1467) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1469:                                             ; preds = %1438
  %1470 = load i32, ptr @test_count, align 4, !tbaa !5
  %1471 = add nsw i32 %1470, 1
  store i32 %1471, ptr @test_count, align 4, !tbaa !5
  %1472 = call i32 @s2n_stuffer_copy(ptr noundef nonnull %1383, ptr noundef nonnull %1444, i32 noundef 32) #9
  %1473 = icmp eq i32 %1472, -1
  br i1 %1473, label %1474, label %1496

1474:                                             ; preds = %1469
  %1475 = load i32, ptr %480, align 4, !tbaa !5
  %1476 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1477 = call i32 @s2n_print_stacktrace(ptr noundef %1476) #9
  %1478 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1479 = trunc nuw i8 %1478 to i1
  br i1 %1479, label %1480, label %1484

1480:                                             ; preds = %1474
  %1481 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1482 = call i32 @fileno(ptr noundef %1481) #9
  %1483 = call i32 @isatty(i32 noundef %1482) #9
  %.not272 = icmp eq i32 %1483, 0
  br i1 %.not272, label %1484, label %1485

1484:                                             ; preds = %1480, %1474
  br label %1485

1485:                                             ; preds = %1480, %1484
  %.str.5.sink876 = phi ptr [ @.str.5, %1484 ], [ @.str.2, %1480 ]
  store i32 %1475, ptr %480, align 4, !tbaa !5
  %1486 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1487 = load i32, ptr @test_count, align 4, !tbaa !5
  %1488 = load i32, ptr %122, align 4, !tbaa !5
  %1489 = call ptr @s2n_strerror(i32 noundef %1488, ptr noundef nonnull @.str.4) #9
  %1490 = load i32, ptr %122, align 4, !tbaa !5
  %1491 = call ptr @s2n_strerror_debug(i32 noundef %1490, ptr noundef nonnull @.str.4) #9
  %1492 = load i32, ptr %480, align 4, !tbaa !5
  %1493 = call ptr @strerror(i32 noundef %1492) #9
  %1494 = load i32, ptr %480, align 4, !tbaa !5
  %1495 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1486, ptr noundef nonnull %.str.5.sink876, i32 noundef %1487, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 137, ptr noundef %1489, ptr noundef %1491, ptr noundef %1493, i32 noundef %1494) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1496:                                             ; preds = %1469
  %1497 = load i32, ptr @test_count, align 4, !tbaa !5
  %1498 = add nsw i32 %1497, 1
  store i32 %1498, ptr @test_count, align 4, !tbaa !5
  %1499 = call i32 @s2n_tls13_client_finished_recv(ptr noundef nonnull %1414) #9
  %1500 = icmp eq i32 %1499, -1
  br i1 %1500, label %1523, label %1501

1501:                                             ; preds = %1496
  %1502 = load i32, ptr %480, align 4, !tbaa !5
  %1503 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1504 = call i32 @s2n_print_stacktrace(ptr noundef %1503) #9
  %1505 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1506 = trunc nuw i8 %1505 to i1
  br i1 %1506, label %1507, label %1511

1507:                                             ; preds = %1501
  %1508 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1509 = call i32 @fileno(ptr noundef %1508) #9
  %1510 = call i32 @isatty(i32 noundef %1509) #9
  %.not251 = icmp eq i32 %1510, 0
  br i1 %.not251, label %1511, label %1512

1511:                                             ; preds = %1507, %1501
  br label %1512

1512:                                             ; preds = %1507, %1511
  %.str.5.sink885 = phi ptr [ @.str.5, %1511 ], [ @.str.2, %1507 ]
  store i32 %1502, ptr %480, align 4, !tbaa !5
  %1513 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1514 = load i32, ptr @test_count, align 4, !tbaa !5
  %1515 = load i32, ptr %122, align 4, !tbaa !5
  %1516 = call ptr @s2n_strerror(i32 noundef %1515, ptr noundef nonnull @.str.4) #9
  %1517 = load i32, ptr %122, align 4, !tbaa !5
  %1518 = call ptr @s2n_strerror_debug(i32 noundef %1517, ptr noundef nonnull @.str.4) #9
  %1519 = load i32, ptr %480, align 4, !tbaa !5
  %1520 = call ptr @strerror(i32 noundef %1519) #9
  %1521 = load i32, ptr %480, align 4, !tbaa !5
  %1522 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1513, ptr noundef nonnull %.str.5.sink885, i32 noundef %1514, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 138, ptr noundef %1516, ptr noundef %1518, ptr noundef %1520, i32 noundef %1521) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1523:                                             ; preds = %1496
  %1524 = load i32, ptr @test_count, align 4, !tbaa !5
  %1525 = add nsw i32 %1524, 1
  store i32 %1525, ptr @test_count, align 4, !tbaa !5
  %1526 = load i32, ptr %122, align 4, !tbaa !5
  %1527 = icmp eq i32 %1526, 0
  br i1 %1527, label %1528, label %1550

1528:                                             ; preds = %1523
  %1529 = load i32, ptr %480, align 4, !tbaa !5
  %1530 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1531 = call i32 @s2n_print_stacktrace(ptr noundef %1530) #9
  %1532 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1533 = trunc nuw i8 %1532 to i1
  br i1 %1533, label %1534, label %1538

1534:                                             ; preds = %1528
  %1535 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1536 = call i32 @fileno(ptr noundef %1535) #9
  %1537 = call i32 @isatty(i32 noundef %1536) #9
  %.not271 = icmp eq i32 %1537, 0
  br i1 %.not271, label %1538, label %1539

1538:                                             ; preds = %1534, %1528
  br label %1539

1539:                                             ; preds = %1534, %1538
  %.str.5.sink894 = phi ptr [ @.str.5, %1538 ], [ @.str.2, %1534 ]
  store i32 %1529, ptr %480, align 4, !tbaa !5
  %1540 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1541 = load i32, ptr @test_count, align 4, !tbaa !5
  %1542 = load i32, ptr %122, align 4, !tbaa !5
  %1543 = call ptr @s2n_strerror(i32 noundef %1542, ptr noundef nonnull @.str.4) #9
  %1544 = load i32, ptr %122, align 4, !tbaa !5
  %1545 = call ptr @s2n_strerror_debug(i32 noundef %1544, ptr noundef nonnull @.str.4) #9
  %1546 = load i32, ptr %480, align 4, !tbaa !5
  %1547 = call ptr @strerror(i32 noundef %1546) #9
  %1548 = load i32, ptr %480, align 4, !tbaa !5
  %1549 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1540, ptr noundef nonnull %.str.5.sink894, i32 noundef %1541, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 138, ptr noundef %1543, ptr noundef %1545, ptr noundef %1547, i32 noundef %1548) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1550:                                             ; preds = %1523
  %1551 = add nsw i32 %1524, 2
  store i32 %1551, ptr @test_count, align 4, !tbaa !5
  %1552 = call ptr @s2n_strerror_debug(i32 noundef %1526, ptr noundef nonnull @.str.4) #9
  %1553 = icmp eq ptr %1552, null
  br i1 %1553, label %1554, label %1576

1554:                                             ; preds = %1550
  %1555 = load i32, ptr %480, align 4, !tbaa !5
  %1556 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1557 = call i32 @s2n_print_stacktrace(ptr noundef %1556) #9
  %1558 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1559 = trunc nuw i8 %1558 to i1
  br i1 %1559, label %1560, label %1564

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

1564:                                             ; preds = %1560, %1554
  br label %1565

1565:                                             ; preds = %1560, %1564
  %.str.5.sink903 = phi ptr [ @.str.5, %1564 ], [ @.str.2, %1560 ]
  store i32 %1555, ptr %480, align 4, !tbaa !5
  %1566 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1567 = load i32, ptr @test_count, align 4, !tbaa !5
  %1568 = load i32, ptr %122, align 4, !tbaa !5
  %1569 = call ptr @s2n_strerror(i32 noundef %1568, ptr noundef nonnull @.str.4) #9
  %1570 = load i32, ptr %122, align 4, !tbaa !5
  %1571 = call ptr @s2n_strerror_debug(i32 noundef %1570, ptr noundef nonnull @.str.4) #9
  %1572 = load i32, ptr %480, align 4, !tbaa !5
  %1573 = call ptr @strerror(i32 noundef %1572) #9
  %1574 = load i32, ptr %480, align 4, !tbaa !5
  %1575 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1566, ptr noundef nonnull %.str.5.sink903, i32 noundef %1567, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 138, ptr noundef %1569, ptr noundef %1571, ptr noundef %1573, i32 noundef %1574) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1576:                                             ; preds = %1550
  store i32 0, ptr %122, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #9
  store i32 0, ptr %480, align 4, !tbaa !5
  %1577 = load i32, ptr @test_count, align 4, !tbaa !5
  %1578 = add nsw i32 %1577, 1
  store i32 %1578, ptr @test_count, align 4, !tbaa !5
  %1579 = call i32 @s2n_connection_free(ptr noundef nonnull %1414) #9
  %1580 = icmp eq i32 %1579, -1
  br i1 %1580, label %1581, label %1603

1581:                                             ; preds = %1576
  %1582 = load i32, ptr %480, align 4, !tbaa !5
  %1583 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1584 = call i32 @s2n_print_stacktrace(ptr noundef %1583) #9
  %1585 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1586 = trunc nuw i8 %1585 to i1
  br i1 %1586, label %1587, label %1591

1587:                                             ; preds = %1581
  %1588 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1589 = call i32 @fileno(ptr noundef %1588) #9
  %1590 = call i32 @isatty(i32 noundef %1589) #9
  %.not269 = icmp eq i32 %1590, 0
  br i1 %.not269, label %1591, label %1592

1591:                                             ; preds = %1587, %1581
  br label %1592

1592:                                             ; preds = %1587, %1591
  %.str.5.sink912 = phi ptr [ @.str.5, %1591 ], [ @.str.2, %1587 ]
  store i32 %1582, ptr %480, align 4, !tbaa !5
  %1593 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1594 = load i32, ptr @test_count, align 4, !tbaa !5
  %1595 = load i32, ptr %122, align 4, !tbaa !5
  %1596 = call ptr @s2n_strerror(i32 noundef %1595, ptr noundef nonnull @.str.4) #9
  %1597 = load i32, ptr %122, align 4, !tbaa !5
  %1598 = call ptr @s2n_strerror_debug(i32 noundef %1597, ptr noundef nonnull @.str.4) #9
  %1599 = load i32, ptr %480, align 4, !tbaa !5
  %1600 = call ptr @strerror(i32 noundef %1599) #9
  %1601 = load i32, ptr %480, align 4, !tbaa !5
  %1602 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1593, ptr noundef nonnull %.str.5.sink912, i32 noundef %1594, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 140, ptr noundef %1596, ptr noundef %1598, ptr noundef %1600, i32 noundef %1601) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1603:                                             ; preds = %1576
  %1604 = load i32, ptr @test_count, align 4, !tbaa !5
  %1605 = add nsw i32 %1604, 1
  store i32 %1605, ptr @test_count, align 4, !tbaa !5
  %1606 = call i32 @s2n_connection_free(ptr noundef nonnull %1326) #9
  %1607 = icmp eq i32 %1606, -1
  br i1 %1607, label %1608, label %1630

1608:                                             ; preds = %1603
  %1609 = load i32, ptr %480, align 4, !tbaa !5
  %1610 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1611 = call i32 @s2n_print_stacktrace(ptr noundef %1610) #9
  %1612 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1613 = trunc nuw i8 %1612 to i1
  br i1 %1613, label %1614, label %1618

1614:                                             ; preds = %1608
  %1615 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1616 = call i32 @fileno(ptr noundef %1615) #9
  %1617 = call i32 @isatty(i32 noundef %1616) #9
  %.not268 = icmp eq i32 %1617, 0
  br i1 %.not268, label %1618, label %1619

1618:                                             ; preds = %1614, %1608
  br label %1619

1619:                                             ; preds = %1614, %1618
  %.str.5.sink921 = phi ptr [ @.str.5, %1618 ], [ @.str.2, %1614 ]
  store i32 %1609, ptr %480, align 4, !tbaa !5
  %1620 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1621 = load i32, ptr @test_count, align 4, !tbaa !5
  %1622 = load i32, ptr %122, align 4, !tbaa !5
  %1623 = call ptr @s2n_strerror(i32 noundef %1622, ptr noundef nonnull @.str.4) #9
  %1624 = load i32, ptr %122, align 4, !tbaa !5
  %1625 = call ptr @s2n_strerror_debug(i32 noundef %1624, ptr noundef nonnull @.str.4) #9
  %1626 = load i32, ptr %480, align 4, !tbaa !5
  %1627 = call ptr @strerror(i32 noundef %1626) #9
  %1628 = load i32, ptr %480, align 4, !tbaa !5
  %1629 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1620, ptr noundef nonnull %.str.5.sink921, i32 noundef %1621, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 141, ptr noundef %1623, ptr noundef %1625, ptr noundef %1627, i32 noundef %1628) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1630:                                             ; preds = %1603
  %1631 = load i32, ptr @test_count, align 4, !tbaa !5
  %1632 = add nsw i32 %1631, 1
  store i32 %1632, ptr @test_count, align 4, !tbaa !5
  %1633 = call ptr @s2n_connection_new(i32 noundef 1) #9
  %1634 = icmp eq ptr %1633, null
  br i1 %1634, label %1635, label %1657

1635:                                             ; preds = %1630
  %1636 = load i32, ptr %480, align 4, !tbaa !5
  %1637 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1638 = call i32 @s2n_print_stacktrace(ptr noundef %1637) #9
  %1639 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1640 = trunc nuw i8 %1639 to i1
  br i1 %1640, label %1641, label %1645

1641:                                             ; preds = %1635
  %1642 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1643 = call i32 @fileno(ptr noundef %1642) #9
  %1644 = call i32 @isatty(i32 noundef %1643) #9
  %.not267 = icmp eq i32 %1644, 0
  br i1 %.not267, label %1645, label %1646

1645:                                             ; preds = %1641, %1635
  br label %1646

1646:                                             ; preds = %1641, %1645
  %.str.5.sink930 = phi ptr [ @.str.5, %1645 ], [ @.str.2, %1641 ]
  store i32 %1636, ptr %480, align 4, !tbaa !5
  %1647 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1648 = load i32, ptr @test_count, align 4, !tbaa !5
  %1649 = load i32, ptr %122, align 4, !tbaa !5
  %1650 = call ptr @s2n_strerror(i32 noundef %1649, ptr noundef nonnull @.str.4) #9
  %1651 = load i32, ptr %122, align 4, !tbaa !5
  %1652 = call ptr @s2n_strerror_debug(i32 noundef %1651, ptr noundef nonnull @.str.4) #9
  %1653 = load i32, ptr %480, align 4, !tbaa !5
  %1654 = call ptr @strerror(i32 noundef %1653) #9
  %1655 = load i32, ptr %480, align 4, !tbaa !5
  %1656 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1647, ptr noundef nonnull %.str.5.sink930, i32 noundef %1648, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 147, ptr noundef %1650, ptr noundef %1652, ptr noundef %1654, i32 noundef %1655) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1657:                                             ; preds = %1630
  %1658 = getelementptr inbounds i8, ptr %1633, i64 220
  store i8 34, ptr %1658, align 4, !tbaa !19
  %1659 = getelementptr inbounds i8, ptr %1633, i64 232
  %1660 = load ptr, ptr %1659, align 8, !tbaa !46
  store ptr @s2n_tls13_aes_256_gcm_sha384, ptr %1660, align 8, !tbaa !47
  %1661 = load i32, ptr @test_count, align 4, !tbaa !5
  %1662 = add nsw i32 %1661, 1
  store i32 %1662, ptr @test_count, align 4, !tbaa !5
  %1663 = call i32 @s2n_tls13_client_finished_send(ptr noundef nonnull %1633) #9
  %1664 = icmp eq i32 %1663, -1
  br i1 %1664, label %1665, label %1687

1665:                                             ; preds = %1657
  %1666 = load i32, ptr %480, align 4, !tbaa !5
  %1667 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1668 = call i32 @s2n_print_stacktrace(ptr noundef %1667) #9
  %1669 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1670 = trunc nuw i8 %1669 to i1
  br i1 %1670, label %1671, label %1675

1671:                                             ; preds = %1665
  %1672 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1673 = call i32 @fileno(ptr noundef %1672) #9
  %1674 = call i32 @isatty(i32 noundef %1673) #9
  %.not266 = icmp eq i32 %1674, 0
  br i1 %.not266, label %1675, label %1676

1675:                                             ; preds = %1671, %1665
  br label %1676

1676:                                             ; preds = %1671, %1675
  %.str.5.sink939 = phi ptr [ @.str.5, %1675 ], [ @.str.2, %1671 ]
  store i32 %1666, ptr %480, align 4, !tbaa !5
  %1677 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1678 = load i32, ptr @test_count, align 4, !tbaa !5
  %1679 = load i32, ptr %122, align 4, !tbaa !5
  %1680 = call ptr @s2n_strerror(i32 noundef %1679, ptr noundef nonnull @.str.4) #9
  %1681 = load i32, ptr %122, align 4, !tbaa !5
  %1682 = call ptr @s2n_strerror_debug(i32 noundef %1681, ptr noundef nonnull @.str.4) #9
  %1683 = load i32, ptr %480, align 4, !tbaa !5
  %1684 = call ptr @strerror(i32 noundef %1683) #9
  %1685 = load i32, ptr %480, align 4, !tbaa !5
  %1686 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1677, ptr noundef nonnull %.str.5.sink939, i32 noundef %1678, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 152, ptr noundef %1680, ptr noundef %1682, ptr noundef %1684, i32 noundef %1685) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1687:                                             ; preds = %1657
  %1688 = load i32, ptr @test_count, align 4, !tbaa !5
  %1689 = add nsw i32 %1688, 1
  store i32 %1689, ptr @test_count, align 4, !tbaa !5
  %1690 = getelementptr inbounds i8, ptr %1633, i64 2016
  %1691 = getelementptr inbounds i8, ptr %1633, i64 2044
  %1692 = load i32, ptr %1691, align 4, !tbaa !52
  %1693 = getelementptr inbounds i8, ptr %1633, i64 2040
  %1694 = load i32, ptr %1693, align 8, !tbaa !53
  %1695 = sub i32 %1692, %1694
  %1696 = icmp eq i32 %1695, 48
  br i1 %1696, label %1719, label %1697

1697:                                             ; preds = %1687
  %1698 = load i32, ptr %480, align 4, !tbaa !5
  %1699 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1700 = call i32 @s2n_print_stacktrace(ptr noundef %1699) #9
  %1701 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1702 = trunc nuw i8 %1701 to i1
  br i1 %1702, label %1703, label %1707

1703:                                             ; preds = %1697
  %1704 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1705 = call i32 @fileno(ptr noundef %1704) #9
  %1706 = call i32 @isatty(i32 noundef %1705) #9
  %.not252 = icmp eq i32 %1706, 0
  br i1 %.not252, label %1707, label %1708

1707:                                             ; preds = %1703, %1697
  br label %1708

1708:                                             ; preds = %1703, %1707
  %.str.5.sink948 = phi ptr [ @.str.5, %1707 ], [ @.str.2, %1703 ]
  store i32 %1698, ptr %480, align 4, !tbaa !5
  %1709 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1710 = load i32, ptr @test_count, align 4, !tbaa !5
  %1711 = load i32, ptr %122, align 4, !tbaa !5
  %1712 = call ptr @s2n_strerror(i32 noundef %1711, ptr noundef nonnull @.str.4) #9
  %1713 = load i32, ptr %122, align 4, !tbaa !5
  %1714 = call ptr @s2n_strerror_debug(i32 noundef %1713, ptr noundef nonnull @.str.4) #9
  %1715 = load i32, ptr %480, align 4, !tbaa !5
  %1716 = call ptr @strerror(i32 noundef %1715) #9
  %1717 = load i32, ptr %480, align 4, !tbaa !5
  %1718 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1709, ptr noundef nonnull %.str.5.sink948, i32 noundef %1710, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 153, ptr noundef %1712, ptr noundef %1714, ptr noundef %1716, i32 noundef %1717) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1719:                                             ; preds = %1687
  %1720 = add nsw i32 %1688, 2
  store i32 %1720, ptr @test_count, align 4, !tbaa !5
  %1721 = call ptr @s2n_connection_new(i32 noundef 1) #9
  %1722 = icmp eq ptr %1721, null
  br i1 %1722, label %1723, label %1745

1723:                                             ; preds = %1719
  %1724 = load i32, ptr %480, align 4, !tbaa !5
  %1725 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1726 = call i32 @s2n_print_stacktrace(ptr noundef %1725) #9
  %1727 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1728 = trunc nuw i8 %1727 to i1
  br i1 %1728, label %1729, label %1733

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

1733:                                             ; preds = %1729, %1723
  br label %1734

1734:                                             ; preds = %1729, %1733
  %.str.5.sink957 = phi ptr [ @.str.5, %1733 ], [ @.str.2, %1729 ]
  store i32 %1724, ptr %480, align 4, !tbaa !5
  %1735 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1736 = load i32, ptr @test_count, align 4, !tbaa !5
  %1737 = load i32, ptr %122, align 4, !tbaa !5
  %1738 = call ptr @s2n_strerror(i32 noundef %1737, ptr noundef nonnull @.str.4) #9
  %1739 = load i32, ptr %122, align 4, !tbaa !5
  %1740 = call ptr @s2n_strerror_debug(i32 noundef %1739, ptr noundef nonnull @.str.4) #9
  %1741 = load i32, ptr %480, align 4, !tbaa !5
  %1742 = call ptr @strerror(i32 noundef %1741) #9
  %1743 = load i32, ptr %480, align 4, !tbaa !5
  %1744 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1735, ptr noundef nonnull %.str.5.sink957, i32 noundef %1736, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 156, ptr noundef %1738, ptr noundef %1740, ptr noundef %1742, i32 noundef %1743) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1745:                                             ; preds = %1719
  %1746 = getelementptr inbounds i8, ptr %1721, i64 220
  store i8 34, ptr %1746, align 4, !tbaa !19
  %1747 = getelementptr inbounds i8, ptr %1721, i64 232
  %1748 = load ptr, ptr %1747, align 8, !tbaa !46
  store ptr @s2n_tls13_aes_256_gcm_sha384, ptr %1748, align 8, !tbaa !47
  %1749 = getelementptr inbounds i8, ptr %1721, i64 2016
  %1750 = getelementptr inbounds i8, ptr %1721, i64 2120
  br label %1756

1751:                                             ; preds = %1893
  %1752 = load i32, ptr @test_count, align 4, !tbaa !5
  %1753 = add nsw i32 %1752, 1
  store i32 %1753, ptr @test_count, align 4, !tbaa !5
  %1754 = call i32 @s2n_connection_free(ptr noundef nonnull %1721) #9
  %1755 = icmp eq i32 %1754, -1
  br i1 %1755, label %1896, label %1918

1756:                                             ; preds = %1745, %1893
  %indvars.iv379 = phi i64 [ 0, %1745 ], [ %indvars.iv.next380, %1893 ]
  %1757 = load i32, ptr @test_count, align 4, !tbaa !5
  %1758 = add nsw i32 %1757, 1
  store i32 %1758, ptr @test_count, align 4, !tbaa !5
  %1759 = call i32 @reset_stuffers(ptr noundef nonnull %1690, ptr noundef nonnull %1749)
  %1760 = icmp eq i32 %1759, -1
  br i1 %1760, label %1761, label %1783

1761:                                             ; preds = %1756
  %1762 = load i32, ptr %480, align 4, !tbaa !5
  %1763 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1764 = call i32 @s2n_print_stacktrace(ptr noundef %1763) #9
  %1765 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1766 = trunc nuw i8 %1765 to i1
  br i1 %1766, label %1767, label %1771

1767:                                             ; preds = %1761
  %1768 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1769 = call i32 @fileno(ptr noundef %1768) #9
  %1770 = call i32 @isatty(i32 noundef %1769) #9
  %.not264 = icmp eq i32 %1770, 0
  br i1 %.not264, label %1771, label %1772

1771:                                             ; preds = %1767, %1761
  br label %1772

1772:                                             ; preds = %1767, %1771
  %.str.5.sink966 = phi ptr [ @.str.5, %1771 ], [ @.str.2, %1767 ]
  store i32 %1762, ptr %480, align 4, !tbaa !5
  %1773 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1774 = load i32, ptr @test_count, align 4, !tbaa !5
  %1775 = load i32, ptr %122, align 4, !tbaa !5
  %1776 = call ptr @s2n_strerror(i32 noundef %1775, ptr noundef nonnull @.str.4) #9
  %1777 = load i32, ptr %122, align 4, !tbaa !5
  %1778 = call ptr @s2n_strerror_debug(i32 noundef %1777, ptr noundef nonnull @.str.4) #9
  %1779 = load i32, ptr %480, align 4, !tbaa !5
  %1780 = call ptr @strerror(i32 noundef %1779) #9
  %1781 = load i32, ptr %480, align 4, !tbaa !5
  %1782 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1773, ptr noundef nonnull %.str.5.sink966, i32 noundef %1774, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 161, ptr noundef %1776, ptr noundef %1778, ptr noundef %1780, i32 noundef %1781) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1783:                                             ; preds = %1756
  %1784 = load i32, ptr @test_count, align 4, !tbaa !5
  %1785 = add nsw i32 %1784, 1
  store i32 %1785, ptr @test_count, align 4, !tbaa !5
  %1786 = call i32 @s2n_stuffer_copy(ptr noundef nonnull %1690, ptr noundef nonnull %1749, i32 noundef 48) #9
  %1787 = icmp eq i32 %1786, -1
  br i1 %1787, label %1788, label %1810

1788:                                             ; preds = %1783
  %1789 = load i32, ptr %480, align 4, !tbaa !5
  %1790 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1791 = call i32 @s2n_print_stacktrace(ptr noundef %1790) #9
  %1792 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1793 = trunc nuw i8 %1792 to i1
  br i1 %1793, label %1794, label %1798

1794:                                             ; preds = %1788
  %1795 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1796 = call i32 @fileno(ptr noundef %1795) #9
  %1797 = call i32 @isatty(i32 noundef %1796) #9
  %.not263 = icmp eq i32 %1797, 0
  br i1 %.not263, label %1798, label %1799

1798:                                             ; preds = %1794, %1788
  br label %1799

1799:                                             ; preds = %1794, %1798
  %.str.5.sink975 = phi ptr [ @.str.5, %1798 ], [ @.str.2, %1794 ]
  store i32 %1789, ptr %480, align 4, !tbaa !5
  %1800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1801 = load i32, ptr @test_count, align 4, !tbaa !5
  %1802 = load i32, ptr %122, align 4, !tbaa !5
  %1803 = call ptr @s2n_strerror(i32 noundef %1802, ptr noundef nonnull @.str.4) #9
  %1804 = load i32, ptr %122, align 4, !tbaa !5
  %1805 = call ptr @s2n_strerror_debug(i32 noundef %1804, ptr noundef nonnull @.str.4) #9
  %1806 = load i32, ptr %480, align 4, !tbaa !5
  %1807 = call ptr @strerror(i32 noundef %1806) #9
  %1808 = load i32, ptr %480, align 4, !tbaa !5
  %1809 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1800, ptr noundef nonnull %.str.5.sink975, i32 noundef %1801, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 162, ptr noundef %1803, ptr noundef %1805, ptr noundef %1807, i32 noundef %1808) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1810:                                             ; preds = %1783
  %1811 = getelementptr inbounds [48 x i8], ptr %1750, i64 0, i64 %indvars.iv379
  %1812 = load i8, ptr %1811, align 1, !tbaa !16
  %1813 = xor i8 %1812, 1
  store i8 %1813, ptr %1811, align 1, !tbaa !16
  %1814 = load i32, ptr @test_count, align 4, !tbaa !5
  %1815 = add nsw i32 %1814, 1
  store i32 %1815, ptr @test_count, align 4, !tbaa !5
  %1816 = call i32 @s2n_tls13_client_finished_recv(ptr noundef nonnull %1721) #9
  %1817 = icmp eq i32 %1816, -1
  br i1 %1817, label %1840, label %1818

1818:                                             ; preds = %1810
  %1819 = load i32, ptr %480, align 4, !tbaa !5
  %1820 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1821 = call i32 @s2n_print_stacktrace(ptr noundef %1820) #9
  %1822 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1823 = trunc nuw i8 %1822 to i1
  br i1 %1823, label %1824, label %1828

1824:                                             ; preds = %1818
  %1825 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1826 = call i32 @fileno(ptr noundef %1825) #9
  %1827 = call i32 @isatty(i32 noundef %1826) #9
  %.not260 = icmp eq i32 %1827, 0
  br i1 %.not260, label %1828, label %1829

1828:                                             ; preds = %1824, %1818
  br label %1829

1829:                                             ; preds = %1824, %1828
  %.str.5.sink984 = phi ptr [ @.str.5, %1828 ], [ @.str.2, %1824 ]
  store i32 %1819, ptr %480, align 4, !tbaa !5
  %1830 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1831 = load i32, ptr @test_count, align 4, !tbaa !5
  %1832 = load i32, ptr %122, align 4, !tbaa !5
  %1833 = call ptr @s2n_strerror(i32 noundef %1832, ptr noundef nonnull @.str.4) #9
  %1834 = load i32, ptr %122, align 4, !tbaa !5
  %1835 = call ptr @s2n_strerror_debug(i32 noundef %1834, ptr noundef nonnull @.str.4) #9
  %1836 = load i32, ptr %480, align 4, !tbaa !5
  %1837 = call ptr @strerror(i32 noundef %1836) #9
  %1838 = load i32, ptr %480, align 4, !tbaa !5
  %1839 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1830, ptr noundef nonnull %.str.5.sink984, i32 noundef %1831, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 166, ptr noundef %1833, ptr noundef %1835, ptr noundef %1837, i32 noundef %1838) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1840:                                             ; preds = %1810
  %1841 = load i32, ptr @test_count, align 4, !tbaa !5
  %1842 = add nsw i32 %1841, 1
  store i32 %1842, ptr @test_count, align 4, !tbaa !5
  %1843 = load i32, ptr %122, align 4, !tbaa !5
  %1844 = icmp eq i32 %1843, 0
  br i1 %1844, label %1845, label %1867

1845:                                             ; preds = %1840
  %1846 = load i32, ptr %480, align 4, !tbaa !5
  %1847 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1848 = call i32 @s2n_print_stacktrace(ptr noundef %1847) #9
  %1849 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1850 = trunc nuw i8 %1849 to i1
  br i1 %1850, label %1851, label %1855

1851:                                             ; preds = %1845
  %1852 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1853 = call i32 @fileno(ptr noundef %1852) #9
  %1854 = call i32 @isatty(i32 noundef %1853) #9
  %.not262 = icmp eq i32 %1854, 0
  br i1 %.not262, label %1855, label %1856

1855:                                             ; preds = %1851, %1845
  br label %1856

1856:                                             ; preds = %1851, %1855
  %.str.5.sink993 = phi ptr [ @.str.5, %1855 ], [ @.str.2, %1851 ]
  store i32 %1846, ptr %480, align 4, !tbaa !5
  %1857 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1858 = load i32, ptr @test_count, align 4, !tbaa !5
  %1859 = load i32, ptr %122, align 4, !tbaa !5
  %1860 = call ptr @s2n_strerror(i32 noundef %1859, ptr noundef nonnull @.str.4) #9
  %1861 = load i32, ptr %122, align 4, !tbaa !5
  %1862 = call ptr @s2n_strerror_debug(i32 noundef %1861, ptr noundef nonnull @.str.4) #9
  %1863 = load i32, ptr %480, align 4, !tbaa !5
  %1864 = call ptr @strerror(i32 noundef %1863) #9
  %1865 = load i32, ptr %480, align 4, !tbaa !5
  %1866 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1857, ptr noundef nonnull %.str.5.sink993, i32 noundef %1858, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 166, ptr noundef %1860, ptr noundef %1862, ptr noundef %1864, i32 noundef %1865) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1867:                                             ; preds = %1840
  %1868 = add nsw i32 %1841, 2
  store i32 %1868, ptr @test_count, align 4, !tbaa !5
  %1869 = call ptr @s2n_strerror_debug(i32 noundef %1843, ptr noundef nonnull @.str.4) #9
  %1870 = icmp eq ptr %1869, null
  br i1 %1870, label %1871, label %1893

1871:                                             ; preds = %1867
  %1872 = load i32, ptr %480, align 4, !tbaa !5
  %1873 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1874 = call i32 @s2n_print_stacktrace(ptr noundef %1873) #9
  %1875 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1876 = trunc nuw i8 %1875 to i1
  br i1 %1876, label %1877, label %1881

1877:                                             ; preds = %1871
  %1878 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1879 = call i32 @fileno(ptr noundef %1878) #9
  %1880 = call i32 @isatty(i32 noundef %1879) #9
  %.not261 = icmp eq i32 %1880, 0
  br i1 %.not261, label %1881, label %1882

1881:                                             ; preds = %1877, %1871
  br label %1882

1882:                                             ; preds = %1877, %1881
  %.str.5.sink1002 = phi ptr [ @.str.5, %1881 ], [ @.str.2, %1877 ]
  store i32 %1872, ptr %480, align 4, !tbaa !5
  %1883 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1884 = load i32, ptr @test_count, align 4, !tbaa !5
  %1885 = load i32, ptr %122, align 4, !tbaa !5
  %1886 = call ptr @s2n_strerror(i32 noundef %1885, ptr noundef nonnull @.str.4) #9
  %1887 = load i32, ptr %122, align 4, !tbaa !5
  %1888 = call ptr @s2n_strerror_debug(i32 noundef %1887, ptr noundef nonnull @.str.4) #9
  %1889 = load i32, ptr %480, align 4, !tbaa !5
  %1890 = call ptr @strerror(i32 noundef %1889) #9
  %1891 = load i32, ptr %480, align 4, !tbaa !5
  %1892 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1883, ptr noundef nonnull %.str.5.sink1002, i32 noundef %1884, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 166, ptr noundef %1886, ptr noundef %1888, ptr noundef %1890, i32 noundef %1891) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1893:                                             ; preds = %1867
  store i32 0, ptr %122, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #9
  store i32 0, ptr %480, align 4, !tbaa !5
  %1894 = load i8, ptr %1811, align 1, !tbaa !16
  %1895 = xor i8 %1894, 1
  store i8 %1895, ptr %1811, align 1, !tbaa !16
  %indvars.iv.next380 = add nuw nsw i64 %indvars.iv379, 1
  %exitcond382.not = icmp eq i64 %indvars.iv.next380, 48
  br i1 %exitcond382.not, label %1751, label %1756, !llvm.loop !55

1896:                                             ; preds = %1751
  %1897 = load i32, ptr %480, align 4, !tbaa !5
  %1898 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1899 = call i32 @s2n_print_stacktrace(ptr noundef %1898) #9
  %1900 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1901 = trunc nuw i8 %1900 to i1
  br i1 %1901, label %1902, label %1906

1902:                                             ; preds = %1896
  %1903 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1904 = call i32 @fileno(ptr noundef %1903) #9
  %1905 = call i32 @isatty(i32 noundef %1904) #9
  %.not259 = icmp eq i32 %1905, 0
  br i1 %.not259, label %1906, label %1907

1906:                                             ; preds = %1902, %1896
  br label %1907

1907:                                             ; preds = %1902, %1906
  %.str.5.sink1011 = phi ptr [ @.str.5, %1906 ], [ @.str.2, %1902 ]
  store i32 %1897, ptr %480, align 4, !tbaa !5
  %1908 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1909 = load i32, ptr @test_count, align 4, !tbaa !5
  %1910 = load i32, ptr %122, align 4, !tbaa !5
  %1911 = call ptr @s2n_strerror(i32 noundef %1910, ptr noundef nonnull @.str.4) #9
  %1912 = load i32, ptr %122, align 4, !tbaa !5
  %1913 = call ptr @s2n_strerror_debug(i32 noundef %1912, ptr noundef nonnull @.str.4) #9
  %1914 = load i32, ptr %480, align 4, !tbaa !5
  %1915 = call ptr @strerror(i32 noundef %1914) #9
  %1916 = load i32, ptr %480, align 4, !tbaa !5
  %1917 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1908, ptr noundef nonnull %.str.5.sink1011, i32 noundef %1909, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 172, ptr noundef %1911, ptr noundef %1913, ptr noundef %1915, i32 noundef %1916) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1918:                                             ; preds = %1751
  %1919 = load i32, ptr @test_count, align 4, !tbaa !5
  %1920 = add nsw i32 %1919, 1
  store i32 %1920, ptr @test_count, align 4, !tbaa !5
  %1921 = call i32 @s2n_connection_free(ptr noundef nonnull %1633) #9
  %1922 = icmp eq i32 %1921, -1
  br i1 %1922, label %1923, label %1945

1923:                                             ; preds = %1918
  %1924 = load i32, ptr %480, align 4, !tbaa !5
  %1925 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1926 = call i32 @s2n_print_stacktrace(ptr noundef %1925) #9
  %1927 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1928 = trunc nuw i8 %1927 to i1
  br i1 %1928, label %1929, label %1933

1929:                                             ; preds = %1923
  %1930 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1931 = call i32 @fileno(ptr noundef %1930) #9
  %1932 = call i32 @isatty(i32 noundef %1931) #9
  %.not258 = icmp eq i32 %1932, 0
  br i1 %.not258, label %1933, label %1934

1933:                                             ; preds = %1929, %1923
  br label %1934

1934:                                             ; preds = %1929, %1933
  %.str.5.sink1020 = phi ptr [ @.str.5, %1933 ], [ @.str.2, %1929 ]
  store i32 %1924, ptr %480, align 4, !tbaa !5
  %1935 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1936 = load i32, ptr @test_count, align 4, !tbaa !5
  %1937 = load i32, ptr %122, align 4, !tbaa !5
  %1938 = call ptr @s2n_strerror(i32 noundef %1937, ptr noundef nonnull @.str.4) #9
  %1939 = load i32, ptr %122, align 4, !tbaa !5
  %1940 = call ptr @s2n_strerror_debug(i32 noundef %1939, ptr noundef nonnull @.str.4) #9
  %1941 = load i32, ptr %480, align 4, !tbaa !5
  %1942 = call ptr @strerror(i32 noundef %1941) #9
  %1943 = load i32, ptr %480, align 4, !tbaa !5
  %1944 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1935, ptr noundef nonnull %.str.5.sink1020, i32 noundef %1936, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 173, ptr noundef %1938, ptr noundef %1940, ptr noundef %1942, i32 noundef %1943) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1945:                                             ; preds = %1918
  %1946 = call i32 @s2n_cleanup() #9
  %1947 = icmp eq i32 %1946, -1
  br i1 %1947, label %1948, label %1970

1948:                                             ; preds = %1945
  %1949 = load i32, ptr %480, align 4, !tbaa !5
  %1950 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1951 = call i32 @s2n_print_stacktrace(ptr noundef %1950) #9
  %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 = %1948
  %1955 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1956 = call i32 @fileno(ptr noundef %1955) #9
  %1957 = call i32 @isatty(i32 noundef %1956) #9
  %.not257 = icmp eq i32 %1957, 0
  br i1 %.not257, label %1958, label %1959

1958:                                             ; preds = %1954, %1948
  br label %1959

1959:                                             ; preds = %1954, %1958
  %.str.5.sink1029 = phi ptr [ @.str.5, %1958 ], [ @.str.2, %1954 ]
  store i32 %1949, ptr %480, 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 %122, align 4, !tbaa !5
  %1963 = call ptr @s2n_strerror(i32 noundef %1962, ptr noundef nonnull @.str.4) #9
  %1964 = load i32, ptr %122, align 4, !tbaa !5
  %1965 = call ptr @s2n_strerror_debug(i32 noundef %1964, ptr noundef nonnull @.str.4) #9
  %1966 = load i32, ptr %480, align 4, !tbaa !5
  %1967 = call ptr @strerror(i32 noundef %1966) #9
  %1968 = load i32, ptr %480, align 4, !tbaa !5
  %1969 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1960, ptr noundef nonnull %.str.5.sink1029, i32 noundef %1961, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 176, ptr noundef %1963, ptr noundef %1965, ptr noundef %1967, i32 noundef %1968) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1970:                                             ; preds = %1945
  %1971 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #9
  %1972 = icmp eq i32 %1971, -1
  br i1 %1972, label %1973, label %1995

1973:                                             ; preds = %1970
  %1974 = load i32, ptr %480, align 4, !tbaa !5
  %1975 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1976 = call i32 @s2n_print_stacktrace(ptr noundef %1975) #9
  %1977 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1978 = trunc nuw i8 %1977 to i1
  br i1 %1978, label %1979, label %1983

1979:                                             ; preds = %1973
  %1980 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1981 = call i32 @fileno(ptr noundef %1980) #9
  %1982 = call i32 @isatty(i32 noundef %1981) #9
  %.not256 = icmp eq i32 %1982, 0
  br i1 %.not256, label %1983, label %1984

1983:                                             ; preds = %1979, %1973
  br label %1984

1984:                                             ; preds = %1979, %1983
  %.str.5.sink1038 = phi ptr [ @.str.5, %1983 ], [ @.str.2, %1979 ]
  store i32 %1974, ptr %480, align 4, !tbaa !5
  %1985 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1986 = load i32, ptr @test_count, align 4, !tbaa !5
  %1987 = load i32, ptr %122, align 4, !tbaa !5
  %1988 = call ptr @s2n_strerror(i32 noundef %1987, ptr noundef nonnull @.str.4) #9
  %1989 = load i32, ptr %122, align 4, !tbaa !5
  %1990 = call ptr @s2n_strerror_debug(i32 noundef %1989, ptr noundef nonnull @.str.4) #9
  %1991 = load i32, ptr %480, align 4, !tbaa !5
  %1992 = call ptr @strerror(i32 noundef %1991) #9
  %1993 = load i32, ptr %480, align 4, !tbaa !5
  %1994 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1985, ptr noundef nonnull %.str.5.sink1038, i32 noundef %1986, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 176, ptr noundef %1988, ptr noundef %1990, ptr noundef %1992, i32 noundef %1993) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1995:                                             ; preds = %1970
  %1996 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1997 = trunc nuw i8 %1996 to i1
  br i1 %1997, label %1998, label %2009

1998:                                             ; preds = %1995
  %1999 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2000 = call i32 @fileno(ptr noundef %1999) #9
  %2001 = call i32 @isatty(i32 noundef %2000) #9
  %.not253 = icmp eq i32 %2001, 0
  br i1 %.not253, label %2009, label %2002

2002:                                             ; preds = %1998
  %2003 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not255 = icmp eq i32 %2003, 0
  %2004 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not255, label %2007, label %2005

2005:                                             ; preds = %2002
  %2006 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2004, ptr noundef nonnull @.str.30, i32 noundef %2003) #9
  br label %2016

2007:                                             ; preds = %2002
  %2008 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2004, ptr noundef nonnull @.str.31) #9
  br label %2016

2009:                                             ; preds = %1998, %1995
  %2010 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not254 = icmp eq i32 %2010, 0
  %2011 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not254, label %2014, label %2012

2012:                                             ; preds = %2009
  %2013 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2011, ptr noundef nonnull @.str.32, i32 noundef %2010) #9
  br label %2016

2014:                                             ; preds = %2009
  %2015 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2011, ptr noundef nonnull @.str.33) #9
  br label %2016

2016:                                             ; preds = %2012, %2014, %2005, %2007
  ret i32 0
}

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

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

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) local_unnamed_addr #2

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

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

declare i32 @s2n_print_stacktrace(ptr noundef) local_unnamed_addr #2

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

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

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

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

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

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

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

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

declare i32 @s2n_enable_atexit() local_unnamed_addr #2

declare i32 @s2n_init() local_unnamed_addr #2

declare i32 @s2n_disable_tls13_in_test(...) local_unnamed_addr #2

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

declare ptr @s2n_connection_new(i32 noundef) local_unnamed_addr #2

declare i32 @s2n_tls13_client_finished_send(ptr noundef) local_unnamed_addr #2

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

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

declare i32 @s2n_tls13_client_finished_recv(ptr noundef) local_unnamed_addr #2

declare void @s2n_debug_info_reset() local_unnamed_addr #2

declare i32 @s2n_stuffer_write_uint8(ptr noundef, i8 noundef zeroext) local_unnamed_addr #2

declare i32 @s2n_connection_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_cleanup() local_unnamed_addr #2

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

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

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


; Effective O3 passes: EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,LCSSAPass,LICMPass,LoopRotatePass,LoopUnrollPass,PostOrderFunctionAttrsPass,SROAPass,SimplifyCFGPass,TailCallElimPass