; LLVM IR from aws/s2n-tls :: tests/unit (s2n_post_handshake_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_handshake_action = type { i8, i8, i8, [2 x ptr] }
%struct.s2n_cipher_suite = type { i8, ptr, ptr, [2 x i8], ptr, i32, ptr, [2 x ptr], i8, ptr, ptr, i32, i8 }
%struct.s2n_result = type { i32 }
%struct.s2n_blob = type { ptr, i32, i32, i8 }
%struct.s2n_stuffer = type { %struct.s2n_blob, i32, i32, 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_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
@s2n_errno = external thread_local global i32, align 4
@tls13_state_machine = external hidden global [21 x %struct.s2n_handshake_action], align 16
@state_machine = external hidden global [21 x %struct.s2n_handshake_action], align 16
@test_count = external dso_local global i32, align 4
@stdout = external global ptr, align 8
@.str.20 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [82 x i8], align 1
@stderr = external global ptr, align 8
@.str.22 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [72 x i8], align 1
@s2n_tls13_aes_256_gcm_sha384 = external global %struct.s2n_cipher_suite, align 8
@.str.29 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [113 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [25 x i8], align 1

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

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

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

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

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

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

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

declare zeroext i1 @s2n_connection_check_io_status(ptr noundef, i32 noundef) #2

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

; Function Attrs: nounwind uwtable
define dso_local i32 @main(i32 noundef %0, ptr noundef %1) #6 {
  %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 ptr, align 8
  %10 = alloca i32, align 4
  %11 = alloca i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca %struct.s2n_result, align 4
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca ptr, align 8
  %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 %struct.s2n_result, 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 ptr, align 8
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca %struct.s2n_result, 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 ptr, align 8
  %43 = alloca i32, align 4
  %44 = alloca i8, align 1
  %45 = alloca i64, align 8
  %46 = alloca [5 x i8], align 1
  %47 = alloca %struct.s2n_blob, align 8
  %48 = alloca i32, align 4
  %49 = alloca i32, align 4
  %50 = alloca i32, align 4
  %51 = alloca %struct.s2n_result, align 4
  %52 = alloca i32, align 4
  %53 = alloca i32, align 4
  %54 = alloca i32, align 4
  %55 = alloca ptr, align 8
  %56 = alloca i32, align 4
  %57 = alloca i32, align 4
  %58 = alloca i32, align 4
  %59 = alloca %struct.s2n_result, align 4
  %60 = alloca i32, align 4
  %61 = alloca i32, align 4
  %62 = alloca i64, align 8
  %63 = alloca i32, align 4
  %64 = alloca ptr, align 8
  %65 = alloca i32, align 4
  %66 = alloca i32, align 4
  %67 = alloca i32, align 4
  %68 = alloca %struct.s2n_result, align 4
  %69 = alloca i32, align 4
  %70 = alloca i32, align 4
  %71 = alloca i32, align 4
  %72 = alloca i32, align 4
  %73 = alloca i64, align 8
  %74 = alloca ptr, align 8
  %75 = alloca i32, align 4
  %76 = alloca i32, align 4
  %77 = alloca i32, align 4
  %78 = alloca %struct.s2n_result, align 4
  %79 = alloca i32, align 4
  %80 = alloca i32, align 4
  %81 = alloca i32, align 4
  %82 = alloca i32, align 4
  %83 = alloca ptr, align 8
  %84 = alloca i32, align 4
  %85 = alloca %struct.s2n_result, align 4
  %86 = alloca i32, align 4
  %87 = alloca %struct.s2n_stuffer, align 8
  %88 = alloca i32, align 4
  %89 = alloca i32, align 4
  %90 = alloca i32, align 4
  %91 = alloca i32, align 4
  %92 = alloca i32, align 4
  %93 = alloca %struct.s2n_result, align 4
  %94 = alloca ptr, align 8
  %95 = alloca i32, align 4
  %96 = alloca %struct.s2n_result, align 4
  %97 = alloca i32, align 4
  %98 = alloca i32, align 4
  %99 = alloca i32, align 4
  %100 = alloca i32, align 4
  %101 = alloca %struct.s2n_result, align 4
  %102 = alloca ptr, align 8
  %103 = alloca i32, align 4
  %104 = alloca %struct.s2n_result, align 4
  %105 = alloca i32, align 4
  %106 = alloca i32, align 4
  %107 = alloca i32, align 4
  %108 = alloca i32, align 4
  %109 = alloca i32, align 4
  %110 = alloca %struct.s2n_result, align 4
  %111 = alloca ptr, align 8
  %112 = alloca i32, align 4
  %113 = alloca i32, align 4
  %114 = alloca ptr, align 8
  %115 = alloca i32, align 4
  %116 = alloca i32, align 4
  %117 = alloca i32, align 4
  %118 = alloca %struct.s2n_stuffer, align 8
  %119 = alloca i32, align 4
  %120 = alloca i32, align 4
  %121 = alloca i32, align 4
  %122 = alloca i32, align 4
  %123 = alloca %struct.s2n_result, align 4
  %124 = alloca i32, align 4
  %125 = alloca [10 x i8], align 1
  %126 = alloca i32, align 4
  %127 = alloca i32, align 4
  %128 = alloca i32, align 4
  %129 = alloca i32, align 4
  %130 = alloca i32, align 4
  %131 = alloca i32, align 4
  %132 = alloca i32, align 4
  %133 = alloca i32, align 4
  %134 = 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 %135

135:                                              ; preds = %2
  br label %136

136:                                              ; preds = %135
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %137 = load ptr, ptr @stdout, align 8, !tbaa !9
  %138 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %137, ptr noundef @.str.20, ptr noundef @.str.21) #9
  %139 = load ptr, ptr @stdout, align 8, !tbaa !9
  %140 = call i32 @fflush(ptr noundef %139)
  br label %141

141:                                              ; preds = %136
  %142 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %143 = icmp eq i32 %142, -1
  br i1 %143, label %144, label %195

144:                                              ; preds = %141
  br label %145

145:                                              ; preds = %144
  br label %146

146:                                              ; preds = %145
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #9
  %147 = call ptr @__errno_location() #10
  %148 = load i32, ptr %147, align 4, !tbaa !5
  store i32 %148, ptr %6, align 4, !tbaa !5
  %149 = load ptr, ptr @stderr, align 8, !tbaa !9
  %150 = call i32 @s2n_print_stacktrace(ptr noundef %149)
  %151 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %152 = trunc i8 %151 to i1
  br i1 %152, label %153, label %175

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

158:                                              ; preds = %153
  %159 = load i32, ptr %6, align 4, !tbaa !5
  %160 = call ptr @__errno_location() #10
  store i32 %159, ptr %160, align 4, !tbaa !5
  %161 = load ptr, ptr @stderr, align 8, !tbaa !9
  %162 = load i32, ptr @test_count, align 4, !tbaa !5
  %163 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %164 = load i32, ptr %163, align 4, !tbaa !5
  %165 = call ptr @s2n_strerror(i32 noundef %164, ptr noundef @.str.24)
  %166 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %167 = load i32, ptr %166, align 4, !tbaa !5
  %168 = call ptr @s2n_strerror_debug(i32 noundef %167, ptr noundef @.str.24)
  %169 = call ptr @__errno_location() #10
  %170 = load i32, ptr %169, align 4, !tbaa !5
  %171 = call ptr @strerror(i32 noundef %170) #9
  %172 = call ptr @__errno_location() #10
  %173 = load i32, ptr %172, align 4, !tbaa !5
  %174 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %161, ptr noundef @.str.22, i32 noundef %162, ptr noundef @.str.23, ptr noundef @.str.21, i32 noundef 38, ptr noundef %165, ptr noundef %168, ptr noundef %171, i32 noundef %173) #9
  br label %192

175:                                              ; preds = %153, %146
  %176 = load i32, ptr %6, align 4, !tbaa !5
  %177 = call ptr @__errno_location() #10
  store i32 %176, ptr %177, align 4, !tbaa !5
  %178 = load ptr, ptr @stderr, align 8, !tbaa !9
  %179 = load i32, ptr @test_count, align 4, !tbaa !5
  %180 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %181 = load i32, ptr %180, align 4, !tbaa !5
  %182 = call ptr @s2n_strerror(i32 noundef %181, ptr noundef @.str.24)
  %183 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %184 = load i32, ptr %183, align 4, !tbaa !5
  %185 = call ptr @s2n_strerror_debug(i32 noundef %184, ptr noundef @.str.24)
  %186 = call ptr @__errno_location() #10
  %187 = load i32, ptr %186, align 4, !tbaa !5
  %188 = call ptr @strerror(i32 noundef %187) #9
  %189 = call ptr @__errno_location() #10
  %190 = load i32, ptr %189, align 4, !tbaa !5
  %191 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %178, ptr noundef @.str.25, i32 noundef %179, ptr noundef @.str.23, ptr noundef @.str.21, i32 noundef 38, ptr noundef %182, ptr noundef %185, ptr noundef %188, i32 noundef %190) #9
  br label %192

192:                                              ; preds = %175, %158
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #9
  br label %193

193:                                              ; preds = %192
  call void @exit(i32 noundef 1) #11
  unreachable

194:                                              ; No predecessors!
  br label %195

195:                                              ; preds = %194, %141
  br label %196

196:                                              ; preds = %195
  br label %197

197:                                              ; preds = %196
  %198 = load i32, ptr @test_count, align 4, !tbaa !5
  %199 = add nsw i32 %198, 1
  store i32 %199, ptr @test_count, align 4, !tbaa !5
  %200 = call i32 @s2n_enable_atexit()
  %201 = icmp eq i32 %200, -1
  br i1 %201, label %202, label %253

202:                                              ; preds = %197
  br label %203

203:                                              ; preds = %202
  br label %204

204:                                              ; preds = %203
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #9
  %205 = call ptr @__errno_location() #10
  %206 = load i32, ptr %205, align 4, !tbaa !5
  store i32 %206, ptr %7, align 4, !tbaa !5
  %207 = load ptr, ptr @stderr, align 8, !tbaa !9
  %208 = call i32 @s2n_print_stacktrace(ptr noundef %207)
  %209 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %210 = trunc i8 %209 to i1
  br i1 %210, label %211, label %233

211:                                              ; preds = %204
  %212 = load ptr, ptr @stderr, align 8, !tbaa !9
  %213 = call i32 @fileno(ptr noundef %212) #9
  %214 = call i32 @isatty(i32 noundef %213) #9
  %215 = icmp ne i32 %214, 0
  br i1 %215, label %216, label %233

216:                                              ; preds = %211
  %217 = load i32, ptr %7, align 4, !tbaa !5
  %218 = call ptr @__errno_location() #10
  store i32 %217, ptr %218, align 4, !tbaa !5
  %219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %220 = load i32, ptr @test_count, align 4, !tbaa !5
  %221 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %222 = load i32, ptr %221, align 4, !tbaa !5
  %223 = call ptr @s2n_strerror(i32 noundef %222, ptr noundef @.str.24)
  %224 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %225 = load i32, ptr %224, align 4, !tbaa !5
  %226 = call ptr @s2n_strerror_debug(i32 noundef %225, ptr noundef @.str.24)
  %227 = call ptr @__errno_location() #10
  %228 = load i32, ptr %227, align 4, !tbaa !5
  %229 = call ptr @strerror(i32 noundef %228) #9
  %230 = call ptr @__errno_location() #10
  %231 = load i32, ptr %230, align 4, !tbaa !5
  %232 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %219, ptr noundef @.str.22, i32 noundef %220, ptr noundef @.str.26, ptr noundef @.str.21, i32 noundef 38, ptr noundef %223, ptr noundef %226, ptr noundef %229, i32 noundef %231) #9
  br label %250

233:                                              ; preds = %211, %204
  %234 = load i32, ptr %7, align 4, !tbaa !5
  %235 = call ptr @__errno_location() #10
  store i32 %234, ptr %235, align 4, !tbaa !5
  %236 = load ptr, ptr @stderr, align 8, !tbaa !9
  %237 = load i32, ptr @test_count, align 4, !tbaa !5
  %238 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %239 = load i32, ptr %238, align 4, !tbaa !5
  %240 = call ptr @s2n_strerror(i32 noundef %239, ptr noundef @.str.24)
  %241 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %242 = load i32, ptr %241, align 4, !tbaa !5
  %243 = call ptr @s2n_strerror_debug(i32 noundef %242, ptr noundef @.str.24)
  %244 = call ptr @__errno_location() #10
  %245 = load i32, ptr %244, align 4, !tbaa !5
  %246 = call ptr @strerror(i32 noundef %245) #9
  %247 = call ptr @__errno_location() #10
  %248 = load i32, ptr %247, align 4, !tbaa !5
  %249 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %236, ptr noundef @.str.25, i32 noundef %237, ptr noundef @.str.26, ptr noundef @.str.21, i32 noundef 38, ptr noundef %240, ptr noundef %243, ptr noundef %246, i32 noundef %248) #9
  br label %250

250:                                              ; preds = %233, %216
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #9
  br label %251

251:                                              ; preds = %250
  call void @exit(i32 noundef 1) #11
  unreachable

252:                                              ; No predecessors!
  br label %253

253:                                              ; preds = %252, %197
  br label %254

254:                                              ; preds = %253
  br label %255

255:                                              ; preds = %254
  br label %256

256:                                              ; preds = %255
  %257 = call i32 @s2n_init()
  %258 = icmp eq i32 %257, -1
  br i1 %258, label %259, label %310

259:                                              ; preds = %256
  br label %260

260:                                              ; preds = %259
  br label %261

261:                                              ; preds = %260
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #9
  %262 = call ptr @__errno_location() #10
  %263 = load i32, ptr %262, align 4, !tbaa !5
  store i32 %263, ptr %8, align 4, !tbaa !5
  %264 = load ptr, ptr @stderr, align 8, !tbaa !9
  %265 = call i32 @s2n_print_stacktrace(ptr noundef %264)
  %266 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %267 = trunc i8 %266 to i1
  br i1 %267, label %268, label %290

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

273:                                              ; preds = %268
  %274 = load i32, ptr %8, align 4, !tbaa !5
  %275 = call ptr @__errno_location() #10
  store i32 %274, ptr %275, align 4, !tbaa !5
  %276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %277 = load i32, ptr @test_count, align 4, !tbaa !5
  %278 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %279 = load i32, ptr %278, align 4, !tbaa !5
  %280 = call ptr @s2n_strerror(i32 noundef %279, ptr noundef @.str.24)
  %281 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %282 = load i32, ptr %281, align 4, !tbaa !5
  %283 = call ptr @s2n_strerror_debug(i32 noundef %282, ptr noundef @.str.24)
  %284 = call ptr @__errno_location() #10
  %285 = load i32, ptr %284, align 4, !tbaa !5
  %286 = call ptr @strerror(i32 noundef %285) #9
  %287 = call ptr @__errno_location() #10
  %288 = load i32, ptr %287, align 4, !tbaa !5
  %289 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %276, ptr noundef @.str.22, i32 noundef %277, ptr noundef @.str.27, ptr noundef @.str.21, i32 noundef 38, ptr noundef %280, ptr noundef %283, ptr noundef %286, i32 noundef %288) #9
  br label %307

290:                                              ; preds = %268, %261
  %291 = load i32, ptr %8, align 4, !tbaa !5
  %292 = call ptr @__errno_location() #10
  store i32 %291, ptr %292, align 4, !tbaa !5
  %293 = load ptr, ptr @stderr, align 8, !tbaa !9
  %294 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %296, ptr noundef @.str.24)
  %298 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %299 = load i32, ptr %298, align 4, !tbaa !5
  %300 = call ptr @s2n_strerror_debug(i32 noundef %299, ptr noundef @.str.24)
  %301 = call ptr @__errno_location() #10
  %302 = load i32, ptr %301, align 4, !tbaa !5
  %303 = call ptr @strerror(i32 noundef %302) #9
  %304 = call ptr @__errno_location() #10
  %305 = load i32, ptr %304, align 4, !tbaa !5
  %306 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %293, ptr noundef @.str.25, i32 noundef %294, ptr noundef @.str.27, ptr noundef @.str.21, i32 noundef 38, ptr noundef %297, ptr noundef %300, ptr noundef %303, i32 noundef %305) #9
  br label %307

307:                                              ; preds = %290, %273
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #9
  br label %308

308:                                              ; preds = %307
  call void @exit(i32 noundef 1) #11
  unreachable

309:                                              ; No predecessors!
  br label %310

310:                                              ; preds = %309, %256
  br label %311

311:                                              ; preds = %310
  br label %312

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

313:                                              ; preds = %312
  %314 = load i32, ptr @test_count, align 4, !tbaa !5
  %315 = add nsw i32 %314, 1
  store i32 %315, ptr @test_count, align 4, !tbaa !5
  %316 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %316, ptr %9, align 8, !tbaa !9
  %317 = icmp eq ptr %316, null
  br i1 %317, label %318, label %371

318:                                              ; preds = %313
  br label %319

319:                                              ; preds = %318
  br label %320

320:                                              ; preds = %319
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #9
  %321 = call ptr @__errno_location() #10
  %322 = load i32, ptr %321, align 4, !tbaa !5
  store i32 %322, ptr %10, align 4, !tbaa !5
  %323 = load ptr, ptr @stderr, align 8, !tbaa !9
  %324 = call i32 @s2n_print_stacktrace(ptr noundef %323)
  %325 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %326 = trunc i8 %325 to i1
  br i1 %326, label %327, label %349

327:                                              ; preds = %320
  %328 = load ptr, ptr @stderr, align 8, !tbaa !9
  %329 = call i32 @fileno(ptr noundef %328) #9
  %330 = call i32 @isatty(i32 noundef %329) #9
  %331 = icmp ne i32 %330, 0
  br i1 %331, label %332, label %349

332:                                              ; preds = %327
  %333 = load i32, ptr %10, align 4, !tbaa !5
  %334 = call ptr @__errno_location() #10
  store i32 %333, ptr %334, align 4, !tbaa !5
  %335 = load ptr, ptr @stderr, align 8, !tbaa !9
  %336 = load i32, ptr @test_count, align 4, !tbaa !5
  %337 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %338 = load i32, ptr %337, align 4, !tbaa !5
  %339 = call ptr @s2n_strerror(i32 noundef %338, ptr noundef @.str.24)
  %340 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %341 = load i32, ptr %340, align 4, !tbaa !5
  %342 = call ptr @s2n_strerror_debug(i32 noundef %341, ptr noundef @.str.24)
  %343 = call ptr @__errno_location() #10
  %344 = load i32, ptr %343, align 4, !tbaa !5
  %345 = call ptr @strerror(i32 noundef %344) #9
  %346 = call ptr @__errno_location() #10
  %347 = load i32, ptr %346, align 4, !tbaa !5
  %348 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %335, ptr noundef @.str.22, i32 noundef %336, ptr noundef @.str.28, ptr noundef @.str.21, i32 noundef 45, ptr noundef %339, ptr noundef %342, ptr noundef %345, i32 noundef %347) #9
  br label %366

349:                                              ; preds = %327, %320
  %350 = load i32, ptr %10, align 4, !tbaa !5
  %351 = call ptr @__errno_location() #10
  store i32 %350, ptr %351, align 4, !tbaa !5
  %352 = load ptr, ptr @stderr, align 8, !tbaa !9
  %353 = load i32, ptr @test_count, align 4, !tbaa !5
  %354 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %355 = load i32, ptr %354, align 4, !tbaa !5
  %356 = call ptr @s2n_strerror(i32 noundef %355, ptr noundef @.str.24)
  %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_debug(i32 noundef %358, ptr noundef @.str.24)
  %360 = call ptr @__errno_location() #10
  %361 = load i32, ptr %360, align 4, !tbaa !5
  %362 = call ptr @strerror(i32 noundef %361) #9
  %363 = call ptr @__errno_location() #10
  %364 = load i32, ptr %363, align 4, !tbaa !5
  %365 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %352, ptr noundef @.str.25, i32 noundef %353, ptr noundef @.str.28, ptr noundef @.str.21, i32 noundef 45, ptr noundef %356, ptr noundef %359, ptr noundef %362, i32 noundef %364) #9
  br label %366

366:                                              ; preds = %349, %332
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #9
  br label %367

367:                                              ; preds = %366
  br label %368

368:                                              ; preds = %367
  call void @exit(i32 noundef 1) #11
  unreachable

369:                                              ; No predecessors!
  br label %370

370:                                              ; preds = %369
  br label %371

371:                                              ; preds = %370, %313
  br label %372

372:                                              ; preds = %371
  br label %373

373:                                              ; preds = %372
  %374 = load ptr, ptr %9, align 8, !tbaa !9
  %375 = getelementptr inbounds %struct.s2n_connection, ptr %374, i32 0, i32 23
  store i8 34, ptr %375, align 4, !tbaa !15
  %376 = load ptr, ptr %9, align 8, !tbaa !9
  %377 = getelementptr inbounds %struct.s2n_connection, ptr %376, i32 0, i32 27
  %378 = load ptr, ptr %377, align 8, !tbaa !42
  %379 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %378, i32 0, i32 0
  store ptr @s2n_tls13_aes_256_gcm_sha384, ptr %379, align 8, !tbaa !43
  br label %380

380:                                              ; preds = %373
  %381 = load i32, ptr @test_count, align 4, !tbaa !5
  %382 = add nsw i32 %381, 1
  store i32 %382, ptr @test_count, align 4, !tbaa !5
  %383 = load ptr, ptr %9, align 8, !tbaa !9
  %384 = getelementptr inbounds %struct.s2n_connection, ptr %383, i32 0, i32 94
  %385 = call zeroext i1 @s2n_atomic_flag_test(ptr noundef %384)
  br i1 %385, label %386, label %439

386:                                              ; preds = %380
  br label %387

387:                                              ; preds = %386
  br label %388

388:                                              ; preds = %387
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #9
  %389 = call ptr @__errno_location() #10
  %390 = load i32, ptr %389, align 4, !tbaa !5
  store i32 %390, ptr %11, align 4, !tbaa !5
  %391 = load ptr, ptr @stderr, align 8, !tbaa !9
  %392 = call i32 @s2n_print_stacktrace(ptr noundef %391)
  %393 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %394 = trunc i8 %393 to i1
  br i1 %394, label %395, label %417

395:                                              ; preds = %388
  %396 = load ptr, ptr @stderr, align 8, !tbaa !9
  %397 = call i32 @fileno(ptr noundef %396) #9
  %398 = call i32 @isatty(i32 noundef %397) #9
  %399 = icmp ne i32 %398, 0
  br i1 %399, label %400, label %417

400:                                              ; preds = %395
  %401 = load i32, ptr %11, align 4, !tbaa !5
  %402 = call ptr @__errno_location() #10
  store i32 %401, ptr %402, align 4, !tbaa !5
  %403 = load ptr, ptr @stderr, align 8, !tbaa !9
  %404 = load i32, ptr @test_count, align 4, !tbaa !5
  %405 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %406 = load i32, ptr %405, align 4, !tbaa !5
  %407 = call ptr @s2n_strerror(i32 noundef %406, ptr noundef @.str.24)
  %408 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %409 = load i32, ptr %408, align 4, !tbaa !5
  %410 = call ptr @s2n_strerror_debug(i32 noundef %409, ptr noundef @.str.24)
  %411 = call ptr @__errno_location() #10
  %412 = load i32, ptr %411, align 4, !tbaa !5
  %413 = call ptr @strerror(i32 noundef %412) #9
  %414 = call ptr @__errno_location() #10
  %415 = load i32, ptr %414, align 4, !tbaa !5
  %416 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %403, ptr noundef @.str.22, i32 noundef %404, ptr noundef @.str.29, ptr noundef @.str.21, i32 noundef 48, ptr noundef %407, ptr noundef %410, ptr noundef %413, i32 noundef %415) #9
  br label %434

417:                                              ; preds = %395, %388
  %418 = load i32, ptr %11, align 4, !tbaa !5
  %419 = call ptr @__errno_location() #10
  store i32 %418, ptr %419, align 4, !tbaa !5
  %420 = load ptr, ptr @stderr, align 8, !tbaa !9
  %421 = load i32, ptr @test_count, align 4, !tbaa !5
  %422 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %423 = load i32, ptr %422, align 4, !tbaa !5
  %424 = call ptr @s2n_strerror(i32 noundef %423, ptr noundef @.str.24)
  %425 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %426 = load i32, ptr %425, align 4, !tbaa !5
  %427 = call ptr @s2n_strerror_debug(i32 noundef %426, ptr noundef @.str.24)
  %428 = call ptr @__errno_location() #10
  %429 = load i32, ptr %428, align 4, !tbaa !5
  %430 = call ptr @strerror(i32 noundef %429) #9
  %431 = call ptr @__errno_location() #10
  %432 = load i32, ptr %431, align 4, !tbaa !5
  %433 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %420, ptr noundef @.str.25, i32 noundef %421, ptr noundef @.str.29, ptr noundef @.str.21, i32 noundef 48, ptr noundef %424, ptr noundef %427, ptr noundef %430, i32 noundef %432) #9
  br label %434

434:                                              ; preds = %417, %400
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #9
  br label %435

435:                                              ; preds = %434
  br label %436

436:                                              ; preds = %435
  call void @exit(i32 noundef 1) #11
  unreachable

437:                                              ; No predecessors!
  br label %438

438:                                              ; preds = %437
  br label %439

439:                                              ; preds = %438, %380
  br label %440

440:                                              ; preds = %439
  br label %441

441:                                              ; preds = %440
  br label %442

442:                                              ; preds = %441
  %443 = load i32, ptr @test_count, align 4, !tbaa !5
  %444 = add nsw i32 %443, 1
  store i32 %444, ptr @test_count, align 4, !tbaa !5
  %445 = load ptr, ptr %9, align 8, !tbaa !9
  %446 = getelementptr inbounds %struct.s2n_connection, ptr %445, i32 0, i32 40
  %447 = call i32 @s2n_stuffer_write_uint8(ptr noundef %446, i8 noundef zeroext 24)
  %448 = icmp eq i32 %447, -1
  br i1 %448, label %449, label %502

449:                                              ; preds = %442
  br label %450

450:                                              ; preds = %449
  br label %451

451:                                              ; preds = %450
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #9
  %452 = call ptr @__errno_location() #10
  %453 = load i32, ptr %452, align 4, !tbaa !5
  store i32 %453, ptr %12, align 4, !tbaa !5
  %454 = load ptr, ptr @stderr, align 8, !tbaa !9
  %455 = call i32 @s2n_print_stacktrace(ptr noundef %454)
  %456 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %457 = trunc i8 %456 to i1
  br i1 %457, label %458, label %480

458:                                              ; preds = %451
  %459 = load ptr, ptr @stderr, align 8, !tbaa !9
  %460 = call i32 @fileno(ptr noundef %459) #9
  %461 = call i32 @isatty(i32 noundef %460) #9
  %462 = icmp ne i32 %461, 0
  br i1 %462, label %463, label %480

463:                                              ; preds = %458
  %464 = load i32, ptr %12, align 4, !tbaa !5
  %465 = call ptr @__errno_location() #10
  store i32 %464, ptr %465, align 4, !tbaa !5
  %466 = load ptr, ptr @stderr, align 8, !tbaa !9
  %467 = load i32, ptr @test_count, align 4, !tbaa !5
  %468 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %469 = load i32, ptr %468, align 4, !tbaa !5
  %470 = call ptr @s2n_strerror(i32 noundef %469, ptr noundef @.str.24)
  %471 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %472 = load i32, ptr %471, align 4, !tbaa !5
  %473 = call ptr @s2n_strerror_debug(i32 noundef %472, ptr noundef @.str.24)
  %474 = call ptr @__errno_location() #10
  %475 = load i32, ptr %474, align 4, !tbaa !5
  %476 = call ptr @strerror(i32 noundef %475) #9
  %477 = call ptr @__errno_location() #10
  %478 = load i32, ptr %477, align 4, !tbaa !5
  %479 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %466, ptr noundef @.str.22, i32 noundef %467, ptr noundef @.str.30, ptr noundef @.str.21, i32 noundef 51, ptr noundef %470, ptr noundef %473, ptr noundef %476, i32 noundef %478) #9
  br label %497

480:                                              ; preds = %458, %451
  %481 = load i32, ptr %12, align 4, !tbaa !5
  %482 = call ptr @__errno_location() #10
  store i32 %481, ptr %482, align 4, !tbaa !5
  %483 = load ptr, ptr @stderr, align 8, !tbaa !9
  %484 = load i32, ptr @test_count, align 4, !tbaa !5
  %485 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %486 = load i32, ptr %485, align 4, !tbaa !5
  %487 = call ptr @s2n_strerror(i32 noundef %486, ptr noundef @.str.24)
  %488 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %489 = load i32, ptr %488, align 4, !tbaa !5
  %490 = call ptr @s2n_strerror_debug(i32 noundef %489, ptr noundef @.str.24)
  %491 = call ptr @__errno_location() #10
  %492 = load i32, ptr %491, align 4, !tbaa !5
  %493 = call ptr @strerror(i32 noundef %492) #9
  %494 = call ptr @__errno_location() #10
  %495 = load i32, ptr %494, align 4, !tbaa !5
  %496 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %483, ptr noundef @.str.25, i32 noundef %484, ptr noundef @.str.30, ptr noundef @.str.21, i32 noundef 51, ptr noundef %487, ptr noundef %490, ptr noundef %493, i32 noundef %495) #9
  br label %497

497:                                              ; preds = %480, %463
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #9
  br label %498

498:                                              ; preds = %497
  br label %499

499:                                              ; preds = %498
  call void @exit(i32 noundef 1) #11
  unreachable

500:                                              ; No predecessors!
  br label %501

501:                                              ; preds = %500
  br label %502

502:                                              ; preds = %501, %442
  br label %503

503:                                              ; preds = %502
  br label %504

504:                                              ; preds = %503
  br label %505

505:                                              ; preds = %504
  %506 = load i32, ptr @test_count, align 4, !tbaa !5
  %507 = add nsw i32 %506, 1
  store i32 %507, ptr @test_count, align 4, !tbaa !5
  %508 = load ptr, ptr %9, align 8, !tbaa !9
  %509 = getelementptr inbounds %struct.s2n_connection, ptr %508, i32 0, i32 40
  %510 = call i32 @s2n_stuffer_write_uint24(ptr noundef %509, i32 noundef 1)
  %511 = icmp eq i32 %510, -1
  br i1 %511, label %512, label %565

512:                                              ; preds = %505
  br label %513

513:                                              ; preds = %512
  br label %514

514:                                              ; preds = %513
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #9
  %515 = call ptr @__errno_location() #10
  %516 = load i32, ptr %515, align 4, !tbaa !5
  store i32 %516, ptr %13, align 4, !tbaa !5
  %517 = load ptr, ptr @stderr, align 8, !tbaa !9
  %518 = call i32 @s2n_print_stacktrace(ptr noundef %517)
  %519 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %520 = trunc i8 %519 to i1
  br i1 %520, label %521, label %543

521:                                              ; preds = %514
  %522 = load ptr, ptr @stderr, align 8, !tbaa !9
  %523 = call i32 @fileno(ptr noundef %522) #9
  %524 = call i32 @isatty(i32 noundef %523) #9
  %525 = icmp ne i32 %524, 0
  br i1 %525, label %526, label %543

526:                                              ; preds = %521
  %527 = load i32, ptr %13, align 4, !tbaa !5
  %528 = call ptr @__errno_location() #10
  store i32 %527, ptr %528, align 4, !tbaa !5
  %529 = load ptr, ptr @stderr, align 8, !tbaa !9
  %530 = load i32, ptr @test_count, align 4, !tbaa !5
  %531 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %532 = load i32, ptr %531, align 4, !tbaa !5
  %533 = call ptr @s2n_strerror(i32 noundef %532, ptr noundef @.str.24)
  %534 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %535 = load i32, ptr %534, align 4, !tbaa !5
  %536 = call ptr @s2n_strerror_debug(i32 noundef %535, ptr noundef @.str.24)
  %537 = call ptr @__errno_location() #10
  %538 = load i32, ptr %537, align 4, !tbaa !5
  %539 = call ptr @strerror(i32 noundef %538) #9
  %540 = call ptr @__errno_location() #10
  %541 = load i32, ptr %540, align 4, !tbaa !5
  %542 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %529, ptr noundef @.str.22, i32 noundef %530, ptr noundef @.str.31, ptr noundef @.str.21, i32 noundef 52, ptr noundef %533, ptr noundef %536, ptr noundef %539, i32 noundef %541) #9
  br label %560

543:                                              ; preds = %521, %514
  %544 = load i32, ptr %13, align 4, !tbaa !5
  %545 = call ptr @__errno_location() #10
  store i32 %544, ptr %545, align 4, !tbaa !5
  %546 = load ptr, ptr @stderr, align 8, !tbaa !9
  %547 = load i32, ptr @test_count, align 4, !tbaa !5
  %548 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %549 = load i32, ptr %548, align 4, !tbaa !5
  %550 = call ptr @s2n_strerror(i32 noundef %549, ptr noundef @.str.24)
  %551 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %552 = load i32, ptr %551, align 4, !tbaa !5
  %553 = call ptr @s2n_strerror_debug(i32 noundef %552, ptr noundef @.str.24)
  %554 = call ptr @__errno_location() #10
  %555 = load i32, ptr %554, align 4, !tbaa !5
  %556 = call ptr @strerror(i32 noundef %555) #9
  %557 = call ptr @__errno_location() #10
  %558 = load i32, ptr %557, align 4, !tbaa !5
  %559 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %546, ptr noundef @.str.25, i32 noundef %547, ptr noundef @.str.31, ptr noundef @.str.21, i32 noundef 52, ptr noundef %550, ptr noundef %553, ptr noundef %556, i32 noundef %558) #9
  br label %560

560:                                              ; preds = %543, %526
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #9
  br label %561

561:                                              ; preds = %560
  br label %562

562:                                              ; preds = %561
  call void @exit(i32 noundef 1) #11
  unreachable

563:                                              ; No predecessors!
  br label %564

564:                                              ; preds = %563
  br label %565

565:                                              ; preds = %564, %505
  br label %566

566:                                              ; preds = %565
  br label %567

567:                                              ; preds = %566
  br label %568

568:                                              ; preds = %567
  %569 = load i32, ptr @test_count, align 4, !tbaa !5
  %570 = add nsw i32 %569, 1
  store i32 %570, ptr @test_count, align 4, !tbaa !5
  %571 = load ptr, ptr %9, align 8, !tbaa !9
  %572 = getelementptr inbounds %struct.s2n_connection, ptr %571, i32 0, i32 40
  %573 = call i32 @s2n_stuffer_write_uint8(ptr noundef %572, i8 noundef zeroext 1)
  %574 = icmp eq i32 %573, -1
  br i1 %574, label %575, label %628

575:                                              ; preds = %568
  br label %576

576:                                              ; preds = %575
  br label %577

577:                                              ; preds = %576
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #9
  %578 = call ptr @__errno_location() #10
  %579 = load i32, ptr %578, align 4, !tbaa !5
  store i32 %579, ptr %14, align 4, !tbaa !5
  %580 = load ptr, ptr @stderr, align 8, !tbaa !9
  %581 = call i32 @s2n_print_stacktrace(ptr noundef %580)
  %582 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %583 = trunc i8 %582 to i1
  br i1 %583, label %584, label %606

584:                                              ; preds = %577
  %585 = load ptr, ptr @stderr, align 8, !tbaa !9
  %586 = call i32 @fileno(ptr noundef %585) #9
  %587 = call i32 @isatty(i32 noundef %586) #9
  %588 = icmp ne i32 %587, 0
  br i1 %588, label %589, label %606

589:                                              ; preds = %584
  %590 = load i32, ptr %14, align 4, !tbaa !5
  %591 = call ptr @__errno_location() #10
  store i32 %590, ptr %591, align 4, !tbaa !5
  %592 = load ptr, ptr @stderr, align 8, !tbaa !9
  %593 = load i32, ptr @test_count, align 4, !tbaa !5
  %594 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %595 = load i32, ptr %594, align 4, !tbaa !5
  %596 = call ptr @s2n_strerror(i32 noundef %595, ptr noundef @.str.24)
  %597 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %598 = load i32, ptr %597, align 4, !tbaa !5
  %599 = call ptr @s2n_strerror_debug(i32 noundef %598, ptr noundef @.str.24)
  %600 = call ptr @__errno_location() #10
  %601 = load i32, ptr %600, align 4, !tbaa !5
  %602 = call ptr @strerror(i32 noundef %601) #9
  %603 = call ptr @__errno_location() #10
  %604 = load i32, ptr %603, align 4, !tbaa !5
  %605 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %592, ptr noundef @.str.22, i32 noundef %593, ptr noundef @.str.32, ptr noundef @.str.21, i32 noundef 53, ptr noundef %596, ptr noundef %599, ptr noundef %602, i32 noundef %604) #9
  br label %623

606:                                              ; preds = %584, %577
  %607 = load i32, ptr %14, align 4, !tbaa !5
  %608 = call ptr @__errno_location() #10
  store i32 %607, ptr %608, align 4, !tbaa !5
  %609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %610 = load i32, ptr @test_count, align 4, !tbaa !5
  %611 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %612 = load i32, ptr %611, align 4, !tbaa !5
  %613 = call ptr @s2n_strerror(i32 noundef %612, ptr noundef @.str.24)
  %614 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %615 = load i32, ptr %614, align 4, !tbaa !5
  %616 = call ptr @s2n_strerror_debug(i32 noundef %615, ptr noundef @.str.24)
  %617 = call ptr @__errno_location() #10
  %618 = load i32, ptr %617, align 4, !tbaa !5
  %619 = call ptr @strerror(i32 noundef %618) #9
  %620 = call ptr @__errno_location() #10
  %621 = load i32, ptr %620, align 4, !tbaa !5
  %622 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %609, ptr noundef @.str.25, i32 noundef %610, ptr noundef @.str.32, ptr noundef @.str.21, i32 noundef 53, ptr noundef %613, ptr noundef %616, ptr noundef %619, i32 noundef %621) #9
  br label %623

623:                                              ; preds = %606, %589
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #9
  br label %624

624:                                              ; preds = %623
  br label %625

625:                                              ; preds = %624
  call void @exit(i32 noundef 1) #11
  unreachable

626:                                              ; No predecessors!
  br label %627

627:                                              ; preds = %626
  br label %628

628:                                              ; preds = %627, %568
  br label %629

629:                                              ; preds = %628
  br label %630

630:                                              ; preds = %629
  br label %631

631:                                              ; preds = %630
  %632 = load i32, ptr @test_count, align 4, !tbaa !5
  %633 = add nsw i32 %632, 1
  store i32 %633, ptr @test_count, align 4, !tbaa !5
  %634 = load ptr, ptr %9, align 8, !tbaa !9
  %635 = call i32 @s2n_post_handshake_recv(ptr noundef %634)
  %636 = getelementptr inbounds %struct.s2n_result, ptr %15, i32 0, i32 0
  store i32 %635, ptr %636, align 4
  %637 = getelementptr inbounds %struct.s2n_result, ptr %15, i32 0, i32 0
  %638 = load i32, ptr %637, align 4
  %639 = call zeroext i1 @s2n_result_is_ok(i32 %638)
  br i1 %639, label %693, label %640

640:                                              ; preds = %631
  br label %641

641:                                              ; preds = %640
  br label %642

642:                                              ; preds = %641
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #9
  %643 = call ptr @__errno_location() #10
  %644 = load i32, ptr %643, align 4, !tbaa !5
  store i32 %644, ptr %16, align 4, !tbaa !5
  %645 = load ptr, ptr @stderr, align 8, !tbaa !9
  %646 = call i32 @s2n_print_stacktrace(ptr noundef %645)
  %647 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %648 = trunc i8 %647 to i1
  br i1 %648, label %649, label %671

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

654:                                              ; preds = %649
  %655 = load i32, ptr %16, align 4, !tbaa !5
  %656 = call ptr @__errno_location() #10
  store i32 %655, ptr %656, align 4, !tbaa !5
  %657 = load ptr, ptr @stderr, align 8, !tbaa !9
  %658 = load i32, ptr @test_count, align 4, !tbaa !5
  %659 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %660 = load i32, ptr %659, align 4, !tbaa !5
  %661 = call ptr @s2n_strerror(i32 noundef %660, ptr noundef @.str.24)
  %662 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %663 = load i32, ptr %662, align 4, !tbaa !5
  %664 = call ptr @s2n_strerror_debug(i32 noundef %663, ptr noundef @.str.24)
  %665 = call ptr @__errno_location() #10
  %666 = load i32, ptr %665, align 4, !tbaa !5
  %667 = call ptr @strerror(i32 noundef %666) #9
  %668 = call ptr @__errno_location() #10
  %669 = load i32, ptr %668, align 4, !tbaa !5
  %670 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %657, ptr noundef @.str.22, i32 noundef %658, ptr noundef @.str.33, ptr noundef @.str.21, i32 noundef 55, ptr noundef %661, ptr noundef %664, ptr noundef %667, i32 noundef %669) #9
  br label %688

671:                                              ; preds = %649, %642
  %672 = load i32, ptr %16, align 4, !tbaa !5
  %673 = call ptr @__errno_location() #10
  store i32 %672, ptr %673, align 4, !tbaa !5
  %674 = load ptr, ptr @stderr, align 8, !tbaa !9
  %675 = load i32, ptr @test_count, align 4, !tbaa !5
  %676 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %677 = load i32, ptr %676, align 4, !tbaa !5
  %678 = call ptr @s2n_strerror(i32 noundef %677, ptr noundef @.str.24)
  %679 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %680 = load i32, ptr %679, align 4, !tbaa !5
  %681 = call ptr @s2n_strerror_debug(i32 noundef %680, ptr noundef @.str.24)
  %682 = call ptr @__errno_location() #10
  %683 = load i32, ptr %682, align 4, !tbaa !5
  %684 = call ptr @strerror(i32 noundef %683) #9
  %685 = call ptr @__errno_location() #10
  %686 = load i32, ptr %685, align 4, !tbaa !5
  %687 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %674, ptr noundef @.str.25, i32 noundef %675, ptr noundef @.str.33, ptr noundef @.str.21, i32 noundef 55, ptr noundef %678, ptr noundef %681, ptr noundef %684, i32 noundef %686) #9
  br label %688

688:                                              ; preds = %671, %654
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #9
  br label %689

689:                                              ; preds = %688
  br label %690

690:                                              ; preds = %689
  call void @exit(i32 noundef 1) #11
  unreachable

691:                                              ; No predecessors!
  br label %692

692:                                              ; preds = %691
  br label %693

693:                                              ; preds = %692, %631
  br label %694

694:                                              ; preds = %693
  br label %695

695:                                              ; preds = %694
  br label %696

696:                                              ; preds = %695
  %697 = load i32, ptr @test_count, align 4, !tbaa !5
  %698 = add nsw i32 %697, 1
  store i32 %698, ptr @test_count, align 4, !tbaa !5
  %699 = load ptr, ptr %9, align 8, !tbaa !9
  %700 = getelementptr inbounds %struct.s2n_connection, ptr %699, i32 0, i32 94
  %701 = call zeroext i1 @s2n_atomic_flag_test(ptr noundef %700)
  br i1 %701, label %755, label %702

702:                                              ; preds = %696
  br label %703

703:                                              ; preds = %702
  br label %704

704:                                              ; preds = %703
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #9
  %705 = call ptr @__errno_location() #10
  %706 = load i32, ptr %705, align 4, !tbaa !5
  store i32 %706, ptr %17, align 4, !tbaa !5
  %707 = load ptr, ptr @stderr, align 8, !tbaa !9
  %708 = call i32 @s2n_print_stacktrace(ptr noundef %707)
  %709 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %710 = trunc i8 %709 to i1
  br i1 %710, label %711, label %733

711:                                              ; preds = %704
  %712 = load ptr, ptr @stderr, align 8, !tbaa !9
  %713 = call i32 @fileno(ptr noundef %712) #9
  %714 = call i32 @isatty(i32 noundef %713) #9
  %715 = icmp ne i32 %714, 0
  br i1 %715, label %716, label %733

716:                                              ; preds = %711
  %717 = load i32, ptr %17, align 4, !tbaa !5
  %718 = call ptr @__errno_location() #10
  store i32 %717, ptr %718, align 4, !tbaa !5
  %719 = load ptr, ptr @stderr, align 8, !tbaa !9
  %720 = load i32, ptr @test_count, align 4, !tbaa !5
  %721 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %722 = load i32, ptr %721, align 4, !tbaa !5
  %723 = call ptr @s2n_strerror(i32 noundef %722, ptr noundef @.str.24)
  %724 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %725 = load i32, ptr %724, align 4, !tbaa !5
  %726 = call ptr @s2n_strerror_debug(i32 noundef %725, ptr noundef @.str.24)
  %727 = call ptr @__errno_location() #10
  %728 = load i32, ptr %727, align 4, !tbaa !5
  %729 = call ptr @strerror(i32 noundef %728) #9
  %730 = call ptr @__errno_location() #10
  %731 = load i32, ptr %730, align 4, !tbaa !5
  %732 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %719, ptr noundef @.str.22, i32 noundef %720, ptr noundef @.str.34, ptr noundef @.str.21, i32 noundef 56, ptr noundef %723, ptr noundef %726, ptr noundef %729, i32 noundef %731) #9
  br label %750

733:                                              ; preds = %711, %704
  %734 = load i32, ptr %17, align 4, !tbaa !5
  %735 = call ptr @__errno_location() #10
  store i32 %734, ptr %735, align 4, !tbaa !5
  %736 = load ptr, ptr @stderr, align 8, !tbaa !9
  %737 = load i32, ptr @test_count, align 4, !tbaa !5
  %738 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %739 = load i32, ptr %738, align 4, !tbaa !5
  %740 = call ptr @s2n_strerror(i32 noundef %739, ptr noundef @.str.24)
  %741 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %742 = load i32, ptr %741, align 4, !tbaa !5
  %743 = call ptr @s2n_strerror_debug(i32 noundef %742, ptr noundef @.str.24)
  %744 = call ptr @__errno_location() #10
  %745 = load i32, ptr %744, align 4, !tbaa !5
  %746 = call ptr @strerror(i32 noundef %745) #9
  %747 = call ptr @__errno_location() #10
  %748 = load i32, ptr %747, align 4, !tbaa !5
  %749 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %736, ptr noundef @.str.25, i32 noundef %737, ptr noundef @.str.34, ptr noundef @.str.21, i32 noundef 56, ptr noundef %740, ptr noundef %743, ptr noundef %746, i32 noundef %748) #9
  br label %750

750:                                              ; preds = %733, %716
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #9
  br label %751

751:                                              ; preds = %750
  br label %752

752:                                              ; preds = %751
  call void @exit(i32 noundef 1) #11
  unreachable

753:                                              ; No predecessors!
  br label %754

754:                                              ; preds = %753
  br label %755

755:                                              ; preds = %754, %696
  br label %756

756:                                              ; preds = %755
  br label %757

757:                                              ; preds = %756
  br label %758

758:                                              ; preds = %757
  %759 = load i32, ptr @test_count, align 4, !tbaa !5
  %760 = add nsw i32 %759, 1
  store i32 %760, ptr @test_count, align 4, !tbaa !5
  %761 = load ptr, ptr %9, align 8, !tbaa !9
  %762 = call i32 @s2n_connection_free(ptr noundef %761)
  %763 = icmp eq i32 %762, -1
  br i1 %763, label %764, label %817

764:                                              ; preds = %758
  br label %765

765:                                              ; preds = %764
  br label %766

766:                                              ; preds = %765
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #9
  %767 = call ptr @__errno_location() #10
  %768 = load i32, ptr %767, align 4, !tbaa !5
  store i32 %768, ptr %18, align 4, !tbaa !5
  %769 = load ptr, ptr @stderr, align 8, !tbaa !9
  %770 = call i32 @s2n_print_stacktrace(ptr noundef %769)
  %771 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %772 = trunc i8 %771 to i1
  br i1 %772, label %773, label %795

773:                                              ; preds = %766
  %774 = load ptr, ptr @stderr, align 8, !tbaa !9
  %775 = call i32 @fileno(ptr noundef %774) #9
  %776 = call i32 @isatty(i32 noundef %775) #9
  %777 = icmp ne i32 %776, 0
  br i1 %777, label %778, label %795

778:                                              ; preds = %773
  %779 = load i32, ptr %18, align 4, !tbaa !5
  %780 = call ptr @__errno_location() #10
  store i32 %779, ptr %780, align 4, !tbaa !5
  %781 = load ptr, ptr @stderr, align 8, !tbaa !9
  %782 = load i32, ptr @test_count, align 4, !tbaa !5
  %783 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %784 = load i32, ptr %783, align 4, !tbaa !5
  %785 = call ptr @s2n_strerror(i32 noundef %784, ptr noundef @.str.24)
  %786 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %787 = load i32, ptr %786, align 4, !tbaa !5
  %788 = call ptr @s2n_strerror_debug(i32 noundef %787, ptr noundef @.str.24)
  %789 = call ptr @__errno_location() #10
  %790 = load i32, ptr %789, align 4, !tbaa !5
  %791 = call ptr @strerror(i32 noundef %790) #9
  %792 = call ptr @__errno_location() #10
  %793 = load i32, ptr %792, align 4, !tbaa !5
  %794 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %781, ptr noundef @.str.22, i32 noundef %782, ptr noundef @.str.35, ptr noundef @.str.21, i32 noundef 58, ptr noundef %785, ptr noundef %788, ptr noundef %791, i32 noundef %793) #9
  br label %812

795:                                              ; preds = %773, %766
  %796 = load i32, ptr %18, align 4, !tbaa !5
  %797 = call ptr @__errno_location() #10
  store i32 %796, ptr %797, align 4, !tbaa !5
  %798 = load ptr, ptr @stderr, align 8, !tbaa !9
  %799 = load i32, ptr @test_count, align 4, !tbaa !5
  %800 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %801 = load i32, ptr %800, align 4, !tbaa !5
  %802 = call ptr @s2n_strerror(i32 noundef %801, ptr noundef @.str.24)
  %803 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %804 = load i32, ptr %803, align 4, !tbaa !5
  %805 = call ptr @s2n_strerror_debug(i32 noundef %804, ptr noundef @.str.24)
  %806 = call ptr @__errno_location() #10
  %807 = load i32, ptr %806, align 4, !tbaa !5
  %808 = call ptr @strerror(i32 noundef %807) #9
  %809 = call ptr @__errno_location() #10
  %810 = load i32, ptr %809, align 4, !tbaa !5
  %811 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %798, ptr noundef @.str.25, i32 noundef %799, ptr noundef @.str.35, ptr noundef @.str.21, i32 noundef 58, ptr noundef %802, ptr noundef %805, ptr noundef %808, i32 noundef %810) #9
  br label %812

812:                                              ; preds = %795, %778
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #9
  br label %813

813:                                              ; preds = %812
  br label %814

814:                                              ; preds = %813
  call void @exit(i32 noundef 1) #11
  unreachable

815:                                              ; No predecessors!
  br label %816

816:                                              ; preds = %815
  br label %817

817:                                              ; preds = %816, %758
  br label %818

818:                                              ; preds = %817
  br label %819

819:                                              ; preds = %818
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #9
  store ptr null, ptr %19, align 8, !tbaa !9
  br label %820

820:                                              ; preds = %819
  %821 = load i32, ptr @test_count, align 4, !tbaa !5
  %822 = add nsw i32 %821, 1
  store i32 %822, ptr @test_count, align 4, !tbaa !5
  %823 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %823, ptr %19, align 8, !tbaa !9
  %824 = icmp eq ptr %823, null
  br i1 %824, label %825, label %878

825:                                              ; preds = %820
  br label %826

826:                                              ; preds = %825
  br label %827

827:                                              ; preds = %826
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #9
  %828 = call ptr @__errno_location() #10
  %829 = load i32, ptr %828, align 4, !tbaa !5
  store i32 %829, ptr %20, align 4, !tbaa !5
  %830 = load ptr, ptr @stderr, align 8, !tbaa !9
  %831 = call i32 @s2n_print_stacktrace(ptr noundef %830)
  %832 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %833 = trunc i8 %832 to i1
  br i1 %833, label %834, label %856

834:                                              ; preds = %827
  %835 = load ptr, ptr @stderr, align 8, !tbaa !9
  %836 = call i32 @fileno(ptr noundef %835) #9
  %837 = call i32 @isatty(i32 noundef %836) #9
  %838 = icmp ne i32 %837, 0
  br i1 %838, label %839, label %856

839:                                              ; preds = %834
  %840 = load i32, ptr %20, align 4, !tbaa !5
  %841 = call ptr @__errno_location() #10
  store i32 %840, ptr %841, align 4, !tbaa !5
  %842 = load ptr, ptr @stderr, align 8, !tbaa !9
  %843 = load i32, ptr @test_count, align 4, !tbaa !5
  %844 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %845 = load i32, ptr %844, align 4, !tbaa !5
  %846 = call ptr @s2n_strerror(i32 noundef %845, ptr noundef @.str.24)
  %847 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %848 = load i32, ptr %847, align 4, !tbaa !5
  %849 = call ptr @s2n_strerror_debug(i32 noundef %848, ptr noundef @.str.24)
  %850 = call ptr @__errno_location() #10
  %851 = load i32, ptr %850, align 4, !tbaa !5
  %852 = call ptr @strerror(i32 noundef %851) #9
  %853 = call ptr @__errno_location() #10
  %854 = load i32, ptr %853, align 4, !tbaa !5
  %855 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %842, ptr noundef @.str.22, i32 noundef %843, ptr noundef @.str.28, ptr noundef @.str.21, i32 noundef 64, ptr noundef %846, ptr noundef %849, ptr noundef %852, i32 noundef %854) #9
  br label %873

856:                                              ; preds = %834, %827
  %857 = load i32, ptr %20, align 4, !tbaa !5
  %858 = call ptr @__errno_location() #10
  store i32 %857, ptr %858, align 4, !tbaa !5
  %859 = load ptr, ptr @stderr, align 8, !tbaa !9
  %860 = load i32, ptr @test_count, align 4, !tbaa !5
  %861 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %862 = load i32, ptr %861, align 4, !tbaa !5
  %863 = call ptr @s2n_strerror(i32 noundef %862, ptr noundef @.str.24)
  %864 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %865 = load i32, ptr %864, align 4, !tbaa !5
  %866 = call ptr @s2n_strerror_debug(i32 noundef %865, ptr noundef @.str.24)
  %867 = call ptr @__errno_location() #10
  %868 = load i32, ptr %867, align 4, !tbaa !5
  %869 = call ptr @strerror(i32 noundef %868) #9
  %870 = call ptr @__errno_location() #10
  %871 = load i32, ptr %870, align 4, !tbaa !5
  %872 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %859, ptr noundef @.str.25, i32 noundef %860, ptr noundef @.str.28, ptr noundef @.str.21, i32 noundef 64, ptr noundef %863, ptr noundef %866, ptr noundef %869, i32 noundef %871) #9
  br label %873

873:                                              ; preds = %856, %839
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #9
  br label %874

874:                                              ; preds = %873
  br label %875

875:                                              ; preds = %874
  call void @exit(i32 noundef 1) #11
  unreachable

876:                                              ; No predecessors!
  br label %877

877:                                              ; preds = %876
  br label %878

878:                                              ; preds = %877, %820
  br label %879

879:                                              ; preds = %878
  br label %880

880:                                              ; preds = %879
  %881 = load ptr, ptr %19, align 8, !tbaa !9
  %882 = getelementptr inbounds %struct.s2n_connection, ptr %881, i32 0, i32 23
  store i8 34, ptr %882, align 4, !tbaa !15
  %883 = load ptr, ptr %19, align 8, !tbaa !9
  %884 = getelementptr inbounds %struct.s2n_connection, ptr %883, i32 0, i32 27
  %885 = load ptr, ptr %884, align 8, !tbaa !42
  %886 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %885, i32 0, i32 0
  store ptr @s2n_tls13_aes_256_gcm_sha384, ptr %886, align 8, !tbaa !43
  br label %887

887:                                              ; preds = %880
  %888 = load i32, ptr @test_count, align 4, !tbaa !5
  %889 = add nsw i32 %888, 1
  store i32 %889, ptr @test_count, align 4, !tbaa !5
  %890 = load ptr, ptr %19, align 8, !tbaa !9
  %891 = getelementptr inbounds %struct.s2n_connection, ptr %890, i32 0, i32 94
  %892 = call zeroext i1 @s2n_atomic_flag_test(ptr noundef %891)
  br i1 %892, label %893, label %946

893:                                              ; preds = %887
  br label %894

894:                                              ; preds = %893
  br label %895

895:                                              ; preds = %894
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #9
  %896 = call ptr @__errno_location() #10
  %897 = load i32, ptr %896, align 4, !tbaa !5
  store i32 %897, ptr %21, align 4, !tbaa !5
  %898 = load ptr, ptr @stderr, align 8, !tbaa !9
  %899 = call i32 @s2n_print_stacktrace(ptr noundef %898)
  %900 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %901 = trunc i8 %900 to i1
  br i1 %901, label %902, label %924

902:                                              ; preds = %895
  %903 = load ptr, ptr @stderr, align 8, !tbaa !9
  %904 = call i32 @fileno(ptr noundef %903) #9
  %905 = call i32 @isatty(i32 noundef %904) #9
  %906 = icmp ne i32 %905, 0
  br i1 %906, label %907, label %924

907:                                              ; preds = %902
  %908 = load i32, ptr %21, align 4, !tbaa !5
  %909 = call ptr @__errno_location() #10
  store i32 %908, ptr %909, align 4, !tbaa !5
  %910 = load ptr, ptr @stderr, align 8, !tbaa !9
  %911 = load i32, ptr @test_count, align 4, !tbaa !5
  %912 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %913 = load i32, ptr %912, align 4, !tbaa !5
  %914 = call ptr @s2n_strerror(i32 noundef %913, ptr noundef @.str.24)
  %915 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %916 = load i32, ptr %915, align 4, !tbaa !5
  %917 = call ptr @s2n_strerror_debug(i32 noundef %916, ptr noundef @.str.24)
  %918 = call ptr @__errno_location() #10
  %919 = load i32, ptr %918, align 4, !tbaa !5
  %920 = call ptr @strerror(i32 noundef %919) #9
  %921 = call ptr @__errno_location() #10
  %922 = load i32, ptr %921, align 4, !tbaa !5
  %923 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %910, ptr noundef @.str.22, i32 noundef %911, ptr noundef @.str.29, ptr noundef @.str.21, i32 noundef 67, ptr noundef %914, ptr noundef %917, ptr noundef %920, i32 noundef %922) #9
  br label %941

924:                                              ; preds = %902, %895
  %925 = load i32, ptr %21, align 4, !tbaa !5
  %926 = call ptr @__errno_location() #10
  store i32 %925, ptr %926, align 4, !tbaa !5
  %927 = load ptr, ptr @stderr, align 8, !tbaa !9
  %928 = load i32, ptr @test_count, align 4, !tbaa !5
  %929 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %930 = load i32, ptr %929, align 4, !tbaa !5
  %931 = call ptr @s2n_strerror(i32 noundef %930, ptr noundef @.str.24)
  %932 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %933 = load i32, ptr %932, align 4, !tbaa !5
  %934 = call ptr @s2n_strerror_debug(i32 noundef %933, ptr noundef @.str.24)
  %935 = call ptr @__errno_location() #10
  %936 = load i32, ptr %935, align 4, !tbaa !5
  %937 = call ptr @strerror(i32 noundef %936) #9
  %938 = call ptr @__errno_location() #10
  %939 = load i32, ptr %938, align 4, !tbaa !5
  %940 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %927, ptr noundef @.str.25, i32 noundef %928, ptr noundef @.str.29, ptr noundef @.str.21, i32 noundef 67, ptr noundef %931, ptr noundef %934, ptr noundef %937, i32 noundef %939) #9
  br label %941

941:                                              ; preds = %924, %907
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #9
  br label %942

942:                                              ; preds = %941
  br label %943

943:                                              ; preds = %942
  call void @exit(i32 noundef 1) #11
  unreachable

944:                                              ; No predecessors!
  br label %945

945:                                              ; preds = %944
  br label %946

946:                                              ; preds = %945, %887
  br label %947

947:                                              ; preds = %946
  br label %948

948:                                              ; preds = %947
  br label %949

949:                                              ; preds = %948
  %950 = load i32, ptr @test_count, align 4, !tbaa !5
  %951 = add nsw i32 %950, 1
  store i32 %951, ptr @test_count, align 4, !tbaa !5
  %952 = load ptr, ptr %19, align 8, !tbaa !9
  %953 = getelementptr inbounds %struct.s2n_connection, ptr %952, i32 0, i32 40
  %954 = call i32 @s2n_stuffer_write_uint8(ptr noundef %953, i8 noundef zeroext -1)
  %955 = icmp eq i32 %954, -1
  br i1 %955, label %956, label %1009

956:                                              ; preds = %949
  br label %957

957:                                              ; preds = %956
  br label %958

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

965:                                              ; preds = %958
  %966 = load ptr, ptr @stderr, align 8, !tbaa !9
  %967 = call i32 @fileno(ptr noundef %966) #9
  %968 = call i32 @isatty(i32 noundef %967) #9
  %969 = icmp ne i32 %968, 0
  br i1 %969, label %970, label %987

970:                                              ; preds = %965
  %971 = load i32, ptr %22, align 4, !tbaa !5
  %972 = call ptr @__errno_location() #10
  store i32 %971, ptr %972, align 4, !tbaa !5
  %973 = load ptr, ptr @stderr, align 8, !tbaa !9
  %974 = load i32, ptr @test_count, align 4, !tbaa !5
  %975 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %976 = load i32, ptr %975, align 4, !tbaa !5
  %977 = call ptr @s2n_strerror(i32 noundef %976, ptr noundef @.str.24)
  %978 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %979 = load i32, ptr %978, align 4, !tbaa !5
  %980 = call ptr @s2n_strerror_debug(i32 noundef %979, ptr noundef @.str.24)
  %981 = call ptr @__errno_location() #10
  %982 = load i32, ptr %981, align 4, !tbaa !5
  %983 = call ptr @strerror(i32 noundef %982) #9
  %984 = call ptr @__errno_location() #10
  %985 = load i32, ptr %984, align 4, !tbaa !5
  %986 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %973, ptr noundef @.str.22, i32 noundef %974, ptr noundef @.str.36, ptr noundef @.str.21, i32 noundef 70, ptr noundef %977, ptr noundef %980, ptr noundef %983, i32 noundef %985) #9
  br label %1004

987:                                              ; preds = %965, %958
  %988 = load i32, ptr %22, align 4, !tbaa !5
  %989 = call ptr @__errno_location() #10
  store i32 %988, ptr %989, align 4, !tbaa !5
  %990 = load ptr, ptr @stderr, align 8, !tbaa !9
  %991 = load i32, ptr @test_count, align 4, !tbaa !5
  %992 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %993 = load i32, ptr %992, align 4, !tbaa !5
  %994 = call ptr @s2n_strerror(i32 noundef %993, ptr noundef @.str.24)
  %995 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %996 = load i32, ptr %995, align 4, !tbaa !5
  %997 = call ptr @s2n_strerror_debug(i32 noundef %996, ptr noundef @.str.24)
  %998 = call ptr @__errno_location() #10
  %999 = load i32, ptr %998, align 4, !tbaa !5
  %1000 = call ptr @strerror(i32 noundef %999) #9
  %1001 = call ptr @__errno_location() #10
  %1002 = load i32, ptr %1001, align 4, !tbaa !5
  %1003 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %990, ptr noundef @.str.25, i32 noundef %991, ptr noundef @.str.36, ptr noundef @.str.21, i32 noundef 70, ptr noundef %994, ptr noundef %997, ptr noundef %1000, i32 noundef %1002) #9
  br label %1004

1004:                                             ; preds = %987, %970
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #9
  br label %1005

1005:                                             ; preds = %1004
  br label %1006

1006:                                             ; preds = %1005
  call void @exit(i32 noundef 1) #11
  unreachable

1007:                                             ; No predecessors!
  br label %1008

1008:                                             ; preds = %1007
  br label %1009

1009:                                             ; preds = %1008, %949
  br label %1010

1010:                                             ; preds = %1009
  br label %1011

1011:                                             ; preds = %1010
  br label %1012

1012:                                             ; preds = %1011
  %1013 = load i32, ptr @test_count, align 4, !tbaa !5
  %1014 = add nsw i32 %1013, 1
  store i32 %1014, ptr @test_count, align 4, !tbaa !5
  %1015 = load ptr, ptr %19, align 8, !tbaa !9
  %1016 = getelementptr inbounds %struct.s2n_connection, ptr %1015, i32 0, i32 40
  %1017 = call i32 @s2n_stuffer_write_uint24(ptr noundef %1016, i32 noundef 1)
  %1018 = icmp eq i32 %1017, -1
  br i1 %1018, label %1019, label %1072

1019:                                             ; preds = %1012
  br label %1020

1020:                                             ; preds = %1019
  br label %1021

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

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

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

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

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

1068:                                             ; preds = %1067
  br label %1069

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

1070:                                             ; No predecessors!
  br label %1071

1071:                                             ; preds = %1070
  br label %1072

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

1073:                                             ; preds = %1072
  br label %1074

1074:                                             ; preds = %1073
  br label %1075

1075:                                             ; preds = %1074
  %1076 = load i32, ptr @test_count, align 4, !tbaa !5
  %1077 = add nsw i32 %1076, 1
  store i32 %1077, ptr @test_count, align 4, !tbaa !5
  %1078 = load ptr, ptr %19, align 8, !tbaa !9
  %1079 = getelementptr inbounds %struct.s2n_connection, ptr %1078, i32 0, i32 40
  %1080 = call i32 @s2n_stuffer_write_uint8(ptr noundef %1079, i8 noundef zeroext 1)
  %1081 = icmp eq i32 %1080, -1
  br i1 %1081, label %1082, label %1135

1082:                                             ; preds = %1075
  br label %1083

1083:                                             ; preds = %1082
  br label %1084

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

1091:                                             ; preds = %1084
  %1092 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1093 = call i32 @fileno(ptr noundef %1092) #9
  %1094 = call i32 @isatty(i32 noundef %1093) #9
  %1095 = icmp ne i32 %1094, 0
  br i1 %1095, label %1096, label %1113

1096:                                             ; preds = %1091
  %1097 = load i32, ptr %24, align 4, !tbaa !5
  %1098 = call ptr @__errno_location() #10
  store i32 %1097, ptr %1098, align 4, !tbaa !5
  %1099 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1100 = load i32, ptr @test_count, align 4, !tbaa !5
  %1101 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1102 = load i32, ptr %1101, align 4, !tbaa !5
  %1103 = call ptr @s2n_strerror(i32 noundef %1102, ptr noundef @.str.24)
  %1104 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1105 = load i32, ptr %1104, align 4, !tbaa !5
  %1106 = call ptr @s2n_strerror_debug(i32 noundef %1105, ptr noundef @.str.24)
  %1107 = call ptr @__errno_location() #10
  %1108 = load i32, ptr %1107, align 4, !tbaa !5
  %1109 = call ptr @strerror(i32 noundef %1108) #9
  %1110 = call ptr @__errno_location() #10
  %1111 = load i32, ptr %1110, align 4, !tbaa !5
  %1112 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1099, ptr noundef @.str.22, i32 noundef %1100, ptr noundef @.str.32, ptr noundef @.str.21, i32 noundef 72, ptr noundef %1103, ptr noundef %1106, ptr noundef %1109, i32 noundef %1111) #9
  br label %1130

1113:                                             ; preds = %1091, %1084
  %1114 = load i32, ptr %24, align 4, !tbaa !5
  %1115 = call ptr @__errno_location() #10
  store i32 %1114, ptr %1115, align 4, !tbaa !5
  %1116 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1117 = load i32, ptr @test_count, align 4, !tbaa !5
  %1118 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1119 = load i32, ptr %1118, align 4, !tbaa !5
  %1120 = call ptr @s2n_strerror(i32 noundef %1119, ptr noundef @.str.24)
  %1121 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1122 = load i32, ptr %1121, align 4, !tbaa !5
  %1123 = call ptr @s2n_strerror_debug(i32 noundef %1122, ptr noundef @.str.24)
  %1124 = call ptr @__errno_location() #10
  %1125 = load i32, ptr %1124, align 4, !tbaa !5
  %1126 = call ptr @strerror(i32 noundef %1125) #9
  %1127 = call ptr @__errno_location() #10
  %1128 = load i32, ptr %1127, align 4, !tbaa !5
  %1129 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1116, ptr noundef @.str.25, i32 noundef %1117, ptr noundef @.str.32, ptr noundef @.str.21, i32 noundef 72, ptr noundef %1120, ptr noundef %1123, ptr noundef %1126, i32 noundef %1128) #9
  br label %1130

1130:                                             ; preds = %1113, %1096
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #9
  br label %1131

1131:                                             ; preds = %1130
  br label %1132

1132:                                             ; preds = %1131
  call void @exit(i32 noundef 1) #11
  unreachable

1133:                                             ; No predecessors!
  br label %1134

1134:                                             ; preds = %1133
  br label %1135

1135:                                             ; preds = %1134, %1075
  br label %1136

1136:                                             ; preds = %1135
  br label %1137

1137:                                             ; preds = %1136
  br label %1138

1138:                                             ; preds = %1137
  br label %1139

1139:                                             ; preds = %1138
  br label %1140

1140:                                             ; preds = %1139
  %1141 = load i32, ptr @test_count, align 4, !tbaa !5
  %1142 = add nsw i32 %1141, 1
  store i32 %1142, ptr @test_count, align 4, !tbaa !5
  %1143 = load ptr, ptr %19, align 8, !tbaa !9
  %1144 = call i32 @s2n_post_handshake_recv(ptr noundef %1143)
  %1145 = getelementptr inbounds %struct.s2n_result, ptr %25, i32 0, i32 0
  store i32 %1144, ptr %1145, align 4
  %1146 = getelementptr inbounds %struct.s2n_result, ptr %25, i32 0, i32 0
  %1147 = load i32, ptr %1146, align 4
  %1148 = call zeroext i1 @s2n_result_is_error(i32 %1147)
  br i1 %1148, label %1202, label %1149

1149:                                             ; preds = %1140
  br label %1150

1150:                                             ; preds = %1149
  br label %1151

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

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

1163:                                             ; preds = %1158
  %1164 = load i32, ptr %26, align 4, !tbaa !5
  %1165 = call ptr @__errno_location() #10
  store i32 %1164, ptr %1165, align 4, !tbaa !5
  %1166 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1167 = load i32, ptr @test_count, align 4, !tbaa !5
  %1168 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1169 = load i32, ptr %1168, align 4, !tbaa !5
  %1170 = call ptr @s2n_strerror(i32 noundef %1169, ptr noundef @.str.24)
  %1171 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1172 = load i32, ptr %1171, align 4, !tbaa !5
  %1173 = call ptr @s2n_strerror_debug(i32 noundef %1172, ptr noundef @.str.24)
  %1174 = call ptr @__errno_location() #10
  %1175 = load i32, ptr %1174, align 4, !tbaa !5
  %1176 = call ptr @strerror(i32 noundef %1175) #9
  %1177 = call ptr @__errno_location() #10
  %1178 = load i32, ptr %1177, align 4, !tbaa !5
  %1179 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1166, ptr noundef @.str.22, i32 noundef %1167, ptr noundef @.str.37, ptr noundef @.str.21, i32 noundef 74, ptr noundef %1170, ptr noundef %1173, ptr noundef %1176, i32 noundef %1178) #9
  br label %1197

1180:                                             ; preds = %1158, %1151
  %1181 = load i32, ptr %26, align 4, !tbaa !5
  %1182 = call ptr @__errno_location() #10
  store i32 %1181, ptr %1182, align 4, !tbaa !5
  %1183 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1184 = load i32, ptr @test_count, align 4, !tbaa !5
  %1185 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1186 = load i32, ptr %1185, align 4, !tbaa !5
  %1187 = call ptr @s2n_strerror(i32 noundef %1186, ptr noundef @.str.24)
  %1188 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1189 = load i32, ptr %1188, align 4, !tbaa !5
  %1190 = call ptr @s2n_strerror_debug(i32 noundef %1189, ptr noundef @.str.24)
  %1191 = call ptr @__errno_location() #10
  %1192 = load i32, ptr %1191, align 4, !tbaa !5
  %1193 = call ptr @strerror(i32 noundef %1192) #9
  %1194 = call ptr @__errno_location() #10
  %1195 = load i32, ptr %1194, align 4, !tbaa !5
  %1196 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1183, ptr noundef @.str.25, i32 noundef %1184, ptr noundef @.str.37, ptr noundef @.str.21, i32 noundef 74, ptr noundef %1187, ptr noundef %1190, ptr noundef %1193, i32 noundef %1195) #9
  br label %1197

1197:                                             ; preds = %1180, %1163
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #9
  br label %1198

1198:                                             ; preds = %1197
  br label %1199

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

1200:                                             ; No predecessors!
  br label %1201

1201:                                             ; preds = %1200
  br label %1202

1202:                                             ; preds = %1201, %1140
  br label %1203

1203:                                             ; preds = %1202
  br label %1204

1204:                                             ; preds = %1203
  br label %1205

1205:                                             ; preds = %1204
  %1206 = load i32, ptr @test_count, align 4, !tbaa !5
  %1207 = add nsw i32 %1206, 1
  store i32 %1207, ptr @test_count, align 4, !tbaa !5
  %1208 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1209 = load i32, ptr %1208, align 4, !tbaa !5
  %1210 = icmp eq i32 %1209, 335544322
  br i1 %1210, label %1264, label %1211

1211:                                             ; preds = %1205
  br label %1212

1212:                                             ; preds = %1211
  br label %1213

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

1220:                                             ; preds = %1213
  %1221 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1222 = call i32 @fileno(ptr noundef %1221) #9
  %1223 = call i32 @isatty(i32 noundef %1222) #9
  %1224 = icmp ne i32 %1223, 0
  br i1 %1224, label %1225, label %1242

1225:                                             ; preds = %1220
  %1226 = load i32, ptr %27, align 4, !tbaa !5
  %1227 = call ptr @__errno_location() #10
  store i32 %1226, ptr %1227, align 4, !tbaa !5
  %1228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1229 = load i32, ptr @test_count, align 4, !tbaa !5
  %1230 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1231 = load i32, ptr %1230, align 4, !tbaa !5
  %1232 = call ptr @s2n_strerror(i32 noundef %1231, ptr noundef @.str.24)
  %1233 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1234 = load i32, ptr %1233, align 4, !tbaa !5
  %1235 = call ptr @s2n_strerror_debug(i32 noundef %1234, ptr noundef @.str.24)
  %1236 = call ptr @__errno_location() #10
  %1237 = load i32, ptr %1236, align 4, !tbaa !5
  %1238 = call ptr @strerror(i32 noundef %1237) #9
  %1239 = call ptr @__errno_location() #10
  %1240 = load i32, ptr %1239, align 4, !tbaa !5
  %1241 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1228, ptr noundef @.str.22, i32 noundef %1229, ptr noundef @.str.38, ptr noundef @.str.21, i32 noundef 74, ptr noundef %1232, ptr noundef %1235, ptr noundef %1238, i32 noundef %1240) #9
  br label %1259

1242:                                             ; preds = %1220, %1213
  %1243 = load i32, ptr %27, align 4, !tbaa !5
  %1244 = call ptr @__errno_location() #10
  store i32 %1243, ptr %1244, align 4, !tbaa !5
  %1245 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1246 = load i32, ptr @test_count, align 4, !tbaa !5
  %1247 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1248 = load i32, ptr %1247, align 4, !tbaa !5
  %1249 = call ptr @s2n_strerror(i32 noundef %1248, ptr noundef @.str.24)
  %1250 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1251 = load i32, ptr %1250, align 4, !tbaa !5
  %1252 = call ptr @s2n_strerror_debug(i32 noundef %1251, ptr noundef @.str.24)
  %1253 = call ptr @__errno_location() #10
  %1254 = load i32, ptr %1253, align 4, !tbaa !5
  %1255 = call ptr @strerror(i32 noundef %1254) #9
  %1256 = call ptr @__errno_location() #10
  %1257 = load i32, ptr %1256, align 4, !tbaa !5
  %1258 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1245, ptr noundef @.str.25, i32 noundef %1246, ptr noundef @.str.38, ptr noundef @.str.21, i32 noundef 74, ptr noundef %1249, ptr noundef %1252, ptr noundef %1255, i32 noundef %1257) #9
  br label %1259

1259:                                             ; preds = %1242, %1225
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #9
  br label %1260

1260:                                             ; preds = %1259
  br label %1261

1261:                                             ; preds = %1260
  call void @exit(i32 noundef 1) #11
  unreachable

1262:                                             ; No predecessors!
  br label %1263

1263:                                             ; preds = %1262
  br label %1264

1264:                                             ; preds = %1263, %1205
  br label %1265

1265:                                             ; preds = %1264
  br label %1266

1266:                                             ; preds = %1265
  br label %1267

1267:                                             ; preds = %1266
  %1268 = load i32, ptr @test_count, align 4, !tbaa !5
  %1269 = add nsw i32 %1268, 1
  store i32 %1269, ptr @test_count, align 4, !tbaa !5
  %1270 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1271 = load i32, ptr %1270, align 4, !tbaa !5
  %1272 = call ptr @s2n_strerror_debug(i32 noundef %1271, ptr noundef @.str.24)
  %1273 = icmp eq ptr %1272, null
  br i1 %1273, label %1274, label %1327

1274:                                             ; preds = %1267
  br label %1275

1275:                                             ; preds = %1274
  br label %1276

1276:                                             ; preds = %1275
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #9
  %1277 = call ptr @__errno_location() #10
  %1278 = load i32, ptr %1277, align 4, !tbaa !5
  store i32 %1278, ptr %28, align 4, !tbaa !5
  %1279 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1280 = call i32 @s2n_print_stacktrace(ptr noundef %1279)
  %1281 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1282 = trunc i8 %1281 to i1
  br i1 %1282, label %1283, label %1305

1283:                                             ; preds = %1276
  %1284 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1285 = call i32 @fileno(ptr noundef %1284) #9
  %1286 = call i32 @isatty(i32 noundef %1285) #9
  %1287 = icmp ne i32 %1286, 0
  br i1 %1287, label %1288, label %1305

1288:                                             ; preds = %1283
  %1289 = load i32, ptr %28, align 4, !tbaa !5
  %1290 = call ptr @__errno_location() #10
  store i32 %1289, ptr %1290, align 4, !tbaa !5
  %1291 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1292 = load i32, ptr @test_count, align 4, !tbaa !5
  %1293 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1294 = load i32, ptr %1293, align 4, !tbaa !5
  %1295 = call ptr @s2n_strerror(i32 noundef %1294, ptr noundef @.str.24)
  %1296 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1297 = load i32, ptr %1296, align 4, !tbaa !5
  %1298 = call ptr @s2n_strerror_debug(i32 noundef %1297, ptr noundef @.str.24)
  %1299 = call ptr @__errno_location() #10
  %1300 = load i32, ptr %1299, align 4, !tbaa !5
  %1301 = call ptr @strerror(i32 noundef %1300) #9
  %1302 = call ptr @__errno_location() #10
  %1303 = load i32, ptr %1302, align 4, !tbaa !5
  %1304 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1291, ptr noundef @.str.22, i32 noundef %1292, ptr noundef @.str.39, ptr noundef @.str.21, i32 noundef 74, ptr noundef %1295, ptr noundef %1298, ptr noundef %1301, i32 noundef %1303) #9
  br label %1322

1305:                                             ; preds = %1283, %1276
  %1306 = load i32, ptr %28, align 4, !tbaa !5
  %1307 = call ptr @__errno_location() #10
  store i32 %1306, ptr %1307, align 4, !tbaa !5
  %1308 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1309 = load i32, ptr @test_count, align 4, !tbaa !5
  %1310 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1311 = load i32, ptr %1310, align 4, !tbaa !5
  %1312 = call ptr @s2n_strerror(i32 noundef %1311, ptr noundef @.str.24)
  %1313 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1314 = load i32, ptr %1313, align 4, !tbaa !5
  %1315 = call ptr @s2n_strerror_debug(i32 noundef %1314, ptr noundef @.str.24)
  %1316 = call ptr @__errno_location() #10
  %1317 = load i32, ptr %1316, align 4, !tbaa !5
  %1318 = call ptr @strerror(i32 noundef %1317) #9
  %1319 = call ptr @__errno_location() #10
  %1320 = load i32, ptr %1319, align 4, !tbaa !5
  %1321 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1308, ptr noundef @.str.25, i32 noundef %1309, ptr noundef @.str.39, ptr noundef @.str.21, i32 noundef 74, ptr noundef %1312, ptr noundef %1315, ptr noundef %1318, i32 noundef %1320) #9
  br label %1322

1322:                                             ; preds = %1305, %1288
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #9
  br label %1323

1323:                                             ; preds = %1322
  br label %1324

1324:                                             ; preds = %1323
  call void @exit(i32 noundef 1) #11
  unreachable

1325:                                             ; No predecessors!
  br label %1326

1326:                                             ; preds = %1325
  br label %1327

1327:                                             ; preds = %1326, %1267
  br label %1328

1328:                                             ; preds = %1327
  br label %1329

1329:                                             ; preds = %1328
  br label %1330

1330:                                             ; preds = %1329
  br label %1331

1331:                                             ; preds = %1330
  br label %1332

1332:                                             ; preds = %1331
  %1333 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1333, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1334 = call ptr @__errno_location() #10
  store i32 0, ptr %1334, align 4, !tbaa !5
  br label %1335

1335:                                             ; preds = %1332
  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 %19, align 8, !tbaa !9
  %1343 = getelementptr inbounds %struct.s2n_connection, ptr %1342, i32 0, i32 94
  %1344 = call zeroext i1 @s2n_atomic_flag_test(ptr noundef %1343)
  br i1 %1344, label %1345, label %1398

1345:                                             ; preds = %1339
  br label %1346

1346:                                             ; preds = %1345
  br label %1347

1347:                                             ; preds = %1346
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #9
  %1348 = call ptr @__errno_location() #10
  %1349 = load i32, ptr %1348, align 4, !tbaa !5
  store i32 %1349, ptr %29, 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) #9
  %1357 = call i32 @isatty(i32 noundef %1356) #9
  %1358 = icmp ne i32 %1357, 0
  br i1 %1358, label %1359, label %1376

1359:                                             ; preds = %1354
  %1360 = load i32, ptr %29, align 4, !tbaa !5
  %1361 = call ptr @__errno_location() #10
  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.24)
  %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.24)
  %1370 = call ptr @__errno_location() #10
  %1371 = load i32, ptr %1370, align 4, !tbaa !5
  %1372 = call ptr @strerror(i32 noundef %1371) #9
  %1373 = call ptr @__errno_location() #10
  %1374 = load i32, ptr %1373, align 4, !tbaa !5
  %1375 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1362, ptr noundef @.str.22, i32 noundef %1363, ptr noundef @.str.29, ptr noundef @.str.21, i32 noundef 75, ptr noundef %1366, ptr noundef %1369, ptr noundef %1372, i32 noundef %1374) #9
  br label %1393

1376:                                             ; preds = %1354, %1347
  %1377 = load i32, ptr %29, align 4, !tbaa !5
  %1378 = call ptr @__errno_location() #10
  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.24)
  %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.24)
  %1387 = call ptr @__errno_location() #10
  %1388 = load i32, ptr %1387, align 4, !tbaa !5
  %1389 = call ptr @strerror(i32 noundef %1388) #9
  %1390 = call ptr @__errno_location() #10
  %1391 = load i32, ptr %1390, align 4, !tbaa !5
  %1392 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1379, ptr noundef @.str.25, i32 noundef %1380, ptr noundef @.str.29, ptr noundef @.str.21, i32 noundef 75, ptr noundef %1383, ptr noundef %1386, ptr noundef %1389, i32 noundef %1391) #9
  br label %1393

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

1394:                                             ; preds = %1393
  br label %1395

1395:                                             ; preds = %1394
  call void @exit(i32 noundef 1) #11
  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 = load ptr, ptr %19, align 8, !tbaa !9
  %1405 = call i32 @s2n_connection_free(ptr noundef %1404)
  %1406 = icmp eq i32 %1405, -1
  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 %30) #9
  %1410 = call ptr @__errno_location() #10
  %1411 = load i32, ptr %1410, align 4, !tbaa !5
  store i32 %1411, ptr %30, 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) #9
  %1419 = call i32 @isatty(i32 noundef %1418) #9
  %1420 = icmp ne i32 %1419, 0
  br i1 %1420, label %1421, label %1438

1421:                                             ; preds = %1416
  %1422 = load i32, ptr %30, align 4, !tbaa !5
  %1423 = call ptr @__errno_location() #10
  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.24)
  %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.24)
  %1432 = call ptr @__errno_location() #10
  %1433 = load i32, ptr %1432, align 4, !tbaa !5
  %1434 = call ptr @strerror(i32 noundef %1433) #9
  %1435 = call ptr @__errno_location() #10
  %1436 = load i32, ptr %1435, align 4, !tbaa !5
  %1437 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1424, ptr noundef @.str.22, i32 noundef %1425, ptr noundef @.str.35, ptr noundef @.str.21, i32 noundef 77, ptr noundef %1428, ptr noundef %1431, ptr noundef %1434, i32 noundef %1436) #9
  br label %1455

1438:                                             ; preds = %1416, %1409
  %1439 = load i32, ptr %30, align 4, !tbaa !5
  %1440 = call ptr @__errno_location() #10
  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.24)
  %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.24)
  %1449 = call ptr @__errno_location() #10
  %1450 = load i32, ptr %1449, align 4, !tbaa !5
  %1451 = call ptr @strerror(i32 noundef %1450) #9
  %1452 = call ptr @__errno_location() #10
  %1453 = load i32, ptr %1452, align 4, !tbaa !5
  %1454 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1441, ptr noundef @.str.25, i32 noundef %1442, ptr noundef @.str.35, ptr noundef @.str.21, i32 noundef 77, ptr noundef %1445, ptr noundef %1448, ptr noundef %1451, i32 noundef %1453) #9
  br label %1455

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

1456:                                             ; preds = %1455
  br label %1457

1457:                                             ; preds = %1456
  call void @exit(i32 noundef 1) #11
  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
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #9
  store ptr null, ptr %31, align 8, !tbaa !9
  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 ptr @s2n_connection_new(i32 noundef 0)
  store ptr %1466, ptr %31, align 8, !tbaa !9
  %1467 = icmp eq ptr %1466, null
  br i1 %1467, label %1468, label %1521

1468:                                             ; preds = %1463
  br label %1469

1469:                                             ; preds = %1468
  br label %1470

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

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

1482:                                             ; preds = %1477
  %1483 = load i32, ptr %32, align 4, !tbaa !5
  %1484 = call ptr @__errno_location() #10
  store i32 %1483, ptr %1484, align 4, !tbaa !5
  %1485 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1486 = load i32, ptr @test_count, align 4, !tbaa !5
  %1487 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1488 = load i32, ptr %1487, align 4, !tbaa !5
  %1489 = call ptr @s2n_strerror(i32 noundef %1488, ptr noundef @.str.24)
  %1490 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1491 = load i32, ptr %1490, align 4, !tbaa !5
  %1492 = call ptr @s2n_strerror_debug(i32 noundef %1491, ptr noundef @.str.24)
  %1493 = call ptr @__errno_location() #10
  %1494 = load i32, ptr %1493, align 4, !tbaa !5
  %1495 = call ptr @strerror(i32 noundef %1494) #9
  %1496 = call ptr @__errno_location() #10
  %1497 = load i32, ptr %1496, align 4, !tbaa !5
  %1498 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1485, ptr noundef @.str.22, i32 noundef %1486, ptr noundef @.str.28, ptr noundef @.str.21, i32 noundef 83, ptr noundef %1489, ptr noundef %1492, ptr noundef %1495, i32 noundef %1497) #9
  br label %1516

1499:                                             ; preds = %1477, %1470
  %1500 = load i32, ptr %32, align 4, !tbaa !5
  %1501 = call ptr @__errno_location() #10
  store i32 %1500, ptr %1501, align 4, !tbaa !5
  %1502 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1503 = load i32, ptr @test_count, align 4, !tbaa !5
  %1504 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1505 = load i32, ptr %1504, align 4, !tbaa !5
  %1506 = call ptr @s2n_strerror(i32 noundef %1505, ptr noundef @.str.24)
  %1507 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1508 = load i32, ptr %1507, align 4, !tbaa !5
  %1509 = call ptr @s2n_strerror_debug(i32 noundef %1508, ptr noundef @.str.24)
  %1510 = call ptr @__errno_location() #10
  %1511 = load i32, ptr %1510, align 4, !tbaa !5
  %1512 = call ptr @strerror(i32 noundef %1511) #9
  %1513 = call ptr @__errno_location() #10
  %1514 = load i32, ptr %1513, align 4, !tbaa !5
  %1515 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1502, ptr noundef @.str.25, i32 noundef %1503, ptr noundef @.str.28, ptr noundef @.str.21, i32 noundef 83, ptr noundef %1506, ptr noundef %1509, ptr noundef %1512, i32 noundef %1514) #9
  br label %1516

1516:                                             ; preds = %1499, %1482
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #9
  br label %1517

1517:                                             ; preds = %1516
  br label %1518

1518:                                             ; preds = %1517
  call void @exit(i32 noundef 1) #11
  unreachable

1519:                                             ; No predecessors!
  br label %1520

1520:                                             ; preds = %1519
  br label %1521

1521:                                             ; preds = %1520, %1463
  br label %1522

1522:                                             ; preds = %1521
  br label %1523

1523:                                             ; preds = %1522
  %1524 = load ptr, ptr %31, align 8, !tbaa !9
  %1525 = getelementptr inbounds %struct.s2n_connection, ptr %1524, i32 0, i32 23
  store i8 34, ptr %1525, align 4, !tbaa !15
  %1526 = load ptr, ptr %31, align 8, !tbaa !9
  %1527 = getelementptr inbounds %struct.s2n_connection, ptr %1526, i32 0, i32 27
  %1528 = load ptr, ptr %1527, align 8, !tbaa !42
  %1529 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %1528, i32 0, i32 0
  store ptr @s2n_tls13_aes_256_gcm_sha384, ptr %1529, align 8, !tbaa !43
  br label %1530

1530:                                             ; preds = %1523
  %1531 = load i32, ptr @test_count, align 4, !tbaa !5
  %1532 = add nsw i32 %1531, 1
  store i32 %1532, ptr @test_count, align 4, !tbaa !5
  %1533 = load ptr, ptr %31, align 8, !tbaa !9
  %1534 = getelementptr inbounds %struct.s2n_connection, ptr %1533, i32 0, i32 94
  %1535 = call zeroext i1 @s2n_atomic_flag_test(ptr noundef %1534)
  br i1 %1535, label %1536, label %1589

1536:                                             ; preds = %1530
  br label %1537

1537:                                             ; preds = %1536
  br label %1538

1538:                                             ; preds = %1537
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #9
  %1539 = call ptr @__errno_location() #10
  %1540 = load i32, ptr %1539, align 4, !tbaa !5
  store i32 %1540, ptr %33, align 4, !tbaa !5
  %1541 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1542 = call i32 @s2n_print_stacktrace(ptr noundef %1541)
  %1543 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1544 = trunc i8 %1543 to i1
  br i1 %1544, label %1545, label %1567

1545:                                             ; preds = %1538
  %1546 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1547 = call i32 @fileno(ptr noundef %1546) #9
  %1548 = call i32 @isatty(i32 noundef %1547) #9
  %1549 = icmp ne i32 %1548, 0
  br i1 %1549, label %1550, label %1567

1550:                                             ; preds = %1545
  %1551 = load i32, ptr %33, align 4, !tbaa !5
  %1552 = call ptr @__errno_location() #10
  store i32 %1551, ptr %1552, align 4, !tbaa !5
  %1553 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1554 = load i32, ptr @test_count, align 4, !tbaa !5
  %1555 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1556 = load i32, ptr %1555, align 4, !tbaa !5
  %1557 = call ptr @s2n_strerror(i32 noundef %1556, ptr noundef @.str.24)
  %1558 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1559 = load i32, ptr %1558, align 4, !tbaa !5
  %1560 = call ptr @s2n_strerror_debug(i32 noundef %1559, ptr noundef @.str.24)
  %1561 = call ptr @__errno_location() #10
  %1562 = load i32, ptr %1561, align 4, !tbaa !5
  %1563 = call ptr @strerror(i32 noundef %1562) #9
  %1564 = call ptr @__errno_location() #10
  %1565 = load i32, ptr %1564, align 4, !tbaa !5
  %1566 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1553, ptr noundef @.str.22, i32 noundef %1554, ptr noundef @.str.29, ptr noundef @.str.21, i32 noundef 86, ptr noundef %1557, ptr noundef %1560, ptr noundef %1563, i32 noundef %1565) #9
  br label %1584

1567:                                             ; preds = %1545, %1538
  %1568 = load i32, ptr %33, align 4, !tbaa !5
  %1569 = call ptr @__errno_location() #10
  store i32 %1568, ptr %1569, align 4, !tbaa !5
  %1570 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1571 = load i32, ptr @test_count, align 4, !tbaa !5
  %1572 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1573 = load i32, ptr %1572, align 4, !tbaa !5
  %1574 = call ptr @s2n_strerror(i32 noundef %1573, ptr noundef @.str.24)
  %1575 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1576 = load i32, ptr %1575, align 4, !tbaa !5
  %1577 = call ptr @s2n_strerror_debug(i32 noundef %1576, ptr noundef @.str.24)
  %1578 = call ptr @__errno_location() #10
  %1579 = load i32, ptr %1578, align 4, !tbaa !5
  %1580 = call ptr @strerror(i32 noundef %1579) #9
  %1581 = call ptr @__errno_location() #10
  %1582 = load i32, ptr %1581, align 4, !tbaa !5
  %1583 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1570, ptr noundef @.str.25, i32 noundef %1571, ptr noundef @.str.29, ptr noundef @.str.21, i32 noundef 86, ptr noundef %1574, ptr noundef %1577, ptr noundef %1580, i32 noundef %1582) #9
  br label %1584

1584:                                             ; preds = %1567, %1550
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #9
  br label %1585

1585:                                             ; preds = %1584
  br label %1586

1586:                                             ; preds = %1585
  call void @exit(i32 noundef 1) #11
  unreachable

1587:                                             ; No predecessors!
  br label %1588

1588:                                             ; preds = %1587
  br label %1589

1589:                                             ; preds = %1588, %1530
  br label %1590

1590:                                             ; preds = %1589
  br label %1591

1591:                                             ; preds = %1590
  br label %1592

1592:                                             ; preds = %1591
  %1593 = load i32, ptr @test_count, align 4, !tbaa !5
  %1594 = add nsw i32 %1593, 1
  store i32 %1594, ptr @test_count, align 4, !tbaa !5
  %1595 = load ptr, ptr %31, align 8, !tbaa !9
  %1596 = getelementptr inbounds %struct.s2n_connection, ptr %1595, i32 0, i32 40
  %1597 = call i32 @s2n_stuffer_write_uint8(ptr noundef %1596, i8 noundef zeroext 24)
  %1598 = icmp eq i32 %1597, -1
  br i1 %1598, label %1599, label %1652

1599:                                             ; preds = %1592
  br label %1600

1600:                                             ; preds = %1599
  br label %1601

1601:                                             ; preds = %1600
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #9
  %1602 = call ptr @__errno_location() #10
  %1603 = load i32, ptr %1602, align 4, !tbaa !5
  store i32 %1603, ptr %34, align 4, !tbaa !5
  %1604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1605 = call i32 @s2n_print_stacktrace(ptr noundef %1604)
  %1606 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1607 = trunc i8 %1606 to i1
  br i1 %1607, label %1608, label %1630

1608:                                             ; preds = %1601
  %1609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1610 = call i32 @fileno(ptr noundef %1609) #9
  %1611 = call i32 @isatty(i32 noundef %1610) #9
  %1612 = icmp ne i32 %1611, 0
  br i1 %1612, label %1613, label %1630

1613:                                             ; preds = %1608
  %1614 = load i32, ptr %34, align 4, !tbaa !5
  %1615 = call ptr @__errno_location() #10
  store i32 %1614, ptr %1615, align 4, !tbaa !5
  %1616 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1617 = load i32, ptr @test_count, align 4, !tbaa !5
  %1618 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1619 = load i32, ptr %1618, align 4, !tbaa !5
  %1620 = call ptr @s2n_strerror(i32 noundef %1619, ptr noundef @.str.24)
  %1621 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1622 = load i32, ptr %1621, align 4, !tbaa !5
  %1623 = call ptr @s2n_strerror_debug(i32 noundef %1622, ptr noundef @.str.24)
  %1624 = call ptr @__errno_location() #10
  %1625 = load i32, ptr %1624, align 4, !tbaa !5
  %1626 = call ptr @strerror(i32 noundef %1625) #9
  %1627 = call ptr @__errno_location() #10
  %1628 = load i32, ptr %1627, align 4, !tbaa !5
  %1629 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1616, ptr noundef @.str.22, i32 noundef %1617, ptr noundef @.str.30, ptr noundef @.str.21, i32 noundef 89, ptr noundef %1620, ptr noundef %1623, ptr noundef %1626, i32 noundef %1628) #9
  br label %1647

1630:                                             ; preds = %1608, %1601
  %1631 = load i32, ptr %34, align 4, !tbaa !5
  %1632 = call ptr @__errno_location() #10
  store i32 %1631, ptr %1632, align 4, !tbaa !5
  %1633 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1634 = load i32, ptr @test_count, align 4, !tbaa !5
  %1635 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1636 = load i32, ptr %1635, align 4, !tbaa !5
  %1637 = call ptr @s2n_strerror(i32 noundef %1636, ptr noundef @.str.24)
  %1638 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1639 = load i32, ptr %1638, align 4, !tbaa !5
  %1640 = call ptr @s2n_strerror_debug(i32 noundef %1639, ptr noundef @.str.24)
  %1641 = call ptr @__errno_location() #10
  %1642 = load i32, ptr %1641, align 4, !tbaa !5
  %1643 = call ptr @strerror(i32 noundef %1642) #9
  %1644 = call ptr @__errno_location() #10
  %1645 = load i32, ptr %1644, align 4, !tbaa !5
  %1646 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1633, ptr noundef @.str.25, i32 noundef %1634, ptr noundef @.str.30, ptr noundef @.str.21, i32 noundef 89, ptr noundef %1637, ptr noundef %1640, ptr noundef %1643, i32 noundef %1645) #9
  br label %1647

1647:                                             ; preds = %1630, %1613
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #9
  br label %1648

1648:                                             ; preds = %1647
  br label %1649

1649:                                             ; preds = %1648
  call void @exit(i32 noundef 1) #11
  unreachable

1650:                                             ; No predecessors!
  br label %1651

1651:                                             ; preds = %1650
  br label %1652

1652:                                             ; preds = %1651, %1592
  br label %1653

1653:                                             ; preds = %1652
  br label %1654

1654:                                             ; preds = %1653
  br label %1655

1655:                                             ; preds = %1654
  %1656 = load i32, ptr @test_count, align 4, !tbaa !5
  %1657 = add nsw i32 %1656, 1
  store i32 %1657, ptr @test_count, align 4, !tbaa !5
  %1658 = load ptr, ptr %31, align 8, !tbaa !9
  %1659 = getelementptr inbounds %struct.s2n_connection, ptr %1658, i32 0, i32 40
  %1660 = call i32 @s2n_stuffer_write_uint8(ptr noundef %1659, i8 noundef zeroext 1)
  %1661 = icmp eq i32 %1660, -1
  br i1 %1661, label %1662, label %1715

1662:                                             ; preds = %1655
  br label %1663

1663:                                             ; preds = %1662
  br label %1664

1664:                                             ; preds = %1663
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #9
  %1665 = call ptr @__errno_location() #10
  %1666 = load i32, ptr %1665, align 4, !tbaa !5
  store i32 %1666, ptr %35, align 4, !tbaa !5
  %1667 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1668 = call i32 @s2n_print_stacktrace(ptr noundef %1667)
  %1669 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1670 = trunc i8 %1669 to i1
  br i1 %1670, label %1671, label %1693

1671:                                             ; preds = %1664
  %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
  %1675 = icmp ne i32 %1674, 0
  br i1 %1675, label %1676, label %1693

1676:                                             ; preds = %1671
  %1677 = load i32, ptr %35, align 4, !tbaa !5
  %1678 = call ptr @__errno_location() #10
  store i32 %1677, ptr %1678, align 4, !tbaa !5
  %1679 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1680 = load i32, ptr @test_count, align 4, !tbaa !5
  %1681 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1682 = load i32, ptr %1681, align 4, !tbaa !5
  %1683 = call ptr @s2n_strerror(i32 noundef %1682, ptr noundef @.str.24)
  %1684 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1685 = load i32, ptr %1684, align 4, !tbaa !5
  %1686 = call ptr @s2n_strerror_debug(i32 noundef %1685, ptr noundef @.str.24)
  %1687 = call ptr @__errno_location() #10
  %1688 = load i32, ptr %1687, align 4, !tbaa !5
  %1689 = call ptr @strerror(i32 noundef %1688) #9
  %1690 = call ptr @__errno_location() #10
  %1691 = load i32, ptr %1690, align 4, !tbaa !5
  %1692 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1679, ptr noundef @.str.22, i32 noundef %1680, ptr noundef @.str.40, ptr noundef @.str.21, i32 noundef 90, ptr noundef %1683, ptr noundef %1686, ptr noundef %1689, i32 noundef %1691) #9
  br label %1710

1693:                                             ; preds = %1671, %1664
  %1694 = load i32, ptr %35, align 4, !tbaa !5
  %1695 = call ptr @__errno_location() #10
  store i32 %1694, ptr %1695, align 4, !tbaa !5
  %1696 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1697 = load i32, ptr @test_count, align 4, !tbaa !5
  %1698 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1699 = load i32, ptr %1698, align 4, !tbaa !5
  %1700 = call ptr @s2n_strerror(i32 noundef %1699, ptr noundef @.str.24)
  %1701 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1702 = load i32, ptr %1701, align 4, !tbaa !5
  %1703 = call ptr @s2n_strerror_debug(i32 noundef %1702, ptr noundef @.str.24)
  %1704 = call ptr @__errno_location() #10
  %1705 = load i32, ptr %1704, align 4, !tbaa !5
  %1706 = call ptr @strerror(i32 noundef %1705) #9
  %1707 = call ptr @__errno_location() #10
  %1708 = load i32, ptr %1707, align 4, !tbaa !5
  %1709 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1696, ptr noundef @.str.25, i32 noundef %1697, ptr noundef @.str.40, ptr noundef @.str.21, i32 noundef 90, ptr noundef %1700, ptr noundef %1703, ptr noundef %1706, i32 noundef %1708) #9
  br label %1710

1710:                                             ; preds = %1693, %1676
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #9
  br label %1711

1711:                                             ; preds = %1710
  br label %1712

1712:                                             ; preds = %1711
  call void @exit(i32 noundef 1) #11
  unreachable

1713:                                             ; No predecessors!
  br label %1714

1714:                                             ; preds = %1713
  br label %1715

1715:                                             ; preds = %1714, %1655
  br label %1716

1716:                                             ; preds = %1715
  br label %1717

1717:                                             ; preds = %1716
  br label %1718

1718:                                             ; preds = %1717
  br label %1719

1719:                                             ; preds = %1718
  %1720 = load i32, ptr @test_count, align 4, !tbaa !5
  %1721 = add nsw i32 %1720, 1
  store i32 %1721, ptr @test_count, align 4, !tbaa !5
  %1722 = load ptr, ptr %31, align 8, !tbaa !9
  %1723 = call i32 @s2n_post_handshake_recv(ptr noundef %1722)
  %1724 = getelementptr inbounds %struct.s2n_result, ptr %36, i32 0, i32 0
  store i32 %1723, ptr %1724, align 4
  %1725 = getelementptr inbounds %struct.s2n_result, ptr %36, i32 0, i32 0
  %1726 = load i32, ptr %1725, align 4
  %1727 = call zeroext i1 @s2n_result_is_error(i32 %1726)
  br i1 %1727, label %1781, label %1728

1728:                                             ; preds = %1719
  br label %1729

1729:                                             ; preds = %1728
  br label %1730

1730:                                             ; preds = %1729
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #9
  %1731 = call ptr @__errno_location() #10
  %1732 = load i32, ptr %1731, align 4, !tbaa !5
  store i32 %1732, ptr %37, align 4, !tbaa !5
  %1733 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1734 = call i32 @s2n_print_stacktrace(ptr noundef %1733)
  %1735 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1736 = trunc i8 %1735 to i1
  br i1 %1736, label %1737, label %1759

1737:                                             ; preds = %1730
  %1738 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1739 = call i32 @fileno(ptr noundef %1738) #9
  %1740 = call i32 @isatty(i32 noundef %1739) #9
  %1741 = icmp ne i32 %1740, 0
  br i1 %1741, label %1742, label %1759

1742:                                             ; preds = %1737
  %1743 = load i32, ptr %37, align 4, !tbaa !5
  %1744 = call ptr @__errno_location() #10
  store i32 %1743, ptr %1744, align 4, !tbaa !5
  %1745 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1746 = load i32, ptr @test_count, align 4, !tbaa !5
  %1747 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1748 = load i32, ptr %1747, align 4, !tbaa !5
  %1749 = call ptr @s2n_strerror(i32 noundef %1748, ptr noundef @.str.24)
  %1750 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1751 = load i32, ptr %1750, align 4, !tbaa !5
  %1752 = call ptr @s2n_strerror_debug(i32 noundef %1751, ptr noundef @.str.24)
  %1753 = call ptr @__errno_location() #10
  %1754 = load i32, ptr %1753, align 4, !tbaa !5
  %1755 = call ptr @strerror(i32 noundef %1754) #9
  %1756 = call ptr @__errno_location() #10
  %1757 = load i32, ptr %1756, align 4, !tbaa !5
  %1758 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1745, ptr noundef @.str.22, i32 noundef %1746, ptr noundef @.str.37, ptr noundef @.str.21, i32 noundef 92, ptr noundef %1749, ptr noundef %1752, ptr noundef %1755, i32 noundef %1757) #9
  br label %1776

1759:                                             ; preds = %1737, %1730
  %1760 = load i32, ptr %37, align 4, !tbaa !5
  %1761 = call ptr @__errno_location() #10
  store i32 %1760, ptr %1761, align 4, !tbaa !5
  %1762 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1763 = load i32, ptr @test_count, align 4, !tbaa !5
  %1764 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1765 = load i32, ptr %1764, align 4, !tbaa !5
  %1766 = call ptr @s2n_strerror(i32 noundef %1765, ptr noundef @.str.24)
  %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_debug(i32 noundef %1768, ptr noundef @.str.24)
  %1770 = call ptr @__errno_location() #10
  %1771 = load i32, ptr %1770, align 4, !tbaa !5
  %1772 = call ptr @strerror(i32 noundef %1771) #9
  %1773 = call ptr @__errno_location() #10
  %1774 = load i32, ptr %1773, align 4, !tbaa !5
  %1775 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1762, ptr noundef @.str.25, i32 noundef %1763, ptr noundef @.str.37, ptr noundef @.str.21, i32 noundef 92, ptr noundef %1766, ptr noundef %1769, ptr noundef %1772, i32 noundef %1774) #9
  br label %1776

1776:                                             ; preds = %1759, %1742
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #9
  br label %1777

1777:                                             ; preds = %1776
  br label %1778

1778:                                             ; preds = %1777
  call void @exit(i32 noundef 1) #11
  unreachable

1779:                                             ; No predecessors!
  br label %1780

1780:                                             ; preds = %1779
  br label %1781

1781:                                             ; preds = %1780, %1719
  br label %1782

1782:                                             ; preds = %1781
  br label %1783

1783:                                             ; preds = %1782
  br label %1784

1784:                                             ; preds = %1783
  %1785 = load i32, ptr @test_count, align 4, !tbaa !5
  %1786 = add nsw i32 %1785, 1
  store i32 %1786, ptr @test_count, align 4, !tbaa !5
  %1787 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1788 = load i32, ptr %1787, align 4, !tbaa !5
  %1789 = icmp eq i32 %1788, 0
  br i1 %1789, label %1790, label %1843

1790:                                             ; preds = %1784
  br label %1791

1791:                                             ; preds = %1790
  br label %1792

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

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

1804:                                             ; preds = %1799
  %1805 = load i32, ptr %38, align 4, !tbaa !5
  %1806 = call ptr @__errno_location() #10
  store i32 %1805, ptr %1806, align 4, !tbaa !5
  %1807 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1808 = load i32, ptr @test_count, align 4, !tbaa !5
  %1809 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1810 = load i32, ptr %1809, align 4, !tbaa !5
  %1811 = call ptr @s2n_strerror(i32 noundef %1810, ptr noundef @.str.24)
  %1812 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1813 = load i32, ptr %1812, align 4, !tbaa !5
  %1814 = call ptr @s2n_strerror_debug(i32 noundef %1813, ptr noundef @.str.24)
  %1815 = call ptr @__errno_location() #10
  %1816 = load i32, ptr %1815, align 4, !tbaa !5
  %1817 = call ptr @strerror(i32 noundef %1816) #9
  %1818 = call ptr @__errno_location() #10
  %1819 = load i32, ptr %1818, align 4, !tbaa !5
  %1820 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1807, ptr noundef @.str.22, i32 noundef %1808, ptr noundef @.str.41, ptr noundef @.str.21, i32 noundef 92, ptr noundef %1811, ptr noundef %1814, ptr noundef %1817, i32 noundef %1819) #9
  br label %1838

1821:                                             ; preds = %1799, %1792
  %1822 = load i32, ptr %38, align 4, !tbaa !5
  %1823 = call ptr @__errno_location() #10
  store i32 %1822, ptr %1823, align 4, !tbaa !5
  %1824 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1825 = load i32, ptr @test_count, align 4, !tbaa !5
  %1826 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1827 = load i32, ptr %1826, align 4, !tbaa !5
  %1828 = call ptr @s2n_strerror(i32 noundef %1827, ptr noundef @.str.24)
  %1829 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1830 = load i32, ptr %1829, align 4, !tbaa !5
  %1831 = call ptr @s2n_strerror_debug(i32 noundef %1830, ptr noundef @.str.24)
  %1832 = call ptr @__errno_location() #10
  %1833 = load i32, ptr %1832, align 4, !tbaa !5
  %1834 = call ptr @strerror(i32 noundef %1833) #9
  %1835 = call ptr @__errno_location() #10
  %1836 = load i32, ptr %1835, align 4, !tbaa !5
  %1837 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1824, ptr noundef @.str.25, i32 noundef %1825, ptr noundef @.str.41, ptr noundef @.str.21, i32 noundef 92, ptr noundef %1828, ptr noundef %1831, ptr noundef %1834, i32 noundef %1836) #9
  br label %1838

1838:                                             ; preds = %1821, %1804
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #9
  br label %1839

1839:                                             ; preds = %1838
  br label %1840

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

1841:                                             ; No predecessors!
  br label %1842

1842:                                             ; preds = %1841
  br label %1843

1843:                                             ; preds = %1842, %1784
  br label %1844

1844:                                             ; preds = %1843
  br label %1845

1845:                                             ; preds = %1844
  br label %1846

1846:                                             ; preds = %1845
  %1847 = load i32, ptr @test_count, align 4, !tbaa !5
  %1848 = add nsw i32 %1847, 1
  store i32 %1848, ptr @test_count, align 4, !tbaa !5
  %1849 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1850 = load i32, ptr %1849, align 4, !tbaa !5
  %1851 = call ptr @s2n_strerror_debug(i32 noundef %1850, ptr noundef @.str.24)
  %1852 = icmp eq ptr %1851, null
  br i1 %1852, label %1853, label %1906

1853:                                             ; preds = %1846
  br label %1854

1854:                                             ; preds = %1853
  br label %1855

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

1862:                                             ; preds = %1855
  %1863 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1864 = call i32 @fileno(ptr noundef %1863) #9
  %1865 = call i32 @isatty(i32 noundef %1864) #9
  %1866 = icmp ne i32 %1865, 0
  br i1 %1866, label %1867, label %1884

1867:                                             ; preds = %1862
  %1868 = load i32, ptr %39, align 4, !tbaa !5
  %1869 = call ptr @__errno_location() #10
  store i32 %1868, ptr %1869, align 4, !tbaa !5
  %1870 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1871 = load i32, ptr @test_count, align 4, !tbaa !5
  %1872 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1873 = load i32, ptr %1872, align 4, !tbaa !5
  %1874 = call ptr @s2n_strerror(i32 noundef %1873, ptr noundef @.str.24)
  %1875 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1876 = load i32, ptr %1875, align 4, !tbaa !5
  %1877 = call ptr @s2n_strerror_debug(i32 noundef %1876, ptr noundef @.str.24)
  %1878 = call ptr @__errno_location() #10
  %1879 = load i32, ptr %1878, align 4, !tbaa !5
  %1880 = call ptr @strerror(i32 noundef %1879) #9
  %1881 = call ptr @__errno_location() #10
  %1882 = load i32, ptr %1881, align 4, !tbaa !5
  %1883 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1870, ptr noundef @.str.22, i32 noundef %1871, ptr noundef @.str.39, ptr noundef @.str.21, i32 noundef 92, ptr noundef %1874, ptr noundef %1877, ptr noundef %1880, i32 noundef %1882) #9
  br label %1901

1884:                                             ; preds = %1862, %1855
  %1885 = load i32, ptr %39, align 4, !tbaa !5
  %1886 = call ptr @__errno_location() #10
  store i32 %1885, ptr %1886, align 4, !tbaa !5
  %1887 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1888 = load i32, ptr @test_count, align 4, !tbaa !5
  %1889 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1890 = load i32, ptr %1889, align 4, !tbaa !5
  %1891 = call ptr @s2n_strerror(i32 noundef %1890, ptr noundef @.str.24)
  %1892 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1893 = load i32, ptr %1892, align 4, !tbaa !5
  %1894 = call ptr @s2n_strerror_debug(i32 noundef %1893, ptr noundef @.str.24)
  %1895 = call ptr @__errno_location() #10
  %1896 = load i32, ptr %1895, align 4, !tbaa !5
  %1897 = call ptr @strerror(i32 noundef %1896) #9
  %1898 = call ptr @__errno_location() #10
  %1899 = load i32, ptr %1898, align 4, !tbaa !5
  %1900 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1887, ptr noundef @.str.25, i32 noundef %1888, ptr noundef @.str.39, ptr noundef @.str.21, i32 noundef 92, ptr noundef %1891, ptr noundef %1894, ptr noundef %1897, i32 noundef %1899) #9
  br label %1901

1901:                                             ; preds = %1884, %1867
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #9
  br label %1902

1902:                                             ; preds = %1901
  br label %1903

1903:                                             ; preds = %1902
  call void @exit(i32 noundef 1) #11
  unreachable

1904:                                             ; No predecessors!
  br label %1905

1905:                                             ; preds = %1904
  br label %1906

1906:                                             ; preds = %1905, %1846
  br label %1907

1907:                                             ; preds = %1906
  br label %1908

1908:                                             ; preds = %1907
  br label %1909

1909:                                             ; preds = %1908
  %1910 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1910, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1911 = call ptr @__errno_location() #10
  store i32 0, ptr %1911, align 4, !tbaa !5
  br label %1912

1912:                                             ; preds = %1909
  br label %1913

1913:                                             ; preds = %1912
  br label %1914

1914:                                             ; preds = %1913
  br label %1915

1915:                                             ; preds = %1914
  br label %1916

1916:                                             ; preds = %1915
  %1917 = load i32, ptr @test_count, align 4, !tbaa !5
  %1918 = add nsw i32 %1917, 1
  store i32 %1918, ptr @test_count, align 4, !tbaa !5
  %1919 = load ptr, ptr %31, align 8, !tbaa !9
  %1920 = getelementptr inbounds %struct.s2n_connection, ptr %1919, i32 0, i32 94
  %1921 = call zeroext i1 @s2n_atomic_flag_test(ptr noundef %1920)
  br i1 %1921, label %1922, label %1975

1922:                                             ; preds = %1916
  br label %1923

1923:                                             ; preds = %1922
  br label %1924

1924:                                             ; preds = %1923
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #9
  %1925 = call ptr @__errno_location() #10
  %1926 = load i32, ptr %1925, align 4, !tbaa !5
  store i32 %1926, ptr %40, align 4, !tbaa !5
  %1927 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1928 = call i32 @s2n_print_stacktrace(ptr noundef %1927)
  %1929 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1930 = trunc i8 %1929 to i1
  br i1 %1930, label %1931, label %1953

1931:                                             ; preds = %1924
  %1932 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1933 = call i32 @fileno(ptr noundef %1932) #9
  %1934 = call i32 @isatty(i32 noundef %1933) #9
  %1935 = icmp ne i32 %1934, 0
  br i1 %1935, label %1936, label %1953

1936:                                             ; preds = %1931
  %1937 = load i32, ptr %40, align 4, !tbaa !5
  %1938 = call ptr @__errno_location() #10
  store i32 %1937, ptr %1938, align 4, !tbaa !5
  %1939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1940 = load i32, ptr @test_count, align 4, !tbaa !5
  %1941 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1942 = load i32, ptr %1941, align 4, !tbaa !5
  %1943 = call ptr @s2n_strerror(i32 noundef %1942, ptr noundef @.str.24)
  %1944 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1945 = load i32, ptr %1944, align 4, !tbaa !5
  %1946 = call ptr @s2n_strerror_debug(i32 noundef %1945, ptr noundef @.str.24)
  %1947 = call ptr @__errno_location() #10
  %1948 = load i32, ptr %1947, align 4, !tbaa !5
  %1949 = call ptr @strerror(i32 noundef %1948) #9
  %1950 = call ptr @__errno_location() #10
  %1951 = load i32, ptr %1950, align 4, !tbaa !5
  %1952 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1939, ptr noundef @.str.22, i32 noundef %1940, ptr noundef @.str.29, ptr noundef @.str.21, i32 noundef 93, ptr noundef %1943, ptr noundef %1946, ptr noundef %1949, i32 noundef %1951) #9
  br label %1970

1953:                                             ; preds = %1931, %1924
  %1954 = load i32, ptr %40, align 4, !tbaa !5
  %1955 = call ptr @__errno_location() #10
  store i32 %1954, ptr %1955, align 4, !tbaa !5
  %1956 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1957 = load i32, ptr @test_count, align 4, !tbaa !5
  %1958 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1959 = load i32, ptr %1958, align 4, !tbaa !5
  %1960 = call ptr @s2n_strerror(i32 noundef %1959, ptr noundef @.str.24)
  %1961 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1962 = load i32, ptr %1961, align 4, !tbaa !5
  %1963 = call ptr @s2n_strerror_debug(i32 noundef %1962, ptr noundef @.str.24)
  %1964 = call ptr @__errno_location() #10
  %1965 = load i32, ptr %1964, align 4, !tbaa !5
  %1966 = call ptr @strerror(i32 noundef %1965) #9
  %1967 = call ptr @__errno_location() #10
  %1968 = load i32, ptr %1967, align 4, !tbaa !5
  %1969 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1956, ptr noundef @.str.25, i32 noundef %1957, ptr noundef @.str.29, ptr noundef @.str.21, i32 noundef 93, ptr noundef %1960, ptr noundef %1963, ptr noundef %1966, i32 noundef %1968) #9
  br label %1970

1970:                                             ; preds = %1953, %1936
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #9
  br label %1971

1971:                                             ; preds = %1970
  br label %1972

1972:                                             ; preds = %1971
  call void @exit(i32 noundef 1) #11
  unreachable

1973:                                             ; No predecessors!
  br label %1974

1974:                                             ; preds = %1973
  br label %1975

1975:                                             ; preds = %1974, %1916
  br label %1976

1976:                                             ; preds = %1975
  br label %1977

1977:                                             ; preds = %1976
  br label %1978

1978:                                             ; preds = %1977
  %1979 = load i32, ptr @test_count, align 4, !tbaa !5
  %1980 = add nsw i32 %1979, 1
  store i32 %1980, ptr @test_count, align 4, !tbaa !5
  %1981 = load ptr, ptr %31, align 8, !tbaa !9
  %1982 = call i32 @s2n_connection_free(ptr noundef %1981)
  %1983 = icmp eq i32 %1982, -1
  br i1 %1983, label %1984, label %2037

1984:                                             ; preds = %1978
  br label %1985

1985:                                             ; preds = %1984
  br label %1986

1986:                                             ; preds = %1985
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #9
  %1987 = call ptr @__errno_location() #10
  %1988 = load i32, ptr %1987, align 4, !tbaa !5
  store i32 %1988, ptr %41, align 4, !tbaa !5
  %1989 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1990 = call i32 @s2n_print_stacktrace(ptr noundef %1989)
  %1991 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1992 = trunc i8 %1991 to i1
  br i1 %1992, label %1993, label %2015

1993:                                             ; preds = %1986
  %1994 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1995 = call i32 @fileno(ptr noundef %1994) #9
  %1996 = call i32 @isatty(i32 noundef %1995) #9
  %1997 = icmp ne i32 %1996, 0
  br i1 %1997, label %1998, label %2015

1998:                                             ; preds = %1993
  %1999 = load i32, ptr %41, align 4, !tbaa !5
  %2000 = call ptr @__errno_location() #10
  store i32 %1999, ptr %2000, align 4, !tbaa !5
  %2001 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2002 = load i32, ptr @test_count, align 4, !tbaa !5
  %2003 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2004 = load i32, ptr %2003, align 4, !tbaa !5
  %2005 = call ptr @s2n_strerror(i32 noundef %2004, ptr noundef @.str.24)
  %2006 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2007 = load i32, ptr %2006, align 4, !tbaa !5
  %2008 = call ptr @s2n_strerror_debug(i32 noundef %2007, ptr noundef @.str.24)
  %2009 = call ptr @__errno_location() #10
  %2010 = load i32, ptr %2009, align 4, !tbaa !5
  %2011 = call ptr @strerror(i32 noundef %2010) #9
  %2012 = call ptr @__errno_location() #10
  %2013 = load i32, ptr %2012, align 4, !tbaa !5
  %2014 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2001, ptr noundef @.str.22, i32 noundef %2002, ptr noundef @.str.35, ptr noundef @.str.21, i32 noundef 95, ptr noundef %2005, ptr noundef %2008, ptr noundef %2011, i32 noundef %2013) #9
  br label %2032

2015:                                             ; preds = %1993, %1986
  %2016 = load i32, ptr %41, align 4, !tbaa !5
  %2017 = call ptr @__errno_location() #10
  store i32 %2016, ptr %2017, align 4, !tbaa !5
  %2018 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2019 = load i32, ptr @test_count, align 4, !tbaa !5
  %2020 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2021 = load i32, ptr %2020, align 4, !tbaa !5
  %2022 = call ptr @s2n_strerror(i32 noundef %2021, ptr noundef @.str.24)
  %2023 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2024 = load i32, ptr %2023, align 4, !tbaa !5
  %2025 = call ptr @s2n_strerror_debug(i32 noundef %2024, ptr noundef @.str.24)
  %2026 = call ptr @__errno_location() #10
  %2027 = load i32, ptr %2026, align 4, !tbaa !5
  %2028 = call ptr @strerror(i32 noundef %2027) #9
  %2029 = call ptr @__errno_location() #10
  %2030 = load i32, ptr %2029, align 4, !tbaa !5
  %2031 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2018, ptr noundef @.str.25, i32 noundef %2019, ptr noundef @.str.35, ptr noundef @.str.21, i32 noundef 95, ptr noundef %2022, ptr noundef %2025, ptr noundef %2028, i32 noundef %2030) #9
  br label %2032

2032:                                             ; preds = %2015, %1998
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #9
  br label %2033

2033:                                             ; preds = %2032
  br label %2034

2034:                                             ; preds = %2033
  call void @exit(i32 noundef 1) #11
  unreachable

2035:                                             ; No predecessors!
  br label %2036

2036:                                             ; preds = %2035
  br label %2037

2037:                                             ; preds = %2036, %1978
  br label %2038

2038:                                             ; preds = %2037
  br label %2039

2039:                                             ; preds = %2038
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #9
  %2040 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %2040, ptr %42, align 8, !tbaa !9
  br label %2041

2041:                                             ; preds = %2039
  %2042 = load i32, ptr @test_count, align 4, !tbaa !5
  %2043 = add nsw i32 %2042, 1
  store i32 %2043, ptr @test_count, align 4, !tbaa !5
  %2044 = load ptr, ptr %42, align 8, !tbaa !9
  %2045 = icmp eq ptr %2044, null
  br i1 %2045, label %2046, label %2099

2046:                                             ; preds = %2041
  br label %2047

2047:                                             ; preds = %2046
  br label %2048

2048:                                             ; preds = %2047
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #9
  %2049 = call ptr @__errno_location() #10
  %2050 = load i32, ptr %2049, align 4, !tbaa !5
  store i32 %2050, ptr %43, align 4, !tbaa !5
  %2051 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2052 = call i32 @s2n_print_stacktrace(ptr noundef %2051)
  %2053 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2054 = trunc i8 %2053 to i1
  br i1 %2054, label %2055, label %2077

2055:                                             ; preds = %2048
  %2056 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2057 = call i32 @fileno(ptr noundef %2056) #9
  %2058 = call i32 @isatty(i32 noundef %2057) #9
  %2059 = icmp ne i32 %2058, 0
  br i1 %2059, label %2060, label %2077

2060:                                             ; preds = %2055
  %2061 = load i32, ptr %43, align 4, !tbaa !5
  %2062 = call ptr @__errno_location() #10
  store i32 %2061, ptr %2062, align 4, !tbaa !5
  %2063 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2064 = load i32, ptr @test_count, align 4, !tbaa !5
  %2065 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2066 = load i32, ptr %2065, align 4, !tbaa !5
  %2067 = call ptr @s2n_strerror(i32 noundef %2066, ptr noundef @.str.24)
  %2068 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2069 = load i32, ptr %2068, align 4, !tbaa !5
  %2070 = call ptr @s2n_strerror_debug(i32 noundef %2069, ptr noundef @.str.24)
  %2071 = call ptr @__errno_location() #10
  %2072 = load i32, ptr %2071, align 4, !tbaa !5
  %2073 = call ptr @strerror(i32 noundef %2072) #9
  %2074 = call ptr @__errno_location() #10
  %2075 = load i32, ptr %2074, align 4, !tbaa !5
  %2076 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2063, ptr noundef @.str.22, i32 noundef %2064, ptr noundef @.str.42, ptr noundef @.str.21, i32 noundef 101, ptr noundef %2067, ptr noundef %2070, ptr noundef %2073, i32 noundef %2075) #9
  br label %2094

2077:                                             ; preds = %2055, %2048
  %2078 = load i32, ptr %43, align 4, !tbaa !5
  %2079 = call ptr @__errno_location() #10
  store i32 %2078, ptr %2079, align 4, !tbaa !5
  %2080 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2081 = load i32, ptr @test_count, align 4, !tbaa !5
  %2082 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2083 = load i32, ptr %2082, align 4, !tbaa !5
  %2084 = call ptr @s2n_strerror(i32 noundef %2083, ptr noundef @.str.24)
  %2085 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2086 = load i32, ptr %2085, align 4, !tbaa !5
  %2087 = call ptr @s2n_strerror_debug(i32 noundef %2086, ptr noundef @.str.24)
  %2088 = call ptr @__errno_location() #10
  %2089 = load i32, ptr %2088, align 4, !tbaa !5
  %2090 = call ptr @strerror(i32 noundef %2089) #9
  %2091 = call ptr @__errno_location() #10
  %2092 = load i32, ptr %2091, align 4, !tbaa !5
  %2093 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2080, ptr noundef @.str.25, i32 noundef %2081, ptr noundef @.str.42, ptr noundef @.str.21, i32 noundef 101, ptr noundef %2084, ptr noundef %2087, ptr noundef %2090, i32 noundef %2092) #9
  br label %2094

2094:                                             ; preds = %2077, %2060
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #9
  br label %2095

2095:                                             ; preds = %2094
  br label %2096

2096:                                             ; preds = %2095
  call void @exit(i32 noundef 1) #11
  unreachable

2097:                                             ; No predecessors!
  br label %2098

2098:                                             ; preds = %2097
  br label %2099

2099:                                             ; preds = %2098, %2041
  br label %2100

2100:                                             ; preds = %2099
  br label %2101

2101:                                             ; preds = %2100
  %2102 = load ptr, ptr %42, align 8, !tbaa !9
  %2103 = getelementptr inbounds %struct.s2n_connection, ptr %2102, i32 0, i32 23
  store i8 34, ptr %2103, align 4, !tbaa !15
  %2104 = load ptr, ptr %42, align 8, !tbaa !9
  %2105 = getelementptr inbounds %struct.s2n_connection, ptr %2104, i32 0, i32 27
  %2106 = load ptr, ptr %2105, align 8, !tbaa !42
  %2107 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %2106, i32 0, i32 0
  store ptr @s2n_tls13_aes_256_gcm_sha384, ptr %2107, align 8, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 1, ptr %44) #9
  store i8 3, ptr %44, align 1, !tbaa !48
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #9
  store i64 0, ptr %45, align 8, !tbaa !49
  br label %2108

2108:                                             ; preds = %2305, %2101
  %2109 = load i64, ptr %45, align 8, !tbaa !49
  %2110 = load i8, ptr %44, align 1, !tbaa !48
  %2111 = zext i8 %2110 to i64
  %2112 = icmp ult i64 %2109, %2111
  br i1 %2112, label %2114, label %2113

2113:                                             ; preds = %2108
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #9
  br label %2308

2114:                                             ; preds = %2108
  call void @llvm.lifetime.start.p0(i64 5, ptr %46) #9
  call void @llvm.memset.p0.i64(ptr align 1 %46, i8 0, i64 5, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr %47) #9
  call void @llvm.memset.p0.i64(ptr align 8 %47, i8 0, i64 24, i1 false)
  br label %2115

2115:                                             ; preds = %2114
  %2116 = load i32, ptr @test_count, align 4, !tbaa !5
  %2117 = add nsw i32 %2116, 1
  store i32 %2117, ptr @test_count, align 4, !tbaa !5
  %2118 = getelementptr inbounds [5 x i8], ptr %46, i64 0, i64 0
  %2119 = call i32 @s2n_blob_init(ptr noundef %47, ptr noundef %2118, i32 noundef 5)
  %2120 = icmp eq i32 %2119, -1
  br i1 %2120, label %2121, label %2174

2121:                                             ; preds = %2115
  br label %2122

2122:                                             ; preds = %2121
  br label %2123

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

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

2135:                                             ; preds = %2130
  %2136 = load i32, ptr %48, align 4, !tbaa !5
  %2137 = call ptr @__errno_location() #10
  store i32 %2136, ptr %2137, align 4, !tbaa !5
  %2138 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2139 = load i32, ptr @test_count, align 4, !tbaa !5
  %2140 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2141 = load i32, ptr %2140, align 4, !tbaa !5
  %2142 = call ptr @s2n_strerror(i32 noundef %2141, ptr noundef @.str.24)
  %2143 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2144 = load i32, ptr %2143, align 4, !tbaa !5
  %2145 = call ptr @s2n_strerror_debug(i32 noundef %2144, ptr noundef @.str.24)
  %2146 = call ptr @__errno_location() #10
  %2147 = load i32, ptr %2146, align 4, !tbaa !5
  %2148 = call ptr @strerror(i32 noundef %2147) #9
  %2149 = call ptr @__errno_location() #10
  %2150 = load i32, ptr %2149, align 4, !tbaa !5
  %2151 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2138, ptr noundef @.str.22, i32 noundef %2139, ptr noundef @.str.43, ptr noundef @.str.21, i32 noundef 111, ptr noundef %2142, ptr noundef %2145, ptr noundef %2148, i32 noundef %2150) #9
  br label %2169

2152:                                             ; preds = %2130, %2123
  %2153 = load i32, ptr %48, align 4, !tbaa !5
  %2154 = call ptr @__errno_location() #10
  store i32 %2153, ptr %2154, align 4, !tbaa !5
  %2155 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2156 = load i32, ptr @test_count, align 4, !tbaa !5
  %2157 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2158 = load i32, ptr %2157, align 4, !tbaa !5
  %2159 = call ptr @s2n_strerror(i32 noundef %2158, ptr noundef @.str.24)
  %2160 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2161 = load i32, ptr %2160, align 4, !tbaa !5
  %2162 = call ptr @s2n_strerror_debug(i32 noundef %2161, ptr noundef @.str.24)
  %2163 = call ptr @__errno_location() #10
  %2164 = load i32, ptr %2163, align 4, !tbaa !5
  %2165 = call ptr @strerror(i32 noundef %2164) #9
  %2166 = call ptr @__errno_location() #10
  %2167 = load i32, ptr %2166, align 4, !tbaa !5
  %2168 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2155, ptr noundef @.str.25, i32 noundef %2156, ptr noundef @.str.43, ptr noundef @.str.21, i32 noundef 111, ptr noundef %2159, ptr noundef %2162, ptr noundef %2165, i32 noundef %2167) #9
  br label %2169

2169:                                             ; preds = %2152, %2135
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #9
  br label %2170

2170:                                             ; preds = %2169
  br label %2171

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

2172:                                             ; No predecessors!
  br label %2173

2173:                                             ; preds = %2172
  br label %2174

2174:                                             ; preds = %2173, %2115
  br label %2175

2175:                                             ; preds = %2174
  br label %2176

2176:                                             ; preds = %2175
  br label %2177

2177:                                             ; preds = %2176
  %2178 = load i32, ptr @test_count, align 4, !tbaa !5
  %2179 = add nsw i32 %2178, 1
  store i32 %2179, ptr @test_count, align 4, !tbaa !5
  %2180 = call i32 @s2n_key_update_write(ptr noundef %47)
  %2181 = icmp eq i32 %2180, -1
  br i1 %2181, label %2182, label %2235

2182:                                             ; preds = %2177
  br label %2183

2183:                                             ; preds = %2182
  br label %2184

2184:                                             ; preds = %2183
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #9
  %2185 = call ptr @__errno_location() #10
  %2186 = load i32, ptr %2185, align 4, !tbaa !5
  store i32 %2186, ptr %49, align 4, !tbaa !5
  %2187 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2188 = call i32 @s2n_print_stacktrace(ptr noundef %2187)
  %2189 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2190 = trunc i8 %2189 to i1
  br i1 %2190, label %2191, label %2213

2191:                                             ; preds = %2184
  %2192 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2193 = call i32 @fileno(ptr noundef %2192) #9
  %2194 = call i32 @isatty(i32 noundef %2193) #9
  %2195 = icmp ne i32 %2194, 0
  br i1 %2195, label %2196, label %2213

2196:                                             ; preds = %2191
  %2197 = load i32, ptr %49, align 4, !tbaa !5
  %2198 = call ptr @__errno_location() #10
  store i32 %2197, ptr %2198, align 4, !tbaa !5
  %2199 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2200 = load i32, ptr @test_count, align 4, !tbaa !5
  %2201 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2202 = load i32, ptr %2201, align 4, !tbaa !5
  %2203 = call ptr @s2n_strerror(i32 noundef %2202, ptr noundef @.str.24)
  %2204 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2205 = load i32, ptr %2204, align 4, !tbaa !5
  %2206 = call ptr @s2n_strerror_debug(i32 noundef %2205, ptr noundef @.str.24)
  %2207 = call ptr @__errno_location() #10
  %2208 = load i32, ptr %2207, align 4, !tbaa !5
  %2209 = call ptr @strerror(i32 noundef %2208) #9
  %2210 = call ptr @__errno_location() #10
  %2211 = load i32, ptr %2210, align 4, !tbaa !5
  %2212 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2199, ptr noundef @.str.22, i32 noundef %2200, ptr noundef @.str.44, ptr noundef @.str.21, i32 noundef 112, ptr noundef %2203, ptr noundef %2206, ptr noundef %2209, i32 noundef %2211) #9
  br label %2230

2213:                                             ; preds = %2191, %2184
  %2214 = load i32, ptr %49, align 4, !tbaa !5
  %2215 = call ptr @__errno_location() #10
  store i32 %2214, ptr %2215, align 4, !tbaa !5
  %2216 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2217 = load i32, ptr @test_count, align 4, !tbaa !5
  %2218 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2219 = load i32, ptr %2218, align 4, !tbaa !5
  %2220 = call ptr @s2n_strerror(i32 noundef %2219, ptr noundef @.str.24)
  %2221 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2222 = load i32, ptr %2221, align 4, !tbaa !5
  %2223 = call ptr @s2n_strerror_debug(i32 noundef %2222, ptr noundef @.str.24)
  %2224 = call ptr @__errno_location() #10
  %2225 = load i32, ptr %2224, align 4, !tbaa !5
  %2226 = call ptr @strerror(i32 noundef %2225) #9
  %2227 = call ptr @__errno_location() #10
  %2228 = load i32, ptr %2227, align 4, !tbaa !5
  %2229 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2216, ptr noundef @.str.25, i32 noundef %2217, ptr noundef @.str.44, ptr noundef @.str.21, i32 noundef 112, ptr noundef %2220, ptr noundef %2223, ptr noundef %2226, i32 noundef %2228) #9
  br label %2230

2230:                                             ; preds = %2213, %2196
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #9
  br label %2231

2231:                                             ; preds = %2230
  br label %2232

2232:                                             ; preds = %2231
  call void @exit(i32 noundef 1) #11
  unreachable

2233:                                             ; No predecessors!
  br label %2234

2234:                                             ; preds = %2233
  br label %2235

2235:                                             ; preds = %2234, %2177
  br label %2236

2236:                                             ; preds = %2235
  br label %2237

2237:                                             ; preds = %2236
  br label %2238

2238:                                             ; preds = %2237
  %2239 = load i32, ptr @test_count, align 4, !tbaa !5
  %2240 = add nsw i32 %2239, 1
  store i32 %2240, ptr @test_count, align 4, !tbaa !5
  %2241 = load ptr, ptr %42, align 8, !tbaa !9
  %2242 = getelementptr inbounds %struct.s2n_connection, ptr %2241, i32 0, i32 40
  %2243 = getelementptr inbounds %struct.s2n_blob, ptr %47, i32 0, i32 0
  %2244 = load ptr, ptr %2243, align 8, !tbaa !50
  %2245 = getelementptr inbounds %struct.s2n_blob, ptr %47, i32 0, i32 1
  %2246 = load i32, ptr %2245, align 8, !tbaa !51
  %2247 = call i32 @s2n_stuffer_write_bytes(ptr noundef %2242, ptr noundef %2244, i32 noundef %2246)
  %2248 = icmp eq i32 %2247, -1
  br i1 %2248, label %2249, label %2302

2249:                                             ; preds = %2238
  br label %2250

2250:                                             ; preds = %2249
  br label %2251

2251:                                             ; preds = %2250
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #9
  %2252 = call ptr @__errno_location() #10
  %2253 = load i32, ptr %2252, align 4, !tbaa !5
  store i32 %2253, ptr %50, align 4, !tbaa !5
  %2254 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2255 = call i32 @s2n_print_stacktrace(ptr noundef %2254)
  %2256 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2257 = trunc i8 %2256 to i1
  br i1 %2257, label %2258, label %2280

2258:                                             ; preds = %2251
  %2259 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2260 = call i32 @fileno(ptr noundef %2259) #9
  %2261 = call i32 @isatty(i32 noundef %2260) #9
  %2262 = icmp ne i32 %2261, 0
  br i1 %2262, label %2263, label %2280

2263:                                             ; preds = %2258
  %2264 = load i32, ptr %50, align 4, !tbaa !5
  %2265 = call ptr @__errno_location() #10
  store i32 %2264, ptr %2265, align 4, !tbaa !5
  %2266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2267 = load i32, ptr @test_count, align 4, !tbaa !5
  %2268 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2269 = load i32, ptr %2268, align 4, !tbaa !5
  %2270 = call ptr @s2n_strerror(i32 noundef %2269, ptr noundef @.str.24)
  %2271 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2272 = load i32, ptr %2271, align 4, !tbaa !5
  %2273 = call ptr @s2n_strerror_debug(i32 noundef %2272, ptr noundef @.str.24)
  %2274 = call ptr @__errno_location() #10
  %2275 = load i32, ptr %2274, align 4, !tbaa !5
  %2276 = call ptr @strerror(i32 noundef %2275) #9
  %2277 = call ptr @__errno_location() #10
  %2278 = load i32, ptr %2277, align 4, !tbaa !5
  %2279 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2266, ptr noundef @.str.22, i32 noundef %2267, ptr noundef @.str.45, ptr noundef @.str.21, i32 noundef 113, ptr noundef %2270, ptr noundef %2273, ptr noundef %2276, i32 noundef %2278) #9
  br label %2297

2280:                                             ; preds = %2258, %2251
  %2281 = load i32, ptr %50, align 4, !tbaa !5
  %2282 = call ptr @__errno_location() #10
  store i32 %2281, ptr %2282, align 4, !tbaa !5
  %2283 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2284 = load i32, ptr @test_count, align 4, !tbaa !5
  %2285 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2286 = load i32, ptr %2285, align 4, !tbaa !5
  %2287 = call ptr @s2n_strerror(i32 noundef %2286, ptr noundef @.str.24)
  %2288 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2289 = load i32, ptr %2288, align 4, !tbaa !5
  %2290 = call ptr @s2n_strerror_debug(i32 noundef %2289, ptr noundef @.str.24)
  %2291 = call ptr @__errno_location() #10
  %2292 = load i32, ptr %2291, align 4, !tbaa !5
  %2293 = call ptr @strerror(i32 noundef %2292) #9
  %2294 = call ptr @__errno_location() #10
  %2295 = load i32, ptr %2294, align 4, !tbaa !5
  %2296 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2283, ptr noundef @.str.25, i32 noundef %2284, ptr noundef @.str.45, ptr noundef @.str.21, i32 noundef 113, ptr noundef %2287, ptr noundef %2290, ptr noundef %2293, i32 noundef %2295) #9
  br label %2297

2297:                                             ; preds = %2280, %2263
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #9
  br label %2298

2298:                                             ; preds = %2297
  br label %2299

2299:                                             ; preds = %2298
  call void @exit(i32 noundef 1) #11
  unreachable

2300:                                             ; No predecessors!
  br label %2301

2301:                                             ; preds = %2300
  br label %2302

2302:                                             ; preds = %2301, %2238
  br label %2303

2303:                                             ; preds = %2302
  br label %2304

2304:                                             ; preds = %2303
  call void @llvm.lifetime.end.p0(i64 24, ptr %47) #9
  call void @llvm.lifetime.end.p0(i64 5, ptr %46) #9
  br label %2305

2305:                                             ; preds = %2304
  %2306 = load i64, ptr %45, align 8, !tbaa !49
  %2307 = add i64 %2306, 1
  store i64 %2307, ptr %45, align 8, !tbaa !49
  br label %2108, !llvm.loop !52

2308:                                             ; preds = %2113
  br label %2309

2309:                                             ; preds = %2308
  %2310 = load i32, ptr @test_count, align 4, !tbaa !5
  %2311 = add nsw i32 %2310, 1
  store i32 %2311, ptr @test_count, align 4, !tbaa !5
  %2312 = load ptr, ptr %42, align 8, !tbaa !9
  %2313 = call i32 @s2n_post_handshake_recv(ptr noundef %2312)
  %2314 = getelementptr inbounds %struct.s2n_result, ptr %51, i32 0, i32 0
  store i32 %2313, ptr %2314, align 4
  %2315 = getelementptr inbounds %struct.s2n_result, ptr %51, i32 0, i32 0
  %2316 = load i32, ptr %2315, align 4
  %2317 = call zeroext i1 @s2n_result_is_ok(i32 %2316)
  br i1 %2317, label %2371, label %2318

2318:                                             ; preds = %2309
  br label %2319

2319:                                             ; preds = %2318
  br label %2320

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

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

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

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

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

2367:                                             ; preds = %2366
  br label %2368

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

2369:                                             ; No predecessors!
  br label %2370

2370:                                             ; preds = %2369
  br label %2371

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

2372:                                             ; preds = %2371
  br label %2373

2373:                                             ; preds = %2372
  br label %2374

2374:                                             ; preds = %2373
  %2375 = load i32, ptr @test_count, align 4, !tbaa !5
  %2376 = add nsw i32 %2375, 1
  store i32 %2376, ptr @test_count, align 4, !tbaa !5
  %2377 = load ptr, ptr %42, align 8, !tbaa !9
  %2378 = getelementptr inbounds %struct.s2n_connection, ptr %2377, i32 0, i32 40
  %2379 = getelementptr inbounds %struct.s2n_stuffer, ptr %2378, i32 0, i32 2
  %2380 = load i32, ptr %2379, align 4, !tbaa !54
  %2381 = load ptr, ptr %42, align 8, !tbaa !9
  %2382 = getelementptr inbounds %struct.s2n_connection, ptr %2381, i32 0, i32 40
  %2383 = getelementptr inbounds %struct.s2n_stuffer, ptr %2382, i32 0, i32 1
  %2384 = load i32, ptr %2383, align 8, !tbaa !55
  %2385 = sub i32 %2380, %2384
  %2386 = icmp eq i32 %2385, 0
  br i1 %2386, label %2440, label %2387

2387:                                             ; preds = %2374
  br label %2388

2388:                                             ; preds = %2387
  br label %2389

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

2396:                                             ; preds = %2389
  %2397 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2398 = call i32 @fileno(ptr noundef %2397) #9
  %2399 = call i32 @isatty(i32 noundef %2398) #9
  %2400 = icmp ne i32 %2399, 0
  br i1 %2400, label %2401, label %2418

2401:                                             ; preds = %2396
  %2402 = load i32, ptr %53, align 4, !tbaa !5
  %2403 = call ptr @__errno_location() #10
  store i32 %2402, ptr %2403, align 4, !tbaa !5
  %2404 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2405 = load i32, ptr @test_count, align 4, !tbaa !5
  %2406 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2407 = load i32, ptr %2406, align 4, !tbaa !5
  %2408 = call ptr @s2n_strerror(i32 noundef %2407, ptr noundef @.str.24)
  %2409 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2410 = load i32, ptr %2409, align 4, !tbaa !5
  %2411 = call ptr @s2n_strerror_debug(i32 noundef %2410, ptr noundef @.str.24)
  %2412 = call ptr @__errno_location() #10
  %2413 = load i32, ptr %2412, align 4, !tbaa !5
  %2414 = call ptr @strerror(i32 noundef %2413) #9
  %2415 = call ptr @__errno_location() #10
  %2416 = load i32, ptr %2415, align 4, !tbaa !5
  %2417 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2404, ptr noundef @.str.22, i32 noundef %2405, ptr noundef @.str.46, ptr noundef @.str.21, i32 noundef 119, ptr noundef %2408, ptr noundef %2411, ptr noundef %2414, i32 noundef %2416) #9
  br label %2435

2418:                                             ; preds = %2396, %2389
  %2419 = load i32, ptr %53, align 4, !tbaa !5
  %2420 = call ptr @__errno_location() #10
  store i32 %2419, ptr %2420, align 4, !tbaa !5
  %2421 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2422 = load i32, ptr @test_count, align 4, !tbaa !5
  %2423 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2424 = load i32, ptr %2423, align 4, !tbaa !5
  %2425 = call ptr @s2n_strerror(i32 noundef %2424, ptr noundef @.str.24)
  %2426 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2427 = load i32, ptr %2426, align 4, !tbaa !5
  %2428 = call ptr @s2n_strerror_debug(i32 noundef %2427, ptr noundef @.str.24)
  %2429 = call ptr @__errno_location() #10
  %2430 = load i32, ptr %2429, align 4, !tbaa !5
  %2431 = call ptr @strerror(i32 noundef %2430) #9
  %2432 = call ptr @__errno_location() #10
  %2433 = load i32, ptr %2432, align 4, !tbaa !5
  %2434 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2421, ptr noundef @.str.25, i32 noundef %2422, ptr noundef @.str.46, ptr noundef @.str.21, i32 noundef 119, ptr noundef %2425, ptr noundef %2428, ptr noundef %2431, i32 noundef %2433) #9
  br label %2435

2435:                                             ; preds = %2418, %2401
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #9
  br label %2436

2436:                                             ; preds = %2435
  br label %2437

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

2438:                                             ; No predecessors!
  br label %2439

2439:                                             ; preds = %2438
  br label %2440

2440:                                             ; preds = %2439, %2374
  br label %2441

2441:                                             ; preds = %2440
  br label %2442

2442:                                             ; preds = %2441
  br label %2443

2443:                                             ; preds = %2442
  %2444 = load i32, ptr @test_count, align 4, !tbaa !5
  %2445 = add nsw i32 %2444, 1
  store i32 %2445, ptr @test_count, align 4, !tbaa !5
  %2446 = load ptr, ptr %42, align 8, !tbaa !9
  %2447 = call i32 @s2n_connection_free(ptr noundef %2446)
  %2448 = icmp eq i32 %2447, -1
  br i1 %2448, label %2449, label %2502

2449:                                             ; preds = %2443
  br label %2450

2450:                                             ; preds = %2449
  br label %2451

2451:                                             ; preds = %2450
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #9
  %2452 = call ptr @__errno_location() #10
  %2453 = load i32, ptr %2452, align 4, !tbaa !5
  store i32 %2453, ptr %54, align 4, !tbaa !5
  %2454 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2455 = call i32 @s2n_print_stacktrace(ptr noundef %2454)
  %2456 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2457 = trunc i8 %2456 to i1
  br i1 %2457, label %2458, label %2480

2458:                                             ; preds = %2451
  %2459 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2460 = call i32 @fileno(ptr noundef %2459) #9
  %2461 = call i32 @isatty(i32 noundef %2460) #9
  %2462 = icmp ne i32 %2461, 0
  br i1 %2462, label %2463, label %2480

2463:                                             ; preds = %2458
  %2464 = load i32, ptr %54, align 4, !tbaa !5
  %2465 = call ptr @__errno_location() #10
  store i32 %2464, ptr %2465, align 4, !tbaa !5
  %2466 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2467 = load i32, ptr @test_count, align 4, !tbaa !5
  %2468 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2469 = load i32, ptr %2468, align 4, !tbaa !5
  %2470 = call ptr @s2n_strerror(i32 noundef %2469, ptr noundef @.str.24)
  %2471 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2472 = load i32, ptr %2471, align 4, !tbaa !5
  %2473 = call ptr @s2n_strerror_debug(i32 noundef %2472, ptr noundef @.str.24)
  %2474 = call ptr @__errno_location() #10
  %2475 = load i32, ptr %2474, align 4, !tbaa !5
  %2476 = call ptr @strerror(i32 noundef %2475) #9
  %2477 = call ptr @__errno_location() #10
  %2478 = load i32, ptr %2477, align 4, !tbaa !5
  %2479 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2466, ptr noundef @.str.22, i32 noundef %2467, ptr noundef @.str.35, ptr noundef @.str.21, i32 noundef 121, ptr noundef %2470, ptr noundef %2473, ptr noundef %2476, i32 noundef %2478) #9
  br label %2497

2480:                                             ; preds = %2458, %2451
  %2481 = load i32, ptr %54, align 4, !tbaa !5
  %2482 = call ptr @__errno_location() #10
  store i32 %2481, ptr %2482, align 4, !tbaa !5
  %2483 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2484 = load i32, ptr @test_count, align 4, !tbaa !5
  %2485 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2486 = load i32, ptr %2485, align 4, !tbaa !5
  %2487 = call ptr @s2n_strerror(i32 noundef %2486, ptr noundef @.str.24)
  %2488 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2489 = load i32, ptr %2488, align 4, !tbaa !5
  %2490 = call ptr @s2n_strerror_debug(i32 noundef %2489, ptr noundef @.str.24)
  %2491 = call ptr @__errno_location() #10
  %2492 = load i32, ptr %2491, align 4, !tbaa !5
  %2493 = call ptr @strerror(i32 noundef %2492) #9
  %2494 = call ptr @__errno_location() #10
  %2495 = load i32, ptr %2494, align 4, !tbaa !5
  %2496 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2483, ptr noundef @.str.25, i32 noundef %2484, ptr noundef @.str.35, ptr noundef @.str.21, i32 noundef 121, ptr noundef %2487, ptr noundef %2490, ptr noundef %2493, i32 noundef %2495) #9
  br label %2497

2497:                                             ; preds = %2480, %2463
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #9
  br label %2498

2498:                                             ; preds = %2497
  br label %2499

2499:                                             ; preds = %2498
  call void @exit(i32 noundef 1) #11
  unreachable

2500:                                             ; No predecessors!
  br label %2501

2501:                                             ; preds = %2500
  br label %2502

2502:                                             ; preds = %2501, %2443
  br label %2503

2503:                                             ; preds = %2502
  br label %2504

2504:                                             ; preds = %2503
  call void @llvm.lifetime.end.p0(i64 1, ptr %44) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #9
  %2505 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %2505, ptr %55, align 8, !tbaa !9
  br label %2506

2506:                                             ; preds = %2504
  %2507 = load i32, ptr @test_count, align 4, !tbaa !5
  %2508 = add nsw i32 %2507, 1
  store i32 %2508, ptr @test_count, align 4, !tbaa !5
  %2509 = load ptr, ptr %55, align 8, !tbaa !9
  %2510 = icmp eq ptr %2509, null
  br i1 %2510, label %2511, label %2564

2511:                                             ; preds = %2506
  br label %2512

2512:                                             ; preds = %2511
  br label %2513

2513:                                             ; preds = %2512
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #9
  %2514 = call ptr @__errno_location() #10
  %2515 = load i32, ptr %2514, align 4, !tbaa !5
  store i32 %2515, ptr %56, align 4, !tbaa !5
  %2516 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2517 = call i32 @s2n_print_stacktrace(ptr noundef %2516)
  %2518 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2519 = trunc i8 %2518 to i1
  br i1 %2519, label %2520, label %2542

2520:                                             ; preds = %2513
  %2521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2522 = call i32 @fileno(ptr noundef %2521) #9
  %2523 = call i32 @isatty(i32 noundef %2522) #9
  %2524 = icmp ne i32 %2523, 0
  br i1 %2524, label %2525, label %2542

2525:                                             ; preds = %2520
  %2526 = load i32, ptr %56, align 4, !tbaa !5
  %2527 = call ptr @__errno_location() #10
  store i32 %2526, ptr %2527, align 4, !tbaa !5
  %2528 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2529 = load i32, ptr @test_count, align 4, !tbaa !5
  %2530 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2531 = load i32, ptr %2530, align 4, !tbaa !5
  %2532 = call ptr @s2n_strerror(i32 noundef %2531, ptr noundef @.str.24)
  %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.24)
  %2536 = call ptr @__errno_location() #10
  %2537 = load i32, ptr %2536, align 4, !tbaa !5
  %2538 = call ptr @strerror(i32 noundef %2537) #9
  %2539 = call ptr @__errno_location() #10
  %2540 = load i32, ptr %2539, align 4, !tbaa !5
  %2541 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2528, ptr noundef @.str.22, i32 noundef %2529, ptr noundef @.str.42, ptr noundef @.str.21, i32 noundef 127, ptr noundef %2532, ptr noundef %2535, ptr noundef %2538, i32 noundef %2540) #9
  br label %2559

2542:                                             ; preds = %2520, %2513
  %2543 = load i32, ptr %56, align 4, !tbaa !5
  %2544 = call ptr @__errno_location() #10
  store i32 %2543, ptr %2544, align 4, !tbaa !5
  %2545 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2546 = load i32, ptr @test_count, align 4, !tbaa !5
  %2547 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2548 = load i32, ptr %2547, align 4, !tbaa !5
  %2549 = call ptr @s2n_strerror(i32 noundef %2548, ptr noundef @.str.24)
  %2550 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2551 = load i32, ptr %2550, align 4, !tbaa !5
  %2552 = call ptr @s2n_strerror_debug(i32 noundef %2551, ptr noundef @.str.24)
  %2553 = call ptr @__errno_location() #10
  %2554 = load i32, ptr %2553, align 4, !tbaa !5
  %2555 = call ptr @strerror(i32 noundef %2554) #9
  %2556 = call ptr @__errno_location() #10
  %2557 = load i32, ptr %2556, align 4, !tbaa !5
  %2558 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2545, ptr noundef @.str.25, i32 noundef %2546, ptr noundef @.str.42, ptr noundef @.str.21, i32 noundef 127, ptr noundef %2549, ptr noundef %2552, ptr noundef %2555, i32 noundef %2557) #9
  br label %2559

2559:                                             ; preds = %2542, %2525
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #9
  br label %2560

2560:                                             ; preds = %2559
  br label %2561

2561:                                             ; preds = %2560
  call void @exit(i32 noundef 1) #11
  unreachable

2562:                                             ; No predecessors!
  br label %2563

2563:                                             ; preds = %2562
  br label %2564

2564:                                             ; preds = %2563, %2506
  br label %2565

2565:                                             ; preds = %2564
  br label %2566

2566:                                             ; preds = %2565
  %2567 = load ptr, ptr %55, align 8, !tbaa !9
  %2568 = getelementptr inbounds %struct.s2n_connection, ptr %2567, i32 0, i32 23
  store i8 33, ptr %2568, align 4, !tbaa !15
  br label %2569

2569:                                             ; preds = %2566
  %2570 = load i32, ptr @test_count, align 4, !tbaa !5
  %2571 = add nsw i32 %2570, 1
  store i32 %2571, ptr @test_count, align 4, !tbaa !5
  %2572 = load ptr, ptr %55, align 8, !tbaa !9
  %2573 = getelementptr inbounds %struct.s2n_connection, ptr %2572, i32 0, i32 40
  %2574 = call i32 @s2n_stuffer_write_uint8(ptr noundef %2573, i8 noundef zeroext 0)
  %2575 = icmp eq i32 %2574, -1
  br i1 %2575, label %2576, label %2629

2576:                                             ; preds = %2569
  br label %2577

2577:                                             ; preds = %2576
  br label %2578

2578:                                             ; preds = %2577
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #9
  %2579 = call ptr @__errno_location() #10
  %2580 = load i32, ptr %2579, align 4, !tbaa !5
  store i32 %2580, ptr %57, align 4, !tbaa !5
  %2581 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2582 = call i32 @s2n_print_stacktrace(ptr noundef %2581)
  %2583 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2584 = trunc i8 %2583 to i1
  br i1 %2584, label %2585, label %2607

2585:                                             ; preds = %2578
  %2586 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2587 = call i32 @fileno(ptr noundef %2586) #9
  %2588 = call i32 @isatty(i32 noundef %2587) #9
  %2589 = icmp ne i32 %2588, 0
  br i1 %2589, label %2590, label %2607

2590:                                             ; preds = %2585
  %2591 = load i32, ptr %57, align 4, !tbaa !5
  %2592 = call ptr @__errno_location() #10
  store i32 %2591, ptr %2592, align 4, !tbaa !5
  %2593 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2594 = load i32, ptr @test_count, align 4, !tbaa !5
  %2595 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2596 = load i32, ptr %2595, align 4, !tbaa !5
  %2597 = call ptr @s2n_strerror(i32 noundef %2596, ptr noundef @.str.24)
  %2598 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2599 = load i32, ptr %2598, align 4, !tbaa !5
  %2600 = call ptr @s2n_strerror_debug(i32 noundef %2599, ptr noundef @.str.24)
  %2601 = call ptr @__errno_location() #10
  %2602 = load i32, ptr %2601, align 4, !tbaa !5
  %2603 = call ptr @strerror(i32 noundef %2602) #9
  %2604 = call ptr @__errno_location() #10
  %2605 = load i32, ptr %2604, align 4, !tbaa !5
  %2606 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2593, ptr noundef @.str.22, i32 noundef %2594, ptr noundef @.str.47, ptr noundef @.str.21, i32 noundef 130, ptr noundef %2597, ptr noundef %2600, ptr noundef %2603, i32 noundef %2605) #9
  br label %2624

2607:                                             ; preds = %2585, %2578
  %2608 = load i32, ptr %57, align 4, !tbaa !5
  %2609 = call ptr @__errno_location() #10
  store i32 %2608, ptr %2609, align 4, !tbaa !5
  %2610 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2611 = load i32, ptr @test_count, align 4, !tbaa !5
  %2612 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2613 = load i32, ptr %2612, align 4, !tbaa !5
  %2614 = call ptr @s2n_strerror(i32 noundef %2613, ptr noundef @.str.24)
  %2615 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2616 = load i32, ptr %2615, align 4, !tbaa !5
  %2617 = call ptr @s2n_strerror_debug(i32 noundef %2616, ptr noundef @.str.24)
  %2618 = call ptr @__errno_location() #10
  %2619 = load i32, ptr %2618, align 4, !tbaa !5
  %2620 = call ptr @strerror(i32 noundef %2619) #9
  %2621 = call ptr @__errno_location() #10
  %2622 = load i32, ptr %2621, align 4, !tbaa !5
  %2623 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2610, ptr noundef @.str.25, i32 noundef %2611, ptr noundef @.str.47, ptr noundef @.str.21, i32 noundef 130, ptr noundef %2614, ptr noundef %2617, ptr noundef %2620, i32 noundef %2622) #9
  br label %2624

2624:                                             ; preds = %2607, %2590
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #9
  br label %2625

2625:                                             ; preds = %2624
  br label %2626

2626:                                             ; preds = %2625
  call void @exit(i32 noundef 1) #11
  unreachable

2627:                                             ; No predecessors!
  br label %2628

2628:                                             ; preds = %2627
  br label %2629

2629:                                             ; preds = %2628, %2569
  br label %2630

2630:                                             ; preds = %2629
  br label %2631

2631:                                             ; preds = %2630
  br label %2632

2632:                                             ; preds = %2631
  %2633 = load i32, ptr @test_count, align 4, !tbaa !5
  %2634 = add nsw i32 %2633, 1
  store i32 %2634, ptr @test_count, align 4, !tbaa !5
  %2635 = load ptr, ptr %55, align 8, !tbaa !9
  %2636 = getelementptr inbounds %struct.s2n_connection, ptr %2635, i32 0, i32 40
  %2637 = call i32 @s2n_stuffer_write_uint24(ptr noundef %2636, i32 noundef 0)
  %2638 = icmp eq i32 %2637, -1
  br i1 %2638, label %2639, label %2692

2639:                                             ; preds = %2632
  br label %2640

2640:                                             ; preds = %2639
  br label %2641

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

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

2653:                                             ; preds = %2648
  %2654 = load i32, ptr %58, align 4, !tbaa !5
  %2655 = call ptr @__errno_location() #10
  store i32 %2654, ptr %2655, align 4, !tbaa !5
  %2656 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2657 = load i32, ptr @test_count, align 4, !tbaa !5
  %2658 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2659 = load i32, ptr %2658, align 4, !tbaa !5
  %2660 = call ptr @s2n_strerror(i32 noundef %2659, ptr noundef @.str.24)
  %2661 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2662 = load i32, ptr %2661, align 4, !tbaa !5
  %2663 = call ptr @s2n_strerror_debug(i32 noundef %2662, ptr noundef @.str.24)
  %2664 = call ptr @__errno_location() #10
  %2665 = load i32, ptr %2664, align 4, !tbaa !5
  %2666 = call ptr @strerror(i32 noundef %2665) #9
  %2667 = call ptr @__errno_location() #10
  %2668 = load i32, ptr %2667, align 4, !tbaa !5
  %2669 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2656, ptr noundef @.str.22, i32 noundef %2657, ptr noundef @.str.48, ptr noundef @.str.21, i32 noundef 131, ptr noundef %2660, ptr noundef %2663, ptr noundef %2666, i32 noundef %2668) #9
  br label %2687

2670:                                             ; preds = %2648, %2641
  %2671 = load i32, ptr %58, align 4, !tbaa !5
  %2672 = call ptr @__errno_location() #10
  store i32 %2671, ptr %2672, align 4, !tbaa !5
  %2673 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2674 = load i32, ptr @test_count, align 4, !tbaa !5
  %2675 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2676 = load i32, ptr %2675, align 4, !tbaa !5
  %2677 = call ptr @s2n_strerror(i32 noundef %2676, ptr noundef @.str.24)
  %2678 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2679 = load i32, ptr %2678, align 4, !tbaa !5
  %2680 = call ptr @s2n_strerror_debug(i32 noundef %2679, ptr noundef @.str.24)
  %2681 = call ptr @__errno_location() #10
  %2682 = load i32, ptr %2681, align 4, !tbaa !5
  %2683 = call ptr @strerror(i32 noundef %2682) #9
  %2684 = call ptr @__errno_location() #10
  %2685 = load i32, ptr %2684, align 4, !tbaa !5
  %2686 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2673, ptr noundef @.str.25, i32 noundef %2674, ptr noundef @.str.48, ptr noundef @.str.21, i32 noundef 131, ptr noundef %2677, ptr noundef %2680, ptr noundef %2683, i32 noundef %2685) #9
  br label %2687

2687:                                             ; preds = %2670, %2653
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #9
  br label %2688

2688:                                             ; preds = %2687
  br label %2689

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

2690:                                             ; No predecessors!
  br label %2691

2691:                                             ; preds = %2690
  br label %2692

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

2693:                                             ; preds = %2692
  br label %2694

2694:                                             ; preds = %2693
  br label %2695

2695:                                             ; preds = %2694
  %2696 = load i32, ptr @test_count, align 4, !tbaa !5
  %2697 = add nsw i32 %2696, 1
  store i32 %2697, ptr @test_count, align 4, !tbaa !5
  %2698 = load ptr, ptr %55, align 8, !tbaa !9
  %2699 = call i32 @s2n_post_handshake_recv(ptr noundef %2698)
  %2700 = getelementptr inbounds %struct.s2n_result, ptr %59, i32 0, i32 0
  store i32 %2699, ptr %2700, align 4
  %2701 = getelementptr inbounds %struct.s2n_result, ptr %59, i32 0, i32 0
  %2702 = load i32, ptr %2701, align 4
  %2703 = call zeroext i1 @s2n_result_is_ok(i32 %2702)
  br i1 %2703, label %2757, label %2704

2704:                                             ; preds = %2695
  br label %2705

2705:                                             ; preds = %2704
  br label %2706

2706:                                             ; preds = %2705
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #9
  %2707 = call ptr @__errno_location() #10
  %2708 = load i32, ptr %2707, align 4, !tbaa !5
  store i32 %2708, ptr %60, align 4, !tbaa !5
  %2709 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2710 = call i32 @s2n_print_stacktrace(ptr noundef %2709)
  %2711 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2712 = trunc i8 %2711 to i1
  br i1 %2712, label %2713, label %2735

2713:                                             ; preds = %2706
  %2714 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2715 = call i32 @fileno(ptr noundef %2714) #9
  %2716 = call i32 @isatty(i32 noundef %2715) #9
  %2717 = icmp ne i32 %2716, 0
  br i1 %2717, label %2718, label %2735

2718:                                             ; preds = %2713
  %2719 = load i32, ptr %60, align 4, !tbaa !5
  %2720 = call ptr @__errno_location() #10
  store i32 %2719, ptr %2720, align 4, !tbaa !5
  %2721 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2722 = load i32, ptr @test_count, align 4, !tbaa !5
  %2723 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2724 = load i32, ptr %2723, align 4, !tbaa !5
  %2725 = call ptr @s2n_strerror(i32 noundef %2724, ptr noundef @.str.24)
  %2726 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2727 = load i32, ptr %2726, align 4, !tbaa !5
  %2728 = call ptr @s2n_strerror_debug(i32 noundef %2727, ptr noundef @.str.24)
  %2729 = call ptr @__errno_location() #10
  %2730 = load i32, ptr %2729, align 4, !tbaa !5
  %2731 = call ptr @strerror(i32 noundef %2730) #9
  %2732 = call ptr @__errno_location() #10
  %2733 = load i32, ptr %2732, align 4, !tbaa !5
  %2734 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2721, ptr noundef @.str.22, i32 noundef %2722, ptr noundef @.str.33, ptr noundef @.str.21, i32 noundef 132, ptr noundef %2725, ptr noundef %2728, ptr noundef %2731, i32 noundef %2733) #9
  br label %2752

2735:                                             ; preds = %2713, %2706
  %2736 = load i32, ptr %60, align 4, !tbaa !5
  %2737 = call ptr @__errno_location() #10
  store i32 %2736, ptr %2737, align 4, !tbaa !5
  %2738 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2739 = load i32, ptr @test_count, align 4, !tbaa !5
  %2740 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2741 = load i32, ptr %2740, align 4, !tbaa !5
  %2742 = call ptr @s2n_strerror(i32 noundef %2741, ptr noundef @.str.24)
  %2743 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2744 = load i32, ptr %2743, align 4, !tbaa !5
  %2745 = call ptr @s2n_strerror_debug(i32 noundef %2744, ptr noundef @.str.24)
  %2746 = call ptr @__errno_location() #10
  %2747 = load i32, ptr %2746, align 4, !tbaa !5
  %2748 = call ptr @strerror(i32 noundef %2747) #9
  %2749 = call ptr @__errno_location() #10
  %2750 = load i32, ptr %2749, align 4, !tbaa !5
  %2751 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2738, ptr noundef @.str.25, i32 noundef %2739, ptr noundef @.str.33, ptr noundef @.str.21, i32 noundef 132, ptr noundef %2742, ptr noundef %2745, ptr noundef %2748, i32 noundef %2750) #9
  br label %2752

2752:                                             ; preds = %2735, %2718
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #9
  br label %2753

2753:                                             ; preds = %2752
  br label %2754

2754:                                             ; preds = %2753
  call void @exit(i32 noundef 1) #11
  unreachable

2755:                                             ; No predecessors!
  br label %2756

2756:                                             ; preds = %2755
  br label %2757

2757:                                             ; preds = %2756, %2695
  br label %2758

2758:                                             ; preds = %2757
  br label %2759

2759:                                             ; preds = %2758
  br label %2760

2760:                                             ; preds = %2759
  %2761 = load i32, ptr @test_count, align 4, !tbaa !5
  %2762 = add nsw i32 %2761, 1
  store i32 %2762, ptr @test_count, align 4, !tbaa !5
  %2763 = load ptr, ptr %55, align 8, !tbaa !9
  %2764 = call i32 @s2n_connection_free(ptr noundef %2763)
  %2765 = icmp eq i32 %2764, -1
  br i1 %2765, label %2766, label %2819

2766:                                             ; preds = %2760
  br label %2767

2767:                                             ; preds = %2766
  br label %2768

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

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

2780:                                             ; preds = %2775
  %2781 = load i32, ptr %61, align 4, !tbaa !5
  %2782 = call ptr @__errno_location() #10
  store i32 %2781, ptr %2782, align 4, !tbaa !5
  %2783 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2784 = load i32, ptr @test_count, align 4, !tbaa !5
  %2785 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2786 = load i32, ptr %2785, align 4, !tbaa !5
  %2787 = call ptr @s2n_strerror(i32 noundef %2786, ptr noundef @.str.24)
  %2788 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2789 = load i32, ptr %2788, align 4, !tbaa !5
  %2790 = call ptr @s2n_strerror_debug(i32 noundef %2789, ptr noundef @.str.24)
  %2791 = call ptr @__errno_location() #10
  %2792 = load i32, ptr %2791, align 4, !tbaa !5
  %2793 = call ptr @strerror(i32 noundef %2792) #9
  %2794 = call ptr @__errno_location() #10
  %2795 = load i32, ptr %2794, align 4, !tbaa !5
  %2796 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2783, ptr noundef @.str.22, i32 noundef %2784, ptr noundef @.str.35, ptr noundef @.str.21, i32 noundef 134, ptr noundef %2787, ptr noundef %2790, ptr noundef %2793, i32 noundef %2795) #9
  br label %2814

2797:                                             ; preds = %2775, %2768
  %2798 = load i32, ptr %61, align 4, !tbaa !5
  %2799 = call ptr @__errno_location() #10
  store i32 %2798, ptr %2799, align 4, !tbaa !5
  %2800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2801 = load i32, ptr @test_count, align 4, !tbaa !5
  %2802 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2803 = load i32, ptr %2802, align 4, !tbaa !5
  %2804 = call ptr @s2n_strerror(i32 noundef %2803, ptr noundef @.str.24)
  %2805 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2806 = load i32, ptr %2805, align 4, !tbaa !5
  %2807 = call ptr @s2n_strerror_debug(i32 noundef %2806, ptr noundef @.str.24)
  %2808 = call ptr @__errno_location() #10
  %2809 = load i32, ptr %2808, align 4, !tbaa !5
  %2810 = call ptr @strerror(i32 noundef %2809) #9
  %2811 = call ptr @__errno_location() #10
  %2812 = load i32, ptr %2811, align 4, !tbaa !5
  %2813 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2800, ptr noundef @.str.25, i32 noundef %2801, ptr noundef @.str.35, ptr noundef @.str.21, i32 noundef 134, ptr noundef %2804, ptr noundef %2807, ptr noundef %2810, i32 noundef %2812) #9
  br label %2814

2814:                                             ; preds = %2797, %2780
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #9
  br label %2815

2815:                                             ; preds = %2814
  br label %2816

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

2817:                                             ; No predecessors!
  br label %2818

2818:                                             ; preds = %2817
  br label %2819

2819:                                             ; preds = %2818, %2760
  br label %2820

2820:                                             ; preds = %2819
  br label %2821

2821:                                             ; preds = %2820
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %62) #9
  store i64 0, ptr %62, align 8, !tbaa !49
  br label %2822

2822:                                             ; preds = %3291, %2821
  %2823 = load i64, ptr %62, align 8, !tbaa !49
  %2824 = icmp ult i64 %2823, 21
  br i1 %2824, label %2826, label %2825

2825:                                             ; preds = %2822
  store i32 271, ptr %63, align 4
  br label %3294

2826:                                             ; preds = %2822
  %2827 = load i64, ptr %62, align 8, !tbaa !49
  %2828 = getelementptr inbounds [21 x %struct.s2n_handshake_action], ptr @state_machine, i64 0, i64 %2827
  %2829 = getelementptr inbounds %struct.s2n_handshake_action, ptr %2828, i32 0, i32 0
  %2830 = load i8, ptr %2829, align 8, !tbaa !56
  %2831 = zext i8 %2830 to i32
  %2832 = icmp ne i32 %2831, 22
  br i1 %2832, label %2833, label %2834

2833:                                             ; preds = %2826
  store i32 271, ptr %63, align 4
  br label %3294

2834:                                             ; preds = %2826
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #9
  store ptr null, ptr %64, align 8, !tbaa !9
  br label %2835

2835:                                             ; preds = %2834
  %2836 = load i32, ptr @test_count, align 4, !tbaa !5
  %2837 = add nsw i32 %2836, 1
  store i32 %2837, ptr @test_count, align 4, !tbaa !5
  %2838 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %2838, ptr %64, align 8, !tbaa !9
  %2839 = icmp eq ptr %2838, null
  br i1 %2839, label %2840, label %2893

2840:                                             ; preds = %2835
  br label %2841

2841:                                             ; preds = %2840
  br label %2842

2842:                                             ; preds = %2841
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #9
  %2843 = call ptr @__errno_location() #10
  %2844 = load i32, ptr %2843, align 4, !tbaa !5
  store i32 %2844, ptr %65, align 4, !tbaa !5
  %2845 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2846 = call i32 @s2n_print_stacktrace(ptr noundef %2845)
  %2847 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2848 = trunc i8 %2847 to i1
  br i1 %2848, label %2849, label %2871

2849:                                             ; preds = %2842
  %2850 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2851 = call i32 @fileno(ptr noundef %2850) #9
  %2852 = call i32 @isatty(i32 noundef %2851) #9
  %2853 = icmp ne i32 %2852, 0
  br i1 %2853, label %2854, label %2871

2854:                                             ; preds = %2849
  %2855 = load i32, ptr %65, align 4, !tbaa !5
  %2856 = call ptr @__errno_location() #10
  store i32 %2855, ptr %2856, align 4, !tbaa !5
  %2857 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2858 = load i32, ptr @test_count, align 4, !tbaa !5
  %2859 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2860 = load i32, ptr %2859, align 4, !tbaa !5
  %2861 = call ptr @s2n_strerror(i32 noundef %2860, ptr noundef @.str.24)
  %2862 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2863 = load i32, ptr %2862, align 4, !tbaa !5
  %2864 = call ptr @s2n_strerror_debug(i32 noundef %2863, ptr noundef @.str.24)
  %2865 = call ptr @__errno_location() #10
  %2866 = load i32, ptr %2865, align 4, !tbaa !5
  %2867 = call ptr @strerror(i32 noundef %2866) #9
  %2868 = call ptr @__errno_location() #10
  %2869 = load i32, ptr %2868, align 4, !tbaa !5
  %2870 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2857, ptr noundef @.str.22, i32 noundef %2858, ptr noundef @.str.28, ptr noundef @.str.21, i32 noundef 149, ptr noundef %2861, ptr noundef %2864, ptr noundef %2867, i32 noundef %2869) #9
  br label %2888

2871:                                             ; preds = %2849, %2842
  %2872 = load i32, ptr %65, align 4, !tbaa !5
  %2873 = call ptr @__errno_location() #10
  store i32 %2872, ptr %2873, align 4, !tbaa !5
  %2874 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2875 = load i32, ptr @test_count, align 4, !tbaa !5
  %2876 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2877 = load i32, ptr %2876, align 4, !tbaa !5
  %2878 = call ptr @s2n_strerror(i32 noundef %2877, ptr noundef @.str.24)
  %2879 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2880 = load i32, ptr %2879, align 4, !tbaa !5
  %2881 = call ptr @s2n_strerror_debug(i32 noundef %2880, ptr noundef @.str.24)
  %2882 = call ptr @__errno_location() #10
  %2883 = load i32, ptr %2882, align 4, !tbaa !5
  %2884 = call ptr @strerror(i32 noundef %2883) #9
  %2885 = call ptr @__errno_location() #10
  %2886 = load i32, ptr %2885, align 4, !tbaa !5
  %2887 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2874, ptr noundef @.str.25, i32 noundef %2875, ptr noundef @.str.28, ptr noundef @.str.21, i32 noundef 149, ptr noundef %2878, ptr noundef %2881, ptr noundef %2884, i32 noundef %2886) #9
  br label %2888

2888:                                             ; preds = %2871, %2854
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #9
  br label %2889

2889:                                             ; preds = %2888
  br label %2890

2890:                                             ; preds = %2889
  call void @exit(i32 noundef 1) #11
  unreachable

2891:                                             ; No predecessors!
  br label %2892

2892:                                             ; preds = %2891
  br label %2893

2893:                                             ; preds = %2892, %2835
  br label %2894

2894:                                             ; preds = %2893
  br label %2895

2895:                                             ; preds = %2894
  %2896 = load ptr, ptr %64, align 8, !tbaa !9
  %2897 = getelementptr inbounds %struct.s2n_connection, ptr %2896, i32 0, i32 23
  store i8 34, ptr %2897, align 4, !tbaa !15
  br label %2898

2898:                                             ; preds = %2895
  %2899 = load i32, ptr @test_count, align 4, !tbaa !5
  %2900 = add nsw i32 %2899, 1
  store i32 %2900, ptr @test_count, align 4, !tbaa !5
  %2901 = load ptr, ptr %64, align 8, !tbaa !9
  %2902 = getelementptr inbounds %struct.s2n_connection, ptr %2901, i32 0, i32 40
  %2903 = load i64, ptr %62, align 8, !tbaa !49
  %2904 = getelementptr inbounds [21 x %struct.s2n_handshake_action], ptr @state_machine, i64 0, i64 %2903
  %2905 = getelementptr inbounds %struct.s2n_handshake_action, ptr %2904, i32 0, i32 1
  %2906 = load i8, ptr %2905, align 1, !tbaa !58
  %2907 = call i32 @s2n_stuffer_write_uint8(ptr noundef %2902, i8 noundef zeroext %2906)
  %2908 = icmp eq i32 %2907, -1
  br i1 %2908, label %2909, label %2962

2909:                                             ; preds = %2898
  br label %2910

2910:                                             ; preds = %2909
  br label %2911

2911:                                             ; preds = %2910
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #9
  %2912 = call ptr @__errno_location() #10
  %2913 = load i32, ptr %2912, align 4, !tbaa !5
  store i32 %2913, ptr %66, align 4, !tbaa !5
  %2914 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2915 = call i32 @s2n_print_stacktrace(ptr noundef %2914)
  %2916 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2917 = trunc i8 %2916 to i1
  br i1 %2917, label %2918, label %2940

2918:                                             ; preds = %2911
  %2919 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2920 = call i32 @fileno(ptr noundef %2919) #9
  %2921 = call i32 @isatty(i32 noundef %2920) #9
  %2922 = icmp ne i32 %2921, 0
  br i1 %2922, label %2923, label %2940

2923:                                             ; preds = %2918
  %2924 = load i32, ptr %66, align 4, !tbaa !5
  %2925 = call ptr @__errno_location() #10
  store i32 %2924, ptr %2925, align 4, !tbaa !5
  %2926 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2927 = load i32, ptr @test_count, align 4, !tbaa !5
  %2928 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2929 = load i32, ptr %2928, align 4, !tbaa !5
  %2930 = call ptr @s2n_strerror(i32 noundef %2929, ptr noundef @.str.24)
  %2931 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2932 = load i32, ptr %2931, align 4, !tbaa !5
  %2933 = call ptr @s2n_strerror_debug(i32 noundef %2932, ptr noundef @.str.24)
  %2934 = call ptr @__errno_location() #10
  %2935 = load i32, ptr %2934, align 4, !tbaa !5
  %2936 = call ptr @strerror(i32 noundef %2935) #9
  %2937 = call ptr @__errno_location() #10
  %2938 = load i32, ptr %2937, align 4, !tbaa !5
  %2939 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2926, ptr noundef @.str.22, i32 noundef %2927, ptr noundef @.str.49, ptr noundef @.str.21, i32 noundef 152, ptr noundef %2930, ptr noundef %2933, ptr noundef %2936, i32 noundef %2938) #9
  br label %2957

2940:                                             ; preds = %2918, %2911
  %2941 = load i32, ptr %66, align 4, !tbaa !5
  %2942 = call ptr @__errno_location() #10
  store i32 %2941, ptr %2942, align 4, !tbaa !5
  %2943 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2944 = load i32, ptr @test_count, align 4, !tbaa !5
  %2945 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2946 = load i32, ptr %2945, align 4, !tbaa !5
  %2947 = call ptr @s2n_strerror(i32 noundef %2946, ptr noundef @.str.24)
  %2948 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2949 = load i32, ptr %2948, align 4, !tbaa !5
  %2950 = call ptr @s2n_strerror_debug(i32 noundef %2949, ptr noundef @.str.24)
  %2951 = call ptr @__errno_location() #10
  %2952 = load i32, ptr %2951, align 4, !tbaa !5
  %2953 = call ptr @strerror(i32 noundef %2952) #9
  %2954 = call ptr @__errno_location() #10
  %2955 = load i32, ptr %2954, align 4, !tbaa !5
  %2956 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2943, ptr noundef @.str.25, i32 noundef %2944, ptr noundef @.str.49, ptr noundef @.str.21, i32 noundef 152, ptr noundef %2947, ptr noundef %2950, ptr noundef %2953, i32 noundef %2955) #9
  br label %2957

2957:                                             ; preds = %2940, %2923
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #9
  br label %2958

2958:                                             ; preds = %2957
  br label %2959

2959:                                             ; preds = %2958
  call void @exit(i32 noundef 1) #11
  unreachable

2960:                                             ; No predecessors!
  br label %2961

2961:                                             ; preds = %2960
  br label %2962

2962:                                             ; preds = %2961, %2898
  br label %2963

2963:                                             ; preds = %2962
  br label %2964

2964:                                             ; preds = %2963
  br label %2965

2965:                                             ; preds = %2964
  %2966 = load i32, ptr @test_count, align 4, !tbaa !5
  %2967 = add nsw i32 %2966, 1
  store i32 %2967, ptr @test_count, align 4, !tbaa !5
  %2968 = load ptr, ptr %64, align 8, !tbaa !9
  %2969 = getelementptr inbounds %struct.s2n_connection, ptr %2968, i32 0, i32 40
  %2970 = call i32 @s2n_stuffer_write_uint24(ptr noundef %2969, i32 noundef 0)
  %2971 = icmp eq i32 %2970, -1
  br i1 %2971, label %2972, label %3025

2972:                                             ; preds = %2965
  br label %2973

2973:                                             ; preds = %2972
  br label %2974

2974:                                             ; preds = %2973
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #9
  %2975 = call ptr @__errno_location() #10
  %2976 = load i32, ptr %2975, align 4, !tbaa !5
  store i32 %2976, ptr %67, align 4, !tbaa !5
  %2977 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2978 = call i32 @s2n_print_stacktrace(ptr noundef %2977)
  %2979 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2980 = trunc i8 %2979 to i1
  br i1 %2980, label %2981, label %3003

2981:                                             ; preds = %2974
  %2982 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2983 = call i32 @fileno(ptr noundef %2982) #9
  %2984 = call i32 @isatty(i32 noundef %2983) #9
  %2985 = icmp ne i32 %2984, 0
  br i1 %2985, label %2986, label %3003

2986:                                             ; preds = %2981
  %2987 = load i32, ptr %67, align 4, !tbaa !5
  %2988 = call ptr @__errno_location() #10
  store i32 %2987, ptr %2988, align 4, !tbaa !5
  %2989 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2990 = load i32, ptr @test_count, align 4, !tbaa !5
  %2991 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2992 = load i32, ptr %2991, align 4, !tbaa !5
  %2993 = call ptr @s2n_strerror(i32 noundef %2992, ptr noundef @.str.24)
  %2994 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2995 = load i32, ptr %2994, align 4, !tbaa !5
  %2996 = call ptr @s2n_strerror_debug(i32 noundef %2995, ptr noundef @.str.24)
  %2997 = call ptr @__errno_location() #10
  %2998 = load i32, ptr %2997, align 4, !tbaa !5
  %2999 = call ptr @strerror(i32 noundef %2998) #9
  %3000 = call ptr @__errno_location() #10
  %3001 = load i32, ptr %3000, align 4, !tbaa !5
  %3002 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2989, ptr noundef @.str.22, i32 noundef %2990, ptr noundef @.str.48, ptr noundef @.str.21, i32 noundef 153, ptr noundef %2993, ptr noundef %2996, ptr noundef %2999, i32 noundef %3001) #9
  br label %3020

3003:                                             ; preds = %2981, %2974
  %3004 = load i32, ptr %67, align 4, !tbaa !5
  %3005 = call ptr @__errno_location() #10
  store i32 %3004, ptr %3005, align 4, !tbaa !5
  %3006 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3007 = load i32, ptr @test_count, align 4, !tbaa !5
  %3008 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3009 = load i32, ptr %3008, align 4, !tbaa !5
  %3010 = call ptr @s2n_strerror(i32 noundef %3009, ptr noundef @.str.24)
  %3011 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3012 = load i32, ptr %3011, align 4, !tbaa !5
  %3013 = call ptr @s2n_strerror_debug(i32 noundef %3012, ptr noundef @.str.24)
  %3014 = call ptr @__errno_location() #10
  %3015 = load i32, ptr %3014, align 4, !tbaa !5
  %3016 = call ptr @strerror(i32 noundef %3015) #9
  %3017 = call ptr @__errno_location() #10
  %3018 = load i32, ptr %3017, align 4, !tbaa !5
  %3019 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3006, ptr noundef @.str.25, i32 noundef %3007, ptr noundef @.str.48, ptr noundef @.str.21, i32 noundef 153, ptr noundef %3010, ptr noundef %3013, ptr noundef %3016, i32 noundef %3018) #9
  br label %3020

3020:                                             ; preds = %3003, %2986
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #9
  br label %3021

3021:                                             ; preds = %3020
  br label %3022

3022:                                             ; preds = %3021
  call void @exit(i32 noundef 1) #11
  unreachable

3023:                                             ; No predecessors!
  br label %3024

3024:                                             ; preds = %3023
  br label %3025

3025:                                             ; preds = %3024, %2965
  br label %3026

3026:                                             ; preds = %3025
  br label %3027

3027:                                             ; preds = %3026
  br label %3028

3028:                                             ; preds = %3027
  br label %3029

3029:                                             ; preds = %3028
  br label %3030

3030:                                             ; preds = %3029
  %3031 = load i32, ptr @test_count, align 4, !tbaa !5
  %3032 = add nsw i32 %3031, 1
  store i32 %3032, ptr @test_count, align 4, !tbaa !5
  %3033 = load ptr, ptr %64, align 8, !tbaa !9
  %3034 = call i32 @s2n_post_handshake_recv(ptr noundef %3033)
  %3035 = getelementptr inbounds %struct.s2n_result, ptr %68, i32 0, i32 0
  store i32 %3034, ptr %3035, align 4
  %3036 = getelementptr inbounds %struct.s2n_result, ptr %68, i32 0, i32 0
  %3037 = load i32, ptr %3036, align 4
  %3038 = call zeroext i1 @s2n_result_is_error(i32 %3037)
  br i1 %3038, label %3092, label %3039

3039:                                             ; preds = %3030
  br label %3040

3040:                                             ; preds = %3039
  br label %3041

3041:                                             ; preds = %3040
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #9
  %3042 = call ptr @__errno_location() #10
  %3043 = load i32, ptr %3042, align 4, !tbaa !5
  store i32 %3043, ptr %69, align 4, !tbaa !5
  %3044 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3045 = call i32 @s2n_print_stacktrace(ptr noundef %3044)
  %3046 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3047 = trunc i8 %3046 to i1
  br i1 %3047, label %3048, label %3070

3048:                                             ; preds = %3041
  %3049 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3050 = call i32 @fileno(ptr noundef %3049) #9
  %3051 = call i32 @isatty(i32 noundef %3050) #9
  %3052 = icmp ne i32 %3051, 0
  br i1 %3052, label %3053, label %3070

3053:                                             ; preds = %3048
  %3054 = load i32, ptr %69, align 4, !tbaa !5
  %3055 = call ptr @__errno_location() #10
  store i32 %3054, ptr %3055, align 4, !tbaa !5
  %3056 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3057 = load i32, ptr @test_count, align 4, !tbaa !5
  %3058 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3059 = load i32, ptr %3058, align 4, !tbaa !5
  %3060 = call ptr @s2n_strerror(i32 noundef %3059, ptr noundef @.str.24)
  %3061 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3062 = load i32, ptr %3061, align 4, !tbaa !5
  %3063 = call ptr @s2n_strerror_debug(i32 noundef %3062, ptr noundef @.str.24)
  %3064 = call ptr @__errno_location() #10
  %3065 = load i32, ptr %3064, align 4, !tbaa !5
  %3066 = call ptr @strerror(i32 noundef %3065) #9
  %3067 = call ptr @__errno_location() #10
  %3068 = load i32, ptr %3067, align 4, !tbaa !5
  %3069 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3056, ptr noundef @.str.22, i32 noundef %3057, ptr noundef @.str.37, ptr noundef @.str.21, i32 noundef 154, ptr noundef %3060, ptr noundef %3063, ptr noundef %3066, i32 noundef %3068) #9
  br label %3087

3070:                                             ; preds = %3048, %3041
  %3071 = load i32, ptr %69, align 4, !tbaa !5
  %3072 = call ptr @__errno_location() #10
  store i32 %3071, ptr %3072, align 4, !tbaa !5
  %3073 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3074 = load i32, ptr @test_count, align 4, !tbaa !5
  %3075 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3076 = load i32, ptr %3075, align 4, !tbaa !5
  %3077 = call ptr @s2n_strerror(i32 noundef %3076, ptr noundef @.str.24)
  %3078 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3079 = load i32, ptr %3078, align 4, !tbaa !5
  %3080 = call ptr @s2n_strerror_debug(i32 noundef %3079, ptr noundef @.str.24)
  %3081 = call ptr @__errno_location() #10
  %3082 = load i32, ptr %3081, align 4, !tbaa !5
  %3083 = call ptr @strerror(i32 noundef %3082) #9
  %3084 = call ptr @__errno_location() #10
  %3085 = load i32, ptr %3084, align 4, !tbaa !5
  %3086 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3073, ptr noundef @.str.25, i32 noundef %3074, ptr noundef @.str.37, ptr noundef @.str.21, i32 noundef 154, ptr noundef %3077, ptr noundef %3080, ptr noundef %3083, i32 noundef %3085) #9
  br label %3087

3087:                                             ; preds = %3070, %3053
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #9
  br label %3088

3088:                                             ; preds = %3087
  br label %3089

3089:                                             ; preds = %3088
  call void @exit(i32 noundef 1) #11
  unreachable

3090:                                             ; No predecessors!
  br label %3091

3091:                                             ; preds = %3090
  br label %3092

3092:                                             ; preds = %3091, %3030
  br label %3093

3093:                                             ; preds = %3092
  br label %3094

3094:                                             ; preds = %3093
  br label %3095

3095:                                             ; preds = %3094
  %3096 = load i32, ptr @test_count, align 4, !tbaa !5
  %3097 = add nsw i32 %3096, 1
  store i32 %3097, ptr @test_count, align 4, !tbaa !5
  %3098 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3099 = load i32, ptr %3098, align 4, !tbaa !5
  %3100 = icmp eq i32 %3099, 335544322
  br i1 %3100, label %3154, label %3101

3101:                                             ; preds = %3095
  br label %3102

3102:                                             ; preds = %3101
  br label %3103

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

3110:                                             ; preds = %3103
  %3111 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3112 = call i32 @fileno(ptr noundef %3111) #9
  %3113 = call i32 @isatty(i32 noundef %3112) #9
  %3114 = icmp ne i32 %3113, 0
  br i1 %3114, label %3115, label %3132

3115:                                             ; preds = %3110
  %3116 = load i32, ptr %70, align 4, !tbaa !5
  %3117 = call ptr @__errno_location() #10
  store i32 %3116, ptr %3117, align 4, !tbaa !5
  %3118 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3119 = load i32, ptr @test_count, align 4, !tbaa !5
  %3120 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3121 = load i32, ptr %3120, align 4, !tbaa !5
  %3122 = call ptr @s2n_strerror(i32 noundef %3121, ptr noundef @.str.24)
  %3123 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3124 = load i32, ptr %3123, align 4, !tbaa !5
  %3125 = call ptr @s2n_strerror_debug(i32 noundef %3124, ptr noundef @.str.24)
  %3126 = call ptr @__errno_location() #10
  %3127 = load i32, ptr %3126, align 4, !tbaa !5
  %3128 = call ptr @strerror(i32 noundef %3127) #9
  %3129 = call ptr @__errno_location() #10
  %3130 = load i32, ptr %3129, align 4, !tbaa !5
  %3131 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3118, ptr noundef @.str.22, i32 noundef %3119, ptr noundef @.str.38, ptr noundef @.str.21, i32 noundef 154, ptr noundef %3122, ptr noundef %3125, ptr noundef %3128, i32 noundef %3130) #9
  br label %3149

3132:                                             ; preds = %3110, %3103
  %3133 = load i32, ptr %70, align 4, !tbaa !5
  %3134 = call ptr @__errno_location() #10
  store i32 %3133, ptr %3134, align 4, !tbaa !5
  %3135 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3136 = load i32, ptr @test_count, align 4, !tbaa !5
  %3137 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3138 = load i32, ptr %3137, align 4, !tbaa !5
  %3139 = call ptr @s2n_strerror(i32 noundef %3138, ptr noundef @.str.24)
  %3140 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3141 = load i32, ptr %3140, align 4, !tbaa !5
  %3142 = call ptr @s2n_strerror_debug(i32 noundef %3141, ptr noundef @.str.24)
  %3143 = call ptr @__errno_location() #10
  %3144 = load i32, ptr %3143, align 4, !tbaa !5
  %3145 = call ptr @strerror(i32 noundef %3144) #9
  %3146 = call ptr @__errno_location() #10
  %3147 = load i32, ptr %3146, align 4, !tbaa !5
  %3148 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3135, ptr noundef @.str.25, i32 noundef %3136, ptr noundef @.str.38, ptr noundef @.str.21, i32 noundef 154, ptr noundef %3139, ptr noundef %3142, ptr noundef %3145, i32 noundef %3147) #9
  br label %3149

3149:                                             ; preds = %3132, %3115
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #9
  br label %3150

3150:                                             ; preds = %3149
  br label %3151

3151:                                             ; preds = %3150
  call void @exit(i32 noundef 1) #11
  unreachable

3152:                                             ; No predecessors!
  br label %3153

3153:                                             ; preds = %3152
  br label %3154

3154:                                             ; preds = %3153, %3095
  br label %3155

3155:                                             ; preds = %3154
  br label %3156

3156:                                             ; preds = %3155
  br label %3157

3157:                                             ; preds = %3156
  %3158 = load i32, ptr @test_count, align 4, !tbaa !5
  %3159 = add nsw i32 %3158, 1
  store i32 %3159, ptr @test_count, align 4, !tbaa !5
  %3160 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3161 = load i32, ptr %3160, align 4, !tbaa !5
  %3162 = call ptr @s2n_strerror_debug(i32 noundef %3161, ptr noundef @.str.24)
  %3163 = icmp eq ptr %3162, null
  br i1 %3163, label %3164, label %3217

3164:                                             ; preds = %3157
  br label %3165

3165:                                             ; preds = %3164
  br label %3166

3166:                                             ; preds = %3165
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #9
  %3167 = call ptr @__errno_location() #10
  %3168 = load i32, ptr %3167, align 4, !tbaa !5
  store i32 %3168, ptr %71, align 4, !tbaa !5
  %3169 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3170 = call i32 @s2n_print_stacktrace(ptr noundef %3169)
  %3171 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3172 = trunc i8 %3171 to i1
  br i1 %3172, label %3173, label %3195

3173:                                             ; preds = %3166
  %3174 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3175 = call i32 @fileno(ptr noundef %3174) #9
  %3176 = call i32 @isatty(i32 noundef %3175) #9
  %3177 = icmp ne i32 %3176, 0
  br i1 %3177, label %3178, label %3195

3178:                                             ; preds = %3173
  %3179 = load i32, ptr %71, align 4, !tbaa !5
  %3180 = call ptr @__errno_location() #10
  store i32 %3179, ptr %3180, align 4, !tbaa !5
  %3181 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3182 = load i32, ptr @test_count, align 4, !tbaa !5
  %3183 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3184 = load i32, ptr %3183, align 4, !tbaa !5
  %3185 = call ptr @s2n_strerror(i32 noundef %3184, ptr noundef @.str.24)
  %3186 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3187 = load i32, ptr %3186, align 4, !tbaa !5
  %3188 = call ptr @s2n_strerror_debug(i32 noundef %3187, ptr noundef @.str.24)
  %3189 = call ptr @__errno_location() #10
  %3190 = load i32, ptr %3189, align 4, !tbaa !5
  %3191 = call ptr @strerror(i32 noundef %3190) #9
  %3192 = call ptr @__errno_location() #10
  %3193 = load i32, ptr %3192, align 4, !tbaa !5
  %3194 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3181, ptr noundef @.str.22, i32 noundef %3182, ptr noundef @.str.39, ptr noundef @.str.21, i32 noundef 154, ptr noundef %3185, ptr noundef %3188, ptr noundef %3191, i32 noundef %3193) #9
  br label %3212

3195:                                             ; preds = %3173, %3166
  %3196 = load i32, ptr %71, align 4, !tbaa !5
  %3197 = call ptr @__errno_location() #10
  store i32 %3196, ptr %3197, align 4, !tbaa !5
  %3198 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3199 = load i32, ptr @test_count, align 4, !tbaa !5
  %3200 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3201 = load i32, ptr %3200, align 4, !tbaa !5
  %3202 = call ptr @s2n_strerror(i32 noundef %3201, ptr noundef @.str.24)
  %3203 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3204 = load i32, ptr %3203, align 4, !tbaa !5
  %3205 = call ptr @s2n_strerror_debug(i32 noundef %3204, ptr noundef @.str.24)
  %3206 = call ptr @__errno_location() #10
  %3207 = load i32, ptr %3206, align 4, !tbaa !5
  %3208 = call ptr @strerror(i32 noundef %3207) #9
  %3209 = call ptr @__errno_location() #10
  %3210 = load i32, ptr %3209, align 4, !tbaa !5
  %3211 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3198, ptr noundef @.str.25, i32 noundef %3199, ptr noundef @.str.39, ptr noundef @.str.21, i32 noundef 154, ptr noundef %3202, ptr noundef %3205, ptr noundef %3208, i32 noundef %3210) #9
  br label %3212

3212:                                             ; preds = %3195, %3178
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #9
  br label %3213

3213:                                             ; preds = %3212
  br label %3214

3214:                                             ; preds = %3213
  call void @exit(i32 noundef 1) #11
  unreachable

3215:                                             ; No predecessors!
  br label %3216

3216:                                             ; preds = %3215
  br label %3217

3217:                                             ; preds = %3216, %3157
  br label %3218

3218:                                             ; preds = %3217
  br label %3219

3219:                                             ; preds = %3218
  br label %3220

3220:                                             ; preds = %3219
  br label %3221

3221:                                             ; preds = %3220
  br label %3222

3222:                                             ; preds = %3221
  %3223 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %3223, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %3224 = call ptr @__errno_location() #10
  store i32 0, ptr %3224, align 4, !tbaa !5
  br label %3225

3225:                                             ; preds = %3222
  br label %3226

3226:                                             ; preds = %3225
  br label %3227

3227:                                             ; preds = %3226
  br label %3228

3228:                                             ; preds = %3227
  br label %3229

3229:                                             ; preds = %3228
  %3230 = load i32, ptr @test_count, align 4, !tbaa !5
  %3231 = add nsw i32 %3230, 1
  store i32 %3231, ptr @test_count, align 4, !tbaa !5
  %3232 = load ptr, ptr %64, align 8, !tbaa !9
  %3233 = call i32 @s2n_connection_free(ptr noundef %3232)
  %3234 = icmp eq i32 %3233, -1
  br i1 %3234, label %3235, label %3288

3235:                                             ; preds = %3229
  br label %3236

3236:                                             ; preds = %3235
  br label %3237

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

3244:                                             ; preds = %3237
  %3245 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3246 = call i32 @fileno(ptr noundef %3245) #9
  %3247 = call i32 @isatty(i32 noundef %3246) #9
  %3248 = icmp ne i32 %3247, 0
  br i1 %3248, label %3249, label %3266

3249:                                             ; preds = %3244
  %3250 = load i32, ptr %72, align 4, !tbaa !5
  %3251 = call ptr @__errno_location() #10
  store i32 %3250, ptr %3251, align 4, !tbaa !5
  %3252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3253 = load i32, ptr @test_count, align 4, !tbaa !5
  %3254 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3255 = load i32, ptr %3254, align 4, !tbaa !5
  %3256 = call ptr @s2n_strerror(i32 noundef %3255, ptr noundef @.str.24)
  %3257 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3258 = load i32, ptr %3257, align 4, !tbaa !5
  %3259 = call ptr @s2n_strerror_debug(i32 noundef %3258, ptr noundef @.str.24)
  %3260 = call ptr @__errno_location() #10
  %3261 = load i32, ptr %3260, align 4, !tbaa !5
  %3262 = call ptr @strerror(i32 noundef %3261) #9
  %3263 = call ptr @__errno_location() #10
  %3264 = load i32, ptr %3263, align 4, !tbaa !5
  %3265 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3252, ptr noundef @.str.22, i32 noundef %3253, ptr noundef @.str.35, ptr noundef @.str.21, i32 noundef 156, ptr noundef %3256, ptr noundef %3259, ptr noundef %3262, i32 noundef %3264) #9
  br label %3283

3266:                                             ; preds = %3244, %3237
  %3267 = load i32, ptr %72, align 4, !tbaa !5
  %3268 = call ptr @__errno_location() #10
  store i32 %3267, ptr %3268, align 4, !tbaa !5
  %3269 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3270 = load i32, ptr @test_count, align 4, !tbaa !5
  %3271 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3272 = load i32, ptr %3271, align 4, !tbaa !5
  %3273 = call ptr @s2n_strerror(i32 noundef %3272, ptr noundef @.str.24)
  %3274 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3275 = load i32, ptr %3274, align 4, !tbaa !5
  %3276 = call ptr @s2n_strerror_debug(i32 noundef %3275, ptr noundef @.str.24)
  %3277 = call ptr @__errno_location() #10
  %3278 = load i32, ptr %3277, align 4, !tbaa !5
  %3279 = call ptr @strerror(i32 noundef %3278) #9
  %3280 = call ptr @__errno_location() #10
  %3281 = load i32, ptr %3280, align 4, !tbaa !5
  %3282 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3269, ptr noundef @.str.25, i32 noundef %3270, ptr noundef @.str.35, ptr noundef @.str.21, i32 noundef 156, ptr noundef %3273, ptr noundef %3276, ptr noundef %3279, i32 noundef %3281) #9
  br label %3283

3283:                                             ; preds = %3266, %3249
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #9
  br label %3284

3284:                                             ; preds = %3283
  br label %3285

3285:                                             ; preds = %3284
  call void @exit(i32 noundef 1) #11
  unreachable

3286:                                             ; No predecessors!
  br label %3287

3287:                                             ; preds = %3286
  br label %3288

3288:                                             ; preds = %3287, %3229
  br label %3289

3289:                                             ; preds = %3288
  br label %3290

3290:                                             ; preds = %3289
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #9
  br label %3291

3291:                                             ; preds = %3290
  %3292 = load i64, ptr %62, align 8, !tbaa !49
  %3293 = add i64 %3292, 1
  store i64 %3293, ptr %62, align 8, !tbaa !49
  br label %2822, !llvm.loop !59

3294:                                             ; preds = %2833, %2825
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #9
  br label %3295

3295:                                             ; preds = %3294
  call void @llvm.lifetime.start.p0(i64 8, ptr %73) #9
  store i64 0, ptr %73, align 8, !tbaa !49
  br label %3296

3296:                                             ; preds = %3765, %3295
  %3297 = load i64, ptr %73, align 8, !tbaa !49
  %3298 = icmp ult i64 %3297, 21
  br i1 %3298, label %3300, label %3299

3299:                                             ; preds = %3296
  store i32 322, ptr %63, align 4
  br label %3768

3300:                                             ; preds = %3296
  %3301 = load i64, ptr %73, align 8, !tbaa !49
  %3302 = getelementptr inbounds [21 x %struct.s2n_handshake_action], ptr @tls13_state_machine, i64 0, i64 %3301
  %3303 = getelementptr inbounds %struct.s2n_handshake_action, ptr %3302, i32 0, i32 0
  %3304 = load i8, ptr %3303, align 8, !tbaa !56
  %3305 = zext i8 %3304 to i32
  %3306 = icmp ne i32 %3305, 22
  br i1 %3306, label %3307, label %3308

3307:                                             ; preds = %3300
  store i32 322, ptr %63, align 4
  br label %3768

3308:                                             ; preds = %3300
  call void @llvm.lifetime.start.p0(i64 8, ptr %74) #9
  store ptr null, ptr %74, align 8, !tbaa !9
  br label %3309

3309:                                             ; preds = %3308
  %3310 = load i32, ptr @test_count, align 4, !tbaa !5
  %3311 = add nsw i32 %3310, 1
  store i32 %3311, ptr @test_count, align 4, !tbaa !5
  %3312 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %3312, ptr %74, align 8, !tbaa !9
  %3313 = icmp eq ptr %3312, null
  br i1 %3313, label %3314, label %3367

3314:                                             ; preds = %3309
  br label %3315

3315:                                             ; preds = %3314
  br label %3316

3316:                                             ; preds = %3315
  call void @llvm.lifetime.start.p0(i64 4, ptr %75) #9
  %3317 = call ptr @__errno_location() #10
  %3318 = load i32, ptr %3317, align 4, !tbaa !5
  store i32 %3318, ptr %75, align 4, !tbaa !5
  %3319 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3320 = call i32 @s2n_print_stacktrace(ptr noundef %3319)
  %3321 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3322 = trunc i8 %3321 to i1
  br i1 %3322, label %3323, label %3345

3323:                                             ; preds = %3316
  %3324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3325 = call i32 @fileno(ptr noundef %3324) #9
  %3326 = call i32 @isatty(i32 noundef %3325) #9
  %3327 = icmp ne i32 %3326, 0
  br i1 %3327, label %3328, label %3345

3328:                                             ; preds = %3323
  %3329 = load i32, ptr %75, align 4, !tbaa !5
  %3330 = call ptr @__errno_location() #10
  store i32 %3329, ptr %3330, align 4, !tbaa !5
  %3331 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3332 = load i32, ptr @test_count, align 4, !tbaa !5
  %3333 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3334 = load i32, ptr %3333, align 4, !tbaa !5
  %3335 = call ptr @s2n_strerror(i32 noundef %3334, ptr noundef @.str.24)
  %3336 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3337 = load i32, ptr %3336, align 4, !tbaa !5
  %3338 = call ptr @s2n_strerror_debug(i32 noundef %3337, ptr noundef @.str.24)
  %3339 = call ptr @__errno_location() #10
  %3340 = load i32, ptr %3339, align 4, !tbaa !5
  %3341 = call ptr @strerror(i32 noundef %3340) #9
  %3342 = call ptr @__errno_location() #10
  %3343 = load i32, ptr %3342, align 4, !tbaa !5
  %3344 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3331, ptr noundef @.str.22, i32 noundef %3332, ptr noundef @.str.28, ptr noundef @.str.21, i32 noundef 166, ptr noundef %3335, ptr noundef %3338, ptr noundef %3341, i32 noundef %3343) #9
  br label %3362

3345:                                             ; preds = %3323, %3316
  %3346 = load i32, ptr %75, align 4, !tbaa !5
  %3347 = call ptr @__errno_location() #10
  store i32 %3346, ptr %3347, align 4, !tbaa !5
  %3348 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3349 = load i32, ptr @test_count, align 4, !tbaa !5
  %3350 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3351 = load i32, ptr %3350, align 4, !tbaa !5
  %3352 = call ptr @s2n_strerror(i32 noundef %3351, ptr noundef @.str.24)
  %3353 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3354 = load i32, ptr %3353, align 4, !tbaa !5
  %3355 = call ptr @s2n_strerror_debug(i32 noundef %3354, ptr noundef @.str.24)
  %3356 = call ptr @__errno_location() #10
  %3357 = load i32, ptr %3356, align 4, !tbaa !5
  %3358 = call ptr @strerror(i32 noundef %3357) #9
  %3359 = call ptr @__errno_location() #10
  %3360 = load i32, ptr %3359, align 4, !tbaa !5
  %3361 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3348, ptr noundef @.str.25, i32 noundef %3349, ptr noundef @.str.28, ptr noundef @.str.21, i32 noundef 166, ptr noundef %3352, ptr noundef %3355, ptr noundef %3358, i32 noundef %3360) #9
  br label %3362

3362:                                             ; preds = %3345, %3328
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #9
  br label %3363

3363:                                             ; preds = %3362
  br label %3364

3364:                                             ; preds = %3363
  call void @exit(i32 noundef 1) #11
  unreachable

3365:                                             ; No predecessors!
  br label %3366

3366:                                             ; preds = %3365
  br label %3367

3367:                                             ; preds = %3366, %3309
  br label %3368

3368:                                             ; preds = %3367
  br label %3369

3369:                                             ; preds = %3368
  %3370 = load ptr, ptr %74, align 8, !tbaa !9
  %3371 = getelementptr inbounds %struct.s2n_connection, ptr %3370, i32 0, i32 23
  store i8 34, ptr %3371, align 4, !tbaa !15
  br label %3372

3372:                                             ; preds = %3369
  %3373 = load i32, ptr @test_count, align 4, !tbaa !5
  %3374 = add nsw i32 %3373, 1
  store i32 %3374, ptr @test_count, align 4, !tbaa !5
  %3375 = load ptr, ptr %74, align 8, !tbaa !9
  %3376 = getelementptr inbounds %struct.s2n_connection, ptr %3375, i32 0, i32 40
  %3377 = load i64, ptr %73, align 8, !tbaa !49
  %3378 = getelementptr inbounds [21 x %struct.s2n_handshake_action], ptr @tls13_state_machine, i64 0, i64 %3377
  %3379 = getelementptr inbounds %struct.s2n_handshake_action, ptr %3378, i32 0, i32 1
  %3380 = load i8, ptr %3379, align 1, !tbaa !58
  %3381 = call i32 @s2n_stuffer_write_uint8(ptr noundef %3376, i8 noundef zeroext %3380)
  %3382 = icmp eq i32 %3381, -1
  br i1 %3382, label %3383, label %3436

3383:                                             ; preds = %3372
  br label %3384

3384:                                             ; preds = %3383
  br label %3385

3385:                                             ; preds = %3384
  call void @llvm.lifetime.start.p0(i64 4, ptr %76) #9
  %3386 = call ptr @__errno_location() #10
  %3387 = load i32, ptr %3386, align 4, !tbaa !5
  store i32 %3387, ptr %76, align 4, !tbaa !5
  %3388 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3389 = call i32 @s2n_print_stacktrace(ptr noundef %3388)
  %3390 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3391 = trunc i8 %3390 to i1
  br i1 %3391, label %3392, label %3414

3392:                                             ; preds = %3385
  %3393 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3394 = call i32 @fileno(ptr noundef %3393) #9
  %3395 = call i32 @isatty(i32 noundef %3394) #9
  %3396 = icmp ne i32 %3395, 0
  br i1 %3396, label %3397, label %3414

3397:                                             ; preds = %3392
  %3398 = load i32, ptr %76, align 4, !tbaa !5
  %3399 = call ptr @__errno_location() #10
  store i32 %3398, ptr %3399, align 4, !tbaa !5
  %3400 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3401 = load i32, ptr @test_count, align 4, !tbaa !5
  %3402 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3403 = load i32, ptr %3402, align 4, !tbaa !5
  %3404 = call ptr @s2n_strerror(i32 noundef %3403, ptr noundef @.str.24)
  %3405 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3406 = load i32, ptr %3405, align 4, !tbaa !5
  %3407 = call ptr @s2n_strerror_debug(i32 noundef %3406, ptr noundef @.str.24)
  %3408 = call ptr @__errno_location() #10
  %3409 = load i32, ptr %3408, align 4, !tbaa !5
  %3410 = call ptr @strerror(i32 noundef %3409) #9
  %3411 = call ptr @__errno_location() #10
  %3412 = load i32, ptr %3411, align 4, !tbaa !5
  %3413 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3400, ptr noundef @.str.22, i32 noundef %3401, ptr noundef @.str.50, ptr noundef @.str.21, i32 noundef 169, ptr noundef %3404, ptr noundef %3407, ptr noundef %3410, i32 noundef %3412) #9
  br label %3431

3414:                                             ; preds = %3392, %3385
  %3415 = load i32, ptr %76, align 4, !tbaa !5
  %3416 = call ptr @__errno_location() #10
  store i32 %3415, ptr %3416, align 4, !tbaa !5
  %3417 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3418 = load i32, ptr @test_count, align 4, !tbaa !5
  %3419 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3420 = load i32, ptr %3419, align 4, !tbaa !5
  %3421 = call ptr @s2n_strerror(i32 noundef %3420, ptr noundef @.str.24)
  %3422 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3423 = load i32, ptr %3422, align 4, !tbaa !5
  %3424 = call ptr @s2n_strerror_debug(i32 noundef %3423, ptr noundef @.str.24)
  %3425 = call ptr @__errno_location() #10
  %3426 = load i32, ptr %3425, align 4, !tbaa !5
  %3427 = call ptr @strerror(i32 noundef %3426) #9
  %3428 = call ptr @__errno_location() #10
  %3429 = load i32, ptr %3428, align 4, !tbaa !5
  %3430 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3417, ptr noundef @.str.25, i32 noundef %3418, ptr noundef @.str.50, ptr noundef @.str.21, i32 noundef 169, ptr noundef %3421, ptr noundef %3424, ptr noundef %3427, i32 noundef %3429) #9
  br label %3431

3431:                                             ; preds = %3414, %3397
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #9
  br label %3432

3432:                                             ; preds = %3431
  br label %3433

3433:                                             ; preds = %3432
  call void @exit(i32 noundef 1) #11
  unreachable

3434:                                             ; No predecessors!
  br label %3435

3435:                                             ; preds = %3434
  br label %3436

3436:                                             ; preds = %3435, %3372
  br label %3437

3437:                                             ; preds = %3436
  br label %3438

3438:                                             ; preds = %3437
  br label %3439

3439:                                             ; preds = %3438
  %3440 = load i32, ptr @test_count, align 4, !tbaa !5
  %3441 = add nsw i32 %3440, 1
  store i32 %3441, ptr @test_count, align 4, !tbaa !5
  %3442 = load ptr, ptr %74, align 8, !tbaa !9
  %3443 = getelementptr inbounds %struct.s2n_connection, ptr %3442, i32 0, i32 40
  %3444 = call i32 @s2n_stuffer_write_uint24(ptr noundef %3443, i32 noundef 0)
  %3445 = icmp eq i32 %3444, -1
  br i1 %3445, label %3446, label %3499

3446:                                             ; preds = %3439
  br label %3447

3447:                                             ; preds = %3446
  br label %3448

3448:                                             ; preds = %3447
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #9
  %3449 = call ptr @__errno_location() #10
  %3450 = load i32, ptr %3449, align 4, !tbaa !5
  store i32 %3450, ptr %77, align 4, !tbaa !5
  %3451 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3452 = call i32 @s2n_print_stacktrace(ptr noundef %3451)
  %3453 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3454 = trunc i8 %3453 to i1
  br i1 %3454, label %3455, label %3477

3455:                                             ; preds = %3448
  %3456 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3457 = call i32 @fileno(ptr noundef %3456) #9
  %3458 = call i32 @isatty(i32 noundef %3457) #9
  %3459 = icmp ne i32 %3458, 0
  br i1 %3459, label %3460, label %3477

3460:                                             ; preds = %3455
  %3461 = load i32, ptr %77, align 4, !tbaa !5
  %3462 = call ptr @__errno_location() #10
  store i32 %3461, ptr %3462, align 4, !tbaa !5
  %3463 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3464 = load i32, ptr @test_count, align 4, !tbaa !5
  %3465 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3466 = load i32, ptr %3465, align 4, !tbaa !5
  %3467 = call ptr @s2n_strerror(i32 noundef %3466, ptr noundef @.str.24)
  %3468 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3469 = load i32, ptr %3468, align 4, !tbaa !5
  %3470 = call ptr @s2n_strerror_debug(i32 noundef %3469, ptr noundef @.str.24)
  %3471 = call ptr @__errno_location() #10
  %3472 = load i32, ptr %3471, align 4, !tbaa !5
  %3473 = call ptr @strerror(i32 noundef %3472) #9
  %3474 = call ptr @__errno_location() #10
  %3475 = load i32, ptr %3474, align 4, !tbaa !5
  %3476 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3463, ptr noundef @.str.22, i32 noundef %3464, ptr noundef @.str.48, ptr noundef @.str.21, i32 noundef 170, ptr noundef %3467, ptr noundef %3470, ptr noundef %3473, i32 noundef %3475) #9
  br label %3494

3477:                                             ; preds = %3455, %3448
  %3478 = load i32, ptr %77, align 4, !tbaa !5
  %3479 = call ptr @__errno_location() #10
  store i32 %3478, ptr %3479, align 4, !tbaa !5
  %3480 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3481 = load i32, ptr @test_count, align 4, !tbaa !5
  %3482 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3483 = load i32, ptr %3482, align 4, !tbaa !5
  %3484 = call ptr @s2n_strerror(i32 noundef %3483, ptr noundef @.str.24)
  %3485 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3486 = load i32, ptr %3485, align 4, !tbaa !5
  %3487 = call ptr @s2n_strerror_debug(i32 noundef %3486, ptr noundef @.str.24)
  %3488 = call ptr @__errno_location() #10
  %3489 = load i32, ptr %3488, align 4, !tbaa !5
  %3490 = call ptr @strerror(i32 noundef %3489) #9
  %3491 = call ptr @__errno_location() #10
  %3492 = load i32, ptr %3491, align 4, !tbaa !5
  %3493 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3480, ptr noundef @.str.25, i32 noundef %3481, ptr noundef @.str.48, ptr noundef @.str.21, i32 noundef 170, ptr noundef %3484, ptr noundef %3487, ptr noundef %3490, i32 noundef %3492) #9
  br label %3494

3494:                                             ; preds = %3477, %3460
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #9
  br label %3495

3495:                                             ; preds = %3494
  br label %3496

3496:                                             ; preds = %3495
  call void @exit(i32 noundef 1) #11
  unreachable

3497:                                             ; No predecessors!
  br label %3498

3498:                                             ; preds = %3497
  br label %3499

3499:                                             ; preds = %3498, %3439
  br label %3500

3500:                                             ; preds = %3499
  br label %3501

3501:                                             ; preds = %3500
  br label %3502

3502:                                             ; preds = %3501
  br label %3503

3503:                                             ; preds = %3502
  br label %3504

3504:                                             ; preds = %3503
  %3505 = load i32, ptr @test_count, align 4, !tbaa !5
  %3506 = add nsw i32 %3505, 1
  store i32 %3506, ptr @test_count, align 4, !tbaa !5
  %3507 = load ptr, ptr %74, align 8, !tbaa !9
  %3508 = call i32 @s2n_post_handshake_recv(ptr noundef %3507)
  %3509 = getelementptr inbounds %struct.s2n_result, ptr %78, i32 0, i32 0
  store i32 %3508, ptr %3509, align 4
  %3510 = getelementptr inbounds %struct.s2n_result, ptr %78, i32 0, i32 0
  %3511 = load i32, ptr %3510, align 4
  %3512 = call zeroext i1 @s2n_result_is_error(i32 %3511)
  br i1 %3512, label %3566, label %3513

3513:                                             ; preds = %3504
  br label %3514

3514:                                             ; preds = %3513
  br label %3515

3515:                                             ; preds = %3514
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #9
  %3516 = call ptr @__errno_location() #10
  %3517 = load i32, ptr %3516, align 4, !tbaa !5
  store i32 %3517, ptr %79, align 4, !tbaa !5
  %3518 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3519 = call i32 @s2n_print_stacktrace(ptr noundef %3518)
  %3520 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3521 = trunc i8 %3520 to i1
  br i1 %3521, label %3522, label %3544

3522:                                             ; preds = %3515
  %3523 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3524 = call i32 @fileno(ptr noundef %3523) #9
  %3525 = call i32 @isatty(i32 noundef %3524) #9
  %3526 = icmp ne i32 %3525, 0
  br i1 %3526, label %3527, label %3544

3527:                                             ; preds = %3522
  %3528 = load i32, ptr %79, align 4, !tbaa !5
  %3529 = call ptr @__errno_location() #10
  store i32 %3528, ptr %3529, align 4, !tbaa !5
  %3530 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3531 = load i32, ptr @test_count, align 4, !tbaa !5
  %3532 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3533 = load i32, ptr %3532, align 4, !tbaa !5
  %3534 = call ptr @s2n_strerror(i32 noundef %3533, ptr noundef @.str.24)
  %3535 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3536 = load i32, ptr %3535, align 4, !tbaa !5
  %3537 = call ptr @s2n_strerror_debug(i32 noundef %3536, ptr noundef @.str.24)
  %3538 = call ptr @__errno_location() #10
  %3539 = load i32, ptr %3538, align 4, !tbaa !5
  %3540 = call ptr @strerror(i32 noundef %3539) #9
  %3541 = call ptr @__errno_location() #10
  %3542 = load i32, ptr %3541, align 4, !tbaa !5
  %3543 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3530, ptr noundef @.str.22, i32 noundef %3531, ptr noundef @.str.37, ptr noundef @.str.21, i32 noundef 171, ptr noundef %3534, ptr noundef %3537, ptr noundef %3540, i32 noundef %3542) #9
  br label %3561

3544:                                             ; preds = %3522, %3515
  %3545 = load i32, ptr %79, align 4, !tbaa !5
  %3546 = call ptr @__errno_location() #10
  store i32 %3545, ptr %3546, align 4, !tbaa !5
  %3547 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3548 = load i32, ptr @test_count, align 4, !tbaa !5
  %3549 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3550 = load i32, ptr %3549, align 4, !tbaa !5
  %3551 = call ptr @s2n_strerror(i32 noundef %3550, ptr noundef @.str.24)
  %3552 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3553 = load i32, ptr %3552, align 4, !tbaa !5
  %3554 = call ptr @s2n_strerror_debug(i32 noundef %3553, ptr noundef @.str.24)
  %3555 = call ptr @__errno_location() #10
  %3556 = load i32, ptr %3555, align 4, !tbaa !5
  %3557 = call ptr @strerror(i32 noundef %3556) #9
  %3558 = call ptr @__errno_location() #10
  %3559 = load i32, ptr %3558, align 4, !tbaa !5
  %3560 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3547, ptr noundef @.str.25, i32 noundef %3548, ptr noundef @.str.37, ptr noundef @.str.21, i32 noundef 171, ptr noundef %3551, ptr noundef %3554, ptr noundef %3557, i32 noundef %3559) #9
  br label %3561

3561:                                             ; preds = %3544, %3527
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #9
  br label %3562

3562:                                             ; preds = %3561
  br label %3563

3563:                                             ; preds = %3562
  call void @exit(i32 noundef 1) #11
  unreachable

3564:                                             ; No predecessors!
  br label %3565

3565:                                             ; preds = %3564
  br label %3566

3566:                                             ; preds = %3565, %3504
  br label %3567

3567:                                             ; preds = %3566
  br label %3568

3568:                                             ; preds = %3567
  br label %3569

3569:                                             ; preds = %3568
  %3570 = load i32, ptr @test_count, align 4, !tbaa !5
  %3571 = add nsw i32 %3570, 1
  store i32 %3571, ptr @test_count, align 4, !tbaa !5
  %3572 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3573 = load i32, ptr %3572, align 4, !tbaa !5
  %3574 = icmp eq i32 %3573, 335544322
  br i1 %3574, label %3628, label %3575

3575:                                             ; preds = %3569
  br label %3576

3576:                                             ; preds = %3575
  br label %3577

3577:                                             ; preds = %3576
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #9
  %3578 = call ptr @__errno_location() #10
  %3579 = load i32, ptr %3578, align 4, !tbaa !5
  store i32 %3579, ptr %80, align 4, !tbaa !5
  %3580 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3581 = call i32 @s2n_print_stacktrace(ptr noundef %3580)
  %3582 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3583 = trunc i8 %3582 to i1
  br i1 %3583, label %3584, label %3606

3584:                                             ; preds = %3577
  %3585 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3586 = call i32 @fileno(ptr noundef %3585) #9
  %3587 = call i32 @isatty(i32 noundef %3586) #9
  %3588 = icmp ne i32 %3587, 0
  br i1 %3588, label %3589, label %3606

3589:                                             ; preds = %3584
  %3590 = load i32, ptr %80, align 4, !tbaa !5
  %3591 = call ptr @__errno_location() #10
  store i32 %3590, ptr %3591, align 4, !tbaa !5
  %3592 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3593 = load i32, ptr @test_count, align 4, !tbaa !5
  %3594 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3595 = load i32, ptr %3594, align 4, !tbaa !5
  %3596 = call ptr @s2n_strerror(i32 noundef %3595, ptr noundef @.str.24)
  %3597 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3598 = load i32, ptr %3597, align 4, !tbaa !5
  %3599 = call ptr @s2n_strerror_debug(i32 noundef %3598, ptr noundef @.str.24)
  %3600 = call ptr @__errno_location() #10
  %3601 = load i32, ptr %3600, align 4, !tbaa !5
  %3602 = call ptr @strerror(i32 noundef %3601) #9
  %3603 = call ptr @__errno_location() #10
  %3604 = load i32, ptr %3603, align 4, !tbaa !5
  %3605 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3592, ptr noundef @.str.22, i32 noundef %3593, ptr noundef @.str.38, ptr noundef @.str.21, i32 noundef 171, ptr noundef %3596, ptr noundef %3599, ptr noundef %3602, i32 noundef %3604) #9
  br label %3623

3606:                                             ; preds = %3584, %3577
  %3607 = load i32, ptr %80, align 4, !tbaa !5
  %3608 = call ptr @__errno_location() #10
  store i32 %3607, ptr %3608, align 4, !tbaa !5
  %3609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3610 = load i32, ptr @test_count, align 4, !tbaa !5
  %3611 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3612 = load i32, ptr %3611, align 4, !tbaa !5
  %3613 = call ptr @s2n_strerror(i32 noundef %3612, ptr noundef @.str.24)
  %3614 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3615 = load i32, ptr %3614, align 4, !tbaa !5
  %3616 = call ptr @s2n_strerror_debug(i32 noundef %3615, ptr noundef @.str.24)
  %3617 = call ptr @__errno_location() #10
  %3618 = load i32, ptr %3617, align 4, !tbaa !5
  %3619 = call ptr @strerror(i32 noundef %3618) #9
  %3620 = call ptr @__errno_location() #10
  %3621 = load i32, ptr %3620, align 4, !tbaa !5
  %3622 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3609, ptr noundef @.str.25, i32 noundef %3610, ptr noundef @.str.38, ptr noundef @.str.21, i32 noundef 171, ptr noundef %3613, ptr noundef %3616, ptr noundef %3619, i32 noundef %3621) #9
  br label %3623

3623:                                             ; preds = %3606, %3589
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #9
  br label %3624

3624:                                             ; preds = %3623
  br label %3625

3625:                                             ; preds = %3624
  call void @exit(i32 noundef 1) #11
  unreachable

3626:                                             ; No predecessors!
  br label %3627

3627:                                             ; preds = %3626
  br label %3628

3628:                                             ; preds = %3627, %3569
  br label %3629

3629:                                             ; preds = %3628
  br label %3630

3630:                                             ; preds = %3629
  br label %3631

3631:                                             ; preds = %3630
  %3632 = load i32, ptr @test_count, align 4, !tbaa !5
  %3633 = add nsw i32 %3632, 1
  store i32 %3633, ptr @test_count, align 4, !tbaa !5
  %3634 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3635 = load i32, ptr %3634, align 4, !tbaa !5
  %3636 = call ptr @s2n_strerror_debug(i32 noundef %3635, ptr noundef @.str.24)
  %3637 = icmp eq ptr %3636, null
  br i1 %3637, label %3638, label %3691

3638:                                             ; preds = %3631
  br label %3639

3639:                                             ; preds = %3638
  br label %3640

3640:                                             ; preds = %3639
  call void @llvm.lifetime.start.p0(i64 4, ptr %81) #9
  %3641 = call ptr @__errno_location() #10
  %3642 = load i32, ptr %3641, align 4, !tbaa !5
  store i32 %3642, ptr %81, align 4, !tbaa !5
  %3643 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3644 = call i32 @s2n_print_stacktrace(ptr noundef %3643)
  %3645 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3646 = trunc i8 %3645 to i1
  br i1 %3646, label %3647, label %3669

3647:                                             ; preds = %3640
  %3648 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3649 = call i32 @fileno(ptr noundef %3648) #9
  %3650 = call i32 @isatty(i32 noundef %3649) #9
  %3651 = icmp ne i32 %3650, 0
  br i1 %3651, label %3652, label %3669

3652:                                             ; preds = %3647
  %3653 = load i32, ptr %81, align 4, !tbaa !5
  %3654 = call ptr @__errno_location() #10
  store i32 %3653, ptr %3654, align 4, !tbaa !5
  %3655 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3656 = load i32, ptr @test_count, align 4, !tbaa !5
  %3657 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3658 = load i32, ptr %3657, align 4, !tbaa !5
  %3659 = call ptr @s2n_strerror(i32 noundef %3658, ptr noundef @.str.24)
  %3660 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3661 = load i32, ptr %3660, align 4, !tbaa !5
  %3662 = call ptr @s2n_strerror_debug(i32 noundef %3661, ptr noundef @.str.24)
  %3663 = call ptr @__errno_location() #10
  %3664 = load i32, ptr %3663, align 4, !tbaa !5
  %3665 = call ptr @strerror(i32 noundef %3664) #9
  %3666 = call ptr @__errno_location() #10
  %3667 = load i32, ptr %3666, align 4, !tbaa !5
  %3668 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3655, ptr noundef @.str.22, i32 noundef %3656, ptr noundef @.str.39, ptr noundef @.str.21, i32 noundef 171, ptr noundef %3659, ptr noundef %3662, ptr noundef %3665, i32 noundef %3667) #9
  br label %3686

3669:                                             ; preds = %3647, %3640
  %3670 = load i32, ptr %81, align 4, !tbaa !5
  %3671 = call ptr @__errno_location() #10
  store i32 %3670, ptr %3671, align 4, !tbaa !5
  %3672 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3673 = load i32, ptr @test_count, align 4, !tbaa !5
  %3674 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3675 = load i32, ptr %3674, align 4, !tbaa !5
  %3676 = call ptr @s2n_strerror(i32 noundef %3675, ptr noundef @.str.24)
  %3677 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3678 = load i32, ptr %3677, align 4, !tbaa !5
  %3679 = call ptr @s2n_strerror_debug(i32 noundef %3678, ptr noundef @.str.24)
  %3680 = call ptr @__errno_location() #10
  %3681 = load i32, ptr %3680, align 4, !tbaa !5
  %3682 = call ptr @strerror(i32 noundef %3681) #9
  %3683 = call ptr @__errno_location() #10
  %3684 = load i32, ptr %3683, align 4, !tbaa !5
  %3685 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3672, ptr noundef @.str.25, i32 noundef %3673, ptr noundef @.str.39, ptr noundef @.str.21, i32 noundef 171, ptr noundef %3676, ptr noundef %3679, ptr noundef %3682, i32 noundef %3684) #9
  br label %3686

3686:                                             ; preds = %3669, %3652
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #9
  br label %3687

3687:                                             ; preds = %3686
  br label %3688

3688:                                             ; preds = %3687
  call void @exit(i32 noundef 1) #11
  unreachable

3689:                                             ; No predecessors!
  br label %3690

3690:                                             ; preds = %3689
  br label %3691

3691:                                             ; preds = %3690, %3631
  br label %3692

3692:                                             ; preds = %3691
  br label %3693

3693:                                             ; preds = %3692
  br label %3694

3694:                                             ; preds = %3693
  br label %3695

3695:                                             ; preds = %3694
  br label %3696

3696:                                             ; preds = %3695
  %3697 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %3697, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %3698 = call ptr @__errno_location() #10
  store i32 0, ptr %3698, align 4, !tbaa !5
  br label %3699

3699:                                             ; preds = %3696
  br label %3700

3700:                                             ; preds = %3699
  br label %3701

3701:                                             ; preds = %3700
  br label %3702

3702:                                             ; preds = %3701
  br label %3703

3703:                                             ; preds = %3702
  %3704 = load i32, ptr @test_count, align 4, !tbaa !5
  %3705 = add nsw i32 %3704, 1
  store i32 %3705, ptr @test_count, align 4, !tbaa !5
  %3706 = load ptr, ptr %74, align 8, !tbaa !9
  %3707 = call i32 @s2n_connection_free(ptr noundef %3706)
  %3708 = icmp eq i32 %3707, -1
  br i1 %3708, label %3709, label %3762

3709:                                             ; preds = %3703
  br label %3710

3710:                                             ; preds = %3709
  br label %3711

3711:                                             ; preds = %3710
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #9
  %3712 = call ptr @__errno_location() #10
  %3713 = load i32, ptr %3712, align 4, !tbaa !5
  store i32 %3713, ptr %82, align 4, !tbaa !5
  %3714 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3715 = call i32 @s2n_print_stacktrace(ptr noundef %3714)
  %3716 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3717 = trunc i8 %3716 to i1
  br i1 %3717, label %3718, label %3740

3718:                                             ; preds = %3711
  %3719 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3720 = call i32 @fileno(ptr noundef %3719) #9
  %3721 = call i32 @isatty(i32 noundef %3720) #9
  %3722 = icmp ne i32 %3721, 0
  br i1 %3722, label %3723, label %3740

3723:                                             ; preds = %3718
  %3724 = load i32, ptr %82, align 4, !tbaa !5
  %3725 = call ptr @__errno_location() #10
  store i32 %3724, ptr %3725, align 4, !tbaa !5
  %3726 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3727 = load i32, ptr @test_count, align 4, !tbaa !5
  %3728 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3729 = load i32, ptr %3728, align 4, !tbaa !5
  %3730 = call ptr @s2n_strerror(i32 noundef %3729, ptr noundef @.str.24)
  %3731 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3732 = load i32, ptr %3731, align 4, !tbaa !5
  %3733 = call ptr @s2n_strerror_debug(i32 noundef %3732, ptr noundef @.str.24)
  %3734 = call ptr @__errno_location() #10
  %3735 = load i32, ptr %3734, align 4, !tbaa !5
  %3736 = call ptr @strerror(i32 noundef %3735) #9
  %3737 = call ptr @__errno_location() #10
  %3738 = load i32, ptr %3737, align 4, !tbaa !5
  %3739 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3726, ptr noundef @.str.22, i32 noundef %3727, ptr noundef @.str.35, ptr noundef @.str.21, i32 noundef 173, ptr noundef %3730, ptr noundef %3733, ptr noundef %3736, i32 noundef %3738) #9
  br label %3757

3740:                                             ; preds = %3718, %3711
  %3741 = load i32, ptr %82, align 4, !tbaa !5
  %3742 = call ptr @__errno_location() #10
  store i32 %3741, ptr %3742, align 4, !tbaa !5
  %3743 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3744 = load i32, ptr @test_count, align 4, !tbaa !5
  %3745 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3746 = load i32, ptr %3745, align 4, !tbaa !5
  %3747 = call ptr @s2n_strerror(i32 noundef %3746, ptr noundef @.str.24)
  %3748 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3749 = load i32, ptr %3748, align 4, !tbaa !5
  %3750 = call ptr @s2n_strerror_debug(i32 noundef %3749, ptr noundef @.str.24)
  %3751 = call ptr @__errno_location() #10
  %3752 = load i32, ptr %3751, align 4, !tbaa !5
  %3753 = call ptr @strerror(i32 noundef %3752) #9
  %3754 = call ptr @__errno_location() #10
  %3755 = load i32, ptr %3754, align 4, !tbaa !5
  %3756 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3743, ptr noundef @.str.25, i32 noundef %3744, ptr noundef @.str.35, ptr noundef @.str.21, i32 noundef 173, ptr noundef %3747, ptr noundef %3750, ptr noundef %3753, i32 noundef %3755) #9
  br label %3757

3757:                                             ; preds = %3740, %3723
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #9
  br label %3758

3758:                                             ; preds = %3757
  br label %3759

3759:                                             ; preds = %3758
  call void @exit(i32 noundef 1) #11
  unreachable

3760:                                             ; No predecessors!
  br label %3761

3761:                                             ; preds = %3760
  br label %3762

3762:                                             ; preds = %3761, %3703
  br label %3763

3763:                                             ; preds = %3762
  br label %3764

3764:                                             ; preds = %3763
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #9
  br label %3765

3765:                                             ; preds = %3764
  %3766 = load i64, ptr %73, align 8, !tbaa !49
  %3767 = add i64 %3766, 1
  store i64 %3767, ptr %73, align 8, !tbaa !49
  br label %3296, !llvm.loop !60

3768:                                             ; preds = %3307, %3299
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #9
  br label %3769

3769:                                             ; preds = %3768
  call void @llvm.lifetime.start.p0(i64 8, ptr %83) #9
  %3770 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %3770, ptr %83, align 8, !tbaa !9
  br label %3771

3771:                                             ; preds = %3769
  %3772 = load i32, ptr @test_count, align 4, !tbaa !5
  %3773 = add nsw i32 %3772, 1
  store i32 %3773, ptr @test_count, align 4, !tbaa !5
  %3774 = load ptr, ptr %83, align 8, !tbaa !9
  %3775 = icmp eq ptr %3774, null
  br i1 %3775, label %3776, label %3829

3776:                                             ; preds = %3771
  br label %3777

3777:                                             ; preds = %3776
  br label %3778

3778:                                             ; preds = %3777
  call void @llvm.lifetime.start.p0(i64 4, ptr %84) #9
  %3779 = call ptr @__errno_location() #10
  %3780 = load i32, ptr %3779, align 4, !tbaa !5
  store i32 %3780, ptr %84, align 4, !tbaa !5
  %3781 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3782 = call i32 @s2n_print_stacktrace(ptr noundef %3781)
  %3783 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3784 = trunc i8 %3783 to i1
  br i1 %3784, label %3785, label %3807

3785:                                             ; preds = %3778
  %3786 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3787 = call i32 @fileno(ptr noundef %3786) #9
  %3788 = call i32 @isatty(i32 noundef %3787) #9
  %3789 = icmp ne i32 %3788, 0
  br i1 %3789, label %3790, label %3807

3790:                                             ; preds = %3785
  %3791 = load i32, ptr %84, align 4, !tbaa !5
  %3792 = call ptr @__errno_location() #10
  store i32 %3791, ptr %3792, align 4, !tbaa !5
  %3793 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3794 = load i32, ptr @test_count, align 4, !tbaa !5
  %3795 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3796 = load i32, ptr %3795, align 4, !tbaa !5
  %3797 = call ptr @s2n_strerror(i32 noundef %3796, ptr noundef @.str.24)
  %3798 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3799 = load i32, ptr %3798, align 4, !tbaa !5
  %3800 = call ptr @s2n_strerror_debug(i32 noundef %3799, ptr noundef @.str.24)
  %3801 = call ptr @__errno_location() #10
  %3802 = load i32, ptr %3801, align 4, !tbaa !5
  %3803 = call ptr @strerror(i32 noundef %3802) #9
  %3804 = call ptr @__errno_location() #10
  %3805 = load i32, ptr %3804, align 4, !tbaa !5
  %3806 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3793, ptr noundef @.str.22, i32 noundef %3794, ptr noundef @.str.42, ptr noundef @.str.21, i32 noundef 184, ptr noundef %3797, ptr noundef %3800, ptr noundef %3803, i32 noundef %3805) #9
  br label %3824

3807:                                             ; preds = %3785, %3778
  %3808 = load i32, ptr %84, align 4, !tbaa !5
  %3809 = call ptr @__errno_location() #10
  store i32 %3808, ptr %3809, align 4, !tbaa !5
  %3810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3811 = load i32, ptr @test_count, align 4, !tbaa !5
  %3812 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3813 = load i32, ptr %3812, align 4, !tbaa !5
  %3814 = call ptr @s2n_strerror(i32 noundef %3813, ptr noundef @.str.24)
  %3815 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3816 = load i32, ptr %3815, align 4, !tbaa !5
  %3817 = call ptr @s2n_strerror_debug(i32 noundef %3816, ptr noundef @.str.24)
  %3818 = call ptr @__errno_location() #10
  %3819 = load i32, ptr %3818, align 4, !tbaa !5
  %3820 = call ptr @strerror(i32 noundef %3819) #9
  %3821 = call ptr @__errno_location() #10
  %3822 = load i32, ptr %3821, align 4, !tbaa !5
  %3823 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3810, ptr noundef @.str.25, i32 noundef %3811, ptr noundef @.str.42, ptr noundef @.str.21, i32 noundef 184, ptr noundef %3814, ptr noundef %3817, ptr noundef %3820, i32 noundef %3822) #9
  br label %3824

3824:                                             ; preds = %3807, %3790
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #9
  br label %3825

3825:                                             ; preds = %3824
  br label %3826

3826:                                             ; preds = %3825
  call void @exit(i32 noundef 1) #11
  unreachable

3827:                                             ; No predecessors!
  br label %3828

3828:                                             ; preds = %3827
  br label %3829

3829:                                             ; preds = %3828, %3771
  br label %3830

3830:                                             ; preds = %3829
  br label %3831

3831:                                             ; preds = %3830
  br label %3832

3832:                                             ; preds = %3831
  %3833 = load i32, ptr @test_count, align 4, !tbaa !5
  %3834 = add nsw i32 %3833, 1
  store i32 %3834, ptr @test_count, align 4, !tbaa !5
  %3835 = load ptr, ptr %83, align 8, !tbaa !9
  %3836 = call i32 @s2n_connection_set_secrets(ptr noundef %3835)
  %3837 = getelementptr inbounds %struct.s2n_result, ptr %85, i32 0, i32 0
  store i32 %3836, ptr %3837, align 4
  %3838 = getelementptr inbounds %struct.s2n_result, ptr %85, i32 0, i32 0
  %3839 = load i32, ptr %3838, align 4
  %3840 = call zeroext i1 @s2n_result_is_ok(i32 %3839)
  br i1 %3840, label %3894, label %3841

3841:                                             ; preds = %3832
  br label %3842

3842:                                             ; preds = %3841
  br label %3843

3843:                                             ; preds = %3842
  call void @llvm.lifetime.start.p0(i64 4, ptr %86) #9
  %3844 = call ptr @__errno_location() #10
  %3845 = load i32, ptr %3844, align 4, !tbaa !5
  store i32 %3845, ptr %86, align 4, !tbaa !5
  %3846 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3847 = call i32 @s2n_print_stacktrace(ptr noundef %3846)
  %3848 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3849 = trunc i8 %3848 to i1
  br i1 %3849, label %3850, label %3872

3850:                                             ; preds = %3843
  %3851 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3852 = call i32 @fileno(ptr noundef %3851) #9
  %3853 = call i32 @isatty(i32 noundef %3852) #9
  %3854 = icmp ne i32 %3853, 0
  br i1 %3854, label %3855, label %3872

3855:                                             ; preds = %3850
  %3856 = load i32, ptr %86, align 4, !tbaa !5
  %3857 = call ptr @__errno_location() #10
  store i32 %3856, ptr %3857, align 4, !tbaa !5
  %3858 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3859 = load i32, ptr @test_count, align 4, !tbaa !5
  %3860 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3861 = load i32, ptr %3860, align 4, !tbaa !5
  %3862 = call ptr @s2n_strerror(i32 noundef %3861, ptr noundef @.str.24)
  %3863 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3864 = load i32, ptr %3863, align 4, !tbaa !5
  %3865 = call ptr @s2n_strerror_debug(i32 noundef %3864, ptr noundef @.str.24)
  %3866 = call ptr @__errno_location() #10
  %3867 = load i32, ptr %3866, align 4, !tbaa !5
  %3868 = call ptr @strerror(i32 noundef %3867) #9
  %3869 = call ptr @__errno_location() #10
  %3870 = load i32, ptr %3869, align 4, !tbaa !5
  %3871 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3858, ptr noundef @.str.22, i32 noundef %3859, ptr noundef @.str.51, ptr noundef @.str.21, i32 noundef 185, ptr noundef %3862, ptr noundef %3865, ptr noundef %3868, i32 noundef %3870) #9
  br label %3889

3872:                                             ; preds = %3850, %3843
  %3873 = load i32, ptr %86, align 4, !tbaa !5
  %3874 = call ptr @__errno_location() #10
  store i32 %3873, ptr %3874, align 4, !tbaa !5
  %3875 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3876 = load i32, ptr @test_count, align 4, !tbaa !5
  %3877 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3878 = load i32, ptr %3877, align 4, !tbaa !5
  %3879 = call ptr @s2n_strerror(i32 noundef %3878, ptr noundef @.str.24)
  %3880 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3881 = load i32, ptr %3880, align 4, !tbaa !5
  %3882 = call ptr @s2n_strerror_debug(i32 noundef %3881, ptr noundef @.str.24)
  %3883 = call ptr @__errno_location() #10
  %3884 = load i32, ptr %3883, align 4, !tbaa !5
  %3885 = call ptr @strerror(i32 noundef %3884) #9
  %3886 = call ptr @__errno_location() #10
  %3887 = load i32, ptr %3886, align 4, !tbaa !5
  %3888 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3875, ptr noundef @.str.25, i32 noundef %3876, ptr noundef @.str.51, ptr noundef @.str.21, i32 noundef 185, ptr noundef %3879, ptr noundef %3882, ptr noundef %3885, i32 noundef %3887) #9
  br label %3889

3889:                                             ; preds = %3872, %3855
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #9
  br label %3890

3890:                                             ; preds = %3889
  br label %3891

3891:                                             ; preds = %3890
  call void @exit(i32 noundef 1) #11
  unreachable

3892:                                             ; No predecessors!
  br label %3893

3893:                                             ; preds = %3892
  br label %3894

3894:                                             ; preds = %3893, %3832
  br label %3895

3895:                                             ; preds = %3894
  br label %3896

3896:                                             ; preds = %3895
  call void @llvm.lifetime.start.p0(i64 40, ptr %87) #9
  call void @llvm.memset.p0.i64(ptr align 8 %87, i8 0, i64 40, i1 false)
  br label %3897

3897:                                             ; preds = %3896
  %3898 = load i32, ptr @test_count, align 4, !tbaa !5
  %3899 = add nsw i32 %3898, 1
  store i32 %3899, ptr @test_count, align 4, !tbaa !5
  %3900 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %87, i32 noundef 0)
  %3901 = icmp eq i32 %3900, -1
  br i1 %3901, label %3902, label %3955

3902:                                             ; preds = %3897
  br label %3903

3903:                                             ; preds = %3902
  br label %3904

3904:                                             ; preds = %3903
  call void @llvm.lifetime.start.p0(i64 4, ptr %88) #9
  %3905 = call ptr @__errno_location() #10
  %3906 = load i32, ptr %3905, align 4, !tbaa !5
  store i32 %3906, ptr %88, align 4, !tbaa !5
  %3907 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3908 = call i32 @s2n_print_stacktrace(ptr noundef %3907)
  %3909 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3910 = trunc i8 %3909 to i1
  br i1 %3910, label %3911, label %3933

3911:                                             ; preds = %3904
  %3912 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3913 = call i32 @fileno(ptr noundef %3912) #9
  %3914 = call i32 @isatty(i32 noundef %3913) #9
  %3915 = icmp ne i32 %3914, 0
  br i1 %3915, label %3916, label %3933

3916:                                             ; preds = %3911
  %3917 = load i32, ptr %88, align 4, !tbaa !5
  %3918 = call ptr @__errno_location() #10
  store i32 %3917, ptr %3918, align 4, !tbaa !5
  %3919 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3920 = load i32, ptr @test_count, align 4, !tbaa !5
  %3921 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3922 = load i32, ptr %3921, align 4, !tbaa !5
  %3923 = call ptr @s2n_strerror(i32 noundef %3922, ptr noundef @.str.24)
  %3924 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3925 = load i32, ptr %3924, align 4, !tbaa !5
  %3926 = call ptr @s2n_strerror_debug(i32 noundef %3925, ptr noundef @.str.24)
  %3927 = call ptr @__errno_location() #10
  %3928 = load i32, ptr %3927, align 4, !tbaa !5
  %3929 = call ptr @strerror(i32 noundef %3928) #9
  %3930 = call ptr @__errno_location() #10
  %3931 = load i32, ptr %3930, align 4, !tbaa !5
  %3932 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3919, ptr noundef @.str.22, i32 noundef %3920, ptr noundef @.str.52, ptr noundef @.str.21, i32 noundef 188, ptr noundef %3923, ptr noundef %3926, ptr noundef %3929, i32 noundef %3931) #9
  br label %3950

3933:                                             ; preds = %3911, %3904
  %3934 = load i32, ptr %88, align 4, !tbaa !5
  %3935 = call ptr @__errno_location() #10
  store i32 %3934, ptr %3935, align 4, !tbaa !5
  %3936 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3937 = load i32, ptr @test_count, align 4, !tbaa !5
  %3938 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3939 = load i32, ptr %3938, align 4, !tbaa !5
  %3940 = call ptr @s2n_strerror(i32 noundef %3939, ptr noundef @.str.24)
  %3941 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3942 = load i32, ptr %3941, align 4, !tbaa !5
  %3943 = call ptr @s2n_strerror_debug(i32 noundef %3942, ptr noundef @.str.24)
  %3944 = call ptr @__errno_location() #10
  %3945 = load i32, ptr %3944, align 4, !tbaa !5
  %3946 = call ptr @strerror(i32 noundef %3945) #9
  %3947 = call ptr @__errno_location() #10
  %3948 = load i32, ptr %3947, align 4, !tbaa !5
  %3949 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3936, ptr noundef @.str.25, i32 noundef %3937, ptr noundef @.str.52, ptr noundef @.str.21, i32 noundef 188, ptr noundef %3940, ptr noundef %3943, ptr noundef %3946, i32 noundef %3948) #9
  br label %3950

3950:                                             ; preds = %3933, %3916
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #9
  br label %3951

3951:                                             ; preds = %3950
  br label %3952

3952:                                             ; preds = %3951
  call void @exit(i32 noundef 1) #11
  unreachable

3953:                                             ; No predecessors!
  br label %3954

3954:                                             ; preds = %3953
  br label %3955

3955:                                             ; preds = %3954, %3897
  br label %3956

3956:                                             ; preds = %3955
  br label %3957

3957:                                             ; preds = %3956
  br label %3958

3958:                                             ; preds = %3957
  %3959 = load i32, ptr @test_count, align 4, !tbaa !5
  %3960 = add nsw i32 %3959, 1
  store i32 %3960, ptr @test_count, align 4, !tbaa !5
  %3961 = load ptr, ptr %83, align 8, !tbaa !9
  %3962 = call i32 @s2n_connection_set_send_io_stuffer(ptr noundef %87, ptr noundef %3961)
  %3963 = icmp eq i32 %3962, -1
  br i1 %3963, label %3964, label %4017

3964:                                             ; preds = %3958
  br label %3965

3965:                                             ; preds = %3964
  br label %3966

3966:                                             ; preds = %3965
  call void @llvm.lifetime.start.p0(i64 4, ptr %89) #9
  %3967 = call ptr @__errno_location() #10
  %3968 = load i32, ptr %3967, align 4, !tbaa !5
  store i32 %3968, ptr %89, align 4, !tbaa !5
  %3969 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3970 = call i32 @s2n_print_stacktrace(ptr noundef %3969)
  %3971 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3972 = trunc i8 %3971 to i1
  br i1 %3972, label %3973, label %3995

3973:                                             ; preds = %3966
  %3974 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3975 = call i32 @fileno(ptr noundef %3974) #9
  %3976 = call i32 @isatty(i32 noundef %3975) #9
  %3977 = icmp ne i32 %3976, 0
  br i1 %3977, label %3978, label %3995

3978:                                             ; preds = %3973
  %3979 = load i32, ptr %89, align 4, !tbaa !5
  %3980 = call ptr @__errno_location() #10
  store i32 %3979, ptr %3980, align 4, !tbaa !5
  %3981 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3982 = load i32, ptr @test_count, align 4, !tbaa !5
  %3983 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3984 = load i32, ptr %3983, align 4, !tbaa !5
  %3985 = call ptr @s2n_strerror(i32 noundef %3984, ptr noundef @.str.24)
  %3986 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3987 = load i32, ptr %3986, align 4, !tbaa !5
  %3988 = call ptr @s2n_strerror_debug(i32 noundef %3987, ptr noundef @.str.24)
  %3989 = call ptr @__errno_location() #10
  %3990 = load i32, ptr %3989, align 4, !tbaa !5
  %3991 = call ptr @strerror(i32 noundef %3990) #9
  %3992 = call ptr @__errno_location() #10
  %3993 = load i32, ptr %3992, align 4, !tbaa !5
  %3994 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3981, ptr noundef @.str.22, i32 noundef %3982, ptr noundef @.str.53, ptr noundef @.str.21, i32 noundef 189, ptr noundef %3985, ptr noundef %3988, ptr noundef %3991, i32 noundef %3993) #9
  br label %4012

3995:                                             ; preds = %3973, %3966
  %3996 = load i32, ptr %89, align 4, !tbaa !5
  %3997 = call ptr @__errno_location() #10
  store i32 %3996, ptr %3997, align 4, !tbaa !5
  %3998 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3999 = load i32, ptr @test_count, align 4, !tbaa !5
  %4000 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4001 = load i32, ptr %4000, align 4, !tbaa !5
  %4002 = call ptr @s2n_strerror(i32 noundef %4001, ptr noundef @.str.24)
  %4003 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4004 = load i32, ptr %4003, align 4, !tbaa !5
  %4005 = call ptr @s2n_strerror_debug(i32 noundef %4004, ptr noundef @.str.24)
  %4006 = call ptr @__errno_location() #10
  %4007 = load i32, ptr %4006, align 4, !tbaa !5
  %4008 = call ptr @strerror(i32 noundef %4007) #9
  %4009 = call ptr @__errno_location() #10
  %4010 = load i32, ptr %4009, align 4, !tbaa !5
  %4011 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3998, ptr noundef @.str.25, i32 noundef %3999, ptr noundef @.str.53, ptr noundef @.str.21, i32 noundef 189, ptr noundef %4002, ptr noundef %4005, ptr noundef %4008, i32 noundef %4010) #9
  br label %4012

4012:                                             ; preds = %3995, %3978
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #9
  br label %4013

4013:                                             ; preds = %4012
  br label %4014

4014:                                             ; preds = %4013
  call void @exit(i32 noundef 1) #11
  unreachable

4015:                                             ; No predecessors!
  br label %4016

4016:                                             ; preds = %4015
  br label %4017

4017:                                             ; preds = %4016, %3958
  br label %4018

4018:                                             ; preds = %4017
  br label %4019

4019:                                             ; preds = %4018
  %4020 = load ptr, ptr %83, align 8, !tbaa !9
  %4021 = getelementptr inbounds %struct.s2n_connection, ptr %4020, i32 0, i32 23
  store i8 34, ptr %4021, align 4, !tbaa !15
  %4022 = load ptr, ptr %83, align 8, !tbaa !9
  %4023 = getelementptr inbounds %struct.s2n_connection, ptr %4022, i32 0, i32 94
  call void @s2n_atomic_flag_set(ptr noundef %4023)
  call void @llvm.lifetime.start.p0(i64 4, ptr %90) #9
  store i32 0, ptr %90, align 4, !tbaa !5
  br label %4024

4024:                                             ; preds = %4019
  %4025 = load i32, ptr @test_count, align 4, !tbaa !5
  %4026 = add nsw i32 %4025, 1
  store i32 %4026, ptr @test_count, align 4, !tbaa !5
  %4027 = load ptr, ptr %83, align 8, !tbaa !9
  %4028 = call i32 @s2n_post_handshake_send(ptr noundef %4027, ptr noundef %90)
  %4029 = icmp eq i32 %4028, -1
  br i1 %4029, label %4030, label %4083

4030:                                             ; preds = %4024
  br label %4031

4031:                                             ; preds = %4030
  br label %4032

4032:                                             ; preds = %4031
  call void @llvm.lifetime.start.p0(i64 4, ptr %91) #9
  %4033 = call ptr @__errno_location() #10
  %4034 = load i32, ptr %4033, align 4, !tbaa !5
  store i32 %4034, ptr %91, align 4, !tbaa !5
  %4035 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4036 = call i32 @s2n_print_stacktrace(ptr noundef %4035)
  %4037 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4038 = trunc i8 %4037 to i1
  br i1 %4038, label %4039, label %4061

4039:                                             ; preds = %4032
  %4040 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4041 = call i32 @fileno(ptr noundef %4040) #9
  %4042 = call i32 @isatty(i32 noundef %4041) #9
  %4043 = icmp ne i32 %4042, 0
  br i1 %4043, label %4044, label %4061

4044:                                             ; preds = %4039
  %4045 = load i32, ptr %91, align 4, !tbaa !5
  %4046 = call ptr @__errno_location() #10
  store i32 %4045, ptr %4046, align 4, !tbaa !5
  %4047 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4048 = load i32, ptr @test_count, align 4, !tbaa !5
  %4049 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4050 = load i32, ptr %4049, align 4, !tbaa !5
  %4051 = call ptr @s2n_strerror(i32 noundef %4050, ptr noundef @.str.24)
  %4052 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4053 = load i32, ptr %4052, align 4, !tbaa !5
  %4054 = call ptr @s2n_strerror_debug(i32 noundef %4053, ptr noundef @.str.24)
  %4055 = call ptr @__errno_location() #10
  %4056 = load i32, ptr %4055, align 4, !tbaa !5
  %4057 = call ptr @strerror(i32 noundef %4056) #9
  %4058 = call ptr @__errno_location() #10
  %4059 = load i32, ptr %4058, align 4, !tbaa !5
  %4060 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4047, ptr noundef @.str.22, i32 noundef %4048, ptr noundef @.str.54, ptr noundef @.str.21, i32 noundef 195, ptr noundef %4051, ptr noundef %4054, ptr noundef %4057, i32 noundef %4059) #9
  br label %4078

4061:                                             ; preds = %4039, %4032
  %4062 = load i32, ptr %91, align 4, !tbaa !5
  %4063 = call ptr @__errno_location() #10
  store i32 %4062, ptr %4063, align 4, !tbaa !5
  %4064 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4065 = load i32, ptr @test_count, align 4, !tbaa !5
  %4066 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4067 = load i32, ptr %4066, align 4, !tbaa !5
  %4068 = call ptr @s2n_strerror(i32 noundef %4067, ptr noundef @.str.24)
  %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_debug(i32 noundef %4070, ptr noundef @.str.24)
  %4072 = call ptr @__errno_location() #10
  %4073 = load i32, ptr %4072, align 4, !tbaa !5
  %4074 = call ptr @strerror(i32 noundef %4073) #9
  %4075 = call ptr @__errno_location() #10
  %4076 = load i32, ptr %4075, align 4, !tbaa !5
  %4077 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4064, ptr noundef @.str.25, i32 noundef %4065, ptr noundef @.str.54, ptr noundef @.str.21, i32 noundef 195, ptr noundef %4068, ptr noundef %4071, ptr noundef %4074, i32 noundef %4076) #9
  br label %4078

4078:                                             ; preds = %4061, %4044
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #9
  br label %4079

4079:                                             ; preds = %4078
  br label %4080

4080:                                             ; preds = %4079
  call void @exit(i32 noundef 1) #11
  unreachable

4081:                                             ; No predecessors!
  br label %4082

4082:                                             ; preds = %4081
  br label %4083

4083:                                             ; preds = %4082, %4024
  br label %4084

4084:                                             ; preds = %4083
  br label %4085

4085:                                             ; preds = %4084
  br label %4086

4086:                                             ; preds = %4085
  %4087 = load i32, ptr @test_count, align 4, !tbaa !5
  %4088 = add nsw i32 %4087, 1
  store i32 %4088, ptr @test_count, align 4, !tbaa !5
  %4089 = getelementptr inbounds %struct.s2n_stuffer, ptr %87, i32 0, i32 2
  %4090 = load i32, ptr %4089, align 4, !tbaa !61
  %4091 = getelementptr inbounds %struct.s2n_stuffer, ptr %87, i32 0, i32 1
  %4092 = load i32, ptr %4091, align 8, !tbaa !62
  %4093 = sub i32 %4090, %4092
  %4094 = icmp ugt i32 %4093, 0
  br i1 %4094, label %4148, label %4095

4095:                                             ; preds = %4086
  br label %4096

4096:                                             ; preds = %4095
  br label %4097

4097:                                             ; preds = %4096
  call void @llvm.lifetime.start.p0(i64 4, ptr %92) #9
  %4098 = call ptr @__errno_location() #10
  %4099 = load i32, ptr %4098, align 4, !tbaa !5
  store i32 %4099, ptr %92, align 4, !tbaa !5
  %4100 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4101 = call i32 @s2n_print_stacktrace(ptr noundef %4100)
  %4102 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4103 = trunc i8 %4102 to i1
  br i1 %4103, label %4104, label %4126

4104:                                             ; preds = %4097
  %4105 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4106 = call i32 @fileno(ptr noundef %4105) #9
  %4107 = call i32 @isatty(i32 noundef %4106) #9
  %4108 = icmp ne i32 %4107, 0
  br i1 %4108, label %4109, label %4126

4109:                                             ; preds = %4104
  %4110 = load i32, ptr %92, align 4, !tbaa !5
  %4111 = call ptr @__errno_location() #10
  store i32 %4110, ptr %4111, align 4, !tbaa !5
  %4112 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4113 = load i32, ptr @test_count, align 4, !tbaa !5
  %4114 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4115 = load i32, ptr %4114, align 4, !tbaa !5
  %4116 = call ptr @s2n_strerror(i32 noundef %4115, ptr noundef @.str.24)
  %4117 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4118 = load i32, ptr %4117, align 4, !tbaa !5
  %4119 = call ptr @s2n_strerror_debug(i32 noundef %4118, ptr noundef @.str.24)
  %4120 = call ptr @__errno_location() #10
  %4121 = load i32, ptr %4120, align 4, !tbaa !5
  %4122 = call ptr @strerror(i32 noundef %4121) #9
  %4123 = call ptr @__errno_location() #10
  %4124 = load i32, ptr %4123, align 4, !tbaa !5
  %4125 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4112, ptr noundef @.str.22, i32 noundef %4113, ptr noundef @.str.55, ptr noundef @.str.21, i32 noundef 197, ptr noundef %4116, ptr noundef %4119, ptr noundef %4122, i32 noundef %4124) #9
  br label %4143

4126:                                             ; preds = %4104, %4097
  %4127 = load i32, ptr %92, align 4, !tbaa !5
  %4128 = call ptr @__errno_location() #10
  store i32 %4127, ptr %4128, align 4, !tbaa !5
  %4129 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4130 = load i32, ptr @test_count, align 4, !tbaa !5
  %4131 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4132 = load i32, ptr %4131, align 4, !tbaa !5
  %4133 = call ptr @s2n_strerror(i32 noundef %4132, ptr noundef @.str.24)
  %4134 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4135 = load i32, ptr %4134, align 4, !tbaa !5
  %4136 = call ptr @s2n_strerror_debug(i32 noundef %4135, ptr noundef @.str.24)
  %4137 = call ptr @__errno_location() #10
  %4138 = load i32, ptr %4137, align 4, !tbaa !5
  %4139 = call ptr @strerror(i32 noundef %4138) #9
  %4140 = call ptr @__errno_location() #10
  %4141 = load i32, ptr %4140, align 4, !tbaa !5
  %4142 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4129, ptr noundef @.str.25, i32 noundef %4130, ptr noundef @.str.55, ptr noundef @.str.21, i32 noundef 197, ptr noundef %4133, ptr noundef %4136, ptr noundef %4139, i32 noundef %4141) #9
  br label %4143

4143:                                             ; preds = %4126, %4109
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #9
  br label %4144

4144:                                             ; preds = %4143
  br label %4145

4145:                                             ; preds = %4144
  call void @exit(i32 noundef 1) #11
  unreachable

4146:                                             ; No predecessors!
  br label %4147

4147:                                             ; preds = %4146
  br label %4148

4148:                                             ; preds = %4147, %4086
  br label %4149

4149:                                             ; preds = %4148
  br label %4150

4150:                                             ; preds = %4149
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #9
  %4151 = call i32 @s2n_stuffer_free(ptr noundef %87)
  call void @llvm.lifetime.end.p0(i64 40, ptr %87) #9
  %4152 = call i32 @s2n_connection_ptr_free(ptr noundef %83)
  %4153 = getelementptr inbounds %struct.s2n_result, ptr %93, i32 0, i32 0
  store i32 %4152, ptr %4153, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %94) #9
  %4154 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %4154, ptr %94, align 8, !tbaa !9
  br label %4155

4155:                                             ; preds = %4150
  %4156 = load i32, ptr @test_count, align 4, !tbaa !5
  %4157 = add nsw i32 %4156, 1
  store i32 %4157, ptr @test_count, align 4, !tbaa !5
  %4158 = load ptr, ptr %94, align 8, !tbaa !9
  %4159 = icmp eq ptr %4158, null
  br i1 %4159, label %4160, label %4213

4160:                                             ; preds = %4155
  br label %4161

4161:                                             ; preds = %4160
  br label %4162

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

4169:                                             ; preds = %4162
  %4170 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4171 = call i32 @fileno(ptr noundef %4170) #9
  %4172 = call i32 @isatty(i32 noundef %4171) #9
  %4173 = icmp ne i32 %4172, 0
  br i1 %4173, label %4174, label %4191

4174:                                             ; preds = %4169
  %4175 = load i32, ptr %95, align 4, !tbaa !5
  %4176 = call ptr @__errno_location() #10
  store i32 %4175, ptr %4176, align 4, !tbaa !5
  %4177 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4178 = load i32, ptr @test_count, align 4, !tbaa !5
  %4179 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4180 = load i32, ptr %4179, align 4, !tbaa !5
  %4181 = call ptr @s2n_strerror(i32 noundef %4180, ptr noundef @.str.24)
  %4182 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4183 = load i32, ptr %4182, align 4, !tbaa !5
  %4184 = call ptr @s2n_strerror_debug(i32 noundef %4183, ptr noundef @.str.24)
  %4185 = call ptr @__errno_location() #10
  %4186 = load i32, ptr %4185, align 4, !tbaa !5
  %4187 = call ptr @strerror(i32 noundef %4186) #9
  %4188 = call ptr @__errno_location() #10
  %4189 = load i32, ptr %4188, align 4, !tbaa !5
  %4190 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4177, ptr noundef @.str.22, i32 noundef %4178, ptr noundef @.str.42, ptr noundef @.str.21, i32 noundef 204, ptr noundef %4181, ptr noundef %4184, ptr noundef %4187, i32 noundef %4189) #9
  br label %4208

4191:                                             ; preds = %4169, %4162
  %4192 = load i32, ptr %95, align 4, !tbaa !5
  %4193 = call ptr @__errno_location() #10
  store i32 %4192, ptr %4193, align 4, !tbaa !5
  %4194 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4195 = load i32, ptr @test_count, align 4, !tbaa !5
  %4196 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4197 = load i32, ptr %4196, align 4, !tbaa !5
  %4198 = call ptr @s2n_strerror(i32 noundef %4197, ptr noundef @.str.24)
  %4199 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4200 = load i32, ptr %4199, align 4, !tbaa !5
  %4201 = call ptr @s2n_strerror_debug(i32 noundef %4200, ptr noundef @.str.24)
  %4202 = call ptr @__errno_location() #10
  %4203 = load i32, ptr %4202, align 4, !tbaa !5
  %4204 = call ptr @strerror(i32 noundef %4203) #9
  %4205 = call ptr @__errno_location() #10
  %4206 = load i32, ptr %4205, align 4, !tbaa !5
  %4207 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4194, ptr noundef @.str.25, i32 noundef %4195, ptr noundef @.str.42, ptr noundef @.str.21, i32 noundef 204, ptr noundef %4198, ptr noundef %4201, ptr noundef %4204, i32 noundef %4206) #9
  br label %4208

4208:                                             ; preds = %4191, %4174
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #9
  br label %4209

4209:                                             ; preds = %4208
  br label %4210

4210:                                             ; preds = %4209
  call void @exit(i32 noundef 1) #11
  unreachable

4211:                                             ; No predecessors!
  br label %4212

4212:                                             ; preds = %4211
  br label %4213

4213:                                             ; preds = %4212, %4155
  br label %4214

4214:                                             ; preds = %4213
  br label %4215

4215:                                             ; preds = %4214
  br label %4216

4216:                                             ; preds = %4215
  %4217 = load i32, ptr @test_count, align 4, !tbaa !5
  %4218 = add nsw i32 %4217, 1
  store i32 %4218, ptr @test_count, align 4, !tbaa !5
  %4219 = load ptr, ptr %94, align 8, !tbaa !9
  %4220 = call i32 @s2n_connection_set_secrets(ptr noundef %4219)
  %4221 = getelementptr inbounds %struct.s2n_result, ptr %96, i32 0, i32 0
  store i32 %4220, ptr %4221, align 4
  %4222 = getelementptr inbounds %struct.s2n_result, ptr %96, i32 0, i32 0
  %4223 = load i32, ptr %4222, align 4
  %4224 = call zeroext i1 @s2n_result_is_ok(i32 %4223)
  br i1 %4224, label %4278, label %4225

4225:                                             ; preds = %4216
  br label %4226

4226:                                             ; preds = %4225
  br label %4227

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

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

4239:                                             ; preds = %4234
  %4240 = load i32, ptr %97, align 4, !tbaa !5
  %4241 = call ptr @__errno_location() #10
  store i32 %4240, ptr %4241, align 4, !tbaa !5
  %4242 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4243 = load i32, ptr @test_count, align 4, !tbaa !5
  %4244 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4245 = load i32, ptr %4244, align 4, !tbaa !5
  %4246 = call ptr @s2n_strerror(i32 noundef %4245, ptr noundef @.str.24)
  %4247 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4248 = load i32, ptr %4247, align 4, !tbaa !5
  %4249 = call ptr @s2n_strerror_debug(i32 noundef %4248, ptr noundef @.str.24)
  %4250 = call ptr @__errno_location() #10
  %4251 = load i32, ptr %4250, align 4, !tbaa !5
  %4252 = call ptr @strerror(i32 noundef %4251) #9
  %4253 = call ptr @__errno_location() #10
  %4254 = load i32, ptr %4253, align 4, !tbaa !5
  %4255 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4242, ptr noundef @.str.22, i32 noundef %4243, ptr noundef @.str.51, ptr noundef @.str.21, i32 noundef 205, ptr noundef %4246, ptr noundef %4249, ptr noundef %4252, i32 noundef %4254) #9
  br label %4273

4256:                                             ; preds = %4234, %4227
  %4257 = load i32, ptr %97, align 4, !tbaa !5
  %4258 = call ptr @__errno_location() #10
  store i32 %4257, ptr %4258, align 4, !tbaa !5
  %4259 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4260 = load i32, ptr @test_count, align 4, !tbaa !5
  %4261 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4262 = load i32, ptr %4261, align 4, !tbaa !5
  %4263 = call ptr @s2n_strerror(i32 noundef %4262, ptr noundef @.str.24)
  %4264 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4265 = load i32, ptr %4264, align 4, !tbaa !5
  %4266 = call ptr @s2n_strerror_debug(i32 noundef %4265, ptr noundef @.str.24)
  %4267 = call ptr @__errno_location() #10
  %4268 = load i32, ptr %4267, align 4, !tbaa !5
  %4269 = call ptr @strerror(i32 noundef %4268) #9
  %4270 = call ptr @__errno_location() #10
  %4271 = load i32, ptr %4270, align 4, !tbaa !5
  %4272 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4259, ptr noundef @.str.25, i32 noundef %4260, ptr noundef @.str.51, ptr noundef @.str.21, i32 noundef 205, ptr noundef %4263, ptr noundef %4266, ptr noundef %4269, i32 noundef %4271) #9
  br label %4273

4273:                                             ; preds = %4256, %4239
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #9
  br label %4274

4274:                                             ; preds = %4273
  br label %4275

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

4276:                                             ; No predecessors!
  br label %4277

4277:                                             ; preds = %4276
  br label %4278

4278:                                             ; preds = %4277, %4216
  br label %4279

4279:                                             ; preds = %4278
  br label %4280

4280:                                             ; preds = %4279
  %4281 = load ptr, ptr %94, align 8, !tbaa !9
  %4282 = getelementptr inbounds %struct.s2n_connection, ptr %4281, i32 0, i32 23
  store i8 34, ptr %4282, align 4, !tbaa !15
  %4283 = load ptr, ptr %94, align 8, !tbaa !9
  %4284 = getelementptr inbounds %struct.s2n_connection, ptr %4283, i32 0, i32 94
  call void @s2n_atomic_flag_clear(ptr noundef %4284)
  call void @llvm.lifetime.start.p0(i64 4, ptr %98) #9
  store i32 0, ptr %98, align 4, !tbaa !5
  br label %4285

4285:                                             ; preds = %4280
  %4286 = load i32, ptr @test_count, align 4, !tbaa !5
  %4287 = add nsw i32 %4286, 1
  store i32 %4287, ptr @test_count, align 4, !tbaa !5
  %4288 = load ptr, ptr %94, align 8, !tbaa !9
  %4289 = call i32 @s2n_post_handshake_send(ptr noundef %4288, ptr noundef %98)
  %4290 = icmp eq i32 %4289, -1
  br i1 %4290, label %4291, label %4344

4291:                                             ; preds = %4285
  br label %4292

4292:                                             ; preds = %4291
  br label %4293

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

4300:                                             ; preds = %4293
  %4301 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4302 = call i32 @fileno(ptr noundef %4301) #9
  %4303 = call i32 @isatty(i32 noundef %4302) #9
  %4304 = icmp ne i32 %4303, 0
  br i1 %4304, label %4305, label %4322

4305:                                             ; preds = %4300
  %4306 = load i32, ptr %99, align 4, !tbaa !5
  %4307 = call ptr @__errno_location() #10
  store i32 %4306, ptr %4307, align 4, !tbaa !5
  %4308 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4309 = load i32, ptr @test_count, align 4, !tbaa !5
  %4310 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4311 = load i32, ptr %4310, align 4, !tbaa !5
  %4312 = call ptr @s2n_strerror(i32 noundef %4311, ptr noundef @.str.24)
  %4313 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4314 = load i32, ptr %4313, align 4, !tbaa !5
  %4315 = call ptr @s2n_strerror_debug(i32 noundef %4314, ptr noundef @.str.24)
  %4316 = call ptr @__errno_location() #10
  %4317 = load i32, ptr %4316, align 4, !tbaa !5
  %4318 = call ptr @strerror(i32 noundef %4317) #9
  %4319 = call ptr @__errno_location() #10
  %4320 = load i32, ptr %4319, align 4, !tbaa !5
  %4321 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4308, ptr noundef @.str.22, i32 noundef %4309, ptr noundef @.str.54, ptr noundef @.str.21, i32 noundef 211, ptr noundef %4312, ptr noundef %4315, ptr noundef %4318, i32 noundef %4320) #9
  br label %4339

4322:                                             ; preds = %4300, %4293
  %4323 = load i32, ptr %99, align 4, !tbaa !5
  %4324 = call ptr @__errno_location() #10
  store i32 %4323, ptr %4324, align 4, !tbaa !5
  %4325 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4326 = load i32, ptr @test_count, align 4, !tbaa !5
  %4327 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4328 = load i32, ptr %4327, align 4, !tbaa !5
  %4329 = call ptr @s2n_strerror(i32 noundef %4328, ptr noundef @.str.24)
  %4330 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4331 = load i32, ptr %4330, align 4, !tbaa !5
  %4332 = call ptr @s2n_strerror_debug(i32 noundef %4331, ptr noundef @.str.24)
  %4333 = call ptr @__errno_location() #10
  %4334 = load i32, ptr %4333, align 4, !tbaa !5
  %4335 = call ptr @strerror(i32 noundef %4334) #9
  %4336 = call ptr @__errno_location() #10
  %4337 = load i32, ptr %4336, align 4, !tbaa !5
  %4338 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4325, ptr noundef @.str.25, i32 noundef %4326, ptr noundef @.str.54, ptr noundef @.str.21, i32 noundef 211, ptr noundef %4329, ptr noundef %4332, ptr noundef %4335, i32 noundef %4337) #9
  br label %4339

4339:                                             ; preds = %4322, %4305
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #9
  br label %4340

4340:                                             ; preds = %4339
  br label %4341

4341:                                             ; preds = %4340
  call void @exit(i32 noundef 1) #11
  unreachable

4342:                                             ; No predecessors!
  br label %4343

4343:                                             ; preds = %4342
  br label %4344

4344:                                             ; preds = %4343, %4285
  br label %4345

4345:                                             ; preds = %4344
  br label %4346

4346:                                             ; preds = %4345
  br label %4347

4347:                                             ; preds = %4346
  %4348 = load i32, ptr @test_count, align 4, !tbaa !5
  %4349 = add nsw i32 %4348, 1
  store i32 %4349, ptr @test_count, align 4, !tbaa !5
  %4350 = load ptr, ptr %94, align 8, !tbaa !9
  %4351 = getelementptr inbounds %struct.s2n_connection, ptr %4350, i32 0, i32 41
  %4352 = getelementptr inbounds %struct.s2n_stuffer, ptr %4351, i32 0, i32 2
  %4353 = load i32, ptr %4352, align 4, !tbaa !63
  %4354 = load ptr, ptr %94, align 8, !tbaa !9
  %4355 = getelementptr inbounds %struct.s2n_connection, ptr %4354, i32 0, i32 41
  %4356 = getelementptr inbounds %struct.s2n_stuffer, ptr %4355, i32 0, i32 1
  %4357 = load i32, ptr %4356, align 8, !tbaa !64
  %4358 = sub i32 %4353, %4357
  %4359 = icmp eq i32 %4358, 0
  br i1 %4359, label %4413, label %4360

4360:                                             ; preds = %4347
  br label %4361

4361:                                             ; preds = %4360
  br label %4362

4362:                                             ; preds = %4361
  call void @llvm.lifetime.start.p0(i64 4, ptr %100) #9
  %4363 = call ptr @__errno_location() #10
  %4364 = load i32, ptr %4363, align 4, !tbaa !5
  store i32 %4364, ptr %100, align 4, !tbaa !5
  %4365 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4366 = call i32 @s2n_print_stacktrace(ptr noundef %4365)
  %4367 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4368 = trunc i8 %4367 to i1
  br i1 %4368, label %4369, label %4391

4369:                                             ; preds = %4362
  %4370 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4371 = call i32 @fileno(ptr noundef %4370) #9
  %4372 = call i32 @isatty(i32 noundef %4371) #9
  %4373 = icmp ne i32 %4372, 0
  br i1 %4373, label %4374, label %4391

4374:                                             ; preds = %4369
  %4375 = load i32, ptr %100, align 4, !tbaa !5
  %4376 = call ptr @__errno_location() #10
  store i32 %4375, ptr %4376, align 4, !tbaa !5
  %4377 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4378 = load i32, ptr @test_count, align 4, !tbaa !5
  %4379 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4380 = load i32, ptr %4379, align 4, !tbaa !5
  %4381 = call ptr @s2n_strerror(i32 noundef %4380, ptr noundef @.str.24)
  %4382 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4383 = load i32, ptr %4382, align 4, !tbaa !5
  %4384 = call ptr @s2n_strerror_debug(i32 noundef %4383, ptr noundef @.str.24)
  %4385 = call ptr @__errno_location() #10
  %4386 = load i32, ptr %4385, align 4, !tbaa !5
  %4387 = call ptr @strerror(i32 noundef %4386) #9
  %4388 = call ptr @__errno_location() #10
  %4389 = load i32, ptr %4388, align 4, !tbaa !5
  %4390 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4377, ptr noundef @.str.22, i32 noundef %4378, ptr noundef @.str.56, ptr noundef @.str.21, i32 noundef 213, ptr noundef %4381, ptr noundef %4384, ptr noundef %4387, i32 noundef %4389) #9
  br label %4408

4391:                                             ; preds = %4369, %4362
  %4392 = load i32, ptr %100, align 4, !tbaa !5
  %4393 = call ptr @__errno_location() #10
  store i32 %4392, ptr %4393, align 4, !tbaa !5
  %4394 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4395 = load i32, ptr @test_count, align 4, !tbaa !5
  %4396 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4397 = load i32, ptr %4396, align 4, !tbaa !5
  %4398 = call ptr @s2n_strerror(i32 noundef %4397, ptr noundef @.str.24)
  %4399 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4400 = load i32, ptr %4399, align 4, !tbaa !5
  %4401 = call ptr @s2n_strerror_debug(i32 noundef %4400, ptr noundef @.str.24)
  %4402 = call ptr @__errno_location() #10
  %4403 = load i32, ptr %4402, align 4, !tbaa !5
  %4404 = call ptr @strerror(i32 noundef %4403) #9
  %4405 = call ptr @__errno_location() #10
  %4406 = load i32, ptr %4405, align 4, !tbaa !5
  %4407 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4394, ptr noundef @.str.25, i32 noundef %4395, ptr noundef @.str.56, ptr noundef @.str.21, i32 noundef 213, ptr noundef %4398, ptr noundef %4401, ptr noundef %4404, i32 noundef %4406) #9
  br label %4408

4408:                                             ; preds = %4391, %4374
  call void @llvm.lifetime.end.p0(i64 4, ptr %100) #9
  br label %4409

4409:                                             ; preds = %4408
  br label %4410

4410:                                             ; preds = %4409
  call void @exit(i32 noundef 1) #11
  unreachable

4411:                                             ; No predecessors!
  br label %4412

4412:                                             ; preds = %4411
  br label %4413

4413:                                             ; preds = %4412, %4347
  br label %4414

4414:                                             ; preds = %4413
  br label %4415

4415:                                             ; preds = %4414
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #9
  %4416 = call i32 @s2n_connection_ptr_free(ptr noundef %94)
  %4417 = getelementptr inbounds %struct.s2n_result, ptr %101, i32 0, i32 0
  store i32 %4416, ptr %4417, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %94) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %102) #9
  %4418 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %4418, ptr %102, align 8, !tbaa !9
  br label %4419

4419:                                             ; preds = %4415
  %4420 = load i32, ptr @test_count, align 4, !tbaa !5
  %4421 = add nsw i32 %4420, 1
  store i32 %4421, ptr @test_count, align 4, !tbaa !5
  %4422 = load ptr, ptr %102, align 8, !tbaa !9
  %4423 = icmp eq ptr %4422, null
  br i1 %4423, label %4424, label %4477

4424:                                             ; preds = %4419
  br label %4425

4425:                                             ; preds = %4424
  br label %4426

4426:                                             ; preds = %4425
  call void @llvm.lifetime.start.p0(i64 4, ptr %103) #9
  %4427 = call ptr @__errno_location() #10
  %4428 = load i32, ptr %4427, align 4, !tbaa !5
  store i32 %4428, ptr %103, align 4, !tbaa !5
  %4429 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4430 = call i32 @s2n_print_stacktrace(ptr noundef %4429)
  %4431 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4432 = trunc i8 %4431 to i1
  br i1 %4432, label %4433, label %4455

4433:                                             ; preds = %4426
  %4434 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4435 = call i32 @fileno(ptr noundef %4434) #9
  %4436 = call i32 @isatty(i32 noundef %4435) #9
  %4437 = icmp ne i32 %4436, 0
  br i1 %4437, label %4438, label %4455

4438:                                             ; preds = %4433
  %4439 = load i32, ptr %103, align 4, !tbaa !5
  %4440 = call ptr @__errno_location() #10
  store i32 %4439, ptr %4440, align 4, !tbaa !5
  %4441 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4442 = load i32, ptr @test_count, align 4, !tbaa !5
  %4443 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4444 = load i32, ptr %4443, align 4, !tbaa !5
  %4445 = call ptr @s2n_strerror(i32 noundef %4444, ptr noundef @.str.24)
  %4446 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4447 = load i32, ptr %4446, align 4, !tbaa !5
  %4448 = call ptr @s2n_strerror_debug(i32 noundef %4447, ptr noundef @.str.24)
  %4449 = call ptr @__errno_location() #10
  %4450 = load i32, ptr %4449, align 4, !tbaa !5
  %4451 = call ptr @strerror(i32 noundef %4450) #9
  %4452 = call ptr @__errno_location() #10
  %4453 = load i32, ptr %4452, align 4, !tbaa !5
  %4454 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4441, ptr noundef @.str.22, i32 noundef %4442, ptr noundef @.str.42, ptr noundef @.str.21, i32 noundef 220, ptr noundef %4445, ptr noundef %4448, ptr noundef %4451, i32 noundef %4453) #9
  br label %4472

4455:                                             ; preds = %4433, %4426
  %4456 = load i32, ptr %103, align 4, !tbaa !5
  %4457 = call ptr @__errno_location() #10
  store i32 %4456, ptr %4457, align 4, !tbaa !5
  %4458 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4459 = load i32, ptr @test_count, align 4, !tbaa !5
  %4460 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4461 = load i32, ptr %4460, align 4, !tbaa !5
  %4462 = call ptr @s2n_strerror(i32 noundef %4461, ptr noundef @.str.24)
  %4463 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4464 = load i32, ptr %4463, align 4, !tbaa !5
  %4465 = call ptr @s2n_strerror_debug(i32 noundef %4464, ptr noundef @.str.24)
  %4466 = call ptr @__errno_location() #10
  %4467 = load i32, ptr %4466, align 4, !tbaa !5
  %4468 = call ptr @strerror(i32 noundef %4467) #9
  %4469 = call ptr @__errno_location() #10
  %4470 = load i32, ptr %4469, align 4, !tbaa !5
  %4471 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4458, ptr noundef @.str.25, i32 noundef %4459, ptr noundef @.str.42, ptr noundef @.str.21, i32 noundef 220, ptr noundef %4462, ptr noundef %4465, ptr noundef %4468, i32 noundef %4470) #9
  br label %4472

4472:                                             ; preds = %4455, %4438
  call void @llvm.lifetime.end.p0(i64 4, ptr %103) #9
  br label %4473

4473:                                             ; preds = %4472
  br label %4474

4474:                                             ; preds = %4473
  call void @exit(i32 noundef 1) #11
  unreachable

4475:                                             ; No predecessors!
  br label %4476

4476:                                             ; preds = %4475
  br label %4477

4477:                                             ; preds = %4476, %4419
  br label %4478

4478:                                             ; preds = %4477
  br label %4479

4479:                                             ; preds = %4478
  br label %4480

4480:                                             ; preds = %4479
  %4481 = load i32, ptr @test_count, align 4, !tbaa !5
  %4482 = add nsw i32 %4481, 1
  store i32 %4482, ptr @test_count, align 4, !tbaa !5
  %4483 = load ptr, ptr %102, align 8, !tbaa !9
  %4484 = call i32 @s2n_connection_set_secrets(ptr noundef %4483)
  %4485 = getelementptr inbounds %struct.s2n_result, ptr %104, i32 0, i32 0
  store i32 %4484, ptr %4485, align 4
  %4486 = getelementptr inbounds %struct.s2n_result, ptr %104, i32 0, i32 0
  %4487 = load i32, ptr %4486, align 4
  %4488 = call zeroext i1 @s2n_result_is_ok(i32 %4487)
  br i1 %4488, label %4542, label %4489

4489:                                             ; preds = %4480
  br label %4490

4490:                                             ; preds = %4489
  br label %4491

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

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

4503:                                             ; preds = %4498
  %4504 = load i32, ptr %105, align 4, !tbaa !5
  %4505 = call ptr @__errno_location() #10
  store i32 %4504, ptr %4505, align 4, !tbaa !5
  %4506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4507 = load i32, ptr @test_count, align 4, !tbaa !5
  %4508 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4509 = load i32, ptr %4508, align 4, !tbaa !5
  %4510 = call ptr @s2n_strerror(i32 noundef %4509, ptr noundef @.str.24)
  %4511 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4512 = load i32, ptr %4511, align 4, !tbaa !5
  %4513 = call ptr @s2n_strerror_debug(i32 noundef %4512, ptr noundef @.str.24)
  %4514 = call ptr @__errno_location() #10
  %4515 = load i32, ptr %4514, align 4, !tbaa !5
  %4516 = call ptr @strerror(i32 noundef %4515) #9
  %4517 = call ptr @__errno_location() #10
  %4518 = load i32, ptr %4517, align 4, !tbaa !5
  %4519 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4506, ptr noundef @.str.22, i32 noundef %4507, ptr noundef @.str.51, ptr noundef @.str.21, i32 noundef 221, ptr noundef %4510, ptr noundef %4513, ptr noundef %4516, i32 noundef %4518) #9
  br label %4537

4520:                                             ; preds = %4498, %4491
  %4521 = load i32, ptr %105, align 4, !tbaa !5
  %4522 = call ptr @__errno_location() #10
  store i32 %4521, ptr %4522, align 4, !tbaa !5
  %4523 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4524 = load i32, ptr @test_count, align 4, !tbaa !5
  %4525 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4526 = load i32, ptr %4525, align 4, !tbaa !5
  %4527 = call ptr @s2n_strerror(i32 noundef %4526, ptr noundef @.str.24)
  %4528 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4529 = load i32, ptr %4528, align 4, !tbaa !5
  %4530 = call ptr @s2n_strerror_debug(i32 noundef %4529, ptr noundef @.str.24)
  %4531 = call ptr @__errno_location() #10
  %4532 = load i32, ptr %4531, align 4, !tbaa !5
  %4533 = call ptr @strerror(i32 noundef %4532) #9
  %4534 = call ptr @__errno_location() #10
  %4535 = load i32, ptr %4534, align 4, !tbaa !5
  %4536 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4523, ptr noundef @.str.25, i32 noundef %4524, ptr noundef @.str.51, ptr noundef @.str.21, i32 noundef 221, ptr noundef %4527, ptr noundef %4530, ptr noundef %4533, i32 noundef %4535) #9
  br label %4537

4537:                                             ; preds = %4520, %4503
  call void @llvm.lifetime.end.p0(i64 4, ptr %105) #9
  br label %4538

4538:                                             ; preds = %4537
  br label %4539

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

4540:                                             ; No predecessors!
  br label %4541

4541:                                             ; preds = %4540
  br label %4542

4542:                                             ; preds = %4541, %4480
  br label %4543

4543:                                             ; preds = %4542
  br label %4544

4544:                                             ; preds = %4543
  %4545 = load ptr, ptr %102, align 8, !tbaa !9
  %4546 = getelementptr inbounds %struct.s2n_connection, ptr %4545, i32 0, i32 23
  store i8 33, ptr %4546, align 4, !tbaa !15
  %4547 = load ptr, ptr %102, align 8, !tbaa !9
  %4548 = getelementptr inbounds %struct.s2n_connection, ptr %4547, i32 0, i32 94
  call void @s2n_atomic_flag_set(ptr noundef %4548)
  call void @llvm.lifetime.start.p0(i64 4, ptr %106) #9
  store i32 0, ptr %106, align 4, !tbaa !5
  br label %4549

4549:                                             ; preds = %4544
  %4550 = load i32, ptr @test_count, align 4, !tbaa !5
  %4551 = add nsw i32 %4550, 1
  store i32 %4551, ptr @test_count, align 4, !tbaa !5
  %4552 = load ptr, ptr %102, align 8, !tbaa !9
  %4553 = call i32 @s2n_post_handshake_send(ptr noundef %4552, ptr noundef %106)
  %4554 = icmp eq i32 %4553, -1
  br i1 %4554, label %4555, label %4608

4555:                                             ; preds = %4549
  br label %4556

4556:                                             ; preds = %4555
  br label %4557

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

4564:                                             ; preds = %4557
  %4565 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4566 = call i32 @fileno(ptr noundef %4565) #9
  %4567 = call i32 @isatty(i32 noundef %4566) #9
  %4568 = icmp ne i32 %4567, 0
  br i1 %4568, label %4569, label %4586

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

4586:                                             ; preds = %4564, %4557
  %4587 = load i32, ptr %107, align 4, !tbaa !5
  %4588 = call ptr @__errno_location() #10
  store i32 %4587, ptr %4588, align 4, !tbaa !5
  %4589 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4590 = load i32, ptr @test_count, align 4, !tbaa !5
  %4591 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4592 = load i32, ptr %4591, align 4, !tbaa !5
  %4593 = call ptr @s2n_strerror(i32 noundef %4592, ptr noundef @.str.24)
  %4594 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4595 = load i32, ptr %4594, align 4, !tbaa !5
  %4596 = call ptr @s2n_strerror_debug(i32 noundef %4595, ptr noundef @.str.24)
  %4597 = call ptr @__errno_location() #10
  %4598 = load i32, ptr %4597, align 4, !tbaa !5
  %4599 = call ptr @strerror(i32 noundef %4598) #9
  %4600 = call ptr @__errno_location() #10
  %4601 = load i32, ptr %4600, align 4, !tbaa !5
  %4602 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4589, ptr noundef @.str.25, i32 noundef %4590, ptr noundef @.str.54, ptr noundef @.str.21, i32 noundef 227, ptr noundef %4593, ptr noundef %4596, ptr noundef %4599, i32 noundef %4601) #9
  br label %4603

4603:                                             ; preds = %4586, %4569
  call void @llvm.lifetime.end.p0(i64 4, ptr %107) #9
  br label %4604

4604:                                             ; preds = %4603
  br label %4605

4605:                                             ; preds = %4604
  call void @exit(i32 noundef 1) #11
  unreachable

4606:                                             ; No predecessors!
  br label %4607

4607:                                             ; preds = %4606
  br label %4608

4608:                                             ; preds = %4607, %4549
  br label %4609

4609:                                             ; preds = %4608
  br label %4610

4610:                                             ; preds = %4609
  br label %4611

4611:                                             ; preds = %4610
  %4612 = load i32, ptr @test_count, align 4, !tbaa !5
  %4613 = add nsw i32 %4612, 1
  store i32 %4613, ptr @test_count, align 4, !tbaa !5
  %4614 = load ptr, ptr %102, align 8, !tbaa !9
  %4615 = getelementptr inbounds %struct.s2n_connection, ptr %4614, i32 0, i32 94
  %4616 = call zeroext i1 @s2n_atomic_flag_test(ptr noundef %4615)
  br i1 %4616, label %4670, label %4617

4617:                                             ; preds = %4611
  br label %4618

4618:                                             ; preds = %4617
  br label %4619

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

4626:                                             ; preds = %4619
  %4627 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4628 = call i32 @fileno(ptr noundef %4627) #9
  %4629 = call i32 @isatty(i32 noundef %4628) #9
  %4630 = icmp ne i32 %4629, 0
  br i1 %4630, label %4631, label %4648

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

4648:                                             ; preds = %4626, %4619
  %4649 = load i32, ptr %108, align 4, !tbaa !5
  %4650 = call ptr @__errno_location() #10
  store i32 %4649, ptr %4650, align 4, !tbaa !5
  %4651 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4652 = load i32, ptr @test_count, align 4, !tbaa !5
  %4653 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4654 = load i32, ptr %4653, align 4, !tbaa !5
  %4655 = call ptr @s2n_strerror(i32 noundef %4654, ptr noundef @.str.24)
  %4656 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4657 = load i32, ptr %4656, align 4, !tbaa !5
  %4658 = call ptr @s2n_strerror_debug(i32 noundef %4657, ptr noundef @.str.24)
  %4659 = call ptr @__errno_location() #10
  %4660 = load i32, ptr %4659, align 4, !tbaa !5
  %4661 = call ptr @strerror(i32 noundef %4660) #9
  %4662 = call ptr @__errno_location() #10
  %4663 = load i32, ptr %4662, align 4, !tbaa !5
  %4664 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4651, ptr noundef @.str.25, i32 noundef %4652, ptr noundef @.str.34, ptr noundef @.str.21, i32 noundef 229, ptr noundef %4655, ptr noundef %4658, ptr noundef %4661, i32 noundef %4663) #9
  br label %4665

4665:                                             ; preds = %4648, %4631
  call void @llvm.lifetime.end.p0(i64 4, ptr %108) #9
  br label %4666

4666:                                             ; preds = %4665
  br label %4667

4667:                                             ; preds = %4666
  call void @exit(i32 noundef 1) #11
  unreachable

4668:                                             ; No predecessors!
  br label %4669

4669:                                             ; preds = %4668
  br label %4670

4670:                                             ; preds = %4669, %4611
  br label %4671

4671:                                             ; preds = %4670
  br label %4672

4672:                                             ; preds = %4671
  br label %4673

4673:                                             ; preds = %4672
  %4674 = load i32, ptr @test_count, align 4, !tbaa !5
  %4675 = add nsw i32 %4674, 1
  store i32 %4675, ptr @test_count, align 4, !tbaa !5
  %4676 = load ptr, ptr %102, align 8, !tbaa !9
  %4677 = getelementptr inbounds %struct.s2n_connection, ptr %4676, i32 0, i32 41
  %4678 = getelementptr inbounds %struct.s2n_stuffer, ptr %4677, i32 0, i32 2
  %4679 = load i32, ptr %4678, align 4, !tbaa !63
  %4680 = load ptr, ptr %102, align 8, !tbaa !9
  %4681 = getelementptr inbounds %struct.s2n_connection, ptr %4680, i32 0, i32 41
  %4682 = getelementptr inbounds %struct.s2n_stuffer, ptr %4681, i32 0, i32 1
  %4683 = load i32, ptr %4682, align 8, !tbaa !64
  %4684 = sub i32 %4679, %4683
  %4685 = icmp eq i32 %4684, 0
  br i1 %4685, label %4739, label %4686

4686:                                             ; preds = %4673
  br label %4687

4687:                                             ; preds = %4686
  br label %4688

4688:                                             ; preds = %4687
  call void @llvm.lifetime.start.p0(i64 4, ptr %109) #9
  %4689 = call ptr @__errno_location() #10
  %4690 = load i32, ptr %4689, align 4, !tbaa !5
  store i32 %4690, ptr %109, align 4, !tbaa !5
  %4691 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4692 = call i32 @s2n_print_stacktrace(ptr noundef %4691)
  %4693 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4694 = trunc i8 %4693 to i1
  br i1 %4694, label %4695, label %4717

4695:                                             ; preds = %4688
  %4696 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4697 = call i32 @fileno(ptr noundef %4696) #9
  %4698 = call i32 @isatty(i32 noundef %4697) #9
  %4699 = icmp ne i32 %4698, 0
  br i1 %4699, label %4700, label %4717

4700:                                             ; preds = %4695
  %4701 = load i32, ptr %109, align 4, !tbaa !5
  %4702 = call ptr @__errno_location() #10
  store i32 %4701, ptr %4702, align 4, !tbaa !5
  %4703 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4704 = load i32, ptr @test_count, align 4, !tbaa !5
  %4705 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4706 = load i32, ptr %4705, align 4, !tbaa !5
  %4707 = call ptr @s2n_strerror(i32 noundef %4706, ptr noundef @.str.24)
  %4708 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4709 = load i32, ptr %4708, align 4, !tbaa !5
  %4710 = call ptr @s2n_strerror_debug(i32 noundef %4709, ptr noundef @.str.24)
  %4711 = call ptr @__errno_location() #10
  %4712 = load i32, ptr %4711, align 4, !tbaa !5
  %4713 = call ptr @strerror(i32 noundef %4712) #9
  %4714 = call ptr @__errno_location() #10
  %4715 = load i32, ptr %4714, align 4, !tbaa !5
  %4716 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4703, ptr noundef @.str.22, i32 noundef %4704, ptr noundef @.str.56, ptr noundef @.str.21, i32 noundef 230, ptr noundef %4707, ptr noundef %4710, ptr noundef %4713, i32 noundef %4715) #9
  br label %4734

4717:                                             ; preds = %4695, %4688
  %4718 = load i32, ptr %109, align 4, !tbaa !5
  %4719 = call ptr @__errno_location() #10
  store i32 %4718, ptr %4719, align 4, !tbaa !5
  %4720 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4721 = load i32, ptr @test_count, align 4, !tbaa !5
  %4722 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4723 = load i32, ptr %4722, align 4, !tbaa !5
  %4724 = call ptr @s2n_strerror(i32 noundef %4723, ptr noundef @.str.24)
  %4725 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4726 = load i32, ptr %4725, align 4, !tbaa !5
  %4727 = call ptr @s2n_strerror_debug(i32 noundef %4726, ptr noundef @.str.24)
  %4728 = call ptr @__errno_location() #10
  %4729 = load i32, ptr %4728, align 4, !tbaa !5
  %4730 = call ptr @strerror(i32 noundef %4729) #9
  %4731 = call ptr @__errno_location() #10
  %4732 = load i32, ptr %4731, align 4, !tbaa !5
  %4733 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4720, ptr noundef @.str.25, i32 noundef %4721, ptr noundef @.str.56, ptr noundef @.str.21, i32 noundef 230, ptr noundef %4724, ptr noundef %4727, ptr noundef %4730, i32 noundef %4732) #9
  br label %4734

4734:                                             ; preds = %4717, %4700
  call void @llvm.lifetime.end.p0(i64 4, ptr %109) #9
  br label %4735

4735:                                             ; preds = %4734
  br label %4736

4736:                                             ; preds = %4735
  call void @exit(i32 noundef 1) #11
  unreachable

4737:                                             ; No predecessors!
  br label %4738

4738:                                             ; preds = %4737
  br label %4739

4739:                                             ; preds = %4738, %4673
  br label %4740

4740:                                             ; preds = %4739
  br label %4741

4741:                                             ; preds = %4740
  call void @llvm.lifetime.end.p0(i64 4, ptr %106) #9
  %4742 = call i32 @s2n_connection_ptr_free(ptr noundef %102)
  %4743 = getelementptr inbounds %struct.s2n_result, ptr %110, i32 0, i32 0
  store i32 %4742, ptr %4743, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %102) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %111) #9
  %4744 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %4744, ptr %111, align 8, !tbaa !9
  br label %4745

4745:                                             ; preds = %4741
  %4746 = load i32, ptr @test_count, align 4, !tbaa !5
  %4747 = add nsw i32 %4746, 1
  store i32 %4747, ptr @test_count, align 4, !tbaa !5
  %4748 = load ptr, ptr %111, align 8, !tbaa !9
  %4749 = icmp eq ptr %4748, null
  br i1 %4749, label %4750, label %4803

4750:                                             ; preds = %4745
  br label %4751

4751:                                             ; preds = %4750
  br label %4752

4752:                                             ; preds = %4751
  call void @llvm.lifetime.start.p0(i64 4, ptr %112) #9
  %4753 = call ptr @__errno_location() #10
  %4754 = load i32, ptr %4753, align 4, !tbaa !5
  store i32 %4754, ptr %112, align 4, !tbaa !5
  %4755 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4756 = call i32 @s2n_print_stacktrace(ptr noundef %4755)
  %4757 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4758 = trunc i8 %4757 to i1
  br i1 %4758, label %4759, label %4781

4759:                                             ; preds = %4752
  %4760 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4761 = call i32 @fileno(ptr noundef %4760) #9
  %4762 = call i32 @isatty(i32 noundef %4761) #9
  %4763 = icmp ne i32 %4762, 0
  br i1 %4763, label %4764, label %4781

4764:                                             ; preds = %4759
  %4765 = load i32, ptr %112, align 4, !tbaa !5
  %4766 = call ptr @__errno_location() #10
  store i32 %4765, ptr %4766, align 4, !tbaa !5
  %4767 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4768 = load i32, ptr @test_count, align 4, !tbaa !5
  %4769 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4770 = load i32, ptr %4769, align 4, !tbaa !5
  %4771 = call ptr @s2n_strerror(i32 noundef %4770, ptr noundef @.str.24)
  %4772 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4773 = load i32, ptr %4772, align 4, !tbaa !5
  %4774 = call ptr @s2n_strerror_debug(i32 noundef %4773, ptr noundef @.str.24)
  %4775 = call ptr @__errno_location() #10
  %4776 = load i32, ptr %4775, align 4, !tbaa !5
  %4777 = call ptr @strerror(i32 noundef %4776) #9
  %4778 = call ptr @__errno_location() #10
  %4779 = load i32, ptr %4778, align 4, !tbaa !5
  %4780 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4767, ptr noundef @.str.22, i32 noundef %4768, ptr noundef @.str.57, ptr noundef @.str.21, i32 noundef 237, ptr noundef %4771, ptr noundef %4774, ptr noundef %4777, i32 noundef %4779) #9
  br label %4798

4781:                                             ; preds = %4759, %4752
  %4782 = load i32, ptr %112, align 4, !tbaa !5
  %4783 = call ptr @__errno_location() #10
  store i32 %4782, ptr %4783, align 4, !tbaa !5
  %4784 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4785 = load i32, ptr @test_count, align 4, !tbaa !5
  %4786 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4787 = load i32, ptr %4786, align 4, !tbaa !5
  %4788 = call ptr @s2n_strerror(i32 noundef %4787, ptr noundef @.str.24)
  %4789 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4790 = load i32, ptr %4789, align 4, !tbaa !5
  %4791 = call ptr @s2n_strerror_debug(i32 noundef %4790, ptr noundef @.str.24)
  %4792 = call ptr @__errno_location() #10
  %4793 = load i32, ptr %4792, align 4, !tbaa !5
  %4794 = call ptr @strerror(i32 noundef %4793) #9
  %4795 = call ptr @__errno_location() #10
  %4796 = load i32, ptr %4795, align 4, !tbaa !5
  %4797 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4784, ptr noundef @.str.25, i32 noundef %4785, ptr noundef @.str.57, ptr noundef @.str.21, i32 noundef 237, ptr noundef %4788, ptr noundef %4791, ptr noundef %4794, i32 noundef %4796) #9
  br label %4798

4798:                                             ; preds = %4781, %4764
  call void @llvm.lifetime.end.p0(i64 4, ptr %112) #9
  br label %4799

4799:                                             ; preds = %4798
  br label %4800

4800:                                             ; preds = %4799
  call void @exit(i32 noundef 1) #11
  unreachable

4801:                                             ; No predecessors!
  br label %4802

4802:                                             ; preds = %4801
  br label %4803

4803:                                             ; preds = %4802, %4745
  br label %4804

4804:                                             ; preds = %4803
  br label %4805

4805:                                             ; preds = %4804
  br label %4806

4806:                                             ; preds = %4805
  %4807 = load i32, ptr @test_count, align 4, !tbaa !5
  %4808 = add nsw i32 %4807, 1
  store i32 %4808, ptr @test_count, align 4, !tbaa !5
  %4809 = load ptr, ptr %111, align 8, !tbaa !9
  %4810 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %4809, ptr noundef @.str.58)
  %4811 = icmp eq i32 %4810, -1
  br i1 %4811, label %4812, label %4865

4812:                                             ; preds = %4806
  br label %4813

4813:                                             ; preds = %4812
  br label %4814

4814:                                             ; preds = %4813
  call void @llvm.lifetime.start.p0(i64 4, ptr %113) #9
  %4815 = call ptr @__errno_location() #10
  %4816 = load i32, ptr %4815, align 4, !tbaa !5
  store i32 %4816, ptr %113, align 4, !tbaa !5
  %4817 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4818 = call i32 @s2n_print_stacktrace(ptr noundef %4817)
  %4819 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4820 = trunc i8 %4819 to i1
  br i1 %4820, label %4821, label %4843

4821:                                             ; preds = %4814
  %4822 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4823 = call i32 @fileno(ptr noundef %4822) #9
  %4824 = call i32 @isatty(i32 noundef %4823) #9
  %4825 = icmp ne i32 %4824, 0
  br i1 %4825, label %4826, label %4843

4826:                                             ; preds = %4821
  %4827 = load i32, ptr %113, align 4, !tbaa !5
  %4828 = call ptr @__errno_location() #10
  store i32 %4827, ptr %4828, align 4, !tbaa !5
  %4829 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4830 = load i32, ptr @test_count, align 4, !tbaa !5
  %4831 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4832 = load i32, ptr %4831, align 4, !tbaa !5
  %4833 = call ptr @s2n_strerror(i32 noundef %4832, ptr noundef @.str.24)
  %4834 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4835 = load i32, ptr %4834, align 4, !tbaa !5
  %4836 = call ptr @s2n_strerror_debug(i32 noundef %4835, ptr noundef @.str.24)
  %4837 = call ptr @__errno_location() #10
  %4838 = load i32, ptr %4837, align 4, !tbaa !5
  %4839 = call ptr @strerror(i32 noundef %4838) #9
  %4840 = call ptr @__errno_location() #10
  %4841 = load i32, ptr %4840, align 4, !tbaa !5
  %4842 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4829, ptr noundef @.str.22, i32 noundef %4830, ptr noundef @.str.59, ptr noundef @.str.21, i32 noundef 238, ptr noundef %4833, ptr noundef %4836, ptr noundef %4839, i32 noundef %4841) #9
  br label %4860

4843:                                             ; preds = %4821, %4814
  %4844 = load i32, ptr %113, align 4, !tbaa !5
  %4845 = call ptr @__errno_location() #10
  store i32 %4844, ptr %4845, align 4, !tbaa !5
  %4846 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4847 = load i32, ptr @test_count, align 4, !tbaa !5
  %4848 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4849 = load i32, ptr %4848, align 4, !tbaa !5
  %4850 = call ptr @s2n_strerror(i32 noundef %4849, ptr noundef @.str.24)
  %4851 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4852 = load i32, ptr %4851, align 4, !tbaa !5
  %4853 = call ptr @s2n_strerror_debug(i32 noundef %4852, ptr noundef @.str.24)
  %4854 = call ptr @__errno_location() #10
  %4855 = load i32, ptr %4854, align 4, !tbaa !5
  %4856 = call ptr @strerror(i32 noundef %4855) #9
  %4857 = call ptr @__errno_location() #10
  %4858 = load i32, ptr %4857, align 4, !tbaa !5
  %4859 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4846, ptr noundef @.str.25, i32 noundef %4847, ptr noundef @.str.59, ptr noundef @.str.21, i32 noundef 238, ptr noundef %4850, ptr noundef %4853, ptr noundef %4856, i32 noundef %4858) #9
  br label %4860

4860:                                             ; preds = %4843, %4826
  call void @llvm.lifetime.end.p0(i64 4, ptr %113) #9
  br label %4861

4861:                                             ; preds = %4860
  br label %4862

4862:                                             ; preds = %4861
  call void @exit(i32 noundef 1) #11
  unreachable

4863:                                             ; No predecessors!
  br label %4864

4864:                                             ; preds = %4863
  br label %4865

4865:                                             ; preds = %4864, %4806
  br label %4866

4866:                                             ; preds = %4865
  br label %4867

4867:                                             ; preds = %4866
  call void @llvm.lifetime.start.p0(i64 8, ptr %114) #9
  %4868 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %4868, ptr %114, align 8, !tbaa !9
  br label %4869

4869:                                             ; preds = %4867
  %4870 = load i32, ptr @test_count, align 4, !tbaa !5
  %4871 = add nsw i32 %4870, 1
  store i32 %4871, ptr @test_count, align 4, !tbaa !5
  %4872 = load ptr, ptr %114, align 8, !tbaa !9
  %4873 = icmp eq ptr %4872, null
  br i1 %4873, label %4874, label %4927

4874:                                             ; preds = %4869
  br label %4875

4875:                                             ; preds = %4874
  br label %4876

4876:                                             ; preds = %4875
  call void @llvm.lifetime.start.p0(i64 4, ptr %115) #9
  %4877 = call ptr @__errno_location() #10
  %4878 = load i32, ptr %4877, align 4, !tbaa !5
  store i32 %4878, ptr %115, align 4, !tbaa !5
  %4879 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4880 = call i32 @s2n_print_stacktrace(ptr noundef %4879)
  %4881 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4882 = trunc i8 %4881 to i1
  br i1 %4882, label %4883, label %4905

4883:                                             ; preds = %4876
  %4884 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4885 = call i32 @fileno(ptr noundef %4884) #9
  %4886 = call i32 @isatty(i32 noundef %4885) #9
  %4887 = icmp ne i32 %4886, 0
  br i1 %4887, label %4888, label %4905

4888:                                             ; preds = %4883
  %4889 = load i32, ptr %115, align 4, !tbaa !5
  %4890 = call ptr @__errno_location() #10
  store i32 %4889, ptr %4890, align 4, !tbaa !5
  %4891 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4892 = load i32, ptr @test_count, align 4, !tbaa !5
  %4893 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4894 = load i32, ptr %4893, align 4, !tbaa !5
  %4895 = call ptr @s2n_strerror(i32 noundef %4894, ptr noundef @.str.24)
  %4896 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4897 = load i32, ptr %4896, align 4, !tbaa !5
  %4898 = call ptr @s2n_strerror_debug(i32 noundef %4897, ptr noundef @.str.24)
  %4899 = call ptr @__errno_location() #10
  %4900 = load i32, ptr %4899, align 4, !tbaa !5
  %4901 = call ptr @strerror(i32 noundef %4900) #9
  %4902 = call ptr @__errno_location() #10
  %4903 = load i32, ptr %4902, align 4, !tbaa !5
  %4904 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4891, ptr noundef @.str.22, i32 noundef %4892, ptr noundef @.str.60, ptr noundef @.str.21, i32 noundef 241, ptr noundef %4895, ptr noundef %4898, ptr noundef %4901, i32 noundef %4903) #9
  br label %4922

4905:                                             ; preds = %4883, %4876
  %4906 = load i32, ptr %115, align 4, !tbaa !5
  %4907 = call ptr @__errno_location() #10
  store i32 %4906, ptr %4907, align 4, !tbaa !5
  %4908 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4909 = load i32, ptr @test_count, align 4, !tbaa !5
  %4910 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4911 = load i32, ptr %4910, align 4, !tbaa !5
  %4912 = call ptr @s2n_strerror(i32 noundef %4911, ptr noundef @.str.24)
  %4913 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4914 = load i32, ptr %4913, align 4, !tbaa !5
  %4915 = call ptr @s2n_strerror_debug(i32 noundef %4914, ptr noundef @.str.24)
  %4916 = call ptr @__errno_location() #10
  %4917 = load i32, ptr %4916, align 4, !tbaa !5
  %4918 = call ptr @strerror(i32 noundef %4917) #9
  %4919 = call ptr @__errno_location() #10
  %4920 = load i32, ptr %4919, align 4, !tbaa !5
  %4921 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4908, ptr noundef @.str.25, i32 noundef %4909, ptr noundef @.str.60, ptr noundef @.str.21, i32 noundef 241, ptr noundef %4912, ptr noundef %4915, ptr noundef %4918, i32 noundef %4920) #9
  br label %4922

4922:                                             ; preds = %4905, %4888
  call void @llvm.lifetime.end.p0(i64 4, ptr %115) #9
  br label %4923

4923:                                             ; preds = %4922
  br label %4924

4924:                                             ; preds = %4923
  call void @exit(i32 noundef 1) #11
  unreachable

4925:                                             ; No predecessors!
  br label %4926

4926:                                             ; preds = %4925
  br label %4927

4927:                                             ; preds = %4926, %4869
  br label %4928

4928:                                             ; preds = %4927
  br label %4929

4929:                                             ; preds = %4928
  br label %4930

4930:                                             ; preds = %4929
  %4931 = load i32, ptr @test_count, align 4, !tbaa !5
  %4932 = add nsw i32 %4931, 1
  store i32 %4932, ptr @test_count, align 4, !tbaa !5
  %4933 = load ptr, ptr %114, align 8, !tbaa !9
  %4934 = call i32 @s2n_connection_set_blinding(ptr noundef %4933, i32 noundef 1)
  %4935 = icmp eq i32 %4934, -1
  br i1 %4935, label %4936, label %4989

4936:                                             ; preds = %4930
  br label %4937

4937:                                             ; preds = %4936
  br label %4938

4938:                                             ; preds = %4937
  call void @llvm.lifetime.start.p0(i64 4, ptr %116) #9
  %4939 = call ptr @__errno_location() #10
  %4940 = load i32, ptr %4939, align 4, !tbaa !5
  store i32 %4940, ptr %116, align 4, !tbaa !5
  %4941 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4942 = call i32 @s2n_print_stacktrace(ptr noundef %4941)
  %4943 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4944 = trunc i8 %4943 to i1
  br i1 %4944, label %4945, label %4967

4945:                                             ; preds = %4938
  %4946 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4947 = call i32 @fileno(ptr noundef %4946) #9
  %4948 = call i32 @isatty(i32 noundef %4947) #9
  %4949 = icmp ne i32 %4948, 0
  br i1 %4949, label %4950, label %4967

4950:                                             ; preds = %4945
  %4951 = load i32, ptr %116, align 4, !tbaa !5
  %4952 = call ptr @__errno_location() #10
  store i32 %4951, ptr %4952, align 4, !tbaa !5
  %4953 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4954 = load i32, ptr @test_count, align 4, !tbaa !5
  %4955 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4956 = load i32, ptr %4955, align 4, !tbaa !5
  %4957 = call ptr @s2n_strerror(i32 noundef %4956, ptr noundef @.str.24)
  %4958 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4959 = load i32, ptr %4958, align 4, !tbaa !5
  %4960 = call ptr @s2n_strerror_debug(i32 noundef %4959, ptr noundef @.str.24)
  %4961 = call ptr @__errno_location() #10
  %4962 = load i32, ptr %4961, align 4, !tbaa !5
  %4963 = call ptr @strerror(i32 noundef %4962) #9
  %4964 = call ptr @__errno_location() #10
  %4965 = load i32, ptr %4964, align 4, !tbaa !5
  %4966 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4953, ptr noundef @.str.22, i32 noundef %4954, ptr noundef @.str.61, ptr noundef @.str.21, i32 noundef 242, ptr noundef %4957, ptr noundef %4960, ptr noundef %4963, i32 noundef %4965) #9
  br label %4984

4967:                                             ; preds = %4945, %4938
  %4968 = load i32, ptr %116, align 4, !tbaa !5
  %4969 = call ptr @__errno_location() #10
  store i32 %4968, ptr %4969, align 4, !tbaa !5
  %4970 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4971 = load i32, ptr @test_count, align 4, !tbaa !5
  %4972 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4973 = load i32, ptr %4972, align 4, !tbaa !5
  %4974 = call ptr @s2n_strerror(i32 noundef %4973, ptr noundef @.str.24)
  %4975 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4976 = load i32, ptr %4975, align 4, !tbaa !5
  %4977 = call ptr @s2n_strerror_debug(i32 noundef %4976, ptr noundef @.str.24)
  %4978 = call ptr @__errno_location() #10
  %4979 = load i32, ptr %4978, align 4, !tbaa !5
  %4980 = call ptr @strerror(i32 noundef %4979) #9
  %4981 = call ptr @__errno_location() #10
  %4982 = load i32, ptr %4981, align 4, !tbaa !5
  %4983 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4970, ptr noundef @.str.25, i32 noundef %4971, ptr noundef @.str.61, ptr noundef @.str.21, i32 noundef 242, ptr noundef %4974, ptr noundef %4977, ptr noundef %4980, i32 noundef %4982) #9
  br label %4984

4984:                                             ; preds = %4967, %4950
  call void @llvm.lifetime.end.p0(i64 4, ptr %116) #9
  br label %4985

4985:                                             ; preds = %4984
  br label %4986

4986:                                             ; preds = %4985
  call void @exit(i32 noundef 1) #11
  unreachable

4987:                                             ; No predecessors!
  br label %4988

4988:                                             ; preds = %4987
  br label %4989

4989:                                             ; preds = %4988, %4930
  br label %4990

4990:                                             ; preds = %4989
  br label %4991

4991:                                             ; preds = %4990
  br label %4992

4992:                                             ; preds = %4991
  %4993 = load i32, ptr @test_count, align 4, !tbaa !5
  %4994 = add nsw i32 %4993, 1
  store i32 %4994, ptr @test_count, align 4, !tbaa !5
  %4995 = load ptr, ptr %114, align 8, !tbaa !9
  %4996 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %4995, ptr noundef @.str.58)
  %4997 = icmp eq i32 %4996, -1
  br i1 %4997, label %4998, label %5051

4998:                                             ; preds = %4992
  br label %4999

4999:                                             ; preds = %4998
  br label %5000

5000:                                             ; preds = %4999
  call void @llvm.lifetime.start.p0(i64 4, ptr %117) #9
  %5001 = call ptr @__errno_location() #10
  %5002 = load i32, ptr %5001, align 4, !tbaa !5
  store i32 %5002, ptr %117, align 4, !tbaa !5
  %5003 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5004 = call i32 @s2n_print_stacktrace(ptr noundef %5003)
  %5005 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5006 = trunc i8 %5005 to i1
  br i1 %5006, label %5007, label %5029

5007:                                             ; preds = %5000
  %5008 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5009 = call i32 @fileno(ptr noundef %5008) #9
  %5010 = call i32 @isatty(i32 noundef %5009) #9
  %5011 = icmp ne i32 %5010, 0
  br i1 %5011, label %5012, label %5029

5012:                                             ; preds = %5007
  %5013 = load i32, ptr %117, align 4, !tbaa !5
  %5014 = call ptr @__errno_location() #10
  store i32 %5013, ptr %5014, align 4, !tbaa !5
  %5015 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5016 = load i32, ptr @test_count, align 4, !tbaa !5
  %5017 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5018 = load i32, ptr %5017, align 4, !tbaa !5
  %5019 = call ptr @s2n_strerror(i32 noundef %5018, ptr noundef @.str.24)
  %5020 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5021 = load i32, ptr %5020, align 4, !tbaa !5
  %5022 = call ptr @s2n_strerror_debug(i32 noundef %5021, ptr noundef @.str.24)
  %5023 = call ptr @__errno_location() #10
  %5024 = load i32, ptr %5023, align 4, !tbaa !5
  %5025 = call ptr @strerror(i32 noundef %5024) #9
  %5026 = call ptr @__errno_location() #10
  %5027 = load i32, ptr %5026, align 4, !tbaa !5
  %5028 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5015, ptr noundef @.str.22, i32 noundef %5016, ptr noundef @.str.62, ptr noundef @.str.21, i32 noundef 243, ptr noundef %5019, ptr noundef %5022, ptr noundef %5025, i32 noundef %5027) #9
  br label %5046

5029:                                             ; preds = %5007, %5000
  %5030 = load i32, ptr %117, align 4, !tbaa !5
  %5031 = call ptr @__errno_location() #10
  store i32 %5030, ptr %5031, align 4, !tbaa !5
  %5032 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5033 = load i32, ptr @test_count, align 4, !tbaa !5
  %5034 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5035 = load i32, ptr %5034, align 4, !tbaa !5
  %5036 = call ptr @s2n_strerror(i32 noundef %5035, ptr noundef @.str.24)
  %5037 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5038 = load i32, ptr %5037, align 4, !tbaa !5
  %5039 = call ptr @s2n_strerror_debug(i32 noundef %5038, ptr noundef @.str.24)
  %5040 = call ptr @__errno_location() #10
  %5041 = load i32, ptr %5040, align 4, !tbaa !5
  %5042 = call ptr @strerror(i32 noundef %5041) #9
  %5043 = call ptr @__errno_location() #10
  %5044 = load i32, ptr %5043, align 4, !tbaa !5
  %5045 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5032, ptr noundef @.str.25, i32 noundef %5033, ptr noundef @.str.62, ptr noundef @.str.21, i32 noundef 243, ptr noundef %5036, ptr noundef %5039, ptr noundef %5042, i32 noundef %5044) #9
  br label %5046

5046:                                             ; preds = %5029, %5012
  call void @llvm.lifetime.end.p0(i64 4, ptr %117) #9
  br label %5047

5047:                                             ; preds = %5046
  br label %5048

5048:                                             ; preds = %5047
  call void @exit(i32 noundef 1) #11
  unreachable

5049:                                             ; No predecessors!
  br label %5050

5050:                                             ; preds = %5049
  br label %5051

5051:                                             ; preds = %5050, %4992
  br label %5052

5052:                                             ; preds = %5051
  br label %5053

5053:                                             ; preds = %5052
  call void @llvm.lifetime.start.p0(i64 40, ptr %118) #9
  call void @llvm.memset.p0.i64(ptr align 8 %118, i8 0, i64 40, i1 false)
  br label %5054

5054:                                             ; preds = %5053
  %5055 = load i32, ptr @test_count, align 4, !tbaa !5
  %5056 = add nsw i32 %5055, 1
  store i32 %5056, ptr @test_count, align 4, !tbaa !5
  %5057 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %118, i32 noundef 0)
  %5058 = icmp eq i32 %5057, -1
  br i1 %5058, label %5059, label %5112

5059:                                             ; preds = %5054
  br label %5060

5060:                                             ; preds = %5059
  br label %5061

5061:                                             ; preds = %5060
  call void @llvm.lifetime.start.p0(i64 4, ptr %119) #9
  %5062 = call ptr @__errno_location() #10
  %5063 = load i32, ptr %5062, align 4, !tbaa !5
  store i32 %5063, ptr %119, align 4, !tbaa !5
  %5064 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5065 = call i32 @s2n_print_stacktrace(ptr noundef %5064)
  %5066 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5067 = trunc i8 %5066 to i1
  br i1 %5067, label %5068, label %5090

5068:                                             ; preds = %5061
  %5069 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5070 = call i32 @fileno(ptr noundef %5069) #9
  %5071 = call i32 @isatty(i32 noundef %5070) #9
  %5072 = icmp ne i32 %5071, 0
  br i1 %5072, label %5073, label %5090

5073:                                             ; preds = %5068
  %5074 = load i32, ptr %119, align 4, !tbaa !5
  %5075 = call ptr @__errno_location() #10
  store i32 %5074, ptr %5075, align 4, !tbaa !5
  %5076 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5077 = load i32, ptr @test_count, align 4, !tbaa !5
  %5078 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5079 = load i32, ptr %5078, align 4, !tbaa !5
  %5080 = call ptr @s2n_strerror(i32 noundef %5079, ptr noundef @.str.24)
  %5081 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5082 = load i32, ptr %5081, align 4, !tbaa !5
  %5083 = call ptr @s2n_strerror_debug(i32 noundef %5082, ptr noundef @.str.24)
  %5084 = call ptr @__errno_location() #10
  %5085 = load i32, ptr %5084, align 4, !tbaa !5
  %5086 = call ptr @strerror(i32 noundef %5085) #9
  %5087 = call ptr @__errno_location() #10
  %5088 = load i32, ptr %5087, align 4, !tbaa !5
  %5089 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5076, ptr noundef @.str.22, i32 noundef %5077, ptr noundef @.str.63, ptr noundef @.str.21, i32 noundef 246, ptr noundef %5080, ptr noundef %5083, ptr noundef %5086, i32 noundef %5088) #9
  br label %5107

5090:                                             ; preds = %5068, %5061
  %5091 = load i32, ptr %119, align 4, !tbaa !5
  %5092 = call ptr @__errno_location() #10
  store i32 %5091, ptr %5092, align 4, !tbaa !5
  %5093 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5094 = load i32, ptr @test_count, align 4, !tbaa !5
  %5095 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5096 = load i32, ptr %5095, align 4, !tbaa !5
  %5097 = call ptr @s2n_strerror(i32 noundef %5096, ptr noundef @.str.24)
  %5098 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5099 = load i32, ptr %5098, align 4, !tbaa !5
  %5100 = call ptr @s2n_strerror_debug(i32 noundef %5099, ptr noundef @.str.24)
  %5101 = call ptr @__errno_location() #10
  %5102 = load i32, ptr %5101, align 4, !tbaa !5
  %5103 = call ptr @strerror(i32 noundef %5102) #9
  %5104 = call ptr @__errno_location() #10
  %5105 = load i32, ptr %5104, align 4, !tbaa !5
  %5106 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5093, ptr noundef @.str.25, i32 noundef %5094, ptr noundef @.str.63, ptr noundef @.str.21, i32 noundef 246, ptr noundef %5097, ptr noundef %5100, ptr noundef %5103, i32 noundef %5105) #9
  br label %5107

5107:                                             ; preds = %5090, %5073
  call void @llvm.lifetime.end.p0(i64 4, ptr %119) #9
  br label %5108

5108:                                             ; preds = %5107
  br label %5109

5109:                                             ; preds = %5108
  call void @exit(i32 noundef 1) #11
  unreachable

5110:                                             ; No predecessors!
  br label %5111

5111:                                             ; preds = %5110
  br label %5112

5112:                                             ; preds = %5111, %5054
  br label %5113

5113:                                             ; preds = %5112
  br label %5114

5114:                                             ; preds = %5113
  br label %5115

5115:                                             ; preds = %5114
  %5116 = load i32, ptr @test_count, align 4, !tbaa !5
  %5117 = add nsw i32 %5116, 1
  store i32 %5117, ptr @test_count, align 4, !tbaa !5
  %5118 = load ptr, ptr %111, align 8, !tbaa !9
  %5119 = call i32 @s2n_connection_set_io_stuffers(ptr noundef %118, ptr noundef %118, ptr noundef %5118)
  %5120 = icmp eq i32 %5119, -1
  br i1 %5120, label %5121, label %5174

5121:                                             ; preds = %5115
  br label %5122

5122:                                             ; preds = %5121
  br label %5123

5123:                                             ; preds = %5122
  call void @llvm.lifetime.start.p0(i64 4, ptr %120) #9
  %5124 = call ptr @__errno_location() #10
  %5125 = load i32, ptr %5124, align 4, !tbaa !5
  store i32 %5125, ptr %120, align 4, !tbaa !5
  %5126 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5127 = call i32 @s2n_print_stacktrace(ptr noundef %5126)
  %5128 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5129 = trunc i8 %5128 to i1
  br i1 %5129, label %5130, label %5152

5130:                                             ; preds = %5123
  %5131 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5132 = call i32 @fileno(ptr noundef %5131) #9
  %5133 = call i32 @isatty(i32 noundef %5132) #9
  %5134 = icmp ne i32 %5133, 0
  br i1 %5134, label %5135, label %5152

5135:                                             ; preds = %5130
  %5136 = load i32, ptr %120, align 4, !tbaa !5
  %5137 = call ptr @__errno_location() #10
  store i32 %5136, ptr %5137, align 4, !tbaa !5
  %5138 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5139 = load i32, ptr @test_count, align 4, !tbaa !5
  %5140 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5141 = load i32, ptr %5140, align 4, !tbaa !5
  %5142 = call ptr @s2n_strerror(i32 noundef %5141, ptr noundef @.str.24)
  %5143 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5144 = load i32, ptr %5143, align 4, !tbaa !5
  %5145 = call ptr @s2n_strerror_debug(i32 noundef %5144, ptr noundef @.str.24)
  %5146 = call ptr @__errno_location() #10
  %5147 = load i32, ptr %5146, align 4, !tbaa !5
  %5148 = call ptr @strerror(i32 noundef %5147) #9
  %5149 = call ptr @__errno_location() #10
  %5150 = load i32, ptr %5149, align 4, !tbaa !5
  %5151 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5138, ptr noundef @.str.22, i32 noundef %5139, ptr noundef @.str.64, ptr noundef @.str.21, i32 noundef 247, ptr noundef %5142, ptr noundef %5145, ptr noundef %5148, i32 noundef %5150) #9
  br label %5169

5152:                                             ; preds = %5130, %5123
  %5153 = load i32, ptr %120, align 4, !tbaa !5
  %5154 = call ptr @__errno_location() #10
  store i32 %5153, ptr %5154, align 4, !tbaa !5
  %5155 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5156 = load i32, ptr @test_count, align 4, !tbaa !5
  %5157 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5158 = load i32, ptr %5157, align 4, !tbaa !5
  %5159 = call ptr @s2n_strerror(i32 noundef %5158, ptr noundef @.str.24)
  %5160 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5161 = load i32, ptr %5160, align 4, !tbaa !5
  %5162 = call ptr @s2n_strerror_debug(i32 noundef %5161, ptr noundef @.str.24)
  %5163 = call ptr @__errno_location() #10
  %5164 = load i32, ptr %5163, align 4, !tbaa !5
  %5165 = call ptr @strerror(i32 noundef %5164) #9
  %5166 = call ptr @__errno_location() #10
  %5167 = load i32, ptr %5166, align 4, !tbaa !5
  %5168 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5155, ptr noundef @.str.25, i32 noundef %5156, ptr noundef @.str.64, ptr noundef @.str.21, i32 noundef 247, ptr noundef %5159, ptr noundef %5162, ptr noundef %5165, i32 noundef %5167) #9
  br label %5169

5169:                                             ; preds = %5152, %5135
  call void @llvm.lifetime.end.p0(i64 4, ptr %120) #9
  br label %5170

5170:                                             ; preds = %5169
  br label %5171

5171:                                             ; preds = %5170
  call void @exit(i32 noundef 1) #11
  unreachable

5172:                                             ; No predecessors!
  br label %5173

5173:                                             ; preds = %5172
  br label %5174

5174:                                             ; preds = %5173, %5115
  br label %5175

5175:                                             ; preds = %5174
  br label %5176

5176:                                             ; preds = %5175
  br label %5177

5177:                                             ; preds = %5176
  %5178 = load i32, ptr @test_count, align 4, !tbaa !5
  %5179 = add nsw i32 %5178, 1
  store i32 %5179, ptr @test_count, align 4, !tbaa !5
  %5180 = load ptr, ptr %114, align 8, !tbaa !9
  %5181 = call i32 @s2n_connection_set_io_stuffers(ptr noundef %118, ptr noundef %118, ptr noundef %5180)
  %5182 = icmp eq i32 %5181, -1
  br i1 %5182, label %5183, label %5236

5183:                                             ; preds = %5177
  br label %5184

5184:                                             ; preds = %5183
  br label %5185

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

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

5197:                                             ; preds = %5192
  %5198 = load i32, ptr %121, align 4, !tbaa !5
  %5199 = call ptr @__errno_location() #10
  store i32 %5198, ptr %5199, align 4, !tbaa !5
  %5200 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5201 = load i32, ptr @test_count, align 4, !tbaa !5
  %5202 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5203 = load i32, ptr %5202, align 4, !tbaa !5
  %5204 = call ptr @s2n_strerror(i32 noundef %5203, ptr noundef @.str.24)
  %5205 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5206 = load i32, ptr %5205, align 4, !tbaa !5
  %5207 = call ptr @s2n_strerror_debug(i32 noundef %5206, ptr noundef @.str.24)
  %5208 = call ptr @__errno_location() #10
  %5209 = load i32, ptr %5208, align 4, !tbaa !5
  %5210 = call ptr @strerror(i32 noundef %5209) #9
  %5211 = call ptr @__errno_location() #10
  %5212 = load i32, ptr %5211, align 4, !tbaa !5
  %5213 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5200, ptr noundef @.str.22, i32 noundef %5201, ptr noundef @.str.65, ptr noundef @.str.21, i32 noundef 248, ptr noundef %5204, ptr noundef %5207, ptr noundef %5210, i32 noundef %5212) #9
  br label %5231

5214:                                             ; preds = %5192, %5185
  %5215 = load i32, ptr %121, align 4, !tbaa !5
  %5216 = call ptr @__errno_location() #10
  store i32 %5215, ptr %5216, align 4, !tbaa !5
  %5217 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5218 = load i32, ptr @test_count, align 4, !tbaa !5
  %5219 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5220 = load i32, ptr %5219, align 4, !tbaa !5
  %5221 = call ptr @s2n_strerror(i32 noundef %5220, ptr noundef @.str.24)
  %5222 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5223 = load i32, ptr %5222, align 4, !tbaa !5
  %5224 = call ptr @s2n_strerror_debug(i32 noundef %5223, ptr noundef @.str.24)
  %5225 = call ptr @__errno_location() #10
  %5226 = load i32, ptr %5225, align 4, !tbaa !5
  %5227 = call ptr @strerror(i32 noundef %5226) #9
  %5228 = call ptr @__errno_location() #10
  %5229 = load i32, ptr %5228, align 4, !tbaa !5
  %5230 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5217, ptr noundef @.str.25, i32 noundef %5218, ptr noundef @.str.65, ptr noundef @.str.21, i32 noundef 248, ptr noundef %5221, ptr noundef %5224, ptr noundef %5227, i32 noundef %5229) #9
  br label %5231

5231:                                             ; preds = %5214, %5197
  call void @llvm.lifetime.end.p0(i64 4, ptr %121) #9
  br label %5232

5232:                                             ; preds = %5231
  br label %5233

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

5234:                                             ; No predecessors!
  br label %5235

5235:                                             ; preds = %5234
  br label %5236

5236:                                             ; preds = %5235, %5177
  br label %5237

5237:                                             ; preds = %5236
  br label %5238

5238:                                             ; preds = %5237
  call void @llvm.lifetime.start.p0(i64 4, ptr %122) #9
  store i32 0, ptr %122, align 4, !tbaa !5
  br label %5239

5239:                                             ; preds = %5238
  %5240 = load i32, ptr @test_count, align 4, !tbaa !5
  %5241 = add nsw i32 %5240, 1
  store i32 %5241, ptr @test_count, align 4, !tbaa !5
  %5242 = load ptr, ptr %111, align 8, !tbaa !9
  %5243 = call i32 @s2n_negotiate_until_message(ptr noundef %5242, ptr noundef %122, i32 noundef 1)
  %5244 = getelementptr inbounds %struct.s2n_result, ptr %123, i32 0, i32 0
  store i32 %5243, ptr %5244, align 4
  %5245 = getelementptr inbounds %struct.s2n_result, ptr %123, i32 0, i32 0
  %5246 = load i32, ptr %5245, align 4
  %5247 = call zeroext i1 @s2n_result_is_ok(i32 %5246)
  br i1 %5247, label %5301, label %5248

5248:                                             ; preds = %5239
  br label %5249

5249:                                             ; preds = %5248
  br label %5250

5250:                                             ; preds = %5249
  call void @llvm.lifetime.start.p0(i64 4, ptr %124) #9
  %5251 = call ptr @__errno_location() #10
  %5252 = load i32, ptr %5251, align 4, !tbaa !5
  store i32 %5252, ptr %124, align 4, !tbaa !5
  %5253 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5254 = call i32 @s2n_print_stacktrace(ptr noundef %5253)
  %5255 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5256 = trunc i8 %5255 to i1
  br i1 %5256, label %5257, label %5279

5257:                                             ; preds = %5250
  %5258 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5259 = call i32 @fileno(ptr noundef %5258) #9
  %5260 = call i32 @isatty(i32 noundef %5259) #9
  %5261 = icmp ne i32 %5260, 0
  br i1 %5261, label %5262, label %5279

5262:                                             ; preds = %5257
  %5263 = load i32, ptr %124, align 4, !tbaa !5
  %5264 = call ptr @__errno_location() #10
  store i32 %5263, ptr %5264, align 4, !tbaa !5
  %5265 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5266 = load i32, ptr @test_count, align 4, !tbaa !5
  %5267 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5268 = load i32, ptr %5267, align 4, !tbaa !5
  %5269 = call ptr @s2n_strerror(i32 noundef %5268, ptr noundef @.str.24)
  %5270 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5271 = load i32, ptr %5270, align 4, !tbaa !5
  %5272 = call ptr @s2n_strerror_debug(i32 noundef %5271, ptr noundef @.str.24)
  %5273 = call ptr @__errno_location() #10
  %5274 = load i32, ptr %5273, align 4, !tbaa !5
  %5275 = call ptr @strerror(i32 noundef %5274) #9
  %5276 = call ptr @__errno_location() #10
  %5277 = load i32, ptr %5276, align 4, !tbaa !5
  %5278 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5265, ptr noundef @.str.22, i32 noundef %5266, ptr noundef @.str.66, ptr noundef @.str.21, i32 noundef 252, ptr noundef %5269, ptr noundef %5272, ptr noundef %5275, i32 noundef %5277) #9
  br label %5296

5279:                                             ; preds = %5257, %5250
  %5280 = load i32, ptr %124, align 4, !tbaa !5
  %5281 = call ptr @__errno_location() #10
  store i32 %5280, ptr %5281, align 4, !tbaa !5
  %5282 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5283 = load i32, ptr @test_count, align 4, !tbaa !5
  %5284 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5285 = load i32, ptr %5284, align 4, !tbaa !5
  %5286 = call ptr @s2n_strerror(i32 noundef %5285, ptr noundef @.str.24)
  %5287 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5288 = load i32, ptr %5287, align 4, !tbaa !5
  %5289 = call ptr @s2n_strerror_debug(i32 noundef %5288, ptr noundef @.str.24)
  %5290 = call ptr @__errno_location() #10
  %5291 = load i32, ptr %5290, align 4, !tbaa !5
  %5292 = call ptr @strerror(i32 noundef %5291) #9
  %5293 = call ptr @__errno_location() #10
  %5294 = load i32, ptr %5293, align 4, !tbaa !5
  %5295 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5282, ptr noundef @.str.25, i32 noundef %5283, ptr noundef @.str.66, ptr noundef @.str.21, i32 noundef 252, ptr noundef %5286, ptr noundef %5289, ptr noundef %5292, i32 noundef %5294) #9
  br label %5296

5296:                                             ; preds = %5279, %5262
  call void @llvm.lifetime.end.p0(i64 4, ptr %124) #9
  br label %5297

5297:                                             ; preds = %5296
  br label %5298

5298:                                             ; preds = %5297
  call void @exit(i32 noundef 1) #11
  unreachable

5299:                                             ; No predecessors!
  br label %5300

5300:                                             ; preds = %5299
  br label %5301

5301:                                             ; preds = %5300, %5239
  br label %5302

5302:                                             ; preds = %5301
  br label %5303

5303:                                             ; preds = %5302
  call void @llvm.lifetime.start.p0(i64 10, ptr %125) #9
  call void @llvm.memset.p0.i64(ptr align 1 %125, i8 0, i64 10, i1 false)
  br label %5304

5304:                                             ; preds = %5303
  br label %5305

5305:                                             ; preds = %5304
  br label %5306

5306:                                             ; preds = %5305
  %5307 = load i32, ptr @test_count, align 4, !tbaa !5
  %5308 = add nsw i32 %5307, 1
  store i32 %5308, ptr @test_count, align 4, !tbaa !5
  %5309 = load ptr, ptr %114, align 8, !tbaa !9
  %5310 = getelementptr inbounds [10 x i8], ptr %125, i64 0, i64 0
  %5311 = call i64 @s2n_recv(ptr noundef %5309, ptr noundef %5310, i64 noundef 10, ptr noundef %122)
  %5312 = icmp eq i64 %5311, -1
  br i1 %5312, label %5366, label %5313

5313:                                             ; preds = %5306
  br label %5314

5314:                                             ; preds = %5313
  br label %5315

5315:                                             ; preds = %5314
  call void @llvm.lifetime.start.p0(i64 4, ptr %126) #9
  %5316 = call ptr @__errno_location() #10
  %5317 = load i32, ptr %5316, align 4, !tbaa !5
  store i32 %5317, ptr %126, align 4, !tbaa !5
  %5318 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5319 = call i32 @s2n_print_stacktrace(ptr noundef %5318)
  %5320 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5321 = trunc i8 %5320 to i1
  br i1 %5321, label %5322, label %5344

5322:                                             ; preds = %5315
  %5323 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5324 = call i32 @fileno(ptr noundef %5323) #9
  %5325 = call i32 @isatty(i32 noundef %5324) #9
  %5326 = icmp ne i32 %5325, 0
  br i1 %5326, label %5327, label %5344

5327:                                             ; preds = %5322
  %5328 = load i32, ptr %126, align 4, !tbaa !5
  %5329 = call ptr @__errno_location() #10
  store i32 %5328, ptr %5329, align 4, !tbaa !5
  %5330 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5331 = load i32, ptr @test_count, align 4, !tbaa !5
  %5332 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5333 = load i32, ptr %5332, align 4, !tbaa !5
  %5334 = call ptr @s2n_strerror(i32 noundef %5333, ptr noundef @.str.24)
  %5335 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5336 = load i32, ptr %5335, align 4, !tbaa !5
  %5337 = call ptr @s2n_strerror_debug(i32 noundef %5336, ptr noundef @.str.24)
  %5338 = call ptr @__errno_location() #10
  %5339 = load i32, ptr %5338, align 4, !tbaa !5
  %5340 = call ptr @strerror(i32 noundef %5339) #9
  %5341 = call ptr @__errno_location() #10
  %5342 = load i32, ptr %5341, align 4, !tbaa !5
  %5343 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5330, ptr noundef @.str.22, i32 noundef %5331, ptr noundef @.str.67, ptr noundef @.str.21, i32 noundef 256, ptr noundef %5334, ptr noundef %5337, ptr noundef %5340, i32 noundef %5342) #9
  br label %5361

5344:                                             ; preds = %5322, %5315
  %5345 = load i32, ptr %126, align 4, !tbaa !5
  %5346 = call ptr @__errno_location() #10
  store i32 %5345, ptr %5346, align 4, !tbaa !5
  %5347 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5348 = load i32, ptr @test_count, align 4, !tbaa !5
  %5349 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5350 = load i32, ptr %5349, align 4, !tbaa !5
  %5351 = call ptr @s2n_strerror(i32 noundef %5350, ptr noundef @.str.24)
  %5352 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5353 = load i32, ptr %5352, align 4, !tbaa !5
  %5354 = call ptr @s2n_strerror_debug(i32 noundef %5353, ptr noundef @.str.24)
  %5355 = call ptr @__errno_location() #10
  %5356 = load i32, ptr %5355, align 4, !tbaa !5
  %5357 = call ptr @strerror(i32 noundef %5356) #9
  %5358 = call ptr @__errno_location() #10
  %5359 = load i32, ptr %5358, align 4, !tbaa !5
  %5360 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5347, ptr noundef @.str.25, i32 noundef %5348, ptr noundef @.str.67, ptr noundef @.str.21, i32 noundef 256, ptr noundef %5351, ptr noundef %5354, ptr noundef %5357, i32 noundef %5359) #9
  br label %5361

5361:                                             ; preds = %5344, %5327
  call void @llvm.lifetime.end.p0(i64 4, ptr %126) #9
  br label %5362

5362:                                             ; preds = %5361
  br label %5363

5363:                                             ; preds = %5362
  call void @exit(i32 noundef 1) #11
  unreachable

5364:                                             ; No predecessors!
  br label %5365

5365:                                             ; preds = %5364
  br label %5366

5366:                                             ; preds = %5365, %5306
  br label %5367

5367:                                             ; preds = %5366
  br label %5368

5368:                                             ; preds = %5367
  br label %5369

5369:                                             ; preds = %5368
  %5370 = load i32, ptr @test_count, align 4, !tbaa !5
  %5371 = add nsw i32 %5370, 1
  store i32 %5371, ptr @test_count, align 4, !tbaa !5
  %5372 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5373 = load i32, ptr %5372, align 4, !tbaa !5
  %5374 = icmp eq i32 %5373, 335544322
  br i1 %5374, label %5428, label %5375

5375:                                             ; preds = %5369
  br label %5376

5376:                                             ; preds = %5375
  br label %5377

5377:                                             ; preds = %5376
  call void @llvm.lifetime.start.p0(i64 4, ptr %127) #9
  %5378 = call ptr @__errno_location() #10
  %5379 = load i32, ptr %5378, align 4, !tbaa !5
  store i32 %5379, ptr %127, align 4, !tbaa !5
  %5380 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5381 = call i32 @s2n_print_stacktrace(ptr noundef %5380)
  %5382 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5383 = trunc i8 %5382 to i1
  br i1 %5383, label %5384, label %5406

5384:                                             ; preds = %5377
  %5385 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5386 = call i32 @fileno(ptr noundef %5385) #9
  %5387 = call i32 @isatty(i32 noundef %5386) #9
  %5388 = icmp ne i32 %5387, 0
  br i1 %5388, label %5389, label %5406

5389:                                             ; preds = %5384
  %5390 = load i32, ptr %127, align 4, !tbaa !5
  %5391 = call ptr @__errno_location() #10
  store i32 %5390, ptr %5391, align 4, !tbaa !5
  %5392 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5393 = load i32, ptr @test_count, align 4, !tbaa !5
  %5394 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5395 = load i32, ptr %5394, align 4, !tbaa !5
  %5396 = call ptr @s2n_strerror(i32 noundef %5395, ptr noundef @.str.24)
  %5397 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5398 = load i32, ptr %5397, align 4, !tbaa !5
  %5399 = call ptr @s2n_strerror_debug(i32 noundef %5398, ptr noundef @.str.24)
  %5400 = call ptr @__errno_location() #10
  %5401 = load i32, ptr %5400, align 4, !tbaa !5
  %5402 = call ptr @strerror(i32 noundef %5401) #9
  %5403 = call ptr @__errno_location() #10
  %5404 = load i32, ptr %5403, align 4, !tbaa !5
  %5405 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5392, ptr noundef @.str.22, i32 noundef %5393, ptr noundef @.str.38, ptr noundef @.str.21, i32 noundef 256, ptr noundef %5396, ptr noundef %5399, ptr noundef %5402, i32 noundef %5404) #9
  br label %5423

5406:                                             ; preds = %5384, %5377
  %5407 = load i32, ptr %127, align 4, !tbaa !5
  %5408 = call ptr @__errno_location() #10
  store i32 %5407, ptr %5408, align 4, !tbaa !5
  %5409 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5410 = load i32, ptr @test_count, align 4, !tbaa !5
  %5411 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5412 = load i32, ptr %5411, align 4, !tbaa !5
  %5413 = call ptr @s2n_strerror(i32 noundef %5412, ptr noundef @.str.24)
  %5414 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5415 = load i32, ptr %5414, align 4, !tbaa !5
  %5416 = call ptr @s2n_strerror_debug(i32 noundef %5415, ptr noundef @.str.24)
  %5417 = call ptr @__errno_location() #10
  %5418 = load i32, ptr %5417, align 4, !tbaa !5
  %5419 = call ptr @strerror(i32 noundef %5418) #9
  %5420 = call ptr @__errno_location() #10
  %5421 = load i32, ptr %5420, align 4, !tbaa !5
  %5422 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5409, ptr noundef @.str.25, i32 noundef %5410, ptr noundef @.str.38, ptr noundef @.str.21, i32 noundef 256, ptr noundef %5413, ptr noundef %5416, ptr noundef %5419, i32 noundef %5421) #9
  br label %5423

5423:                                             ; preds = %5406, %5389
  call void @llvm.lifetime.end.p0(i64 4, ptr %127) #9
  br label %5424

5424:                                             ; preds = %5423
  br label %5425

5425:                                             ; preds = %5424
  call void @exit(i32 noundef 1) #11
  unreachable

5426:                                             ; No predecessors!
  br label %5427

5427:                                             ; preds = %5426
  br label %5428

5428:                                             ; preds = %5427, %5369
  br label %5429

5429:                                             ; preds = %5428
  br label %5430

5430:                                             ; preds = %5429
  br label %5431

5431:                                             ; preds = %5430
  %5432 = load i32, ptr @test_count, align 4, !tbaa !5
  %5433 = add nsw i32 %5432, 1
  store i32 %5433, ptr @test_count, align 4, !tbaa !5
  %5434 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5435 = load i32, ptr %5434, align 4, !tbaa !5
  %5436 = call ptr @s2n_strerror_debug(i32 noundef %5435, ptr noundef @.str.24)
  %5437 = icmp eq ptr %5436, null
  br i1 %5437, label %5438, label %5491

5438:                                             ; preds = %5431
  br label %5439

5439:                                             ; preds = %5438
  br label %5440

5440:                                             ; preds = %5439
  call void @llvm.lifetime.start.p0(i64 4, ptr %128) #9
  %5441 = call ptr @__errno_location() #10
  %5442 = load i32, ptr %5441, align 4, !tbaa !5
  store i32 %5442, ptr %128, align 4, !tbaa !5
  %5443 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5444 = call i32 @s2n_print_stacktrace(ptr noundef %5443)
  %5445 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5446 = trunc i8 %5445 to i1
  br i1 %5446, label %5447, label %5469

5447:                                             ; preds = %5440
  %5448 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5449 = call i32 @fileno(ptr noundef %5448) #9
  %5450 = call i32 @isatty(i32 noundef %5449) #9
  %5451 = icmp ne i32 %5450, 0
  br i1 %5451, label %5452, label %5469

5452:                                             ; preds = %5447
  %5453 = load i32, ptr %128, align 4, !tbaa !5
  %5454 = call ptr @__errno_location() #10
  store i32 %5453, ptr %5454, align 4, !tbaa !5
  %5455 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5456 = load i32, ptr @test_count, align 4, !tbaa !5
  %5457 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5458 = load i32, ptr %5457, align 4, !tbaa !5
  %5459 = call ptr @s2n_strerror(i32 noundef %5458, ptr noundef @.str.24)
  %5460 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5461 = load i32, ptr %5460, align 4, !tbaa !5
  %5462 = call ptr @s2n_strerror_debug(i32 noundef %5461, ptr noundef @.str.24)
  %5463 = call ptr @__errno_location() #10
  %5464 = load i32, ptr %5463, align 4, !tbaa !5
  %5465 = call ptr @strerror(i32 noundef %5464) #9
  %5466 = call ptr @__errno_location() #10
  %5467 = load i32, ptr %5466, align 4, !tbaa !5
  %5468 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5455, ptr noundef @.str.22, i32 noundef %5456, ptr noundef @.str.39, ptr noundef @.str.21, i32 noundef 256, ptr noundef %5459, ptr noundef %5462, ptr noundef %5465, i32 noundef %5467) #9
  br label %5486

5469:                                             ; preds = %5447, %5440
  %5470 = load i32, ptr %128, align 4, !tbaa !5
  %5471 = call ptr @__errno_location() #10
  store i32 %5470, ptr %5471, align 4, !tbaa !5
  %5472 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5473 = load i32, ptr @test_count, align 4, !tbaa !5
  %5474 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5475 = load i32, ptr %5474, align 4, !tbaa !5
  %5476 = call ptr @s2n_strerror(i32 noundef %5475, ptr noundef @.str.24)
  %5477 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5478 = load i32, ptr %5477, align 4, !tbaa !5
  %5479 = call ptr @s2n_strerror_debug(i32 noundef %5478, ptr noundef @.str.24)
  %5480 = call ptr @__errno_location() #10
  %5481 = load i32, ptr %5480, align 4, !tbaa !5
  %5482 = call ptr @strerror(i32 noundef %5481) #9
  %5483 = call ptr @__errno_location() #10
  %5484 = load i32, ptr %5483, align 4, !tbaa !5
  %5485 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5472, ptr noundef @.str.25, i32 noundef %5473, ptr noundef @.str.39, ptr noundef @.str.21, i32 noundef 256, ptr noundef %5476, ptr noundef %5479, ptr noundef %5482, i32 noundef %5484) #9
  br label %5486

5486:                                             ; preds = %5469, %5452
  call void @llvm.lifetime.end.p0(i64 4, ptr %128) #9
  br label %5487

5487:                                             ; preds = %5486
  br label %5488

5488:                                             ; preds = %5487
  call void @exit(i32 noundef 1) #11
  unreachable

5489:                                             ; No predecessors!
  br label %5490

5490:                                             ; preds = %5489
  br label %5491

5491:                                             ; preds = %5490, %5431
  br label %5492

5492:                                             ; preds = %5491
  br label %5493

5493:                                             ; preds = %5492
  br label %5494

5494:                                             ; preds = %5493
  br label %5495

5495:                                             ; preds = %5494
  br label %5496

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

5499:                                             ; preds = %5496
  br label %5500

5500:                                             ; preds = %5499
  br label %5501

5501:                                             ; preds = %5500
  br label %5502

5502:                                             ; preds = %5501
  br label %5503

5503:                                             ; preds = %5502
  %5504 = load i32, ptr @test_count, align 4, !tbaa !5
  %5505 = add nsw i32 %5504, 1
  store i32 %5505, ptr @test_count, align 4, !tbaa !5
  %5506 = load ptr, ptr %114, align 8, !tbaa !9
  %5507 = call zeroext i1 @s2n_connection_check_io_status(ptr noundef %5506, i32 noundef 3)
  br i1 %5507, label %5561, label %5508

5508:                                             ; preds = %5503
  br label %5509

5509:                                             ; preds = %5508
  br label %5510

5510:                                             ; preds = %5509
  call void @llvm.lifetime.start.p0(i64 4, ptr %129) #9
  %5511 = call ptr @__errno_location() #10
  %5512 = load i32, ptr %5511, align 4, !tbaa !5
  store i32 %5512, ptr %129, align 4, !tbaa !5
  %5513 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5514 = call i32 @s2n_print_stacktrace(ptr noundef %5513)
  %5515 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5516 = trunc i8 %5515 to i1
  br i1 %5516, label %5517, label %5539

5517:                                             ; preds = %5510
  %5518 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5519 = call i32 @fileno(ptr noundef %5518) #9
  %5520 = call i32 @isatty(i32 noundef %5519) #9
  %5521 = icmp ne i32 %5520, 0
  br i1 %5521, label %5522, label %5539

5522:                                             ; preds = %5517
  %5523 = load i32, ptr %129, align 4, !tbaa !5
  %5524 = call ptr @__errno_location() #10
  store i32 %5523, ptr %5524, align 4, !tbaa !5
  %5525 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5526 = load i32, ptr @test_count, align 4, !tbaa !5
  %5527 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5528 = load i32, ptr %5527, align 4, !tbaa !5
  %5529 = call ptr @s2n_strerror(i32 noundef %5528, ptr noundef @.str.24)
  %5530 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5531 = load i32, ptr %5530, align 4, !tbaa !5
  %5532 = call ptr @s2n_strerror_debug(i32 noundef %5531, ptr noundef @.str.24)
  %5533 = call ptr @__errno_location() #10
  %5534 = load i32, ptr %5533, align 4, !tbaa !5
  %5535 = call ptr @strerror(i32 noundef %5534) #9
  %5536 = call ptr @__errno_location() #10
  %5537 = load i32, ptr %5536, align 4, !tbaa !5
  %5538 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5525, ptr noundef @.str.22, i32 noundef %5526, ptr noundef @.str.68, ptr noundef @.str.21, i32 noundef 259, ptr noundef %5529, ptr noundef %5532, ptr noundef %5535, i32 noundef %5537) #9
  br label %5556

5539:                                             ; preds = %5517, %5510
  %5540 = load i32, ptr %129, align 4, !tbaa !5
  %5541 = call ptr @__errno_location() #10
  store i32 %5540, ptr %5541, align 4, !tbaa !5
  %5542 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5543 = load i32, ptr @test_count, align 4, !tbaa !5
  %5544 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5545 = load i32, ptr %5544, align 4, !tbaa !5
  %5546 = call ptr @s2n_strerror(i32 noundef %5545, ptr noundef @.str.24)
  %5547 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5548 = load i32, ptr %5547, align 4, !tbaa !5
  %5549 = call ptr @s2n_strerror_debug(i32 noundef %5548, ptr noundef @.str.24)
  %5550 = call ptr @__errno_location() #10
  %5551 = load i32, ptr %5550, align 4, !tbaa !5
  %5552 = call ptr @strerror(i32 noundef %5551) #9
  %5553 = call ptr @__errno_location() #10
  %5554 = load i32, ptr %5553, align 4, !tbaa !5
  %5555 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5542, ptr noundef @.str.25, i32 noundef %5543, ptr noundef @.str.68, ptr noundef @.str.21, i32 noundef 259, ptr noundef %5546, ptr noundef %5549, ptr noundef %5552, i32 noundef %5554) #9
  br label %5556

5556:                                             ; preds = %5539, %5522
  call void @llvm.lifetime.end.p0(i64 4, ptr %129) #9
  br label %5557

5557:                                             ; preds = %5556
  br label %5558

5558:                                             ; preds = %5557
  call void @exit(i32 noundef 1) #11
  unreachable

5559:                                             ; No predecessors!
  br label %5560

5560:                                             ; preds = %5559
  br label %5561

5561:                                             ; preds = %5560, %5503
  br label %5562

5562:                                             ; preds = %5561
  br label %5563

5563:                                             ; preds = %5562
  br label %5564

5564:                                             ; preds = %5563
  %5565 = load i32, ptr @test_count, align 4, !tbaa !5
  %5566 = add nsw i32 %5565, 1
  store i32 %5566, ptr @test_count, align 4, !tbaa !5
  %5567 = load ptr, ptr %114, align 8, !tbaa !9
  %5568 = call i64 @s2n_connection_get_delay(ptr noundef %5567)
  %5569 = icmp eq i64 %5568, 0
  br i1 %5569, label %5570, label %5623

5570:                                             ; preds = %5564
  br label %5571

5571:                                             ; preds = %5570
  br label %5572

5572:                                             ; preds = %5571
  call void @llvm.lifetime.start.p0(i64 4, ptr %130) #9
  %5573 = call ptr @__errno_location() #10
  %5574 = load i32, ptr %5573, align 4, !tbaa !5
  store i32 %5574, ptr %130, align 4, !tbaa !5
  %5575 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5576 = call i32 @s2n_print_stacktrace(ptr noundef %5575)
  %5577 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5578 = trunc i8 %5577 to i1
  br i1 %5578, label %5579, label %5601

5579:                                             ; preds = %5572
  %5580 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5581 = call i32 @fileno(ptr noundef %5580) #9
  %5582 = call i32 @isatty(i32 noundef %5581) #9
  %5583 = icmp ne i32 %5582, 0
  br i1 %5583, label %5584, label %5601

5584:                                             ; preds = %5579
  %5585 = load i32, ptr %130, align 4, !tbaa !5
  %5586 = call ptr @__errno_location() #10
  store i32 %5585, ptr %5586, align 4, !tbaa !5
  %5587 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5588 = load i32, ptr @test_count, align 4, !tbaa !5
  %5589 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5590 = load i32, ptr %5589, align 4, !tbaa !5
  %5591 = call ptr @s2n_strerror(i32 noundef %5590, ptr noundef @.str.24)
  %5592 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5593 = load i32, ptr %5592, align 4, !tbaa !5
  %5594 = call ptr @s2n_strerror_debug(i32 noundef %5593, ptr noundef @.str.24)
  %5595 = call ptr @__errno_location() #10
  %5596 = load i32, ptr %5595, align 4, !tbaa !5
  %5597 = call ptr @strerror(i32 noundef %5596) #9
  %5598 = call ptr @__errno_location() #10
  %5599 = load i32, ptr %5598, align 4, !tbaa !5
  %5600 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5587, ptr noundef @.str.22, i32 noundef %5588, ptr noundef @.str.69, ptr noundef @.str.21, i32 noundef 262, ptr noundef %5591, ptr noundef %5594, ptr noundef %5597, i32 noundef %5599) #9
  br label %5618

5601:                                             ; preds = %5579, %5572
  %5602 = load i32, ptr %130, align 4, !tbaa !5
  %5603 = call ptr @__errno_location() #10
  store i32 %5602, ptr %5603, align 4, !tbaa !5
  %5604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5605 = load i32, ptr @test_count, align 4, !tbaa !5
  %5606 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5607 = load i32, ptr %5606, align 4, !tbaa !5
  %5608 = call ptr @s2n_strerror(i32 noundef %5607, ptr noundef @.str.24)
  %5609 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5610 = load i32, ptr %5609, align 4, !tbaa !5
  %5611 = call ptr @s2n_strerror_debug(i32 noundef %5610, ptr noundef @.str.24)
  %5612 = call ptr @__errno_location() #10
  %5613 = load i32, ptr %5612, align 4, !tbaa !5
  %5614 = call ptr @strerror(i32 noundef %5613) #9
  %5615 = call ptr @__errno_location() #10
  %5616 = load i32, ptr %5615, align 4, !tbaa !5
  %5617 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5604, ptr noundef @.str.25, i32 noundef %5605, ptr noundef @.str.69, ptr noundef @.str.21, i32 noundef 262, ptr noundef %5608, ptr noundef %5611, ptr noundef %5614, i32 noundef %5616) #9
  br label %5618

5618:                                             ; preds = %5601, %5584
  call void @llvm.lifetime.end.p0(i64 4, ptr %130) #9
  br label %5619

5619:                                             ; preds = %5618
  br label %5620

5620:                                             ; preds = %5619
  call void @exit(i32 noundef 1) #11
  unreachable

5621:                                             ; No predecessors!
  br label %5622

5622:                                             ; preds = %5621
  br label %5623

5623:                                             ; preds = %5622, %5564
  br label %5624

5624:                                             ; preds = %5623
  br label %5625

5625:                                             ; preds = %5624
  br label %5626

5626:                                             ; preds = %5625
  %5627 = load i32, ptr @test_count, align 4, !tbaa !5
  %5628 = add nsw i32 %5627, 1
  store i32 %5628, ptr @test_count, align 4, !tbaa !5
  %5629 = load ptr, ptr %111, align 8, !tbaa !9
  %5630 = call i32 @s2n_connection_free(ptr noundef %5629)
  %5631 = icmp eq i32 %5630, -1
  br i1 %5631, label %5632, label %5685

5632:                                             ; preds = %5626
  br label %5633

5633:                                             ; preds = %5632
  br label %5634

5634:                                             ; preds = %5633
  call void @llvm.lifetime.start.p0(i64 4, ptr %131) #9
  %5635 = call ptr @__errno_location() #10
  %5636 = load i32, ptr %5635, align 4, !tbaa !5
  store i32 %5636, ptr %131, align 4, !tbaa !5
  %5637 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5638 = call i32 @s2n_print_stacktrace(ptr noundef %5637)
  %5639 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5640 = trunc i8 %5639 to i1
  br i1 %5640, label %5641, label %5663

5641:                                             ; preds = %5634
  %5642 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5643 = call i32 @fileno(ptr noundef %5642) #9
  %5644 = call i32 @isatty(i32 noundef %5643) #9
  %5645 = icmp ne i32 %5644, 0
  br i1 %5645, label %5646, label %5663

5646:                                             ; preds = %5641
  %5647 = load i32, ptr %131, align 4, !tbaa !5
  %5648 = call ptr @__errno_location() #10
  store i32 %5647, ptr %5648, align 4, !tbaa !5
  %5649 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5650 = load i32, ptr @test_count, align 4, !tbaa !5
  %5651 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5652 = load i32, ptr %5651, align 4, !tbaa !5
  %5653 = call ptr @s2n_strerror(i32 noundef %5652, ptr noundef @.str.24)
  %5654 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5655 = load i32, ptr %5654, align 4, !tbaa !5
  %5656 = call ptr @s2n_strerror_debug(i32 noundef %5655, ptr noundef @.str.24)
  %5657 = call ptr @__errno_location() #10
  %5658 = load i32, ptr %5657, align 4, !tbaa !5
  %5659 = call ptr @strerror(i32 noundef %5658) #9
  %5660 = call ptr @__errno_location() #10
  %5661 = load i32, ptr %5660, align 4, !tbaa !5
  %5662 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5649, ptr noundef @.str.22, i32 noundef %5650, ptr noundef @.str.70, ptr noundef @.str.21, i32 noundef 264, ptr noundef %5653, ptr noundef %5656, ptr noundef %5659, i32 noundef %5661) #9
  br label %5680

5663:                                             ; preds = %5641, %5634
  %5664 = load i32, ptr %131, align 4, !tbaa !5
  %5665 = call ptr @__errno_location() #10
  store i32 %5664, ptr %5665, align 4, !tbaa !5
  %5666 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5667 = load i32, ptr @test_count, align 4, !tbaa !5
  %5668 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5669 = load i32, ptr %5668, align 4, !tbaa !5
  %5670 = call ptr @s2n_strerror(i32 noundef %5669, ptr noundef @.str.24)
  %5671 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5672 = load i32, ptr %5671, align 4, !tbaa !5
  %5673 = call ptr @s2n_strerror_debug(i32 noundef %5672, ptr noundef @.str.24)
  %5674 = call ptr @__errno_location() #10
  %5675 = load i32, ptr %5674, align 4, !tbaa !5
  %5676 = call ptr @strerror(i32 noundef %5675) #9
  %5677 = call ptr @__errno_location() #10
  %5678 = load i32, ptr %5677, align 4, !tbaa !5
  %5679 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5666, ptr noundef @.str.25, i32 noundef %5667, ptr noundef @.str.70, ptr noundef @.str.21, i32 noundef 264, ptr noundef %5670, ptr noundef %5673, ptr noundef %5676, i32 noundef %5678) #9
  br label %5680

5680:                                             ; preds = %5663, %5646
  call void @llvm.lifetime.end.p0(i64 4, ptr %131) #9
  br label %5681

5681:                                             ; preds = %5680
  br label %5682

5682:                                             ; preds = %5681
  call void @exit(i32 noundef 1) #11
  unreachable

5683:                                             ; No predecessors!
  br label %5684

5684:                                             ; preds = %5683
  br label %5685

5685:                                             ; preds = %5684, %5626
  br label %5686

5686:                                             ; preds = %5685
  br label %5687

5687:                                             ; preds = %5686
  br label %5688

5688:                                             ; preds = %5687
  %5689 = load i32, ptr @test_count, align 4, !tbaa !5
  %5690 = add nsw i32 %5689, 1
  store i32 %5690, ptr @test_count, align 4, !tbaa !5
  %5691 = load ptr, ptr %114, align 8, !tbaa !9
  %5692 = call i32 @s2n_connection_free(ptr noundef %5691)
  %5693 = icmp eq i32 %5692, -1
  br i1 %5693, label %5694, label %5747

5694:                                             ; preds = %5688
  br label %5695

5695:                                             ; preds = %5694
  br label %5696

5696:                                             ; preds = %5695
  call void @llvm.lifetime.start.p0(i64 4, ptr %132) #9
  %5697 = call ptr @__errno_location() #10
  %5698 = load i32, ptr %5697, align 4, !tbaa !5
  store i32 %5698, ptr %132, align 4, !tbaa !5
  %5699 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5700 = call i32 @s2n_print_stacktrace(ptr noundef %5699)
  %5701 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5702 = trunc i8 %5701 to i1
  br i1 %5702, label %5703, label %5725

5703:                                             ; preds = %5696
  %5704 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5705 = call i32 @fileno(ptr noundef %5704) #9
  %5706 = call i32 @isatty(i32 noundef %5705) #9
  %5707 = icmp ne i32 %5706, 0
  br i1 %5707, label %5708, label %5725

5708:                                             ; preds = %5703
  %5709 = load i32, ptr %132, align 4, !tbaa !5
  %5710 = call ptr @__errno_location() #10
  store i32 %5709, ptr %5710, align 4, !tbaa !5
  %5711 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5712 = load i32, ptr @test_count, align 4, !tbaa !5
  %5713 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5714 = load i32, ptr %5713, align 4, !tbaa !5
  %5715 = call ptr @s2n_strerror(i32 noundef %5714, ptr noundef @.str.24)
  %5716 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5717 = load i32, ptr %5716, align 4, !tbaa !5
  %5718 = call ptr @s2n_strerror_debug(i32 noundef %5717, ptr noundef @.str.24)
  %5719 = call ptr @__errno_location() #10
  %5720 = load i32, ptr %5719, align 4, !tbaa !5
  %5721 = call ptr @strerror(i32 noundef %5720) #9
  %5722 = call ptr @__errno_location() #10
  %5723 = load i32, ptr %5722, align 4, !tbaa !5
  %5724 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5711, ptr noundef @.str.22, i32 noundef %5712, ptr noundef @.str.71, ptr noundef @.str.21, i32 noundef 265, ptr noundef %5715, ptr noundef %5718, ptr noundef %5721, i32 noundef %5723) #9
  br label %5742

5725:                                             ; preds = %5703, %5696
  %5726 = load i32, ptr %132, align 4, !tbaa !5
  %5727 = call ptr @__errno_location() #10
  store i32 %5726, ptr %5727, align 4, !tbaa !5
  %5728 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5729 = load i32, ptr @test_count, align 4, !tbaa !5
  %5730 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5731 = load i32, ptr %5730, align 4, !tbaa !5
  %5732 = call ptr @s2n_strerror(i32 noundef %5731, ptr noundef @.str.24)
  %5733 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5734 = load i32, ptr %5733, align 4, !tbaa !5
  %5735 = call ptr @s2n_strerror_debug(i32 noundef %5734, ptr noundef @.str.24)
  %5736 = call ptr @__errno_location() #10
  %5737 = load i32, ptr %5736, align 4, !tbaa !5
  %5738 = call ptr @strerror(i32 noundef %5737) #9
  %5739 = call ptr @__errno_location() #10
  %5740 = load i32, ptr %5739, align 4, !tbaa !5
  %5741 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5728, ptr noundef @.str.25, i32 noundef %5729, ptr noundef @.str.71, ptr noundef @.str.21, i32 noundef 265, ptr noundef %5732, ptr noundef %5735, ptr noundef %5738, i32 noundef %5740) #9
  br label %5742

5742:                                             ; preds = %5725, %5708
  call void @llvm.lifetime.end.p0(i64 4, ptr %132) #9
  br label %5743

5743:                                             ; preds = %5742
  br label %5744

5744:                                             ; preds = %5743
  call void @exit(i32 noundef 1) #11
  unreachable

5745:                                             ; No predecessors!
  br label %5746

5746:                                             ; preds = %5745
  br label %5747

5747:                                             ; preds = %5746, %5688
  br label %5748

5748:                                             ; preds = %5747
  br label %5749

5749:                                             ; preds = %5748
  call void @llvm.lifetime.end.p0(i64 10, ptr %125) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %122) #9
  %5750 = call i32 @s2n_stuffer_free(ptr noundef %118)
  call void @llvm.lifetime.end.p0(i64 40, ptr %118) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %114) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %111) #9
  br label %5751

5751:                                             ; preds = %5749
  br label %5752

5752:                                             ; preds = %5751
  %5753 = call i32 @s2n_cleanup()
  %5754 = icmp eq i32 %5753, -1
  br i1 %5754, label %5755, label %5806

5755:                                             ; preds = %5752
  br label %5756

5756:                                             ; preds = %5755
  br label %5757

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

5764:                                             ; preds = %5757
  %5765 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5766 = call i32 @fileno(ptr noundef %5765) #9
  %5767 = call i32 @isatty(i32 noundef %5766) #9
  %5768 = icmp ne i32 %5767, 0
  br i1 %5768, label %5769, label %5786

5769:                                             ; preds = %5764
  %5770 = load i32, ptr %133, align 4, !tbaa !5
  %5771 = call ptr @__errno_location() #10
  store i32 %5770, ptr %5771, align 4, !tbaa !5
  %5772 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5773 = load i32, ptr @test_count, align 4, !tbaa !5
  %5774 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5775 = load i32, ptr %5774, align 4, !tbaa !5
  %5776 = call ptr @s2n_strerror(i32 noundef %5775, ptr noundef @.str.24)
  %5777 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5778 = load i32, ptr %5777, align 4, !tbaa !5
  %5779 = call ptr @s2n_strerror_debug(i32 noundef %5778, ptr noundef @.str.24)
  %5780 = call ptr @__errno_location() #10
  %5781 = load i32, ptr %5780, align 4, !tbaa !5
  %5782 = call ptr @strerror(i32 noundef %5781) #9
  %5783 = call ptr @__errno_location() #10
  %5784 = load i32, ptr %5783, align 4, !tbaa !5
  %5785 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5772, ptr noundef @.str.22, i32 noundef %5773, ptr noundef @.str.72, ptr noundef @.str.21, i32 noundef 268, ptr noundef %5776, ptr noundef %5779, ptr noundef %5782, i32 noundef %5784) #9
  br label %5803

5786:                                             ; preds = %5764, %5757
  %5787 = load i32, ptr %133, align 4, !tbaa !5
  %5788 = call ptr @__errno_location() #10
  store i32 %5787, ptr %5788, align 4, !tbaa !5
  %5789 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5790 = load i32, ptr @test_count, align 4, !tbaa !5
  %5791 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5792 = load i32, ptr %5791, align 4, !tbaa !5
  %5793 = call ptr @s2n_strerror(i32 noundef %5792, ptr noundef @.str.24)
  %5794 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5795 = load i32, ptr %5794, align 4, !tbaa !5
  %5796 = call ptr @s2n_strerror_debug(i32 noundef %5795, ptr noundef @.str.24)
  %5797 = call ptr @__errno_location() #10
  %5798 = load i32, ptr %5797, align 4, !tbaa !5
  %5799 = call ptr @strerror(i32 noundef %5798) #9
  %5800 = call ptr @__errno_location() #10
  %5801 = load i32, ptr %5800, align 4, !tbaa !5
  %5802 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5789, ptr noundef @.str.25, i32 noundef %5790, ptr noundef @.str.72, ptr noundef @.str.21, i32 noundef 268, ptr noundef %5793, ptr noundef %5796, ptr noundef %5799, i32 noundef %5801) #9
  br label %5803

5803:                                             ; preds = %5786, %5769
  call void @llvm.lifetime.end.p0(i64 4, ptr %133) #9
  br label %5804

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

5805:                                             ; No predecessors!
  br label %5806

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

5807:                                             ; preds = %5806
  br label %5808

5808:                                             ; preds = %5807
  br label %5809

5809:                                             ; preds = %5808
  %5810 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %5811 = icmp eq i32 %5810, -1
  br i1 %5811, label %5812, label %5863

5812:                                             ; preds = %5809
  br label %5813

5813:                                             ; preds = %5812
  br label %5814

5814:                                             ; preds = %5813
  call void @llvm.lifetime.start.p0(i64 4, ptr %134) #9
  %5815 = call ptr @__errno_location() #10
  %5816 = load i32, ptr %5815, align 4, !tbaa !5
  store i32 %5816, ptr %134, align 4, !tbaa !5
  %5817 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5818 = call i32 @s2n_print_stacktrace(ptr noundef %5817)
  %5819 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5820 = trunc i8 %5819 to i1
  br i1 %5820, label %5821, label %5843

5821:                                             ; preds = %5814
  %5822 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5823 = call i32 @fileno(ptr noundef %5822) #9
  %5824 = call i32 @isatty(i32 noundef %5823) #9
  %5825 = icmp ne i32 %5824, 0
  br i1 %5825, label %5826, label %5843

5826:                                             ; preds = %5821
  %5827 = load i32, ptr %134, align 4, !tbaa !5
  %5828 = call ptr @__errno_location() #10
  store i32 %5827, ptr %5828, align 4, !tbaa !5
  %5829 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5830 = load i32, ptr @test_count, align 4, !tbaa !5
  %5831 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5832 = load i32, ptr %5831, align 4, !tbaa !5
  %5833 = call ptr @s2n_strerror(i32 noundef %5832, ptr noundef @.str.24)
  %5834 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5835 = load i32, ptr %5834, align 4, !tbaa !5
  %5836 = call ptr @s2n_strerror_debug(i32 noundef %5835, ptr noundef @.str.24)
  %5837 = call ptr @__errno_location() #10
  %5838 = load i32, ptr %5837, align 4, !tbaa !5
  %5839 = call ptr @strerror(i32 noundef %5838) #9
  %5840 = call ptr @__errno_location() #10
  %5841 = load i32, ptr %5840, align 4, !tbaa !5
  %5842 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5829, ptr noundef @.str.22, i32 noundef %5830, ptr noundef @.str.73, ptr noundef @.str.21, i32 noundef 268, ptr noundef %5833, ptr noundef %5836, ptr noundef %5839, i32 noundef %5841) #9
  br label %5860

5843:                                             ; preds = %5821, %5814
  %5844 = load i32, ptr %134, align 4, !tbaa !5
  %5845 = call ptr @__errno_location() #10
  store i32 %5844, ptr %5845, align 4, !tbaa !5
  %5846 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5847 = load i32, ptr @test_count, align 4, !tbaa !5
  %5848 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5849 = load i32, ptr %5848, align 4, !tbaa !5
  %5850 = call ptr @s2n_strerror(i32 noundef %5849, ptr noundef @.str.24)
  %5851 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5852 = load i32, ptr %5851, align 4, !tbaa !5
  %5853 = call ptr @s2n_strerror_debug(i32 noundef %5852, ptr noundef @.str.24)
  %5854 = call ptr @__errno_location() #10
  %5855 = load i32, ptr %5854, align 4, !tbaa !5
  %5856 = call ptr @strerror(i32 noundef %5855) #9
  %5857 = call ptr @__errno_location() #10
  %5858 = load i32, ptr %5857, align 4, !tbaa !5
  %5859 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5846, ptr noundef @.str.25, i32 noundef %5847, ptr noundef @.str.73, ptr noundef @.str.21, i32 noundef 268, ptr noundef %5850, ptr noundef %5853, ptr noundef %5856, i32 noundef %5858) #9
  br label %5860

5860:                                             ; preds = %5843, %5826
  call void @llvm.lifetime.end.p0(i64 4, ptr %134) #9
  br label %5861

5861:                                             ; preds = %5860
  call void @exit(i32 noundef 1) #11
  unreachable

5862:                                             ; No predecessors!
  br label %5863

5863:                                             ; preds = %5862, %5809
  br label %5864

5864:                                             ; preds = %5863
  %5865 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5866 = trunc i8 %5865 to i1
  br i1 %5866, label %5867, label %5883

5867:                                             ; preds = %5864
  %5868 = load ptr, ptr @stdout, align 8, !tbaa !9
  %5869 = call i32 @fileno(ptr noundef %5868) #9
  %5870 = call i32 @isatty(i32 noundef %5869) #9
  %5871 = icmp ne i32 %5870, 0
  br i1 %5871, label %5872, label %5883

5872:                                             ; preds = %5867
  %5873 = load i32, ptr @test_count, align 4, !tbaa !5
  %5874 = icmp ne i32 %5873, 0
  br i1 %5874, label %5875, label %5879

5875:                                             ; preds = %5872
  %5876 = load ptr, ptr @stdout, align 8, !tbaa !9
  %5877 = load i32, ptr @test_count, align 4, !tbaa !5
  %5878 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5876, ptr noundef @.str.74, i32 noundef %5877) #9
  br label %5882

5879:                                             ; preds = %5872
  %5880 = load ptr, ptr @stdout, align 8, !tbaa !9
  %5881 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5880, ptr noundef @.str.75) #9
  br label %5882

5882:                                             ; preds = %5879, %5875
  br label %5894

5883:                                             ; preds = %5867, %5864
  %5884 = load i32, ptr @test_count, align 4, !tbaa !5
  %5885 = icmp ne i32 %5884, 0
  br i1 %5885, label %5886, label %5890

5886:                                             ; preds = %5883
  %5887 = load ptr, ptr @stdout, align 8, !tbaa !9
  %5888 = load i32, ptr @test_count, align 4, !tbaa !5
  %5889 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5887, ptr noundef @.str.76, i32 noundef %5888) #9
  br label %5893

5890:                                             ; preds = %5883
  %5891 = load ptr, ptr @stdout, align 8, !tbaa !9
  %5892 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5891, ptr noundef @.str.77) #9
  br label %5893

5893:                                             ; preds = %5890, %5886
  br label %5894

5894:                                             ; preds = %5893, %5882
  store i32 0, ptr %3, align 4
  br label %5896

5895:                                             ; No predecessors!
  br label %5896

5896:                                             ; preds = %5895, %5894
  %5897 = load i32, ptr %3, align 4
  ret i32 %5897
}

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

declare i32 @fflush(ptr noundef) #2

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) #2

declare i32 @s2n_print_stacktrace(ptr noundef) #2

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

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

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

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

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

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

declare i32 @s2n_enable_atexit() #2

declare i32 @s2n_init() #2

declare ptr @s2n_connection_new(i32 noundef) #2

declare zeroext i1 @s2n_atomic_flag_test(ptr noundef) #2

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

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

declare i32 @s2n_post_handshake_recv(ptr noundef) #2

declare i32 @s2n_connection_free(ptr noundef) #2

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

declare void @s2n_debug_info_reset() #2

declare i32 @s2n_key_update_write(ptr noundef) #2

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

declare i32 @s2n_connection_ptr_free(ptr noundef) #2

declare i32 @s2n_connection_set_secrets(ptr noundef) #2

declare i32 @s2n_stuffer_free(ptr noundef) #2

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

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

declare void @s2n_atomic_flag_set(ptr noundef) #2

declare void @s2n_atomic_flag_clear(ptr noundef) #2

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

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

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

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

declare i64 @s2n_recv(ptr noundef, ptr noundef, i64 noundef, ptr noundef) #2

declare i64 @s2n_connection_get_delay(ptr noundef) #2

declare i32 @s2n_cleanup() #2

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

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

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


; 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_handshake_action = type { i8, i8, i8, [2 x ptr] }
%struct.s2n_cipher_suite = type { i8, ptr, ptr, [2 x i8], ptr, i32, ptr, [2 x ptr], i8, ptr, ptr, i32, i8 }
%struct.s2n_blob = type { ptr, i32, i32, i8 }
%struct.s2n_stuffer = type { %struct.s2n_blob, i32, i32, i32, i8 }

@s2n_use_color_in_output = external dso_local local_unnamed_addr global i8, align 1
@s2n_errno = external thread_local local_unnamed_addr global i32, align 4
@tls13_state_machine = external hidden local_unnamed_addr global [21 x %struct.s2n_handshake_action], align 16
@state_machine = external hidden local_unnamed_addr global [21 x %struct.s2n_handshake_action], align 16
@test_count = external dso_local local_unnamed_addr global i32, align 4
@stdout = external local_unnamed_addr global ptr, align 8
@.str.20 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [82 x i8], align 1
@stderr = external local_unnamed_addr global ptr, align 8
@.str.22 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [72 x i8], align 1
@s2n_tls13_aes_256_gcm_sha384 = external global %struct.s2n_cipher_suite, align 8
@.str.29 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [113 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [25 x i8], align 1

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

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

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

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

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

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

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

declare zeroext i1 @s2n_connection_check_io_status(ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @s2n_post_handshake_send(ptr noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: nounwind uwtable
define dso_local noundef i32 @main(i32 noundef %0, ptr nocapture noundef readnone %1) local_unnamed_addr #6 {
  %3 = alloca [5 x i8], align 1
  %4 = alloca %struct.s2n_blob, align 8
  %5 = alloca ptr, align 8
  %6 = alloca %struct.s2n_stuffer, align 8
  %7 = alloca i32, align 4
  %8 = alloca ptr, align 8
  %9 = alloca i32, align 4
  %10 = alloca ptr, align 8
  %11 = alloca i32, align 4
  %12 = alloca %struct.s2n_stuffer, align 8
  %13 = alloca i32, align 4
  %14 = alloca [10 x i8], align 1
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %15 = load ptr, ptr @stdout, align 8, !tbaa !9
  %16 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.21) #10
  %17 = load ptr, ptr @stdout, align 8, !tbaa !9
  %18 = tail call i32 @fflush(ptr noundef %17)
  %19 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext true) #10
  %20 = icmp eq i32 %19, -1
  br i1 %20, label %21, label %45

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

28:                                               ; preds = %21
  %29 = load ptr, ptr @stderr, align 8, !tbaa !9
  %30 = tail call i32 @fileno(ptr noundef %29) #10
  %31 = tail call i32 @isatty(i32 noundef %30) #10
  %.not371 = icmp eq i32 %31, 0
  br i1 %.not371, label %32, label %33

32:                                               ; preds = %28, %21
  br label %33

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

45:                                               ; preds = %2
  %46 = load i32, ptr @test_count, align 4, !tbaa !5
  %47 = add nsw i32 %46, 1
  store i32 %47, ptr @test_count, align 4, !tbaa !5
  %48 = tail call i32 @s2n_enable_atexit() #10
  %49 = icmp eq i32 %48, -1
  br i1 %49, label %50, label %74

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

57:                                               ; preds = %50
  %58 = load ptr, ptr @stderr, align 8, !tbaa !9
  %59 = tail call i32 @fileno(ptr noundef %58) #10
  %60 = tail call i32 @isatty(i32 noundef %59) #10
  %.not370 = icmp eq i32 %60, 0
  br i1 %.not370, label %61, label %62

61:                                               ; preds = %57, %50
  br label %62

62:                                               ; preds = %57, %61
  %.str.25.sink386 = phi ptr [ @.str.25, %61 ], [ @.str.22, %57 ]
  store i32 %52, ptr %51, align 4, !tbaa !5
  %63 = load ptr, ptr @stderr, align 8, !tbaa !9
  %64 = load i32, ptr @test_count, align 4, !tbaa !5
  %65 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %66 = load i32, ptr %65, align 4, !tbaa !5
  %67 = tail call ptr @s2n_strerror(i32 noundef %66, ptr noundef nonnull @.str.24) #10
  %68 = load i32, ptr %65, align 4, !tbaa !5
  %69 = tail call ptr @s2n_strerror_debug(i32 noundef %68, ptr noundef nonnull @.str.24) #10
  %70 = load i32, ptr %51, align 4, !tbaa !5
  %71 = tail call ptr @strerror(i32 noundef %70) #10
  %72 = load i32, ptr %51, align 4, !tbaa !5
  %73 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %63, ptr noundef nonnull %.str.25.sink386, i32 noundef %64, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.21, i32 noundef 38, ptr noundef %67, ptr noundef %69, ptr noundef %71, i32 noundef %72) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

74:                                               ; preds = %45
  %75 = tail call i32 @s2n_init() #10
  %76 = icmp eq i32 %75, -1
  br i1 %76, label %77, label %101

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

84:                                               ; preds = %77
  %85 = load ptr, ptr @stderr, align 8, !tbaa !9
  %86 = tail call i32 @fileno(ptr noundef %85) #10
  %87 = tail call i32 @isatty(i32 noundef %86) #10
  %.not369 = icmp eq i32 %87, 0
  br i1 %.not369, label %88, label %89

88:                                               ; preds = %84, %77
  br label %89

89:                                               ; preds = %84, %88
  %.str.25.sink397 = phi ptr [ @.str.25, %88 ], [ @.str.22, %84 ]
  store i32 %79, ptr %78, align 4, !tbaa !5
  %90 = load ptr, ptr @stderr, align 8, !tbaa !9
  %91 = load i32, ptr @test_count, align 4, !tbaa !5
  %92 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %93 = load i32, ptr %92, align 4, !tbaa !5
  %94 = tail call ptr @s2n_strerror(i32 noundef %93, ptr noundef nonnull @.str.24) #10
  %95 = load i32, ptr %92, align 4, !tbaa !5
  %96 = tail call ptr @s2n_strerror_debug(i32 noundef %95, ptr noundef nonnull @.str.24) #10
  %97 = load i32, ptr %78, align 4, !tbaa !5
  %98 = tail call ptr @strerror(i32 noundef %97) #10
  %99 = load i32, ptr %78, align 4, !tbaa !5
  %100 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %90, ptr noundef nonnull %.str.25.sink397, i32 noundef %91, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.21, i32 noundef 38, ptr noundef %94, ptr noundef %96, ptr noundef %98, i32 noundef %99) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

101:                                              ; preds = %74
  %102 = load i32, ptr @test_count, align 4, !tbaa !5
  %103 = add nsw i32 %102, 1
  store i32 %103, ptr @test_count, align 4, !tbaa !5
  %104 = tail call ptr @s2n_connection_new(i32 noundef 0) #10
  %105 = icmp eq ptr %104, null
  br i1 %105, label %106, label %130

106:                                              ; preds = %101
  %107 = tail call ptr @__errno_location() #11
  %108 = load i32, ptr %107, align 4, !tbaa !5
  %109 = load ptr, ptr @stderr, align 8, !tbaa !9
  %110 = tail call i32 @s2n_print_stacktrace(ptr noundef %109) #10
  %111 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %112 = trunc nuw i8 %111 to i1
  br i1 %112, label %113, label %117

113:                                              ; preds = %106
  %114 = load ptr, ptr @stderr, align 8, !tbaa !9
  %115 = tail call i32 @fileno(ptr noundef %114) #10
  %116 = tail call i32 @isatty(i32 noundef %115) #10
  %.not368 = icmp eq i32 %116, 0
  br i1 %.not368, label %117, label %118

117:                                              ; preds = %113, %106
  br label %118

118:                                              ; preds = %113, %117
  %.str.25.sink408 = phi ptr [ @.str.25, %117 ], [ @.str.22, %113 ]
  store i32 %108, ptr %107, align 4, !tbaa !5
  %119 = load ptr, ptr @stderr, align 8, !tbaa !9
  %120 = load i32, ptr @test_count, align 4, !tbaa !5
  %121 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %122 = load i32, ptr %121, align 4, !tbaa !5
  %123 = tail call ptr @s2n_strerror(i32 noundef %122, ptr noundef nonnull @.str.24) #10
  %124 = load i32, ptr %121, align 4, !tbaa !5
  %125 = tail call ptr @s2n_strerror_debug(i32 noundef %124, ptr noundef nonnull @.str.24) #10
  %126 = load i32, ptr %107, align 4, !tbaa !5
  %127 = tail call ptr @strerror(i32 noundef %126) #10
  %128 = load i32, ptr %107, align 4, !tbaa !5
  %129 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %119, ptr noundef nonnull %.str.25.sink408, i32 noundef %120, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.21, i32 noundef 45, ptr noundef %123, ptr noundef %125, ptr noundef %127, i32 noundef %128) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

130:                                              ; preds = %101
  %131 = getelementptr inbounds i8, ptr %104, i64 220
  store i8 34, ptr %131, align 4, !tbaa !15
  %132 = getelementptr inbounds i8, ptr %104, i64 232
  %133 = load ptr, ptr %132, align 8, !tbaa !42
  store ptr @s2n_tls13_aes_256_gcm_sha384, ptr %133, align 8, !tbaa !43
  %134 = load i32, ptr @test_count, align 4, !tbaa !5
  %135 = add nsw i32 %134, 1
  store i32 %135, ptr @test_count, align 4, !tbaa !5
  %136 = getelementptr inbounds i8, ptr %104, i64 4176
  %137 = tail call zeroext i1 @s2n_atomic_flag_test(ptr noundef nonnull %136) #10
  br i1 %137, label %138, label %162

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

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

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

150:                                              ; preds = %145, %149
  %.str.25.sink419 = phi ptr [ @.str.25, %149 ], [ @.str.22, %145 ]
  store i32 %140, ptr %139, align 4, !tbaa !5
  %151 = load ptr, ptr @stderr, align 8, !tbaa !9
  %152 = load i32, ptr @test_count, align 4, !tbaa !5
  %153 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %154 = load i32, ptr %153, align 4, !tbaa !5
  %155 = tail call ptr @s2n_strerror(i32 noundef %154, ptr noundef nonnull @.str.24) #10
  %156 = load i32, ptr %153, align 4, !tbaa !5
  %157 = tail call ptr @s2n_strerror_debug(i32 noundef %156, ptr noundef nonnull @.str.24) #10
  %158 = load i32, ptr %139, align 4, !tbaa !5
  %159 = tail call ptr @strerror(i32 noundef %158) #10
  %160 = load i32, ptr %139, align 4, !tbaa !5
  %161 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %151, ptr noundef nonnull %.str.25.sink419, i32 noundef %152, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.21, i32 noundef 48, ptr noundef %155, ptr noundef %157, ptr noundef %159, i32 noundef %160) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

162:                                              ; preds = %130
  %163 = load i32, ptr @test_count, align 4, !tbaa !5
  %164 = add nsw i32 %163, 1
  store i32 %164, ptr @test_count, align 4, !tbaa !5
  %165 = getelementptr inbounds i8, ptr %104, i64 1856
  %166 = tail call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %165, i8 noundef zeroext 24) #10
  %167 = icmp eq i32 %166, -1
  br i1 %167, label %168, label %192

168:                                              ; preds = %162
  %169 = tail call ptr @__errno_location() #11
  %170 = load i32, ptr %169, align 4, !tbaa !5
  %171 = load ptr, ptr @stderr, align 8, !tbaa !9
  %172 = tail call i32 @s2n_print_stacktrace(ptr noundef %171) #10
  %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 = tail call i32 @fileno(ptr noundef %176) #10
  %178 = tail call i32 @isatty(i32 noundef %177) #10
  %.not366 = icmp eq i32 %178, 0
  br i1 %.not366, label %179, label %180

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

180:                                              ; preds = %175, %179
  %.str.25.sink430 = phi ptr [ @.str.25, %179 ], [ @.str.22, %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 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %184 = load i32, ptr %183, align 4, !tbaa !5
  %185 = tail call ptr @s2n_strerror(i32 noundef %184, ptr noundef nonnull @.str.24) #10
  %186 = load i32, ptr %183, align 4, !tbaa !5
  %187 = tail call ptr @s2n_strerror_debug(i32 noundef %186, ptr noundef nonnull @.str.24) #10
  %188 = load i32, ptr %169, align 4, !tbaa !5
  %189 = tail call ptr @strerror(i32 noundef %188) #10
  %190 = load i32, ptr %169, align 4, !tbaa !5
  %191 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %181, ptr noundef nonnull %.str.25.sink430, i32 noundef %182, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.21, i32 noundef 51, ptr noundef %185, ptr noundef %187, ptr noundef %189, i32 noundef %190) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

192:                                              ; preds = %162
  %193 = load i32, ptr @test_count, align 4, !tbaa !5
  %194 = add nsw i32 %193, 1
  store i32 %194, ptr @test_count, align 4, !tbaa !5
  %195 = tail call i32 @s2n_stuffer_write_uint24(ptr noundef nonnull %165, i32 noundef 1) #10
  %196 = icmp eq i32 %195, -1
  br i1 %196, label %197, label %221

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

204:                                              ; preds = %197
  %205 = load ptr, ptr @stderr, align 8, !tbaa !9
  %206 = tail call i32 @fileno(ptr noundef %205) #10
  %207 = tail call i32 @isatty(i32 noundef %206) #10
  %.not365 = icmp eq i32 %207, 0
  br i1 %.not365, label %208, label %209

208:                                              ; preds = %204, %197
  br label %209

209:                                              ; preds = %204, %208
  %.str.25.sink441 = phi ptr [ @.str.25, %208 ], [ @.str.22, %204 ]
  store i32 %199, ptr %198, align 4, !tbaa !5
  %210 = load ptr, ptr @stderr, align 8, !tbaa !9
  %211 = load i32, ptr @test_count, align 4, !tbaa !5
  %212 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %213 = load i32, ptr %212, align 4, !tbaa !5
  %214 = tail call ptr @s2n_strerror(i32 noundef %213, ptr noundef nonnull @.str.24) #10
  %215 = load i32, ptr %212, align 4, !tbaa !5
  %216 = tail call ptr @s2n_strerror_debug(i32 noundef %215, ptr noundef nonnull @.str.24) #10
  %217 = load i32, ptr %198, align 4, !tbaa !5
  %218 = tail call ptr @strerror(i32 noundef %217) #10
  %219 = load i32, ptr %198, align 4, !tbaa !5
  %220 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %210, ptr noundef nonnull %.str.25.sink441, i32 noundef %211, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.21, i32 noundef 52, ptr noundef %214, ptr noundef %216, ptr noundef %218, i32 noundef %219) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

221:                                              ; preds = %192
  %222 = load i32, ptr @test_count, align 4, !tbaa !5
  %223 = add nsw i32 %222, 1
  store i32 %223, ptr @test_count, align 4, !tbaa !5
  %224 = tail call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %165, i8 noundef zeroext 1) #10
  %225 = icmp eq i32 %224, -1
  br i1 %225, label %226, label %250

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

233:                                              ; preds = %226
  %234 = load ptr, ptr @stderr, align 8, !tbaa !9
  %235 = tail call i32 @fileno(ptr noundef %234) #10
  %236 = tail call i32 @isatty(i32 noundef %235) #10
  %.not364 = icmp eq i32 %236, 0
  br i1 %.not364, label %237, label %238

237:                                              ; preds = %233, %226
  br label %238

238:                                              ; preds = %233, %237
  %.str.25.sink452 = phi ptr [ @.str.25, %237 ], [ @.str.22, %233 ]
  store i32 %228, ptr %227, align 4, !tbaa !5
  %239 = load ptr, ptr @stderr, align 8, !tbaa !9
  %240 = load i32, ptr @test_count, align 4, !tbaa !5
  %241 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %242 = load i32, ptr %241, align 4, !tbaa !5
  %243 = tail call ptr @s2n_strerror(i32 noundef %242, ptr noundef nonnull @.str.24) #10
  %244 = load i32, ptr %241, align 4, !tbaa !5
  %245 = tail call ptr @s2n_strerror_debug(i32 noundef %244, ptr noundef nonnull @.str.24) #10
  %246 = load i32, ptr %227, align 4, !tbaa !5
  %247 = tail call ptr @strerror(i32 noundef %246) #10
  %248 = load i32, ptr %227, align 4, !tbaa !5
  %249 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %239, ptr noundef nonnull %.str.25.sink452, i32 noundef %240, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.21, i32 noundef 53, ptr noundef %243, ptr noundef %245, ptr noundef %247, i32 noundef %248) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

250:                                              ; preds = %221
  %251 = load i32, ptr @test_count, align 4, !tbaa !5
  %252 = add nsw i32 %251, 1
  store i32 %252, ptr @test_count, align 4, !tbaa !5
  %253 = tail call i32 @s2n_post_handshake_recv(ptr noundef nonnull %104) #10
  %254 = tail call zeroext i1 @s2n_result_is_ok(i32 %253)
  br i1 %254, label %279, label %255

255:                                              ; preds = %250
  %256 = tail call ptr @__errno_location() #11
  %257 = load i32, ptr %256, align 4, !tbaa !5
  %258 = load ptr, ptr @stderr, align 8, !tbaa !9
  %259 = tail call i32 @s2n_print_stacktrace(ptr noundef %258) #10
  %260 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %261 = trunc nuw i8 %260 to i1
  br i1 %261, label %262, label %266

262:                                              ; preds = %255
  %263 = load ptr, ptr @stderr, align 8, !tbaa !9
  %264 = tail call i32 @fileno(ptr noundef %263) #10
  %265 = tail call i32 @isatty(i32 noundef %264) #10
  %.not = icmp eq i32 %265, 0
  br i1 %.not, label %266, label %267

266:                                              ; preds = %262, %255
  br label %267

267:                                              ; preds = %262, %266
  %.str.25.sink463 = phi ptr [ @.str.25, %266 ], [ @.str.22, %262 ]
  store i32 %257, ptr %256, align 4, !tbaa !5
  %268 = load ptr, ptr @stderr, align 8, !tbaa !9
  %269 = load i32, ptr @test_count, align 4, !tbaa !5
  %270 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %271 = load i32, ptr %270, align 4, !tbaa !5
  %272 = tail call ptr @s2n_strerror(i32 noundef %271, ptr noundef nonnull @.str.24) #10
  %273 = load i32, ptr %270, align 4, !tbaa !5
  %274 = tail call ptr @s2n_strerror_debug(i32 noundef %273, ptr noundef nonnull @.str.24) #10
  %275 = load i32, ptr %256, align 4, !tbaa !5
  %276 = tail call ptr @strerror(i32 noundef %275) #10
  %277 = load i32, ptr %256, align 4, !tbaa !5
  %278 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %268, ptr noundef nonnull %.str.25.sink463, i32 noundef %269, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.21, i32 noundef 55, ptr noundef %272, ptr noundef %274, ptr noundef %276, i32 noundef %277) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

279:                                              ; preds = %250
  %280 = load i32, ptr @test_count, align 4, !tbaa !5
  %281 = add nsw i32 %280, 1
  store i32 %281, ptr @test_count, align 4, !tbaa !5
  %282 = tail call zeroext i1 @s2n_atomic_flag_test(ptr noundef nonnull %136) #10
  br i1 %282, label %307, label %283

283:                                              ; preds = %279
  %284 = tail call ptr @__errno_location() #11
  %285 = load i32, ptr %284, align 4, !tbaa !5
  %286 = load ptr, ptr @stderr, align 8, !tbaa !9
  %287 = tail call i32 @s2n_print_stacktrace(ptr noundef %286) #10
  %288 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %289 = trunc nuw i8 %288 to i1
  br i1 %289, label %290, label %294

290:                                              ; preds = %283
  %291 = load ptr, ptr @stderr, align 8, !tbaa !9
  %292 = tail call i32 @fileno(ptr noundef %291) #10
  %293 = tail call i32 @isatty(i32 noundef %292) #10
  %.not278 = icmp eq i32 %293, 0
  br i1 %.not278, label %294, label %295

294:                                              ; preds = %290, %283
  br label %295

295:                                              ; preds = %290, %294
  %.str.25.sink474 = phi ptr [ @.str.25, %294 ], [ @.str.22, %290 ]
  store i32 %285, ptr %284, align 4, !tbaa !5
  %296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %297 = load i32, ptr @test_count, align 4, !tbaa !5
  %298 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %299 = load i32, ptr %298, align 4, !tbaa !5
  %300 = tail call ptr @s2n_strerror(i32 noundef %299, ptr noundef nonnull @.str.24) #10
  %301 = load i32, ptr %298, align 4, !tbaa !5
  %302 = tail call ptr @s2n_strerror_debug(i32 noundef %301, ptr noundef nonnull @.str.24) #10
  %303 = load i32, ptr %284, align 4, !tbaa !5
  %304 = tail call ptr @strerror(i32 noundef %303) #10
  %305 = load i32, ptr %284, align 4, !tbaa !5
  %306 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %296, ptr noundef nonnull %.str.25.sink474, i32 noundef %297, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.21, i32 noundef 56, ptr noundef %300, ptr noundef %302, ptr noundef %304, i32 noundef %305) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

307:                                              ; preds = %279
  %308 = load i32, ptr @test_count, align 4, !tbaa !5
  %309 = add nsw i32 %308, 1
  store i32 %309, ptr @test_count, align 4, !tbaa !5
  %310 = tail call i32 @s2n_connection_free(ptr noundef nonnull %104) #10
  %311 = icmp eq i32 %310, -1
  br i1 %311, label %312, label %336

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

319:                                              ; preds = %312
  %320 = load ptr, ptr @stderr, align 8, !tbaa !9
  %321 = tail call i32 @fileno(ptr noundef %320) #10
  %322 = tail call i32 @isatty(i32 noundef %321) #10
  %.not363 = icmp eq i32 %322, 0
  br i1 %.not363, label %323, label %324

323:                                              ; preds = %319, %312
  br label %324

324:                                              ; preds = %319, %323
  %.str.25.sink485 = phi ptr [ @.str.25, %323 ], [ @.str.22, %319 ]
  store i32 %314, ptr %313, align 4, !tbaa !5
  %325 = load ptr, ptr @stderr, align 8, !tbaa !9
  %326 = load i32, ptr @test_count, align 4, !tbaa !5
  %327 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %328 = load i32, ptr %327, align 4, !tbaa !5
  %329 = tail call ptr @s2n_strerror(i32 noundef %328, ptr noundef nonnull @.str.24) #10
  %330 = load i32, ptr %327, align 4, !tbaa !5
  %331 = tail call ptr @s2n_strerror_debug(i32 noundef %330, ptr noundef nonnull @.str.24) #10
  %332 = load i32, ptr %313, align 4, !tbaa !5
  %333 = tail call ptr @strerror(i32 noundef %332) #10
  %334 = load i32, ptr %313, align 4, !tbaa !5
  %335 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %325, ptr noundef nonnull %.str.25.sink485, i32 noundef %326, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.21, i32 noundef 58, ptr noundef %329, ptr noundef %331, ptr noundef %333, i32 noundef %334) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

336:                                              ; preds = %307
  %337 = load i32, ptr @test_count, align 4, !tbaa !5
  %338 = add nsw i32 %337, 1
  store i32 %338, ptr @test_count, align 4, !tbaa !5
  %339 = tail call ptr @s2n_connection_new(i32 noundef 0) #10
  %340 = icmp eq ptr %339, null
  br i1 %340, label %341, label %365

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

348:                                              ; preds = %341
  %349 = load ptr, ptr @stderr, align 8, !tbaa !9
  %350 = tail call i32 @fileno(ptr noundef %349) #10
  %351 = tail call i32 @isatty(i32 noundef %350) #10
  %.not362 = icmp eq i32 %351, 0
  br i1 %.not362, label %352, label %353

352:                                              ; preds = %348, %341
  br label %353

353:                                              ; preds = %348, %352
  %.str.25.sink496 = phi ptr [ @.str.25, %352 ], [ @.str.22, %348 ]
  store i32 %343, ptr %342, align 4, !tbaa !5
  %354 = load ptr, ptr @stderr, align 8, !tbaa !9
  %355 = load i32, ptr @test_count, align 4, !tbaa !5
  %356 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %357 = load i32, ptr %356, align 4, !tbaa !5
  %358 = tail call ptr @s2n_strerror(i32 noundef %357, ptr noundef nonnull @.str.24) #10
  %359 = load i32, ptr %356, align 4, !tbaa !5
  %360 = tail call ptr @s2n_strerror_debug(i32 noundef %359, ptr noundef nonnull @.str.24) #10
  %361 = load i32, ptr %342, align 4, !tbaa !5
  %362 = tail call ptr @strerror(i32 noundef %361) #10
  %363 = load i32, ptr %342, align 4, !tbaa !5
  %364 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %354, ptr noundef nonnull %.str.25.sink496, i32 noundef %355, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.21, i32 noundef 64, ptr noundef %358, ptr noundef %360, ptr noundef %362, i32 noundef %363) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

365:                                              ; preds = %336
  %366 = getelementptr inbounds i8, ptr %339, i64 220
  store i8 34, ptr %366, align 4, !tbaa !15
  %367 = getelementptr inbounds i8, ptr %339, i64 232
  %368 = load ptr, ptr %367, align 8, !tbaa !42
  store ptr @s2n_tls13_aes_256_gcm_sha384, ptr %368, align 8, !tbaa !43
  %369 = load i32, ptr @test_count, align 4, !tbaa !5
  %370 = add nsw i32 %369, 1
  store i32 %370, ptr @test_count, align 4, !tbaa !5
  %371 = getelementptr inbounds i8, ptr %339, i64 4176
  %372 = tail call zeroext i1 @s2n_atomic_flag_test(ptr noundef nonnull %371) #10
  br i1 %372, label %373, label %397

373:                                              ; preds = %365
  %374 = tail call ptr @__errno_location() #11
  %375 = load i32, ptr %374, align 4, !tbaa !5
  %376 = load ptr, ptr @stderr, align 8, !tbaa !9
  %377 = tail call i32 @s2n_print_stacktrace(ptr noundef %376) #10
  %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 = tail call i32 @fileno(ptr noundef %381) #10
  %383 = tail call i32 @isatty(i32 noundef %382) #10
  %.not361 = icmp eq i32 %383, 0
  br i1 %.not361, label %384, label %385

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

385:                                              ; preds = %380, %384
  %.str.25.sink507 = phi ptr [ @.str.25, %384 ], [ @.str.22, %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 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %389 = load i32, ptr %388, align 4, !tbaa !5
  %390 = tail call ptr @s2n_strerror(i32 noundef %389, ptr noundef nonnull @.str.24) #10
  %391 = load i32, ptr %388, align 4, !tbaa !5
  %392 = tail call ptr @s2n_strerror_debug(i32 noundef %391, ptr noundef nonnull @.str.24) #10
  %393 = load i32, ptr %374, align 4, !tbaa !5
  %394 = tail call ptr @strerror(i32 noundef %393) #10
  %395 = load i32, ptr %374, align 4, !tbaa !5
  %396 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %386, ptr noundef nonnull %.str.25.sink507, i32 noundef %387, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.21, i32 noundef 67, ptr noundef %390, ptr noundef %392, ptr noundef %394, i32 noundef %395) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

397:                                              ; preds = %365
  %398 = load i32, ptr @test_count, align 4, !tbaa !5
  %399 = add nsw i32 %398, 1
  store i32 %399, ptr @test_count, align 4, !tbaa !5
  %400 = getelementptr inbounds i8, ptr %339, i64 1856
  %401 = tail call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %400, i8 noundef zeroext -1) #10
  %402 = icmp eq i32 %401, -1
  br i1 %402, label %403, label %427

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

410:                                              ; preds = %403
  %411 = load ptr, ptr @stderr, align 8, !tbaa !9
  %412 = tail call i32 @fileno(ptr noundef %411) #10
  %413 = tail call i32 @isatty(i32 noundef %412) #10
  %.not360 = icmp eq i32 %413, 0
  br i1 %.not360, label %414, label %415

414:                                              ; preds = %410, %403
  br label %415

415:                                              ; preds = %410, %414
  %.str.25.sink518 = phi ptr [ @.str.25, %414 ], [ @.str.22, %410 ]
  store i32 %405, ptr %404, align 4, !tbaa !5
  %416 = load ptr, ptr @stderr, align 8, !tbaa !9
  %417 = load i32, ptr @test_count, align 4, !tbaa !5
  %418 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %419 = load i32, ptr %418, align 4, !tbaa !5
  %420 = tail call ptr @s2n_strerror(i32 noundef %419, ptr noundef nonnull @.str.24) #10
  %421 = load i32, ptr %418, align 4, !tbaa !5
  %422 = tail call ptr @s2n_strerror_debug(i32 noundef %421, ptr noundef nonnull @.str.24) #10
  %423 = load i32, ptr %404, align 4, !tbaa !5
  %424 = tail call ptr @strerror(i32 noundef %423) #10
  %425 = load i32, ptr %404, align 4, !tbaa !5
  %426 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %416, ptr noundef nonnull %.str.25.sink518, i32 noundef %417, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.21, i32 noundef 70, ptr noundef %420, ptr noundef %422, ptr noundef %424, i32 noundef %425) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

427:                                              ; preds = %397
  %428 = load i32, ptr @test_count, align 4, !tbaa !5
  %429 = add nsw i32 %428, 1
  store i32 %429, ptr @test_count, align 4, !tbaa !5
  %430 = tail call i32 @s2n_stuffer_write_uint24(ptr noundef nonnull %400, i32 noundef 1) #10
  %431 = icmp eq i32 %430, -1
  br i1 %431, label %432, label %456

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

439:                                              ; preds = %432
  %440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %441 = tail call i32 @fileno(ptr noundef %440) #10
  %442 = tail call i32 @isatty(i32 noundef %441) #10
  %.not359 = icmp eq i32 %442, 0
  br i1 %.not359, label %443, label %444

443:                                              ; preds = %439, %432
  br label %444

444:                                              ; preds = %439, %443
  %.str.25.sink529 = phi ptr [ @.str.25, %443 ], [ @.str.22, %439 ]
  store i32 %434, ptr %433, align 4, !tbaa !5
  %445 = load ptr, ptr @stderr, align 8, !tbaa !9
  %446 = load i32, ptr @test_count, align 4, !tbaa !5
  %447 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %448 = load i32, ptr %447, align 4, !tbaa !5
  %449 = tail call ptr @s2n_strerror(i32 noundef %448, ptr noundef nonnull @.str.24) #10
  %450 = load i32, ptr %447, align 4, !tbaa !5
  %451 = tail call ptr @s2n_strerror_debug(i32 noundef %450, ptr noundef nonnull @.str.24) #10
  %452 = load i32, ptr %433, align 4, !tbaa !5
  %453 = tail call ptr @strerror(i32 noundef %452) #10
  %454 = load i32, ptr %433, align 4, !tbaa !5
  %455 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %445, ptr noundef nonnull %.str.25.sink529, i32 noundef %446, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.21, i32 noundef 71, ptr noundef %449, ptr noundef %451, ptr noundef %453, i32 noundef %454) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

456:                                              ; preds = %427
  %457 = load i32, ptr @test_count, align 4, !tbaa !5
  %458 = add nsw i32 %457, 1
  store i32 %458, ptr @test_count, align 4, !tbaa !5
  %459 = tail call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %400, i8 noundef zeroext 1) #10
  %460 = icmp eq i32 %459, -1
  br i1 %460, label %461, label %485

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

468:                                              ; preds = %461
  %469 = load ptr, ptr @stderr, align 8, !tbaa !9
  %470 = tail call i32 @fileno(ptr noundef %469) #10
  %471 = tail call i32 @isatty(i32 noundef %470) #10
  %.not358 = icmp eq i32 %471, 0
  br i1 %.not358, label %472, label %473

472:                                              ; preds = %468, %461
  br label %473

473:                                              ; preds = %468, %472
  %.str.25.sink540 = phi ptr [ @.str.25, %472 ], [ @.str.22, %468 ]
  store i32 %463, ptr %462, align 4, !tbaa !5
  %474 = load ptr, ptr @stderr, align 8, !tbaa !9
  %475 = load i32, ptr @test_count, align 4, !tbaa !5
  %476 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %477 = load i32, ptr %476, align 4, !tbaa !5
  %478 = tail call ptr @s2n_strerror(i32 noundef %477, ptr noundef nonnull @.str.24) #10
  %479 = load i32, ptr %476, align 4, !tbaa !5
  %480 = tail call ptr @s2n_strerror_debug(i32 noundef %479, ptr noundef nonnull @.str.24) #10
  %481 = load i32, ptr %462, align 4, !tbaa !5
  %482 = tail call ptr @strerror(i32 noundef %481) #10
  %483 = load i32, ptr %462, align 4, !tbaa !5
  %484 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %474, ptr noundef nonnull %.str.25.sink540, i32 noundef %475, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.21, i32 noundef 72, ptr noundef %478, ptr noundef %480, ptr noundef %482, i32 noundef %483) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

485:                                              ; preds = %456
  %486 = load i32, ptr @test_count, align 4, !tbaa !5
  %487 = add nsw i32 %486, 1
  store i32 %487, ptr @test_count, align 4, !tbaa !5
  %488 = tail call i32 @s2n_post_handshake_recv(ptr noundef nonnull %339) #10
  %489 = tail call zeroext i1 @s2n_result_is_error(i32 %488)
  br i1 %489, label %514, label %490

490:                                              ; preds = %485
  %491 = tail call ptr @__errno_location() #11
  %492 = load i32, ptr %491, align 4, !tbaa !5
  %493 = load ptr, ptr @stderr, align 8, !tbaa !9
  %494 = tail call i32 @s2n_print_stacktrace(ptr noundef %493) #10
  %495 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %496 = trunc nuw i8 %495 to i1
  br i1 %496, label %497, label %501

497:                                              ; preds = %490
  %498 = load ptr, ptr @stderr, align 8, !tbaa !9
  %499 = tail call i32 @fileno(ptr noundef %498) #10
  %500 = tail call i32 @isatty(i32 noundef %499) #10
  %.not279 = icmp eq i32 %500, 0
  br i1 %.not279, label %501, label %502

501:                                              ; preds = %497, %490
  br label %502

502:                                              ; preds = %497, %501
  %.str.25.sink551 = phi ptr [ @.str.25, %501 ], [ @.str.22, %497 ]
  store i32 %492, ptr %491, align 4, !tbaa !5
  %503 = load ptr, ptr @stderr, align 8, !tbaa !9
  %504 = load i32, ptr @test_count, align 4, !tbaa !5
  %505 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %506 = load i32, ptr %505, align 4, !tbaa !5
  %507 = tail call ptr @s2n_strerror(i32 noundef %506, ptr noundef nonnull @.str.24) #10
  %508 = load i32, ptr %505, align 4, !tbaa !5
  %509 = tail call ptr @s2n_strerror_debug(i32 noundef %508, ptr noundef nonnull @.str.24) #10
  %510 = load i32, ptr %491, align 4, !tbaa !5
  %511 = tail call ptr @strerror(i32 noundef %510) #10
  %512 = load i32, ptr %491, align 4, !tbaa !5
  %513 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %503, ptr noundef nonnull %.str.25.sink551, i32 noundef %504, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.21, i32 noundef 74, ptr noundef %507, ptr noundef %509, ptr noundef %511, i32 noundef %512) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

514:                                              ; preds = %485
  %515 = load i32, ptr @test_count, align 4, !tbaa !5
  %516 = add nsw i32 %515, 1
  store i32 %516, ptr @test_count, align 4, !tbaa !5
  %517 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %518 = load i32, ptr %517, align 4, !tbaa !5
  %519 = icmp eq i32 %518, 335544322
  br i1 %519, label %543, label %520

520:                                              ; preds = %514
  %521 = tail call ptr @__errno_location() #11
  %522 = load i32, ptr %521, align 4, !tbaa !5
  %523 = load ptr, ptr @stderr, align 8, !tbaa !9
  %524 = tail call i32 @s2n_print_stacktrace(ptr noundef %523) #10
  %525 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %526 = trunc nuw i8 %525 to i1
  br i1 %526, label %527, label %531

527:                                              ; preds = %520
  %528 = load ptr, ptr @stderr, align 8, !tbaa !9
  %529 = tail call i32 @fileno(ptr noundef %528) #10
  %530 = tail call i32 @isatty(i32 noundef %529) #10
  %.not280 = icmp eq i32 %530, 0
  br i1 %.not280, label %531, label %532

531:                                              ; preds = %527, %520
  br label %532

532:                                              ; preds = %527, %531
  %.str.25.sink562 = phi ptr [ @.str.25, %531 ], [ @.str.22, %527 ]
  store i32 %522, ptr %521, align 4, !tbaa !5
  %533 = load ptr, ptr @stderr, align 8, !tbaa !9
  %534 = load i32, ptr @test_count, align 4, !tbaa !5
  %535 = load i32, ptr %517, align 4, !tbaa !5
  %536 = tail call ptr @s2n_strerror(i32 noundef %535, ptr noundef nonnull @.str.24) #10
  %537 = load i32, ptr %517, align 4, !tbaa !5
  %538 = tail call ptr @s2n_strerror_debug(i32 noundef %537, ptr noundef nonnull @.str.24) #10
  %539 = load i32, ptr %521, align 4, !tbaa !5
  %540 = tail call ptr @strerror(i32 noundef %539) #10
  %541 = load i32, ptr %521, align 4, !tbaa !5
  %542 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %533, ptr noundef nonnull %.str.25.sink562, i32 noundef %534, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.21, i32 noundef 74, ptr noundef %536, ptr noundef %538, ptr noundef %540, i32 noundef %541) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

543:                                              ; preds = %514
  %544 = add nsw i32 %515, 2
  store i32 %544, ptr @test_count, align 4, !tbaa !5
  %545 = tail call ptr @s2n_strerror_debug(i32 noundef 335544322, ptr noundef nonnull @.str.24) #10
  %546 = icmp eq ptr %545, null
  br i1 %546, label %547, label %570

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

554:                                              ; preds = %547
  %555 = load ptr, ptr @stderr, align 8, !tbaa !9
  %556 = tail call i32 @fileno(ptr noundef %555) #10
  %557 = tail call i32 @isatty(i32 noundef %556) #10
  %.not357 = icmp eq i32 %557, 0
  br i1 %.not357, label %558, label %559

558:                                              ; preds = %554, %547
  br label %559

559:                                              ; preds = %554, %558
  %.str.25.sink571 = phi ptr [ @.str.25, %558 ], [ @.str.22, %554 ]
  store i32 %549, ptr %548, align 4, !tbaa !5
  %560 = load ptr, ptr @stderr, align 8, !tbaa !9
  %561 = load i32, ptr @test_count, align 4, !tbaa !5
  %562 = load i32, ptr %517, align 4, !tbaa !5
  %563 = tail call ptr @s2n_strerror(i32 noundef %562, ptr noundef nonnull @.str.24) #10
  %564 = load i32, ptr %517, align 4, !tbaa !5
  %565 = tail call ptr @s2n_strerror_debug(i32 noundef %564, ptr noundef nonnull @.str.24) #10
  %566 = load i32, ptr %548, align 4, !tbaa !5
  %567 = tail call ptr @strerror(i32 noundef %566) #10
  %568 = load i32, ptr %548, align 4, !tbaa !5
  %569 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %560, ptr noundef nonnull %.str.25.sink571, i32 noundef %561, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.21, i32 noundef 74, ptr noundef %563, ptr noundef %565, ptr noundef %567, i32 noundef %568) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

570:                                              ; preds = %543
  store i32 0, ptr %517, align 4, !tbaa !5
  tail call void @s2n_debug_info_reset() #10
  %571 = tail call ptr @__errno_location() #11
  store i32 0, ptr %571, align 4, !tbaa !5
  %572 = load i32, ptr @test_count, align 4, !tbaa !5
  %573 = add nsw i32 %572, 1
  store i32 %573, ptr @test_count, align 4, !tbaa !5
  %574 = tail call zeroext i1 @s2n_atomic_flag_test(ptr noundef nonnull %371) #10
  br i1 %574, label %575, label %597

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

581:                                              ; preds = %575
  %582 = load ptr, ptr @stderr, align 8, !tbaa !9
  %583 = tail call i32 @fileno(ptr noundef %582) #10
  %584 = tail call i32 @isatty(i32 noundef %583) #10
  %.not356 = icmp eq i32 %584, 0
  br i1 %.not356, label %585, label %586

585:                                              ; preds = %581, %575
  br label %586

586:                                              ; preds = %581, %585
  %.str.25.sink580 = phi ptr [ @.str.25, %585 ], [ @.str.22, %581 ]
  store i32 %576, ptr %571, align 4, !tbaa !5
  %587 = load ptr, ptr @stderr, align 8, !tbaa !9
  %588 = load i32, ptr @test_count, align 4, !tbaa !5
  %589 = load i32, ptr %517, align 4, !tbaa !5
  %590 = tail call ptr @s2n_strerror(i32 noundef %589, ptr noundef nonnull @.str.24) #10
  %591 = load i32, ptr %517, align 4, !tbaa !5
  %592 = tail call ptr @s2n_strerror_debug(i32 noundef %591, ptr noundef nonnull @.str.24) #10
  %593 = load i32, ptr %571, align 4, !tbaa !5
  %594 = tail call ptr @strerror(i32 noundef %593) #10
  %595 = load i32, ptr %571, align 4, !tbaa !5
  %596 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %587, ptr noundef nonnull %.str.25.sink580, i32 noundef %588, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.21, i32 noundef 75, ptr noundef %590, ptr noundef %592, ptr noundef %594, i32 noundef %595) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

597:                                              ; preds = %570
  %598 = load i32, ptr @test_count, align 4, !tbaa !5
  %599 = add nsw i32 %598, 1
  store i32 %599, ptr @test_count, align 4, !tbaa !5
  %600 = tail call i32 @s2n_connection_free(ptr noundef nonnull %339) #10
  %601 = icmp eq i32 %600, -1
  br i1 %601, label %602, label %624

602:                                              ; preds = %597
  %603 = load i32, ptr %571, align 4, !tbaa !5
  %604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %605 = tail call i32 @s2n_print_stacktrace(ptr noundef %604) #10
  %606 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %607 = trunc nuw i8 %606 to i1
  br i1 %607, label %608, label %612

608:                                              ; preds = %602
  %609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %610 = tail call i32 @fileno(ptr noundef %609) #10
  %611 = tail call i32 @isatty(i32 noundef %610) #10
  %.not355 = icmp eq i32 %611, 0
  br i1 %.not355, label %612, label %613

612:                                              ; preds = %608, %602
  br label %613

613:                                              ; preds = %608, %612
  %.str.25.sink589 = phi ptr [ @.str.25, %612 ], [ @.str.22, %608 ]
  store i32 %603, ptr %571, align 4, !tbaa !5
  %614 = load ptr, ptr @stderr, align 8, !tbaa !9
  %615 = load i32, ptr @test_count, align 4, !tbaa !5
  %616 = load i32, ptr %517, align 4, !tbaa !5
  %617 = tail call ptr @s2n_strerror(i32 noundef %616, ptr noundef nonnull @.str.24) #10
  %618 = load i32, ptr %517, align 4, !tbaa !5
  %619 = tail call ptr @s2n_strerror_debug(i32 noundef %618, ptr noundef nonnull @.str.24) #10
  %620 = load i32, ptr %571, align 4, !tbaa !5
  %621 = tail call ptr @strerror(i32 noundef %620) #10
  %622 = load i32, ptr %571, align 4, !tbaa !5
  %623 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %614, ptr noundef nonnull %.str.25.sink589, i32 noundef %615, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.21, i32 noundef 77, ptr noundef %617, ptr noundef %619, ptr noundef %621, i32 noundef %622) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

624:                                              ; preds = %597
  %625 = load i32, ptr @test_count, align 4, !tbaa !5
  %626 = add nsw i32 %625, 1
  store i32 %626, ptr @test_count, align 4, !tbaa !5
  %627 = tail call ptr @s2n_connection_new(i32 noundef 0) #10
  %628 = icmp eq ptr %627, null
  br i1 %628, label %629, label %651

629:                                              ; preds = %624
  %630 = load i32, ptr %571, align 4, !tbaa !5
  %631 = load ptr, ptr @stderr, align 8, !tbaa !9
  %632 = tail call i32 @s2n_print_stacktrace(ptr noundef %631) #10
  %633 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %634 = trunc nuw i8 %633 to i1
  br i1 %634, label %635, label %639

635:                                              ; preds = %629
  %636 = load ptr, ptr @stderr, align 8, !tbaa !9
  %637 = tail call i32 @fileno(ptr noundef %636) #10
  %638 = tail call i32 @isatty(i32 noundef %637) #10
  %.not354 = icmp eq i32 %638, 0
  br i1 %.not354, label %639, label %640

639:                                              ; preds = %635, %629
  br label %640

640:                                              ; preds = %635, %639
  %.str.25.sink598 = phi ptr [ @.str.25, %639 ], [ @.str.22, %635 ]
  store i32 %630, ptr %571, align 4, !tbaa !5
  %641 = load ptr, ptr @stderr, align 8, !tbaa !9
  %642 = load i32, ptr @test_count, align 4, !tbaa !5
  %643 = load i32, ptr %517, align 4, !tbaa !5
  %644 = tail call ptr @s2n_strerror(i32 noundef %643, ptr noundef nonnull @.str.24) #10
  %645 = load i32, ptr %517, align 4, !tbaa !5
  %646 = tail call ptr @s2n_strerror_debug(i32 noundef %645, ptr noundef nonnull @.str.24) #10
  %647 = load i32, ptr %571, align 4, !tbaa !5
  %648 = tail call ptr @strerror(i32 noundef %647) #10
  %649 = load i32, ptr %571, align 4, !tbaa !5
  %650 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %641, ptr noundef nonnull %.str.25.sink598, i32 noundef %642, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.21, i32 noundef 83, ptr noundef %644, ptr noundef %646, ptr noundef %648, i32 noundef %649) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

651:                                              ; preds = %624
  %652 = getelementptr inbounds i8, ptr %627, i64 220
  store i8 34, ptr %652, align 4, !tbaa !15
  %653 = getelementptr inbounds i8, ptr %627, i64 232
  %654 = load ptr, ptr %653, align 8, !tbaa !42
  store ptr @s2n_tls13_aes_256_gcm_sha384, ptr %654, align 8, !tbaa !43
  %655 = load i32, ptr @test_count, align 4, !tbaa !5
  %656 = add nsw i32 %655, 1
  store i32 %656, ptr @test_count, align 4, !tbaa !5
  %657 = getelementptr inbounds i8, ptr %627, i64 4176
  %658 = tail call zeroext i1 @s2n_atomic_flag_test(ptr noundef nonnull %657) #10
  br i1 %658, label %659, label %681

659:                                              ; preds = %651
  %660 = load i32, ptr %571, align 4, !tbaa !5
  %661 = load ptr, ptr @stderr, align 8, !tbaa !9
  %662 = tail call i32 @s2n_print_stacktrace(ptr noundef %661) #10
  %663 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %664 = trunc nuw i8 %663 to i1
  br i1 %664, label %665, label %669

665:                                              ; preds = %659
  %666 = load ptr, ptr @stderr, align 8, !tbaa !9
  %667 = tail call i32 @fileno(ptr noundef %666) #10
  %668 = tail call i32 @isatty(i32 noundef %667) #10
  %.not353 = icmp eq i32 %668, 0
  br i1 %.not353, label %669, label %670

669:                                              ; preds = %665, %659
  br label %670

670:                                              ; preds = %665, %669
  %.str.25.sink607 = phi ptr [ @.str.25, %669 ], [ @.str.22, %665 ]
  store i32 %660, ptr %571, align 4, !tbaa !5
  %671 = load ptr, ptr @stderr, align 8, !tbaa !9
  %672 = load i32, ptr @test_count, align 4, !tbaa !5
  %673 = load i32, ptr %517, align 4, !tbaa !5
  %674 = tail call ptr @s2n_strerror(i32 noundef %673, ptr noundef nonnull @.str.24) #10
  %675 = load i32, ptr %517, align 4, !tbaa !5
  %676 = tail call ptr @s2n_strerror_debug(i32 noundef %675, ptr noundef nonnull @.str.24) #10
  %677 = load i32, ptr %571, align 4, !tbaa !5
  %678 = tail call ptr @strerror(i32 noundef %677) #10
  %679 = load i32, ptr %571, align 4, !tbaa !5
  %680 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %671, ptr noundef nonnull %.str.25.sink607, i32 noundef %672, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.21, i32 noundef 86, ptr noundef %674, ptr noundef %676, ptr noundef %678, i32 noundef %679) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

681:                                              ; preds = %651
  %682 = load i32, ptr @test_count, align 4, !tbaa !5
  %683 = add nsw i32 %682, 1
  store i32 %683, ptr @test_count, align 4, !tbaa !5
  %684 = getelementptr inbounds i8, ptr %627, i64 1856
  %685 = tail call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %684, i8 noundef zeroext 24) #10
  %686 = icmp eq i32 %685, -1
  br i1 %686, label %687, label %709

687:                                              ; preds = %681
  %688 = load i32, ptr %571, align 4, !tbaa !5
  %689 = load ptr, ptr @stderr, align 8, !tbaa !9
  %690 = tail call i32 @s2n_print_stacktrace(ptr noundef %689) #10
  %691 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %692 = trunc nuw i8 %691 to i1
  br i1 %692, label %693, label %697

693:                                              ; preds = %687
  %694 = load ptr, ptr @stderr, align 8, !tbaa !9
  %695 = tail call i32 @fileno(ptr noundef %694) #10
  %696 = tail call i32 @isatty(i32 noundef %695) #10
  %.not352 = icmp eq i32 %696, 0
  br i1 %.not352, label %697, label %698

697:                                              ; preds = %693, %687
  br label %698

698:                                              ; preds = %693, %697
  %.str.25.sink616 = phi ptr [ @.str.25, %697 ], [ @.str.22, %693 ]
  store i32 %688, ptr %571, align 4, !tbaa !5
  %699 = load ptr, ptr @stderr, align 8, !tbaa !9
  %700 = load i32, ptr @test_count, align 4, !tbaa !5
  %701 = load i32, ptr %517, align 4, !tbaa !5
  %702 = tail call ptr @s2n_strerror(i32 noundef %701, ptr noundef nonnull @.str.24) #10
  %703 = load i32, ptr %517, align 4, !tbaa !5
  %704 = tail call ptr @s2n_strerror_debug(i32 noundef %703, ptr noundef nonnull @.str.24) #10
  %705 = load i32, ptr %571, align 4, !tbaa !5
  %706 = tail call ptr @strerror(i32 noundef %705) #10
  %707 = load i32, ptr %571, align 4, !tbaa !5
  %708 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %699, ptr noundef nonnull %.str.25.sink616, i32 noundef %700, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.21, i32 noundef 89, ptr noundef %702, ptr noundef %704, ptr noundef %706, i32 noundef %707) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

709:                                              ; preds = %681
  %710 = load i32, ptr @test_count, align 4, !tbaa !5
  %711 = add nsw i32 %710, 1
  store i32 %711, ptr @test_count, align 4, !tbaa !5
  %712 = tail call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %684, i8 noundef zeroext 1) #10
  %713 = icmp eq i32 %712, -1
  br i1 %713, label %714, label %736

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

720:                                              ; preds = %714
  %721 = load ptr, ptr @stderr, align 8, !tbaa !9
  %722 = tail call i32 @fileno(ptr noundef %721) #10
  %723 = tail call i32 @isatty(i32 noundef %722) #10
  %.not351 = icmp eq i32 %723, 0
  br i1 %.not351, label %724, label %725

724:                                              ; preds = %720, %714
  br label %725

725:                                              ; preds = %720, %724
  %.str.25.sink625 = phi ptr [ @.str.25, %724 ], [ @.str.22, %720 ]
  store i32 %715, ptr %571, align 4, !tbaa !5
  %726 = load ptr, ptr @stderr, align 8, !tbaa !9
  %727 = load i32, ptr @test_count, align 4, !tbaa !5
  %728 = load i32, ptr %517, align 4, !tbaa !5
  %729 = tail call ptr @s2n_strerror(i32 noundef %728, ptr noundef nonnull @.str.24) #10
  %730 = load i32, ptr %517, align 4, !tbaa !5
  %731 = tail call ptr @s2n_strerror_debug(i32 noundef %730, ptr noundef nonnull @.str.24) #10
  %732 = load i32, ptr %571, align 4, !tbaa !5
  %733 = tail call ptr @strerror(i32 noundef %732) #10
  %734 = load i32, ptr %571, align 4, !tbaa !5
  %735 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %726, ptr noundef nonnull %.str.25.sink625, i32 noundef %727, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.21, i32 noundef 90, ptr noundef %729, ptr noundef %731, ptr noundef %733, i32 noundef %734) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

736:                                              ; preds = %709
  %737 = load i32, ptr @test_count, align 4, !tbaa !5
  %738 = add nsw i32 %737, 1
  store i32 %738, ptr @test_count, align 4, !tbaa !5
  %739 = tail call i32 @s2n_post_handshake_recv(ptr noundef nonnull %627) #10
  %740 = tail call zeroext i1 @s2n_result_is_error(i32 %739)
  br i1 %740, label %763, label %741

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

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

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

752:                                              ; preds = %747, %751
  %.str.25.sink634 = phi ptr [ @.str.25, %751 ], [ @.str.22, %747 ]
  store i32 %742, ptr %571, align 4, !tbaa !5
  %753 = load ptr, ptr @stderr, align 8, !tbaa !9
  %754 = load i32, ptr @test_count, align 4, !tbaa !5
  %755 = load i32, ptr %517, align 4, !tbaa !5
  %756 = tail call ptr @s2n_strerror(i32 noundef %755, ptr noundef nonnull @.str.24) #10
  %757 = load i32, ptr %517, align 4, !tbaa !5
  %758 = tail call ptr @s2n_strerror_debug(i32 noundef %757, ptr noundef nonnull @.str.24) #10
  %759 = load i32, ptr %571, align 4, !tbaa !5
  %760 = tail call ptr @strerror(i32 noundef %759) #10
  %761 = load i32, ptr %571, align 4, !tbaa !5
  %762 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %753, ptr noundef nonnull %.str.25.sink634, i32 noundef %754, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.21, i32 noundef 92, ptr noundef %756, ptr noundef %758, ptr noundef %760, i32 noundef %761) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

763:                                              ; preds = %736
  %764 = load i32, ptr @test_count, align 4, !tbaa !5
  %765 = add nsw i32 %764, 1
  store i32 %765, ptr @test_count, align 4, !tbaa !5
  %766 = load i32, ptr %517, align 4, !tbaa !5
  %767 = icmp eq i32 %766, 0
  br i1 %767, label %768, label %790

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

774:                                              ; preds = %768
  %775 = load ptr, ptr @stderr, align 8, !tbaa !9
  %776 = tail call i32 @fileno(ptr noundef %775) #10
  %777 = tail call i32 @isatty(i32 noundef %776) #10
  %.not350 = icmp eq i32 %777, 0
  br i1 %.not350, label %778, label %779

778:                                              ; preds = %774, %768
  br label %779

779:                                              ; preds = %774, %778
  %.str.25.sink643 = phi ptr [ @.str.25, %778 ], [ @.str.22, %774 ]
  store i32 %769, ptr %571, align 4, !tbaa !5
  %780 = load ptr, ptr @stderr, align 8, !tbaa !9
  %781 = load i32, ptr @test_count, align 4, !tbaa !5
  %782 = load i32, ptr %517, align 4, !tbaa !5
  %783 = tail call ptr @s2n_strerror(i32 noundef %782, ptr noundef nonnull @.str.24) #10
  %784 = load i32, ptr %517, align 4, !tbaa !5
  %785 = tail call ptr @s2n_strerror_debug(i32 noundef %784, ptr noundef nonnull @.str.24) #10
  %786 = load i32, ptr %571, align 4, !tbaa !5
  %787 = tail call ptr @strerror(i32 noundef %786) #10
  %788 = load i32, ptr %571, align 4, !tbaa !5
  %789 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %780, ptr noundef nonnull %.str.25.sink643, i32 noundef %781, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.21, i32 noundef 92, ptr noundef %783, ptr noundef %785, ptr noundef %787, i32 noundef %788) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

790:                                              ; preds = %763
  %791 = add nsw i32 %764, 2
  store i32 %791, ptr @test_count, align 4, !tbaa !5
  %792 = tail call ptr @s2n_strerror_debug(i32 noundef %766, ptr noundef nonnull @.str.24) #10
  %793 = icmp eq ptr %792, null
  br i1 %793, label %794, label %816

794:                                              ; preds = %790
  %795 = load i32, ptr %571, align 4, !tbaa !5
  %796 = load ptr, ptr @stderr, align 8, !tbaa !9
  %797 = tail call i32 @s2n_print_stacktrace(ptr noundef %796) #10
  %798 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %799 = trunc nuw i8 %798 to i1
  br i1 %799, label %800, label %804

800:                                              ; preds = %794
  %801 = load ptr, ptr @stderr, align 8, !tbaa !9
  %802 = tail call i32 @fileno(ptr noundef %801) #10
  %803 = tail call i32 @isatty(i32 noundef %802) #10
  %.not349 = icmp eq i32 %803, 0
  br i1 %.not349, label %804, label %805

804:                                              ; preds = %800, %794
  br label %805

805:                                              ; preds = %800, %804
  %.str.25.sink652 = phi ptr [ @.str.25, %804 ], [ @.str.22, %800 ]
  store i32 %795, ptr %571, align 4, !tbaa !5
  %806 = load ptr, ptr @stderr, align 8, !tbaa !9
  %807 = load i32, ptr @test_count, align 4, !tbaa !5
  %808 = load i32, ptr %517, align 4, !tbaa !5
  %809 = tail call ptr @s2n_strerror(i32 noundef %808, ptr noundef nonnull @.str.24) #10
  %810 = load i32, ptr %517, align 4, !tbaa !5
  %811 = tail call ptr @s2n_strerror_debug(i32 noundef %810, ptr noundef nonnull @.str.24) #10
  %812 = load i32, ptr %571, align 4, !tbaa !5
  %813 = tail call ptr @strerror(i32 noundef %812) #10
  %814 = load i32, ptr %571, align 4, !tbaa !5
  %815 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %806, ptr noundef nonnull %.str.25.sink652, i32 noundef %807, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.21, i32 noundef 92, ptr noundef %809, ptr noundef %811, ptr noundef %813, i32 noundef %814) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

816:                                              ; preds = %790
  store i32 0, ptr %517, align 4, !tbaa !5
  tail call void @s2n_debug_info_reset() #10
  store i32 0, ptr %571, align 4, !tbaa !5
  %817 = load i32, ptr @test_count, align 4, !tbaa !5
  %818 = add nsw i32 %817, 1
  store i32 %818, ptr @test_count, align 4, !tbaa !5
  %819 = tail call zeroext i1 @s2n_atomic_flag_test(ptr noundef nonnull %657) #10
  br i1 %819, label %820, label %842

820:                                              ; preds = %816
  %821 = load i32, ptr %571, align 4, !tbaa !5
  %822 = load ptr, ptr @stderr, align 8, !tbaa !9
  %823 = tail call i32 @s2n_print_stacktrace(ptr noundef %822) #10
  %824 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %825 = trunc nuw i8 %824 to i1
  br i1 %825, label %826, label %830

826:                                              ; preds = %820
  %827 = load ptr, ptr @stderr, align 8, !tbaa !9
  %828 = tail call i32 @fileno(ptr noundef %827) #10
  %829 = tail call i32 @isatty(i32 noundef %828) #10
  %.not348 = icmp eq i32 %829, 0
  br i1 %.not348, label %830, label %831

830:                                              ; preds = %826, %820
  br label %831

831:                                              ; preds = %826, %830
  %.str.25.sink661 = phi ptr [ @.str.25, %830 ], [ @.str.22, %826 ]
  store i32 %821, ptr %571, align 4, !tbaa !5
  %832 = load ptr, ptr @stderr, align 8, !tbaa !9
  %833 = load i32, ptr @test_count, align 4, !tbaa !5
  %834 = load i32, ptr %517, align 4, !tbaa !5
  %835 = tail call ptr @s2n_strerror(i32 noundef %834, ptr noundef nonnull @.str.24) #10
  %836 = load i32, ptr %517, align 4, !tbaa !5
  %837 = tail call ptr @s2n_strerror_debug(i32 noundef %836, ptr noundef nonnull @.str.24) #10
  %838 = load i32, ptr %571, align 4, !tbaa !5
  %839 = tail call ptr @strerror(i32 noundef %838) #10
  %840 = load i32, ptr %571, align 4, !tbaa !5
  %841 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %832, ptr noundef nonnull %.str.25.sink661, i32 noundef %833, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.21, i32 noundef 93, ptr noundef %835, ptr noundef %837, ptr noundef %839, i32 noundef %840) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

842:                                              ; preds = %816
  %843 = load i32, ptr @test_count, align 4, !tbaa !5
  %844 = add nsw i32 %843, 1
  store i32 %844, ptr @test_count, align 4, !tbaa !5
  %845 = tail call i32 @s2n_connection_free(ptr noundef nonnull %627) #10
  %846 = icmp eq i32 %845, -1
  br i1 %846, label %847, label %869

847:                                              ; preds = %842
  %848 = load i32, ptr %571, align 4, !tbaa !5
  %849 = load ptr, ptr @stderr, align 8, !tbaa !9
  %850 = tail call i32 @s2n_print_stacktrace(ptr noundef %849) #10
  %851 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %852 = trunc nuw i8 %851 to i1
  br i1 %852, label %853, label %857

853:                                              ; preds = %847
  %854 = load ptr, ptr @stderr, align 8, !tbaa !9
  %855 = tail call i32 @fileno(ptr noundef %854) #10
  %856 = tail call i32 @isatty(i32 noundef %855) #10
  %.not347 = icmp eq i32 %856, 0
  br i1 %.not347, label %857, label %858

857:                                              ; preds = %853, %847
  br label %858

858:                                              ; preds = %853, %857
  %.str.25.sink670 = phi ptr [ @.str.25, %857 ], [ @.str.22, %853 ]
  store i32 %848, ptr %571, align 4, !tbaa !5
  %859 = load ptr, ptr @stderr, align 8, !tbaa !9
  %860 = load i32, ptr @test_count, align 4, !tbaa !5
  %861 = load i32, ptr %517, align 4, !tbaa !5
  %862 = tail call ptr @s2n_strerror(i32 noundef %861, ptr noundef nonnull @.str.24) #10
  %863 = load i32, ptr %517, align 4, !tbaa !5
  %864 = tail call ptr @s2n_strerror_debug(i32 noundef %863, ptr noundef nonnull @.str.24) #10
  %865 = load i32, ptr %571, align 4, !tbaa !5
  %866 = tail call ptr @strerror(i32 noundef %865) #10
  %867 = load i32, ptr %571, align 4, !tbaa !5
  %868 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %859, ptr noundef nonnull %.str.25.sink670, i32 noundef %860, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.21, i32 noundef 95, ptr noundef %862, ptr noundef %864, ptr noundef %866, i32 noundef %867) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

869:                                              ; preds = %842
  %870 = tail call ptr @s2n_connection_new(i32 noundef 0) #10
  %871 = load i32, ptr @test_count, align 4, !tbaa !5
  %872 = add nsw i32 %871, 1
  store i32 %872, ptr @test_count, align 4, !tbaa !5
  %873 = icmp eq ptr %870, null
  br i1 %873, label %874, label %896

874:                                              ; preds = %869
  %875 = load i32, ptr %571, align 4, !tbaa !5
  %876 = load ptr, ptr @stderr, align 8, !tbaa !9
  %877 = tail call i32 @s2n_print_stacktrace(ptr noundef %876) #10
  %878 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %879 = trunc nuw i8 %878 to i1
  br i1 %879, label %880, label %884

880:                                              ; preds = %874
  %881 = load ptr, ptr @stderr, align 8, !tbaa !9
  %882 = tail call i32 @fileno(ptr noundef %881) #10
  %883 = tail call i32 @isatty(i32 noundef %882) #10
  %.not346 = icmp eq i32 %883, 0
  br i1 %.not346, label %884, label %885

884:                                              ; preds = %880, %874
  br label %885

885:                                              ; preds = %880, %884
  %.str.25.sink679 = phi ptr [ @.str.25, %884 ], [ @.str.22, %880 ]
  store i32 %875, ptr %571, align 4, !tbaa !5
  %886 = load ptr, ptr @stderr, align 8, !tbaa !9
  %887 = load i32, ptr @test_count, align 4, !tbaa !5
  %888 = load i32, ptr %517, align 4, !tbaa !5
  %889 = tail call ptr @s2n_strerror(i32 noundef %888, ptr noundef nonnull @.str.24) #10
  %890 = load i32, ptr %517, align 4, !tbaa !5
  %891 = tail call ptr @s2n_strerror_debug(i32 noundef %890, ptr noundef nonnull @.str.24) #10
  %892 = load i32, ptr %571, align 4, !tbaa !5
  %893 = tail call ptr @strerror(i32 noundef %892) #10
  %894 = load i32, ptr %571, align 4, !tbaa !5
  %895 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %886, ptr noundef nonnull %.str.25.sink679, i32 noundef %887, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.21, i32 noundef 101, ptr noundef %889, ptr noundef %891, ptr noundef %893, i32 noundef %894) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

896:                                              ; preds = %869
  %897 = getelementptr inbounds i8, ptr %870, i64 220
  store i8 34, ptr %897, align 4, !tbaa !15
  %898 = getelementptr inbounds i8, ptr %870, i64 232
  %899 = load ptr, ptr %898, align 8, !tbaa !42
  store ptr @s2n_tls13_aes_256_gcm_sha384, ptr %899, align 8, !tbaa !43
  %900 = getelementptr inbounds i8, ptr %870, i64 1856
  %901 = getelementptr inbounds i8, ptr %4, i64 8
  call void @llvm.lifetime.start.p0(i64 5, ptr nonnull %3) #10
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(5) %3, i8 0, i64 5, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %4) #10
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %4, i8 0, i64 24, i1 false)
  %902 = add nsw i32 %871, 2
  store i32 %902, ptr @test_count, align 4, !tbaa !5
  %903 = call i32 @s2n_blob_init(ptr noundef nonnull %4, ptr noundef nonnull %3, i32 noundef 5) #10
  %904 = icmp eq i32 %903, -1
  br i1 %904, label %905, label %927

905:                                              ; preds = %1000, %983, %896
  %906 = load i32, ptr %571, align 4, !tbaa !5
  %907 = load ptr, ptr @stderr, align 8, !tbaa !9
  %908 = call i32 @s2n_print_stacktrace(ptr noundef %907) #10
  %909 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %910 = trunc nuw i8 %909 to i1
  br i1 %910, label %911, label %915

911:                                              ; preds = %905
  %912 = load ptr, ptr @stderr, align 8, !tbaa !9
  %913 = call i32 @fileno(ptr noundef %912) #10
  %914 = call i32 @isatty(i32 noundef %913) #10
  %.not345 = icmp eq i32 %914, 0
  br i1 %.not345, label %915, label %916

915:                                              ; preds = %911, %905
  br label %916

916:                                              ; preds = %911, %915
  %.str.25.sink688 = phi ptr [ @.str.25, %915 ], [ @.str.22, %911 ]
  store i32 %906, ptr %571, align 4, !tbaa !5
  %917 = load ptr, ptr @stderr, align 8, !tbaa !9
  %918 = load i32, ptr @test_count, align 4, !tbaa !5
  %919 = load i32, ptr %517, align 4, !tbaa !5
  %920 = call ptr @s2n_strerror(i32 noundef %919, ptr noundef nonnull @.str.24) #10
  %921 = load i32, ptr %517, align 4, !tbaa !5
  %922 = call ptr @s2n_strerror_debug(i32 noundef %921, ptr noundef nonnull @.str.24) #10
  %923 = load i32, ptr %571, align 4, !tbaa !5
  %924 = call ptr @strerror(i32 noundef %923) #10
  %925 = load i32, ptr %571, align 4, !tbaa !5
  %926 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %917, ptr noundef nonnull %.str.25.sink688, i32 noundef %918, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.21, i32 noundef 111, ptr noundef %920, ptr noundef %922, ptr noundef %924, i32 noundef %925) #12
  call void @exit(i32 noundef 1) #13
  unreachable

927:                                              ; preds = %896
  %928 = load i32, ptr @test_count, align 4, !tbaa !5
  %929 = add nsw i32 %928, 1
  store i32 %929, ptr @test_count, align 4, !tbaa !5
  %930 = call i32 @s2n_key_update_write(ptr noundef nonnull %4) #10
  %931 = icmp eq i32 %930, -1
  br i1 %931, label %932, label %954

932:                                              ; preds = %1005, %988, %927
  %933 = load i32, ptr %571, align 4, !tbaa !5
  %934 = load ptr, ptr @stderr, align 8, !tbaa !9
  %935 = call i32 @s2n_print_stacktrace(ptr noundef %934) #10
  %936 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %937 = trunc nuw i8 %936 to i1
  br i1 %937, label %938, label %942

938:                                              ; preds = %932
  %939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %940 = call i32 @fileno(ptr noundef %939) #10
  %941 = call i32 @isatty(i32 noundef %940) #10
  %.not344 = icmp eq i32 %941, 0
  br i1 %.not344, label %942, label %943

942:                                              ; preds = %938, %932
  br label %943

943:                                              ; preds = %938, %942
  %.str.25.sink697 = phi ptr [ @.str.25, %942 ], [ @.str.22, %938 ]
  store i32 %933, ptr %571, align 4, !tbaa !5
  %944 = load ptr, ptr @stderr, align 8, !tbaa !9
  %945 = load i32, ptr @test_count, align 4, !tbaa !5
  %946 = load i32, ptr %517, align 4, !tbaa !5
  %947 = call ptr @s2n_strerror(i32 noundef %946, ptr noundef nonnull @.str.24) #10
  %948 = load i32, ptr %517, align 4, !tbaa !5
  %949 = call ptr @s2n_strerror_debug(i32 noundef %948, ptr noundef nonnull @.str.24) #10
  %950 = load i32, ptr %571, align 4, !tbaa !5
  %951 = call ptr @strerror(i32 noundef %950) #10
  %952 = load i32, ptr %571, align 4, !tbaa !5
  %953 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %944, ptr noundef nonnull %.str.25.sink697, i32 noundef %945, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.21, i32 noundef 112, ptr noundef %947, ptr noundef %949, ptr noundef %951, i32 noundef %952) #12
  call void @exit(i32 noundef 1) #13
  unreachable

954:                                              ; preds = %927
  %955 = load i32, ptr @test_count, align 4, !tbaa !5
  %956 = add nsw i32 %955, 1
  store i32 %956, ptr @test_count, align 4, !tbaa !5
  %957 = load ptr, ptr %4, align 8, !tbaa !48
  %958 = load i32, ptr %901, align 8, !tbaa !49
  %959 = call i32 @s2n_stuffer_write_bytes(ptr noundef nonnull %900, ptr noundef %957, i32 noundef %958) #10
  %960 = icmp eq i32 %959, -1
  br i1 %960, label %961, label %983

961:                                              ; preds = %1010, %993, %954
  %962 = load i32, ptr %571, align 4, !tbaa !5
  %963 = load ptr, ptr @stderr, align 8, !tbaa !9
  %964 = call i32 @s2n_print_stacktrace(ptr noundef %963) #10
  %965 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %966 = trunc nuw i8 %965 to i1
  br i1 %966, label %967, label %971

967:                                              ; preds = %961
  %968 = load ptr, ptr @stderr, align 8, !tbaa !9
  %969 = call i32 @fileno(ptr noundef %968) #10
  %970 = call i32 @isatty(i32 noundef %969) #10
  %.not343 = icmp eq i32 %970, 0
  br i1 %.not343, label %971, label %972

971:                                              ; preds = %967, %961
  br label %972

972:                                              ; preds = %967, %971
  %.str.25.sink706 = phi ptr [ @.str.25, %971 ], [ @.str.22, %967 ]
  store i32 %962, ptr %571, align 4, !tbaa !5
  %973 = load ptr, ptr @stderr, align 8, !tbaa !9
  %974 = load i32, ptr @test_count, align 4, !tbaa !5
  %975 = load i32, ptr %517, align 4, !tbaa !5
  %976 = call ptr @s2n_strerror(i32 noundef %975, ptr noundef nonnull @.str.24) #10
  %977 = load i32, ptr %517, align 4, !tbaa !5
  %978 = call ptr @s2n_strerror_debug(i32 noundef %977, ptr noundef nonnull @.str.24) #10
  %979 = load i32, ptr %571, align 4, !tbaa !5
  %980 = call ptr @strerror(i32 noundef %979) #10
  %981 = load i32, ptr %571, align 4, !tbaa !5
  %982 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %973, ptr noundef nonnull %.str.25.sink706, i32 noundef %974, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.21, i32 noundef 113, ptr noundef %976, ptr noundef %978, ptr noundef %980, i32 noundef %981) #12
  call void @exit(i32 noundef 1) #13
  unreachable

983:                                              ; preds = %954
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4) #10
  call void @llvm.lifetime.end.p0(i64 5, ptr nonnull %3) #10
  call void @llvm.lifetime.start.p0(i64 5, ptr nonnull %3) #10
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(5) %3, i8 0, i64 5, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %4) #10
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %4, i8 0, i64 24, i1 false)
  %984 = load i32, ptr @test_count, align 4, !tbaa !5
  %985 = add nsw i32 %984, 1
  store i32 %985, ptr @test_count, align 4, !tbaa !5
  %986 = call i32 @s2n_blob_init(ptr noundef nonnull %4, ptr noundef nonnull %3, i32 noundef 5) #10
  %987 = icmp eq i32 %986, -1
  br i1 %987, label %905, label %988

988:                                              ; preds = %983
  %989 = load i32, ptr @test_count, align 4, !tbaa !5
  %990 = add nsw i32 %989, 1
  store i32 %990, ptr @test_count, align 4, !tbaa !5
  %991 = call i32 @s2n_key_update_write(ptr noundef nonnull %4) #10
  %992 = icmp eq i32 %991, -1
  br i1 %992, label %932, label %993

993:                                              ; preds = %988
  %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 = load ptr, ptr %4, align 8, !tbaa !48
  %997 = load i32, ptr %901, align 8, !tbaa !49
  %998 = call i32 @s2n_stuffer_write_bytes(ptr noundef nonnull %900, ptr noundef %996, i32 noundef %997) #10
  %999 = icmp eq i32 %998, -1
  br i1 %999, label %961, label %1000

1000:                                             ; preds = %993
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4) #10
  call void @llvm.lifetime.end.p0(i64 5, ptr nonnull %3) #10
  call void @llvm.lifetime.start.p0(i64 5, ptr nonnull %3) #10
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(5) %3, i8 0, i64 5, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %4) #10
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %4, i8 0, i64 24, i1 false)
  %1001 = load i32, ptr @test_count, align 4, !tbaa !5
  %1002 = add nsw i32 %1001, 1
  store i32 %1002, ptr @test_count, align 4, !tbaa !5
  %1003 = call i32 @s2n_blob_init(ptr noundef nonnull %4, ptr noundef nonnull %3, i32 noundef 5) #10
  %1004 = icmp eq i32 %1003, -1
  br i1 %1004, label %905, label %1005

1005:                                             ; preds = %1000
  %1006 = load i32, ptr @test_count, align 4, !tbaa !5
  %1007 = add nsw i32 %1006, 1
  store i32 %1007, ptr @test_count, align 4, !tbaa !5
  %1008 = call i32 @s2n_key_update_write(ptr noundef nonnull %4) #10
  %1009 = icmp eq i32 %1008, -1
  br i1 %1009, label %932, label %1010

1010:                                             ; preds = %1005
  %1011 = load i32, ptr @test_count, align 4, !tbaa !5
  %1012 = add nsw i32 %1011, 1
  store i32 %1012, ptr @test_count, align 4, !tbaa !5
  %1013 = load ptr, ptr %4, align 8, !tbaa !48
  %1014 = load i32, ptr %901, align 8, !tbaa !49
  %1015 = call i32 @s2n_stuffer_write_bytes(ptr noundef nonnull %900, ptr noundef %1013, i32 noundef %1014) #10
  %1016 = icmp eq i32 %1015, -1
  br i1 %1016, label %961, label %1017

1017:                                             ; preds = %1010
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4) #10
  call void @llvm.lifetime.end.p0(i64 5, ptr nonnull %3) #10
  %1018 = load i32, ptr @test_count, align 4, !tbaa !5
  %1019 = add nsw i32 %1018, 1
  store i32 %1019, ptr @test_count, align 4, !tbaa !5
  %1020 = call i32 @s2n_post_handshake_recv(ptr noundef nonnull %870) #10
  %1021 = call zeroext i1 @s2n_result_is_ok(i32 %1020)
  br i1 %1021, label %1044, label %1022

1022:                                             ; preds = %1017
  %1023 = load i32, ptr %571, align 4, !tbaa !5
  %1024 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1025 = call i32 @s2n_print_stacktrace(ptr noundef %1024) #10
  %1026 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1027 = trunc nuw i8 %1026 to i1
  br i1 %1027, label %1028, label %1032

1028:                                             ; preds = %1022
  %1029 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1030 = call i32 @fileno(ptr noundef %1029) #10
  %1031 = call i32 @isatty(i32 noundef %1030) #10
  %.not282 = icmp eq i32 %1031, 0
  br i1 %.not282, label %1032, label %1033

1032:                                             ; preds = %1028, %1022
  br label %1033

1033:                                             ; preds = %1028, %1032
  %.str.25.sink715 = phi ptr [ @.str.25, %1032 ], [ @.str.22, %1028 ]
  store i32 %1023, ptr %571, align 4, !tbaa !5
  %1034 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1035 = load i32, ptr @test_count, align 4, !tbaa !5
  %1036 = load i32, ptr %517, align 4, !tbaa !5
  %1037 = call ptr @s2n_strerror(i32 noundef %1036, ptr noundef nonnull @.str.24) #10
  %1038 = load i32, ptr %517, align 4, !tbaa !5
  %1039 = call ptr @s2n_strerror_debug(i32 noundef %1038, ptr noundef nonnull @.str.24) #10
  %1040 = load i32, ptr %571, align 4, !tbaa !5
  %1041 = call ptr @strerror(i32 noundef %1040) #10
  %1042 = load i32, ptr %571, align 4, !tbaa !5
  %1043 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1034, ptr noundef nonnull %.str.25.sink715, i32 noundef %1035, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.21, i32 noundef 116, ptr noundef %1037, ptr noundef %1039, ptr noundef %1041, i32 noundef %1042) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1044:                                             ; preds = %1017
  %1045 = load i32, ptr @test_count, align 4, !tbaa !5
  %1046 = add nsw i32 %1045, 1
  store i32 %1046, ptr @test_count, align 4, !tbaa !5
  %1047 = getelementptr inbounds i8, ptr %870, i64 1884
  %1048 = load i32, ptr %1047, align 4, !tbaa !50
  %1049 = getelementptr inbounds i8, ptr %870, i64 1880
  %1050 = load i32, ptr %1049, align 8, !tbaa !51
  %1051 = icmp eq i32 %1048, %1050
  br i1 %1051, label %1074, label %1052

1052:                                             ; preds = %1044
  %1053 = load i32, ptr %571, align 4, !tbaa !5
  %1054 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1055 = call i32 @s2n_print_stacktrace(ptr noundef %1054) #10
  %1056 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1057 = trunc nuw i8 %1056 to i1
  br i1 %1057, label %1058, label %1062

1058:                                             ; preds = %1052
  %1059 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1060 = call i32 @fileno(ptr noundef %1059) #10
  %1061 = call i32 @isatty(i32 noundef %1060) #10
  %.not283 = icmp eq i32 %1061, 0
  br i1 %.not283, label %1062, label %1063

1062:                                             ; preds = %1058, %1052
  br label %1063

1063:                                             ; preds = %1058, %1062
  %.str.25.sink724 = phi ptr [ @.str.25, %1062 ], [ @.str.22, %1058 ]
  store i32 %1053, ptr %571, align 4, !tbaa !5
  %1064 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1065 = load i32, ptr @test_count, align 4, !tbaa !5
  %1066 = load i32, ptr %517, align 4, !tbaa !5
  %1067 = call ptr @s2n_strerror(i32 noundef %1066, ptr noundef nonnull @.str.24) #10
  %1068 = load i32, ptr %517, align 4, !tbaa !5
  %1069 = call ptr @s2n_strerror_debug(i32 noundef %1068, ptr noundef nonnull @.str.24) #10
  %1070 = load i32, ptr %571, align 4, !tbaa !5
  %1071 = call ptr @strerror(i32 noundef %1070) #10
  %1072 = load i32, ptr %571, align 4, !tbaa !5
  %1073 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1064, ptr noundef nonnull %.str.25.sink724, i32 noundef %1065, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.21, i32 noundef 119, ptr noundef %1067, ptr noundef %1069, ptr noundef %1071, i32 noundef %1072) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1074:                                             ; preds = %1044
  %1075 = add nsw i32 %1045, 2
  store i32 %1075, ptr @test_count, align 4, !tbaa !5
  %1076 = call i32 @s2n_connection_free(ptr noundef nonnull %870) #10
  %1077 = icmp eq i32 %1076, -1
  br i1 %1077, label %1078, label %1100

1078:                                             ; preds = %1074
  %1079 = load i32, ptr %571, align 4, !tbaa !5
  %1080 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1081 = call i32 @s2n_print_stacktrace(ptr noundef %1080) #10
  %1082 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1083 = trunc nuw i8 %1082 to i1
  br i1 %1083, label %1084, label %1088

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

1088:                                             ; preds = %1084, %1078
  br label %1089

1089:                                             ; preds = %1084, %1088
  %.str.25.sink733 = phi ptr [ @.str.25, %1088 ], [ @.str.22, %1084 ]
  store i32 %1079, ptr %571, align 4, !tbaa !5
  %1090 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1091 = load i32, ptr @test_count, align 4, !tbaa !5
  %1092 = load i32, ptr %517, align 4, !tbaa !5
  %1093 = call ptr @s2n_strerror(i32 noundef %1092, ptr noundef nonnull @.str.24) #10
  %1094 = load i32, ptr %517, align 4, !tbaa !5
  %1095 = call ptr @s2n_strerror_debug(i32 noundef %1094, ptr noundef nonnull @.str.24) #10
  %1096 = load i32, ptr %571, align 4, !tbaa !5
  %1097 = call ptr @strerror(i32 noundef %1096) #10
  %1098 = load i32, ptr %571, align 4, !tbaa !5
  %1099 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1090, ptr noundef nonnull %.str.25.sink733, i32 noundef %1091, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.21, i32 noundef 121, ptr noundef %1093, ptr noundef %1095, ptr noundef %1097, i32 noundef %1098) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1100:                                             ; preds = %1074
  %1101 = call ptr @s2n_connection_new(i32 noundef 1) #10
  %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 = icmp eq ptr %1101, null
  br i1 %1104, label %1105, label %1127

1105:                                             ; preds = %1100
  %1106 = load i32, ptr %571, align 4, !tbaa !5
  %1107 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1108 = call i32 @s2n_print_stacktrace(ptr noundef %1107) #10
  %1109 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1110 = trunc nuw i8 %1109 to i1
  br i1 %1110, label %1111, label %1115

1111:                                             ; preds = %1105
  %1112 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1113 = call i32 @fileno(ptr noundef %1112) #10
  %1114 = call i32 @isatty(i32 noundef %1113) #10
  %.not341 = icmp eq i32 %1114, 0
  br i1 %.not341, label %1115, label %1116

1115:                                             ; preds = %1111, %1105
  br label %1116

1116:                                             ; preds = %1111, %1115
  %.str.25.sink742 = phi ptr [ @.str.25, %1115 ], [ @.str.22, %1111 ]
  store i32 %1106, ptr %571, align 4, !tbaa !5
  %1117 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1118 = load i32, ptr @test_count, align 4, !tbaa !5
  %1119 = load i32, ptr %517, align 4, !tbaa !5
  %1120 = call ptr @s2n_strerror(i32 noundef %1119, ptr noundef nonnull @.str.24) #10
  %1121 = load i32, ptr %517, align 4, !tbaa !5
  %1122 = call ptr @s2n_strerror_debug(i32 noundef %1121, ptr noundef nonnull @.str.24) #10
  %1123 = load i32, ptr %571, align 4, !tbaa !5
  %1124 = call ptr @strerror(i32 noundef %1123) #10
  %1125 = load i32, ptr %571, align 4, !tbaa !5
  %1126 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1117, ptr noundef nonnull %.str.25.sink742, i32 noundef %1118, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.21, i32 noundef 127, ptr noundef %1120, ptr noundef %1122, ptr noundef %1124, i32 noundef %1125) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1127:                                             ; preds = %1100
  %1128 = getelementptr inbounds i8, ptr %1101, i64 220
  store i8 33, ptr %1128, align 4, !tbaa !15
  %1129 = add nsw i32 %1102, 2
  store i32 %1129, ptr @test_count, align 4, !tbaa !5
  %1130 = getelementptr inbounds i8, ptr %1101, i64 1856
  %1131 = call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %1130, i8 noundef zeroext 0) #10
  %1132 = icmp eq i32 %1131, -1
  br i1 %1132, label %1133, label %1155

1133:                                             ; preds = %1127
  %1134 = load i32, ptr %571, align 4, !tbaa !5
  %1135 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1136 = call i32 @s2n_print_stacktrace(ptr noundef %1135) #10
  %1137 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1138 = trunc nuw i8 %1137 to i1
  br i1 %1138, label %1139, label %1143

1139:                                             ; preds = %1133
  %1140 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1141 = call i32 @fileno(ptr noundef %1140) #10
  %1142 = call i32 @isatty(i32 noundef %1141) #10
  %.not340 = icmp eq i32 %1142, 0
  br i1 %.not340, label %1143, label %1144

1143:                                             ; preds = %1139, %1133
  br label %1144

1144:                                             ; preds = %1139, %1143
  %.str.25.sink751 = phi ptr [ @.str.25, %1143 ], [ @.str.22, %1139 ]
  store i32 %1134, ptr %571, align 4, !tbaa !5
  %1145 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1146 = load i32, ptr @test_count, align 4, !tbaa !5
  %1147 = load i32, ptr %517, align 4, !tbaa !5
  %1148 = call ptr @s2n_strerror(i32 noundef %1147, ptr noundef nonnull @.str.24) #10
  %1149 = load i32, ptr %517, align 4, !tbaa !5
  %1150 = call ptr @s2n_strerror_debug(i32 noundef %1149, ptr noundef nonnull @.str.24) #10
  %1151 = load i32, ptr %571, align 4, !tbaa !5
  %1152 = call ptr @strerror(i32 noundef %1151) #10
  %1153 = load i32, ptr %571, align 4, !tbaa !5
  %1154 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1145, ptr noundef nonnull %.str.25.sink751, i32 noundef %1146, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.21, i32 noundef 130, ptr noundef %1148, ptr noundef %1150, ptr noundef %1152, i32 noundef %1153) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1155:                                             ; preds = %1127
  %1156 = load i32, ptr @test_count, align 4, !tbaa !5
  %1157 = add nsw i32 %1156, 1
  store i32 %1157, ptr @test_count, align 4, !tbaa !5
  %1158 = call i32 @s2n_stuffer_write_uint24(ptr noundef nonnull %1130, i32 noundef 0) #10
  %1159 = icmp eq i32 %1158, -1
  br i1 %1159, label %1160, label %1182

1160:                                             ; preds = %1155
  %1161 = load i32, ptr %571, align 4, !tbaa !5
  %1162 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1163 = call i32 @s2n_print_stacktrace(ptr noundef %1162) #10
  %1164 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1165 = trunc nuw i8 %1164 to i1
  br i1 %1165, label %1166, label %1170

1166:                                             ; preds = %1160
  %1167 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1168 = call i32 @fileno(ptr noundef %1167) #10
  %1169 = call i32 @isatty(i32 noundef %1168) #10
  %.not339 = icmp eq i32 %1169, 0
  br i1 %.not339, label %1170, label %1171

1170:                                             ; preds = %1166, %1160
  br label %1171

1171:                                             ; preds = %1166, %1170
  %.str.25.sink760 = phi ptr [ @.str.25, %1170 ], [ @.str.22, %1166 ]
  store i32 %1161, ptr %571, align 4, !tbaa !5
  %1172 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1173 = load i32, ptr @test_count, align 4, !tbaa !5
  %1174 = load i32, ptr %517, align 4, !tbaa !5
  %1175 = call ptr @s2n_strerror(i32 noundef %1174, ptr noundef nonnull @.str.24) #10
  %1176 = load i32, ptr %517, align 4, !tbaa !5
  %1177 = call ptr @s2n_strerror_debug(i32 noundef %1176, ptr noundef nonnull @.str.24) #10
  %1178 = load i32, ptr %571, align 4, !tbaa !5
  %1179 = call ptr @strerror(i32 noundef %1178) #10
  %1180 = load i32, ptr %571, align 4, !tbaa !5
  %1181 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1172, ptr noundef nonnull %.str.25.sink760, i32 noundef %1173, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.21, i32 noundef 131, ptr noundef %1175, ptr noundef %1177, ptr noundef %1179, i32 noundef %1180) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1182:                                             ; preds = %1155
  %1183 = load i32, ptr @test_count, align 4, !tbaa !5
  %1184 = add nsw i32 %1183, 1
  store i32 %1184, ptr @test_count, align 4, !tbaa !5
  %1185 = call i32 @s2n_post_handshake_recv(ptr noundef nonnull %1101) #10
  %1186 = call zeroext i1 @s2n_result_is_ok(i32 %1185)
  br i1 %1186, label %1209, label %1187

1187:                                             ; preds = %1182
  %1188 = load i32, ptr %571, align 4, !tbaa !5
  %1189 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1190 = call i32 @s2n_print_stacktrace(ptr noundef %1189) #10
  %1191 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1192 = trunc nuw i8 %1191 to i1
  br i1 %1192, label %1193, label %1197

1193:                                             ; preds = %1187
  %1194 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1195 = call i32 @fileno(ptr noundef %1194) #10
  %1196 = call i32 @isatty(i32 noundef %1195) #10
  %.not284 = icmp eq i32 %1196, 0
  br i1 %.not284, label %1197, label %1198

1197:                                             ; preds = %1193, %1187
  br label %1198

1198:                                             ; preds = %1193, %1197
  %.str.25.sink769 = phi ptr [ @.str.25, %1197 ], [ @.str.22, %1193 ]
  store i32 %1188, ptr %571, align 4, !tbaa !5
  %1199 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1200 = load i32, ptr @test_count, align 4, !tbaa !5
  %1201 = load i32, ptr %517, align 4, !tbaa !5
  %1202 = call ptr @s2n_strerror(i32 noundef %1201, ptr noundef nonnull @.str.24) #10
  %1203 = load i32, ptr %517, align 4, !tbaa !5
  %1204 = call ptr @s2n_strerror_debug(i32 noundef %1203, ptr noundef nonnull @.str.24) #10
  %1205 = load i32, ptr %571, align 4, !tbaa !5
  %1206 = call ptr @strerror(i32 noundef %1205) #10
  %1207 = load i32, ptr %571, align 4, !tbaa !5
  %1208 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1199, ptr noundef nonnull %.str.25.sink769, i32 noundef %1200, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.21, i32 noundef 132, ptr noundef %1202, ptr noundef %1204, ptr noundef %1206, i32 noundef %1207) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1209:                                             ; preds = %1182
  %1210 = load i32, ptr @test_count, align 4, !tbaa !5
  %1211 = add nsw i32 %1210, 1
  store i32 %1211, ptr @test_count, align 4, !tbaa !5
  %1212 = call i32 @s2n_connection_free(ptr noundef nonnull %1101) #10
  %1213 = icmp eq i32 %1212, -1
  br i1 %1213, label %1214, label %.preheader

1214:                                             ; preds = %1209
  %1215 = load i32, ptr %571, align 4, !tbaa !5
  %1216 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1217 = call i32 @s2n_print_stacktrace(ptr noundef %1216) #10
  %1218 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1219 = trunc nuw i8 %1218 to i1
  br i1 %1219, label %1220, label %1224

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

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

1225:                                             ; preds = %1220, %1224
  %.str.25.sink778 = phi ptr [ @.str.25, %1224 ], [ @.str.22, %1220 ]
  store i32 %1215, ptr %571, align 4, !tbaa !5
  %1226 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1227 = load i32, ptr @test_count, align 4, !tbaa !5
  %1228 = load i32, ptr %517, align 4, !tbaa !5
  %1229 = call ptr @s2n_strerror(i32 noundef %1228, ptr noundef nonnull @.str.24) #10
  %1230 = load i32, ptr %517, align 4, !tbaa !5
  %1231 = call ptr @s2n_strerror_debug(i32 noundef %1230, ptr noundef nonnull @.str.24) #10
  %1232 = load i32, ptr %571, align 4, !tbaa !5
  %1233 = call ptr @strerror(i32 noundef %1232) #10
  %1234 = load i32, ptr %571, align 4, !tbaa !5
  %1235 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1226, ptr noundef nonnull %.str.25.sink778, i32 noundef %1227, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.21, i32 noundef 134, ptr noundef %1229, ptr noundef %1231, ptr noundef %1233, i32 noundef %1234) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1236:                                             ; preds = %1405
  %1237 = add nuw nsw i64 %.0265373, 1
  %exitcond.not = icmp eq i64 %1237, 21
  br i1 %exitcond.not, label %.preheader1210, label %.preheader, !llvm.loop !52

.preheader1210:                                   ; preds = %.preheader, %1236
  br label %1434

.preheader:                                       ; preds = %1209, %1236
  %.0265373 = phi i64 [ %1237, %1236 ], [ 0, %1209 ]
  %1238 = getelementptr inbounds [21 x %struct.s2n_handshake_action], ptr @state_machine, i64 0, i64 %.0265373
  %1239 = load i8, ptr %1238, align 8, !tbaa !54
  %.not285 = icmp eq i8 %1239, 22
  br i1 %.not285, label %1240, label %.preheader1210

1240:                                             ; preds = %.preheader
  %1241 = load i32, ptr @test_count, align 4, !tbaa !5
  %1242 = add nsw i32 %1241, 1
  store i32 %1242, ptr @test_count, align 4, !tbaa !5
  %1243 = call ptr @s2n_connection_new(i32 noundef 0) #10
  %1244 = icmp eq ptr %1243, null
  br i1 %1244, label %1245, label %1267

1245:                                             ; preds = %1240
  %1246 = load i32, ptr %571, align 4, !tbaa !5
  %1247 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1248 = call i32 @s2n_print_stacktrace(ptr noundef %1247) #10
  %1249 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1250 = trunc nuw i8 %1249 to i1
  br i1 %1250, label %1251, label %1255

1251:                                             ; preds = %1245
  %1252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1253 = call i32 @fileno(ptr noundef %1252) #10
  %1254 = call i32 @isatty(i32 noundef %1253) #10
  %.not292 = icmp eq i32 %1254, 0
  br i1 %.not292, label %1255, label %1256

1255:                                             ; preds = %1251, %1245
  br label %1256

1256:                                             ; preds = %1251, %1255
  %.str.25.sink787 = phi ptr [ @.str.25, %1255 ], [ @.str.22, %1251 ]
  store i32 %1246, ptr %571, align 4, !tbaa !5
  %1257 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1258 = load i32, ptr @test_count, align 4, !tbaa !5
  %1259 = load i32, ptr %517, align 4, !tbaa !5
  %1260 = call ptr @s2n_strerror(i32 noundef %1259, ptr noundef nonnull @.str.24) #10
  %1261 = load i32, ptr %517, align 4, !tbaa !5
  %1262 = call ptr @s2n_strerror_debug(i32 noundef %1261, ptr noundef nonnull @.str.24) #10
  %1263 = load i32, ptr %571, align 4, !tbaa !5
  %1264 = call ptr @strerror(i32 noundef %1263) #10
  %1265 = load i32, ptr %571, align 4, !tbaa !5
  %1266 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1257, ptr noundef nonnull %.str.25.sink787, i32 noundef %1258, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.21, i32 noundef 149, ptr noundef %1260, ptr noundef %1262, ptr noundef %1264, i32 noundef %1265) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1267:                                             ; preds = %1240
  %1268 = getelementptr inbounds i8, ptr %1243, i64 220
  store i8 34, ptr %1268, align 4, !tbaa !15
  %1269 = load i32, ptr @test_count, align 4, !tbaa !5
  %1270 = add nsw i32 %1269, 1
  store i32 %1270, ptr @test_count, align 4, !tbaa !5
  %1271 = getelementptr inbounds i8, ptr %1243, i64 1856
  %1272 = getelementptr inbounds i8, ptr %1238, i64 1
  %1273 = load i8, ptr %1272, align 1, !tbaa !56
  %1274 = call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %1271, i8 noundef zeroext %1273) #10
  %1275 = icmp eq i32 %1274, -1
  br i1 %1275, label %1276, label %1298

1276:                                             ; preds = %1267
  %1277 = load i32, ptr %571, align 4, !tbaa !5
  %1278 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1279 = call i32 @s2n_print_stacktrace(ptr noundef %1278) #10
  %1280 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1281 = trunc nuw i8 %1280 to i1
  br i1 %1281, label %1282, label %1286

1282:                                             ; preds = %1276
  %1283 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1284 = call i32 @fileno(ptr noundef %1283) #10
  %1285 = call i32 @isatty(i32 noundef %1284) #10
  %.not291 = icmp eq i32 %1285, 0
  br i1 %.not291, label %1286, label %1287

1286:                                             ; preds = %1282, %1276
  br label %1287

1287:                                             ; preds = %1282, %1286
  %.str.25.sink796 = phi ptr [ @.str.25, %1286 ], [ @.str.22, %1282 ]
  store i32 %1277, ptr %571, align 4, !tbaa !5
  %1288 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1289 = load i32, ptr @test_count, align 4, !tbaa !5
  %1290 = load i32, ptr %517, align 4, !tbaa !5
  %1291 = call ptr @s2n_strerror(i32 noundef %1290, ptr noundef nonnull @.str.24) #10
  %1292 = load i32, ptr %517, align 4, !tbaa !5
  %1293 = call ptr @s2n_strerror_debug(i32 noundef %1292, ptr noundef nonnull @.str.24) #10
  %1294 = load i32, ptr %571, align 4, !tbaa !5
  %1295 = call ptr @strerror(i32 noundef %1294) #10
  %1296 = load i32, ptr %571, align 4, !tbaa !5
  %1297 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1288, ptr noundef nonnull %.str.25.sink796, i32 noundef %1289, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.21, i32 noundef 152, ptr noundef %1291, ptr noundef %1293, ptr noundef %1295, i32 noundef %1296) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1298:                                             ; preds = %1267
  %1299 = load i32, ptr @test_count, align 4, !tbaa !5
  %1300 = add nsw i32 %1299, 1
  store i32 %1300, ptr @test_count, align 4, !tbaa !5
  %1301 = call i32 @s2n_stuffer_write_uint24(ptr noundef nonnull %1271, i32 noundef 0) #10
  %1302 = icmp eq i32 %1301, -1
  br i1 %1302, label %1303, label %1325

1303:                                             ; preds = %1298
  %1304 = load i32, ptr %571, align 4, !tbaa !5
  %1305 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1306 = call i32 @s2n_print_stacktrace(ptr noundef %1305) #10
  %1307 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1308 = trunc nuw i8 %1307 to i1
  br i1 %1308, label %1309, label %1313

1309:                                             ; preds = %1303
  %1310 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1311 = call i32 @fileno(ptr noundef %1310) #10
  %1312 = call i32 @isatty(i32 noundef %1311) #10
  %.not290 = icmp eq i32 %1312, 0
  br i1 %.not290, label %1313, label %1314

1313:                                             ; preds = %1309, %1303
  br label %1314

1314:                                             ; preds = %1309, %1313
  %.str.25.sink805 = phi ptr [ @.str.25, %1313 ], [ @.str.22, %1309 ]
  store i32 %1304, ptr %571, align 4, !tbaa !5
  %1315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1316 = load i32, ptr @test_count, align 4, !tbaa !5
  %1317 = load i32, ptr %517, align 4, !tbaa !5
  %1318 = call ptr @s2n_strerror(i32 noundef %1317, ptr noundef nonnull @.str.24) #10
  %1319 = load i32, ptr %517, align 4, !tbaa !5
  %1320 = call ptr @s2n_strerror_debug(i32 noundef %1319, ptr noundef nonnull @.str.24) #10
  %1321 = load i32, ptr %571, align 4, !tbaa !5
  %1322 = call ptr @strerror(i32 noundef %1321) #10
  %1323 = load i32, ptr %571, align 4, !tbaa !5
  %1324 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1315, ptr noundef nonnull %.str.25.sink805, i32 noundef %1316, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.21, i32 noundef 153, ptr noundef %1318, ptr noundef %1320, ptr noundef %1322, i32 noundef %1323) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1325:                                             ; preds = %1298
  %1326 = load i32, ptr @test_count, align 4, !tbaa !5
  %1327 = add nsw i32 %1326, 1
  store i32 %1327, ptr @test_count, align 4, !tbaa !5
  %1328 = call i32 @s2n_post_handshake_recv(ptr noundef nonnull %1243) #10
  %1329 = call zeroext i1 @s2n_result_is_error(i32 %1328)
  br i1 %1329, label %1352, label %1330

1330:                                             ; preds = %1325
  %1331 = load i32, ptr %571, align 4, !tbaa !5
  %1332 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1333 = call i32 @s2n_print_stacktrace(ptr noundef %1332) #10
  %1334 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1335 = trunc nuw i8 %1334 to i1
  br i1 %1335, label %1336, label %1340

1336:                                             ; preds = %1330
  %1337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1338 = call i32 @fileno(ptr noundef %1337) #10
  %1339 = call i32 @isatty(i32 noundef %1338) #10
  %.not286 = icmp eq i32 %1339, 0
  br i1 %.not286, label %1340, label %1341

1340:                                             ; preds = %1336, %1330
  br label %1341

1341:                                             ; preds = %1336, %1340
  %.str.25.sink814 = phi ptr [ @.str.25, %1340 ], [ @.str.22, %1336 ]
  store i32 %1331, ptr %571, align 4, !tbaa !5
  %1342 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1343 = load i32, ptr @test_count, align 4, !tbaa !5
  %1344 = load i32, ptr %517, align 4, !tbaa !5
  %1345 = call ptr @s2n_strerror(i32 noundef %1344, ptr noundef nonnull @.str.24) #10
  %1346 = load i32, ptr %517, align 4, !tbaa !5
  %1347 = call ptr @s2n_strerror_debug(i32 noundef %1346, ptr noundef nonnull @.str.24) #10
  %1348 = load i32, ptr %571, align 4, !tbaa !5
  %1349 = call ptr @strerror(i32 noundef %1348) #10
  %1350 = load i32, ptr %571, align 4, !tbaa !5
  %1351 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1342, ptr noundef nonnull %.str.25.sink814, i32 noundef %1343, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.21, i32 noundef 154, ptr noundef %1345, ptr noundef %1347, ptr noundef %1349, i32 noundef %1350) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1352:                                             ; preds = %1325
  %1353 = load i32, ptr @test_count, align 4, !tbaa !5
  %1354 = add nsw i32 %1353, 1
  store i32 %1354, ptr @test_count, align 4, !tbaa !5
  %1355 = load i32, ptr %517, align 4, !tbaa !5
  %1356 = icmp eq i32 %1355, 335544322
  br i1 %1356, label %1379, label %1357

1357:                                             ; preds = %1352
  %1358 = load i32, ptr %571, align 4, !tbaa !5
  %1359 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1360 = call i32 @s2n_print_stacktrace(ptr noundef %1359) #10
  %1361 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1362 = trunc nuw i8 %1361 to i1
  br i1 %1362, label %1363, label %1367

1363:                                             ; preds = %1357
  %1364 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1365 = call i32 @fileno(ptr noundef %1364) #10
  %1366 = call i32 @isatty(i32 noundef %1365) #10
  %.not287 = icmp eq i32 %1366, 0
  br i1 %.not287, label %1367, label %1368

1367:                                             ; preds = %1363, %1357
  br label %1368

1368:                                             ; preds = %1363, %1367
  %.str.25.sink823 = phi ptr [ @.str.25, %1367 ], [ @.str.22, %1363 ]
  store i32 %1358, ptr %571, align 4, !tbaa !5
  %1369 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1370 = load i32, ptr @test_count, align 4, !tbaa !5
  %1371 = load i32, ptr %517, align 4, !tbaa !5
  %1372 = call ptr @s2n_strerror(i32 noundef %1371, ptr noundef nonnull @.str.24) #10
  %1373 = load i32, ptr %517, align 4, !tbaa !5
  %1374 = call ptr @s2n_strerror_debug(i32 noundef %1373, ptr noundef nonnull @.str.24) #10
  %1375 = load i32, ptr %571, align 4, !tbaa !5
  %1376 = call ptr @strerror(i32 noundef %1375) #10
  %1377 = load i32, ptr %571, align 4, !tbaa !5
  %1378 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1369, ptr noundef nonnull %.str.25.sink823, i32 noundef %1370, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.21, i32 noundef 154, ptr noundef %1372, ptr noundef %1374, ptr noundef %1376, i32 noundef %1377) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1379:                                             ; preds = %1352
  %1380 = add nsw i32 %1353, 2
  store i32 %1380, ptr @test_count, align 4, !tbaa !5
  %1381 = call ptr @s2n_strerror_debug(i32 noundef 335544322, ptr noundef nonnull @.str.24) #10
  %1382 = icmp eq ptr %1381, null
  br i1 %1382, label %1383, label %1405

1383:                                             ; preds = %1379
  %1384 = load i32, ptr %571, align 4, !tbaa !5
  %1385 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1386 = call i32 @s2n_print_stacktrace(ptr noundef %1385) #10
  %1387 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1388 = trunc nuw i8 %1387 to i1
  br i1 %1388, label %1389, label %1393

1389:                                             ; preds = %1383
  %1390 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1391 = call i32 @fileno(ptr noundef %1390) #10
  %1392 = call i32 @isatty(i32 noundef %1391) #10
  %.not289 = icmp eq i32 %1392, 0
  br i1 %.not289, label %1393, label %1394

1393:                                             ; preds = %1389, %1383
  br label %1394

1394:                                             ; preds = %1389, %1393
  %.str.25.sink832 = phi ptr [ @.str.25, %1393 ], [ @.str.22, %1389 ]
  store i32 %1384, ptr %571, align 4, !tbaa !5
  %1395 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1396 = load i32, ptr @test_count, align 4, !tbaa !5
  %1397 = load i32, ptr %517, align 4, !tbaa !5
  %1398 = call ptr @s2n_strerror(i32 noundef %1397, ptr noundef nonnull @.str.24) #10
  %1399 = load i32, ptr %517, align 4, !tbaa !5
  %1400 = call ptr @s2n_strerror_debug(i32 noundef %1399, ptr noundef nonnull @.str.24) #10
  %1401 = load i32, ptr %571, align 4, !tbaa !5
  %1402 = call ptr @strerror(i32 noundef %1401) #10
  %1403 = load i32, ptr %571, align 4, !tbaa !5
  %1404 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1395, ptr noundef nonnull %.str.25.sink832, i32 noundef %1396, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.21, i32 noundef 154, ptr noundef %1398, ptr noundef %1400, ptr noundef %1402, i32 noundef %1403) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1405:                                             ; preds = %1379
  store i32 0, ptr %517, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #10
  store i32 0, ptr %571, align 4, !tbaa !5
  %1406 = load i32, ptr @test_count, align 4, !tbaa !5
  %1407 = add nsw i32 %1406, 1
  store i32 %1407, ptr @test_count, align 4, !tbaa !5
  %1408 = call i32 @s2n_connection_free(ptr noundef nonnull %1243) #10
  %1409 = icmp eq i32 %1408, -1
  br i1 %1409, label %1410, label %1236

1410:                                             ; preds = %1405
  %1411 = load i32, ptr %571, align 4, !tbaa !5
  %1412 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1413 = call i32 @s2n_print_stacktrace(ptr noundef %1412) #10
  %1414 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1415 = trunc nuw i8 %1414 to i1
  br i1 %1415, label %1416, label %1420

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

1420:                                             ; preds = %1416, %1410
  br label %1421

1421:                                             ; preds = %1416, %1420
  %.str.25.sink841 = phi ptr [ @.str.25, %1420 ], [ @.str.22, %1416 ]
  store i32 %1411, ptr %571, align 4, !tbaa !5
  %1422 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1423 = load i32, ptr @test_count, align 4, !tbaa !5
  %1424 = load i32, ptr %517, align 4, !tbaa !5
  %1425 = call ptr @s2n_strerror(i32 noundef %1424, ptr noundef nonnull @.str.24) #10
  %1426 = load i32, ptr %517, align 4, !tbaa !5
  %1427 = call ptr @s2n_strerror_debug(i32 noundef %1426, ptr noundef nonnull @.str.24) #10
  %1428 = load i32, ptr %571, align 4, !tbaa !5
  %1429 = call ptr @strerror(i32 noundef %1428) #10
  %1430 = load i32, ptr %571, align 4, !tbaa !5
  %1431 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1422, ptr noundef nonnull %.str.25.sink841, i32 noundef %1423, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.21, i32 noundef 156, ptr noundef %1425, ptr noundef %1427, ptr noundef %1429, i32 noundef %1430) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1432:                                             ; preds = %1602
  %1433 = add nuw nsw i64 %.0266374, 1
  %exitcond375.not = icmp eq i64 %1433, 21
  br i1 %exitcond375.not, label %1629, label %1434, !llvm.loop !57

1434:                                             ; preds = %.preheader1210, %1432
  %.0266374 = phi i64 [ %1433, %1432 ], [ 0, %.preheader1210 ]
  %1435 = getelementptr inbounds [21 x %struct.s2n_handshake_action], ptr @tls13_state_machine, i64 0, i64 %.0266374
  %1436 = load i8, ptr %1435, align 8, !tbaa !54
  %.not293 = icmp eq i8 %1436, 22
  br i1 %.not293, label %1437, label %1629

1437:                                             ; preds = %1434
  %1438 = load i32, ptr @test_count, align 4, !tbaa !5
  %1439 = add nsw i32 %1438, 1
  store i32 %1439, ptr @test_count, align 4, !tbaa !5
  %1440 = call ptr @s2n_connection_new(i32 noundef 0) #10
  %1441 = icmp eq ptr %1440, null
  br i1 %1441, label %1442, label %1464

1442:                                             ; preds = %1437
  %1443 = load i32, ptr %571, align 4, !tbaa !5
  %1444 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1445 = call i32 @s2n_print_stacktrace(ptr noundef %1444) #10
  %1446 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1447 = trunc nuw i8 %1446 to i1
  br i1 %1447, label %1448, label %1452

1448:                                             ; preds = %1442
  %1449 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1450 = call i32 @fileno(ptr noundef %1449) #10
  %1451 = call i32 @isatty(i32 noundef %1450) #10
  %.not300 = icmp eq i32 %1451, 0
  br i1 %.not300, label %1452, label %1453

1452:                                             ; preds = %1448, %1442
  br label %1453

1453:                                             ; preds = %1448, %1452
  %.str.25.sink850 = phi ptr [ @.str.25, %1452 ], [ @.str.22, %1448 ]
  store i32 %1443, ptr %571, align 4, !tbaa !5
  %1454 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1455 = load i32, ptr @test_count, align 4, !tbaa !5
  %1456 = load i32, ptr %517, align 4, !tbaa !5
  %1457 = call ptr @s2n_strerror(i32 noundef %1456, ptr noundef nonnull @.str.24) #10
  %1458 = load i32, ptr %517, align 4, !tbaa !5
  %1459 = call ptr @s2n_strerror_debug(i32 noundef %1458, ptr noundef nonnull @.str.24) #10
  %1460 = load i32, ptr %571, align 4, !tbaa !5
  %1461 = call ptr @strerror(i32 noundef %1460) #10
  %1462 = load i32, ptr %571, align 4, !tbaa !5
  %1463 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1454, ptr noundef nonnull %.str.25.sink850, i32 noundef %1455, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.21, i32 noundef 166, ptr noundef %1457, ptr noundef %1459, ptr noundef %1461, i32 noundef %1462) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1464:                                             ; preds = %1437
  %1465 = getelementptr inbounds i8, ptr %1440, i64 220
  store i8 34, ptr %1465, align 4, !tbaa !15
  %1466 = load i32, ptr @test_count, align 4, !tbaa !5
  %1467 = add nsw i32 %1466, 1
  store i32 %1467, ptr @test_count, align 4, !tbaa !5
  %1468 = getelementptr inbounds i8, ptr %1440, i64 1856
  %1469 = getelementptr inbounds i8, ptr %1435, i64 1
  %1470 = load i8, ptr %1469, align 1, !tbaa !56
  %1471 = call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %1468, i8 noundef zeroext %1470) #10
  %1472 = icmp eq i32 %1471, -1
  br i1 %1472, label %1473, label %1495

1473:                                             ; preds = %1464
  %1474 = load i32, ptr %571, align 4, !tbaa !5
  %1475 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1476 = call i32 @s2n_print_stacktrace(ptr noundef %1475) #10
  %1477 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1478 = trunc nuw i8 %1477 to i1
  br i1 %1478, label %1479, label %1483

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

1483:                                             ; preds = %1479, %1473
  br label %1484

1484:                                             ; preds = %1479, %1483
  %.str.25.sink859 = phi ptr [ @.str.25, %1483 ], [ @.str.22, %1479 ]
  store i32 %1474, ptr %571, align 4, !tbaa !5
  %1485 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1486 = load i32, ptr @test_count, align 4, !tbaa !5
  %1487 = load i32, ptr %517, align 4, !tbaa !5
  %1488 = call ptr @s2n_strerror(i32 noundef %1487, ptr noundef nonnull @.str.24) #10
  %1489 = load i32, ptr %517, align 4, !tbaa !5
  %1490 = call ptr @s2n_strerror_debug(i32 noundef %1489, ptr noundef nonnull @.str.24) #10
  %1491 = load i32, ptr %571, align 4, !tbaa !5
  %1492 = call ptr @strerror(i32 noundef %1491) #10
  %1493 = load i32, ptr %571, align 4, !tbaa !5
  %1494 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1485, ptr noundef nonnull %.str.25.sink859, i32 noundef %1486, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.21, i32 noundef 169, ptr noundef %1488, ptr noundef %1490, ptr noundef %1492, i32 noundef %1493) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1495:                                             ; preds = %1464
  %1496 = load i32, ptr @test_count, align 4, !tbaa !5
  %1497 = add nsw i32 %1496, 1
  store i32 %1497, ptr @test_count, align 4, !tbaa !5
  %1498 = call i32 @s2n_stuffer_write_uint24(ptr noundef nonnull %1468, i32 noundef 0) #10
  %1499 = icmp eq i32 %1498, -1
  br i1 %1499, label %1500, label %1522

1500:                                             ; preds = %1495
  %1501 = load i32, ptr %571, align 4, !tbaa !5
  %1502 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1503 = call i32 @s2n_print_stacktrace(ptr noundef %1502) #10
  %1504 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1505 = trunc nuw i8 %1504 to i1
  br i1 %1505, label %1506, label %1510

1506:                                             ; preds = %1500
  %1507 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1508 = call i32 @fileno(ptr noundef %1507) #10
  %1509 = call i32 @isatty(i32 noundef %1508) #10
  %.not298 = icmp eq i32 %1509, 0
  br i1 %.not298, label %1510, label %1511

1510:                                             ; preds = %1506, %1500
  br label %1511

1511:                                             ; preds = %1506, %1510
  %.str.25.sink868 = phi ptr [ @.str.25, %1510 ], [ @.str.22, %1506 ]
  store i32 %1501, ptr %571, align 4, !tbaa !5
  %1512 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1513 = load i32, ptr @test_count, align 4, !tbaa !5
  %1514 = load i32, ptr %517, align 4, !tbaa !5
  %1515 = call ptr @s2n_strerror(i32 noundef %1514, ptr noundef nonnull @.str.24) #10
  %1516 = load i32, ptr %517, align 4, !tbaa !5
  %1517 = call ptr @s2n_strerror_debug(i32 noundef %1516, ptr noundef nonnull @.str.24) #10
  %1518 = load i32, ptr %571, align 4, !tbaa !5
  %1519 = call ptr @strerror(i32 noundef %1518) #10
  %1520 = load i32, ptr %571, align 4, !tbaa !5
  %1521 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1512, ptr noundef nonnull %.str.25.sink868, i32 noundef %1513, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.21, i32 noundef 170, ptr noundef %1515, ptr noundef %1517, ptr noundef %1519, i32 noundef %1520) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1522:                                             ; preds = %1495
  %1523 = load i32, ptr @test_count, align 4, !tbaa !5
  %1524 = add nsw i32 %1523, 1
  store i32 %1524, ptr @test_count, align 4, !tbaa !5
  %1525 = call i32 @s2n_post_handshake_recv(ptr noundef nonnull %1440) #10
  %1526 = call zeroext i1 @s2n_result_is_error(i32 %1525)
  br i1 %1526, label %1549, label %1527

1527:                                             ; preds = %1522
  %1528 = load i32, ptr %571, align 4, !tbaa !5
  %1529 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1530 = call i32 @s2n_print_stacktrace(ptr noundef %1529) #10
  %1531 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1532 = trunc nuw i8 %1531 to i1
  br i1 %1532, label %1533, label %1537

1533:                                             ; preds = %1527
  %1534 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1535 = call i32 @fileno(ptr noundef %1534) #10
  %1536 = call i32 @isatty(i32 noundef %1535) #10
  %.not294 = icmp eq i32 %1536, 0
  br i1 %.not294, label %1537, label %1538

1537:                                             ; preds = %1533, %1527
  br label %1538

1538:                                             ; preds = %1533, %1537
  %.str.25.sink877 = phi ptr [ @.str.25, %1537 ], [ @.str.22, %1533 ]
  store i32 %1528, ptr %571, align 4, !tbaa !5
  %1539 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1540 = load i32, ptr @test_count, align 4, !tbaa !5
  %1541 = load i32, ptr %517, align 4, !tbaa !5
  %1542 = call ptr @s2n_strerror(i32 noundef %1541, ptr noundef nonnull @.str.24) #10
  %1543 = load i32, ptr %517, align 4, !tbaa !5
  %1544 = call ptr @s2n_strerror_debug(i32 noundef %1543, ptr noundef nonnull @.str.24) #10
  %1545 = load i32, ptr %571, align 4, !tbaa !5
  %1546 = call ptr @strerror(i32 noundef %1545) #10
  %1547 = load i32, ptr %571, align 4, !tbaa !5
  %1548 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1539, ptr noundef nonnull %.str.25.sink877, i32 noundef %1540, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.21, i32 noundef 171, ptr noundef %1542, ptr noundef %1544, ptr noundef %1546, i32 noundef %1547) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1549:                                             ; preds = %1522
  %1550 = load i32, ptr @test_count, align 4, !tbaa !5
  %1551 = add nsw i32 %1550, 1
  store i32 %1551, ptr @test_count, align 4, !tbaa !5
  %1552 = load i32, ptr %517, align 4, !tbaa !5
  %1553 = icmp eq i32 %1552, 335544322
  br i1 %1553, label %1576, label %1554

1554:                                             ; preds = %1549
  %1555 = load i32, ptr %571, align 4, !tbaa !5
  %1556 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1557 = call i32 @s2n_print_stacktrace(ptr noundef %1556) #10
  %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) #10
  %1563 = call i32 @isatty(i32 noundef %1562) #10
  %.not295 = icmp eq i32 %1563, 0
  br i1 %.not295, label %1564, label %1565

1564:                                             ; preds = %1560, %1554
  br label %1565

1565:                                             ; preds = %1560, %1564
  %.str.25.sink886 = phi ptr [ @.str.25, %1564 ], [ @.str.22, %1560 ]
  store i32 %1555, ptr %571, 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 %517, align 4, !tbaa !5
  %1569 = call ptr @s2n_strerror(i32 noundef %1568, ptr noundef nonnull @.str.24) #10
  %1570 = load i32, ptr %517, align 4, !tbaa !5
  %1571 = call ptr @s2n_strerror_debug(i32 noundef %1570, ptr noundef nonnull @.str.24) #10
  %1572 = load i32, ptr %571, align 4, !tbaa !5
  %1573 = call ptr @strerror(i32 noundef %1572) #10
  %1574 = load i32, ptr %571, align 4, !tbaa !5
  %1575 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1566, ptr noundef nonnull %.str.25.sink886, i32 noundef %1567, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.21, i32 noundef 171, ptr noundef %1569, ptr noundef %1571, ptr noundef %1573, i32 noundef %1574) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1576:                                             ; preds = %1549
  %1577 = add nsw i32 %1550, 2
  store i32 %1577, ptr @test_count, align 4, !tbaa !5
  %1578 = call ptr @s2n_strerror_debug(i32 noundef 335544322, ptr noundef nonnull @.str.24) #10
  %1579 = icmp eq ptr %1578, null
  br i1 %1579, label %1580, label %1602

1580:                                             ; preds = %1576
  %1581 = load i32, ptr %571, align 4, !tbaa !5
  %1582 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1583 = call i32 @s2n_print_stacktrace(ptr noundef %1582) #10
  %1584 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1585 = trunc nuw i8 %1584 to i1
  br i1 %1585, label %1586, label %1590

1586:                                             ; preds = %1580
  %1587 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1588 = call i32 @fileno(ptr noundef %1587) #10
  %1589 = call i32 @isatty(i32 noundef %1588) #10
  %.not297 = icmp eq i32 %1589, 0
  br i1 %.not297, label %1590, label %1591

1590:                                             ; preds = %1586, %1580
  br label %1591

1591:                                             ; preds = %1586, %1590
  %.str.25.sink895 = phi ptr [ @.str.25, %1590 ], [ @.str.22, %1586 ]
  store i32 %1581, ptr %571, align 4, !tbaa !5
  %1592 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1593 = load i32, ptr @test_count, align 4, !tbaa !5
  %1594 = load i32, ptr %517, align 4, !tbaa !5
  %1595 = call ptr @s2n_strerror(i32 noundef %1594, ptr noundef nonnull @.str.24) #10
  %1596 = load i32, ptr %517, align 4, !tbaa !5
  %1597 = call ptr @s2n_strerror_debug(i32 noundef %1596, ptr noundef nonnull @.str.24) #10
  %1598 = load i32, ptr %571, align 4, !tbaa !5
  %1599 = call ptr @strerror(i32 noundef %1598) #10
  %1600 = load i32, ptr %571, align 4, !tbaa !5
  %1601 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1592, ptr noundef nonnull %.str.25.sink895, i32 noundef %1593, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.21, i32 noundef 171, ptr noundef %1595, ptr noundef %1597, ptr noundef %1599, i32 noundef %1600) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1602:                                             ; preds = %1576
  store i32 0, ptr %517, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #10
  store i32 0, ptr %571, align 4, !tbaa !5
  %1603 = load i32, ptr @test_count, align 4, !tbaa !5
  %1604 = add nsw i32 %1603, 1
  store i32 %1604, ptr @test_count, align 4, !tbaa !5
  %1605 = call i32 @s2n_connection_free(ptr noundef nonnull %1440) #10
  %1606 = icmp eq i32 %1605, -1
  br i1 %1606, label %1607, label %1432

1607:                                             ; preds = %1602
  %1608 = load i32, ptr %571, align 4, !tbaa !5
  %1609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1610 = call i32 @s2n_print_stacktrace(ptr noundef %1609) #10
  %1611 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1612 = trunc nuw i8 %1611 to i1
  br i1 %1612, label %1613, label %1617

1613:                                             ; preds = %1607
  %1614 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1615 = call i32 @fileno(ptr noundef %1614) #10
  %1616 = call i32 @isatty(i32 noundef %1615) #10
  %.not296 = icmp eq i32 %1616, 0
  br i1 %.not296, label %1617, label %1618

1617:                                             ; preds = %1613, %1607
  br label %1618

1618:                                             ; preds = %1613, %1617
  %.str.25.sink904 = phi ptr [ @.str.25, %1617 ], [ @.str.22, %1613 ]
  store i32 %1608, ptr %571, align 4, !tbaa !5
  %1619 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1620 = load i32, ptr @test_count, align 4, !tbaa !5
  %1621 = load i32, ptr %517, align 4, !tbaa !5
  %1622 = call ptr @s2n_strerror(i32 noundef %1621, ptr noundef nonnull @.str.24) #10
  %1623 = load i32, ptr %517, align 4, !tbaa !5
  %1624 = call ptr @s2n_strerror_debug(i32 noundef %1623, ptr noundef nonnull @.str.24) #10
  %1625 = load i32, ptr %571, align 4, !tbaa !5
  %1626 = call ptr @strerror(i32 noundef %1625) #10
  %1627 = load i32, ptr %571, align 4, !tbaa !5
  %1628 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1619, ptr noundef nonnull %.str.25.sink904, i32 noundef %1620, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.21, i32 noundef 173, ptr noundef %1622, ptr noundef %1624, ptr noundef %1626, i32 noundef %1627) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1629:                                             ; preds = %1434, %1432
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #10
  %1630 = call ptr @s2n_connection_new(i32 noundef 1) #10
  store ptr %1630, ptr %5, align 8, !tbaa !9
  %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 = icmp eq ptr %1630, null
  br i1 %1633, label %1634, label %1656

1634:                                             ; preds = %1629
  %1635 = load i32, ptr %571, align 4, !tbaa !5
  %1636 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1637 = call i32 @s2n_print_stacktrace(ptr noundef %1636) #10
  %1638 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1639 = trunc nuw i8 %1638 to i1
  br i1 %1639, label %1640, label %1644

1640:                                             ; preds = %1634
  %1641 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1642 = call i32 @fileno(ptr noundef %1641) #10
  %1643 = call i32 @isatty(i32 noundef %1642) #10
  %.not337 = icmp eq i32 %1643, 0
  br i1 %.not337, label %1644, label %1645

1644:                                             ; preds = %1640, %1634
  br label %1645

1645:                                             ; preds = %1640, %1644
  %.str.25.sink913 = phi ptr [ @.str.25, %1644 ], [ @.str.22, %1640 ]
  store i32 %1635, ptr %571, align 4, !tbaa !5
  %1646 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1647 = load i32, ptr @test_count, align 4, !tbaa !5
  %1648 = load i32, ptr %517, align 4, !tbaa !5
  %1649 = call ptr @s2n_strerror(i32 noundef %1648, ptr noundef nonnull @.str.24) #10
  %1650 = load i32, ptr %517, align 4, !tbaa !5
  %1651 = call ptr @s2n_strerror_debug(i32 noundef %1650, ptr noundef nonnull @.str.24) #10
  %1652 = load i32, ptr %571, align 4, !tbaa !5
  %1653 = call ptr @strerror(i32 noundef %1652) #10
  %1654 = load i32, ptr %571, align 4, !tbaa !5
  %1655 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1646, ptr noundef nonnull %.str.25.sink913, i32 noundef %1647, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.21, i32 noundef 184, ptr noundef %1649, ptr noundef %1651, ptr noundef %1653, i32 noundef %1654) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1656:                                             ; preds = %1629
  %1657 = add nsw i32 %1631, 2
  store i32 %1657, ptr @test_count, align 4, !tbaa !5
  %1658 = call i32 @s2n_connection_set_secrets(ptr noundef nonnull %1630) #10
  %1659 = call zeroext i1 @s2n_result_is_ok(i32 %1658)
  br i1 %1659, label %1682, label %1660

1660:                                             ; preds = %1656
  %1661 = load i32, ptr %571, align 4, !tbaa !5
  %1662 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1663 = call i32 @s2n_print_stacktrace(ptr noundef %1662) #10
  %1664 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1665 = trunc nuw i8 %1664 to i1
  br i1 %1665, label %1666, label %1670

1666:                                             ; preds = %1660
  %1667 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1668 = call i32 @fileno(ptr noundef %1667) #10
  %1669 = call i32 @isatty(i32 noundef %1668) #10
  %.not301 = icmp eq i32 %1669, 0
  br i1 %.not301, label %1670, label %1671

1670:                                             ; preds = %1666, %1660
  br label %1671

1671:                                             ; preds = %1666, %1670
  %.str.25.sink922 = phi ptr [ @.str.25, %1670 ], [ @.str.22, %1666 ]
  store i32 %1661, ptr %571, align 4, !tbaa !5
  %1672 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1673 = load i32, ptr @test_count, align 4, !tbaa !5
  %1674 = load i32, ptr %517, align 4, !tbaa !5
  %1675 = call ptr @s2n_strerror(i32 noundef %1674, ptr noundef nonnull @.str.24) #10
  %1676 = load i32, ptr %517, align 4, !tbaa !5
  %1677 = call ptr @s2n_strerror_debug(i32 noundef %1676, ptr noundef nonnull @.str.24) #10
  %1678 = load i32, ptr %571, align 4, !tbaa !5
  %1679 = call ptr @strerror(i32 noundef %1678) #10
  %1680 = load i32, ptr %571, align 4, !tbaa !5
  %1681 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1672, ptr noundef nonnull %.str.25.sink922, i32 noundef %1673, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.21, i32 noundef 185, ptr noundef %1675, ptr noundef %1677, ptr noundef %1679, i32 noundef %1680) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1682:                                             ; preds = %1656
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %6) #10
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %6, i8 0, i64 40, i1 false)
  %1683 = load i32, ptr @test_count, align 4, !tbaa !5
  %1684 = add nsw i32 %1683, 1
  store i32 %1684, ptr @test_count, align 4, !tbaa !5
  %1685 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %6, i32 noundef 0) #10
  %1686 = icmp eq i32 %1685, -1
  br i1 %1686, label %1687, label %1709

1687:                                             ; preds = %1682
  %1688 = load i32, ptr %571, align 4, !tbaa !5
  %1689 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1690 = call i32 @s2n_print_stacktrace(ptr noundef %1689) #10
  %1691 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1692 = trunc nuw i8 %1691 to i1
  br i1 %1692, label %1693, label %1697

1693:                                             ; preds = %1687
  %1694 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1695 = call i32 @fileno(ptr noundef %1694) #10
  %1696 = call i32 @isatty(i32 noundef %1695) #10
  %.not336 = icmp eq i32 %1696, 0
  br i1 %.not336, label %1697, label %1698

1697:                                             ; preds = %1693, %1687
  br label %1698

1698:                                             ; preds = %1693, %1697
  %.str.25.sink931 = phi ptr [ @.str.25, %1697 ], [ @.str.22, %1693 ]
  store i32 %1688, ptr %571, align 4, !tbaa !5
  %1699 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1700 = load i32, ptr @test_count, align 4, !tbaa !5
  %1701 = load i32, ptr %517, align 4, !tbaa !5
  %1702 = call ptr @s2n_strerror(i32 noundef %1701, ptr noundef nonnull @.str.24) #10
  %1703 = load i32, ptr %517, align 4, !tbaa !5
  %1704 = call ptr @s2n_strerror_debug(i32 noundef %1703, ptr noundef nonnull @.str.24) #10
  %1705 = load i32, ptr %571, align 4, !tbaa !5
  %1706 = call ptr @strerror(i32 noundef %1705) #10
  %1707 = load i32, ptr %571, align 4, !tbaa !5
  %1708 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1699, ptr noundef nonnull %.str.25.sink931, i32 noundef %1700, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.21, i32 noundef 188, ptr noundef %1702, ptr noundef %1704, ptr noundef %1706, i32 noundef %1707) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1709:                                             ; preds = %1682
  %1710 = load i32, ptr @test_count, align 4, !tbaa !5
  %1711 = add nsw i32 %1710, 1
  store i32 %1711, ptr @test_count, align 4, !tbaa !5
  %1712 = load ptr, ptr %5, align 8, !tbaa !9
  %1713 = call i32 @s2n_connection_set_send_io_stuffer(ptr noundef nonnull %6, ptr noundef %1712) #10
  %1714 = icmp eq i32 %1713, -1
  br i1 %1714, label %1715, label %1737

1715:                                             ; preds = %1709
  %1716 = load i32, ptr %571, align 4, !tbaa !5
  %1717 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1718 = call i32 @s2n_print_stacktrace(ptr noundef %1717) #10
  %1719 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1720 = trunc nuw i8 %1719 to i1
  br i1 %1720, label %1721, label %1725

1721:                                             ; preds = %1715
  %1722 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1723 = call i32 @fileno(ptr noundef %1722) #10
  %1724 = call i32 @isatty(i32 noundef %1723) #10
  %.not335 = icmp eq i32 %1724, 0
  br i1 %.not335, label %1725, label %1726

1725:                                             ; preds = %1721, %1715
  br label %1726

1726:                                             ; preds = %1721, %1725
  %.str.25.sink940 = phi ptr [ @.str.25, %1725 ], [ @.str.22, %1721 ]
  store i32 %1716, ptr %571, align 4, !tbaa !5
  %1727 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1728 = load i32, ptr @test_count, align 4, !tbaa !5
  %1729 = load i32, ptr %517, align 4, !tbaa !5
  %1730 = call ptr @s2n_strerror(i32 noundef %1729, ptr noundef nonnull @.str.24) #10
  %1731 = load i32, ptr %517, align 4, !tbaa !5
  %1732 = call ptr @s2n_strerror_debug(i32 noundef %1731, ptr noundef nonnull @.str.24) #10
  %1733 = load i32, ptr %571, align 4, !tbaa !5
  %1734 = call ptr @strerror(i32 noundef %1733) #10
  %1735 = load i32, ptr %571, align 4, !tbaa !5
  %1736 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1727, ptr noundef nonnull %.str.25.sink940, i32 noundef %1728, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.21, i32 noundef 189, ptr noundef %1730, ptr noundef %1732, ptr noundef %1734, i32 noundef %1735) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1737:                                             ; preds = %1709
  %1738 = load ptr, ptr %5, align 8, !tbaa !9
  %1739 = getelementptr inbounds i8, ptr %1738, i64 220
  store i8 34, ptr %1739, align 4, !tbaa !15
  %1740 = getelementptr inbounds i8, ptr %1738, i64 4176
  call void @s2n_atomic_flag_set(ptr noundef nonnull %1740) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %7) #10
  store i32 0, ptr %7, align 4, !tbaa !5
  %1741 = load i32, ptr @test_count, align 4, !tbaa !5
  %1742 = add nsw i32 %1741, 1
  store i32 %1742, ptr @test_count, align 4, !tbaa !5
  %1743 = load ptr, ptr %5, align 8, !tbaa !9
  %1744 = call i32 @s2n_post_handshake_send(ptr noundef %1743, ptr noundef nonnull %7) #10
  %1745 = icmp eq i32 %1744, -1
  br i1 %1745, label %1746, label %1768

1746:                                             ; preds = %1737
  %1747 = load i32, ptr %571, align 4, !tbaa !5
  %1748 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1749 = call i32 @s2n_print_stacktrace(ptr noundef %1748) #10
  %1750 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1751 = trunc nuw i8 %1750 to i1
  br i1 %1751, label %1752, label %1756

1752:                                             ; preds = %1746
  %1753 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1754 = call i32 @fileno(ptr noundef %1753) #10
  %1755 = call i32 @isatty(i32 noundef %1754) #10
  %.not334 = icmp eq i32 %1755, 0
  br i1 %.not334, label %1756, label %1757

1756:                                             ; preds = %1752, %1746
  br label %1757

1757:                                             ; preds = %1752, %1756
  %.str.25.sink949 = phi ptr [ @.str.25, %1756 ], [ @.str.22, %1752 ]
  store i32 %1747, ptr %571, align 4, !tbaa !5
  %1758 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1759 = load i32, ptr @test_count, align 4, !tbaa !5
  %1760 = load i32, ptr %517, align 4, !tbaa !5
  %1761 = call ptr @s2n_strerror(i32 noundef %1760, ptr noundef nonnull @.str.24) #10
  %1762 = load i32, ptr %517, align 4, !tbaa !5
  %1763 = call ptr @s2n_strerror_debug(i32 noundef %1762, ptr noundef nonnull @.str.24) #10
  %1764 = load i32, ptr %571, align 4, !tbaa !5
  %1765 = call ptr @strerror(i32 noundef %1764) #10
  %1766 = load i32, ptr %571, align 4, !tbaa !5
  %1767 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1758, ptr noundef nonnull %.str.25.sink949, i32 noundef %1759, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.21, i32 noundef 195, ptr noundef %1761, ptr noundef %1763, ptr noundef %1765, i32 noundef %1766) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1768:                                             ; preds = %1737
  %1769 = load i32, ptr @test_count, align 4, !tbaa !5
  %1770 = add nsw i32 %1769, 1
  store i32 %1770, ptr @test_count, align 4, !tbaa !5
  %1771 = getelementptr inbounds i8, ptr %6, i64 28
  %1772 = load i32, ptr %1771, align 4, !tbaa !58
  %1773 = getelementptr inbounds i8, ptr %6, i64 24
  %1774 = load i32, ptr %1773, align 8, !tbaa !59
  %.not302 = icmp eq i32 %1772, %1774
  br i1 %.not302, label %1775, label %1797

1775:                                             ; preds = %1768
  %1776 = load i32, ptr %571, align 4, !tbaa !5
  %1777 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1778 = call i32 @s2n_print_stacktrace(ptr noundef %1777) #10
  %1779 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1780 = trunc nuw i8 %1779 to i1
  br i1 %1780, label %1781, label %1785

1781:                                             ; preds = %1775
  %1782 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1783 = call i32 @fileno(ptr noundef %1782) #10
  %1784 = call i32 @isatty(i32 noundef %1783) #10
  %.not303 = icmp eq i32 %1784, 0
  br i1 %.not303, label %1785, label %1786

1785:                                             ; preds = %1781, %1775
  br label %1786

1786:                                             ; preds = %1781, %1785
  %.str.25.sink958 = phi ptr [ @.str.25, %1785 ], [ @.str.22, %1781 ]
  store i32 %1776, ptr %571, align 4, !tbaa !5
  %1787 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1788 = load i32, ptr @test_count, align 4, !tbaa !5
  %1789 = load i32, ptr %517, align 4, !tbaa !5
  %1790 = call ptr @s2n_strerror(i32 noundef %1789, ptr noundef nonnull @.str.24) #10
  %1791 = load i32, ptr %517, align 4, !tbaa !5
  %1792 = call ptr @s2n_strerror_debug(i32 noundef %1791, ptr noundef nonnull @.str.24) #10
  %1793 = load i32, ptr %571, align 4, !tbaa !5
  %1794 = call ptr @strerror(i32 noundef %1793) #10
  %1795 = load i32, ptr %571, align 4, !tbaa !5
  %1796 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1787, ptr noundef nonnull %.str.25.sink958, i32 noundef %1788, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.21, i32 noundef 197, ptr noundef %1790, ptr noundef %1792, ptr noundef %1794, i32 noundef %1795) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1797:                                             ; preds = %1768
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %7) #10
  %1798 = call i32 @s2n_stuffer_free(ptr noundef nonnull %6) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %6) #10
  %1799 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %5) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #10
  %1800 = call ptr @s2n_connection_new(i32 noundef 1) #10
  store ptr %1800, ptr %8, align 8, !tbaa !9
  %1801 = load i32, ptr @test_count, align 4, !tbaa !5
  %1802 = add nsw i32 %1801, 1
  store i32 %1802, ptr @test_count, align 4, !tbaa !5
  %1803 = icmp eq ptr %1800, null
  br i1 %1803, label %1804, label %1826

1804:                                             ; preds = %1797
  %1805 = load i32, ptr %571, align 4, !tbaa !5
  %1806 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1807 = call i32 @s2n_print_stacktrace(ptr noundef %1806) #10
  %1808 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1809 = trunc nuw i8 %1808 to i1
  br i1 %1809, label %1810, label %1814

1810:                                             ; preds = %1804
  %1811 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1812 = call i32 @fileno(ptr noundef %1811) #10
  %1813 = call i32 @isatty(i32 noundef %1812) #10
  %.not333 = icmp eq i32 %1813, 0
  br i1 %.not333, label %1814, label %1815

1814:                                             ; preds = %1810, %1804
  br label %1815

1815:                                             ; preds = %1810, %1814
  %.str.25.sink967 = phi ptr [ @.str.25, %1814 ], [ @.str.22, %1810 ]
  store i32 %1805, ptr %571, align 4, !tbaa !5
  %1816 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1817 = load i32, ptr @test_count, align 4, !tbaa !5
  %1818 = load i32, ptr %517, align 4, !tbaa !5
  %1819 = call ptr @s2n_strerror(i32 noundef %1818, ptr noundef nonnull @.str.24) #10
  %1820 = load i32, ptr %517, align 4, !tbaa !5
  %1821 = call ptr @s2n_strerror_debug(i32 noundef %1820, ptr noundef nonnull @.str.24) #10
  %1822 = load i32, ptr %571, align 4, !tbaa !5
  %1823 = call ptr @strerror(i32 noundef %1822) #10
  %1824 = load i32, ptr %571, align 4, !tbaa !5
  %1825 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1816, ptr noundef nonnull %.str.25.sink967, i32 noundef %1817, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.21, i32 noundef 204, ptr noundef %1819, ptr noundef %1821, ptr noundef %1823, i32 noundef %1824) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1826:                                             ; preds = %1797
  %1827 = add nsw i32 %1801, 2
  store i32 %1827, ptr @test_count, align 4, !tbaa !5
  %1828 = call i32 @s2n_connection_set_secrets(ptr noundef nonnull %1800) #10
  %1829 = call zeroext i1 @s2n_result_is_ok(i32 %1828)
  br i1 %1829, label %1852, label %1830

1830:                                             ; preds = %1826
  %1831 = load i32, ptr %571, align 4, !tbaa !5
  %1832 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1833 = call i32 @s2n_print_stacktrace(ptr noundef %1832) #10
  %1834 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1835 = trunc nuw i8 %1834 to i1
  br i1 %1835, label %1836, label %1840

1836:                                             ; preds = %1830
  %1837 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1838 = call i32 @fileno(ptr noundef %1837) #10
  %1839 = call i32 @isatty(i32 noundef %1838) #10
  %.not304 = icmp eq i32 %1839, 0
  br i1 %.not304, label %1840, label %1841

1840:                                             ; preds = %1836, %1830
  br label %1841

1841:                                             ; preds = %1836, %1840
  %.str.25.sink976 = phi ptr [ @.str.25, %1840 ], [ @.str.22, %1836 ]
  store i32 %1831, ptr %571, align 4, !tbaa !5
  %1842 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1843 = load i32, ptr @test_count, align 4, !tbaa !5
  %1844 = load i32, ptr %517, align 4, !tbaa !5
  %1845 = call ptr @s2n_strerror(i32 noundef %1844, ptr noundef nonnull @.str.24) #10
  %1846 = load i32, ptr %517, align 4, !tbaa !5
  %1847 = call ptr @s2n_strerror_debug(i32 noundef %1846, ptr noundef nonnull @.str.24) #10
  %1848 = load i32, ptr %571, align 4, !tbaa !5
  %1849 = call ptr @strerror(i32 noundef %1848) #10
  %1850 = load i32, ptr %571, align 4, !tbaa !5
  %1851 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1842, ptr noundef nonnull %.str.25.sink976, i32 noundef %1843, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.21, i32 noundef 205, ptr noundef %1845, ptr noundef %1847, ptr noundef %1849, i32 noundef %1850) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1852:                                             ; preds = %1826
  %1853 = load ptr, ptr %8, align 8, !tbaa !9
  %1854 = getelementptr inbounds i8, ptr %1853, i64 220
  store i8 34, ptr %1854, align 4, !tbaa !15
  %1855 = getelementptr inbounds i8, ptr %1853, i64 4176
  call void @s2n_atomic_flag_clear(ptr noundef nonnull %1855) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %9) #10
  store i32 0, ptr %9, align 4, !tbaa !5
  %1856 = load i32, ptr @test_count, align 4, !tbaa !5
  %1857 = add nsw i32 %1856, 1
  store i32 %1857, ptr @test_count, align 4, !tbaa !5
  %1858 = load ptr, ptr %8, align 8, !tbaa !9
  %1859 = call i32 @s2n_post_handshake_send(ptr noundef %1858, ptr noundef nonnull %9) #10
  %1860 = icmp eq i32 %1859, -1
  br i1 %1860, label %1861, label %1883

1861:                                             ; preds = %1852
  %1862 = load i32, ptr %571, align 4, !tbaa !5
  %1863 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1864 = call i32 @s2n_print_stacktrace(ptr noundef %1863) #10
  %1865 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1866 = trunc nuw i8 %1865 to i1
  br i1 %1866, label %1867, label %1871

1867:                                             ; preds = %1861
  %1868 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1869 = call i32 @fileno(ptr noundef %1868) #10
  %1870 = call i32 @isatty(i32 noundef %1869) #10
  %.not332 = icmp eq i32 %1870, 0
  br i1 %.not332, label %1871, label %1872

1871:                                             ; preds = %1867, %1861
  br label %1872

1872:                                             ; preds = %1867, %1871
  %.str.25.sink985 = phi ptr [ @.str.25, %1871 ], [ @.str.22, %1867 ]
  store i32 %1862, ptr %571, align 4, !tbaa !5
  %1873 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1874 = load i32, ptr @test_count, align 4, !tbaa !5
  %1875 = load i32, ptr %517, align 4, !tbaa !5
  %1876 = call ptr @s2n_strerror(i32 noundef %1875, ptr noundef nonnull @.str.24) #10
  %1877 = load i32, ptr %517, align 4, !tbaa !5
  %1878 = call ptr @s2n_strerror_debug(i32 noundef %1877, ptr noundef nonnull @.str.24) #10
  %1879 = load i32, ptr %571, align 4, !tbaa !5
  %1880 = call ptr @strerror(i32 noundef %1879) #10
  %1881 = load i32, ptr %571, align 4, !tbaa !5
  %1882 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1873, ptr noundef nonnull %.str.25.sink985, i32 noundef %1874, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.21, i32 noundef 211, ptr noundef %1876, ptr noundef %1878, ptr noundef %1880, i32 noundef %1881) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1883:                                             ; preds = %1852
  %1884 = load i32, ptr @test_count, align 4, !tbaa !5
  %1885 = add nsw i32 %1884, 1
  store i32 %1885, ptr @test_count, align 4, !tbaa !5
  %1886 = load ptr, ptr %8, align 8, !tbaa !9
  %1887 = getelementptr inbounds i8, ptr %1886, i64 1924
  %1888 = load i32, ptr %1887, align 4, !tbaa !60
  %1889 = getelementptr inbounds i8, ptr %1886, i64 1920
  %1890 = load i32, ptr %1889, align 8, !tbaa !61
  %1891 = icmp eq i32 %1888, %1890
  br i1 %1891, label %1914, label %1892

1892:                                             ; preds = %1883
  %1893 = load i32, ptr %571, align 4, !tbaa !5
  %1894 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1895 = call i32 @s2n_print_stacktrace(ptr noundef %1894) #10
  %1896 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1897 = trunc nuw i8 %1896 to i1
  br i1 %1897, label %1898, label %1902

1898:                                             ; preds = %1892
  %1899 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1900 = call i32 @fileno(ptr noundef %1899) #10
  %1901 = call i32 @isatty(i32 noundef %1900) #10
  %.not305 = icmp eq i32 %1901, 0
  br i1 %.not305, label %1902, label %1903

1902:                                             ; preds = %1898, %1892
  br label %1903

1903:                                             ; preds = %1898, %1902
  %.str.25.sink994 = phi ptr [ @.str.25, %1902 ], [ @.str.22, %1898 ]
  store i32 %1893, ptr %571, align 4, !tbaa !5
  %1904 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1905 = load i32, ptr @test_count, align 4, !tbaa !5
  %1906 = load i32, ptr %517, align 4, !tbaa !5
  %1907 = call ptr @s2n_strerror(i32 noundef %1906, ptr noundef nonnull @.str.24) #10
  %1908 = load i32, ptr %517, align 4, !tbaa !5
  %1909 = call ptr @s2n_strerror_debug(i32 noundef %1908, ptr noundef nonnull @.str.24) #10
  %1910 = load i32, ptr %571, align 4, !tbaa !5
  %1911 = call ptr @strerror(i32 noundef %1910) #10
  %1912 = load i32, ptr %571, align 4, !tbaa !5
  %1913 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1904, ptr noundef nonnull %.str.25.sink994, i32 noundef %1905, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.21, i32 noundef 213, ptr noundef %1907, ptr noundef %1909, ptr noundef %1911, i32 noundef %1912) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1914:                                             ; preds = %1883
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #10
  %1915 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %8) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #10
  %1916 = call ptr @s2n_connection_new(i32 noundef 1) #10
  store ptr %1916, ptr %10, align 8, !tbaa !9
  %1917 = load i32, ptr @test_count, align 4, !tbaa !5
  %1918 = add nsw i32 %1917, 1
  store i32 %1918, ptr @test_count, align 4, !tbaa !5
  %1919 = icmp eq ptr %1916, null
  br i1 %1919, label %1920, label %1942

1920:                                             ; preds = %1914
  %1921 = load i32, ptr %571, align 4, !tbaa !5
  %1922 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1923 = call i32 @s2n_print_stacktrace(ptr noundef %1922) #10
  %1924 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1925 = trunc nuw i8 %1924 to i1
  br i1 %1925, label %1926, label %1930

1926:                                             ; preds = %1920
  %1927 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1928 = call i32 @fileno(ptr noundef %1927) #10
  %1929 = call i32 @isatty(i32 noundef %1928) #10
  %.not331 = icmp eq i32 %1929, 0
  br i1 %.not331, label %1930, label %1931

1930:                                             ; preds = %1926, %1920
  br label %1931

1931:                                             ; preds = %1926, %1930
  %.str.25.sink1003 = phi ptr [ @.str.25, %1930 ], [ @.str.22, %1926 ]
  store i32 %1921, ptr %571, align 4, !tbaa !5
  %1932 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1933 = load i32, ptr @test_count, align 4, !tbaa !5
  %1934 = load i32, ptr %517, align 4, !tbaa !5
  %1935 = call ptr @s2n_strerror(i32 noundef %1934, ptr noundef nonnull @.str.24) #10
  %1936 = load i32, ptr %517, align 4, !tbaa !5
  %1937 = call ptr @s2n_strerror_debug(i32 noundef %1936, ptr noundef nonnull @.str.24) #10
  %1938 = load i32, ptr %571, align 4, !tbaa !5
  %1939 = call ptr @strerror(i32 noundef %1938) #10
  %1940 = load i32, ptr %571, align 4, !tbaa !5
  %1941 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1932, ptr noundef nonnull %.str.25.sink1003, i32 noundef %1933, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.21, i32 noundef 220, ptr noundef %1935, ptr noundef %1937, ptr noundef %1939, i32 noundef %1940) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1942:                                             ; preds = %1914
  %1943 = add nsw i32 %1917, 2
  store i32 %1943, ptr @test_count, align 4, !tbaa !5
  %1944 = call i32 @s2n_connection_set_secrets(ptr noundef nonnull %1916) #10
  %1945 = call zeroext i1 @s2n_result_is_ok(i32 %1944)
  br i1 %1945, label %1968, label %1946

1946:                                             ; preds = %1942
  %1947 = load i32, ptr %571, align 4, !tbaa !5
  %1948 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1949 = call i32 @s2n_print_stacktrace(ptr noundef %1948) #10
  %1950 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1951 = trunc nuw i8 %1950 to i1
  br i1 %1951, label %1952, label %1956

1952:                                             ; preds = %1946
  %1953 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1954 = call i32 @fileno(ptr noundef %1953) #10
  %1955 = call i32 @isatty(i32 noundef %1954) #10
  %.not306 = icmp eq i32 %1955, 0
  br i1 %.not306, label %1956, label %1957

1956:                                             ; preds = %1952, %1946
  br label %1957

1957:                                             ; preds = %1952, %1956
  %.str.25.sink1012 = phi ptr [ @.str.25, %1956 ], [ @.str.22, %1952 ]
  store i32 %1947, ptr %571, align 4, !tbaa !5
  %1958 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1959 = load i32, ptr @test_count, align 4, !tbaa !5
  %1960 = load i32, ptr %517, align 4, !tbaa !5
  %1961 = call ptr @s2n_strerror(i32 noundef %1960, ptr noundef nonnull @.str.24) #10
  %1962 = load i32, ptr %517, align 4, !tbaa !5
  %1963 = call ptr @s2n_strerror_debug(i32 noundef %1962, ptr noundef nonnull @.str.24) #10
  %1964 = load i32, ptr %571, align 4, !tbaa !5
  %1965 = call ptr @strerror(i32 noundef %1964) #10
  %1966 = load i32, ptr %571, align 4, !tbaa !5
  %1967 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1958, ptr noundef nonnull %.str.25.sink1012, i32 noundef %1959, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.21, i32 noundef 221, ptr noundef %1961, ptr noundef %1963, ptr noundef %1965, i32 noundef %1966) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1968:                                             ; preds = %1942
  %1969 = load ptr, ptr %10, align 8, !tbaa !9
  %1970 = getelementptr inbounds i8, ptr %1969, i64 220
  store i8 33, ptr %1970, align 4, !tbaa !15
  %1971 = getelementptr inbounds i8, ptr %1969, i64 4176
  call void @s2n_atomic_flag_set(ptr noundef nonnull %1971) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %11) #10
  store i32 0, ptr %11, align 4, !tbaa !5
  %1972 = load i32, ptr @test_count, align 4, !tbaa !5
  %1973 = add nsw i32 %1972, 1
  store i32 %1973, ptr @test_count, align 4, !tbaa !5
  %1974 = load ptr, ptr %10, align 8, !tbaa !9
  %1975 = call i32 @s2n_post_handshake_send(ptr noundef %1974, ptr noundef nonnull %11) #10
  %1976 = icmp eq i32 %1975, -1
  br i1 %1976, label %1977, label %1999

1977:                                             ; preds = %1968
  %1978 = load i32, ptr %571, align 4, !tbaa !5
  %1979 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1980 = call i32 @s2n_print_stacktrace(ptr noundef %1979) #10
  %1981 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1982 = trunc nuw i8 %1981 to i1
  br i1 %1982, label %1983, label %1987

1983:                                             ; preds = %1977
  %1984 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1985 = call i32 @fileno(ptr noundef %1984) #10
  %1986 = call i32 @isatty(i32 noundef %1985) #10
  %.not330 = icmp eq i32 %1986, 0
  br i1 %.not330, label %1987, label %1988

1987:                                             ; preds = %1983, %1977
  br label %1988

1988:                                             ; preds = %1983, %1987
  %.str.25.sink1021 = phi ptr [ @.str.25, %1987 ], [ @.str.22, %1983 ]
  store i32 %1978, ptr %571, align 4, !tbaa !5
  %1989 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1990 = load i32, ptr @test_count, align 4, !tbaa !5
  %1991 = load i32, ptr %517, align 4, !tbaa !5
  %1992 = call ptr @s2n_strerror(i32 noundef %1991, ptr noundef nonnull @.str.24) #10
  %1993 = load i32, ptr %517, align 4, !tbaa !5
  %1994 = call ptr @s2n_strerror_debug(i32 noundef %1993, ptr noundef nonnull @.str.24) #10
  %1995 = load i32, ptr %571, align 4, !tbaa !5
  %1996 = call ptr @strerror(i32 noundef %1995) #10
  %1997 = load i32, ptr %571, align 4, !tbaa !5
  %1998 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1989, ptr noundef nonnull %.str.25.sink1021, i32 noundef %1990, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.21, i32 noundef 227, ptr noundef %1992, ptr noundef %1994, ptr noundef %1996, i32 noundef %1997) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1999:                                             ; preds = %1968
  %2000 = load i32, ptr @test_count, align 4, !tbaa !5
  %2001 = add nsw i32 %2000, 1
  store i32 %2001, ptr @test_count, align 4, !tbaa !5
  %2002 = load ptr, ptr %10, align 8, !tbaa !9
  %2003 = getelementptr inbounds i8, ptr %2002, i64 4176
  %2004 = call zeroext i1 @s2n_atomic_flag_test(ptr noundef nonnull %2003) #10
  br i1 %2004, label %2027, label %2005

2005:                                             ; preds = %1999
  %2006 = load i32, ptr %571, align 4, !tbaa !5
  %2007 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2008 = call i32 @s2n_print_stacktrace(ptr noundef %2007) #10
  %2009 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2010 = trunc nuw i8 %2009 to i1
  br i1 %2010, label %2011, label %2015

2011:                                             ; preds = %2005
  %2012 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2013 = call i32 @fileno(ptr noundef %2012) #10
  %2014 = call i32 @isatty(i32 noundef %2013) #10
  %.not307 = icmp eq i32 %2014, 0
  br i1 %.not307, label %2015, label %2016

2015:                                             ; preds = %2011, %2005
  br label %2016

2016:                                             ; preds = %2011, %2015
  %.str.25.sink1030 = phi ptr [ @.str.25, %2015 ], [ @.str.22, %2011 ]
  store i32 %2006, ptr %571, align 4, !tbaa !5
  %2017 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2018 = load i32, ptr @test_count, align 4, !tbaa !5
  %2019 = load i32, ptr %517, align 4, !tbaa !5
  %2020 = call ptr @s2n_strerror(i32 noundef %2019, ptr noundef nonnull @.str.24) #10
  %2021 = load i32, ptr %517, align 4, !tbaa !5
  %2022 = call ptr @s2n_strerror_debug(i32 noundef %2021, ptr noundef nonnull @.str.24) #10
  %2023 = load i32, ptr %571, align 4, !tbaa !5
  %2024 = call ptr @strerror(i32 noundef %2023) #10
  %2025 = load i32, ptr %571, align 4, !tbaa !5
  %2026 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2017, ptr noundef nonnull %.str.25.sink1030, i32 noundef %2018, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.21, i32 noundef 229, ptr noundef %2020, ptr noundef %2022, ptr noundef %2024, i32 noundef %2025) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2027:                                             ; preds = %1999
  %2028 = load i32, ptr @test_count, align 4, !tbaa !5
  %2029 = add nsw i32 %2028, 1
  store i32 %2029, ptr @test_count, align 4, !tbaa !5
  %2030 = load ptr, ptr %10, align 8, !tbaa !9
  %2031 = getelementptr inbounds i8, ptr %2030, i64 1924
  %2032 = load i32, ptr %2031, align 4, !tbaa !60
  %2033 = getelementptr inbounds i8, ptr %2030, i64 1920
  %2034 = load i32, ptr %2033, align 8, !tbaa !61
  %2035 = icmp eq i32 %2032, %2034
  br i1 %2035, label %2058, label %2036

2036:                                             ; preds = %2027
  %2037 = load i32, ptr %571, align 4, !tbaa !5
  %2038 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2039 = call i32 @s2n_print_stacktrace(ptr noundef %2038) #10
  %2040 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2041 = trunc nuw i8 %2040 to i1
  br i1 %2041, label %2042, label %2046

2042:                                             ; preds = %2036
  %2043 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2044 = call i32 @fileno(ptr noundef %2043) #10
  %2045 = call i32 @isatty(i32 noundef %2044) #10
  %.not308 = icmp eq i32 %2045, 0
  br i1 %.not308, label %2046, label %2047

2046:                                             ; preds = %2042, %2036
  br label %2047

2047:                                             ; preds = %2042, %2046
  %.str.25.sink1039 = phi ptr [ @.str.25, %2046 ], [ @.str.22, %2042 ]
  store i32 %2037, ptr %571, align 4, !tbaa !5
  %2048 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2049 = load i32, ptr @test_count, align 4, !tbaa !5
  %2050 = load i32, ptr %517, align 4, !tbaa !5
  %2051 = call ptr @s2n_strerror(i32 noundef %2050, ptr noundef nonnull @.str.24) #10
  %2052 = load i32, ptr %517, align 4, !tbaa !5
  %2053 = call ptr @s2n_strerror_debug(i32 noundef %2052, ptr noundef nonnull @.str.24) #10
  %2054 = load i32, ptr %571, align 4, !tbaa !5
  %2055 = call ptr @strerror(i32 noundef %2054) #10
  %2056 = load i32, ptr %571, align 4, !tbaa !5
  %2057 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2048, ptr noundef nonnull %.str.25.sink1039, i32 noundef %2049, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.21, i32 noundef 230, ptr noundef %2051, ptr noundef %2053, ptr noundef %2055, i32 noundef %2056) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2058:                                             ; preds = %2027
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #10
  %2059 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %10) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #10
  %2060 = call ptr @s2n_connection_new(i32 noundef 1) #10
  %2061 = load i32, ptr @test_count, align 4, !tbaa !5
  %2062 = add nsw i32 %2061, 1
  store i32 %2062, ptr @test_count, align 4, !tbaa !5
  %2063 = icmp eq ptr %2060, null
  br i1 %2063, label %2064, label %2086

2064:                                             ; preds = %2058
  %2065 = load i32, ptr %571, align 4, !tbaa !5
  %2066 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2067 = call i32 @s2n_print_stacktrace(ptr noundef %2066) #10
  %2068 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2069 = trunc nuw i8 %2068 to i1
  br i1 %2069, label %2070, label %2074

2070:                                             ; preds = %2064
  %2071 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2072 = call i32 @fileno(ptr noundef %2071) #10
  %2073 = call i32 @isatty(i32 noundef %2072) #10
  %.not329 = icmp eq i32 %2073, 0
  br i1 %.not329, label %2074, label %2075

2074:                                             ; preds = %2070, %2064
  br label %2075

2075:                                             ; preds = %2070, %2074
  %.str.25.sink1048 = phi ptr [ @.str.25, %2074 ], [ @.str.22, %2070 ]
  store i32 %2065, ptr %571, align 4, !tbaa !5
  %2076 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2077 = load i32, ptr @test_count, align 4, !tbaa !5
  %2078 = load i32, ptr %517, align 4, !tbaa !5
  %2079 = call ptr @s2n_strerror(i32 noundef %2078, ptr noundef nonnull @.str.24) #10
  %2080 = load i32, ptr %517, align 4, !tbaa !5
  %2081 = call ptr @s2n_strerror_debug(i32 noundef %2080, ptr noundef nonnull @.str.24) #10
  %2082 = load i32, ptr %571, align 4, !tbaa !5
  %2083 = call ptr @strerror(i32 noundef %2082) #10
  %2084 = load i32, ptr %571, align 4, !tbaa !5
  %2085 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2076, ptr noundef nonnull %.str.25.sink1048, i32 noundef %2077, ptr noundef nonnull @.str.57, ptr noundef nonnull @.str.21, i32 noundef 237, ptr noundef %2079, ptr noundef %2081, ptr noundef %2083, i32 noundef %2084) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2086:                                             ; preds = %2058
  %2087 = add nsw i32 %2061, 2
  store i32 %2087, ptr @test_count, align 4, !tbaa !5
  %2088 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %2060, ptr noundef nonnull @.str.58) #10
  %2089 = icmp eq i32 %2088, -1
  br i1 %2089, label %2090, label %2112

2090:                                             ; preds = %2086
  %2091 = load i32, ptr %571, align 4, !tbaa !5
  %2092 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2093 = call i32 @s2n_print_stacktrace(ptr noundef %2092) #10
  %2094 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2095 = trunc nuw i8 %2094 to i1
  br i1 %2095, label %2096, label %2100

2096:                                             ; preds = %2090
  %2097 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2098 = call i32 @fileno(ptr noundef %2097) #10
  %2099 = call i32 @isatty(i32 noundef %2098) #10
  %.not328 = icmp eq i32 %2099, 0
  br i1 %.not328, label %2100, label %2101

2100:                                             ; preds = %2096, %2090
  br label %2101

2101:                                             ; preds = %2096, %2100
  %.str.25.sink1057 = phi ptr [ @.str.25, %2100 ], [ @.str.22, %2096 ]
  store i32 %2091, ptr %571, align 4, !tbaa !5
  %2102 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2103 = load i32, ptr @test_count, align 4, !tbaa !5
  %2104 = load i32, ptr %517, align 4, !tbaa !5
  %2105 = call ptr @s2n_strerror(i32 noundef %2104, ptr noundef nonnull @.str.24) #10
  %2106 = load i32, ptr %517, align 4, !tbaa !5
  %2107 = call ptr @s2n_strerror_debug(i32 noundef %2106, ptr noundef nonnull @.str.24) #10
  %2108 = load i32, ptr %571, align 4, !tbaa !5
  %2109 = call ptr @strerror(i32 noundef %2108) #10
  %2110 = load i32, ptr %571, align 4, !tbaa !5
  %2111 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2102, ptr noundef nonnull %.str.25.sink1057, i32 noundef %2103, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.21, i32 noundef 238, ptr noundef %2105, ptr noundef %2107, ptr noundef %2109, i32 noundef %2110) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2112:                                             ; preds = %2086
  %2113 = call ptr @s2n_connection_new(i32 noundef 0) #10
  %2114 = load i32, ptr @test_count, align 4, !tbaa !5
  %2115 = add nsw i32 %2114, 1
  store i32 %2115, ptr @test_count, align 4, !tbaa !5
  %2116 = icmp eq ptr %2113, null
  br i1 %2116, label %2117, label %2139

2117:                                             ; preds = %2112
  %2118 = load i32, ptr %571, align 4, !tbaa !5
  %2119 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2120 = call i32 @s2n_print_stacktrace(ptr noundef %2119) #10
  %2121 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2122 = trunc nuw i8 %2121 to i1
  br i1 %2122, label %2123, label %2127

2123:                                             ; preds = %2117
  %2124 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2125 = call i32 @fileno(ptr noundef %2124) #10
  %2126 = call i32 @isatty(i32 noundef %2125) #10
  %.not327 = icmp eq i32 %2126, 0
  br i1 %.not327, label %2127, label %2128

2127:                                             ; preds = %2123, %2117
  br label %2128

2128:                                             ; preds = %2123, %2127
  %.str.25.sink1066 = phi ptr [ @.str.25, %2127 ], [ @.str.22, %2123 ]
  store i32 %2118, ptr %571, align 4, !tbaa !5
  %2129 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2130 = load i32, ptr @test_count, align 4, !tbaa !5
  %2131 = load i32, ptr %517, align 4, !tbaa !5
  %2132 = call ptr @s2n_strerror(i32 noundef %2131, ptr noundef nonnull @.str.24) #10
  %2133 = load i32, ptr %517, align 4, !tbaa !5
  %2134 = call ptr @s2n_strerror_debug(i32 noundef %2133, ptr noundef nonnull @.str.24) #10
  %2135 = load i32, ptr %571, align 4, !tbaa !5
  %2136 = call ptr @strerror(i32 noundef %2135) #10
  %2137 = load i32, ptr %571, align 4, !tbaa !5
  %2138 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2129, ptr noundef nonnull %.str.25.sink1066, i32 noundef %2130, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.21, i32 noundef 241, ptr noundef %2132, ptr noundef %2134, ptr noundef %2136, i32 noundef %2137) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2139:                                             ; preds = %2112
  %2140 = add nsw i32 %2114, 2
  store i32 %2140, ptr @test_count, align 4, !tbaa !5
  %2141 = call i32 @s2n_connection_set_blinding(ptr noundef nonnull %2113, i32 noundef 1) #10
  %2142 = icmp eq i32 %2141, -1
  br i1 %2142, label %2143, label %2165

2143:                                             ; preds = %2139
  %2144 = load i32, ptr %571, align 4, !tbaa !5
  %2145 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2146 = call i32 @s2n_print_stacktrace(ptr noundef %2145) #10
  %2147 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2148 = trunc nuw i8 %2147 to i1
  br i1 %2148, label %2149, label %2153

2149:                                             ; preds = %2143
  %2150 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2151 = call i32 @fileno(ptr noundef %2150) #10
  %2152 = call i32 @isatty(i32 noundef %2151) #10
  %.not326 = icmp eq i32 %2152, 0
  br i1 %.not326, label %2153, label %2154

2153:                                             ; preds = %2149, %2143
  br label %2154

2154:                                             ; preds = %2149, %2153
  %.str.25.sink1075 = phi ptr [ @.str.25, %2153 ], [ @.str.22, %2149 ]
  store i32 %2144, ptr %571, align 4, !tbaa !5
  %2155 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2156 = load i32, ptr @test_count, align 4, !tbaa !5
  %2157 = load i32, ptr %517, align 4, !tbaa !5
  %2158 = call ptr @s2n_strerror(i32 noundef %2157, ptr noundef nonnull @.str.24) #10
  %2159 = load i32, ptr %517, align 4, !tbaa !5
  %2160 = call ptr @s2n_strerror_debug(i32 noundef %2159, ptr noundef nonnull @.str.24) #10
  %2161 = load i32, ptr %571, align 4, !tbaa !5
  %2162 = call ptr @strerror(i32 noundef %2161) #10
  %2163 = load i32, ptr %571, align 4, !tbaa !5
  %2164 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2155, ptr noundef nonnull %.str.25.sink1075, i32 noundef %2156, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.21, i32 noundef 242, ptr noundef %2158, ptr noundef %2160, ptr noundef %2162, i32 noundef %2163) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2165:                                             ; preds = %2139
  %2166 = load i32, ptr @test_count, align 4, !tbaa !5
  %2167 = add nsw i32 %2166, 1
  store i32 %2167, ptr @test_count, align 4, !tbaa !5
  %2168 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %2113, ptr noundef nonnull @.str.58) #10
  %2169 = icmp eq i32 %2168, -1
  br i1 %2169, label %2170, label %2192

2170:                                             ; preds = %2165
  %2171 = load i32, ptr %571, align 4, !tbaa !5
  %2172 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2173 = call i32 @s2n_print_stacktrace(ptr noundef %2172) #10
  %2174 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2175 = trunc nuw i8 %2174 to i1
  br i1 %2175, label %2176, label %2180

2176:                                             ; preds = %2170
  %2177 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2178 = call i32 @fileno(ptr noundef %2177) #10
  %2179 = call i32 @isatty(i32 noundef %2178) #10
  %.not325 = icmp eq i32 %2179, 0
  br i1 %.not325, label %2180, label %2181

2180:                                             ; preds = %2176, %2170
  br label %2181

2181:                                             ; preds = %2176, %2180
  %.str.25.sink1084 = phi ptr [ @.str.25, %2180 ], [ @.str.22, %2176 ]
  store i32 %2171, ptr %571, align 4, !tbaa !5
  %2182 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2183 = load i32, ptr @test_count, align 4, !tbaa !5
  %2184 = load i32, ptr %517, align 4, !tbaa !5
  %2185 = call ptr @s2n_strerror(i32 noundef %2184, ptr noundef nonnull @.str.24) #10
  %2186 = load i32, ptr %517, align 4, !tbaa !5
  %2187 = call ptr @s2n_strerror_debug(i32 noundef %2186, ptr noundef nonnull @.str.24) #10
  %2188 = load i32, ptr %571, align 4, !tbaa !5
  %2189 = call ptr @strerror(i32 noundef %2188) #10
  %2190 = load i32, ptr %571, align 4, !tbaa !5
  %2191 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2182, ptr noundef nonnull %.str.25.sink1084, i32 noundef %2183, ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.21, i32 noundef 243, ptr noundef %2185, ptr noundef %2187, ptr noundef %2189, i32 noundef %2190) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2192:                                             ; preds = %2165
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %12) #10
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %12, i8 0, i64 40, i1 false)
  %2193 = load i32, ptr @test_count, align 4, !tbaa !5
  %2194 = add nsw i32 %2193, 1
  store i32 %2194, ptr @test_count, align 4, !tbaa !5
  %2195 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %12, i32 noundef 0) #10
  %2196 = icmp eq i32 %2195, -1
  br i1 %2196, label %2197, label %2219

2197:                                             ; preds = %2192
  %2198 = load i32, ptr %571, align 4, !tbaa !5
  %2199 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2200 = call i32 @s2n_print_stacktrace(ptr noundef %2199) #10
  %2201 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2202 = trunc nuw i8 %2201 to i1
  br i1 %2202, label %2203, label %2207

2203:                                             ; preds = %2197
  %2204 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2205 = call i32 @fileno(ptr noundef %2204) #10
  %2206 = call i32 @isatty(i32 noundef %2205) #10
  %.not324 = icmp eq i32 %2206, 0
  br i1 %.not324, label %2207, label %2208

2207:                                             ; preds = %2203, %2197
  br label %2208

2208:                                             ; preds = %2203, %2207
  %.str.25.sink1093 = phi ptr [ @.str.25, %2207 ], [ @.str.22, %2203 ]
  store i32 %2198, ptr %571, align 4, !tbaa !5
  %2209 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2210 = load i32, ptr @test_count, align 4, !tbaa !5
  %2211 = load i32, ptr %517, align 4, !tbaa !5
  %2212 = call ptr @s2n_strerror(i32 noundef %2211, ptr noundef nonnull @.str.24) #10
  %2213 = load i32, ptr %517, align 4, !tbaa !5
  %2214 = call ptr @s2n_strerror_debug(i32 noundef %2213, ptr noundef nonnull @.str.24) #10
  %2215 = load i32, ptr %571, align 4, !tbaa !5
  %2216 = call ptr @strerror(i32 noundef %2215) #10
  %2217 = load i32, ptr %571, align 4, !tbaa !5
  %2218 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2209, ptr noundef nonnull %.str.25.sink1093, i32 noundef %2210, ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.21, i32 noundef 246, ptr noundef %2212, ptr noundef %2214, ptr noundef %2216, i32 noundef %2217) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2219:                                             ; preds = %2192
  %2220 = load i32, ptr @test_count, align 4, !tbaa !5
  %2221 = add nsw i32 %2220, 1
  store i32 %2221, ptr @test_count, align 4, !tbaa !5
  %2222 = call i32 @s2n_connection_set_io_stuffers(ptr noundef nonnull %12, ptr noundef nonnull %12, ptr noundef nonnull %2060) #10
  %2223 = icmp eq i32 %2222, -1
  br i1 %2223, label %2224, label %2246

2224:                                             ; preds = %2219
  %2225 = load i32, ptr %571, align 4, !tbaa !5
  %2226 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2227 = call i32 @s2n_print_stacktrace(ptr noundef %2226) #10
  %2228 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2229 = trunc nuw i8 %2228 to i1
  br i1 %2229, label %2230, label %2234

2230:                                             ; preds = %2224
  %2231 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2232 = call i32 @fileno(ptr noundef %2231) #10
  %2233 = call i32 @isatty(i32 noundef %2232) #10
  %.not323 = icmp eq i32 %2233, 0
  br i1 %.not323, label %2234, label %2235

2234:                                             ; preds = %2230, %2224
  br label %2235

2235:                                             ; preds = %2230, %2234
  %.str.25.sink1102 = phi ptr [ @.str.25, %2234 ], [ @.str.22, %2230 ]
  store i32 %2225, ptr %571, align 4, !tbaa !5
  %2236 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2237 = load i32, ptr @test_count, align 4, !tbaa !5
  %2238 = load i32, ptr %517, align 4, !tbaa !5
  %2239 = call ptr @s2n_strerror(i32 noundef %2238, ptr noundef nonnull @.str.24) #10
  %2240 = load i32, ptr %517, align 4, !tbaa !5
  %2241 = call ptr @s2n_strerror_debug(i32 noundef %2240, ptr noundef nonnull @.str.24) #10
  %2242 = load i32, ptr %571, align 4, !tbaa !5
  %2243 = call ptr @strerror(i32 noundef %2242) #10
  %2244 = load i32, ptr %571, align 4, !tbaa !5
  %2245 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2236, ptr noundef nonnull %.str.25.sink1102, i32 noundef %2237, ptr noundef nonnull @.str.64, ptr noundef nonnull @.str.21, i32 noundef 247, ptr noundef %2239, ptr noundef %2241, ptr noundef %2243, i32 noundef %2244) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2246:                                             ; preds = %2219
  %2247 = load i32, ptr @test_count, align 4, !tbaa !5
  %2248 = add nsw i32 %2247, 1
  store i32 %2248, ptr @test_count, align 4, !tbaa !5
  %2249 = call i32 @s2n_connection_set_io_stuffers(ptr noundef nonnull %12, ptr noundef nonnull %12, ptr noundef nonnull %2113) #10
  %2250 = icmp eq i32 %2249, -1
  br i1 %2250, label %2251, label %2273

2251:                                             ; preds = %2246
  %2252 = load i32, ptr %571, align 4, !tbaa !5
  %2253 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2254 = call i32 @s2n_print_stacktrace(ptr noundef %2253) #10
  %2255 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2256 = trunc nuw i8 %2255 to i1
  br i1 %2256, label %2257, label %2261

2257:                                             ; preds = %2251
  %2258 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2259 = call i32 @fileno(ptr noundef %2258) #10
  %2260 = call i32 @isatty(i32 noundef %2259) #10
  %.not322 = icmp eq i32 %2260, 0
  br i1 %.not322, label %2261, label %2262

2261:                                             ; preds = %2257, %2251
  br label %2262

2262:                                             ; preds = %2257, %2261
  %.str.25.sink1111 = phi ptr [ @.str.25, %2261 ], [ @.str.22, %2257 ]
  store i32 %2252, ptr %571, align 4, !tbaa !5
  %2263 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2264 = load i32, ptr @test_count, align 4, !tbaa !5
  %2265 = load i32, ptr %517, align 4, !tbaa !5
  %2266 = call ptr @s2n_strerror(i32 noundef %2265, ptr noundef nonnull @.str.24) #10
  %2267 = load i32, ptr %517, align 4, !tbaa !5
  %2268 = call ptr @s2n_strerror_debug(i32 noundef %2267, ptr noundef nonnull @.str.24) #10
  %2269 = load i32, ptr %571, align 4, !tbaa !5
  %2270 = call ptr @strerror(i32 noundef %2269) #10
  %2271 = load i32, ptr %571, align 4, !tbaa !5
  %2272 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2263, ptr noundef nonnull %.str.25.sink1111, i32 noundef %2264, ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.21, i32 noundef 248, ptr noundef %2266, ptr noundef %2268, ptr noundef %2270, i32 noundef %2271) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2273:                                             ; preds = %2246
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %13) #10
  store i32 0, ptr %13, align 4, !tbaa !5
  %2274 = load i32, ptr @test_count, align 4, !tbaa !5
  %2275 = add nsw i32 %2274, 1
  store i32 %2275, ptr @test_count, align 4, !tbaa !5
  %2276 = call i32 @s2n_negotiate_until_message(ptr noundef nonnull %2060, ptr noundef nonnull %13, i32 noundef 1) #10
  %2277 = call zeroext i1 @s2n_result_is_ok(i32 %2276)
  br i1 %2277, label %2300, label %2278

2278:                                             ; preds = %2273
  %2279 = load i32, ptr %571, align 4, !tbaa !5
  %2280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2281 = call i32 @s2n_print_stacktrace(ptr noundef %2280) #10
  %2282 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2283 = trunc nuw i8 %2282 to i1
  br i1 %2283, label %2284, label %2288

2284:                                             ; preds = %2278
  %2285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2286 = call i32 @fileno(ptr noundef %2285) #10
  %2287 = call i32 @isatty(i32 noundef %2286) #10
  %.not309 = icmp eq i32 %2287, 0
  br i1 %.not309, label %2288, label %2289

2288:                                             ; preds = %2284, %2278
  br label %2289

2289:                                             ; preds = %2284, %2288
  %.str.25.sink1120 = phi ptr [ @.str.25, %2288 ], [ @.str.22, %2284 ]
  store i32 %2279, ptr %571, align 4, !tbaa !5
  %2290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2291 = load i32, ptr @test_count, align 4, !tbaa !5
  %2292 = load i32, ptr %517, align 4, !tbaa !5
  %2293 = call ptr @s2n_strerror(i32 noundef %2292, ptr noundef nonnull @.str.24) #10
  %2294 = load i32, ptr %517, align 4, !tbaa !5
  %2295 = call ptr @s2n_strerror_debug(i32 noundef %2294, ptr noundef nonnull @.str.24) #10
  %2296 = load i32, ptr %571, align 4, !tbaa !5
  %2297 = call ptr @strerror(i32 noundef %2296) #10
  %2298 = load i32, ptr %571, align 4, !tbaa !5
  %2299 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2290, ptr noundef nonnull %.str.25.sink1120, i32 noundef %2291, ptr noundef nonnull @.str.66, ptr noundef nonnull @.str.21, i32 noundef 252, ptr noundef %2293, ptr noundef %2295, ptr noundef %2297, i32 noundef %2298) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2300:                                             ; preds = %2273
  call void @llvm.lifetime.start.p0(i64 10, ptr nonnull %14) #10
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(10) %14, i8 0, i64 10, i1 false)
  %2301 = load i32, ptr @test_count, align 4, !tbaa !5
  %2302 = add nsw i32 %2301, 1
  store i32 %2302, ptr @test_count, align 4, !tbaa !5
  %2303 = call i64 @s2n_recv(ptr noundef nonnull %2113, ptr noundef nonnull %14, i64 noundef 10, ptr noundef nonnull %13) #10
  %2304 = icmp eq i64 %2303, -1
  br i1 %2304, label %2327, label %2305

2305:                                             ; preds = %2300
  %2306 = load i32, ptr %571, align 4, !tbaa !5
  %2307 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2308 = call i32 @s2n_print_stacktrace(ptr noundef %2307) #10
  %2309 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2310 = trunc nuw i8 %2309 to i1
  br i1 %2310, label %2311, label %2315

2311:                                             ; preds = %2305
  %2312 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2313 = call i32 @fileno(ptr noundef %2312) #10
  %2314 = call i32 @isatty(i32 noundef %2313) #10
  %.not310 = icmp eq i32 %2314, 0
  br i1 %.not310, label %2315, label %2316

2315:                                             ; preds = %2311, %2305
  br label %2316

2316:                                             ; preds = %2311, %2315
  %.str.25.sink1129 = phi ptr [ @.str.25, %2315 ], [ @.str.22, %2311 ]
  store i32 %2306, ptr %571, align 4, !tbaa !5
  %2317 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2318 = load i32, ptr @test_count, align 4, !tbaa !5
  %2319 = load i32, ptr %517, align 4, !tbaa !5
  %2320 = call ptr @s2n_strerror(i32 noundef %2319, ptr noundef nonnull @.str.24) #10
  %2321 = load i32, ptr %517, align 4, !tbaa !5
  %2322 = call ptr @s2n_strerror_debug(i32 noundef %2321, ptr noundef nonnull @.str.24) #10
  %2323 = load i32, ptr %571, align 4, !tbaa !5
  %2324 = call ptr @strerror(i32 noundef %2323) #10
  %2325 = load i32, ptr %571, align 4, !tbaa !5
  %2326 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2317, ptr noundef nonnull %.str.25.sink1129, i32 noundef %2318, ptr noundef nonnull @.str.67, ptr noundef nonnull @.str.21, i32 noundef 256, ptr noundef %2320, ptr noundef %2322, ptr noundef %2324, i32 noundef %2325) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2327:                                             ; preds = %2300
  %2328 = load i32, ptr @test_count, align 4, !tbaa !5
  %2329 = add nsw i32 %2328, 1
  store i32 %2329, ptr @test_count, align 4, !tbaa !5
  %2330 = load i32, ptr %517, align 4, !tbaa !5
  %2331 = icmp eq i32 %2330, 335544322
  br i1 %2331, label %2354, label %2332

2332:                                             ; preds = %2327
  %2333 = load i32, ptr %571, align 4, !tbaa !5
  %2334 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2335 = call i32 @s2n_print_stacktrace(ptr noundef %2334) #10
  %2336 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2337 = trunc nuw i8 %2336 to i1
  br i1 %2337, label %2338, label %2342

2338:                                             ; preds = %2332
  %2339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2340 = call i32 @fileno(ptr noundef %2339) #10
  %2341 = call i32 @isatty(i32 noundef %2340) #10
  %.not311 = icmp eq i32 %2341, 0
  br i1 %.not311, label %2342, label %2343

2342:                                             ; preds = %2338, %2332
  br label %2343

2343:                                             ; preds = %2338, %2342
  %.str.25.sink1138 = phi ptr [ @.str.25, %2342 ], [ @.str.22, %2338 ]
  store i32 %2333, ptr %571, align 4, !tbaa !5
  %2344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2345 = load i32, ptr @test_count, align 4, !tbaa !5
  %2346 = load i32, ptr %517, align 4, !tbaa !5
  %2347 = call ptr @s2n_strerror(i32 noundef %2346, ptr noundef nonnull @.str.24) #10
  %2348 = load i32, ptr %517, align 4, !tbaa !5
  %2349 = call ptr @s2n_strerror_debug(i32 noundef %2348, ptr noundef nonnull @.str.24) #10
  %2350 = load i32, ptr %571, align 4, !tbaa !5
  %2351 = call ptr @strerror(i32 noundef %2350) #10
  %2352 = load i32, ptr %571, align 4, !tbaa !5
  %2353 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2344, ptr noundef nonnull %.str.25.sink1138, i32 noundef %2345, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.21, i32 noundef 256, ptr noundef %2347, ptr noundef %2349, ptr noundef %2351, i32 noundef %2352) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2354:                                             ; preds = %2327
  %2355 = add nsw i32 %2328, 2
  store i32 %2355, ptr @test_count, align 4, !tbaa !5
  %2356 = call ptr @s2n_strerror_debug(i32 noundef 335544322, ptr noundef nonnull @.str.24) #10
  %2357 = icmp eq ptr %2356, null
  br i1 %2357, label %2358, label %2380

2358:                                             ; preds = %2354
  %2359 = load i32, ptr %571, align 4, !tbaa !5
  %2360 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2361 = call i32 @s2n_print_stacktrace(ptr noundef %2360) #10
  %2362 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2363 = trunc nuw i8 %2362 to i1
  br i1 %2363, label %2364, label %2368

2364:                                             ; preds = %2358
  %2365 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2366 = call i32 @fileno(ptr noundef %2365) #10
  %2367 = call i32 @isatty(i32 noundef %2366) #10
  %.not321 = icmp eq i32 %2367, 0
  br i1 %.not321, label %2368, label %2369

2368:                                             ; preds = %2364, %2358
  br label %2369

2369:                                             ; preds = %2364, %2368
  %.str.25.sink1147 = phi ptr [ @.str.25, %2368 ], [ @.str.22, %2364 ]
  store i32 %2359, ptr %571, align 4, !tbaa !5
  %2370 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2371 = load i32, ptr @test_count, align 4, !tbaa !5
  %2372 = load i32, ptr %517, align 4, !tbaa !5
  %2373 = call ptr @s2n_strerror(i32 noundef %2372, ptr noundef nonnull @.str.24) #10
  %2374 = load i32, ptr %517, align 4, !tbaa !5
  %2375 = call ptr @s2n_strerror_debug(i32 noundef %2374, ptr noundef nonnull @.str.24) #10
  %2376 = load i32, ptr %571, align 4, !tbaa !5
  %2377 = call ptr @strerror(i32 noundef %2376) #10
  %2378 = load i32, ptr %571, align 4, !tbaa !5
  %2379 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2370, ptr noundef nonnull %.str.25.sink1147, i32 noundef %2371, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.21, i32 noundef 256, ptr noundef %2373, ptr noundef %2375, ptr noundef %2377, i32 noundef %2378) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2380:                                             ; preds = %2354
  store i32 0, ptr %517, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #10
  store i32 0, ptr %571, align 4, !tbaa !5
  %2381 = load i32, ptr @test_count, align 4, !tbaa !5
  %2382 = add nsw i32 %2381, 1
  store i32 %2382, ptr @test_count, align 4, !tbaa !5
  %2383 = call zeroext i1 @s2n_connection_check_io_status(ptr noundef nonnull %2113, i32 noundef 3) #10
  br i1 %2383, label %2406, label %2384

2384:                                             ; preds = %2380
  %2385 = load i32, ptr %571, align 4, !tbaa !5
  %2386 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2387 = call i32 @s2n_print_stacktrace(ptr noundef %2386) #10
  %2388 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2389 = trunc nuw i8 %2388 to i1
  br i1 %2389, label %2390, label %2394

2390:                                             ; preds = %2384
  %2391 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2392 = call i32 @fileno(ptr noundef %2391) #10
  %2393 = call i32 @isatty(i32 noundef %2392) #10
  %.not312 = icmp eq i32 %2393, 0
  br i1 %.not312, label %2394, label %2395

2394:                                             ; preds = %2390, %2384
  br label %2395

2395:                                             ; preds = %2390, %2394
  %.str.25.sink1156 = phi ptr [ @.str.25, %2394 ], [ @.str.22, %2390 ]
  store i32 %2385, ptr %571, align 4, !tbaa !5
  %2396 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2397 = load i32, ptr @test_count, align 4, !tbaa !5
  %2398 = load i32, ptr %517, align 4, !tbaa !5
  %2399 = call ptr @s2n_strerror(i32 noundef %2398, ptr noundef nonnull @.str.24) #10
  %2400 = load i32, ptr %517, align 4, !tbaa !5
  %2401 = call ptr @s2n_strerror_debug(i32 noundef %2400, ptr noundef nonnull @.str.24) #10
  %2402 = load i32, ptr %571, align 4, !tbaa !5
  %2403 = call ptr @strerror(i32 noundef %2402) #10
  %2404 = load i32, ptr %571, align 4, !tbaa !5
  %2405 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2396, ptr noundef nonnull %.str.25.sink1156, i32 noundef %2397, ptr noundef nonnull @.str.68, ptr noundef nonnull @.str.21, i32 noundef 259, ptr noundef %2399, ptr noundef %2401, ptr noundef %2403, i32 noundef %2404) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2406:                                             ; preds = %2380
  %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 = call i64 @s2n_connection_get_delay(ptr noundef nonnull %2113) #10
  %2410 = icmp eq i64 %2409, 0
  br i1 %2410, label %2411, label %2433

2411:                                             ; preds = %2406
  %2412 = load i32, ptr %571, align 4, !tbaa !5
  %2413 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2414 = call i32 @s2n_print_stacktrace(ptr noundef %2413) #10
  %2415 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2416 = trunc nuw i8 %2415 to i1
  br i1 %2416, label %2417, label %2421

2417:                                             ; preds = %2411
  %2418 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2419 = call i32 @fileno(ptr noundef %2418) #10
  %2420 = call i32 @isatty(i32 noundef %2419) #10
  %.not320 = icmp eq i32 %2420, 0
  br i1 %.not320, label %2421, label %2422

2421:                                             ; preds = %2417, %2411
  br label %2422

2422:                                             ; preds = %2417, %2421
  %.str.25.sink1165 = phi ptr [ @.str.25, %2421 ], [ @.str.22, %2417 ]
  store i32 %2412, ptr %571, align 4, !tbaa !5
  %2423 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2424 = load i32, ptr @test_count, align 4, !tbaa !5
  %2425 = load i32, ptr %517, align 4, !tbaa !5
  %2426 = call ptr @s2n_strerror(i32 noundef %2425, ptr noundef nonnull @.str.24) #10
  %2427 = load i32, ptr %517, align 4, !tbaa !5
  %2428 = call ptr @s2n_strerror_debug(i32 noundef %2427, ptr noundef nonnull @.str.24) #10
  %2429 = load i32, ptr %571, align 4, !tbaa !5
  %2430 = call ptr @strerror(i32 noundef %2429) #10
  %2431 = load i32, ptr %571, align 4, !tbaa !5
  %2432 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2423, ptr noundef nonnull %.str.25.sink1165, i32 noundef %2424, ptr noundef nonnull @.str.69, ptr noundef nonnull @.str.21, i32 noundef 262, ptr noundef %2426, ptr noundef %2428, ptr noundef %2430, i32 noundef %2431) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2433:                                             ; preds = %2406
  %2434 = load i32, ptr @test_count, align 4, !tbaa !5
  %2435 = add nsw i32 %2434, 1
  store i32 %2435, ptr @test_count, align 4, !tbaa !5
  %2436 = call i32 @s2n_connection_free(ptr noundef nonnull %2060) #10
  %2437 = icmp eq i32 %2436, -1
  br i1 %2437, label %2438, label %2460

2438:                                             ; preds = %2433
  %2439 = load i32, ptr %571, align 4, !tbaa !5
  %2440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2441 = call i32 @s2n_print_stacktrace(ptr noundef %2440) #10
  %2442 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2443 = trunc nuw i8 %2442 to i1
  br i1 %2443, label %2444, label %2448

2444:                                             ; preds = %2438
  %2445 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2446 = call i32 @fileno(ptr noundef %2445) #10
  %2447 = call i32 @isatty(i32 noundef %2446) #10
  %.not319 = icmp eq i32 %2447, 0
  br i1 %.not319, label %2448, label %2449

2448:                                             ; preds = %2444, %2438
  br label %2449

2449:                                             ; preds = %2444, %2448
  %.str.25.sink1174 = phi ptr [ @.str.25, %2448 ], [ @.str.22, %2444 ]
  store i32 %2439, ptr %571, align 4, !tbaa !5
  %2450 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2451 = load i32, ptr @test_count, align 4, !tbaa !5
  %2452 = load i32, ptr %517, align 4, !tbaa !5
  %2453 = call ptr @s2n_strerror(i32 noundef %2452, ptr noundef nonnull @.str.24) #10
  %2454 = load i32, ptr %517, align 4, !tbaa !5
  %2455 = call ptr @s2n_strerror_debug(i32 noundef %2454, ptr noundef nonnull @.str.24) #10
  %2456 = load i32, ptr %571, align 4, !tbaa !5
  %2457 = call ptr @strerror(i32 noundef %2456) #10
  %2458 = load i32, ptr %571, align 4, !tbaa !5
  %2459 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2450, ptr noundef nonnull %.str.25.sink1174, i32 noundef %2451, ptr noundef nonnull @.str.70, ptr noundef nonnull @.str.21, i32 noundef 264, ptr noundef %2453, ptr noundef %2455, ptr noundef %2457, i32 noundef %2458) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2460:                                             ; preds = %2433
  %2461 = load i32, ptr @test_count, align 4, !tbaa !5
  %2462 = add nsw i32 %2461, 1
  store i32 %2462, ptr @test_count, align 4, !tbaa !5
  %2463 = call i32 @s2n_connection_free(ptr noundef nonnull %2113) #10
  %2464 = icmp eq i32 %2463, -1
  br i1 %2464, label %2465, label %2487

2465:                                             ; preds = %2460
  %2466 = load i32, ptr %571, align 4, !tbaa !5
  %2467 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2468 = call i32 @s2n_print_stacktrace(ptr noundef %2467) #10
  %2469 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2470 = trunc nuw i8 %2469 to i1
  br i1 %2470, label %2471, label %2475

2471:                                             ; preds = %2465
  %2472 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2473 = call i32 @fileno(ptr noundef %2472) #10
  %2474 = call i32 @isatty(i32 noundef %2473) #10
  %.not318 = icmp eq i32 %2474, 0
  br i1 %.not318, label %2475, label %2476

2475:                                             ; preds = %2471, %2465
  br label %2476

2476:                                             ; preds = %2471, %2475
  %.str.25.sink1183 = phi ptr [ @.str.25, %2475 ], [ @.str.22, %2471 ]
  store i32 %2466, ptr %571, align 4, !tbaa !5
  %2477 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2478 = load i32, ptr @test_count, align 4, !tbaa !5
  %2479 = load i32, ptr %517, align 4, !tbaa !5
  %2480 = call ptr @s2n_strerror(i32 noundef %2479, ptr noundef nonnull @.str.24) #10
  %2481 = load i32, ptr %517, align 4, !tbaa !5
  %2482 = call ptr @s2n_strerror_debug(i32 noundef %2481, ptr noundef nonnull @.str.24) #10
  %2483 = load i32, ptr %571, align 4, !tbaa !5
  %2484 = call ptr @strerror(i32 noundef %2483) #10
  %2485 = load i32, ptr %571, align 4, !tbaa !5
  %2486 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2477, ptr noundef nonnull %.str.25.sink1183, i32 noundef %2478, ptr noundef nonnull @.str.71, ptr noundef nonnull @.str.21, i32 noundef 265, ptr noundef %2480, ptr noundef %2482, ptr noundef %2484, i32 noundef %2485) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2487:                                             ; preds = %2460
  call void @llvm.lifetime.end.p0(i64 10, ptr nonnull %14) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %13) #10
  %2488 = call i32 @s2n_stuffer_free(ptr noundef nonnull %12) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %12) #10
  %2489 = call i32 @s2n_cleanup() #10
  %2490 = icmp eq i32 %2489, -1
  br i1 %2490, label %2491, label %2513

2491:                                             ; preds = %2487
  %2492 = load i32, ptr %571, align 4, !tbaa !5
  %2493 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2494 = call i32 @s2n_print_stacktrace(ptr noundef %2493) #10
  %2495 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2496 = trunc nuw i8 %2495 to i1
  br i1 %2496, label %2497, label %2501

2497:                                             ; preds = %2491
  %2498 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2499 = call i32 @fileno(ptr noundef %2498) #10
  %2500 = call i32 @isatty(i32 noundef %2499) #10
  %.not317 = icmp eq i32 %2500, 0
  br i1 %.not317, label %2501, label %2502

2501:                                             ; preds = %2497, %2491
  br label %2502

2502:                                             ; preds = %2497, %2501
  %.str.25.sink1192 = phi ptr [ @.str.25, %2501 ], [ @.str.22, %2497 ]
  store i32 %2492, ptr %571, align 4, !tbaa !5
  %2503 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2504 = load i32, ptr @test_count, align 4, !tbaa !5
  %2505 = load i32, ptr %517, align 4, !tbaa !5
  %2506 = call ptr @s2n_strerror(i32 noundef %2505, ptr noundef nonnull @.str.24) #10
  %2507 = load i32, ptr %517, align 4, !tbaa !5
  %2508 = call ptr @s2n_strerror_debug(i32 noundef %2507, ptr noundef nonnull @.str.24) #10
  %2509 = load i32, ptr %571, align 4, !tbaa !5
  %2510 = call ptr @strerror(i32 noundef %2509) #10
  %2511 = load i32, ptr %571, align 4, !tbaa !5
  %2512 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2503, ptr noundef nonnull %.str.25.sink1192, i32 noundef %2504, ptr noundef nonnull @.str.72, ptr noundef nonnull @.str.21, i32 noundef 268, ptr noundef %2506, ptr noundef %2508, ptr noundef %2510, i32 noundef %2511) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2513:                                             ; preds = %2487
  %2514 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #10
  %2515 = icmp eq i32 %2514, -1
  br i1 %2515, label %2516, label %2538

2516:                                             ; preds = %2513
  %2517 = load i32, ptr %571, align 4, !tbaa !5
  %2518 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2519 = call i32 @s2n_print_stacktrace(ptr noundef %2518) #10
  %2520 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2521 = trunc nuw i8 %2520 to i1
  br i1 %2521, label %2522, label %2526

2522:                                             ; preds = %2516
  %2523 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2524 = call i32 @fileno(ptr noundef %2523) #10
  %2525 = call i32 @isatty(i32 noundef %2524) #10
  %.not316 = icmp eq i32 %2525, 0
  br i1 %.not316, label %2526, label %2527

2526:                                             ; preds = %2522, %2516
  br label %2527

2527:                                             ; preds = %2522, %2526
  %.str.25.sink1201 = phi ptr [ @.str.25, %2526 ], [ @.str.22, %2522 ]
  store i32 %2517, ptr %571, align 4, !tbaa !5
  %2528 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2529 = load i32, ptr @test_count, align 4, !tbaa !5
  %2530 = load i32, ptr %517, align 4, !tbaa !5
  %2531 = call ptr @s2n_strerror(i32 noundef %2530, ptr noundef nonnull @.str.24) #10
  %2532 = load i32, ptr %517, align 4, !tbaa !5
  %2533 = call ptr @s2n_strerror_debug(i32 noundef %2532, ptr noundef nonnull @.str.24) #10
  %2534 = load i32, ptr %571, align 4, !tbaa !5
  %2535 = call ptr @strerror(i32 noundef %2534) #10
  %2536 = load i32, ptr %571, align 4, !tbaa !5
  %2537 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2528, ptr noundef nonnull %.str.25.sink1201, i32 noundef %2529, ptr noundef nonnull @.str.73, ptr noundef nonnull @.str.21, i32 noundef 268, ptr noundef %2531, ptr noundef %2533, ptr noundef %2535, i32 noundef %2536) #12
  call void @exit(i32 noundef 1) #13
  unreachable

2538:                                             ; preds = %2513
  %2539 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2540 = trunc nuw i8 %2539 to i1
  br i1 %2540, label %2541, label %2552

2541:                                             ; preds = %2538
  %2542 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2543 = call i32 @fileno(ptr noundef %2542) #10
  %2544 = call i32 @isatty(i32 noundef %2543) #10
  %.not313 = icmp eq i32 %2544, 0
  br i1 %.not313, label %2552, label %2545

2545:                                             ; preds = %2541
  %2546 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not315 = icmp eq i32 %2546, 0
  %2547 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not315, label %2550, label %2548

2548:                                             ; preds = %2545
  %2549 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2547, ptr noundef nonnull @.str.74, i32 noundef %2546) #10
  br label %2559

2550:                                             ; preds = %2545
  %2551 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2547, ptr noundef nonnull @.str.75) #10
  br label %2559

2552:                                             ; preds = %2541, %2538
  %2553 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not314 = icmp eq i32 %2553, 0
  %2554 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not314, label %2557, label %2555

2555:                                             ; preds = %2552
  %2556 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2554, ptr noundef nonnull @.str.76, i32 noundef %2553) #10
  br label %2559

2557:                                             ; preds = %2552
  %2558 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2554, ptr noundef nonnull @.str.77) #10
  br label %2559

2559:                                             ; preds = %2555, %2557, %2548, %2550
  ret i32 0
}

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

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

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) local_unnamed_addr #2

declare i32 @s2n_print_stacktrace(ptr noundef) local_unnamed_addr #2

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

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

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

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

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

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

declare i32 @s2n_enable_atexit() local_unnamed_addr #2

declare i32 @s2n_init() local_unnamed_addr #2

declare ptr @s2n_connection_new(i32 noundef) local_unnamed_addr #2

declare zeroext i1 @s2n_atomic_flag_test(ptr noundef) local_unnamed_addr #2

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

declare i32 @s2n_stuffer_write_uint24(ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @s2n_post_handshake_recv(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_connection_free(ptr noundef) local_unnamed_addr #2

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

declare void @s2n_debug_info_reset() local_unnamed_addr #2

declare i32 @s2n_key_update_write(ptr noundef) local_unnamed_addr #2

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

declare i32 @s2n_connection_ptr_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_connection_set_secrets(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_growable_alloc(ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @s2n_connection_set_send_io_stuffer(ptr noundef, ptr noundef) local_unnamed_addr #2

declare void @s2n_atomic_flag_set(ptr noundef) local_unnamed_addr #2

declare void @s2n_atomic_flag_clear(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_connection_set_cipher_preferences(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_connection_set_blinding(ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @s2n_connection_set_io_stuffers(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_negotiate_until_message(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #2

declare i64 @s2n_recv(ptr noundef, ptr noundef, i64 noundef, ptr noundef) local_unnamed_addr #2

declare i64 @s2n_connection_get_delay(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_cleanup() local_unnamed_addr #2

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

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

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


; Effective O3 passes: EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,LICMPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,PostOrderFunctionAttrsPass,SROAPass,SimplifyCFGPass,TailCallElimPass