; LLVM IR from aws/s2n-tls :: tests/unit (s2n_tls12_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_stuffer = type { %struct.s2n_blob, i32, i32, i32, i8 }
%struct.s2n_blob = type { ptr, 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 }

@s2n_use_color_in_output = external dso_local global i8, align 1
@s2n_errno = external thread_local global i32, align 4
@.str.11 = external hidden unnamed_addr constant [8 x i8], align 1
@tls12_handshake_type_names = external hidden global [8 x ptr], align 16
@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 [83 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 [56 x i8], align 1
@invalid_handshake = external hidden global [32 x i32], align 16
@.str.29 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [135 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [126 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [209 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [209 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [56 x i8], align 1
@expected_handler_called = external hidden global i32, align 4
@.str.44 = external hidden unnamed_addr constant [37 x i8], align 1
@unexpected_handler_called = external hidden global i32, align 4
@.str.45 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [196 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [347 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [110 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [124 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [112 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [105 x i8], align 1
@__const.main.expected = external hidden unnamed_addr constant [17 x ptr], align 16
@.str.88 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.96 = external hidden unnamed_addr constant [25 x i8], align 1
@tls13_handshakes = external hidden global <{ <{ i32, i32, [30 x i32] }>, <{ i32, i32, i32, i32, i32, i32, [26 x i32] }>, [32 x i32], <{ [8 x i32], [24 x i32] }>, [32 x i32], [32 x i32], [32 x i32], <{ [11 x i32], [21 x i32] }>, [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], <{ [10 x i32], [22 x i32] }>, <{ i32, i32, [30 x i32] }>, <{ [8 x i32], [24 x i32] }>, [32 x i32], <{ [10 x i32], [22 x i32] }>, [32 x i32], [32 x i32], [32 x i32], <{ [13 x i32], [19 x i32] }>, [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], <{ [12 x i32], [20 x i32] }>, [32 x i32], <{ [8 x i32], [24 x i32] }>, [32 x i32], <{ [10 x i32], [22 x i32] }>, [32 x i32], [32 x i32], [32 x i32], <{ [13 x i32], [19 x i32] }>, [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], <{ [12 x i32], [20 x i32] }>, [32 x i32], <{ [10 x i32], [22 x i32] }>, [32 x i32], <{ [12 x i32], [20 x i32] }>, [32 x i32], [32 x i32], [32 x i32], <{ [15 x i32], [17 x i32] }>, [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], <{ [14 x i32], [18 x i32] }>, [32 x i32], <{ i32, i32, i32, i32, i32, i32, i32, [25 x i32] }>, [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], <{ [9 x i32], [23 x i32] }>, [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], <{ i32, i32, i32, [29 x i32] }>, <{ [8 x i32], [24 x i32] }>, [32 x i32], <{ [10 x i32], [22 x i32] }>, [32 x i32], [32 x i32], [32 x i32], <{ [13 x i32], [19 x i32] }>, [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], <{ [12 x i32], [20 x i32] }>, <{ i32, i32, i32, [29 x i32] }>, <{ [10 x i32], [22 x i32] }>, [32 x i32], <{ [12 x i32], [20 x i32] }>, [32 x i32], [32 x i32], [32 x i32], <{ [15 x i32], [17 x i32] }>, [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], <{ [14 x i32], [18 x i32] }>, [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], <{ [9 x i32], [23 x i32] }>, [30 x [32 x i32]] }>, align 16
@handshakes = external hidden global <{ <{ i32, i32, [30 x i32] }>, <{ i32, i32, i32, i32, i32, i32, i32, [25 x i32] }>, [32 x i32], <{ [10 x i32], [22 x i32] }>, [32 x i32], [32 x i32], [32 x i32], <{ [13 x i32], [19 x i32] }>, [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], <{ [12 x i32], [20 x i32] }>, [32 x i32], [32 x i32], [32 x i32], <{ [11 x i32], [21 x i32] }>, [32 x i32], [32 x i32], [32 x i32], <{ [14 x i32], [18 x i32] }>, [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], <{ [13 x i32], [19 x i32] }>, [32 x i32], [32 x i32], [32 x i32], <{ [11 x i32], [21 x i32] }>, [32 x i32], [32 x i32], [32 x i32], <{ [14 x i32], [18 x i32] }>, [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], <{ [13 x i32], [19 x i32] }>, [32 x i32], [32 x i32], [32 x i32], <{ [12 x i32], [20 x i32] }>, [32 x i32], [32 x i32], [32 x i32], <{ [15 x i32], [17 x i32] }>, [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], <{ [14 x i32], [18 x i32] }>, [32 x i32], <{ [8 x i32], [24 x i32] }>, [32 x i32], <{ [11 x i32], [21 x i32] }>, [32 x i32], [32 x i32], [32 x i32], <{ [14 x i32], [18 x i32] }>, [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], <{ [13 x i32], [19 x i32] }>, [32 x i32], [32 x i32], [32 x i32], <{ [12 x i32], [20 x i32] }>, [32 x i32], [32 x i32], [32 x i32], <{ [15 x i32], [17 x i32] }>, [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], <{ [14 x i32], [18 x i32] }>, [32 x i32], [32 x i32], [32 x i32], <{ [12 x i32], [20 x i32] }>, [32 x i32], [32 x i32], [32 x i32], <{ [15 x i32], [17 x i32] }>, [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], <{ [14 x i32], [18 x i32] }>, [32 x i32], [32 x i32], [32 x i32], <{ [13 x i32], [19 x i32] }>, [32 x i32], [32 x i32], [32 x i32], <{ [16 x i32], [16 x i32] }>, [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], <{ [15 x i32], [17 x i32] }>, [32 x i32], <{ [8 x i32], [24 x i32] }>, [32 x i32], <{ [11 x i32], [21 x i32] }>, [32 x i32], [32 x i32], [32 x i32], <{ [14 x i32], [18 x i32] }>, [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], <{ [13 x i32], [19 x i32] }>, [32 x i32], [32 x i32], [32 x i32], <{ [12 x i32], [20 x i32] }>, [32 x i32], [32 x i32], [32 x i32], <{ [15 x i32], [17 x i32] }>, [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], <{ [14 x i32], [18 x i32] }>, [32 x i32], [32 x i32], [32 x i32], <{ [12 x i32], [20 x i32] }>, [32 x i32], [32 x i32], [32 x i32], <{ [15 x i32], [17 x i32] }>, [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], <{ [14 x i32], [18 x i32] }>, [32 x i32], [32 x i32], [32 x i32], <{ [13 x i32], [19 x i32] }>, [32 x i32], [32 x i32], [32 x i32], <{ [16 x i32], [16 x i32] }>, [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], <{ [15 x i32], [17 x i32] }>, [32 x i32], <{ [9 x i32], [23 x i32] }>, [32 x i32], <{ [12 x i32], [20 x i32] }>, [32 x i32], [32 x i32], [32 x i32], <{ [15 x i32], [17 x i32] }>, [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], <{ [14 x i32], [18 x i32] }>, [32 x i32], [32 x i32], [32 x i32], <{ [13 x i32], [19 x i32] }>, [32 x i32], [32 x i32], [32 x i32], <{ [16 x i32], [16 x i32] }>, [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], <{ [15 x i32], [17 x i32] }>, [32 x i32], [32 x i32], [32 x i32], <{ [13 x i32], [19 x i32] }>, [32 x i32], [32 x i32], [32 x i32], <{ [16 x i32], [16 x i32] }>, [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], <{ [15 x i32], [17 x i32] }>, [32 x i32], [32 x i32], [32 x i32], <{ [14 x i32], [18 x i32] }>, [32 x i32], [32 x i32], [32 x i32], <{ [17 x i32], [15 x i32] }>, [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], <{ [16 x i32], [16 x i32] }> }>, align 16

; 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

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

; Function Attrs: nounwind uwtable
declare dso_local ptr @s2n_connection_get_last_message_name(ptr noundef) #3

; Function Attrs: nounwind uwtable
declare dso_local ptr @s2n_connection_get_handshake_type_name(ptr noundef) #3

; Function Attrs: nounwind willreturn memory(read)
declare i64 @strlen(ptr noundef) #4

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

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

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_handshake_read_io(ptr noundef) #3

; Function Attrs: nounwind uwtable
define dso_local i32 @main(i32 noundef %0, ptr noundef %1) #3 {
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca [256 x i16], align 16
  %11 = alloca i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca ptr, align 8
  %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 i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca i8, align 1
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca ptr, align 8
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca ptr, align 8
  %43 = alloca %struct.s2n_stuffer, align 8
  %44 = alloca i32, align 4
  %45 = alloca i32, align 4
  %46 = alloca i32, align 4
  %47 = alloca i32, align 4
  %48 = alloca i32, align 4
  %49 = alloca i32, align 4
  %50 = alloca i32, align 4
  %51 = alloca i32, align 4
  %52 = alloca i32, align 4
  %53 = alloca i32, align 4
  %54 = alloca i32, align 4
  %55 = alloca i32, align 4
  %56 = alloca i32, align 4
  %57 = alloca i32, align 4
  %58 = alloca i32, align 4
  %59 = alloca i32, align 4
  %60 = alloca i32, align 4
  %61 = alloca i32, align 4
  %62 = alloca ptr, align 8
  %63 = alloca %struct.s2n_stuffer, align 8
  %64 = alloca i32, align 4
  %65 = alloca i32, align 4
  %66 = alloca i32, align 4
  %67 = alloca i32, align 4
  %68 = alloca i32, align 4
  %69 = alloca i32, align 4
  %70 = alloca i32, align 4
  %71 = alloca i32, align 4
  %72 = alloca i32, align 4
  %73 = alloca i32, align 4
  %74 = alloca i32, align 4
  %75 = alloca i32, align 4
  %76 = alloca i32, align 4
  %77 = alloca i32, align 4
  %78 = alloca i32, align 4
  %79 = alloca i32, align 4
  %80 = alloca i32, align 4
  %81 = alloca i32, align 4
  %82 = alloca ptr, align 8
  %83 = alloca %struct.s2n_stuffer, align 8
  %84 = alloca i32, align 4
  %85 = alloca i32, align 4
  %86 = alloca i64, align 8
  %87 = alloca i16, align 2
  %88 = alloca i64, align 8
  %89 = alloca i32, align 4
  %90 = alloca i32, align 4
  %91 = alloca i32, align 4
  %92 = alloca i32, align 4
  %93 = alloca i32, align 4
  %94 = alloca i32, align 4
  %95 = alloca i32, align 4
  %96 = alloca ptr, align 8
  %97 = alloca %struct.s2n_stuffer, align 8
  %98 = alloca i32, align 4
  %99 = alloca i32, align 4
  %100 = alloca i32, align 4
  %101 = alloca i32, align 4
  %102 = alloca i32, align 4
  %103 = alloca i32, align 4
  %104 = alloca i32, align 4
  %105 = alloca i32, align 4
  %106 = alloca i32, align 4
  %107 = alloca i32, align 4
  %108 = alloca i32, align 4
  %109 = alloca ptr, align 8
  %110 = alloca %struct.s2n_stuffer, align 8
  %111 = alloca i32, align 4
  %112 = alloca i32, align 4
  %113 = alloca i32, align 4
  %114 = alloca i32, align 4
  %115 = alloca i32, align 4
  %116 = alloca i32, align 4
  %117 = alloca i32, align 4
  %118 = alloca i32, align 4
  %119 = alloca i32, align 4
  %120 = alloca i32, align 4
  %121 = alloca i32, align 4
  %122 = alloca i32, align 4
  %123 = alloca i32, align 4
  %124 = alloca ptr, align 8
  %125 = alloca %struct.s2n_stuffer, align 8
  %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
  %135 = alloca i32, align 4
  %136 = alloca i32, align 4
  %137 = alloca i32, align 4
  %138 = alloca i32, align 4
  %139 = alloca i8, align 1
  %140 = alloca ptr, align 8
  %141 = alloca %struct.s2n_stuffer, align 8
  %142 = alloca i32, align 4
  %143 = alloca i32, align 4
  %144 = alloca i8, align 1
  %145 = alloca i32, align 4
  %146 = alloca i32, align 4
  %147 = alloca i32, align 4
  %148 = alloca i32, align 4
  %149 = alloca i32, align 4
  %150 = alloca i32, align 4
  %151 = alloca i32, align 4
  %152 = alloca i32, align 4
  %153 = alloca i32, align 4
  %154 = alloca i32, align 4
  %155 = alloca i32, align 4
  %156 = alloca i64, align 8
  %157 = alloca i64, align 8
  %158 = alloca i32, align 4
  %159 = alloca ptr, align 8
  %160 = alloca i32, align 4
  %161 = alloca i32, align 4
  %162 = alloca ptr, align 8
  %163 = alloca i32, align 4
  %164 = alloca ptr, align 8
  %165 = alloca i32, align 4
  %166 = alloca i32, align 4
  %167 = alloca i32, align 4
  %168 = alloca i32, align 4
  %169 = alloca i32, align 4
  %170 = alloca i32, align 4
  %171 = alloca [17 x ptr], align 16
  %172 = alloca ptr, align 8
  %173 = alloca i64, align 8
  %174 = alloca i32, align 4
  %175 = alloca i32, align 4
  %176 = alloca i64, align 8
  %177 = alloca i32, align 4
  %178 = alloca ptr, align 8
  %179 = alloca i32, align 4
  %180 = alloca ptr, align 8
  %181 = alloca i64, align 8
  %182 = alloca i64, align 8
  %183 = alloca i32, align 4
  %184 = alloca i32, align 4
  %185 = alloca i32, align 4
  %186 = 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 %187

187:                                              ; preds = %2
  br label %188

188:                                              ; preds = %187
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %189 = load ptr, ptr @stdout, align 8, !tbaa !9
  %190 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %189, ptr noundef @.str.20, ptr noundef @.str.21) #10
  %191 = load ptr, ptr @stdout, align 8, !tbaa !9
  %192 = call i32 @fflush(ptr noundef %191)
  br label %193

193:                                              ; preds = %188
  %194 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %195 = icmp eq i32 %194, -1
  br i1 %195, label %196, label %247

196:                                              ; preds = %193
  br label %197

197:                                              ; preds = %196
  br label %198

198:                                              ; preds = %197
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #10
  %199 = call ptr @__errno_location() #11
  %200 = load i32, ptr %199, align 4, !tbaa !5
  store i32 %200, ptr %6, align 4, !tbaa !5
  %201 = load ptr, ptr @stderr, align 8, !tbaa !9
  %202 = call i32 @s2n_print_stacktrace(ptr noundef %201)
  %203 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %204 = trunc i8 %203 to i1
  br i1 %204, label %205, label %227

205:                                              ; preds = %198
  %206 = load ptr, ptr @stderr, align 8, !tbaa !9
  %207 = call i32 @fileno(ptr noundef %206) #10
  %208 = call i32 @isatty(i32 noundef %207) #10
  %209 = icmp ne i32 %208, 0
  br i1 %209, label %210, label %227

210:                                              ; preds = %205
  %211 = load i32, ptr %6, align 4, !tbaa !5
  %212 = call ptr @__errno_location() #11
  store i32 %211, ptr %212, align 4, !tbaa !5
  %213 = load ptr, ptr @stderr, align 8, !tbaa !9
  %214 = load i32, ptr @test_count, align 4, !tbaa !5
  %215 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %216 = load i32, ptr %215, align 4, !tbaa !5
  %217 = call ptr @s2n_strerror(i32 noundef %216, ptr noundef @.str.24)
  %218 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %219 = load i32, ptr %218, align 4, !tbaa !5
  %220 = call ptr @s2n_strerror_debug(i32 noundef %219, ptr noundef @.str.24)
  %221 = call ptr @__errno_location() #11
  %222 = load i32, ptr %221, align 4, !tbaa !5
  %223 = call ptr @strerror(i32 noundef %222) #10
  %224 = call ptr @__errno_location() #11
  %225 = load i32, ptr %224, align 4, !tbaa !5
  %226 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %213, ptr noundef @.str.22, i32 noundef %214, ptr noundef @.str.23, ptr noundef @.str.21, i32 noundef 91, ptr noundef %217, ptr noundef %220, ptr noundef %223, i32 noundef %225) #10
  br label %244

227:                                              ; preds = %205, %198
  %228 = load i32, ptr %6, align 4, !tbaa !5
  %229 = call ptr @__errno_location() #11
  store i32 %228, ptr %229, align 4, !tbaa !5
  %230 = load ptr, ptr @stderr, align 8, !tbaa !9
  %231 = load i32, ptr @test_count, align 4, !tbaa !5
  %232 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %233 = load i32, ptr %232, align 4, !tbaa !5
  %234 = call ptr @s2n_strerror(i32 noundef %233, ptr noundef @.str.24)
  %235 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %236 = load i32, ptr %235, align 4, !tbaa !5
  %237 = call ptr @s2n_strerror_debug(i32 noundef %236, ptr noundef @.str.24)
  %238 = call ptr @__errno_location() #11
  %239 = load i32, ptr %238, align 4, !tbaa !5
  %240 = call ptr @strerror(i32 noundef %239) #10
  %241 = call ptr @__errno_location() #11
  %242 = load i32, ptr %241, align 4, !tbaa !5
  %243 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %230, ptr noundef @.str.25, i32 noundef %231, ptr noundef @.str.23, ptr noundef @.str.21, i32 noundef 91, ptr noundef %234, ptr noundef %237, ptr noundef %240, i32 noundef %242) #10
  br label %244

244:                                              ; preds = %227, %210
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #10
  br label %245

245:                                              ; preds = %244
  call void @exit(i32 noundef 1) #12
  unreachable

246:                                              ; No predecessors!
  br label %247

247:                                              ; preds = %246, %193
  br label %248

248:                                              ; preds = %247
  br label %249

249:                                              ; preds = %248
  %250 = load i32, ptr @test_count, align 4, !tbaa !5
  %251 = add nsw i32 %250, 1
  store i32 %251, ptr @test_count, align 4, !tbaa !5
  %252 = call i32 @s2n_enable_atexit()
  %253 = icmp eq i32 %252, -1
  br i1 %253, label %254, label %305

254:                                              ; preds = %249
  br label %255

255:                                              ; preds = %254
  br label %256

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

263:                                              ; preds = %256
  %264 = load ptr, ptr @stderr, align 8, !tbaa !9
  %265 = call i32 @fileno(ptr noundef %264) #10
  %266 = call i32 @isatty(i32 noundef %265) #10
  %267 = icmp ne i32 %266, 0
  br i1 %267, label %268, label %285

268:                                              ; preds = %263
  %269 = load i32, ptr %7, align 4, !tbaa !5
  %270 = call ptr @__errno_location() #11
  store i32 %269, ptr %270, align 4, !tbaa !5
  %271 = load ptr, ptr @stderr, align 8, !tbaa !9
  %272 = load i32, ptr @test_count, align 4, !tbaa !5
  %273 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %274 = load i32, ptr %273, align 4, !tbaa !5
  %275 = call ptr @s2n_strerror(i32 noundef %274, ptr noundef @.str.24)
  %276 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %277 = load i32, ptr %276, align 4, !tbaa !5
  %278 = call ptr @s2n_strerror_debug(i32 noundef %277, ptr noundef @.str.24)
  %279 = call ptr @__errno_location() #11
  %280 = load i32, ptr %279, align 4, !tbaa !5
  %281 = call ptr @strerror(i32 noundef %280) #10
  %282 = call ptr @__errno_location() #11
  %283 = load i32, ptr %282, align 4, !tbaa !5
  %284 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %271, ptr noundef @.str.22, i32 noundef %272, ptr noundef @.str.26, ptr noundef @.str.21, i32 noundef 91, ptr noundef %275, ptr noundef %278, ptr noundef %281, i32 noundef %283) #10
  br label %302

285:                                              ; preds = %263, %256
  %286 = load i32, ptr %7, align 4, !tbaa !5
  %287 = call ptr @__errno_location() #11
  store i32 %286, ptr %287, align 4, !tbaa !5
  %288 = load ptr, ptr @stderr, align 8, !tbaa !9
  %289 = load i32, ptr @test_count, align 4, !tbaa !5
  %290 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %291 = load i32, ptr %290, align 4, !tbaa !5
  %292 = call ptr @s2n_strerror(i32 noundef %291, ptr noundef @.str.24)
  %293 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %294 = load i32, ptr %293, align 4, !tbaa !5
  %295 = call ptr @s2n_strerror_debug(i32 noundef %294, ptr noundef @.str.24)
  %296 = call ptr @__errno_location() #11
  %297 = load i32, ptr %296, align 4, !tbaa !5
  %298 = call ptr @strerror(i32 noundef %297) #10
  %299 = call ptr @__errno_location() #11
  %300 = load i32, ptr %299, align 4, !tbaa !5
  %301 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %288, ptr noundef @.str.25, i32 noundef %289, ptr noundef @.str.26, ptr noundef @.str.21, i32 noundef 91, ptr noundef %292, ptr noundef %295, ptr noundef %298, i32 noundef %300) #10
  br label %302

302:                                              ; preds = %285, %268
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #10
  br label %303

303:                                              ; preds = %302
  call void @exit(i32 noundef 1) #12
  unreachable

304:                                              ; No predecessors!
  br label %305

305:                                              ; preds = %304, %249
  br label %306

306:                                              ; preds = %305
  br label %307

307:                                              ; preds = %306
  br label %308

308:                                              ; preds = %307
  %309 = call i32 @s2n_init()
  %310 = icmp eq i32 %309, -1
  br i1 %310, label %311, label %362

311:                                              ; preds = %308
  br label %312

312:                                              ; preds = %311
  br label %313

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

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

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

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

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

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

361:                                              ; No predecessors!
  br label %362

362:                                              ; preds = %361, %308
  br label %363

363:                                              ; preds = %362
  br label %364

364:                                              ; preds = %363
  br label %365

365:                                              ; preds = %364
  %366 = load i32, ptr @test_count, align 4, !tbaa !5
  %367 = add nsw i32 %366, 1
  store i32 %367, ptr @test_count, align 4, !tbaa !5
  %368 = call i32 (...) @s2n_disable_tls13_in_test()
  %369 = icmp eq i32 %368, -1
  br i1 %369, label %370, label %421

370:                                              ; preds = %365
  br label %371

371:                                              ; preds = %370
  br label %372

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

379:                                              ; preds = %372
  %380 = load ptr, ptr @stderr, align 8, !tbaa !9
  %381 = call i32 @fileno(ptr noundef %380) #10
  %382 = call i32 @isatty(i32 noundef %381) #10
  %383 = icmp ne i32 %382, 0
  br i1 %383, label %384, label %401

384:                                              ; preds = %379
  %385 = load i32, ptr %9, align 4, !tbaa !5
  %386 = call ptr @__errno_location() #11
  store i32 %385, ptr %386, align 4, !tbaa !5
  %387 = load ptr, ptr @stderr, align 8, !tbaa !9
  %388 = load i32, ptr @test_count, align 4, !tbaa !5
  %389 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %390 = load i32, ptr %389, align 4, !tbaa !5
  %391 = call ptr @s2n_strerror(i32 noundef %390, ptr noundef @.str.24)
  %392 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %393 = load i32, ptr %392, align 4, !tbaa !5
  %394 = call ptr @s2n_strerror_debug(i32 noundef %393, ptr noundef @.str.24)
  %395 = call ptr @__errno_location() #11
  %396 = load i32, ptr %395, align 4, !tbaa !5
  %397 = call ptr @strerror(i32 noundef %396) #10
  %398 = call ptr @__errno_location() #11
  %399 = load i32, ptr %398, align 4, !tbaa !5
  %400 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %387, ptr noundef @.str.22, i32 noundef %388, ptr noundef @.str.28, ptr noundef @.str.21, i32 noundef 92, ptr noundef %391, ptr noundef %394, ptr noundef %397, i32 noundef %399) #10
  br label %418

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

418:                                              ; preds = %401, %384
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #10
  br label %419

419:                                              ; preds = %418
  call void @exit(i32 noundef 1) #12
  unreachable

420:                                              ; No predecessors!
  br label %421

421:                                              ; preds = %420, %365
  br label %422

422:                                              ; preds = %421
  call void @llvm.lifetime.start.p0(i64 512, ptr %10) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #10
  store i32 0, ptr %11, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #10
  store i32 0, ptr %12, align 4, !tbaa !5
  br label %423

423:                                              ; preds = %443, %422
  %424 = load i32, ptr %12, align 4, !tbaa !5
  %425 = icmp slt i32 %424, 256
  br i1 %425, label %427, label %426

426:                                              ; preds = %423
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #10
  br label %446

427:                                              ; preds = %423
  %428 = load i32, ptr %12, align 4, !tbaa !5
  %429 = sext i32 %428 to i64
  %430 = getelementptr inbounds [256 x [32 x i32]], ptr @handshakes, i64 0, i64 %429
  %431 = getelementptr inbounds [32 x i32], ptr %430, i64 0, i64 0
  %432 = call i32 @memcmp(ptr noundef %431, ptr noundef @invalid_handshake, i64 noundef 32) #13
  %433 = icmp ne i32 %432, 0
  br i1 %433, label %434, label %442

434:                                              ; preds = %427
  %435 = load i32, ptr %12, align 4, !tbaa !5
  %436 = trunc i32 %435 to i16
  %437 = load i32, ptr %11, align 4, !tbaa !5
  %438 = sext i32 %437 to i64
  %439 = getelementptr inbounds [256 x i16], ptr %10, i64 0, i64 %438
  store i16 %436, ptr %439, align 2, !tbaa !15
  %440 = load i32, ptr %11, align 4, !tbaa !5
  %441 = add nsw i32 %440, 1
  store i32 %441, ptr %11, align 4, !tbaa !5
  br label %442

442:                                              ; preds = %434, %427
  br label %443

443:                                              ; preds = %442
  %444 = load i32, ptr %12, align 4, !tbaa !5
  %445 = add nsw i32 %444, 1
  store i32 %445, ptr %12, align 4, !tbaa !5
  br label %423, !llvm.loop !17

446:                                              ; preds = %426
  br label %447

447:                                              ; preds = %446
  %448 = load i32, ptr @test_count, align 4, !tbaa !5
  %449 = add nsw i32 %448, 1
  store i32 %449, ptr @test_count, align 4, !tbaa !5
  %450 = load i32, ptr %11, align 4, !tbaa !5
  %451 = icmp sgt i32 %450, 0
  br i1 %451, label %505, label %452

452:                                              ; preds = %447
  br label %453

453:                                              ; preds = %452
  br label %454

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

461:                                              ; preds = %454
  %462 = load ptr, ptr @stderr, align 8, !tbaa !9
  %463 = call i32 @fileno(ptr noundef %462) #10
  %464 = call i32 @isatty(i32 noundef %463) #10
  %465 = icmp ne i32 %464, 0
  br i1 %465, label %466, label %483

466:                                              ; preds = %461
  %467 = load i32, ptr %13, align 4, !tbaa !5
  %468 = call ptr @__errno_location() #11
  store i32 %467, ptr %468, align 4, !tbaa !5
  %469 = load ptr, ptr @stderr, align 8, !tbaa !9
  %470 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %472, ptr noundef @.str.24)
  %474 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %475 = load i32, ptr %474, align 4, !tbaa !5
  %476 = call ptr @s2n_strerror_debug(i32 noundef %475, ptr noundef @.str.24)
  %477 = call ptr @__errno_location() #11
  %478 = load i32, ptr %477, align 4, !tbaa !5
  %479 = call ptr @strerror(i32 noundef %478) #10
  %480 = call ptr @__errno_location() #11
  %481 = load i32, ptr %480, align 4, !tbaa !5
  %482 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %469, ptr noundef @.str.22, i32 noundef %470, ptr noundef @.str.29, ptr noundef @.str.21, i32 noundef 103, ptr noundef %473, ptr noundef %476, ptr noundef %479, i32 noundef %481) #10
  br label %500

483:                                              ; preds = %461, %454
  %484 = load i32, ptr %13, align 4, !tbaa !5
  %485 = call ptr @__errno_location() #11
  store i32 %484, ptr %485, align 4, !tbaa !5
  %486 = load ptr, ptr @stderr, align 8, !tbaa !9
  %487 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %489, ptr noundef @.str.24)
  %491 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %492 = load i32, ptr %491, align 4, !tbaa !5
  %493 = call ptr @s2n_strerror_debug(i32 noundef %492, ptr noundef @.str.24)
  %494 = call ptr @__errno_location() #11
  %495 = load i32, ptr %494, align 4, !tbaa !5
  %496 = call ptr @strerror(i32 noundef %495) #10
  %497 = call ptr @__errno_location() #11
  %498 = load i32, ptr %497, align 4, !tbaa !5
  %499 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %486, ptr noundef @.str.25, i32 noundef %487, ptr noundef @.str.29, ptr noundef @.str.21, i32 noundef 103, ptr noundef %490, ptr noundef %493, ptr noundef %496, i32 noundef %498) #10
  br label %500

500:                                              ; preds = %483, %466
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #10
  br label %501

501:                                              ; preds = %500
  br label %502

502:                                              ; preds = %501
  call void @exit(i32 noundef 1) #12
  unreachable

503:                                              ; No predecessors!
  br label %504

504:                                              ; preds = %503
  br label %505

505:                                              ; preds = %504, %447
  br label %506

506:                                              ; preds = %505
  br label %507

507:                                              ; preds = %506
  br label %508

508:                                              ; preds = %507
  %509 = load i32, ptr @test_count, align 4, !tbaa !5
  %510 = add nsw i32 %509, 1
  store i32 %510, ptr @test_count, align 4, !tbaa !5
  %511 = load i32, ptr %11, align 4, !tbaa !5
  %512 = icmp slt i32 %511, 256
  br i1 %512, label %566, label %513

513:                                              ; preds = %508
  br label %514

514:                                              ; preds = %513
  br label %515

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

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

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

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

561:                                              ; preds = %544, %527
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #10
  br label %562

562:                                              ; preds = %561
  br label %563

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

564:                                              ; No predecessors!
  br label %565

565:                                              ; preds = %564
  br label %566

566:                                              ; preds = %565, %508
  br label %567

567:                                              ; preds = %566
  br label %568

568:                                              ; preds = %567
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #10
  %569 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %569, ptr %15, align 8, !tbaa !9
  %570 = load ptr, ptr %15, align 8, !tbaa !9
  %571 = getelementptr inbounds %struct.s2n_connection, ptr %570, i32 0, i32 23
  store i8 33, ptr %571, align 4, !tbaa !19
  br label %572

572:                                              ; preds = %568
  %573 = load i32, ptr @test_count, align 4, !tbaa !5
  %574 = add nsw i32 %573, 1
  store i32 %574, ptr @test_count, align 4, !tbaa !5
  %575 = load ptr, ptr %15, align 8, !tbaa !9
  %576 = getelementptr inbounds %struct.s2n_connection, ptr %575, i32 0, i32 52
  %577 = getelementptr inbounds %struct.s2n_handshake, ptr %576, i32 0, i32 12
  %578 = load i32, ptr %577, align 4, !tbaa !45
  %579 = icmp eq i32 %578, 2
  %580 = zext i1 %579 to i64
  %581 = select i1 %579, ptr @tls13_state_machine, ptr @state_machine
  %582 = icmp eq ptr %581, @state_machine
  br i1 %582, label %636, label %583

583:                                              ; preds = %572
  br label %584

584:                                              ; preds = %583
  br label %585

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

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

597:                                              ; preds = %592
  %598 = load i32, ptr %16, align 4, !tbaa !5
  %599 = call ptr @__errno_location() #11
  store i32 %598, ptr %599, align 4, !tbaa !5
  %600 = load ptr, ptr @stderr, align 8, !tbaa !9
  %601 = load i32, ptr @test_count, align 4, !tbaa !5
  %602 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %603 = load i32, ptr %602, align 4, !tbaa !5
  %604 = call ptr @s2n_strerror(i32 noundef %603, ptr noundef @.str.24)
  %605 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %606 = load i32, ptr %605, align 4, !tbaa !5
  %607 = call ptr @s2n_strerror_debug(i32 noundef %606, ptr noundef @.str.24)
  %608 = call ptr @__errno_location() #11
  %609 = load i32, ptr %608, align 4, !tbaa !5
  %610 = call ptr @strerror(i32 noundef %609) #10
  %611 = call ptr @__errno_location() #11
  %612 = load i32, ptr %611, align 4, !tbaa !5
  %613 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %600, ptr noundef @.str.22, i32 noundef %601, ptr noundef @.str.31, ptr noundef @.str.21, i32 noundef 110, ptr noundef %604, ptr noundef %607, ptr noundef %610, i32 noundef %612) #10
  br label %631

614:                                              ; preds = %592, %585
  %615 = load i32, ptr %16, align 4, !tbaa !5
  %616 = call ptr @__errno_location() #11
  store i32 %615, ptr %616, align 4, !tbaa !5
  %617 = load ptr, ptr @stderr, align 8, !tbaa !9
  %618 = load i32, ptr @test_count, align 4, !tbaa !5
  %619 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %620 = load i32, ptr %619, align 4, !tbaa !5
  %621 = call ptr @s2n_strerror(i32 noundef %620, ptr noundef @.str.24)
  %622 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %623 = load i32, ptr %622, align 4, !tbaa !5
  %624 = call ptr @s2n_strerror_debug(i32 noundef %623, ptr noundef @.str.24)
  %625 = call ptr @__errno_location() #11
  %626 = load i32, ptr %625, align 4, !tbaa !5
  %627 = call ptr @strerror(i32 noundef %626) #10
  %628 = call ptr @__errno_location() #11
  %629 = load i32, ptr %628, align 4, !tbaa !5
  %630 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %617, ptr noundef @.str.25, i32 noundef %618, ptr noundef @.str.31, ptr noundef @.str.21, i32 noundef 110, ptr noundef %621, ptr noundef %624, ptr noundef %627, i32 noundef %629) #10
  br label %631

631:                                              ; preds = %614, %597
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #10
  br label %632

632:                                              ; preds = %631
  br label %633

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

634:                                              ; No predecessors!
  br label %635

635:                                              ; preds = %634
  br label %636

636:                                              ; preds = %635, %572
  br label %637

637:                                              ; preds = %636
  br label %638

638:                                              ; preds = %637
  br label %639

639:                                              ; preds = %638
  %640 = load i32, ptr @test_count, align 4, !tbaa !5
  %641 = add nsw i32 %640, 1
  store i32 %641, ptr @test_count, align 4, !tbaa !5
  %642 = load ptr, ptr %15, align 8, !tbaa !9
  %643 = getelementptr inbounds %struct.s2n_connection, ptr %642, i32 0, i32 52
  %644 = getelementptr inbounds %struct.s2n_handshake, ptr %643, i32 0, i32 12
  %645 = load i32, ptr %644, align 4, !tbaa !45
  %646 = icmp eq i32 %645, 2
  %647 = zext i1 %646 to i64
  %648 = select i1 %646, ptr @tls13_handshakes, ptr @handshakes
  %649 = icmp eq ptr %648, @handshakes
  br i1 %649, label %703, label %650

650:                                              ; preds = %639
  br label %651

651:                                              ; preds = %650
  br label %652

652:                                              ; preds = %651
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #10
  %653 = call ptr @__errno_location() #11
  %654 = load i32, ptr %653, align 4, !tbaa !5
  store i32 %654, ptr %17, align 4, !tbaa !5
  %655 = load ptr, ptr @stderr, align 8, !tbaa !9
  %656 = call i32 @s2n_print_stacktrace(ptr noundef %655)
  %657 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %658 = trunc i8 %657 to i1
  br i1 %658, label %659, label %681

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

664:                                              ; preds = %659
  %665 = load i32, ptr %17, align 4, !tbaa !5
  %666 = call ptr @__errno_location() #11
  store i32 %665, ptr %666, align 4, !tbaa !5
  %667 = load ptr, ptr @stderr, align 8, !tbaa !9
  %668 = load i32, ptr @test_count, align 4, !tbaa !5
  %669 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %670 = load i32, ptr %669, align 4, !tbaa !5
  %671 = call ptr @s2n_strerror(i32 noundef %670, ptr noundef @.str.24)
  %672 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %673 = load i32, ptr %672, align 4, !tbaa !5
  %674 = call ptr @s2n_strerror_debug(i32 noundef %673, ptr noundef @.str.24)
  %675 = call ptr @__errno_location() #11
  %676 = load i32, ptr %675, align 4, !tbaa !5
  %677 = call ptr @strerror(i32 noundef %676) #10
  %678 = call ptr @__errno_location() #11
  %679 = load i32, ptr %678, align 4, !tbaa !5
  %680 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %667, ptr noundef @.str.22, i32 noundef %668, ptr noundef @.str.32, ptr noundef @.str.21, i32 noundef 111, ptr noundef %671, ptr noundef %674, ptr noundef %677, i32 noundef %679) #10
  br label %698

681:                                              ; preds = %659, %652
  %682 = load i32, ptr %17, align 4, !tbaa !5
  %683 = call ptr @__errno_location() #11
  store i32 %682, ptr %683, align 4, !tbaa !5
  %684 = load ptr, ptr @stderr, align 8, !tbaa !9
  %685 = load i32, ptr @test_count, align 4, !tbaa !5
  %686 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %687 = load i32, ptr %686, align 4, !tbaa !5
  %688 = call ptr @s2n_strerror(i32 noundef %687, ptr noundef @.str.24)
  %689 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %690 = load i32, ptr %689, align 4, !tbaa !5
  %691 = call ptr @s2n_strerror_debug(i32 noundef %690, ptr noundef @.str.24)
  %692 = call ptr @__errno_location() #11
  %693 = load i32, ptr %692, align 4, !tbaa !5
  %694 = call ptr @strerror(i32 noundef %693) #10
  %695 = call ptr @__errno_location() #11
  %696 = load i32, ptr %695, align 4, !tbaa !5
  %697 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %684, ptr noundef @.str.25, i32 noundef %685, ptr noundef @.str.32, ptr noundef @.str.21, i32 noundef 111, ptr noundef %688, ptr noundef %691, ptr noundef %694, i32 noundef %696) #10
  br label %698

698:                                              ; preds = %681, %664
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #10
  br label %699

699:                                              ; preds = %698
  br label %700

700:                                              ; preds = %699
  call void @exit(i32 noundef 1) #12
  unreachable

701:                                              ; No predecessors!
  br label %702

702:                                              ; preds = %701
  br label %703

703:                                              ; preds = %702, %639
  br label %704

704:                                              ; preds = %703
  br label %705

705:                                              ; preds = %704
  br label %706

706:                                              ; preds = %705
  %707 = load i32, ptr @test_count, align 4, !tbaa !5
  %708 = add nsw i32 %707, 1
  store i32 %708, ptr @test_count, align 4, !tbaa !5
  %709 = load ptr, ptr %15, align 8, !tbaa !9
  %710 = call i32 @s2n_connection_free(ptr noundef %709)
  %711 = icmp eq i32 %710, -1
  br i1 %711, label %712, label %765

712:                                              ; preds = %706
  br label %713

713:                                              ; preds = %712
  br label %714

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

721:                                              ; preds = %714
  %722 = load ptr, ptr @stderr, align 8, !tbaa !9
  %723 = call i32 @fileno(ptr noundef %722) #10
  %724 = call i32 @isatty(i32 noundef %723) #10
  %725 = icmp ne i32 %724, 0
  br i1 %725, label %726, label %743

726:                                              ; preds = %721
  %727 = load i32, ptr %18, align 4, !tbaa !5
  %728 = call ptr @__errno_location() #11
  store i32 %727, ptr %728, align 4, !tbaa !5
  %729 = load ptr, ptr @stderr, align 8, !tbaa !9
  %730 = load i32, ptr @test_count, align 4, !tbaa !5
  %731 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %732 = load i32, ptr %731, align 4, !tbaa !5
  %733 = call ptr @s2n_strerror(i32 noundef %732, ptr noundef @.str.24)
  %734 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %735 = load i32, ptr %734, align 4, !tbaa !5
  %736 = call ptr @s2n_strerror_debug(i32 noundef %735, ptr noundef @.str.24)
  %737 = call ptr @__errno_location() #11
  %738 = load i32, ptr %737, align 4, !tbaa !5
  %739 = call ptr @strerror(i32 noundef %738) #10
  %740 = call ptr @__errno_location() #11
  %741 = load i32, ptr %740, align 4, !tbaa !5
  %742 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %729, ptr noundef @.str.22, i32 noundef %730, ptr noundef @.str.33, ptr noundef @.str.21, i32 noundef 112, ptr noundef %733, ptr noundef %736, ptr noundef %739, i32 noundef %741) #10
  br label %760

743:                                              ; preds = %721, %714
  %744 = load i32, ptr %18, align 4, !tbaa !5
  %745 = call ptr @__errno_location() #11
  store i32 %744, ptr %745, align 4, !tbaa !5
  %746 = load ptr, ptr @stderr, align 8, !tbaa !9
  %747 = load i32, ptr @test_count, align 4, !tbaa !5
  %748 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %749 = load i32, ptr %748, align 4, !tbaa !5
  %750 = call ptr @s2n_strerror(i32 noundef %749, ptr noundef @.str.24)
  %751 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %752 = load i32, ptr %751, align 4, !tbaa !5
  %753 = call ptr @s2n_strerror_debug(i32 noundef %752, ptr noundef @.str.24)
  %754 = call ptr @__errno_location() #11
  %755 = load i32, ptr %754, align 4, !tbaa !5
  %756 = call ptr @strerror(i32 noundef %755) #10
  %757 = call ptr @__errno_location() #11
  %758 = load i32, ptr %757, align 4, !tbaa !5
  %759 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %746, ptr noundef @.str.25, i32 noundef %747, ptr noundef @.str.33, ptr noundef @.str.21, i32 noundef 112, ptr noundef %750, ptr noundef %753, ptr noundef %756, i32 noundef %758) #10
  br label %760

760:                                              ; preds = %743, %726
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #10
  br label %761

761:                                              ; preds = %760
  br label %762

762:                                              ; preds = %761
  call void @exit(i32 noundef 1) #12
  unreachable

763:                                              ; No predecessors!
  br label %764

764:                                              ; preds = %763
  br label %765

765:                                              ; preds = %764, %706
  br label %766

766:                                              ; preds = %765
  br label %767

767:                                              ; preds = %766
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #10
  %768 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %768, ptr %19, align 8, !tbaa !9
  %769 = load ptr, ptr %19, align 8, !tbaa !9
  %770 = getelementptr inbounds %struct.s2n_connection, ptr %769, i32 0, i32 23
  store i8 33, ptr %770, align 4, !tbaa !19
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #10
  store i32 0, ptr %20, align 4, !tbaa !5
  br label %771

771:                                              ; preds = %1018, %767
  %772 = load i32, ptr %20, align 4, !tbaa !5
  %773 = load i32, ptr %11, align 4, !tbaa !5
  %774 = icmp slt i32 %772, %773
  br i1 %774, label %776, label %775

775:                                              ; preds = %771
  store i32 63, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #10
  br label %1021

776:                                              ; preds = %771
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #10
  %777 = load i32, ptr %20, align 4, !tbaa !5
  %778 = sext i32 %777 to i64
  %779 = getelementptr inbounds [256 x i16], ptr %10, i64 0, i64 %778
  %780 = load i16, ptr %779, align 2, !tbaa !15
  %781 = zext i16 %780 to i32
  store i32 %781, ptr %22, align 4, !tbaa !5
  %782 = load i32, ptr %22, align 4, !tbaa !5
  %783 = load ptr, ptr %19, align 8, !tbaa !9
  %784 = getelementptr inbounds %struct.s2n_connection, ptr %783, i32 0, i32 52
  %785 = getelementptr inbounds %struct.s2n_handshake, ptr %784, i32 0, i32 6
  store i32 %782, ptr %785, align 4, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #10
  store i32 0, ptr %23, align 4, !tbaa !5
  br label %786

786:                                              ; preds = %1013, %776
  %787 = load i32, ptr %23, align 4, !tbaa !5
  %788 = icmp slt i32 %787, 32
  br i1 %788, label %790, label %789

789:                                              ; preds = %786
  store i32 66, ptr %21, align 4
  br label %1016

790:                                              ; preds = %786
  %791 = load i32, ptr %22, align 4, !tbaa !5
  %792 = sext i32 %791 to i64
  %793 = getelementptr inbounds [256 x [32 x i32]], ptr @handshakes, i64 0, i64 %792
  %794 = load i32, ptr %23, align 4, !tbaa !5
  %795 = sext i32 %794 to i64
  %796 = getelementptr inbounds [32 x i32], ptr %793, i64 0, i64 %795
  %797 = load i32, ptr %796, align 4, !tbaa !5
  %798 = icmp eq i32 %797, 11
  br i1 %798, label %799, label %1012

799:                                              ; preds = %790
  %800 = load i32, ptr %23, align 4, !tbaa !5
  %801 = sub nsw i32 %800, 1
  %802 = load ptr, ptr %19, align 8, !tbaa !9
  %803 = getelementptr inbounds %struct.s2n_connection, ptr %802, i32 0, i32 52
  %804 = getelementptr inbounds %struct.s2n_handshake, ptr %803, i32 0, i32 7
  store i32 %801, ptr %804, align 8, !tbaa !47
  br label %805

805:                                              ; preds = %799
  %806 = load i32, ptr @test_count, align 4, !tbaa !5
  %807 = add nsw i32 %806, 1
  store i32 %807, ptr @test_count, align 4, !tbaa !5
  %808 = load ptr, ptr %19, align 8, !tbaa !9
  %809 = call i32 @s2n_advance_message(ptr noundef %808)
  %810 = icmp eq i32 %809, -1
  br i1 %810, label %811, label %864

811:                                              ; preds = %805
  br label %812

812:                                              ; preds = %811
  br label %813

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

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

825:                                              ; preds = %820
  %826 = load i32, ptr %24, align 4, !tbaa !5
  %827 = call ptr @__errno_location() #11
  store i32 %826, ptr %827, align 4, !tbaa !5
  %828 = load ptr, ptr @stderr, align 8, !tbaa !9
  %829 = load i32, ptr @test_count, align 4, !tbaa !5
  %830 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %831 = load i32, ptr %830, align 4, !tbaa !5
  %832 = call ptr @s2n_strerror(i32 noundef %831, ptr noundef @.str.24)
  %833 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %834 = load i32, ptr %833, align 4, !tbaa !5
  %835 = call ptr @s2n_strerror_debug(i32 noundef %834, ptr noundef @.str.24)
  %836 = call ptr @__errno_location() #11
  %837 = load i32, ptr %836, align 4, !tbaa !5
  %838 = call ptr @strerror(i32 noundef %837) #10
  %839 = call ptr @__errno_location() #11
  %840 = load i32, ptr %839, align 4, !tbaa !5
  %841 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %828, ptr noundef @.str.22, i32 noundef %829, ptr noundef @.str.34, ptr noundef @.str.21, i32 noundef 129, ptr noundef %832, ptr noundef %835, ptr noundef %838, i32 noundef %840) #10
  br label %859

842:                                              ; preds = %820, %813
  %843 = load i32, ptr %24, align 4, !tbaa !5
  %844 = call ptr @__errno_location() #11
  store i32 %843, ptr %844, align 4, !tbaa !5
  %845 = load ptr, ptr @stderr, align 8, !tbaa !9
  %846 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %848, ptr noundef @.str.24)
  %850 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %851 = load i32, ptr %850, align 4, !tbaa !5
  %852 = call ptr @s2n_strerror_debug(i32 noundef %851, ptr noundef @.str.24)
  %853 = call ptr @__errno_location() #11
  %854 = load i32, ptr %853, align 4, !tbaa !5
  %855 = call ptr @strerror(i32 noundef %854) #10
  %856 = call ptr @__errno_location() #11
  %857 = load i32, ptr %856, align 4, !tbaa !5
  %858 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %845, ptr noundef @.str.25, i32 noundef %846, ptr noundef @.str.34, ptr noundef @.str.21, i32 noundef 129, ptr noundef %849, ptr noundef %852, ptr noundef %855, i32 noundef %857) #10
  br label %859

859:                                              ; preds = %842, %825
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #10
  br label %860

860:                                              ; preds = %859
  br label %861

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

862:                                              ; No predecessors!
  br label %863

863:                                              ; preds = %862
  br label %864

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

865:                                              ; preds = %864
  br label %866

866:                                              ; preds = %865
  br label %867

867:                                              ; preds = %866
  %868 = load i32, ptr @test_count, align 4, !tbaa !5
  %869 = add nsw i32 %868, 1
  store i32 %869, ptr @test_count, align 4, !tbaa !5
  %870 = load ptr, ptr %19, align 8, !tbaa !9
  %871 = getelementptr inbounds %struct.s2n_connection, ptr %870, i32 0, i32 52
  %872 = getelementptr inbounds %struct.s2n_handshake, ptr %871, i32 0, i32 7
  %873 = load i32, ptr %872, align 8, !tbaa !47
  %874 = load i32, ptr %23, align 4, !tbaa !5
  %875 = icmp eq i32 %873, %874
  br i1 %875, label %929, label %876

876:                                              ; preds = %867
  br label %877

877:                                              ; preds = %876
  br label %878

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

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

890:                                              ; preds = %885
  %891 = load i32, ptr %25, align 4, !tbaa !5
  %892 = call ptr @__errno_location() #11
  store i32 %891, ptr %892, align 4, !tbaa !5
  %893 = load ptr, ptr @stderr, align 8, !tbaa !9
  %894 = load i32, ptr @test_count, align 4, !tbaa !5
  %895 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %896 = load i32, ptr %895, align 4, !tbaa !5
  %897 = call ptr @s2n_strerror(i32 noundef %896, ptr noundef @.str.24)
  %898 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %899 = load i32, ptr %898, align 4, !tbaa !5
  %900 = call ptr @s2n_strerror_debug(i32 noundef %899, ptr noundef @.str.24)
  %901 = call ptr @__errno_location() #11
  %902 = load i32, ptr %901, align 4, !tbaa !5
  %903 = call ptr @strerror(i32 noundef %902) #10
  %904 = call ptr @__errno_location() #11
  %905 = load i32, ptr %904, align 4, !tbaa !5
  %906 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %893, ptr noundef @.str.22, i32 noundef %894, ptr noundef @.str.35, ptr noundef @.str.21, i32 noundef 131, ptr noundef %897, ptr noundef %900, ptr noundef %903, i32 noundef %905) #10
  br label %924

907:                                              ; preds = %885, %878
  %908 = load i32, ptr %25, align 4, !tbaa !5
  %909 = call ptr @__errno_location() #11
  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() #11
  %919 = load i32, ptr %918, align 4, !tbaa !5
  %920 = call ptr @strerror(i32 noundef %919) #10
  %921 = call ptr @__errno_location() #11
  %922 = load i32, ptr %921, align 4, !tbaa !5
  %923 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %910, ptr noundef @.str.25, i32 noundef %911, ptr noundef @.str.35, ptr noundef @.str.21, i32 noundef 131, ptr noundef %914, ptr noundef %917, ptr noundef %920, i32 noundef %922) #10
  br label %924

924:                                              ; preds = %907, %890
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #10
  br label %925

925:                                              ; preds = %924
  br label %926

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

927:                                              ; No predecessors!
  br label %928

928:                                              ; preds = %927
  br label %929

929:                                              ; preds = %928, %867
  br label %930

930:                                              ; preds = %929
  br label %931

931:                                              ; preds = %930
  br label %932

932:                                              ; preds = %931
  %933 = load i32, ptr @test_count, align 4, !tbaa !5
  %934 = add nsw i32 %933, 1
  store i32 %934, ptr @test_count, align 4, !tbaa !5
  %935 = load ptr, ptr %19, align 8, !tbaa !9
  %936 = getelementptr inbounds %struct.s2n_connection, ptr %935, i32 0, i32 52
  %937 = getelementptr inbounds %struct.s2n_handshake, ptr %936, i32 0, i32 12
  %938 = load i32, ptr %937, align 4, !tbaa !45
  %939 = icmp eq i32 %938, 2
  %940 = zext i1 %939 to i64
  %941 = select i1 %939, ptr @tls13_handshakes, ptr @handshakes
  %942 = load ptr, ptr %19, align 8, !tbaa !9
  %943 = getelementptr inbounds %struct.s2n_connection, ptr %942, i32 0, i32 52
  %944 = getelementptr inbounds %struct.s2n_handshake, ptr %943, i32 0, i32 6
  %945 = load i32, ptr %944, align 4, !tbaa !46
  %946 = zext i32 %945 to i64
  %947 = getelementptr inbounds [32 x i32], ptr %941, i64 %946
  %948 = load ptr, ptr %19, align 8, !tbaa !9
  %949 = getelementptr inbounds %struct.s2n_connection, ptr %948, i32 0, i32 52
  %950 = getelementptr inbounds %struct.s2n_handshake, ptr %949, i32 0, i32 7
  %951 = load i32, ptr %950, align 8, !tbaa !47
  %952 = sext i32 %951 to i64
  %953 = getelementptr inbounds [32 x i32], ptr %947, i64 0, i64 %952
  %954 = load i32, ptr %953, align 4, !tbaa !5
  %955 = icmp eq i32 %954, 11
  br i1 %955, label %1009, label %956

956:                                              ; preds = %932
  br label %957

957:                                              ; preds = %956
  br label %958

958:                                              ; preds = %957
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #10
  %959 = call ptr @__errno_location() #11
  %960 = load i32, ptr %959, align 4, !tbaa !5
  store i32 %960, ptr %26, 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) #10
  %968 = call i32 @isatty(i32 noundef %967) #10
  %969 = icmp ne i32 %968, 0
  br i1 %969, label %970, label %987

970:                                              ; preds = %965
  %971 = load i32, ptr %26, align 4, !tbaa !5
  %972 = call ptr @__errno_location() #11
  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() #11
  %982 = load i32, ptr %981, align 4, !tbaa !5
  %983 = call ptr @strerror(i32 noundef %982) #10
  %984 = call ptr @__errno_location() #11
  %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 132, ptr noundef %977, ptr noundef %980, ptr noundef %983, i32 noundef %985) #10
  br label %1004

987:                                              ; preds = %965, %958
  %988 = load i32, ptr %26, align 4, !tbaa !5
  %989 = call ptr @__errno_location() #11
  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() #11
  %999 = load i32, ptr %998, align 4, !tbaa !5
  %1000 = call ptr @strerror(i32 noundef %999) #10
  %1001 = call ptr @__errno_location() #11
  %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 132, ptr noundef %994, ptr noundef %997, ptr noundef %1000, i32 noundef %1002) #10
  br label %1004

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

1005:                                             ; preds = %1004
  br label %1006

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

1007:                                             ; No predecessors!
  br label %1008

1008:                                             ; preds = %1007
  br label %1009

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

1010:                                             ; preds = %1009
  br label %1011

1011:                                             ; preds = %1010
  store i32 66, ptr %21, align 4
  br label %1016

1012:                                             ; preds = %790
  br label %1013

1013:                                             ; preds = %1012
  %1014 = load i32, ptr %23, align 4, !tbaa !5
  %1015 = add nsw i32 %1014, 1
  store i32 %1015, ptr %23, align 4, !tbaa !5
  br label %786, !llvm.loop !48

1016:                                             ; preds = %1011, %789
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #10
  br label %1017

1017:                                             ; preds = %1016
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #10
  br label %1018

1018:                                             ; preds = %1017
  %1019 = load i32, ptr %20, align 4, !tbaa !5
  %1020 = add nsw i32 %1019, 1
  store i32 %1020, ptr %20, align 4, !tbaa !5
  br label %771, !llvm.loop !49

1021:                                             ; preds = %775
  br label %1022

1022:                                             ; preds = %1021
  %1023 = load i32, ptr @test_count, align 4, !tbaa !5
  %1024 = add nsw i32 %1023, 1
  store i32 %1024, ptr @test_count, align 4, !tbaa !5
  %1025 = load ptr, ptr %19, align 8, !tbaa !9
  %1026 = call i32 @s2n_connection_free(ptr noundef %1025)
  %1027 = icmp eq i32 %1026, -1
  br i1 %1027, label %1028, label %1081

1028:                                             ; preds = %1022
  br label %1029

1029:                                             ; preds = %1028
  br label %1030

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

1037:                                             ; preds = %1030
  %1038 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1039 = call i32 @fileno(ptr noundef %1038) #10
  %1040 = call i32 @isatty(i32 noundef %1039) #10
  %1041 = icmp ne i32 %1040, 0
  br i1 %1041, label %1042, label %1059

1042:                                             ; preds = %1037
  %1043 = load i32, ptr %27, align 4, !tbaa !5
  %1044 = call ptr @__errno_location() #11
  store i32 %1043, ptr %1044, align 4, !tbaa !5
  %1045 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1046 = load i32, ptr @test_count, align 4, !tbaa !5
  %1047 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1048 = load i32, ptr %1047, align 4, !tbaa !5
  %1049 = call ptr @s2n_strerror(i32 noundef %1048, ptr noundef @.str.24)
  %1050 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1051 = load i32, ptr %1050, align 4, !tbaa !5
  %1052 = call ptr @s2n_strerror_debug(i32 noundef %1051, ptr noundef @.str.24)
  %1053 = call ptr @__errno_location() #11
  %1054 = load i32, ptr %1053, align 4, !tbaa !5
  %1055 = call ptr @strerror(i32 noundef %1054) #10
  %1056 = call ptr @__errno_location() #11
  %1057 = load i32, ptr %1056, align 4, !tbaa !5
  %1058 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1045, ptr noundef @.str.22, i32 noundef %1046, ptr noundef @.str.33, ptr noundef @.str.21, i32 noundef 139, ptr noundef %1049, ptr noundef %1052, ptr noundef %1055, i32 noundef %1057) #10
  br label %1076

1059:                                             ; preds = %1037, %1030
  %1060 = load i32, ptr %27, align 4, !tbaa !5
  %1061 = call ptr @__errno_location() #11
  store i32 %1060, ptr %1061, align 4, !tbaa !5
  %1062 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1063 = load i32, ptr @test_count, align 4, !tbaa !5
  %1064 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1065 = load i32, ptr %1064, align 4, !tbaa !5
  %1066 = call ptr @s2n_strerror(i32 noundef %1065, ptr noundef @.str.24)
  %1067 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1068 = load i32, ptr %1067, align 4, !tbaa !5
  %1069 = call ptr @s2n_strerror_debug(i32 noundef %1068, ptr noundef @.str.24)
  %1070 = call ptr @__errno_location() #11
  %1071 = load i32, ptr %1070, align 4, !tbaa !5
  %1072 = call ptr @strerror(i32 noundef %1071) #10
  %1073 = call ptr @__errno_location() #11
  %1074 = load i32, ptr %1073, align 4, !tbaa !5
  %1075 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1062, ptr noundef @.str.25, i32 noundef %1063, ptr noundef @.str.33, ptr noundef @.str.21, i32 noundef 139, ptr noundef %1066, ptr noundef %1069, ptr noundef %1072, i32 noundef %1074) #10
  br label %1076

1076:                                             ; preds = %1059, %1042
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #10
  br label %1077

1077:                                             ; preds = %1076
  br label %1078

1078:                                             ; preds = %1077
  call void @exit(i32 noundef 1) #12
  unreachable

1079:                                             ; No predecessors!
  br label %1080

1080:                                             ; preds = %1079
  br label %1081

1081:                                             ; preds = %1080, %1022
  br label %1082

1082:                                             ; preds = %1081
  br label %1083

1083:                                             ; preds = %1082
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #10
  store i32 0, ptr %28, align 4, !tbaa !5
  br label %1084

1084:                                             ; preds = %1253, %1083
  %1085 = load i32, ptr %28, align 4, !tbaa !5
  %1086 = load i32, ptr %11, align 4, !tbaa !5
  %1087 = icmp slt i32 %1085, %1086
  br i1 %1087, label %1089, label %1088

1088:                                             ; preds = %1084
  store i32 93, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #10
  br label %1256

1089:                                             ; preds = %1084
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #10
  %1090 = load i32, ptr %28, align 4, !tbaa !5
  %1091 = sext i32 %1090 to i64
  %1092 = getelementptr inbounds [256 x i16], ptr %10, i64 0, i64 %1091
  %1093 = load i16, ptr %1092, align 2, !tbaa !15
  %1094 = zext i16 %1093 to i32
  store i32 %1094, ptr %29, align 4, !tbaa !5
  %1095 = load i32, ptr %29, align 4, !tbaa !5
  %1096 = icmp eq i32 %1095, 0
  br i1 %1096, label %1097, label %1098

1097:                                             ; preds = %1089
  store i32 95, ptr %21, align 4
  br label %1250

1098:                                             ; preds = %1089
  call void @llvm.lifetime.start.p0(i64 1, ptr %30) #10
  store i8 0, ptr %30, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #10
  store i32 0, ptr %31, align 4, !tbaa !5
  br label %1099

1099:                                             ; preds = %1185, %1098
  %1100 = load i32, ptr %31, align 4, !tbaa !5
  %1101 = icmp slt i32 %1100, 32
  br i1 %1101, label %1103, label %1102

1102:                                             ; preds = %1099
  store i32 96, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #10
  br label %1188

1103:                                             ; preds = %1099
  %1104 = load i32, ptr %29, align 4, !tbaa !5
  %1105 = sext i32 %1104 to i64
  %1106 = getelementptr inbounds [256 x [32 x i32]], ptr @handshakes, i64 0, i64 %1105
  %1107 = load i32, ptr %31, align 4, !tbaa !5
  %1108 = sext i32 %1107 to i64
  %1109 = getelementptr inbounds [32 x i32], ptr %1106, i64 0, i64 %1108
  %1110 = load i32, ptr %1109, align 4, !tbaa !5
  %1111 = icmp eq i32 %1110, 11
  br i1 %1111, label %1112, label %1113

1112:                                             ; preds = %1103
  store i8 1, ptr %30, align 1, !tbaa !11
  br label %1113

1113:                                             ; preds = %1112, %1103
  %1114 = load i32, ptr %29, align 4, !tbaa !5
  %1115 = sext i32 %1114 to i64
  %1116 = getelementptr inbounds [256 x [32 x i32]], ptr @handshakes, i64 0, i64 %1115
  %1117 = load i32, ptr %31, align 4, !tbaa !5
  %1118 = sext i32 %1117 to i64
  %1119 = getelementptr inbounds [32 x i32], ptr %1116, i64 0, i64 %1118
  %1120 = load i32, ptr %1119, align 4, !tbaa !5
  %1121 = icmp eq i32 %1120, 13
  br i1 %1121, label %1122, label %1184

1122:                                             ; preds = %1113
  br label %1123

1123:                                             ; preds = %1122
  %1124 = load i32, ptr @test_count, align 4, !tbaa !5
  %1125 = add nsw i32 %1124, 1
  store i32 %1125, ptr @test_count, align 4, !tbaa !5
  %1126 = load i8, ptr %30, align 1, !tbaa !11, !range !13, !noundef !14
  %1127 = trunc i8 %1126 to i1
  br i1 %1127, label %1181, label %1128

1128:                                             ; preds = %1123
  br label %1129

1129:                                             ; preds = %1128
  br label %1130

1130:                                             ; preds = %1129
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #10
  %1131 = call ptr @__errno_location() #11
  %1132 = load i32, ptr %1131, align 4, !tbaa !5
  store i32 %1132, ptr %32, align 4, !tbaa !5
  %1133 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1134 = call i32 @s2n_print_stacktrace(ptr noundef %1133)
  %1135 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1136 = trunc i8 %1135 to i1
  br i1 %1136, label %1137, label %1159

1137:                                             ; preds = %1130
  %1138 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1139 = call i32 @fileno(ptr noundef %1138) #10
  %1140 = call i32 @isatty(i32 noundef %1139) #10
  %1141 = icmp ne i32 %1140, 0
  br i1 %1141, label %1142, label %1159

1142:                                             ; preds = %1137
  %1143 = load i32, ptr %32, align 4, !tbaa !5
  %1144 = call ptr @__errno_location() #11
  store i32 %1143, ptr %1144, align 4, !tbaa !5
  %1145 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1146 = load i32, ptr @test_count, align 4, !tbaa !5
  %1147 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1148 = load i32, ptr %1147, align 4, !tbaa !5
  %1149 = call ptr @s2n_strerror(i32 noundef %1148, ptr noundef @.str.24)
  %1150 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1151 = load i32, ptr %1150, align 4, !tbaa !5
  %1152 = call ptr @s2n_strerror_debug(i32 noundef %1151, ptr noundef @.str.24)
  %1153 = call ptr @__errno_location() #11
  %1154 = load i32, ptr %1153, align 4, !tbaa !5
  %1155 = call ptr @strerror(i32 noundef %1154) #10
  %1156 = call ptr @__errno_location() #11
  %1157 = load i32, ptr %1156, align 4, !tbaa !5
  %1158 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1145, ptr noundef @.str.22, i32 noundef %1146, ptr noundef @.str.37, ptr noundef @.str.21, i32 noundef 159, ptr noundef %1149, ptr noundef %1152, ptr noundef %1155, i32 noundef %1157) #10
  br label %1176

1159:                                             ; preds = %1137, %1130
  %1160 = load i32, ptr %32, align 4, !tbaa !5
  %1161 = call ptr @__errno_location() #11
  store i32 %1160, ptr %1161, align 4, !tbaa !5
  %1162 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1163 = load i32, ptr @test_count, align 4, !tbaa !5
  %1164 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1165 = load i32, ptr %1164, align 4, !tbaa !5
  %1166 = call ptr @s2n_strerror(i32 noundef %1165, ptr noundef @.str.24)
  %1167 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1168 = load i32, ptr %1167, align 4, !tbaa !5
  %1169 = call ptr @s2n_strerror_debug(i32 noundef %1168, ptr noundef @.str.24)
  %1170 = call ptr @__errno_location() #11
  %1171 = load i32, ptr %1170, align 4, !tbaa !5
  %1172 = call ptr @strerror(i32 noundef %1171) #10
  %1173 = call ptr @__errno_location() #11
  %1174 = load i32, ptr %1173, align 4, !tbaa !5
  %1175 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1162, ptr noundef @.str.25, i32 noundef %1163, ptr noundef @.str.37, ptr noundef @.str.21, i32 noundef 159, ptr noundef %1166, ptr noundef %1169, ptr noundef %1172, i32 noundef %1174) #10
  br label %1176

1176:                                             ; preds = %1159, %1142
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #10
  br label %1177

1177:                                             ; preds = %1176
  br label %1178

1178:                                             ; preds = %1177
  call void @exit(i32 noundef 1) #12
  unreachable

1179:                                             ; No predecessors!
  br label %1180

1180:                                             ; preds = %1179
  br label %1181

1181:                                             ; preds = %1180, %1123
  br label %1182

1182:                                             ; preds = %1181
  br label %1183

1183:                                             ; preds = %1182
  br label %1184

1184:                                             ; preds = %1183, %1113
  br label %1185

1185:                                             ; preds = %1184
  %1186 = load i32, ptr %31, align 4, !tbaa !5
  %1187 = add nsw i32 %1186, 1
  store i32 %1187, ptr %31, align 4, !tbaa !5
  br label %1099, !llvm.loop !50

1188:                                             ; preds = %1102
  br label %1189

1189:                                             ; preds = %1188
  %1190 = load i32, ptr @test_count, align 4, !tbaa !5
  %1191 = add nsw i32 %1190, 1
  store i32 %1191, ptr @test_count, align 4, !tbaa !5
  %1192 = load i8, ptr %30, align 1, !tbaa !11, !range !13, !noundef !14
  %1193 = trunc i8 %1192 to i1
  br i1 %1193, label %1247, label %1194

1194:                                             ; preds = %1189
  br label %1195

1195:                                             ; preds = %1194
  br label %1196

1196:                                             ; preds = %1195
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #10
  %1197 = call ptr @__errno_location() #11
  %1198 = load i32, ptr %1197, align 4, !tbaa !5
  store i32 %1198, ptr %33, align 4, !tbaa !5
  %1199 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1200 = call i32 @s2n_print_stacktrace(ptr noundef %1199)
  %1201 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1202 = trunc i8 %1201 to i1
  br i1 %1202, label %1203, label %1225

1203:                                             ; preds = %1196
  %1204 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1205 = call i32 @fileno(ptr noundef %1204) #10
  %1206 = call i32 @isatty(i32 noundef %1205) #10
  %1207 = icmp ne i32 %1206, 0
  br i1 %1207, label %1208, label %1225

1208:                                             ; preds = %1203
  %1209 = load i32, ptr %33, align 4, !tbaa !5
  %1210 = call ptr @__errno_location() #11
  store i32 %1209, ptr %1210, align 4, !tbaa !5
  %1211 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1212 = load i32, ptr @test_count, align 4, !tbaa !5
  %1213 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1214 = load i32, ptr %1213, align 4, !tbaa !5
  %1215 = call ptr @s2n_strerror(i32 noundef %1214, ptr noundef @.str.24)
  %1216 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1217 = load i32, ptr %1216, align 4, !tbaa !5
  %1218 = call ptr @s2n_strerror_debug(i32 noundef %1217, ptr noundef @.str.24)
  %1219 = call ptr @__errno_location() #11
  %1220 = load i32, ptr %1219, align 4, !tbaa !5
  %1221 = call ptr @strerror(i32 noundef %1220) #10
  %1222 = call ptr @__errno_location() #11
  %1223 = load i32, ptr %1222, align 4, !tbaa !5
  %1224 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1211, ptr noundef @.str.22, i32 noundef %1212, ptr noundef @.str.37, ptr noundef @.str.21, i32 noundef 163, ptr noundef %1215, ptr noundef %1218, ptr noundef %1221, i32 noundef %1223) #10
  br label %1242

1225:                                             ; preds = %1203, %1196
  %1226 = load i32, ptr %33, align 4, !tbaa !5
  %1227 = call ptr @__errno_location() #11
  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() #11
  %1237 = load i32, ptr %1236, align 4, !tbaa !5
  %1238 = call ptr @strerror(i32 noundef %1237) #10
  %1239 = call ptr @__errno_location() #11
  %1240 = load i32, ptr %1239, align 4, !tbaa !5
  %1241 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1228, ptr noundef @.str.25, i32 noundef %1229, ptr noundef @.str.37, ptr noundef @.str.21, i32 noundef 163, ptr noundef %1232, ptr noundef %1235, ptr noundef %1238, i32 noundef %1240) #10
  br label %1242

1242:                                             ; preds = %1225, %1208
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #10
  br label %1243

1243:                                             ; preds = %1242
  br label %1244

1244:                                             ; preds = %1243
  call void @exit(i32 noundef 1) #12
  unreachable

1245:                                             ; No predecessors!
  br label %1246

1246:                                             ; preds = %1245
  br label %1247

1247:                                             ; preds = %1246, %1189
  br label %1248

1248:                                             ; preds = %1247
  br label %1249

1249:                                             ; preds = %1248
  call void @llvm.lifetime.end.p0(i64 1, ptr %30) #10
  store i32 0, ptr %21, align 4
  br label %1250

1250:                                             ; preds = %1249, %1097
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #10
  %1251 = load i32, ptr %21, align 4
  switch i32 %1251, label %8414 [
    i32 0, label %1252
    i32 95, label %1253
  ]

1252:                                             ; preds = %1250
  br label %1253

1253:                                             ; preds = %1252, %1250
  %1254 = load i32, ptr %28, align 4, !tbaa !5
  %1255 = add nsw i32 %1254, 1
  store i32 %1255, ptr %28, align 4, !tbaa !5
  br label %1084, !llvm.loop !51

1256:                                             ; preds = %1088
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #10
  %1257 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %1257, ptr %34, align 8, !tbaa !9
  %1258 = load ptr, ptr %34, align 8, !tbaa !9
  %1259 = getelementptr inbounds %struct.s2n_connection, ptr %1258, i32 0, i32 23
  store i8 33, ptr %1259, align 4, !tbaa !19
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #10
  store i32 0, ptr %35, align 4, !tbaa !5
  br label %1260

1260:                                             ; preds = %1507, %1256
  %1261 = load i32, ptr %35, align 4, !tbaa !5
  %1262 = load i32, ptr %11, align 4, !tbaa !5
  %1263 = icmp slt i32 %1261, %1262
  br i1 %1263, label %1265, label %1264

1264:                                             ; preds = %1260
  store i32 111, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #10
  br label %1510

1265:                                             ; preds = %1260
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #10
  %1266 = load i32, ptr %35, align 4, !tbaa !5
  %1267 = sext i32 %1266 to i64
  %1268 = getelementptr inbounds [256 x i16], ptr %10, i64 0, i64 %1267
  %1269 = load i16, ptr %1268, align 2, !tbaa !15
  %1270 = zext i16 %1269 to i32
  store i32 %1270, ptr %36, align 4, !tbaa !5
  %1271 = load i32, ptr %36, align 4, !tbaa !5
  %1272 = load ptr, ptr %34, align 8, !tbaa !9
  %1273 = getelementptr inbounds %struct.s2n_connection, ptr %1272, i32 0, i32 52
  %1274 = getelementptr inbounds %struct.s2n_handshake, ptr %1273, i32 0, i32 6
  store i32 %1271, ptr %1274, align 4, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #10
  store i32 0, ptr %37, align 4, !tbaa !5
  br label %1275

1275:                                             ; preds = %1502, %1265
  %1276 = load i32, ptr %37, align 4, !tbaa !5
  %1277 = icmp slt i32 %1276, 32
  br i1 %1277, label %1279, label %1278

1278:                                             ; preds = %1275
  store i32 114, ptr %21, align 4
  br label %1505

1279:                                             ; preds = %1275
  %1280 = load i32, ptr %36, align 4, !tbaa !5
  %1281 = sext i32 %1280 to i64
  %1282 = getelementptr inbounds [256 x [32 x i32]], ptr @handshakes, i64 0, i64 %1281
  %1283 = load i32, ptr %37, align 4, !tbaa !5
  %1284 = sext i32 %1283 to i64
  %1285 = getelementptr inbounds [32 x i32], ptr %1282, i64 0, i64 %1284
  %1286 = load i32, ptr %1285, align 4, !tbaa !5
  %1287 = icmp eq i32 %1286, 14
  br i1 %1287, label %1288, label %1501

1288:                                             ; preds = %1279
  %1289 = load i32, ptr %37, align 4, !tbaa !5
  %1290 = sub nsw i32 %1289, 1
  %1291 = load ptr, ptr %34, align 8, !tbaa !9
  %1292 = getelementptr inbounds %struct.s2n_connection, ptr %1291, i32 0, i32 52
  %1293 = getelementptr inbounds %struct.s2n_handshake, ptr %1292, i32 0, i32 7
  store i32 %1290, ptr %1293, align 8, !tbaa !47
  br label %1294

1294:                                             ; preds = %1288
  %1295 = load i32, ptr @test_count, align 4, !tbaa !5
  %1296 = add nsw i32 %1295, 1
  store i32 %1296, ptr @test_count, align 4, !tbaa !5
  %1297 = load ptr, ptr %34, align 8, !tbaa !9
  %1298 = call i32 @s2n_advance_message(ptr noundef %1297)
  %1299 = icmp eq i32 %1298, -1
  br i1 %1299, label %1300, label %1353

1300:                                             ; preds = %1294
  br label %1301

1301:                                             ; preds = %1300
  br label %1302

1302:                                             ; preds = %1301
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #10
  %1303 = call ptr @__errno_location() #11
  %1304 = load i32, ptr %1303, align 4, !tbaa !5
  store i32 %1304, ptr %38, align 4, !tbaa !5
  %1305 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1306 = call i32 @s2n_print_stacktrace(ptr noundef %1305)
  %1307 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1308 = trunc i8 %1307 to i1
  br i1 %1308, label %1309, label %1331

1309:                                             ; preds = %1302
  %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
  %1313 = icmp ne i32 %1312, 0
  br i1 %1313, label %1314, label %1331

1314:                                             ; preds = %1309
  %1315 = load i32, ptr %38, align 4, !tbaa !5
  %1316 = call ptr @__errno_location() #11
  store i32 %1315, ptr %1316, align 4, !tbaa !5
  %1317 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1318 = load i32, ptr @test_count, align 4, !tbaa !5
  %1319 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1320 = load i32, ptr %1319, align 4, !tbaa !5
  %1321 = call ptr @s2n_strerror(i32 noundef %1320, ptr noundef @.str.24)
  %1322 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1323 = load i32, ptr %1322, align 4, !tbaa !5
  %1324 = call ptr @s2n_strerror_debug(i32 noundef %1323, ptr noundef @.str.24)
  %1325 = call ptr @__errno_location() #11
  %1326 = load i32, ptr %1325, align 4, !tbaa !5
  %1327 = call ptr @strerror(i32 noundef %1326) #10
  %1328 = call ptr @__errno_location() #11
  %1329 = load i32, ptr %1328, align 4, !tbaa !5
  %1330 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1317, ptr noundef @.str.22, i32 noundef %1318, ptr noundef @.str.34, ptr noundef @.str.21, i32 noundef 181, ptr noundef %1321, ptr noundef %1324, ptr noundef %1327, i32 noundef %1329) #10
  br label %1348

1331:                                             ; preds = %1309, %1302
  %1332 = load i32, ptr %38, align 4, !tbaa !5
  %1333 = call ptr @__errno_location() #11
  store i32 %1332, ptr %1333, align 4, !tbaa !5
  %1334 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1335 = load i32, ptr @test_count, align 4, !tbaa !5
  %1336 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1337 = load i32, ptr %1336, align 4, !tbaa !5
  %1338 = call ptr @s2n_strerror(i32 noundef %1337, ptr noundef @.str.24)
  %1339 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1340 = load i32, ptr %1339, align 4, !tbaa !5
  %1341 = call ptr @s2n_strerror_debug(i32 noundef %1340, ptr noundef @.str.24)
  %1342 = call ptr @__errno_location() #11
  %1343 = load i32, ptr %1342, align 4, !tbaa !5
  %1344 = call ptr @strerror(i32 noundef %1343) #10
  %1345 = call ptr @__errno_location() #11
  %1346 = load i32, ptr %1345, align 4, !tbaa !5
  %1347 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1334, ptr noundef @.str.25, i32 noundef %1335, ptr noundef @.str.34, ptr noundef @.str.21, i32 noundef 181, ptr noundef %1338, ptr noundef %1341, ptr noundef %1344, i32 noundef %1346) #10
  br label %1348

1348:                                             ; preds = %1331, %1314
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #10
  br label %1349

1349:                                             ; preds = %1348
  br label %1350

1350:                                             ; preds = %1349
  call void @exit(i32 noundef 1) #12
  unreachable

1351:                                             ; No predecessors!
  br label %1352

1352:                                             ; preds = %1351
  br label %1353

1353:                                             ; preds = %1352, %1294
  br label %1354

1354:                                             ; preds = %1353
  br label %1355

1355:                                             ; preds = %1354
  br label %1356

1356:                                             ; preds = %1355
  %1357 = load i32, ptr @test_count, align 4, !tbaa !5
  %1358 = add nsw i32 %1357, 1
  store i32 %1358, ptr @test_count, align 4, !tbaa !5
  %1359 = load ptr, ptr %34, align 8, !tbaa !9
  %1360 = getelementptr inbounds %struct.s2n_connection, ptr %1359, i32 0, i32 52
  %1361 = getelementptr inbounds %struct.s2n_handshake, ptr %1360, i32 0, i32 7
  %1362 = load i32, ptr %1361, align 8, !tbaa !47
  %1363 = load i32, ptr %37, align 4, !tbaa !5
  %1364 = icmp eq i32 %1362, %1363
  br i1 %1364, label %1418, label %1365

1365:                                             ; preds = %1356
  br label %1366

1366:                                             ; preds = %1365
  br label %1367

1367:                                             ; preds = %1366
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #10
  %1368 = call ptr @__errno_location() #11
  %1369 = load i32, ptr %1368, align 4, !tbaa !5
  store i32 %1369, ptr %39, align 4, !tbaa !5
  %1370 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1371 = call i32 @s2n_print_stacktrace(ptr noundef %1370)
  %1372 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1373 = trunc i8 %1372 to i1
  br i1 %1373, label %1374, label %1396

1374:                                             ; preds = %1367
  %1375 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1376 = call i32 @fileno(ptr noundef %1375) #10
  %1377 = call i32 @isatty(i32 noundef %1376) #10
  %1378 = icmp ne i32 %1377, 0
  br i1 %1378, label %1379, label %1396

1379:                                             ; preds = %1374
  %1380 = load i32, ptr %39, align 4, !tbaa !5
  %1381 = call ptr @__errno_location() #11
  store i32 %1380, ptr %1381, align 4, !tbaa !5
  %1382 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1383 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1385, ptr noundef @.str.24)
  %1387 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1388 = load i32, ptr %1387, align 4, !tbaa !5
  %1389 = call ptr @s2n_strerror_debug(i32 noundef %1388, ptr noundef @.str.24)
  %1390 = call ptr @__errno_location() #11
  %1391 = load i32, ptr %1390, align 4, !tbaa !5
  %1392 = call ptr @strerror(i32 noundef %1391) #10
  %1393 = call ptr @__errno_location() #11
  %1394 = load i32, ptr %1393, align 4, !tbaa !5
  %1395 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1382, ptr noundef @.str.22, i32 noundef %1383, ptr noundef @.str.35, ptr noundef @.str.21, i32 noundef 183, ptr noundef %1386, ptr noundef %1389, ptr noundef %1392, i32 noundef %1394) #10
  br label %1413

1396:                                             ; preds = %1374, %1367
  %1397 = load i32, ptr %39, align 4, !tbaa !5
  %1398 = call ptr @__errno_location() #11
  store i32 %1397, ptr %1398, align 4, !tbaa !5
  %1399 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1400 = load i32, ptr @test_count, align 4, !tbaa !5
  %1401 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1402 = load i32, ptr %1401, align 4, !tbaa !5
  %1403 = call ptr @s2n_strerror(i32 noundef %1402, ptr noundef @.str.24)
  %1404 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1405 = load i32, ptr %1404, align 4, !tbaa !5
  %1406 = call ptr @s2n_strerror_debug(i32 noundef %1405, ptr noundef @.str.24)
  %1407 = call ptr @__errno_location() #11
  %1408 = load i32, ptr %1407, align 4, !tbaa !5
  %1409 = call ptr @strerror(i32 noundef %1408) #10
  %1410 = call ptr @__errno_location() #11
  %1411 = load i32, ptr %1410, align 4, !tbaa !5
  %1412 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1399, ptr noundef @.str.25, i32 noundef %1400, ptr noundef @.str.35, ptr noundef @.str.21, i32 noundef 183, ptr noundef %1403, ptr noundef %1406, ptr noundef %1409, i32 noundef %1411) #10
  br label %1413

1413:                                             ; preds = %1396, %1379
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #10
  br label %1414

1414:                                             ; preds = %1413
  br label %1415

1415:                                             ; preds = %1414
  call void @exit(i32 noundef 1) #12
  unreachable

1416:                                             ; No predecessors!
  br label %1417

1417:                                             ; preds = %1416
  br label %1418

1418:                                             ; preds = %1417, %1356
  br label %1419

1419:                                             ; preds = %1418
  br label %1420

1420:                                             ; preds = %1419
  br label %1421

1421:                                             ; preds = %1420
  %1422 = load i32, ptr @test_count, align 4, !tbaa !5
  %1423 = add nsw i32 %1422, 1
  store i32 %1423, ptr @test_count, align 4, !tbaa !5
  %1424 = load ptr, ptr %34, align 8, !tbaa !9
  %1425 = getelementptr inbounds %struct.s2n_connection, ptr %1424, i32 0, i32 52
  %1426 = getelementptr inbounds %struct.s2n_handshake, ptr %1425, i32 0, i32 12
  %1427 = load i32, ptr %1426, align 4, !tbaa !45
  %1428 = icmp eq i32 %1427, 2
  %1429 = zext i1 %1428 to i64
  %1430 = select i1 %1428, ptr @tls13_handshakes, ptr @handshakes
  %1431 = load ptr, ptr %34, align 8, !tbaa !9
  %1432 = getelementptr inbounds %struct.s2n_connection, ptr %1431, i32 0, i32 52
  %1433 = getelementptr inbounds %struct.s2n_handshake, ptr %1432, i32 0, i32 6
  %1434 = load i32, ptr %1433, align 4, !tbaa !46
  %1435 = zext i32 %1434 to i64
  %1436 = getelementptr inbounds [32 x i32], ptr %1430, i64 %1435
  %1437 = load ptr, ptr %34, align 8, !tbaa !9
  %1438 = getelementptr inbounds %struct.s2n_connection, ptr %1437, i32 0, i32 52
  %1439 = getelementptr inbounds %struct.s2n_handshake, ptr %1438, i32 0, i32 7
  %1440 = load i32, ptr %1439, align 8, !tbaa !47
  %1441 = sext i32 %1440 to i64
  %1442 = getelementptr inbounds [32 x i32], ptr %1436, i64 0, i64 %1441
  %1443 = load i32, ptr %1442, align 4, !tbaa !5
  %1444 = icmp eq i32 %1443, 14
  br i1 %1444, label %1498, label %1445

1445:                                             ; preds = %1421
  br label %1446

1446:                                             ; preds = %1445
  br label %1447

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

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

1459:                                             ; preds = %1454
  %1460 = load i32, ptr %40, align 4, !tbaa !5
  %1461 = call ptr @__errno_location() #11
  store i32 %1460, ptr %1461, align 4, !tbaa !5
  %1462 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1463 = load i32, ptr @test_count, align 4, !tbaa !5
  %1464 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1465 = load i32, ptr %1464, align 4, !tbaa !5
  %1466 = call ptr @s2n_strerror(i32 noundef %1465, ptr noundef @.str.24)
  %1467 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1468 = load i32, ptr %1467, align 4, !tbaa !5
  %1469 = call ptr @s2n_strerror_debug(i32 noundef %1468, ptr noundef @.str.24)
  %1470 = call ptr @__errno_location() #11
  %1471 = load i32, ptr %1470, align 4, !tbaa !5
  %1472 = call ptr @strerror(i32 noundef %1471) #10
  %1473 = call ptr @__errno_location() #11
  %1474 = load i32, ptr %1473, align 4, !tbaa !5
  %1475 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1462, ptr noundef @.str.22, i32 noundef %1463, ptr noundef @.str.38, ptr noundef @.str.21, i32 noundef 184, ptr noundef %1466, ptr noundef %1469, ptr noundef %1472, i32 noundef %1474) #10
  br label %1493

1476:                                             ; preds = %1454, %1447
  %1477 = load i32, ptr %40, align 4, !tbaa !5
  %1478 = call ptr @__errno_location() #11
  store i32 %1477, ptr %1478, align 4, !tbaa !5
  %1479 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1480 = load i32, ptr @test_count, align 4, !tbaa !5
  %1481 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1482 = load i32, ptr %1481, align 4, !tbaa !5
  %1483 = call ptr @s2n_strerror(i32 noundef %1482, ptr noundef @.str.24)
  %1484 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1485 = load i32, ptr %1484, align 4, !tbaa !5
  %1486 = call ptr @s2n_strerror_debug(i32 noundef %1485, ptr noundef @.str.24)
  %1487 = call ptr @__errno_location() #11
  %1488 = load i32, ptr %1487, align 4, !tbaa !5
  %1489 = call ptr @strerror(i32 noundef %1488) #10
  %1490 = call ptr @__errno_location() #11
  %1491 = load i32, ptr %1490, align 4, !tbaa !5
  %1492 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1479, ptr noundef @.str.25, i32 noundef %1480, ptr noundef @.str.38, ptr noundef @.str.21, i32 noundef 184, ptr noundef %1483, ptr noundef %1486, ptr noundef %1489, i32 noundef %1491) #10
  br label %1493

1493:                                             ; preds = %1476, %1459
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #10
  br label %1494

1494:                                             ; preds = %1493
  br label %1495

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

1496:                                             ; No predecessors!
  br label %1497

1497:                                             ; preds = %1496
  br label %1498

1498:                                             ; preds = %1497, %1421
  br label %1499

1499:                                             ; preds = %1498
  br label %1500

1500:                                             ; preds = %1499
  store i32 114, ptr %21, align 4
  br label %1505

1501:                                             ; preds = %1279
  br label %1502

1502:                                             ; preds = %1501
  %1503 = load i32, ptr %37, align 4, !tbaa !5
  %1504 = add nsw i32 %1503, 1
  store i32 %1504, ptr %37, align 4, !tbaa !5
  br label %1275, !llvm.loop !52

1505:                                             ; preds = %1500, %1278
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #10
  br label %1506

1506:                                             ; preds = %1505
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #10
  br label %1507

1507:                                             ; preds = %1506
  %1508 = load i32, ptr %35, align 4, !tbaa !5
  %1509 = add nsw i32 %1508, 1
  store i32 %1509, ptr %35, align 4, !tbaa !5
  br label %1260, !llvm.loop !53

1510:                                             ; preds = %1264
  br label %1511

1511:                                             ; preds = %1510
  %1512 = load i32, ptr @test_count, align 4, !tbaa !5
  %1513 = add nsw i32 %1512, 1
  store i32 %1513, ptr @test_count, align 4, !tbaa !5
  %1514 = load ptr, ptr %34, align 8, !tbaa !9
  %1515 = call i32 @s2n_connection_free(ptr noundef %1514)
  %1516 = icmp eq i32 %1515, -1
  br i1 %1516, label %1517, label %1570

1517:                                             ; preds = %1511
  br label %1518

1518:                                             ; preds = %1517
  br label %1519

1519:                                             ; preds = %1518
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #10
  %1520 = call ptr @__errno_location() #11
  %1521 = load i32, ptr %1520, align 4, !tbaa !5
  store i32 %1521, ptr %41, align 4, !tbaa !5
  %1522 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1523 = call i32 @s2n_print_stacktrace(ptr noundef %1522)
  %1524 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1525 = trunc i8 %1524 to i1
  br i1 %1525, label %1526, label %1548

1526:                                             ; preds = %1519
  %1527 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1528 = call i32 @fileno(ptr noundef %1527) #10
  %1529 = call i32 @isatty(i32 noundef %1528) #10
  %1530 = icmp ne i32 %1529, 0
  br i1 %1530, label %1531, label %1548

1531:                                             ; preds = %1526
  %1532 = load i32, ptr %41, align 4, !tbaa !5
  %1533 = call ptr @__errno_location() #11
  store i32 %1532, ptr %1533, align 4, !tbaa !5
  %1534 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1535 = load i32, ptr @test_count, align 4, !tbaa !5
  %1536 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1537 = load i32, ptr %1536, align 4, !tbaa !5
  %1538 = call ptr @s2n_strerror(i32 noundef %1537, ptr noundef @.str.24)
  %1539 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1540 = load i32, ptr %1539, align 4, !tbaa !5
  %1541 = call ptr @s2n_strerror_debug(i32 noundef %1540, ptr noundef @.str.24)
  %1542 = call ptr @__errno_location() #11
  %1543 = load i32, ptr %1542, align 4, !tbaa !5
  %1544 = call ptr @strerror(i32 noundef %1543) #10
  %1545 = call ptr @__errno_location() #11
  %1546 = load i32, ptr %1545, align 4, !tbaa !5
  %1547 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1534, ptr noundef @.str.22, i32 noundef %1535, ptr noundef @.str.33, ptr noundef @.str.21, i32 noundef 191, ptr noundef %1538, ptr noundef %1541, ptr noundef %1544, i32 noundef %1546) #10
  br label %1565

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

1565:                                             ; preds = %1548, %1531
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #10
  br label %1566

1566:                                             ; preds = %1565
  br label %1567

1567:                                             ; preds = %1566
  call void @exit(i32 noundef 1) #12
  unreachable

1568:                                             ; No predecessors!
  br label %1569

1569:                                             ; preds = %1568
  br label %1570

1570:                                             ; preds = %1569, %1511
  br label %1571

1571:                                             ; preds = %1570
  br label %1572

1572:                                             ; preds = %1571
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #10
  %1573 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %1573, ptr %42, align 8, !tbaa !9
  %1574 = load ptr, ptr %42, align 8, !tbaa !9
  %1575 = getelementptr inbounds %struct.s2n_connection, ptr %1574, i32 0, i32 23
  store i8 33, ptr %1575, align 4, !tbaa !19
  call void @llvm.lifetime.start.p0(i64 40, ptr %43) #10
  call void @llvm.memset.p0.i64(ptr align 8 %43, i8 0, i64 40, i1 false)
  br label %1576

1576:                                             ; preds = %1572
  %1577 = load i32, ptr @test_count, align 4, !tbaa !5
  %1578 = add nsw i32 %1577, 1
  store i32 %1578, ptr @test_count, align 4, !tbaa !5
  %1579 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %43, i32 noundef 0)
  %1580 = icmp eq i32 %1579, -1
  br i1 %1580, label %1581, label %1634

1581:                                             ; preds = %1576
  br label %1582

1582:                                             ; preds = %1581
  br label %1583

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

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

1595:                                             ; preds = %1590
  %1596 = load i32, ptr %44, align 4, !tbaa !5
  %1597 = call ptr @__errno_location() #11
  store i32 %1596, ptr %1597, align 4, !tbaa !5
  %1598 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1599 = load i32, ptr @test_count, align 4, !tbaa !5
  %1600 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1601 = load i32, ptr %1600, align 4, !tbaa !5
  %1602 = call ptr @s2n_strerror(i32 noundef %1601, ptr noundef @.str.24)
  %1603 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1604 = load i32, ptr %1603, align 4, !tbaa !5
  %1605 = call ptr @s2n_strerror_debug(i32 noundef %1604, ptr noundef @.str.24)
  %1606 = call ptr @__errno_location() #11
  %1607 = load i32, ptr %1606, align 4, !tbaa !5
  %1608 = call ptr @strerror(i32 noundef %1607) #10
  %1609 = call ptr @__errno_location() #11
  %1610 = load i32, ptr %1609, align 4, !tbaa !5
  %1611 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1598, ptr noundef @.str.22, i32 noundef %1599, ptr noundef @.str.39, ptr noundef @.str.21, i32 noundef 201, ptr noundef %1602, ptr noundef %1605, ptr noundef %1608, i32 noundef %1610) #10
  br label %1629

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

1629:                                             ; preds = %1612, %1595
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #10
  br label %1630

1630:                                             ; preds = %1629
  br label %1631

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

1632:                                             ; No predecessors!
  br label %1633

1633:                                             ; preds = %1632
  br label %1634

1634:                                             ; preds = %1633, %1576
  br label %1635

1635:                                             ; preds = %1634
  br label %1636

1636:                                             ; preds = %1635
  br label %1637

1637:                                             ; preds = %1636
  %1638 = load i32, ptr @test_count, align 4, !tbaa !5
  %1639 = add nsw i32 %1638, 1
  store i32 %1639, ptr @test_count, align 4, !tbaa !5
  %1640 = load ptr, ptr %42, align 8, !tbaa !9
  %1641 = call i32 @s2n_connection_set_io_stuffers(ptr noundef %43, ptr noundef null, ptr noundef %1640)
  %1642 = icmp eq i32 %1641, -1
  br i1 %1642, label %1643, label %1696

1643:                                             ; preds = %1637
  br label %1644

1644:                                             ; preds = %1643
  br label %1645

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

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

1657:                                             ; preds = %1652
  %1658 = load i32, ptr %45, align 4, !tbaa !5
  %1659 = call ptr @__errno_location() #11
  store i32 %1658, ptr %1659, align 4, !tbaa !5
  %1660 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1661 = load i32, ptr @test_count, align 4, !tbaa !5
  %1662 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1663 = load i32, ptr %1662, align 4, !tbaa !5
  %1664 = call ptr @s2n_strerror(i32 noundef %1663, ptr noundef @.str.24)
  %1665 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1666 = load i32, ptr %1665, align 4, !tbaa !5
  %1667 = call ptr @s2n_strerror_debug(i32 noundef %1666, ptr noundef @.str.24)
  %1668 = call ptr @__errno_location() #11
  %1669 = load i32, ptr %1668, align 4, !tbaa !5
  %1670 = call ptr @strerror(i32 noundef %1669) #10
  %1671 = call ptr @__errno_location() #11
  %1672 = load i32, ptr %1671, align 4, !tbaa !5
  %1673 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1660, ptr noundef @.str.22, i32 noundef %1661, ptr noundef @.str.40, ptr noundef @.str.21, i32 noundef 202, ptr noundef %1664, ptr noundef %1667, ptr noundef %1670, i32 noundef %1672) #10
  br label %1691

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

1691:                                             ; preds = %1674, %1657
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #10
  br label %1692

1692:                                             ; preds = %1691
  br label %1693

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

1694:                                             ; No predecessors!
  br label %1695

1695:                                             ; preds = %1694
  br label %1696

1696:                                             ; preds = %1695, %1637
  br label %1697

1697:                                             ; preds = %1696
  br label %1698

1698:                                             ; preds = %1697
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #10
  store i32 0, ptr %46, align 4, !tbaa !5
  br label %1699

1699:                                             ; preds = %2427, %1698
  %1700 = load i32, ptr %46, align 4, !tbaa !5
  %1701 = load i32, ptr %11, align 4, !tbaa !5
  %1702 = icmp slt i32 %1700, %1701
  br i1 %1702, label %1704, label %1703

1703:                                             ; preds = %1699
  store i32 153, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #10
  br label %2430

1704:                                             ; preds = %1699
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #10
  %1705 = load i32, ptr %46, align 4, !tbaa !5
  %1706 = sext i32 %1705 to i64
  %1707 = getelementptr inbounds [256 x i16], ptr %10, i64 0, i64 %1706
  %1708 = load i16, ptr %1707, align 2, !tbaa !15
  %1709 = zext i16 %1708 to i32
  store i32 %1709, ptr %47, align 4, !tbaa !5
  %1710 = load i32, ptr %47, align 4, !tbaa !5
  %1711 = load ptr, ptr %42, align 8, !tbaa !9
  %1712 = getelementptr inbounds %struct.s2n_connection, ptr %1711, i32 0, i32 52
  %1713 = getelementptr inbounds %struct.s2n_handshake, ptr %1712, i32 0, i32 6
  store i32 %1710, ptr %1713, align 4, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #10
  store i32 1, ptr %48, align 4, !tbaa !5
  br label %1714

1714:                                             ; preds = %2423, %1704
  %1715 = load i32, ptr %48, align 4, !tbaa !5
  %1716 = icmp slt i32 %1715, 32
  br i1 %1716, label %1718, label %1717

1717:                                             ; preds = %1714
  store i32 156, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #10
  br label %2426

1718:                                             ; preds = %1714
  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 = call i32 @s2n_setup_handler_to_expect(i32 noundef 14, i8 noundef zeroext 1)
  %1723 = icmp eq i32 %1722, -1
  br i1 %1723, label %1724, label %1777

1724:                                             ; preds = %1719
  br label %1725

1725:                                             ; preds = %1724
  br label %1726

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

1733:                                             ; preds = %1726
  %1734 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1735 = call i32 @fileno(ptr noundef %1734) #10
  %1736 = call i32 @isatty(i32 noundef %1735) #10
  %1737 = icmp ne i32 %1736, 0
  br i1 %1737, label %1738, label %1755

1738:                                             ; preds = %1733
  %1739 = load i32, ptr %49, align 4, !tbaa !5
  %1740 = call ptr @__errno_location() #11
  store i32 %1739, ptr %1740, align 4, !tbaa !5
  %1741 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1742 = load i32, ptr @test_count, align 4, !tbaa !5
  %1743 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1744 = load i32, ptr %1743, align 4, !tbaa !5
  %1745 = call ptr @s2n_strerror(i32 noundef %1744, ptr noundef @.str.24)
  %1746 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1747 = load i32, ptr %1746, align 4, !tbaa !5
  %1748 = call ptr @s2n_strerror_debug(i32 noundef %1747, ptr noundef @.str.24)
  %1749 = call ptr @__errno_location() #11
  %1750 = load i32, ptr %1749, align 4, !tbaa !5
  %1751 = call ptr @strerror(i32 noundef %1750) #10
  %1752 = call ptr @__errno_location() #11
  %1753 = load i32, ptr %1752, align 4, !tbaa !5
  %1754 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1741, ptr noundef @.str.22, i32 noundef %1742, ptr noundef @.str.41, ptr noundef @.str.21, i32 noundef 210, ptr noundef %1745, ptr noundef %1748, ptr noundef %1751, i32 noundef %1753) #10
  br label %1772

1755:                                             ; preds = %1733, %1726
  %1756 = load i32, ptr %49, align 4, !tbaa !5
  %1757 = call ptr @__errno_location() #11
  store i32 %1756, ptr %1757, align 4, !tbaa !5
  %1758 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1759 = load i32, ptr @test_count, align 4, !tbaa !5
  %1760 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1761 = load i32, ptr %1760, align 4, !tbaa !5
  %1762 = call ptr @s2n_strerror(i32 noundef %1761, ptr noundef @.str.24)
  %1763 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1764 = load i32, ptr %1763, align 4, !tbaa !5
  %1765 = call ptr @s2n_strerror_debug(i32 noundef %1764, ptr noundef @.str.24)
  %1766 = call ptr @__errno_location() #11
  %1767 = load i32, ptr %1766, align 4, !tbaa !5
  %1768 = call ptr @strerror(i32 noundef %1767) #10
  %1769 = call ptr @__errno_location() #11
  %1770 = load i32, ptr %1769, align 4, !tbaa !5
  %1771 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1758, ptr noundef @.str.25, i32 noundef %1759, ptr noundef @.str.41, ptr noundef @.str.21, i32 noundef 210, ptr noundef %1762, ptr noundef %1765, ptr noundef %1768, i32 noundef %1770) #10
  br label %1772

1772:                                             ; preds = %1755, %1738
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #10
  br label %1773

1773:                                             ; preds = %1772
  br label %1774

1774:                                             ; preds = %1773
  call void @exit(i32 noundef 1) #12
  unreachable

1775:                                             ; No predecessors!
  br label %1776

1776:                                             ; preds = %1775
  br label %1777

1777:                                             ; preds = %1776, %1719
  br label %1778

1778:                                             ; preds = %1777
  br label %1779

1779:                                             ; preds = %1778
  %1780 = load i32, ptr %48, align 4, !tbaa !5
  %1781 = load ptr, ptr %42, align 8, !tbaa !9
  %1782 = getelementptr inbounds %struct.s2n_connection, ptr %1781, i32 0, i32 52
  %1783 = getelementptr inbounds %struct.s2n_handshake, ptr %1782, i32 0, i32 7
  store i32 %1780, ptr %1783, align 8, !tbaa !47
  %1784 = load ptr, ptr %42, align 8, !tbaa !9
  %1785 = getelementptr inbounds %struct.s2n_connection, ptr %1784, i32 0, i32 42
  store i32 0, ptr %1785, align 8, !tbaa !54
  br label %1786

1786:                                             ; preds = %1779
  %1787 = load i32, ptr @test_count, align 4, !tbaa !5
  %1788 = add nsw i32 %1787, 1
  store i32 %1788, ptr @test_count, align 4, !tbaa !5
  %1789 = call i32 @s2n_test_write_header(ptr noundef %43, i8 noundef zeroext 20, i8 noundef zeroext 0)
  %1790 = icmp eq i32 %1789, -1
  br i1 %1790, label %1791, label %1844

1791:                                             ; preds = %1786
  br label %1792

1792:                                             ; preds = %1791
  br label %1793

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

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

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

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

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

1840:                                             ; preds = %1839
  br label %1841

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

1842:                                             ; No predecessors!
  br label %1843

1843:                                             ; preds = %1842
  br label %1844

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

1845:                                             ; preds = %1844
  br label %1846

1846:                                             ; preds = %1845
  %1847 = load i32, ptr %47, align 4, !tbaa !5
  %1848 = sext i32 %1847 to i64
  %1849 = getelementptr inbounds [256 x [32 x i32]], ptr @handshakes, i64 0, i64 %1848
  %1850 = load i32, ptr %48, align 4, !tbaa !5
  %1851 = sext i32 %1850 to i64
  %1852 = getelementptr inbounds [32 x i32], ptr %1849, i64 0, i64 %1851
  %1853 = load i32, ptr %1852, align 4, !tbaa !5
  %1854 = icmp eq i32 %1853, 14
  br i1 %1854, label %1855, label %2040

1855:                                             ; preds = %1846
  br label %1856

1856:                                             ; preds = %1855
  %1857 = load i32, ptr @test_count, align 4, !tbaa !5
  %1858 = add nsw i32 %1857, 1
  store i32 %1858, ptr @test_count, align 4, !tbaa !5
  %1859 = load ptr, ptr %42, align 8, !tbaa !9
  %1860 = call i32 @s2n_handshake_read_io(ptr noundef %1859)
  %1861 = icmp eq i32 %1860, -1
  br i1 %1861, label %1862, label %1915

1862:                                             ; preds = %1856
  br label %1863

1863:                                             ; preds = %1862
  br label %1864

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

1871:                                             ; preds = %1864
  %1872 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1873 = call i32 @fileno(ptr noundef %1872) #10
  %1874 = call i32 @isatty(i32 noundef %1873) #10
  %1875 = icmp ne i32 %1874, 0
  br i1 %1875, label %1876, label %1893

1876:                                             ; preds = %1871
  %1877 = load i32, ptr %51, align 4, !tbaa !5
  %1878 = call ptr @__errno_location() #11
  store i32 %1877, ptr %1878, align 4, !tbaa !5
  %1879 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1880 = load i32, ptr @test_count, align 4, !tbaa !5
  %1881 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1882 = load i32, ptr %1881, align 4, !tbaa !5
  %1883 = call ptr @s2n_strerror(i32 noundef %1882, ptr noundef @.str.24)
  %1884 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1885 = load i32, ptr %1884, align 4, !tbaa !5
  %1886 = call ptr @s2n_strerror_debug(i32 noundef %1885, ptr noundef @.str.24)
  %1887 = call ptr @__errno_location() #11
  %1888 = load i32, ptr %1887, align 4, !tbaa !5
  %1889 = call ptr @strerror(i32 noundef %1888) #10
  %1890 = call ptr @__errno_location() #11
  %1891 = load i32, ptr %1890, align 4, !tbaa !5
  %1892 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1879, ptr noundef @.str.22, i32 noundef %1880, ptr noundef @.str.43, ptr noundef @.str.21, i32 noundef 217, ptr noundef %1883, ptr noundef %1886, ptr noundef %1889, i32 noundef %1891) #10
  br label %1910

1893:                                             ; preds = %1871, %1864
  %1894 = load i32, ptr %51, align 4, !tbaa !5
  %1895 = call ptr @__errno_location() #11
  store i32 %1894, ptr %1895, align 4, !tbaa !5
  %1896 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1897 = load i32, ptr @test_count, align 4, !tbaa !5
  %1898 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1899 = load i32, ptr %1898, align 4, !tbaa !5
  %1900 = call ptr @s2n_strerror(i32 noundef %1899, ptr noundef @.str.24)
  %1901 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1902 = load i32, ptr %1901, align 4, !tbaa !5
  %1903 = call ptr @s2n_strerror_debug(i32 noundef %1902, ptr noundef @.str.24)
  %1904 = call ptr @__errno_location() #11
  %1905 = load i32, ptr %1904, align 4, !tbaa !5
  %1906 = call ptr @strerror(i32 noundef %1905) #10
  %1907 = call ptr @__errno_location() #11
  %1908 = load i32, ptr %1907, align 4, !tbaa !5
  %1909 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1896, ptr noundef @.str.25, i32 noundef %1897, ptr noundef @.str.43, ptr noundef @.str.21, i32 noundef 217, ptr noundef %1900, ptr noundef %1903, ptr noundef %1906, i32 noundef %1908) #10
  br label %1910

1910:                                             ; preds = %1893, %1876
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #10
  br label %1911

1911:                                             ; preds = %1910
  br label %1912

1912:                                             ; preds = %1911
  call void @exit(i32 noundef 1) #12
  unreachable

1913:                                             ; No predecessors!
  br label %1914

1914:                                             ; preds = %1913
  br label %1915

1915:                                             ; preds = %1914, %1856
  br label %1916

1916:                                             ; preds = %1915
  br label %1917

1917:                                             ; preds = %1916
  br label %1918

1918:                                             ; preds = %1917
  %1919 = load i32, ptr @test_count, align 4, !tbaa !5
  %1920 = add nsw i32 %1919, 1
  store i32 %1920, ptr @test_count, align 4, !tbaa !5
  %1921 = load i32, ptr @expected_handler_called, align 4, !tbaa !5
  %1922 = icmp ne i32 %1921, 0
  br i1 %1922, label %1976, label %1923

1923:                                             ; preds = %1918
  br label %1924

1924:                                             ; preds = %1923
  br label %1925

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

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

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

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

1971:                                             ; preds = %1954, %1937
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #10
  br label %1972

1972:                                             ; preds = %1971
  br label %1973

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

1974:                                             ; No predecessors!
  br label %1975

1975:                                             ; preds = %1974
  br label %1976

1976:                                             ; preds = %1975, %1918
  br label %1977

1977:                                             ; preds = %1976
  br label %1978

1978:                                             ; preds = %1977
  br label %1979

1979:                                             ; preds = %1978
  %1980 = load i32, ptr @test_count, align 4, !tbaa !5
  %1981 = add nsw i32 %1980, 1
  store i32 %1981, ptr @test_count, align 4, !tbaa !5
  %1982 = load i32, ptr @unexpected_handler_called, align 4, !tbaa !5
  %1983 = icmp ne i32 %1982, 0
  br i1 %1983, label %1984, label %2037

1984:                                             ; preds = %1979
  br label %1985

1985:                                             ; preds = %1984
  br label %1986

1986:                                             ; preds = %1985
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #10
  %1987 = call ptr @__errno_location() #11
  %1988 = load i32, ptr %1987, align 4, !tbaa !5
  store i32 %1988, ptr %53, 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) #10
  %1996 = call i32 @isatty(i32 noundef %1995) #10
  %1997 = icmp ne i32 %1996, 0
  br i1 %1997, label %1998, label %2015

1998:                                             ; preds = %1993
  %1999 = load i32, ptr %53, align 4, !tbaa !5
  %2000 = call ptr @__errno_location() #11
  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() #11
  %2010 = load i32, ptr %2009, align 4, !tbaa !5
  %2011 = call ptr @strerror(i32 noundef %2010) #10
  %2012 = call ptr @__errno_location() #11
  %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.45, ptr noundef @.str.21, i32 noundef 219, ptr noundef %2005, ptr noundef %2008, ptr noundef %2011, i32 noundef %2013) #10
  br label %2032

2015:                                             ; preds = %1993, %1986
  %2016 = load i32, ptr %53, align 4, !tbaa !5
  %2017 = call ptr @__errno_location() #11
  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() #11
  %2027 = load i32, ptr %2026, align 4, !tbaa !5
  %2028 = call ptr @strerror(i32 noundef %2027) #10
  %2029 = call ptr @__errno_location() #11
  %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.45, ptr noundef @.str.21, i32 noundef 219, ptr noundef %2022, ptr noundef %2025, ptr noundef %2028, i32 noundef %2030) #10
  br label %2032

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

2033:                                             ; preds = %2032
  br label %2034

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

2035:                                             ; No predecessors!
  br label %2036

2036:                                             ; preds = %2035
  br label %2037

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

2038:                                             ; preds = %2037
  br label %2039

2039:                                             ; preds = %2038
  br label %2361

2040:                                             ; preds = %1846
  br label %2041

2041:                                             ; preds = %2040
  br label %2042

2042:                                             ; preds = %2041
  br label %2043

2043:                                             ; preds = %2042
  %2044 = load i32, ptr @test_count, align 4, !tbaa !5
  %2045 = add nsw i32 %2044, 1
  store i32 %2045, ptr @test_count, align 4, !tbaa !5
  %2046 = load ptr, ptr %42, align 8, !tbaa !9
  %2047 = call i32 @s2n_handshake_read_io(ptr noundef %2046)
  %2048 = icmp eq i32 %2047, -1
  br i1 %2048, label %2102, label %2049

2049:                                             ; preds = %2043
  br label %2050

2050:                                             ; preds = %2049
  br label %2051

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

2058:                                             ; preds = %2051
  %2059 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2060 = call i32 @fileno(ptr noundef %2059) #10
  %2061 = call i32 @isatty(i32 noundef %2060) #10
  %2062 = icmp ne i32 %2061, 0
  br i1 %2062, label %2063, label %2080

2063:                                             ; preds = %2058
  %2064 = load i32, ptr %54, align 4, !tbaa !5
  %2065 = call ptr @__errno_location() #11
  store i32 %2064, ptr %2065, align 4, !tbaa !5
  %2066 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2067 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %2069, ptr noundef @.str.24)
  %2071 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2072 = load i32, ptr %2071, align 4, !tbaa !5
  %2073 = call ptr @s2n_strerror_debug(i32 noundef %2072, ptr noundef @.str.24)
  %2074 = call ptr @__errno_location() #11
  %2075 = load i32, ptr %2074, align 4, !tbaa !5
  %2076 = call ptr @strerror(i32 noundef %2075) #10
  %2077 = call ptr @__errno_location() #11
  %2078 = load i32, ptr %2077, align 4, !tbaa !5
  %2079 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2066, ptr noundef @.str.22, i32 noundef %2067, ptr noundef @.str.46, ptr noundef @.str.21, i32 noundef 221, ptr noundef %2070, ptr noundef %2073, ptr noundef %2076, i32 noundef %2078) #10
  br label %2097

2080:                                             ; preds = %2058, %2051
  %2081 = load i32, ptr %54, align 4, !tbaa !5
  %2082 = call ptr @__errno_location() #11
  store i32 %2081, ptr %2082, align 4, !tbaa !5
  %2083 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2084 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %2086, ptr noundef @.str.24)
  %2088 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2089 = load i32, ptr %2088, align 4, !tbaa !5
  %2090 = call ptr @s2n_strerror_debug(i32 noundef %2089, ptr noundef @.str.24)
  %2091 = call ptr @__errno_location() #11
  %2092 = load i32, ptr %2091, align 4, !tbaa !5
  %2093 = call ptr @strerror(i32 noundef %2092) #10
  %2094 = call ptr @__errno_location() #11
  %2095 = load i32, ptr %2094, align 4, !tbaa !5
  %2096 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2083, ptr noundef @.str.25, i32 noundef %2084, ptr noundef @.str.46, ptr noundef @.str.21, i32 noundef 221, ptr noundef %2087, ptr noundef %2090, ptr noundef %2093, i32 noundef %2095) #10
  br label %2097

2097:                                             ; preds = %2080, %2063
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #10
  br label %2098

2098:                                             ; preds = %2097
  br label %2099

2099:                                             ; preds = %2098
  call void @exit(i32 noundef 1) #12
  unreachable

2100:                                             ; No predecessors!
  br label %2101

2101:                                             ; preds = %2100
  br label %2102

2102:                                             ; preds = %2101, %2043
  br label %2103

2103:                                             ; preds = %2102
  br label %2104

2104:                                             ; preds = %2103
  br label %2105

2105:                                             ; preds = %2104
  %2106 = load i32, ptr @test_count, align 4, !tbaa !5
  %2107 = add nsw i32 %2106, 1
  store i32 %2107, ptr @test_count, align 4, !tbaa !5
  %2108 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2109 = load i32, ptr %2108, align 4, !tbaa !5
  %2110 = icmp eq i32 %2109, 335544322
  br i1 %2110, label %2164, label %2111

2111:                                             ; preds = %2105
  br label %2112

2112:                                             ; preds = %2111
  br label %2113

2113:                                             ; preds = %2112
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #10
  %2114 = call ptr @__errno_location() #11
  %2115 = load i32, ptr %2114, align 4, !tbaa !5
  store i32 %2115, ptr %55, align 4, !tbaa !5
  %2116 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2117 = call i32 @s2n_print_stacktrace(ptr noundef %2116)
  %2118 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2119 = trunc i8 %2118 to i1
  br i1 %2119, label %2120, label %2142

2120:                                             ; preds = %2113
  %2121 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2122 = call i32 @fileno(ptr noundef %2121) #10
  %2123 = call i32 @isatty(i32 noundef %2122) #10
  %2124 = icmp ne i32 %2123, 0
  br i1 %2124, label %2125, label %2142

2125:                                             ; preds = %2120
  %2126 = load i32, ptr %55, align 4, !tbaa !5
  %2127 = call ptr @__errno_location() #11
  store i32 %2126, ptr %2127, align 4, !tbaa !5
  %2128 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2129 = load i32, ptr @test_count, align 4, !tbaa !5
  %2130 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2131 = load i32, ptr %2130, align 4, !tbaa !5
  %2132 = call ptr @s2n_strerror(i32 noundef %2131, ptr noundef @.str.24)
  %2133 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2134 = load i32, ptr %2133, align 4, !tbaa !5
  %2135 = call ptr @s2n_strerror_debug(i32 noundef %2134, ptr noundef @.str.24)
  %2136 = call ptr @__errno_location() #11
  %2137 = load i32, ptr %2136, align 4, !tbaa !5
  %2138 = call ptr @strerror(i32 noundef %2137) #10
  %2139 = call ptr @__errno_location() #11
  %2140 = load i32, ptr %2139, align 4, !tbaa !5
  %2141 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2128, ptr noundef @.str.22, i32 noundef %2129, ptr noundef @.str.47, ptr noundef @.str.21, i32 noundef 221, ptr noundef %2132, ptr noundef %2135, ptr noundef %2138, i32 noundef %2140) #10
  br label %2159

2142:                                             ; preds = %2120, %2113
  %2143 = load i32, ptr %55, align 4, !tbaa !5
  %2144 = call ptr @__errno_location() #11
  store i32 %2143, ptr %2144, align 4, !tbaa !5
  %2145 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2146 = load i32, ptr @test_count, align 4, !tbaa !5
  %2147 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2148 = load i32, ptr %2147, align 4, !tbaa !5
  %2149 = call ptr @s2n_strerror(i32 noundef %2148, ptr noundef @.str.24)
  %2150 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2151 = load i32, ptr %2150, align 4, !tbaa !5
  %2152 = call ptr @s2n_strerror_debug(i32 noundef %2151, ptr noundef @.str.24)
  %2153 = call ptr @__errno_location() #11
  %2154 = load i32, ptr %2153, align 4, !tbaa !5
  %2155 = call ptr @strerror(i32 noundef %2154) #10
  %2156 = call ptr @__errno_location() #11
  %2157 = load i32, ptr %2156, align 4, !tbaa !5
  %2158 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2145, ptr noundef @.str.25, i32 noundef %2146, ptr noundef @.str.47, ptr noundef @.str.21, i32 noundef 221, ptr noundef %2149, ptr noundef %2152, ptr noundef %2155, i32 noundef %2157) #10
  br label %2159

2159:                                             ; preds = %2142, %2125
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #10
  br label %2160

2160:                                             ; preds = %2159
  br label %2161

2161:                                             ; preds = %2160
  call void @exit(i32 noundef 1) #12
  unreachable

2162:                                             ; No predecessors!
  br label %2163

2163:                                             ; preds = %2162
  br label %2164

2164:                                             ; preds = %2163, %2105
  br label %2165

2165:                                             ; preds = %2164
  br label %2166

2166:                                             ; preds = %2165
  br label %2167

2167:                                             ; preds = %2166
  %2168 = load i32, ptr @test_count, align 4, !tbaa !5
  %2169 = add nsw i32 %2168, 1
  store i32 %2169, ptr @test_count, align 4, !tbaa !5
  %2170 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2171 = load i32, ptr %2170, align 4, !tbaa !5
  %2172 = call ptr @s2n_strerror_debug(i32 noundef %2171, ptr noundef @.str.24)
  %2173 = icmp eq ptr %2172, null
  br i1 %2173, label %2174, label %2227

2174:                                             ; preds = %2167
  br label %2175

2175:                                             ; preds = %2174
  br label %2176

2176:                                             ; preds = %2175
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #10
  %2177 = call ptr @__errno_location() #11
  %2178 = load i32, ptr %2177, align 4, !tbaa !5
  store i32 %2178, ptr %56, align 4, !tbaa !5
  %2179 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2180 = call i32 @s2n_print_stacktrace(ptr noundef %2179)
  %2181 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2182 = trunc i8 %2181 to i1
  br i1 %2182, label %2183, label %2205

2183:                                             ; preds = %2176
  %2184 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2185 = call i32 @fileno(ptr noundef %2184) #10
  %2186 = call i32 @isatty(i32 noundef %2185) #10
  %2187 = icmp ne i32 %2186, 0
  br i1 %2187, label %2188, label %2205

2188:                                             ; preds = %2183
  %2189 = load i32, ptr %56, align 4, !tbaa !5
  %2190 = call ptr @__errno_location() #11
  store i32 %2189, ptr %2190, align 4, !tbaa !5
  %2191 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2192 = load i32, ptr @test_count, align 4, !tbaa !5
  %2193 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2194 = load i32, ptr %2193, align 4, !tbaa !5
  %2195 = call ptr @s2n_strerror(i32 noundef %2194, ptr noundef @.str.24)
  %2196 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2197 = load i32, ptr %2196, align 4, !tbaa !5
  %2198 = call ptr @s2n_strerror_debug(i32 noundef %2197, ptr noundef @.str.24)
  %2199 = call ptr @__errno_location() #11
  %2200 = load i32, ptr %2199, align 4, !tbaa !5
  %2201 = call ptr @strerror(i32 noundef %2200) #10
  %2202 = call ptr @__errno_location() #11
  %2203 = load i32, ptr %2202, align 4, !tbaa !5
  %2204 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2191, ptr noundef @.str.22, i32 noundef %2192, ptr noundef @.str.48, ptr noundef @.str.21, i32 noundef 221, ptr noundef %2195, ptr noundef %2198, ptr noundef %2201, i32 noundef %2203) #10
  br label %2222

2205:                                             ; preds = %2183, %2176
  %2206 = load i32, ptr %56, align 4, !tbaa !5
  %2207 = call ptr @__errno_location() #11
  store i32 %2206, ptr %2207, align 4, !tbaa !5
  %2208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2209 = load i32, ptr @test_count, align 4, !tbaa !5
  %2210 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2211 = load i32, ptr %2210, align 4, !tbaa !5
  %2212 = call ptr @s2n_strerror(i32 noundef %2211, ptr noundef @.str.24)
  %2213 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2214 = load i32, ptr %2213, align 4, !tbaa !5
  %2215 = call ptr @s2n_strerror_debug(i32 noundef %2214, ptr noundef @.str.24)
  %2216 = call ptr @__errno_location() #11
  %2217 = load i32, ptr %2216, align 4, !tbaa !5
  %2218 = call ptr @strerror(i32 noundef %2217) #10
  %2219 = call ptr @__errno_location() #11
  %2220 = load i32, ptr %2219, align 4, !tbaa !5
  %2221 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2208, ptr noundef @.str.25, i32 noundef %2209, ptr noundef @.str.48, ptr noundef @.str.21, i32 noundef 221, ptr noundef %2212, ptr noundef %2215, ptr noundef %2218, i32 noundef %2220) #10
  br label %2222

2222:                                             ; preds = %2205, %2188
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #10
  br label %2223

2223:                                             ; preds = %2222
  br label %2224

2224:                                             ; preds = %2223
  call void @exit(i32 noundef 1) #12
  unreachable

2225:                                             ; No predecessors!
  br label %2226

2226:                                             ; preds = %2225
  br label %2227

2227:                                             ; preds = %2226, %2167
  br label %2228

2228:                                             ; preds = %2227
  br label %2229

2229:                                             ; preds = %2228
  br label %2230

2230:                                             ; preds = %2229
  br label %2231

2231:                                             ; preds = %2230
  br label %2232

2232:                                             ; preds = %2231
  %2233 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %2233, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %2234 = call ptr @__errno_location() #11
  store i32 0, ptr %2234, align 4, !tbaa !5
  br label %2235

2235:                                             ; preds = %2232
  br label %2236

2236:                                             ; preds = %2235
  br label %2237

2237:                                             ; preds = %2236
  br label %2238

2238:                                             ; preds = %2237
  br label %2239

2239:                                             ; preds = %2238
  %2240 = load i32, ptr @test_count, align 4, !tbaa !5
  %2241 = add nsw i32 %2240, 1
  store i32 %2241, ptr @test_count, align 4, !tbaa !5
  %2242 = load i32, ptr @expected_handler_called, align 4, !tbaa !5
  %2243 = icmp ne i32 %2242, 0
  br i1 %2243, label %2244, label %2297

2244:                                             ; preds = %2239
  br label %2245

2245:                                             ; preds = %2244
  br label %2246

2246:                                             ; preds = %2245
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #10
  %2247 = call ptr @__errno_location() #11
  %2248 = load i32, ptr %2247, align 4, !tbaa !5
  store i32 %2248, ptr %57, align 4, !tbaa !5
  %2249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2250 = call i32 @s2n_print_stacktrace(ptr noundef %2249)
  %2251 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2252 = trunc i8 %2251 to i1
  br i1 %2252, label %2253, label %2275

2253:                                             ; preds = %2246
  %2254 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2255 = call i32 @fileno(ptr noundef %2254) #10
  %2256 = call i32 @isatty(i32 noundef %2255) #10
  %2257 = icmp ne i32 %2256, 0
  br i1 %2257, label %2258, label %2275

2258:                                             ; preds = %2253
  %2259 = load i32, ptr %57, align 4, !tbaa !5
  %2260 = call ptr @__errno_location() #11
  store i32 %2259, ptr %2260, align 4, !tbaa !5
  %2261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2262 = load i32, ptr @test_count, align 4, !tbaa !5
  %2263 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2264 = load i32, ptr %2263, align 4, !tbaa !5
  %2265 = call ptr @s2n_strerror(i32 noundef %2264, ptr noundef @.str.24)
  %2266 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2267 = load i32, ptr %2266, align 4, !tbaa !5
  %2268 = call ptr @s2n_strerror_debug(i32 noundef %2267, ptr noundef @.str.24)
  %2269 = call ptr @__errno_location() #11
  %2270 = load i32, ptr %2269, align 4, !tbaa !5
  %2271 = call ptr @strerror(i32 noundef %2270) #10
  %2272 = call ptr @__errno_location() #11
  %2273 = load i32, ptr %2272, align 4, !tbaa !5
  %2274 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2261, ptr noundef @.str.22, i32 noundef %2262, ptr noundef @.str.49, ptr noundef @.str.21, i32 noundef 222, ptr noundef %2265, ptr noundef %2268, ptr noundef %2271, i32 noundef %2273) #10
  br label %2292

2275:                                             ; preds = %2253, %2246
  %2276 = load i32, ptr %57, align 4, !tbaa !5
  %2277 = call ptr @__errno_location() #11
  store i32 %2276, ptr %2277, align 4, !tbaa !5
  %2278 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2279 = load i32, ptr @test_count, align 4, !tbaa !5
  %2280 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2281 = load i32, ptr %2280, align 4, !tbaa !5
  %2282 = call ptr @s2n_strerror(i32 noundef %2281, ptr noundef @.str.24)
  %2283 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2284 = load i32, ptr %2283, align 4, !tbaa !5
  %2285 = call ptr @s2n_strerror_debug(i32 noundef %2284, ptr noundef @.str.24)
  %2286 = call ptr @__errno_location() #11
  %2287 = load i32, ptr %2286, align 4, !tbaa !5
  %2288 = call ptr @strerror(i32 noundef %2287) #10
  %2289 = call ptr @__errno_location() #11
  %2290 = load i32, ptr %2289, align 4, !tbaa !5
  %2291 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2278, ptr noundef @.str.25, i32 noundef %2279, ptr noundef @.str.49, ptr noundef @.str.21, i32 noundef 222, ptr noundef %2282, ptr noundef %2285, ptr noundef %2288, i32 noundef %2290) #10
  br label %2292

2292:                                             ; preds = %2275, %2258
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #10
  br label %2293

2293:                                             ; preds = %2292
  br label %2294

2294:                                             ; preds = %2293
  call void @exit(i32 noundef 1) #12
  unreachable

2295:                                             ; No predecessors!
  br label %2296

2296:                                             ; preds = %2295
  br label %2297

2297:                                             ; preds = %2296, %2239
  br label %2298

2298:                                             ; preds = %2297
  br label %2299

2299:                                             ; preds = %2298
  br label %2300

2300:                                             ; preds = %2299
  %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 = load i32, ptr @unexpected_handler_called, align 4, !tbaa !5
  %2304 = icmp ne i32 %2303, 0
  br i1 %2304, label %2305, label %2358

2305:                                             ; preds = %2300
  br label %2306

2306:                                             ; preds = %2305
  br label %2307

2307:                                             ; preds = %2306
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #10
  %2308 = call ptr @__errno_location() #11
  %2309 = load i32, ptr %2308, align 4, !tbaa !5
  store i32 %2309, ptr %58, align 4, !tbaa !5
  %2310 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2311 = call i32 @s2n_print_stacktrace(ptr noundef %2310)
  %2312 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2313 = trunc i8 %2312 to i1
  br i1 %2313, label %2314, label %2336

2314:                                             ; preds = %2307
  %2315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2316 = call i32 @fileno(ptr noundef %2315) #10
  %2317 = call i32 @isatty(i32 noundef %2316) #10
  %2318 = icmp ne i32 %2317, 0
  br i1 %2318, label %2319, label %2336

2319:                                             ; preds = %2314
  %2320 = load i32, ptr %58, align 4, !tbaa !5
  %2321 = call ptr @__errno_location() #11
  store i32 %2320, ptr %2321, align 4, !tbaa !5
  %2322 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2323 = load i32, ptr @test_count, align 4, !tbaa !5
  %2324 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2325 = load i32, ptr %2324, align 4, !tbaa !5
  %2326 = call ptr @s2n_strerror(i32 noundef %2325, ptr noundef @.str.24)
  %2327 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2328 = load i32, ptr %2327, align 4, !tbaa !5
  %2329 = call ptr @s2n_strerror_debug(i32 noundef %2328, ptr noundef @.str.24)
  %2330 = call ptr @__errno_location() #11
  %2331 = load i32, ptr %2330, align 4, !tbaa !5
  %2332 = call ptr @strerror(i32 noundef %2331) #10
  %2333 = call ptr @__errno_location() #11
  %2334 = load i32, ptr %2333, align 4, !tbaa !5
  %2335 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2322, ptr noundef @.str.22, i32 noundef %2323, ptr noundef @.str.45, ptr noundef @.str.21, i32 noundef 223, ptr noundef %2326, ptr noundef %2329, ptr noundef %2332, i32 noundef %2334) #10
  br label %2353

2336:                                             ; preds = %2314, %2307
  %2337 = load i32, ptr %58, align 4, !tbaa !5
  %2338 = call ptr @__errno_location() #11
  store i32 %2337, ptr %2338, align 4, !tbaa !5
  %2339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2340 = load i32, ptr @test_count, align 4, !tbaa !5
  %2341 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2342 = load i32, ptr %2341, align 4, !tbaa !5
  %2343 = call ptr @s2n_strerror(i32 noundef %2342, ptr noundef @.str.24)
  %2344 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2345 = load i32, ptr %2344, align 4, !tbaa !5
  %2346 = call ptr @s2n_strerror_debug(i32 noundef %2345, ptr noundef @.str.24)
  %2347 = call ptr @__errno_location() #11
  %2348 = load i32, ptr %2347, align 4, !tbaa !5
  %2349 = call ptr @strerror(i32 noundef %2348) #10
  %2350 = call ptr @__errno_location() #11
  %2351 = load i32, ptr %2350, align 4, !tbaa !5
  %2352 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2339, ptr noundef @.str.25, i32 noundef %2340, ptr noundef @.str.45, ptr noundef @.str.21, i32 noundef 223, ptr noundef %2343, ptr noundef %2346, ptr noundef %2349, i32 noundef %2351) #10
  br label %2353

2353:                                             ; preds = %2336, %2319
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #10
  br label %2354

2354:                                             ; preds = %2353
  br label %2355

2355:                                             ; preds = %2354
  call void @exit(i32 noundef 1) #12
  unreachable

2356:                                             ; No predecessors!
  br label %2357

2357:                                             ; preds = %2356
  br label %2358

2358:                                             ; preds = %2357, %2300
  br label %2359

2359:                                             ; preds = %2358
  br label %2360

2360:                                             ; preds = %2359
  br label %2361

2361:                                             ; preds = %2360, %2039
  br label %2362

2362:                                             ; preds = %2361
  %2363 = load i32, ptr @test_count, align 4, !tbaa !5
  %2364 = add nsw i32 %2363, 1
  store i32 %2364, ptr @test_count, align 4, !tbaa !5
  %2365 = call i32 @s2n_stuffer_wipe(ptr noundef %43)
  %2366 = icmp eq i32 %2365, -1
  br i1 %2366, label %2367, label %2420

2367:                                             ; preds = %2362
  br label %2368

2368:                                             ; preds = %2367
  br label %2369

2369:                                             ; preds = %2368
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #10
  %2370 = call ptr @__errno_location() #11
  %2371 = load i32, ptr %2370, align 4, !tbaa !5
  store i32 %2371, ptr %59, align 4, !tbaa !5
  %2372 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2373 = call i32 @s2n_print_stacktrace(ptr noundef %2372)
  %2374 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2375 = trunc i8 %2374 to i1
  br i1 %2375, label %2376, label %2398

2376:                                             ; preds = %2369
  %2377 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2378 = call i32 @fileno(ptr noundef %2377) #10
  %2379 = call i32 @isatty(i32 noundef %2378) #10
  %2380 = icmp ne i32 %2379, 0
  br i1 %2380, label %2381, label %2398

2381:                                             ; preds = %2376
  %2382 = load i32, ptr %59, align 4, !tbaa !5
  %2383 = call ptr @__errno_location() #11
  store i32 %2382, ptr %2383, align 4, !tbaa !5
  %2384 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2385 = load i32, ptr @test_count, align 4, !tbaa !5
  %2386 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2387 = load i32, ptr %2386, align 4, !tbaa !5
  %2388 = call ptr @s2n_strerror(i32 noundef %2387, ptr noundef @.str.24)
  %2389 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2390 = load i32, ptr %2389, align 4, !tbaa !5
  %2391 = call ptr @s2n_strerror_debug(i32 noundef %2390, ptr noundef @.str.24)
  %2392 = call ptr @__errno_location() #11
  %2393 = load i32, ptr %2392, align 4, !tbaa !5
  %2394 = call ptr @strerror(i32 noundef %2393) #10
  %2395 = call ptr @__errno_location() #11
  %2396 = load i32, ptr %2395, align 4, !tbaa !5
  %2397 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2384, ptr noundef @.str.22, i32 noundef %2385, ptr noundef @.str.50, ptr noundef @.str.21, i32 noundef 226, ptr noundef %2388, ptr noundef %2391, ptr noundef %2394, i32 noundef %2396) #10
  br label %2415

2398:                                             ; preds = %2376, %2369
  %2399 = load i32, ptr %59, align 4, !tbaa !5
  %2400 = call ptr @__errno_location() #11
  store i32 %2399, ptr %2400, align 4, !tbaa !5
  %2401 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2402 = load i32, ptr @test_count, align 4, !tbaa !5
  %2403 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2404 = load i32, ptr %2403, align 4, !tbaa !5
  %2405 = call ptr @s2n_strerror(i32 noundef %2404, ptr noundef @.str.24)
  %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_debug(i32 noundef %2407, ptr noundef @.str.24)
  %2409 = call ptr @__errno_location() #11
  %2410 = load i32, ptr %2409, align 4, !tbaa !5
  %2411 = call ptr @strerror(i32 noundef %2410) #10
  %2412 = call ptr @__errno_location() #11
  %2413 = load i32, ptr %2412, align 4, !tbaa !5
  %2414 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2401, ptr noundef @.str.25, i32 noundef %2402, ptr noundef @.str.50, ptr noundef @.str.21, i32 noundef 226, ptr noundef %2405, ptr noundef %2408, ptr noundef %2411, i32 noundef %2413) #10
  br label %2415

2415:                                             ; preds = %2398, %2381
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #10
  br label %2416

2416:                                             ; preds = %2415
  br label %2417

2417:                                             ; preds = %2416
  call void @exit(i32 noundef 1) #12
  unreachable

2418:                                             ; No predecessors!
  br label %2419

2419:                                             ; preds = %2418
  br label %2420

2420:                                             ; preds = %2419, %2362
  br label %2421

2421:                                             ; preds = %2420
  br label %2422

2422:                                             ; preds = %2421
  br label %2423

2423:                                             ; preds = %2422
  %2424 = load i32, ptr %48, align 4, !tbaa !5
  %2425 = add nsw i32 %2424, 1
  store i32 %2425, ptr %48, align 4, !tbaa !5
  br label %1714, !llvm.loop !55

2426:                                             ; preds = %1717
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #10
  br label %2427

2427:                                             ; preds = %2426
  %2428 = load i32, ptr %46, align 4, !tbaa !5
  %2429 = add nsw i32 %2428, 1
  store i32 %2429, ptr %46, align 4, !tbaa !5
  br label %1699, !llvm.loop !56

2430:                                             ; preds = %1703
  br label %2431

2431:                                             ; preds = %2430
  %2432 = load i32, ptr @test_count, align 4, !tbaa !5
  %2433 = add nsw i32 %2432, 1
  store i32 %2433, ptr @test_count, align 4, !tbaa !5
  %2434 = call i32 @s2n_stuffer_free(ptr noundef %43)
  %2435 = icmp eq i32 %2434, -1
  br i1 %2435, label %2436, label %2489

2436:                                             ; preds = %2431
  br label %2437

2437:                                             ; preds = %2436
  br label %2438

2438:                                             ; preds = %2437
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #10
  %2439 = call ptr @__errno_location() #11
  %2440 = load i32, ptr %2439, align 4, !tbaa !5
  store i32 %2440, ptr %60, align 4, !tbaa !5
  %2441 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2442 = call i32 @s2n_print_stacktrace(ptr noundef %2441)
  %2443 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2444 = trunc i8 %2443 to i1
  br i1 %2444, label %2445, label %2467

2445:                                             ; preds = %2438
  %2446 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2447 = call i32 @fileno(ptr noundef %2446) #10
  %2448 = call i32 @isatty(i32 noundef %2447) #10
  %2449 = icmp ne i32 %2448, 0
  br i1 %2449, label %2450, label %2467

2450:                                             ; preds = %2445
  %2451 = load i32, ptr %60, align 4, !tbaa !5
  %2452 = call ptr @__errno_location() #11
  store i32 %2451, ptr %2452, align 4, !tbaa !5
  %2453 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2454 = load i32, ptr @test_count, align 4, !tbaa !5
  %2455 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2456 = load i32, ptr %2455, align 4, !tbaa !5
  %2457 = call ptr @s2n_strerror(i32 noundef %2456, ptr noundef @.str.24)
  %2458 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2459 = load i32, ptr %2458, align 4, !tbaa !5
  %2460 = call ptr @s2n_strerror_debug(i32 noundef %2459, ptr noundef @.str.24)
  %2461 = call ptr @__errno_location() #11
  %2462 = load i32, ptr %2461, align 4, !tbaa !5
  %2463 = call ptr @strerror(i32 noundef %2462) #10
  %2464 = call ptr @__errno_location() #11
  %2465 = load i32, ptr %2464, align 4, !tbaa !5
  %2466 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2453, ptr noundef @.str.22, i32 noundef %2454, ptr noundef @.str.51, ptr noundef @.str.21, i32 noundef 230, ptr noundef %2457, ptr noundef %2460, ptr noundef %2463, i32 noundef %2465) #10
  br label %2484

2467:                                             ; preds = %2445, %2438
  %2468 = load i32, ptr %60, align 4, !tbaa !5
  %2469 = call ptr @__errno_location() #11
  store i32 %2468, ptr %2469, align 4, !tbaa !5
  %2470 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2471 = load i32, ptr @test_count, align 4, !tbaa !5
  %2472 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2473 = load i32, ptr %2472, align 4, !tbaa !5
  %2474 = call ptr @s2n_strerror(i32 noundef %2473, ptr noundef @.str.24)
  %2475 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2476 = load i32, ptr %2475, align 4, !tbaa !5
  %2477 = call ptr @s2n_strerror_debug(i32 noundef %2476, ptr noundef @.str.24)
  %2478 = call ptr @__errno_location() #11
  %2479 = load i32, ptr %2478, align 4, !tbaa !5
  %2480 = call ptr @strerror(i32 noundef %2479) #10
  %2481 = call ptr @__errno_location() #11
  %2482 = load i32, ptr %2481, align 4, !tbaa !5
  %2483 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2470, ptr noundef @.str.25, i32 noundef %2471, ptr noundef @.str.51, ptr noundef @.str.21, i32 noundef 230, ptr noundef %2474, ptr noundef %2477, ptr noundef %2480, i32 noundef %2482) #10
  br label %2484

2484:                                             ; preds = %2467, %2450
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #10
  br label %2485

2485:                                             ; preds = %2484
  br label %2486

2486:                                             ; preds = %2485
  call void @exit(i32 noundef 1) #12
  unreachable

2487:                                             ; No predecessors!
  br label %2488

2488:                                             ; preds = %2487
  br label %2489

2489:                                             ; preds = %2488, %2431
  br label %2490

2490:                                             ; preds = %2489
  br label %2491

2491:                                             ; preds = %2490
  br label %2492

2492:                                             ; preds = %2491
  %2493 = load i32, ptr @test_count, align 4, !tbaa !5
  %2494 = add nsw i32 %2493, 1
  store i32 %2494, ptr @test_count, align 4, !tbaa !5
  %2495 = load ptr, ptr %42, align 8, !tbaa !9
  %2496 = call i32 @s2n_connection_free(ptr noundef %2495)
  %2497 = icmp eq i32 %2496, -1
  br i1 %2497, label %2498, label %2551

2498:                                             ; preds = %2492
  br label %2499

2499:                                             ; preds = %2498
  br label %2500

2500:                                             ; preds = %2499
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #10
  %2501 = call ptr @__errno_location() #11
  %2502 = load i32, ptr %2501, align 4, !tbaa !5
  store i32 %2502, ptr %61, align 4, !tbaa !5
  %2503 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2504 = call i32 @s2n_print_stacktrace(ptr noundef %2503)
  %2505 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2506 = trunc i8 %2505 to i1
  br i1 %2506, label %2507, label %2529

2507:                                             ; preds = %2500
  %2508 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2509 = call i32 @fileno(ptr noundef %2508) #10
  %2510 = call i32 @isatty(i32 noundef %2509) #10
  %2511 = icmp ne i32 %2510, 0
  br i1 %2511, label %2512, label %2529

2512:                                             ; preds = %2507
  %2513 = load i32, ptr %61, align 4, !tbaa !5
  %2514 = call ptr @__errno_location() #11
  store i32 %2513, ptr %2514, align 4, !tbaa !5
  %2515 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2516 = load i32, ptr @test_count, align 4, !tbaa !5
  %2517 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2518 = load i32, ptr %2517, align 4, !tbaa !5
  %2519 = call ptr @s2n_strerror(i32 noundef %2518, ptr noundef @.str.24)
  %2520 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2521 = load i32, ptr %2520, align 4, !tbaa !5
  %2522 = call ptr @s2n_strerror_debug(i32 noundef %2521, ptr noundef @.str.24)
  %2523 = call ptr @__errno_location() #11
  %2524 = load i32, ptr %2523, align 4, !tbaa !5
  %2525 = call ptr @strerror(i32 noundef %2524) #10
  %2526 = call ptr @__errno_location() #11
  %2527 = load i32, ptr %2526, align 4, !tbaa !5
  %2528 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2515, ptr noundef @.str.22, i32 noundef %2516, ptr noundef @.str.33, ptr noundef @.str.21, i32 noundef 231, ptr noundef %2519, ptr noundef %2522, ptr noundef %2525, i32 noundef %2527) #10
  br label %2546

2529:                                             ; preds = %2507, %2500
  %2530 = load i32, ptr %61, align 4, !tbaa !5
  %2531 = call ptr @__errno_location() #11
  store i32 %2530, ptr %2531, align 4, !tbaa !5
  %2532 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2533 = load i32, ptr @test_count, align 4, !tbaa !5
  %2534 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2535 = load i32, ptr %2534, align 4, !tbaa !5
  %2536 = call ptr @s2n_strerror(i32 noundef %2535, ptr noundef @.str.24)
  %2537 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2538 = load i32, ptr %2537, align 4, !tbaa !5
  %2539 = call ptr @s2n_strerror_debug(i32 noundef %2538, ptr noundef @.str.24)
  %2540 = call ptr @__errno_location() #11
  %2541 = load i32, ptr %2540, align 4, !tbaa !5
  %2542 = call ptr @strerror(i32 noundef %2541) #10
  %2543 = call ptr @__errno_location() #11
  %2544 = load i32, ptr %2543, align 4, !tbaa !5
  %2545 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2532, ptr noundef @.str.25, i32 noundef %2533, ptr noundef @.str.33, ptr noundef @.str.21, i32 noundef 231, ptr noundef %2536, ptr noundef %2539, ptr noundef %2542, i32 noundef %2544) #10
  br label %2546

2546:                                             ; preds = %2529, %2512
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #10
  br label %2547

2547:                                             ; preds = %2546
  br label %2548

2548:                                             ; preds = %2547
  call void @exit(i32 noundef 1) #12
  unreachable

2549:                                             ; No predecessors!
  br label %2550

2550:                                             ; preds = %2549
  br label %2551

2551:                                             ; preds = %2550, %2492
  br label %2552

2552:                                             ; preds = %2551
  br label %2553

2553:                                             ; preds = %2552
  call void @llvm.lifetime.end.p0(i64 40, ptr %43) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %62) #10
  %2554 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %2554, ptr %62, align 8, !tbaa !9
  %2555 = load ptr, ptr %62, align 8, !tbaa !9
  %2556 = getelementptr inbounds %struct.s2n_connection, ptr %2555, i32 0, i32 23
  store i8 33, ptr %2556, align 4, !tbaa !19
  call void @llvm.lifetime.start.p0(i64 40, ptr %63) #10
  call void @llvm.memset.p0.i64(ptr align 8 %63, i8 0, i64 40, i1 false)
  br label %2557

2557:                                             ; preds = %2553
  %2558 = load i32, ptr @test_count, align 4, !tbaa !5
  %2559 = add nsw i32 %2558, 1
  store i32 %2559, ptr @test_count, align 4, !tbaa !5
  %2560 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %63, i32 noundef 0)
  %2561 = icmp eq i32 %2560, -1
  br i1 %2561, label %2562, label %2615

2562:                                             ; preds = %2557
  br label %2563

2563:                                             ; preds = %2562
  br label %2564

2564:                                             ; preds = %2563
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #10
  %2565 = call ptr @__errno_location() #11
  %2566 = load i32, ptr %2565, align 4, !tbaa !5
  store i32 %2566, ptr %64, align 4, !tbaa !5
  %2567 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2568 = call i32 @s2n_print_stacktrace(ptr noundef %2567)
  %2569 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2570 = trunc i8 %2569 to i1
  br i1 %2570, label %2571, label %2593

2571:                                             ; preds = %2564
  %2572 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2573 = call i32 @fileno(ptr noundef %2572) #10
  %2574 = call i32 @isatty(i32 noundef %2573) #10
  %2575 = icmp ne i32 %2574, 0
  br i1 %2575, label %2576, label %2593

2576:                                             ; preds = %2571
  %2577 = load i32, ptr %64, align 4, !tbaa !5
  %2578 = call ptr @__errno_location() #11
  store i32 %2577, ptr %2578, align 4, !tbaa !5
  %2579 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2580 = load i32, ptr @test_count, align 4, !tbaa !5
  %2581 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2582 = load i32, ptr %2581, align 4, !tbaa !5
  %2583 = call ptr @s2n_strerror(i32 noundef %2582, ptr noundef @.str.24)
  %2584 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2585 = load i32, ptr %2584, align 4, !tbaa !5
  %2586 = call ptr @s2n_strerror_debug(i32 noundef %2585, ptr noundef @.str.24)
  %2587 = call ptr @__errno_location() #11
  %2588 = load i32, ptr %2587, align 4, !tbaa !5
  %2589 = call ptr @strerror(i32 noundef %2588) #10
  %2590 = call ptr @__errno_location() #11
  %2591 = load i32, ptr %2590, align 4, !tbaa !5
  %2592 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2579, ptr noundef @.str.22, i32 noundef %2580, ptr noundef @.str.39, ptr noundef @.str.21, i32 noundef 241, ptr noundef %2583, ptr noundef %2586, ptr noundef %2589, i32 noundef %2591) #10
  br label %2610

2593:                                             ; preds = %2571, %2564
  %2594 = load i32, ptr %64, align 4, !tbaa !5
  %2595 = call ptr @__errno_location() #11
  store i32 %2594, ptr %2595, align 4, !tbaa !5
  %2596 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2597 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %2599, ptr noundef @.str.24)
  %2601 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2602 = load i32, ptr %2601, align 4, !tbaa !5
  %2603 = call ptr @s2n_strerror_debug(i32 noundef %2602, ptr noundef @.str.24)
  %2604 = call ptr @__errno_location() #11
  %2605 = load i32, ptr %2604, align 4, !tbaa !5
  %2606 = call ptr @strerror(i32 noundef %2605) #10
  %2607 = call ptr @__errno_location() #11
  %2608 = load i32, ptr %2607, align 4, !tbaa !5
  %2609 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2596, ptr noundef @.str.25, i32 noundef %2597, ptr noundef @.str.39, ptr noundef @.str.21, i32 noundef 241, ptr noundef %2600, ptr noundef %2603, ptr noundef %2606, i32 noundef %2608) #10
  br label %2610

2610:                                             ; preds = %2593, %2576
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #10
  br label %2611

2611:                                             ; preds = %2610
  br label %2612

2612:                                             ; preds = %2611
  call void @exit(i32 noundef 1) #12
  unreachable

2613:                                             ; No predecessors!
  br label %2614

2614:                                             ; preds = %2613
  br label %2615

2615:                                             ; preds = %2614, %2557
  br label %2616

2616:                                             ; preds = %2615
  br label %2617

2617:                                             ; preds = %2616
  br label %2618

2618:                                             ; preds = %2617
  %2619 = load i32, ptr @test_count, align 4, !tbaa !5
  %2620 = add nsw i32 %2619, 1
  store i32 %2620, ptr @test_count, align 4, !tbaa !5
  %2621 = load ptr, ptr %62, align 8, !tbaa !9
  %2622 = call i32 @s2n_connection_set_io_stuffers(ptr noundef %63, ptr noundef null, ptr noundef %2621)
  %2623 = icmp eq i32 %2622, -1
  br i1 %2623, label %2624, label %2677

2624:                                             ; preds = %2618
  br label %2625

2625:                                             ; preds = %2624
  br label %2626

2626:                                             ; preds = %2625
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #10
  %2627 = call ptr @__errno_location() #11
  %2628 = load i32, ptr %2627, align 4, !tbaa !5
  store i32 %2628, ptr %65, align 4, !tbaa !5
  %2629 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2630 = call i32 @s2n_print_stacktrace(ptr noundef %2629)
  %2631 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2632 = trunc i8 %2631 to i1
  br i1 %2632, label %2633, label %2655

2633:                                             ; preds = %2626
  %2634 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2635 = call i32 @fileno(ptr noundef %2634) #10
  %2636 = call i32 @isatty(i32 noundef %2635) #10
  %2637 = icmp ne i32 %2636, 0
  br i1 %2637, label %2638, label %2655

2638:                                             ; preds = %2633
  %2639 = load i32, ptr %65, align 4, !tbaa !5
  %2640 = call ptr @__errno_location() #11
  store i32 %2639, ptr %2640, align 4, !tbaa !5
  %2641 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2642 = load i32, ptr @test_count, align 4, !tbaa !5
  %2643 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2644 = load i32, ptr %2643, align 4, !tbaa !5
  %2645 = call ptr @s2n_strerror(i32 noundef %2644, ptr noundef @.str.24)
  %2646 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2647 = load i32, ptr %2646, align 4, !tbaa !5
  %2648 = call ptr @s2n_strerror_debug(i32 noundef %2647, ptr noundef @.str.24)
  %2649 = call ptr @__errno_location() #11
  %2650 = load i32, ptr %2649, align 4, !tbaa !5
  %2651 = call ptr @strerror(i32 noundef %2650) #10
  %2652 = call ptr @__errno_location() #11
  %2653 = load i32, ptr %2652, align 4, !tbaa !5
  %2654 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2641, ptr noundef @.str.22, i32 noundef %2642, ptr noundef @.str.40, ptr noundef @.str.21, i32 noundef 242, ptr noundef %2645, ptr noundef %2648, ptr noundef %2651, i32 noundef %2653) #10
  br label %2672

2655:                                             ; preds = %2633, %2626
  %2656 = load i32, ptr %65, align 4, !tbaa !5
  %2657 = call ptr @__errno_location() #11
  store i32 %2656, ptr %2657, align 4, !tbaa !5
  %2658 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2659 = load i32, ptr @test_count, align 4, !tbaa !5
  %2660 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2661 = load i32, ptr %2660, align 4, !tbaa !5
  %2662 = call ptr @s2n_strerror(i32 noundef %2661, ptr noundef @.str.24)
  %2663 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2664 = load i32, ptr %2663, align 4, !tbaa !5
  %2665 = call ptr @s2n_strerror_debug(i32 noundef %2664, ptr noundef @.str.24)
  %2666 = call ptr @__errno_location() #11
  %2667 = load i32, ptr %2666, align 4, !tbaa !5
  %2668 = call ptr @strerror(i32 noundef %2667) #10
  %2669 = call ptr @__errno_location() #11
  %2670 = load i32, ptr %2669, align 4, !tbaa !5
  %2671 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2658, ptr noundef @.str.25, i32 noundef %2659, ptr noundef @.str.40, ptr noundef @.str.21, i32 noundef 242, ptr noundef %2662, ptr noundef %2665, ptr noundef %2668, i32 noundef %2670) #10
  br label %2672

2672:                                             ; preds = %2655, %2638
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #10
  br label %2673

2673:                                             ; preds = %2672
  br label %2674

2674:                                             ; preds = %2673
  call void @exit(i32 noundef 1) #12
  unreachable

2675:                                             ; No predecessors!
  br label %2676

2676:                                             ; preds = %2675
  br label %2677

2677:                                             ; preds = %2676, %2618
  br label %2678

2678:                                             ; preds = %2677
  br label %2679

2679:                                             ; preds = %2678
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #10
  store i32 0, ptr %66, align 4, !tbaa !5
  br label %2680

2680:                                             ; preds = %3408, %2679
  %2681 = load i32, ptr %66, align 4, !tbaa !5
  %2682 = load i32, ptr %11, align 4, !tbaa !5
  %2683 = icmp slt i32 %2681, %2682
  br i1 %2683, label %2685, label %2684

2684:                                             ; preds = %2680
  store i32 255, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #10
  br label %3411

2685:                                             ; preds = %2680
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #10
  %2686 = load i32, ptr %66, align 4, !tbaa !5
  %2687 = sext i32 %2686 to i64
  %2688 = getelementptr inbounds [256 x i16], ptr %10, i64 0, i64 %2687
  %2689 = load i16, ptr %2688, align 2, !tbaa !15
  %2690 = zext i16 %2689 to i32
  store i32 %2690, ptr %67, align 4, !tbaa !5
  %2691 = load i32, ptr %67, align 4, !tbaa !5
  %2692 = load ptr, ptr %62, align 8, !tbaa !9
  %2693 = getelementptr inbounds %struct.s2n_connection, ptr %2692, i32 0, i32 52
  %2694 = getelementptr inbounds %struct.s2n_handshake, ptr %2693, i32 0, i32 6
  store i32 %2691, ptr %2694, align 4, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #10
  store i32 1, ptr %68, align 4, !tbaa !5
  br label %2695

2695:                                             ; preds = %3404, %2685
  %2696 = load i32, ptr %68, align 4, !tbaa !5
  %2697 = icmp slt i32 %2696, 32
  br i1 %2697, label %2699, label %2698

2698:                                             ; preds = %2695
  store i32 258, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #10
  br label %3407

2699:                                             ; preds = %2695
  br label %2700

2700:                                             ; preds = %2699
  %2701 = load i32, ptr @test_count, align 4, !tbaa !5
  %2702 = add nsw i32 %2701, 1
  store i32 %2702, ptr @test_count, align 4, !tbaa !5
  %2703 = call i32 @s2n_setup_handler_to_expect(i32 noundef 11, i8 noundef zeroext 0)
  %2704 = icmp eq i32 %2703, -1
  br i1 %2704, label %2705, label %2758

2705:                                             ; preds = %2700
  br label %2706

2706:                                             ; preds = %2705
  br label %2707

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

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

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

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

2753:                                             ; preds = %2736, %2719
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #10
  br label %2754

2754:                                             ; preds = %2753
  br label %2755

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

2756:                                             ; No predecessors!
  br label %2757

2757:                                             ; preds = %2756
  br label %2758

2758:                                             ; preds = %2757, %2700
  br label %2759

2759:                                             ; preds = %2758
  br label %2760

2760:                                             ; preds = %2759
  %2761 = load i32, ptr %68, align 4, !tbaa !5
  %2762 = load ptr, ptr %62, align 8, !tbaa !9
  %2763 = getelementptr inbounds %struct.s2n_connection, ptr %2762, i32 0, i32 52
  %2764 = getelementptr inbounds %struct.s2n_handshake, ptr %2763, i32 0, i32 7
  store i32 %2761, ptr %2764, align 8, !tbaa !47
  %2765 = load ptr, ptr %62, align 8, !tbaa !9
  %2766 = getelementptr inbounds %struct.s2n_connection, ptr %2765, i32 0, i32 42
  store i32 0, ptr %2766, align 8, !tbaa !54
  br label %2767

2767:                                             ; preds = %2760
  %2768 = load i32, ptr @test_count, align 4, !tbaa !5
  %2769 = add nsw i32 %2768, 1
  store i32 %2769, ptr @test_count, align 4, !tbaa !5
  %2770 = call i32 @s2n_test_write_header(ptr noundef %63, i8 noundef zeroext 20, i8 noundef zeroext 0)
  %2771 = icmp eq i32 %2770, -1
  br i1 %2771, label %2772, label %2825

2772:                                             ; preds = %2767
  br label %2773

2773:                                             ; preds = %2772
  br label %2774

2774:                                             ; preds = %2773
  call void @llvm.lifetime.start.p0(i64 4, ptr %70) #10
  %2775 = call ptr @__errno_location() #11
  %2776 = load i32, ptr %2775, align 4, !tbaa !5
  store i32 %2776, ptr %70, align 4, !tbaa !5
  %2777 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2778 = call i32 @s2n_print_stacktrace(ptr noundef %2777)
  %2779 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2780 = trunc i8 %2779 to i1
  br i1 %2780, label %2781, label %2803

2781:                                             ; preds = %2774
  %2782 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2783 = call i32 @fileno(ptr noundef %2782) #10
  %2784 = call i32 @isatty(i32 noundef %2783) #10
  %2785 = icmp ne i32 %2784, 0
  br i1 %2785, label %2786, label %2803

2786:                                             ; preds = %2781
  %2787 = load i32, ptr %70, align 4, !tbaa !5
  %2788 = call ptr @__errno_location() #11
  store i32 %2787, ptr %2788, align 4, !tbaa !5
  %2789 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2790 = load i32, ptr @test_count, align 4, !tbaa !5
  %2791 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2792 = load i32, ptr %2791, align 4, !tbaa !5
  %2793 = call ptr @s2n_strerror(i32 noundef %2792, ptr noundef @.str.24)
  %2794 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2795 = load i32, ptr %2794, align 4, !tbaa !5
  %2796 = call ptr @s2n_strerror_debug(i32 noundef %2795, ptr noundef @.str.24)
  %2797 = call ptr @__errno_location() #11
  %2798 = load i32, ptr %2797, align 4, !tbaa !5
  %2799 = call ptr @strerror(i32 noundef %2798) #10
  %2800 = call ptr @__errno_location() #11
  %2801 = load i32, ptr %2800, align 4, !tbaa !5
  %2802 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2789, ptr noundef @.str.22, i32 noundef %2790, ptr noundef @.str.42, ptr noundef @.str.21, i32 noundef 254, ptr noundef %2793, ptr noundef %2796, ptr noundef %2799, i32 noundef %2801) #10
  br label %2820

2803:                                             ; preds = %2781, %2774
  %2804 = load i32, ptr %70, align 4, !tbaa !5
  %2805 = call ptr @__errno_location() #11
  store i32 %2804, ptr %2805, align 4, !tbaa !5
  %2806 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2807 = load i32, ptr @test_count, align 4, !tbaa !5
  %2808 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2809 = load i32, ptr %2808, align 4, !tbaa !5
  %2810 = call ptr @s2n_strerror(i32 noundef %2809, ptr noundef @.str.24)
  %2811 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2812 = load i32, ptr %2811, align 4, !tbaa !5
  %2813 = call ptr @s2n_strerror_debug(i32 noundef %2812, ptr noundef @.str.24)
  %2814 = call ptr @__errno_location() #11
  %2815 = load i32, ptr %2814, align 4, !tbaa !5
  %2816 = call ptr @strerror(i32 noundef %2815) #10
  %2817 = call ptr @__errno_location() #11
  %2818 = load i32, ptr %2817, align 4, !tbaa !5
  %2819 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2806, ptr noundef @.str.25, i32 noundef %2807, ptr noundef @.str.42, ptr noundef @.str.21, i32 noundef 254, ptr noundef %2810, ptr noundef %2813, ptr noundef %2816, i32 noundef %2818) #10
  br label %2820

2820:                                             ; preds = %2803, %2786
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #10
  br label %2821

2821:                                             ; preds = %2820
  br label %2822

2822:                                             ; preds = %2821
  call void @exit(i32 noundef 1) #12
  unreachable

2823:                                             ; No predecessors!
  br label %2824

2824:                                             ; preds = %2823
  br label %2825

2825:                                             ; preds = %2824, %2767
  br label %2826

2826:                                             ; preds = %2825
  br label %2827

2827:                                             ; preds = %2826
  %2828 = load i32, ptr %67, align 4, !tbaa !5
  %2829 = sext i32 %2828 to i64
  %2830 = getelementptr inbounds [256 x [32 x i32]], ptr @handshakes, i64 0, i64 %2829
  %2831 = load i32, ptr %68, align 4, !tbaa !5
  %2832 = sext i32 %2831 to i64
  %2833 = getelementptr inbounds [32 x i32], ptr %2830, i64 0, i64 %2832
  %2834 = load i32, ptr %2833, align 4, !tbaa !5
  %2835 = icmp eq i32 %2834, 11
  br i1 %2835, label %2836, label %3021

2836:                                             ; preds = %2827
  br label %2837

2837:                                             ; preds = %2836
  %2838 = load i32, ptr @test_count, align 4, !tbaa !5
  %2839 = add nsw i32 %2838, 1
  store i32 %2839, ptr @test_count, align 4, !tbaa !5
  %2840 = load ptr, ptr %62, align 8, !tbaa !9
  %2841 = call i32 @s2n_handshake_read_io(ptr noundef %2840)
  %2842 = icmp eq i32 %2841, -1
  br i1 %2842, label %2843, label %2896

2843:                                             ; preds = %2837
  br label %2844

2844:                                             ; preds = %2843
  br label %2845

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

2852:                                             ; preds = %2845
  %2853 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2854 = call i32 @fileno(ptr noundef %2853) #10
  %2855 = call i32 @isatty(i32 noundef %2854) #10
  %2856 = icmp ne i32 %2855, 0
  br i1 %2856, label %2857, label %2874

2857:                                             ; preds = %2852
  %2858 = load i32, ptr %71, align 4, !tbaa !5
  %2859 = call ptr @__errno_location() #11
  store i32 %2858, ptr %2859, align 4, !tbaa !5
  %2860 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2861 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %2863, ptr noundef @.str.24)
  %2865 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2866 = load i32, ptr %2865, align 4, !tbaa !5
  %2867 = call ptr @s2n_strerror_debug(i32 noundef %2866, ptr noundef @.str.24)
  %2868 = call ptr @__errno_location() #11
  %2869 = load i32, ptr %2868, align 4, !tbaa !5
  %2870 = call ptr @strerror(i32 noundef %2869) #10
  %2871 = call ptr @__errno_location() #11
  %2872 = load i32, ptr %2871, align 4, !tbaa !5
  %2873 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2860, ptr noundef @.str.22, i32 noundef %2861, ptr noundef @.str.43, ptr noundef @.str.21, i32 noundef 257, ptr noundef %2864, ptr noundef %2867, ptr noundef %2870, i32 noundef %2872) #10
  br label %2891

2874:                                             ; preds = %2852, %2845
  %2875 = load i32, ptr %71, align 4, !tbaa !5
  %2876 = call ptr @__errno_location() #11
  store i32 %2875, ptr %2876, align 4, !tbaa !5
  %2877 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2878 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %2880, ptr noundef @.str.24)
  %2882 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2883 = load i32, ptr %2882, align 4, !tbaa !5
  %2884 = call ptr @s2n_strerror_debug(i32 noundef %2883, ptr noundef @.str.24)
  %2885 = call ptr @__errno_location() #11
  %2886 = load i32, ptr %2885, align 4, !tbaa !5
  %2887 = call ptr @strerror(i32 noundef %2886) #10
  %2888 = call ptr @__errno_location() #11
  %2889 = load i32, ptr %2888, align 4, !tbaa !5
  %2890 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2877, ptr noundef @.str.25, i32 noundef %2878, ptr noundef @.str.43, ptr noundef @.str.21, i32 noundef 257, ptr noundef %2881, ptr noundef %2884, ptr noundef %2887, i32 noundef %2889) #10
  br label %2891

2891:                                             ; preds = %2874, %2857
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #10
  br label %2892

2892:                                             ; preds = %2891
  br label %2893

2893:                                             ; preds = %2892
  call void @exit(i32 noundef 1) #12
  unreachable

2894:                                             ; No predecessors!
  br label %2895

2895:                                             ; preds = %2894
  br label %2896

2896:                                             ; preds = %2895, %2837
  br label %2897

2897:                                             ; preds = %2896
  br label %2898

2898:                                             ; preds = %2897
  br label %2899

2899:                                             ; preds = %2898
  %2900 = load i32, ptr @test_count, align 4, !tbaa !5
  %2901 = add nsw i32 %2900, 1
  store i32 %2901, ptr @test_count, align 4, !tbaa !5
  %2902 = load i32, ptr @expected_handler_called, align 4, !tbaa !5
  %2903 = icmp ne i32 %2902, 0
  br i1 %2903, label %2957, label %2904

2904:                                             ; preds = %2899
  br label %2905

2905:                                             ; preds = %2904
  br label %2906

2906:                                             ; preds = %2905
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #10
  %2907 = call ptr @__errno_location() #11
  %2908 = load i32, ptr %2907, align 4, !tbaa !5
  store i32 %2908, ptr %72, align 4, !tbaa !5
  %2909 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2910 = call i32 @s2n_print_stacktrace(ptr noundef %2909)
  %2911 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2912 = trunc i8 %2911 to i1
  br i1 %2912, label %2913, label %2935

2913:                                             ; preds = %2906
  %2914 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2915 = call i32 @fileno(ptr noundef %2914) #10
  %2916 = call i32 @isatty(i32 noundef %2915) #10
  %2917 = icmp ne i32 %2916, 0
  br i1 %2917, label %2918, label %2935

2918:                                             ; preds = %2913
  %2919 = load i32, ptr %72, align 4, !tbaa !5
  %2920 = call ptr @__errno_location() #11
  store i32 %2919, ptr %2920, align 4, !tbaa !5
  %2921 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2922 = load i32, ptr @test_count, align 4, !tbaa !5
  %2923 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2924 = load i32, ptr %2923, align 4, !tbaa !5
  %2925 = call ptr @s2n_strerror(i32 noundef %2924, ptr noundef @.str.24)
  %2926 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2927 = load i32, ptr %2926, align 4, !tbaa !5
  %2928 = call ptr @s2n_strerror_debug(i32 noundef %2927, ptr noundef @.str.24)
  %2929 = call ptr @__errno_location() #11
  %2930 = load i32, ptr %2929, align 4, !tbaa !5
  %2931 = call ptr @strerror(i32 noundef %2930) #10
  %2932 = call ptr @__errno_location() #11
  %2933 = load i32, ptr %2932, align 4, !tbaa !5
  %2934 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2921, ptr noundef @.str.22, i32 noundef %2922, ptr noundef @.str.44, ptr noundef @.str.21, i32 noundef 258, ptr noundef %2925, ptr noundef %2928, ptr noundef %2931, i32 noundef %2933) #10
  br label %2952

2935:                                             ; preds = %2913, %2906
  %2936 = load i32, ptr %72, align 4, !tbaa !5
  %2937 = call ptr @__errno_location() #11
  store i32 %2936, ptr %2937, align 4, !tbaa !5
  %2938 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2939 = load i32, ptr @test_count, align 4, !tbaa !5
  %2940 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2941 = load i32, ptr %2940, align 4, !tbaa !5
  %2942 = call ptr @s2n_strerror(i32 noundef %2941, ptr noundef @.str.24)
  %2943 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2944 = load i32, ptr %2943, align 4, !tbaa !5
  %2945 = call ptr @s2n_strerror_debug(i32 noundef %2944, ptr noundef @.str.24)
  %2946 = call ptr @__errno_location() #11
  %2947 = load i32, ptr %2946, align 4, !tbaa !5
  %2948 = call ptr @strerror(i32 noundef %2947) #10
  %2949 = call ptr @__errno_location() #11
  %2950 = load i32, ptr %2949, align 4, !tbaa !5
  %2951 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2938, ptr noundef @.str.25, i32 noundef %2939, ptr noundef @.str.44, ptr noundef @.str.21, i32 noundef 258, ptr noundef %2942, ptr noundef %2945, ptr noundef %2948, i32 noundef %2950) #10
  br label %2952

2952:                                             ; preds = %2935, %2918
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #10
  br label %2953

2953:                                             ; preds = %2952
  br label %2954

2954:                                             ; preds = %2953
  call void @exit(i32 noundef 1) #12
  unreachable

2955:                                             ; No predecessors!
  br label %2956

2956:                                             ; preds = %2955
  br label %2957

2957:                                             ; preds = %2956, %2899
  br label %2958

2958:                                             ; preds = %2957
  br label %2959

2959:                                             ; preds = %2958
  br label %2960

2960:                                             ; preds = %2959
  %2961 = load i32, ptr @test_count, align 4, !tbaa !5
  %2962 = add nsw i32 %2961, 1
  store i32 %2962, ptr @test_count, align 4, !tbaa !5
  %2963 = load i32, ptr @unexpected_handler_called, align 4, !tbaa !5
  %2964 = icmp ne i32 %2963, 0
  br i1 %2964, label %2965, label %3018

2965:                                             ; preds = %2960
  br label %2966

2966:                                             ; preds = %2965
  br label %2967

2967:                                             ; preds = %2966
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #10
  %2968 = call ptr @__errno_location() #11
  %2969 = load i32, ptr %2968, align 4, !tbaa !5
  store i32 %2969, ptr %73, align 4, !tbaa !5
  %2970 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2971 = call i32 @s2n_print_stacktrace(ptr noundef %2970)
  %2972 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2973 = trunc i8 %2972 to i1
  br i1 %2973, label %2974, label %2996

2974:                                             ; preds = %2967
  %2975 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2976 = call i32 @fileno(ptr noundef %2975) #10
  %2977 = call i32 @isatty(i32 noundef %2976) #10
  %2978 = icmp ne i32 %2977, 0
  br i1 %2978, label %2979, label %2996

2979:                                             ; preds = %2974
  %2980 = load i32, ptr %73, align 4, !tbaa !5
  %2981 = call ptr @__errno_location() #11
  store i32 %2980, ptr %2981, align 4, !tbaa !5
  %2982 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2983 = load i32, ptr @test_count, align 4, !tbaa !5
  %2984 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2985 = load i32, ptr %2984, align 4, !tbaa !5
  %2986 = call ptr @s2n_strerror(i32 noundef %2985, ptr noundef @.str.24)
  %2987 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2988 = load i32, ptr %2987, align 4, !tbaa !5
  %2989 = call ptr @s2n_strerror_debug(i32 noundef %2988, ptr noundef @.str.24)
  %2990 = call ptr @__errno_location() #11
  %2991 = load i32, ptr %2990, align 4, !tbaa !5
  %2992 = call ptr @strerror(i32 noundef %2991) #10
  %2993 = call ptr @__errno_location() #11
  %2994 = load i32, ptr %2993, align 4, !tbaa !5
  %2995 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2982, ptr noundef @.str.22, i32 noundef %2983, ptr noundef @.str.45, ptr noundef @.str.21, i32 noundef 259, ptr noundef %2986, ptr noundef %2989, ptr noundef %2992, i32 noundef %2994) #10
  br label %3013

2996:                                             ; preds = %2974, %2967
  %2997 = load i32, ptr %73, align 4, !tbaa !5
  %2998 = call ptr @__errno_location() #11
  store i32 %2997, ptr %2998, align 4, !tbaa !5
  %2999 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3000 = load i32, ptr @test_count, align 4, !tbaa !5
  %3001 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3002 = load i32, ptr %3001, align 4, !tbaa !5
  %3003 = call ptr @s2n_strerror(i32 noundef %3002, ptr noundef @.str.24)
  %3004 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3005 = load i32, ptr %3004, align 4, !tbaa !5
  %3006 = call ptr @s2n_strerror_debug(i32 noundef %3005, ptr noundef @.str.24)
  %3007 = call ptr @__errno_location() #11
  %3008 = load i32, ptr %3007, align 4, !tbaa !5
  %3009 = call ptr @strerror(i32 noundef %3008) #10
  %3010 = call ptr @__errno_location() #11
  %3011 = load i32, ptr %3010, align 4, !tbaa !5
  %3012 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2999, ptr noundef @.str.25, i32 noundef %3000, ptr noundef @.str.45, ptr noundef @.str.21, i32 noundef 259, ptr noundef %3003, ptr noundef %3006, ptr noundef %3009, i32 noundef %3011) #10
  br label %3013

3013:                                             ; preds = %2996, %2979
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #10
  br label %3014

3014:                                             ; preds = %3013
  br label %3015

3015:                                             ; preds = %3014
  call void @exit(i32 noundef 1) #12
  unreachable

3016:                                             ; No predecessors!
  br label %3017

3017:                                             ; preds = %3016
  br label %3018

3018:                                             ; preds = %3017, %2960
  br label %3019

3019:                                             ; preds = %3018
  br label %3020

3020:                                             ; preds = %3019
  br label %3342

3021:                                             ; preds = %2827
  br label %3022

3022:                                             ; preds = %3021
  br label %3023

3023:                                             ; preds = %3022
  br label %3024

3024:                                             ; preds = %3023
  %3025 = load i32, ptr @test_count, align 4, !tbaa !5
  %3026 = add nsw i32 %3025, 1
  store i32 %3026, ptr @test_count, align 4, !tbaa !5
  %3027 = load ptr, ptr %62, align 8, !tbaa !9
  %3028 = call i32 @s2n_handshake_read_io(ptr noundef %3027)
  %3029 = icmp eq i32 %3028, -1
  br i1 %3029, label %3083, label %3030

3030:                                             ; preds = %3024
  br label %3031

3031:                                             ; preds = %3030
  br label %3032

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

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

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

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

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

3079:                                             ; preds = %3078
  br label %3080

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

3081:                                             ; No predecessors!
  br label %3082

3082:                                             ; preds = %3081
  br label %3083

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

3084:                                             ; preds = %3083
  br label %3085

3085:                                             ; preds = %3084
  br label %3086

3086:                                             ; preds = %3085
  %3087 = load i32, ptr @test_count, align 4, !tbaa !5
  %3088 = add nsw i32 %3087, 1
  store i32 %3088, ptr @test_count, align 4, !tbaa !5
  %3089 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3090 = load i32, ptr %3089, align 4, !tbaa !5
  %3091 = icmp eq i32 %3090, 335544322
  br i1 %3091, label %3145, label %3092

3092:                                             ; preds = %3086
  br label %3093

3093:                                             ; preds = %3092
  br label %3094

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

3101:                                             ; preds = %3094
  %3102 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3103 = call i32 @fileno(ptr noundef %3102) #10
  %3104 = call i32 @isatty(i32 noundef %3103) #10
  %3105 = icmp ne i32 %3104, 0
  br i1 %3105, label %3106, label %3123

3106:                                             ; preds = %3101
  %3107 = load i32, ptr %75, align 4, !tbaa !5
  %3108 = call ptr @__errno_location() #11
  store i32 %3107, ptr %3108, align 4, !tbaa !5
  %3109 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3110 = load i32, ptr @test_count, align 4, !tbaa !5
  %3111 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3112 = load i32, ptr %3111, align 4, !tbaa !5
  %3113 = call ptr @s2n_strerror(i32 noundef %3112, ptr noundef @.str.24)
  %3114 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3115 = load i32, ptr %3114, align 4, !tbaa !5
  %3116 = call ptr @s2n_strerror_debug(i32 noundef %3115, ptr noundef @.str.24)
  %3117 = call ptr @__errno_location() #11
  %3118 = load i32, ptr %3117, align 4, !tbaa !5
  %3119 = call ptr @strerror(i32 noundef %3118) #10
  %3120 = call ptr @__errno_location() #11
  %3121 = load i32, ptr %3120, align 4, !tbaa !5
  %3122 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3109, ptr noundef @.str.22, i32 noundef %3110, ptr noundef @.str.47, ptr noundef @.str.21, i32 noundef 261, ptr noundef %3113, ptr noundef %3116, ptr noundef %3119, i32 noundef %3121) #10
  br label %3140

3123:                                             ; preds = %3101, %3094
  %3124 = load i32, ptr %75, align 4, !tbaa !5
  %3125 = call ptr @__errno_location() #11
  store i32 %3124, ptr %3125, align 4, !tbaa !5
  %3126 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3127 = load i32, ptr @test_count, align 4, !tbaa !5
  %3128 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3129 = load i32, ptr %3128, align 4, !tbaa !5
  %3130 = call ptr @s2n_strerror(i32 noundef %3129, ptr noundef @.str.24)
  %3131 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3132 = load i32, ptr %3131, align 4, !tbaa !5
  %3133 = call ptr @s2n_strerror_debug(i32 noundef %3132, ptr noundef @.str.24)
  %3134 = call ptr @__errno_location() #11
  %3135 = load i32, ptr %3134, align 4, !tbaa !5
  %3136 = call ptr @strerror(i32 noundef %3135) #10
  %3137 = call ptr @__errno_location() #11
  %3138 = load i32, ptr %3137, align 4, !tbaa !5
  %3139 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3126, ptr noundef @.str.25, i32 noundef %3127, ptr noundef @.str.47, ptr noundef @.str.21, i32 noundef 261, ptr noundef %3130, ptr noundef %3133, ptr noundef %3136, i32 noundef %3138) #10
  br label %3140

3140:                                             ; preds = %3123, %3106
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #10
  br label %3141

3141:                                             ; preds = %3140
  br label %3142

3142:                                             ; preds = %3141
  call void @exit(i32 noundef 1) #12
  unreachable

3143:                                             ; No predecessors!
  br label %3144

3144:                                             ; preds = %3143
  br label %3145

3145:                                             ; preds = %3144, %3086
  br label %3146

3146:                                             ; preds = %3145
  br label %3147

3147:                                             ; preds = %3146
  br label %3148

3148:                                             ; preds = %3147
  %3149 = load i32, ptr @test_count, align 4, !tbaa !5
  %3150 = add nsw i32 %3149, 1
  store i32 %3150, ptr @test_count, align 4, !tbaa !5
  %3151 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3152 = load i32, ptr %3151, align 4, !tbaa !5
  %3153 = call ptr @s2n_strerror_debug(i32 noundef %3152, ptr noundef @.str.24)
  %3154 = icmp eq ptr %3153, null
  br i1 %3154, label %3155, label %3208

3155:                                             ; preds = %3148
  br label %3156

3156:                                             ; preds = %3155
  br label %3157

3157:                                             ; preds = %3156
  call void @llvm.lifetime.start.p0(i64 4, ptr %76) #10
  %3158 = call ptr @__errno_location() #11
  %3159 = load i32, ptr %3158, align 4, !tbaa !5
  store i32 %3159, ptr %76, align 4, !tbaa !5
  %3160 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3161 = call i32 @s2n_print_stacktrace(ptr noundef %3160)
  %3162 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3163 = trunc i8 %3162 to i1
  br i1 %3163, label %3164, label %3186

3164:                                             ; preds = %3157
  %3165 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3166 = call i32 @fileno(ptr noundef %3165) #10
  %3167 = call i32 @isatty(i32 noundef %3166) #10
  %3168 = icmp ne i32 %3167, 0
  br i1 %3168, label %3169, label %3186

3169:                                             ; preds = %3164
  %3170 = load i32, ptr %76, align 4, !tbaa !5
  %3171 = call ptr @__errno_location() #11
  store i32 %3170, ptr %3171, align 4, !tbaa !5
  %3172 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3173 = load i32, ptr @test_count, align 4, !tbaa !5
  %3174 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3175 = load i32, ptr %3174, align 4, !tbaa !5
  %3176 = call ptr @s2n_strerror(i32 noundef %3175, ptr noundef @.str.24)
  %3177 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3178 = load i32, ptr %3177, align 4, !tbaa !5
  %3179 = call ptr @s2n_strerror_debug(i32 noundef %3178, ptr noundef @.str.24)
  %3180 = call ptr @__errno_location() #11
  %3181 = load i32, ptr %3180, align 4, !tbaa !5
  %3182 = call ptr @strerror(i32 noundef %3181) #10
  %3183 = call ptr @__errno_location() #11
  %3184 = load i32, ptr %3183, align 4, !tbaa !5
  %3185 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3172, ptr noundef @.str.22, i32 noundef %3173, ptr noundef @.str.48, ptr noundef @.str.21, i32 noundef 261, ptr noundef %3176, ptr noundef %3179, ptr noundef %3182, i32 noundef %3184) #10
  br label %3203

3186:                                             ; preds = %3164, %3157
  %3187 = load i32, ptr %76, align 4, !tbaa !5
  %3188 = call ptr @__errno_location() #11
  store i32 %3187, ptr %3188, align 4, !tbaa !5
  %3189 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3190 = load i32, ptr @test_count, align 4, !tbaa !5
  %3191 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3192 = load i32, ptr %3191, align 4, !tbaa !5
  %3193 = call ptr @s2n_strerror(i32 noundef %3192, ptr noundef @.str.24)
  %3194 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3195 = load i32, ptr %3194, align 4, !tbaa !5
  %3196 = call ptr @s2n_strerror_debug(i32 noundef %3195, ptr noundef @.str.24)
  %3197 = call ptr @__errno_location() #11
  %3198 = load i32, ptr %3197, align 4, !tbaa !5
  %3199 = call ptr @strerror(i32 noundef %3198) #10
  %3200 = call ptr @__errno_location() #11
  %3201 = load i32, ptr %3200, align 4, !tbaa !5
  %3202 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3189, ptr noundef @.str.25, i32 noundef %3190, ptr noundef @.str.48, ptr noundef @.str.21, i32 noundef 261, ptr noundef %3193, ptr noundef %3196, ptr noundef %3199, i32 noundef %3201) #10
  br label %3203

3203:                                             ; preds = %3186, %3169
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #10
  br label %3204

3204:                                             ; preds = %3203
  br label %3205

3205:                                             ; preds = %3204
  call void @exit(i32 noundef 1) #12
  unreachable

3206:                                             ; No predecessors!
  br label %3207

3207:                                             ; preds = %3206
  br label %3208

3208:                                             ; preds = %3207, %3148
  br label %3209

3209:                                             ; preds = %3208
  br label %3210

3210:                                             ; preds = %3209
  br label %3211

3211:                                             ; preds = %3210
  br label %3212

3212:                                             ; preds = %3211
  br label %3213

3213:                                             ; preds = %3212
  %3214 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %3214, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %3215 = call ptr @__errno_location() #11
  store i32 0, ptr %3215, align 4, !tbaa !5
  br label %3216

3216:                                             ; preds = %3213
  br label %3217

3217:                                             ; preds = %3216
  br label %3218

3218:                                             ; preds = %3217
  br label %3219

3219:                                             ; preds = %3218
  br label %3220

3220:                                             ; preds = %3219
  %3221 = load i32, ptr @test_count, align 4, !tbaa !5
  %3222 = add nsw i32 %3221, 1
  store i32 %3222, ptr @test_count, align 4, !tbaa !5
  %3223 = load i32, ptr @expected_handler_called, align 4, !tbaa !5
  %3224 = icmp ne i32 %3223, 0
  br i1 %3224, label %3225, label %3278

3225:                                             ; preds = %3220
  br label %3226

3226:                                             ; preds = %3225
  br label %3227

3227:                                             ; preds = %3226
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #10
  %3228 = call ptr @__errno_location() #11
  %3229 = load i32, ptr %3228, align 4, !tbaa !5
  store i32 %3229, ptr %77, align 4, !tbaa !5
  %3230 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3231 = call i32 @s2n_print_stacktrace(ptr noundef %3230)
  %3232 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3233 = trunc i8 %3232 to i1
  br i1 %3233, label %3234, label %3256

3234:                                             ; preds = %3227
  %3235 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3236 = call i32 @fileno(ptr noundef %3235) #10
  %3237 = call i32 @isatty(i32 noundef %3236) #10
  %3238 = icmp ne i32 %3237, 0
  br i1 %3238, label %3239, label %3256

3239:                                             ; preds = %3234
  %3240 = load i32, ptr %77, align 4, !tbaa !5
  %3241 = call ptr @__errno_location() #11
  store i32 %3240, ptr %3241, align 4, !tbaa !5
  %3242 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3243 = load i32, ptr @test_count, align 4, !tbaa !5
  %3244 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3245 = load i32, ptr %3244, align 4, !tbaa !5
  %3246 = call ptr @s2n_strerror(i32 noundef %3245, ptr noundef @.str.24)
  %3247 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3248 = load i32, ptr %3247, align 4, !tbaa !5
  %3249 = call ptr @s2n_strerror_debug(i32 noundef %3248, ptr noundef @.str.24)
  %3250 = call ptr @__errno_location() #11
  %3251 = load i32, ptr %3250, align 4, !tbaa !5
  %3252 = call ptr @strerror(i32 noundef %3251) #10
  %3253 = call ptr @__errno_location() #11
  %3254 = load i32, ptr %3253, align 4, !tbaa !5
  %3255 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3242, ptr noundef @.str.22, i32 noundef %3243, ptr noundef @.str.49, ptr noundef @.str.21, i32 noundef 262, ptr noundef %3246, ptr noundef %3249, ptr noundef %3252, i32 noundef %3254) #10
  br label %3273

3256:                                             ; preds = %3234, %3227
  %3257 = load i32, ptr %77, align 4, !tbaa !5
  %3258 = call ptr @__errno_location() #11
  store i32 %3257, ptr %3258, align 4, !tbaa !5
  %3259 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3260 = load i32, ptr @test_count, align 4, !tbaa !5
  %3261 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3262 = load i32, ptr %3261, align 4, !tbaa !5
  %3263 = call ptr @s2n_strerror(i32 noundef %3262, ptr noundef @.str.24)
  %3264 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3265 = load i32, ptr %3264, align 4, !tbaa !5
  %3266 = call ptr @s2n_strerror_debug(i32 noundef %3265, ptr noundef @.str.24)
  %3267 = call ptr @__errno_location() #11
  %3268 = load i32, ptr %3267, align 4, !tbaa !5
  %3269 = call ptr @strerror(i32 noundef %3268) #10
  %3270 = call ptr @__errno_location() #11
  %3271 = load i32, ptr %3270, align 4, !tbaa !5
  %3272 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3259, ptr noundef @.str.25, i32 noundef %3260, ptr noundef @.str.49, ptr noundef @.str.21, i32 noundef 262, ptr noundef %3263, ptr noundef %3266, ptr noundef %3269, i32 noundef %3271) #10
  br label %3273

3273:                                             ; preds = %3256, %3239
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #10
  br label %3274

3274:                                             ; preds = %3273
  br label %3275

3275:                                             ; preds = %3274
  call void @exit(i32 noundef 1) #12
  unreachable

3276:                                             ; No predecessors!
  br label %3277

3277:                                             ; preds = %3276
  br label %3278

3278:                                             ; preds = %3277, %3220
  br label %3279

3279:                                             ; preds = %3278
  br label %3280

3280:                                             ; preds = %3279
  br label %3281

3281:                                             ; preds = %3280
  %3282 = load i32, ptr @test_count, align 4, !tbaa !5
  %3283 = add nsw i32 %3282, 1
  store i32 %3283, ptr @test_count, align 4, !tbaa !5
  %3284 = load i32, ptr @unexpected_handler_called, align 4, !tbaa !5
  %3285 = icmp ne i32 %3284, 0
  br i1 %3285, label %3286, label %3339

3286:                                             ; preds = %3281
  br label %3287

3287:                                             ; preds = %3286
  br label %3288

3288:                                             ; preds = %3287
  call void @llvm.lifetime.start.p0(i64 4, ptr %78) #10
  %3289 = call ptr @__errno_location() #11
  %3290 = load i32, ptr %3289, align 4, !tbaa !5
  store i32 %3290, ptr %78, align 4, !tbaa !5
  %3291 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3292 = call i32 @s2n_print_stacktrace(ptr noundef %3291)
  %3293 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3294 = trunc i8 %3293 to i1
  br i1 %3294, label %3295, label %3317

3295:                                             ; preds = %3288
  %3296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3297 = call i32 @fileno(ptr noundef %3296) #10
  %3298 = call i32 @isatty(i32 noundef %3297) #10
  %3299 = icmp ne i32 %3298, 0
  br i1 %3299, label %3300, label %3317

3300:                                             ; preds = %3295
  %3301 = load i32, ptr %78, align 4, !tbaa !5
  %3302 = call ptr @__errno_location() #11
  store i32 %3301, ptr %3302, align 4, !tbaa !5
  %3303 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3304 = load i32, ptr @test_count, align 4, !tbaa !5
  %3305 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3306 = load i32, ptr %3305, align 4, !tbaa !5
  %3307 = call ptr @s2n_strerror(i32 noundef %3306, ptr noundef @.str.24)
  %3308 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3309 = load i32, ptr %3308, align 4, !tbaa !5
  %3310 = call ptr @s2n_strerror_debug(i32 noundef %3309, ptr noundef @.str.24)
  %3311 = call ptr @__errno_location() #11
  %3312 = load i32, ptr %3311, align 4, !tbaa !5
  %3313 = call ptr @strerror(i32 noundef %3312) #10
  %3314 = call ptr @__errno_location() #11
  %3315 = load i32, ptr %3314, align 4, !tbaa !5
  %3316 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3303, ptr noundef @.str.22, i32 noundef %3304, ptr noundef @.str.45, ptr noundef @.str.21, i32 noundef 263, ptr noundef %3307, ptr noundef %3310, ptr noundef %3313, i32 noundef %3315) #10
  br label %3334

3317:                                             ; preds = %3295, %3288
  %3318 = load i32, ptr %78, align 4, !tbaa !5
  %3319 = call ptr @__errno_location() #11
  store i32 %3318, ptr %3319, align 4, !tbaa !5
  %3320 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3321 = load i32, ptr @test_count, align 4, !tbaa !5
  %3322 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3323 = load i32, ptr %3322, align 4, !tbaa !5
  %3324 = call ptr @s2n_strerror(i32 noundef %3323, ptr noundef @.str.24)
  %3325 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3326 = load i32, ptr %3325, align 4, !tbaa !5
  %3327 = call ptr @s2n_strerror_debug(i32 noundef %3326, ptr noundef @.str.24)
  %3328 = call ptr @__errno_location() #11
  %3329 = load i32, ptr %3328, align 4, !tbaa !5
  %3330 = call ptr @strerror(i32 noundef %3329) #10
  %3331 = call ptr @__errno_location() #11
  %3332 = load i32, ptr %3331, align 4, !tbaa !5
  %3333 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3320, ptr noundef @.str.25, i32 noundef %3321, ptr noundef @.str.45, ptr noundef @.str.21, i32 noundef 263, ptr noundef %3324, ptr noundef %3327, ptr noundef %3330, i32 noundef %3332) #10
  br label %3334

3334:                                             ; preds = %3317, %3300
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #10
  br label %3335

3335:                                             ; preds = %3334
  br label %3336

3336:                                             ; preds = %3335
  call void @exit(i32 noundef 1) #12
  unreachable

3337:                                             ; No predecessors!
  br label %3338

3338:                                             ; preds = %3337
  br label %3339

3339:                                             ; preds = %3338, %3281
  br label %3340

3340:                                             ; preds = %3339
  br label %3341

3341:                                             ; preds = %3340
  br label %3342

3342:                                             ; preds = %3341, %3020
  br label %3343

3343:                                             ; preds = %3342
  %3344 = load i32, ptr @test_count, align 4, !tbaa !5
  %3345 = add nsw i32 %3344, 1
  store i32 %3345, ptr @test_count, align 4, !tbaa !5
  %3346 = call i32 @s2n_stuffer_wipe(ptr noundef %63)
  %3347 = icmp eq i32 %3346, -1
  br i1 %3347, label %3348, label %3401

3348:                                             ; preds = %3343
  br label %3349

3349:                                             ; preds = %3348
  br label %3350

3350:                                             ; preds = %3349
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #10
  %3351 = call ptr @__errno_location() #11
  %3352 = load i32, ptr %3351, align 4, !tbaa !5
  store i32 %3352, ptr %79, align 4, !tbaa !5
  %3353 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3354 = call i32 @s2n_print_stacktrace(ptr noundef %3353)
  %3355 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3356 = trunc i8 %3355 to i1
  br i1 %3356, label %3357, label %3379

3357:                                             ; preds = %3350
  %3358 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3359 = call i32 @fileno(ptr noundef %3358) #10
  %3360 = call i32 @isatty(i32 noundef %3359) #10
  %3361 = icmp ne i32 %3360, 0
  br i1 %3361, label %3362, label %3379

3362:                                             ; preds = %3357
  %3363 = load i32, ptr %79, align 4, !tbaa !5
  %3364 = call ptr @__errno_location() #11
  store i32 %3363, ptr %3364, align 4, !tbaa !5
  %3365 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3366 = load i32, ptr @test_count, align 4, !tbaa !5
  %3367 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3368 = load i32, ptr %3367, align 4, !tbaa !5
  %3369 = call ptr @s2n_strerror(i32 noundef %3368, ptr noundef @.str.24)
  %3370 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3371 = load i32, ptr %3370, align 4, !tbaa !5
  %3372 = call ptr @s2n_strerror_debug(i32 noundef %3371, ptr noundef @.str.24)
  %3373 = call ptr @__errno_location() #11
  %3374 = load i32, ptr %3373, align 4, !tbaa !5
  %3375 = call ptr @strerror(i32 noundef %3374) #10
  %3376 = call ptr @__errno_location() #11
  %3377 = load i32, ptr %3376, align 4, !tbaa !5
  %3378 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3365, ptr noundef @.str.22, i32 noundef %3366, ptr noundef @.str.50, ptr noundef @.str.21, i32 noundef 266, ptr noundef %3369, ptr noundef %3372, ptr noundef %3375, i32 noundef %3377) #10
  br label %3396

3379:                                             ; preds = %3357, %3350
  %3380 = load i32, ptr %79, align 4, !tbaa !5
  %3381 = call ptr @__errno_location() #11
  store i32 %3380, ptr %3381, align 4, !tbaa !5
  %3382 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3383 = load i32, ptr @test_count, align 4, !tbaa !5
  %3384 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3385 = load i32, ptr %3384, align 4, !tbaa !5
  %3386 = call ptr @s2n_strerror(i32 noundef %3385, ptr noundef @.str.24)
  %3387 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3388 = load i32, ptr %3387, align 4, !tbaa !5
  %3389 = call ptr @s2n_strerror_debug(i32 noundef %3388, ptr noundef @.str.24)
  %3390 = call ptr @__errno_location() #11
  %3391 = load i32, ptr %3390, align 4, !tbaa !5
  %3392 = call ptr @strerror(i32 noundef %3391) #10
  %3393 = call ptr @__errno_location() #11
  %3394 = load i32, ptr %3393, align 4, !tbaa !5
  %3395 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3382, ptr noundef @.str.25, i32 noundef %3383, ptr noundef @.str.50, ptr noundef @.str.21, i32 noundef 266, ptr noundef %3386, ptr noundef %3389, ptr noundef %3392, i32 noundef %3394) #10
  br label %3396

3396:                                             ; preds = %3379, %3362
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #10
  br label %3397

3397:                                             ; preds = %3396
  br label %3398

3398:                                             ; preds = %3397
  call void @exit(i32 noundef 1) #12
  unreachable

3399:                                             ; No predecessors!
  br label %3400

3400:                                             ; preds = %3399
  br label %3401

3401:                                             ; preds = %3400, %3343
  br label %3402

3402:                                             ; preds = %3401
  br label %3403

3403:                                             ; preds = %3402
  br label %3404

3404:                                             ; preds = %3403
  %3405 = load i32, ptr %68, align 4, !tbaa !5
  %3406 = add nsw i32 %3405, 1
  store i32 %3406, ptr %68, align 4, !tbaa !5
  br label %2695, !llvm.loop !57

3407:                                             ; preds = %2698
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #10
  br label %3408

3408:                                             ; preds = %3407
  %3409 = load i32, ptr %66, align 4, !tbaa !5
  %3410 = add nsw i32 %3409, 1
  store i32 %3410, ptr %66, align 4, !tbaa !5
  br label %2680, !llvm.loop !58

3411:                                             ; preds = %2684
  br label %3412

3412:                                             ; preds = %3411
  %3413 = load i32, ptr @test_count, align 4, !tbaa !5
  %3414 = add nsw i32 %3413, 1
  store i32 %3414, ptr @test_count, align 4, !tbaa !5
  %3415 = call i32 @s2n_stuffer_free(ptr noundef %63)
  %3416 = icmp eq i32 %3415, -1
  br i1 %3416, label %3417, label %3470

3417:                                             ; preds = %3412
  br label %3418

3418:                                             ; preds = %3417
  br label %3419

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

3426:                                             ; preds = %3419
  %3427 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3428 = call i32 @fileno(ptr noundef %3427) #10
  %3429 = call i32 @isatty(i32 noundef %3428) #10
  %3430 = icmp ne i32 %3429, 0
  br i1 %3430, label %3431, label %3448

3431:                                             ; preds = %3426
  %3432 = load i32, ptr %80, align 4, !tbaa !5
  %3433 = call ptr @__errno_location() #11
  store i32 %3432, ptr %3433, align 4, !tbaa !5
  %3434 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3435 = load i32, ptr @test_count, align 4, !tbaa !5
  %3436 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3437 = load i32, ptr %3436, align 4, !tbaa !5
  %3438 = call ptr @s2n_strerror(i32 noundef %3437, ptr noundef @.str.24)
  %3439 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3440 = load i32, ptr %3439, align 4, !tbaa !5
  %3441 = call ptr @s2n_strerror_debug(i32 noundef %3440, ptr noundef @.str.24)
  %3442 = call ptr @__errno_location() #11
  %3443 = load i32, ptr %3442, align 4, !tbaa !5
  %3444 = call ptr @strerror(i32 noundef %3443) #10
  %3445 = call ptr @__errno_location() #11
  %3446 = load i32, ptr %3445, align 4, !tbaa !5
  %3447 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3434, ptr noundef @.str.22, i32 noundef %3435, ptr noundef @.str.51, ptr noundef @.str.21, i32 noundef 270, ptr noundef %3438, ptr noundef %3441, ptr noundef %3444, i32 noundef %3446) #10
  br label %3465

3448:                                             ; preds = %3426, %3419
  %3449 = load i32, ptr %80, align 4, !tbaa !5
  %3450 = call ptr @__errno_location() #11
  store i32 %3449, ptr %3450, align 4, !tbaa !5
  %3451 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3452 = load i32, ptr @test_count, align 4, !tbaa !5
  %3453 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3454 = load i32, ptr %3453, align 4, !tbaa !5
  %3455 = call ptr @s2n_strerror(i32 noundef %3454, ptr noundef @.str.24)
  %3456 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3457 = load i32, ptr %3456, align 4, !tbaa !5
  %3458 = call ptr @s2n_strerror_debug(i32 noundef %3457, ptr noundef @.str.24)
  %3459 = call ptr @__errno_location() #11
  %3460 = load i32, ptr %3459, align 4, !tbaa !5
  %3461 = call ptr @strerror(i32 noundef %3460) #10
  %3462 = call ptr @__errno_location() #11
  %3463 = load i32, ptr %3462, align 4, !tbaa !5
  %3464 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3451, ptr noundef @.str.25, i32 noundef %3452, ptr noundef @.str.51, ptr noundef @.str.21, i32 noundef 270, ptr noundef %3455, ptr noundef %3458, ptr noundef %3461, i32 noundef %3463) #10
  br label %3465

3465:                                             ; preds = %3448, %3431
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #10
  br label %3466

3466:                                             ; preds = %3465
  br label %3467

3467:                                             ; preds = %3466
  call void @exit(i32 noundef 1) #12
  unreachable

3468:                                             ; No predecessors!
  br label %3469

3469:                                             ; preds = %3468
  br label %3470

3470:                                             ; preds = %3469, %3412
  br label %3471

3471:                                             ; preds = %3470
  br label %3472

3472:                                             ; preds = %3471
  br label %3473

3473:                                             ; preds = %3472
  %3474 = load i32, ptr @test_count, align 4, !tbaa !5
  %3475 = add nsw i32 %3474, 1
  store i32 %3475, ptr @test_count, align 4, !tbaa !5
  %3476 = load ptr, ptr %62, align 8, !tbaa !9
  %3477 = call i32 @s2n_connection_free(ptr noundef %3476)
  %3478 = icmp eq i32 %3477, -1
  br i1 %3478, label %3479, label %3532

3479:                                             ; preds = %3473
  br label %3480

3480:                                             ; preds = %3479
  br label %3481

3481:                                             ; preds = %3480
  call void @llvm.lifetime.start.p0(i64 4, ptr %81) #10
  %3482 = call ptr @__errno_location() #11
  %3483 = load i32, ptr %3482, align 4, !tbaa !5
  store i32 %3483, ptr %81, align 4, !tbaa !5
  %3484 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3485 = call i32 @s2n_print_stacktrace(ptr noundef %3484)
  %3486 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3487 = trunc i8 %3486 to i1
  br i1 %3487, label %3488, label %3510

3488:                                             ; preds = %3481
  %3489 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3490 = call i32 @fileno(ptr noundef %3489) #10
  %3491 = call i32 @isatty(i32 noundef %3490) #10
  %3492 = icmp ne i32 %3491, 0
  br i1 %3492, label %3493, label %3510

3493:                                             ; preds = %3488
  %3494 = load i32, ptr %81, align 4, !tbaa !5
  %3495 = call ptr @__errno_location() #11
  store i32 %3494, ptr %3495, align 4, !tbaa !5
  %3496 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3497 = load i32, ptr @test_count, align 4, !tbaa !5
  %3498 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3499 = load i32, ptr %3498, align 4, !tbaa !5
  %3500 = call ptr @s2n_strerror(i32 noundef %3499, ptr noundef @.str.24)
  %3501 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3502 = load i32, ptr %3501, align 4, !tbaa !5
  %3503 = call ptr @s2n_strerror_debug(i32 noundef %3502, ptr noundef @.str.24)
  %3504 = call ptr @__errno_location() #11
  %3505 = load i32, ptr %3504, align 4, !tbaa !5
  %3506 = call ptr @strerror(i32 noundef %3505) #10
  %3507 = call ptr @__errno_location() #11
  %3508 = load i32, ptr %3507, align 4, !tbaa !5
  %3509 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3496, ptr noundef @.str.22, i32 noundef %3497, ptr noundef @.str.33, ptr noundef @.str.21, i32 noundef 271, ptr noundef %3500, ptr noundef %3503, ptr noundef %3506, i32 noundef %3508) #10
  br label %3527

3510:                                             ; preds = %3488, %3481
  %3511 = load i32, ptr %81, align 4, !tbaa !5
  %3512 = call ptr @__errno_location() #11
  store i32 %3511, ptr %3512, align 4, !tbaa !5
  %3513 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3514 = load i32, ptr @test_count, align 4, !tbaa !5
  %3515 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3516 = load i32, ptr %3515, align 4, !tbaa !5
  %3517 = call ptr @s2n_strerror(i32 noundef %3516, ptr noundef @.str.24)
  %3518 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3519 = load i32, ptr %3518, align 4, !tbaa !5
  %3520 = call ptr @s2n_strerror_debug(i32 noundef %3519, ptr noundef @.str.24)
  %3521 = call ptr @__errno_location() #11
  %3522 = load i32, ptr %3521, align 4, !tbaa !5
  %3523 = call ptr @strerror(i32 noundef %3522) #10
  %3524 = call ptr @__errno_location() #11
  %3525 = load i32, ptr %3524, align 4, !tbaa !5
  %3526 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3513, ptr noundef @.str.25, i32 noundef %3514, ptr noundef @.str.33, ptr noundef @.str.21, i32 noundef 271, ptr noundef %3517, ptr noundef %3520, ptr noundef %3523, i32 noundef %3525) #10
  br label %3527

3527:                                             ; preds = %3510, %3493
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #10
  br label %3528

3528:                                             ; preds = %3527
  br label %3529

3529:                                             ; preds = %3528
  call void @exit(i32 noundef 1) #12
  unreachable

3530:                                             ; No predecessors!
  br label %3531

3531:                                             ; preds = %3530
  br label %3532

3532:                                             ; preds = %3531, %3473
  br label %3533

3533:                                             ; preds = %3532
  br label %3534

3534:                                             ; preds = %3533
  call void @llvm.lifetime.end.p0(i64 40, ptr %63) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %82) #10
  %3535 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %3535, ptr %82, align 8, !tbaa !9
  %3536 = load ptr, ptr %82, align 8, !tbaa !9
  %3537 = getelementptr inbounds %struct.s2n_connection, ptr %3536, i32 0, i32 23
  store i8 33, ptr %3537, align 4, !tbaa !19
  call void @llvm.lifetime.start.p0(i64 40, ptr %83) #10
  call void @llvm.memset.p0.i64(ptr align 8 %83, i8 0, i64 40, i1 false)
  br label %3538

3538:                                             ; preds = %3534
  %3539 = load i32, ptr @test_count, align 4, !tbaa !5
  %3540 = add nsw i32 %3539, 1
  store i32 %3540, ptr @test_count, align 4, !tbaa !5
  %3541 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %83, i32 noundef 0)
  %3542 = icmp eq i32 %3541, -1
  br i1 %3542, label %3543, label %3596

3543:                                             ; preds = %3538
  br label %3544

3544:                                             ; preds = %3543
  br label %3545

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

3552:                                             ; preds = %3545
  %3553 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3554 = call i32 @fileno(ptr noundef %3553) #10
  %3555 = call i32 @isatty(i32 noundef %3554) #10
  %3556 = icmp ne i32 %3555, 0
  br i1 %3556, label %3557, label %3574

3557:                                             ; preds = %3552
  %3558 = load i32, ptr %84, align 4, !tbaa !5
  %3559 = call ptr @__errno_location() #11
  store i32 %3558, ptr %3559, align 4, !tbaa !5
  %3560 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3561 = load i32, ptr @test_count, align 4, !tbaa !5
  %3562 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3563 = load i32, ptr %3562, align 4, !tbaa !5
  %3564 = call ptr @s2n_strerror(i32 noundef %3563, ptr noundef @.str.24)
  %3565 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3566 = load i32, ptr %3565, align 4, !tbaa !5
  %3567 = call ptr @s2n_strerror_debug(i32 noundef %3566, ptr noundef @.str.24)
  %3568 = call ptr @__errno_location() #11
  %3569 = load i32, ptr %3568, align 4, !tbaa !5
  %3570 = call ptr @strerror(i32 noundef %3569) #10
  %3571 = call ptr @__errno_location() #11
  %3572 = load i32, ptr %3571, align 4, !tbaa !5
  %3573 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3560, ptr noundef @.str.22, i32 noundef %3561, ptr noundef @.str.39, ptr noundef @.str.21, i32 noundef 280, ptr noundef %3564, ptr noundef %3567, ptr noundef %3570, i32 noundef %3572) #10
  br label %3591

3574:                                             ; preds = %3552, %3545
  %3575 = load i32, ptr %84, align 4, !tbaa !5
  %3576 = call ptr @__errno_location() #11
  store i32 %3575, ptr %3576, align 4, !tbaa !5
  %3577 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3578 = load i32, ptr @test_count, align 4, !tbaa !5
  %3579 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3580 = load i32, ptr %3579, align 4, !tbaa !5
  %3581 = call ptr @s2n_strerror(i32 noundef %3580, ptr noundef @.str.24)
  %3582 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3583 = load i32, ptr %3582, align 4, !tbaa !5
  %3584 = call ptr @s2n_strerror_debug(i32 noundef %3583, ptr noundef @.str.24)
  %3585 = call ptr @__errno_location() #11
  %3586 = load i32, ptr %3585, align 4, !tbaa !5
  %3587 = call ptr @strerror(i32 noundef %3586) #10
  %3588 = call ptr @__errno_location() #11
  %3589 = load i32, ptr %3588, align 4, !tbaa !5
  %3590 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3577, ptr noundef @.str.25, i32 noundef %3578, ptr noundef @.str.39, ptr noundef @.str.21, i32 noundef 280, ptr noundef %3581, ptr noundef %3584, ptr noundef %3587, i32 noundef %3589) #10
  br label %3591

3591:                                             ; preds = %3574, %3557
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #10
  br label %3592

3592:                                             ; preds = %3591
  br label %3593

3593:                                             ; preds = %3592
  call void @exit(i32 noundef 1) #12
  unreachable

3594:                                             ; No predecessors!
  br label %3595

3595:                                             ; preds = %3594
  br label %3596

3596:                                             ; preds = %3595, %3538
  br label %3597

3597:                                             ; preds = %3596
  br label %3598

3598:                                             ; preds = %3597
  br label %3599

3599:                                             ; preds = %3598
  %3600 = load i32, ptr @test_count, align 4, !tbaa !5
  %3601 = add nsw i32 %3600, 1
  store i32 %3601, ptr @test_count, align 4, !tbaa !5
  %3602 = load ptr, ptr %82, align 8, !tbaa !9
  %3603 = call i32 @s2n_connection_set_io_stuffers(ptr noundef %83, ptr noundef null, ptr noundef %3602)
  %3604 = icmp eq i32 %3603, -1
  br i1 %3604, label %3605, label %3658

3605:                                             ; preds = %3599
  br label %3606

3606:                                             ; preds = %3605
  br label %3607

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

3614:                                             ; preds = %3607
  %3615 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3616 = call i32 @fileno(ptr noundef %3615) #10
  %3617 = call i32 @isatty(i32 noundef %3616) #10
  %3618 = icmp ne i32 %3617, 0
  br i1 %3618, label %3619, label %3636

3619:                                             ; preds = %3614
  %3620 = load i32, ptr %85, align 4, !tbaa !5
  %3621 = call ptr @__errno_location() #11
  store i32 %3620, ptr %3621, align 4, !tbaa !5
  %3622 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3623 = load i32, ptr @test_count, align 4, !tbaa !5
  %3624 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3625 = load i32, ptr %3624, align 4, !tbaa !5
  %3626 = call ptr @s2n_strerror(i32 noundef %3625, ptr noundef @.str.24)
  %3627 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3628 = load i32, ptr %3627, align 4, !tbaa !5
  %3629 = call ptr @s2n_strerror_debug(i32 noundef %3628, ptr noundef @.str.24)
  %3630 = call ptr @__errno_location() #11
  %3631 = load i32, ptr %3630, align 4, !tbaa !5
  %3632 = call ptr @strerror(i32 noundef %3631) #10
  %3633 = call ptr @__errno_location() #11
  %3634 = load i32, ptr %3633, align 4, !tbaa !5
  %3635 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3622, ptr noundef @.str.22, i32 noundef %3623, ptr noundef @.str.40, ptr noundef @.str.21, i32 noundef 281, ptr noundef %3626, ptr noundef %3629, ptr noundef %3632, i32 noundef %3634) #10
  br label %3653

3636:                                             ; preds = %3614, %3607
  %3637 = load i32, ptr %85, align 4, !tbaa !5
  %3638 = call ptr @__errno_location() #11
  store i32 %3637, ptr %3638, align 4, !tbaa !5
  %3639 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3640 = load i32, ptr @test_count, align 4, !tbaa !5
  %3641 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3642 = load i32, ptr %3641, align 4, !tbaa !5
  %3643 = call ptr @s2n_strerror(i32 noundef %3642, ptr noundef @.str.24)
  %3644 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3645 = load i32, ptr %3644, align 4, !tbaa !5
  %3646 = call ptr @s2n_strerror_debug(i32 noundef %3645, ptr noundef @.str.24)
  %3647 = call ptr @__errno_location() #11
  %3648 = load i32, ptr %3647, align 4, !tbaa !5
  %3649 = call ptr @strerror(i32 noundef %3648) #10
  %3650 = call ptr @__errno_location() #11
  %3651 = load i32, ptr %3650, align 4, !tbaa !5
  %3652 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3639, ptr noundef @.str.25, i32 noundef %3640, ptr noundef @.str.40, ptr noundef @.str.21, i32 noundef 281, ptr noundef %3643, ptr noundef %3646, ptr noundef %3649, i32 noundef %3651) #10
  br label %3653

3653:                                             ; preds = %3636, %3619
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #10
  br label %3654

3654:                                             ; preds = %3653
  br label %3655

3655:                                             ; preds = %3654
  call void @exit(i32 noundef 1) #12
  unreachable

3656:                                             ; No predecessors!
  br label %3657

3657:                                             ; preds = %3656
  br label %3658

3658:                                             ; preds = %3657, %3599
  br label %3659

3659:                                             ; preds = %3658
  br label %3660

3660:                                             ; preds = %3659
  call void @llvm.lifetime.start.p0(i64 8, ptr %86) #10
  store i64 0, ptr %86, align 8, !tbaa !59
  br label %3661

3661:                                             ; preds = %3952, %3660
  %3662 = load i64, ptr %86, align 8, !tbaa !59
  %3663 = load i32, ptr %11, align 4, !tbaa !5
  %3664 = sext i32 %3663 to i64
  %3665 = icmp ult i64 %3662, %3664
  br i1 %3665, label %3667, label %3666

3666:                                             ; preds = %3661
  store i32 357, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %86) #10
  br label %3955

3667:                                             ; preds = %3661
  call void @llvm.lifetime.start.p0(i64 2, ptr %87) #10
  %3668 = load i64, ptr %86, align 8, !tbaa !59
  %3669 = getelementptr inbounds [256 x i16], ptr %10, i64 0, i64 %3668
  %3670 = load i16, ptr %3669, align 2, !tbaa !15
  store i16 %3670, ptr %87, align 2, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %88) #10
  store i64 0, ptr %88, align 8, !tbaa !59
  br label %3671

3671:                                             ; preds = %3947, %3667
  %3672 = load i64, ptr %88, align 8, !tbaa !59
  %3673 = icmp ult i64 %3672, 32
  br i1 %3673, label %3675, label %3674

3674:                                             ; preds = %3671
  store i32 360, ptr %21, align 4
  br label %3950

3675:                                             ; preds = %3671
  %3676 = load i16, ptr %87, align 2, !tbaa !15
  %3677 = zext i16 %3676 to i64
  %3678 = getelementptr inbounds [256 x [32 x i32]], ptr @handshakes, i64 0, i64 %3677
  %3679 = load i64, ptr %88, align 8, !tbaa !59
  %3680 = getelementptr inbounds [32 x i32], ptr %3678, i64 0, i64 %3679
  %3681 = load i32, ptr %3680, align 4, !tbaa !5
  %3682 = icmp eq i32 %3681, 20
  br i1 %3682, label %3683, label %3684

3683:                                             ; preds = %3675
  store i32 360, ptr %21, align 4
  br label %3950

3684:                                             ; preds = %3675
  %3685 = load i64, ptr %88, align 8, !tbaa !59
  %3686 = trunc i64 %3685 to i32
  %3687 = load ptr, ptr %82, align 8, !tbaa !9
  %3688 = getelementptr inbounds %struct.s2n_connection, ptr %3687, i32 0, i32 52
  %3689 = getelementptr inbounds %struct.s2n_handshake, ptr %3688, i32 0, i32 7
  store i32 %3686, ptr %3689, align 8, !tbaa !47
  %3690 = load ptr, ptr %82, align 8, !tbaa !9
  %3691 = getelementptr inbounds %struct.s2n_connection, ptr %3690, i32 0, i32 42
  store i32 0, ptr %3691, align 8, !tbaa !54
  %3692 = load i16, ptr %87, align 2, !tbaa !15
  %3693 = zext i16 %3692 to i32
  %3694 = load ptr, ptr %82, align 8, !tbaa !9
  %3695 = getelementptr inbounds %struct.s2n_connection, ptr %3694, i32 0, i32 52
  %3696 = getelementptr inbounds %struct.s2n_handshake, ptr %3695, i32 0, i32 6
  store i32 %3693, ptr %3696, align 4, !tbaa !46
  br label %3697

3697:                                             ; preds = %3684
  %3698 = load i32, ptr @test_count, align 4, !tbaa !5
  %3699 = add nsw i32 %3698, 1
  store i32 %3699, ptr @test_count, align 4, !tbaa !5
  %3700 = call i32 @s2n_test_write_header(ptr noundef %83, i8 noundef zeroext 22, i8 noundef zeroext 0)
  %3701 = icmp eq i32 %3700, -1
  br i1 %3701, label %3702, label %3755

3702:                                             ; preds = %3697
  br label %3703

3703:                                             ; preds = %3702
  br label %3704

3704:                                             ; preds = %3703
  call void @llvm.lifetime.start.p0(i64 4, ptr %89) #10
  %3705 = call ptr @__errno_location() #11
  %3706 = load i32, ptr %3705, align 4, !tbaa !5
  store i32 %3706, ptr %89, align 4, !tbaa !5
  %3707 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3708 = call i32 @s2n_print_stacktrace(ptr noundef %3707)
  %3709 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3710 = trunc i8 %3709 to i1
  br i1 %3710, label %3711, label %3733

3711:                                             ; preds = %3704
  %3712 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3713 = call i32 @fileno(ptr noundef %3712) #10
  %3714 = call i32 @isatty(i32 noundef %3713) #10
  %3715 = icmp ne i32 %3714, 0
  br i1 %3715, label %3716, label %3733

3716:                                             ; preds = %3711
  %3717 = load i32, ptr %89, align 4, !tbaa !5
  %3718 = call ptr @__errno_location() #11
  store i32 %3717, ptr %3718, align 4, !tbaa !5
  %3719 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3720 = load i32, ptr @test_count, align 4, !tbaa !5
  %3721 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3722 = load i32, ptr %3721, align 4, !tbaa !5
  %3723 = call ptr @s2n_strerror(i32 noundef %3722, ptr noundef @.str.24)
  %3724 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3725 = load i32, ptr %3724, align 4, !tbaa !5
  %3726 = call ptr @s2n_strerror_debug(i32 noundef %3725, ptr noundef @.str.24)
  %3727 = call ptr @__errno_location() #11
  %3728 = load i32, ptr %3727, align 4, !tbaa !5
  %3729 = call ptr @strerror(i32 noundef %3728) #10
  %3730 = call ptr @__errno_location() #11
  %3731 = load i32, ptr %3730, align 4, !tbaa !5
  %3732 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3719, ptr noundef @.str.22, i32 noundef %3720, ptr noundef @.str.53, ptr noundef @.str.21, i32 noundef 295, ptr noundef %3723, ptr noundef %3726, ptr noundef %3729, i32 noundef %3731) #10
  br label %3750

3733:                                             ; preds = %3711, %3704
  %3734 = load i32, ptr %89, align 4, !tbaa !5
  %3735 = call ptr @__errno_location() #11
  store i32 %3734, ptr %3735, align 4, !tbaa !5
  %3736 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3737 = load i32, ptr @test_count, align 4, !tbaa !5
  %3738 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3739 = load i32, ptr %3738, align 4, !tbaa !5
  %3740 = call ptr @s2n_strerror(i32 noundef %3739, ptr noundef @.str.24)
  %3741 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3742 = load i32, ptr %3741, align 4, !tbaa !5
  %3743 = call ptr @s2n_strerror_debug(i32 noundef %3742, ptr noundef @.str.24)
  %3744 = call ptr @__errno_location() #11
  %3745 = load i32, ptr %3744, align 4, !tbaa !5
  %3746 = call ptr @strerror(i32 noundef %3745) #10
  %3747 = call ptr @__errno_location() #11
  %3748 = load i32, ptr %3747, align 4, !tbaa !5
  %3749 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3736, ptr noundef @.str.25, i32 noundef %3737, ptr noundef @.str.53, ptr noundef @.str.21, i32 noundef 295, ptr noundef %3740, ptr noundef %3743, ptr noundef %3746, i32 noundef %3748) #10
  br label %3750

3750:                                             ; preds = %3733, %3716
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #10
  br label %3751

3751:                                             ; preds = %3750
  br label %3752

3752:                                             ; preds = %3751
  call void @exit(i32 noundef 1) #12
  unreachable

3753:                                             ; No predecessors!
  br label %3754

3754:                                             ; preds = %3753
  br label %3755

3755:                                             ; preds = %3754, %3697
  br label %3756

3756:                                             ; preds = %3755
  br label %3757

3757:                                             ; preds = %3756
  br label %3758

3758:                                             ; preds = %3757
  %3759 = load i32, ptr @test_count, align 4, !tbaa !5
  %3760 = add nsw i32 %3759, 1
  store i32 %3760, ptr @test_count, align 4, !tbaa !5
  %3761 = load ptr, ptr %82, align 8, !tbaa !9
  %3762 = call i32 @s2n_handshake_read_io(ptr noundef %3761)
  %3763 = icmp eq i32 %3762, -1
  br i1 %3763, label %3764, label %3817

3764:                                             ; preds = %3758
  br label %3765

3765:                                             ; preds = %3764
  br label %3766

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

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

3778:                                             ; preds = %3773
  %3779 = load i32, ptr %90, align 4, !tbaa !5
  %3780 = call ptr @__errno_location() #11
  store i32 %3779, ptr %3780, align 4, !tbaa !5
  %3781 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3782 = load i32, ptr @test_count, align 4, !tbaa !5
  %3783 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3784 = load i32, ptr %3783, align 4, !tbaa !5
  %3785 = call ptr @s2n_strerror(i32 noundef %3784, ptr noundef @.str.24)
  %3786 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3787 = load i32, ptr %3786, align 4, !tbaa !5
  %3788 = call ptr @s2n_strerror_debug(i32 noundef %3787, ptr noundef @.str.24)
  %3789 = call ptr @__errno_location() #11
  %3790 = load i32, ptr %3789, align 4, !tbaa !5
  %3791 = call ptr @strerror(i32 noundef %3790) #10
  %3792 = call ptr @__errno_location() #11
  %3793 = load i32, ptr %3792, align 4, !tbaa !5
  %3794 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3781, ptr noundef @.str.22, i32 noundef %3782, ptr noundef @.str.43, ptr noundef @.str.21, i32 noundef 296, ptr noundef %3785, ptr noundef %3788, ptr noundef %3791, i32 noundef %3793) #10
  br label %3812

3795:                                             ; preds = %3773, %3766
  %3796 = load i32, ptr %90, align 4, !tbaa !5
  %3797 = call ptr @__errno_location() #11
  store i32 %3796, ptr %3797, align 4, !tbaa !5
  %3798 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3799 = load i32, ptr @test_count, align 4, !tbaa !5
  %3800 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3801 = load i32, ptr %3800, align 4, !tbaa !5
  %3802 = call ptr @s2n_strerror(i32 noundef %3801, ptr noundef @.str.24)
  %3803 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3804 = load i32, ptr %3803, align 4, !tbaa !5
  %3805 = call ptr @s2n_strerror_debug(i32 noundef %3804, ptr noundef @.str.24)
  %3806 = call ptr @__errno_location() #11
  %3807 = load i32, ptr %3806, align 4, !tbaa !5
  %3808 = call ptr @strerror(i32 noundef %3807) #10
  %3809 = call ptr @__errno_location() #11
  %3810 = load i32, ptr %3809, align 4, !tbaa !5
  %3811 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3798, ptr noundef @.str.25, i32 noundef %3799, ptr noundef @.str.43, ptr noundef @.str.21, i32 noundef 296, ptr noundef %3802, ptr noundef %3805, ptr noundef %3808, i32 noundef %3810) #10
  br label %3812

3812:                                             ; preds = %3795, %3778
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #10
  br label %3813

3813:                                             ; preds = %3812
  br label %3814

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

3815:                                             ; No predecessors!
  br label %3816

3816:                                             ; preds = %3815
  br label %3817

3817:                                             ; preds = %3816, %3758
  br label %3818

3818:                                             ; preds = %3817
  br label %3819

3819:                                             ; preds = %3818
  br label %3820

3820:                                             ; preds = %3819
  %3821 = load i32, ptr @test_count, align 4, !tbaa !5
  %3822 = add nsw i32 %3821, 1
  store i32 %3822, ptr @test_count, align 4, !tbaa !5
  %3823 = load ptr, ptr %82, align 8, !tbaa !9
  %3824 = getelementptr inbounds %struct.s2n_connection, ptr %3823, i32 0, i32 52
  %3825 = getelementptr inbounds %struct.s2n_handshake, ptr %3824, i32 0, i32 7
  %3826 = load i32, ptr %3825, align 8, !tbaa !47
  %3827 = sext i32 %3826 to i64
  %3828 = load i64, ptr %88, align 8, !tbaa !59
  %3829 = icmp eq i64 %3827, %3828
  br i1 %3829, label %3883, label %3830

3830:                                             ; preds = %3820
  br label %3831

3831:                                             ; preds = %3830
  br label %3832

3832:                                             ; preds = %3831
  call void @llvm.lifetime.start.p0(i64 4, ptr %91) #10
  %3833 = call ptr @__errno_location() #11
  %3834 = load i32, ptr %3833, align 4, !tbaa !5
  store i32 %3834, ptr %91, align 4, !tbaa !5
  %3835 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3836 = call i32 @s2n_print_stacktrace(ptr noundef %3835)
  %3837 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3838 = trunc i8 %3837 to i1
  br i1 %3838, label %3839, label %3861

3839:                                             ; preds = %3832
  %3840 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3841 = call i32 @fileno(ptr noundef %3840) #10
  %3842 = call i32 @isatty(i32 noundef %3841) #10
  %3843 = icmp ne i32 %3842, 0
  br i1 %3843, label %3844, label %3861

3844:                                             ; preds = %3839
  %3845 = load i32, ptr %91, align 4, !tbaa !5
  %3846 = call ptr @__errno_location() #11
  store i32 %3845, ptr %3846, align 4, !tbaa !5
  %3847 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3848 = load i32, ptr @test_count, align 4, !tbaa !5
  %3849 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3850 = load i32, ptr %3849, align 4, !tbaa !5
  %3851 = call ptr @s2n_strerror(i32 noundef %3850, ptr noundef @.str.24)
  %3852 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3853 = load i32, ptr %3852, align 4, !tbaa !5
  %3854 = call ptr @s2n_strerror_debug(i32 noundef %3853, ptr noundef @.str.24)
  %3855 = call ptr @__errno_location() #11
  %3856 = load i32, ptr %3855, align 4, !tbaa !5
  %3857 = call ptr @strerror(i32 noundef %3856) #10
  %3858 = call ptr @__errno_location() #11
  %3859 = load i32, ptr %3858, align 4, !tbaa !5
  %3860 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3847, ptr noundef @.str.22, i32 noundef %3848, ptr noundef @.str.35, ptr noundef @.str.21, i32 noundef 297, ptr noundef %3851, ptr noundef %3854, ptr noundef %3857, i32 noundef %3859) #10
  br label %3878

3861:                                             ; preds = %3839, %3832
  %3862 = load i32, ptr %91, align 4, !tbaa !5
  %3863 = call ptr @__errno_location() #11
  store i32 %3862, ptr %3863, align 4, !tbaa !5
  %3864 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3865 = load i32, ptr @test_count, align 4, !tbaa !5
  %3866 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3867 = load i32, ptr %3866, align 4, !tbaa !5
  %3868 = call ptr @s2n_strerror(i32 noundef %3867, ptr noundef @.str.24)
  %3869 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3870 = load i32, ptr %3869, align 4, !tbaa !5
  %3871 = call ptr @s2n_strerror_debug(i32 noundef %3870, ptr noundef @.str.24)
  %3872 = call ptr @__errno_location() #11
  %3873 = load i32, ptr %3872, align 4, !tbaa !5
  %3874 = call ptr @strerror(i32 noundef %3873) #10
  %3875 = call ptr @__errno_location() #11
  %3876 = load i32, ptr %3875, align 4, !tbaa !5
  %3877 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3864, ptr noundef @.str.25, i32 noundef %3865, ptr noundef @.str.35, ptr noundef @.str.21, i32 noundef 297, ptr noundef %3868, ptr noundef %3871, ptr noundef %3874, i32 noundef %3876) #10
  br label %3878

3878:                                             ; preds = %3861, %3844
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #10
  br label %3879

3879:                                             ; preds = %3878
  br label %3880

3880:                                             ; preds = %3879
  call void @exit(i32 noundef 1) #12
  unreachable

3881:                                             ; No predecessors!
  br label %3882

3882:                                             ; preds = %3881
  br label %3883

3883:                                             ; preds = %3882, %3820
  br label %3884

3884:                                             ; preds = %3883
  br label %3885

3885:                                             ; preds = %3884
  br label %3886

3886:                                             ; preds = %3885
  %3887 = load i32, ptr @test_count, align 4, !tbaa !5
  %3888 = add nsw i32 %3887, 1
  store i32 %3888, ptr @test_count, align 4, !tbaa !5
  %3889 = call i32 @s2n_stuffer_wipe(ptr noundef %83)
  %3890 = icmp eq i32 %3889, -1
  br i1 %3890, label %3891, label %3944

3891:                                             ; preds = %3886
  br label %3892

3892:                                             ; preds = %3891
  br label %3893

3893:                                             ; preds = %3892
  call void @llvm.lifetime.start.p0(i64 4, ptr %92) #10
  %3894 = call ptr @__errno_location() #11
  %3895 = load i32, ptr %3894, align 4, !tbaa !5
  store i32 %3895, ptr %92, align 4, !tbaa !5
  %3896 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3897 = call i32 @s2n_print_stacktrace(ptr noundef %3896)
  %3898 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3899 = trunc i8 %3898 to i1
  br i1 %3899, label %3900, label %3922

3900:                                             ; preds = %3893
  %3901 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3902 = call i32 @fileno(ptr noundef %3901) #10
  %3903 = call i32 @isatty(i32 noundef %3902) #10
  %3904 = icmp ne i32 %3903, 0
  br i1 %3904, label %3905, label %3922

3905:                                             ; preds = %3900
  %3906 = load i32, ptr %92, align 4, !tbaa !5
  %3907 = call ptr @__errno_location() #11
  store i32 %3906, ptr %3907, align 4, !tbaa !5
  %3908 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3909 = load i32, ptr @test_count, align 4, !tbaa !5
  %3910 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3911 = load i32, ptr %3910, align 4, !tbaa !5
  %3912 = call ptr @s2n_strerror(i32 noundef %3911, ptr noundef @.str.24)
  %3913 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3914 = load i32, ptr %3913, align 4, !tbaa !5
  %3915 = call ptr @s2n_strerror_debug(i32 noundef %3914, ptr noundef @.str.24)
  %3916 = call ptr @__errno_location() #11
  %3917 = load i32, ptr %3916, align 4, !tbaa !5
  %3918 = call ptr @strerror(i32 noundef %3917) #10
  %3919 = call ptr @__errno_location() #11
  %3920 = load i32, ptr %3919, align 4, !tbaa !5
  %3921 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3908, ptr noundef @.str.22, i32 noundef %3909, ptr noundef @.str.50, ptr noundef @.str.21, i32 noundef 299, ptr noundef %3912, ptr noundef %3915, ptr noundef %3918, i32 noundef %3920) #10
  br label %3939

3922:                                             ; preds = %3900, %3893
  %3923 = load i32, ptr %92, align 4, !tbaa !5
  %3924 = call ptr @__errno_location() #11
  store i32 %3923, ptr %3924, align 4, !tbaa !5
  %3925 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3926 = load i32, ptr @test_count, align 4, !tbaa !5
  %3927 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3928 = load i32, ptr %3927, align 4, !tbaa !5
  %3929 = call ptr @s2n_strerror(i32 noundef %3928, ptr noundef @.str.24)
  %3930 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3931 = load i32, ptr %3930, align 4, !tbaa !5
  %3932 = call ptr @s2n_strerror_debug(i32 noundef %3931, ptr noundef @.str.24)
  %3933 = call ptr @__errno_location() #11
  %3934 = load i32, ptr %3933, align 4, !tbaa !5
  %3935 = call ptr @strerror(i32 noundef %3934) #10
  %3936 = call ptr @__errno_location() #11
  %3937 = load i32, ptr %3936, align 4, !tbaa !5
  %3938 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3925, ptr noundef @.str.25, i32 noundef %3926, ptr noundef @.str.50, ptr noundef @.str.21, i32 noundef 299, ptr noundef %3929, ptr noundef %3932, ptr noundef %3935, i32 noundef %3937) #10
  br label %3939

3939:                                             ; preds = %3922, %3905
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #10
  br label %3940

3940:                                             ; preds = %3939
  br label %3941

3941:                                             ; preds = %3940
  call void @exit(i32 noundef 1) #12
  unreachable

3942:                                             ; No predecessors!
  br label %3943

3943:                                             ; preds = %3942
  br label %3944

3944:                                             ; preds = %3943, %3886
  br label %3945

3945:                                             ; preds = %3944
  br label %3946

3946:                                             ; preds = %3945
  br label %3947

3947:                                             ; preds = %3946
  %3948 = load i64, ptr %88, align 8, !tbaa !59
  %3949 = add i64 %3948, 1
  store i64 %3949, ptr %88, align 8, !tbaa !59
  br label %3671, !llvm.loop !60

3950:                                             ; preds = %3683, %3674
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #10
  br label %3951

3951:                                             ; preds = %3950
  call void @llvm.lifetime.end.p0(i64 2, ptr %87) #10
  br label %3952

3952:                                             ; preds = %3951
  %3953 = load i64, ptr %86, align 8, !tbaa !59
  %3954 = add i64 %3953, 1
  store i64 %3954, ptr %86, align 8, !tbaa !59
  br label %3661, !llvm.loop !61

3955:                                             ; preds = %3666
  br label %3956

3956:                                             ; preds = %3955
  %3957 = load i32, ptr @test_count, align 4, !tbaa !5
  %3958 = add nsw i32 %3957, 1
  store i32 %3958, ptr @test_count, align 4, !tbaa !5
  %3959 = load i32, ptr @unexpected_handler_called, align 4, !tbaa !5
  %3960 = icmp ne i32 %3959, 0
  br i1 %3960, label %3961, label %4014

3961:                                             ; preds = %3956
  br label %3962

3962:                                             ; preds = %3961
  br label %3963

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

3970:                                             ; preds = %3963
  %3971 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3972 = call i32 @fileno(ptr noundef %3971) #10
  %3973 = call i32 @isatty(i32 noundef %3972) #10
  %3974 = icmp ne i32 %3973, 0
  br i1 %3974, label %3975, label %3992

3975:                                             ; preds = %3970
  %3976 = load i32, ptr %93, align 4, !tbaa !5
  %3977 = call ptr @__errno_location() #11
  store i32 %3976, ptr %3977, align 4, !tbaa !5
  %3978 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3979 = load i32, ptr @test_count, align 4, !tbaa !5
  %3980 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3981 = load i32, ptr %3980, align 4, !tbaa !5
  %3982 = call ptr @s2n_strerror(i32 noundef %3981, ptr noundef @.str.24)
  %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_debug(i32 noundef %3984, ptr noundef @.str.24)
  %3986 = call ptr @__errno_location() #11
  %3987 = load i32, ptr %3986, align 4, !tbaa !5
  %3988 = call ptr @strerror(i32 noundef %3987) #10
  %3989 = call ptr @__errno_location() #11
  %3990 = load i32, ptr %3989, align 4, !tbaa !5
  %3991 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3978, ptr noundef @.str.22, i32 noundef %3979, ptr noundef @.str.45, ptr noundef @.str.21, i32 noundef 303, ptr noundef %3982, ptr noundef %3985, ptr noundef %3988, i32 noundef %3990) #10
  br label %4009

3992:                                             ; preds = %3970, %3963
  %3993 = load i32, ptr %93, align 4, !tbaa !5
  %3994 = call ptr @__errno_location() #11
  store i32 %3993, ptr %3994, align 4, !tbaa !5
  %3995 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3996 = load i32, ptr @test_count, align 4, !tbaa !5
  %3997 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3998 = load i32, ptr %3997, align 4, !tbaa !5
  %3999 = call ptr @s2n_strerror(i32 noundef %3998, ptr noundef @.str.24)
  %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_debug(i32 noundef %4001, ptr noundef @.str.24)
  %4003 = call ptr @__errno_location() #11
  %4004 = load i32, ptr %4003, align 4, !tbaa !5
  %4005 = call ptr @strerror(i32 noundef %4004) #10
  %4006 = call ptr @__errno_location() #11
  %4007 = load i32, ptr %4006, align 4, !tbaa !5
  %4008 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3995, ptr noundef @.str.25, i32 noundef %3996, ptr noundef @.str.45, ptr noundef @.str.21, i32 noundef 303, ptr noundef %3999, ptr noundef %4002, ptr noundef %4005, i32 noundef %4007) #10
  br label %4009

4009:                                             ; preds = %3992, %3975
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #10
  br label %4010

4010:                                             ; preds = %4009
  br label %4011

4011:                                             ; preds = %4010
  call void @exit(i32 noundef 1) #12
  unreachable

4012:                                             ; No predecessors!
  br label %4013

4013:                                             ; preds = %4012
  br label %4014

4014:                                             ; preds = %4013, %3956
  br label %4015

4015:                                             ; preds = %4014
  br label %4016

4016:                                             ; preds = %4015
  br label %4017

4017:                                             ; preds = %4016
  %4018 = load i32, ptr @test_count, align 4, !tbaa !5
  %4019 = add nsw i32 %4018, 1
  store i32 %4019, ptr @test_count, align 4, !tbaa !5
  %4020 = call i32 @s2n_stuffer_free(ptr noundef %83)
  %4021 = icmp eq i32 %4020, -1
  br i1 %4021, label %4022, label %4075

4022:                                             ; preds = %4017
  br label %4023

4023:                                             ; preds = %4022
  br label %4024

4024:                                             ; preds = %4023
  call void @llvm.lifetime.start.p0(i64 4, ptr %94) #10
  %4025 = call ptr @__errno_location() #11
  %4026 = load i32, ptr %4025, align 4, !tbaa !5
  store i32 %4026, ptr %94, align 4, !tbaa !5
  %4027 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4028 = call i32 @s2n_print_stacktrace(ptr noundef %4027)
  %4029 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4030 = trunc i8 %4029 to i1
  br i1 %4030, label %4031, label %4053

4031:                                             ; preds = %4024
  %4032 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4033 = call i32 @fileno(ptr noundef %4032) #10
  %4034 = call i32 @isatty(i32 noundef %4033) #10
  %4035 = icmp ne i32 %4034, 0
  br i1 %4035, label %4036, label %4053

4036:                                             ; preds = %4031
  %4037 = load i32, ptr %94, align 4, !tbaa !5
  %4038 = call ptr @__errno_location() #11
  store i32 %4037, ptr %4038, align 4, !tbaa !5
  %4039 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4040 = load i32, ptr @test_count, align 4, !tbaa !5
  %4041 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4042 = load i32, ptr %4041, align 4, !tbaa !5
  %4043 = call ptr @s2n_strerror(i32 noundef %4042, ptr noundef @.str.24)
  %4044 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4045 = load i32, ptr %4044, align 4, !tbaa !5
  %4046 = call ptr @s2n_strerror_debug(i32 noundef %4045, ptr noundef @.str.24)
  %4047 = call ptr @__errno_location() #11
  %4048 = load i32, ptr %4047, align 4, !tbaa !5
  %4049 = call ptr @strerror(i32 noundef %4048) #10
  %4050 = call ptr @__errno_location() #11
  %4051 = load i32, ptr %4050, align 4, !tbaa !5
  %4052 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4039, ptr noundef @.str.22, i32 noundef %4040, ptr noundef @.str.51, ptr noundef @.str.21, i32 noundef 304, ptr noundef %4043, ptr noundef %4046, ptr noundef %4049, i32 noundef %4051) #10
  br label %4070

4053:                                             ; preds = %4031, %4024
  %4054 = load i32, ptr %94, align 4, !tbaa !5
  %4055 = call ptr @__errno_location() #11
  store i32 %4054, ptr %4055, align 4, !tbaa !5
  %4056 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4057 = load i32, ptr @test_count, align 4, !tbaa !5
  %4058 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4059 = load i32, ptr %4058, align 4, !tbaa !5
  %4060 = call ptr @s2n_strerror(i32 noundef %4059, ptr noundef @.str.24)
  %4061 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4062 = load i32, ptr %4061, align 4, !tbaa !5
  %4063 = call ptr @s2n_strerror_debug(i32 noundef %4062, ptr noundef @.str.24)
  %4064 = call ptr @__errno_location() #11
  %4065 = load i32, ptr %4064, align 4, !tbaa !5
  %4066 = call ptr @strerror(i32 noundef %4065) #10
  %4067 = call ptr @__errno_location() #11
  %4068 = load i32, ptr %4067, align 4, !tbaa !5
  %4069 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4056, ptr noundef @.str.25, i32 noundef %4057, ptr noundef @.str.51, ptr noundef @.str.21, i32 noundef 304, ptr noundef %4060, ptr noundef %4063, ptr noundef %4066, i32 noundef %4068) #10
  br label %4070

4070:                                             ; preds = %4053, %4036
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #10
  br label %4071

4071:                                             ; preds = %4070
  br label %4072

4072:                                             ; preds = %4071
  call void @exit(i32 noundef 1) #12
  unreachable

4073:                                             ; No predecessors!
  br label %4074

4074:                                             ; preds = %4073
  br label %4075

4075:                                             ; preds = %4074, %4017
  br label %4076

4076:                                             ; preds = %4075
  br label %4077

4077:                                             ; preds = %4076
  br label %4078

4078:                                             ; preds = %4077
  %4079 = load i32, ptr @test_count, align 4, !tbaa !5
  %4080 = add nsw i32 %4079, 1
  store i32 %4080, ptr @test_count, align 4, !tbaa !5
  %4081 = load ptr, ptr %82, align 8, !tbaa !9
  %4082 = call i32 @s2n_connection_free(ptr noundef %4081)
  %4083 = icmp eq i32 %4082, -1
  br i1 %4083, label %4084, label %4137

4084:                                             ; preds = %4078
  br label %4085

4085:                                             ; preds = %4084
  br label %4086

4086:                                             ; preds = %4085
  call void @llvm.lifetime.start.p0(i64 4, ptr %95) #10
  %4087 = call ptr @__errno_location() #11
  %4088 = load i32, ptr %4087, align 4, !tbaa !5
  store i32 %4088, ptr %95, align 4, !tbaa !5
  %4089 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4090 = call i32 @s2n_print_stacktrace(ptr noundef %4089)
  %4091 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4092 = trunc i8 %4091 to i1
  br i1 %4092, label %4093, label %4115

4093:                                             ; preds = %4086
  %4094 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4095 = call i32 @fileno(ptr noundef %4094) #10
  %4096 = call i32 @isatty(i32 noundef %4095) #10
  %4097 = icmp ne i32 %4096, 0
  br i1 %4097, label %4098, label %4115

4098:                                             ; preds = %4093
  %4099 = load i32, ptr %95, align 4, !tbaa !5
  %4100 = call ptr @__errno_location() #11
  store i32 %4099, ptr %4100, align 4, !tbaa !5
  %4101 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4102 = load i32, ptr @test_count, align 4, !tbaa !5
  %4103 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4104 = load i32, ptr %4103, align 4, !tbaa !5
  %4105 = call ptr @s2n_strerror(i32 noundef %4104, ptr noundef @.str.24)
  %4106 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4107 = load i32, ptr %4106, align 4, !tbaa !5
  %4108 = call ptr @s2n_strerror_debug(i32 noundef %4107, ptr noundef @.str.24)
  %4109 = call ptr @__errno_location() #11
  %4110 = load i32, ptr %4109, align 4, !tbaa !5
  %4111 = call ptr @strerror(i32 noundef %4110) #10
  %4112 = call ptr @__errno_location() #11
  %4113 = load i32, ptr %4112, align 4, !tbaa !5
  %4114 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4101, ptr noundef @.str.22, i32 noundef %4102, ptr noundef @.str.33, ptr noundef @.str.21, i32 noundef 305, ptr noundef %4105, ptr noundef %4108, ptr noundef %4111, i32 noundef %4113) #10
  br label %4132

4115:                                             ; preds = %4093, %4086
  %4116 = load i32, ptr %95, align 4, !tbaa !5
  %4117 = call ptr @__errno_location() #11
  store i32 %4116, ptr %4117, align 4, !tbaa !5
  %4118 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4119 = load i32, ptr @test_count, align 4, !tbaa !5
  %4120 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4121 = load i32, ptr %4120, align 4, !tbaa !5
  %4122 = call ptr @s2n_strerror(i32 noundef %4121, ptr noundef @.str.24)
  %4123 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4124 = load i32, ptr %4123, align 4, !tbaa !5
  %4125 = call ptr @s2n_strerror_debug(i32 noundef %4124, ptr noundef @.str.24)
  %4126 = call ptr @__errno_location() #11
  %4127 = load i32, ptr %4126, align 4, !tbaa !5
  %4128 = call ptr @strerror(i32 noundef %4127) #10
  %4129 = call ptr @__errno_location() #11
  %4130 = load i32, ptr %4129, align 4, !tbaa !5
  %4131 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4118, ptr noundef @.str.25, i32 noundef %4119, ptr noundef @.str.33, ptr noundef @.str.21, i32 noundef 305, ptr noundef %4122, ptr noundef %4125, ptr noundef %4128, i32 noundef %4130) #10
  br label %4132

4132:                                             ; preds = %4115, %4098
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #10
  br label %4133

4133:                                             ; preds = %4132
  br label %4134

4134:                                             ; preds = %4133
  call void @exit(i32 noundef 1) #12
  unreachable

4135:                                             ; No predecessors!
  br label %4136

4136:                                             ; preds = %4135
  br label %4137

4137:                                             ; preds = %4136, %4078
  br label %4138

4138:                                             ; preds = %4137
  br label %4139

4139:                                             ; preds = %4138
  call void @llvm.lifetime.end.p0(i64 40, ptr %83) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %96) #10
  %4140 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %4140, ptr %96, align 8, !tbaa !9
  %4141 = load ptr, ptr %96, align 8, !tbaa !9
  %4142 = getelementptr inbounds %struct.s2n_connection, ptr %4141, i32 0, i32 23
  store i8 33, ptr %4142, align 4, !tbaa !19
  call void @llvm.lifetime.start.p0(i64 40, ptr %97) #10
  call void @llvm.memset.p0.i64(ptr align 8 %97, i8 0, i64 40, i1 false)
  br label %4143

4143:                                             ; preds = %4139
  %4144 = load i32, ptr @test_count, align 4, !tbaa !5
  %4145 = add nsw i32 %4144, 1
  store i32 %4145, ptr @test_count, align 4, !tbaa !5
  %4146 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %97, i32 noundef 0)
  %4147 = icmp eq i32 %4146, -1
  br i1 %4147, label %4148, label %4201

4148:                                             ; preds = %4143
  br label %4149

4149:                                             ; preds = %4148
  br label %4150

4150:                                             ; preds = %4149
  call void @llvm.lifetime.start.p0(i64 4, ptr %98) #10
  %4151 = call ptr @__errno_location() #11
  %4152 = load i32, ptr %4151, align 4, !tbaa !5
  store i32 %4152, ptr %98, align 4, !tbaa !5
  %4153 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4154 = call i32 @s2n_print_stacktrace(ptr noundef %4153)
  %4155 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4156 = trunc i8 %4155 to i1
  br i1 %4156, label %4157, label %4179

4157:                                             ; preds = %4150
  %4158 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4159 = call i32 @fileno(ptr noundef %4158) #10
  %4160 = call i32 @isatty(i32 noundef %4159) #10
  %4161 = icmp ne i32 %4160, 0
  br i1 %4161, label %4162, label %4179

4162:                                             ; preds = %4157
  %4163 = load i32, ptr %98, align 4, !tbaa !5
  %4164 = call ptr @__errno_location() #11
  store i32 %4163, ptr %4164, align 4, !tbaa !5
  %4165 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4166 = load i32, ptr @test_count, align 4, !tbaa !5
  %4167 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4168 = load i32, ptr %4167, align 4, !tbaa !5
  %4169 = call ptr @s2n_strerror(i32 noundef %4168, ptr noundef @.str.24)
  %4170 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4171 = load i32, ptr %4170, align 4, !tbaa !5
  %4172 = call ptr @s2n_strerror_debug(i32 noundef %4171, ptr noundef @.str.24)
  %4173 = call ptr @__errno_location() #11
  %4174 = load i32, ptr %4173, align 4, !tbaa !5
  %4175 = call ptr @strerror(i32 noundef %4174) #10
  %4176 = call ptr @__errno_location() #11
  %4177 = load i32, ptr %4176, align 4, !tbaa !5
  %4178 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4165, ptr noundef @.str.22, i32 noundef %4166, ptr noundef @.str.39, ptr noundef @.str.21, i32 noundef 316, ptr noundef %4169, ptr noundef %4172, ptr noundef %4175, i32 noundef %4177) #10
  br label %4196

4179:                                             ; preds = %4157, %4150
  %4180 = load i32, ptr %98, align 4, !tbaa !5
  %4181 = call ptr @__errno_location() #11
  store i32 %4180, ptr %4181, align 4, !tbaa !5
  %4182 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4183 = load i32, ptr @test_count, align 4, !tbaa !5
  %4184 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4185 = load i32, ptr %4184, align 4, !tbaa !5
  %4186 = call ptr @s2n_strerror(i32 noundef %4185, ptr noundef @.str.24)
  %4187 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4188 = load i32, ptr %4187, align 4, !tbaa !5
  %4189 = call ptr @s2n_strerror_debug(i32 noundef %4188, ptr noundef @.str.24)
  %4190 = call ptr @__errno_location() #11
  %4191 = load i32, ptr %4190, align 4, !tbaa !5
  %4192 = call ptr @strerror(i32 noundef %4191) #10
  %4193 = call ptr @__errno_location() #11
  %4194 = load i32, ptr %4193, align 4, !tbaa !5
  %4195 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4182, ptr noundef @.str.25, i32 noundef %4183, ptr noundef @.str.39, ptr noundef @.str.21, i32 noundef 316, ptr noundef %4186, ptr noundef %4189, ptr noundef %4192, i32 noundef %4194) #10
  br label %4196

4196:                                             ; preds = %4179, %4162
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #10
  br label %4197

4197:                                             ; preds = %4196
  br label %4198

4198:                                             ; preds = %4197
  call void @exit(i32 noundef 1) #12
  unreachable

4199:                                             ; No predecessors!
  br label %4200

4200:                                             ; preds = %4199
  br label %4201

4201:                                             ; preds = %4200, %4143
  br label %4202

4202:                                             ; preds = %4201
  br label %4203

4203:                                             ; preds = %4202
  br label %4204

4204:                                             ; preds = %4203
  %4205 = load i32, ptr @test_count, align 4, !tbaa !5
  %4206 = add nsw i32 %4205, 1
  store i32 %4206, ptr @test_count, align 4, !tbaa !5
  %4207 = load ptr, ptr %96, align 8, !tbaa !9
  %4208 = call i32 @s2n_connection_set_io_stuffers(ptr noundef %97, ptr noundef null, ptr noundef %4207)
  %4209 = icmp eq i32 %4208, -1
  br i1 %4209, label %4210, label %4263

4210:                                             ; preds = %4204
  br label %4211

4211:                                             ; preds = %4210
  br label %4212

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

4219:                                             ; preds = %4212
  %4220 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4221 = call i32 @fileno(ptr noundef %4220) #10
  %4222 = call i32 @isatty(i32 noundef %4221) #10
  %4223 = icmp ne i32 %4222, 0
  br i1 %4223, label %4224, label %4241

4224:                                             ; preds = %4219
  %4225 = load i32, ptr %99, align 4, !tbaa !5
  %4226 = call ptr @__errno_location() #11
  store i32 %4225, ptr %4226, align 4, !tbaa !5
  %4227 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4228 = load i32, ptr @test_count, align 4, !tbaa !5
  %4229 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4230 = load i32, ptr %4229, align 4, !tbaa !5
  %4231 = call ptr @s2n_strerror(i32 noundef %4230, ptr noundef @.str.24)
  %4232 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4233 = load i32, ptr %4232, align 4, !tbaa !5
  %4234 = call ptr @s2n_strerror_debug(i32 noundef %4233, ptr noundef @.str.24)
  %4235 = call ptr @__errno_location() #11
  %4236 = load i32, ptr %4235, align 4, !tbaa !5
  %4237 = call ptr @strerror(i32 noundef %4236) #10
  %4238 = call ptr @__errno_location() #11
  %4239 = load i32, ptr %4238, align 4, !tbaa !5
  %4240 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4227, ptr noundef @.str.22, i32 noundef %4228, ptr noundef @.str.40, ptr noundef @.str.21, i32 noundef 317, ptr noundef %4231, ptr noundef %4234, ptr noundef %4237, i32 noundef %4239) #10
  br label %4258

4241:                                             ; preds = %4219, %4212
  %4242 = load i32, ptr %99, align 4, !tbaa !5
  %4243 = call ptr @__errno_location() #11
  store i32 %4242, ptr %4243, align 4, !tbaa !5
  %4244 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4245 = load i32, ptr @test_count, align 4, !tbaa !5
  %4246 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4247 = load i32, ptr %4246, align 4, !tbaa !5
  %4248 = call ptr @s2n_strerror(i32 noundef %4247, ptr noundef @.str.24)
  %4249 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4250 = load i32, ptr %4249, align 4, !tbaa !5
  %4251 = call ptr @s2n_strerror_debug(i32 noundef %4250, ptr noundef @.str.24)
  %4252 = call ptr @__errno_location() #11
  %4253 = load i32, ptr %4252, align 4, !tbaa !5
  %4254 = call ptr @strerror(i32 noundef %4253) #10
  %4255 = call ptr @__errno_location() #11
  %4256 = load i32, ptr %4255, align 4, !tbaa !5
  %4257 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4244, ptr noundef @.str.25, i32 noundef %4245, ptr noundef @.str.40, ptr noundef @.str.21, i32 noundef 317, ptr noundef %4248, ptr noundef %4251, ptr noundef %4254, i32 noundef %4256) #10
  br label %4258

4258:                                             ; preds = %4241, %4224
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #10
  br label %4259

4259:                                             ; preds = %4258
  br label %4260

4260:                                             ; preds = %4259
  call void @exit(i32 noundef 1) #12
  unreachable

4261:                                             ; No predecessors!
  br label %4262

4262:                                             ; preds = %4261
  br label %4263

4263:                                             ; preds = %4262, %4204
  br label %4264

4264:                                             ; preds = %4263
  br label %4265

4265:                                             ; preds = %4264
  %4266 = load ptr, ptr %96, align 8, !tbaa !9
  %4267 = getelementptr inbounds %struct.s2n_connection, ptr %4266, i32 0, i32 52
  %4268 = getelementptr inbounds %struct.s2n_handshake, ptr %4267, i32 0, i32 6
  store i32 0, ptr %4268, align 4, !tbaa !46
  %4269 = load ptr, ptr %96, align 8, !tbaa !9
  %4270 = getelementptr inbounds %struct.s2n_connection, ptr %4269, i32 0, i32 52
  %4271 = getelementptr inbounds %struct.s2n_handshake, ptr %4270, i32 0, i32 7
  store i32 0, ptr %4271, align 8, !tbaa !47
  br label %4272

4272:                                             ; preds = %4265
  %4273 = load i32, ptr @test_count, align 4, !tbaa !5
  %4274 = add nsw i32 %4273, 1
  store i32 %4274, ptr @test_count, align 4, !tbaa !5
  %4275 = load ptr, ptr %96, align 8, !tbaa !9
  %4276 = getelementptr inbounds %struct.s2n_connection, ptr %4275, i32 0, i32 52
  %4277 = getelementptr inbounds %struct.s2n_handshake, ptr %4276, i32 0, i32 12
  %4278 = load i32, ptr %4277, align 4, !tbaa !45
  %4279 = icmp eq i32 %4278, 2
  %4280 = zext i1 %4279 to i64
  %4281 = select i1 %4279, ptr @tls13_handshakes, ptr @handshakes
  %4282 = load ptr, ptr %96, align 8, !tbaa !9
  %4283 = getelementptr inbounds %struct.s2n_connection, ptr %4282, i32 0, i32 52
  %4284 = getelementptr inbounds %struct.s2n_handshake, ptr %4283, i32 0, i32 6
  %4285 = load i32, ptr %4284, align 4, !tbaa !46
  %4286 = zext i32 %4285 to i64
  %4287 = getelementptr inbounds [32 x i32], ptr %4281, i64 %4286
  %4288 = load ptr, ptr %96, align 8, !tbaa !9
  %4289 = getelementptr inbounds %struct.s2n_connection, ptr %4288, i32 0, i32 52
  %4290 = getelementptr inbounds %struct.s2n_handshake, ptr %4289, i32 0, i32 7
  %4291 = load i32, ptr %4290, align 8, !tbaa !47
  %4292 = sext i32 %4291 to i64
  %4293 = getelementptr inbounds [32 x i32], ptr %4287, i64 0, i64 %4292
  %4294 = load i32, ptr %4293, align 4, !tbaa !5
  %4295 = icmp eq i32 %4294, 0
  br i1 %4295, label %4349, label %4296

4296:                                             ; preds = %4272
  br label %4297

4297:                                             ; preds = %4296
  br label %4298

4298:                                             ; preds = %4297
  call void @llvm.lifetime.start.p0(i64 4, ptr %100) #10
  %4299 = call ptr @__errno_location() #11
  %4300 = load i32, ptr %4299, align 4, !tbaa !5
  store i32 %4300, ptr %100, align 4, !tbaa !5
  %4301 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4302 = call i32 @s2n_print_stacktrace(ptr noundef %4301)
  %4303 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4304 = trunc i8 %4303 to i1
  br i1 %4304, label %4305, label %4327

4305:                                             ; preds = %4298
  %4306 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4307 = call i32 @fileno(ptr noundef %4306) #10
  %4308 = call i32 @isatty(i32 noundef %4307) #10
  %4309 = icmp ne i32 %4308, 0
  br i1 %4309, label %4310, label %4327

4310:                                             ; preds = %4305
  %4311 = load i32, ptr %100, align 4, !tbaa !5
  %4312 = call ptr @__errno_location() #11
  store i32 %4311, ptr %4312, align 4, !tbaa !5
  %4313 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4314 = load i32, ptr @test_count, align 4, !tbaa !5
  %4315 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4316 = load i32, ptr %4315, align 4, !tbaa !5
  %4317 = call ptr @s2n_strerror(i32 noundef %4316, ptr noundef @.str.24)
  %4318 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4319 = load i32, ptr %4318, align 4, !tbaa !5
  %4320 = call ptr @s2n_strerror_debug(i32 noundef %4319, ptr noundef @.str.24)
  %4321 = call ptr @__errno_location() #11
  %4322 = load i32, ptr %4321, align 4, !tbaa !5
  %4323 = call ptr @strerror(i32 noundef %4322) #10
  %4324 = call ptr @__errno_location() #11
  %4325 = load i32, ptr %4324, align 4, !tbaa !5
  %4326 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4313, ptr noundef @.str.22, i32 noundef %4314, ptr noundef @.str.54, ptr noundef @.str.21, i32 noundef 321, ptr noundef %4317, ptr noundef %4320, ptr noundef %4323, i32 noundef %4325) #10
  br label %4344

4327:                                             ; preds = %4305, %4298
  %4328 = load i32, ptr %100, align 4, !tbaa !5
  %4329 = call ptr @__errno_location() #11
  store i32 %4328, ptr %4329, align 4, !tbaa !5
  %4330 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4331 = load i32, ptr @test_count, align 4, !tbaa !5
  %4332 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4333 = load i32, ptr %4332, align 4, !tbaa !5
  %4334 = call ptr @s2n_strerror(i32 noundef %4333, ptr noundef @.str.24)
  %4335 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4336 = load i32, ptr %4335, align 4, !tbaa !5
  %4337 = call ptr @s2n_strerror_debug(i32 noundef %4336, ptr noundef @.str.24)
  %4338 = call ptr @__errno_location() #11
  %4339 = load i32, ptr %4338, align 4, !tbaa !5
  %4340 = call ptr @strerror(i32 noundef %4339) #10
  %4341 = call ptr @__errno_location() #11
  %4342 = load i32, ptr %4341, align 4, !tbaa !5
  %4343 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4330, ptr noundef @.str.25, i32 noundef %4331, ptr noundef @.str.54, ptr noundef @.str.21, i32 noundef 321, ptr noundef %4334, ptr noundef %4337, ptr noundef %4340, i32 noundef %4342) #10
  br label %4344

4344:                                             ; preds = %4327, %4310
  call void @llvm.lifetime.end.p0(i64 4, ptr %100) #10
  br label %4345

4345:                                             ; preds = %4344
  br label %4346

4346:                                             ; preds = %4345
  call void @exit(i32 noundef 1) #12
  unreachable

4347:                                             ; No predecessors!
  br label %4348

4348:                                             ; preds = %4347
  br label %4349

4349:                                             ; preds = %4348, %4272
  br label %4350

4350:                                             ; preds = %4349
  br label %4351

4351:                                             ; preds = %4350
  br label %4352

4352:                                             ; preds = %4351
  %4353 = load i32, ptr @test_count, align 4, !tbaa !5
  %4354 = add nsw i32 %4353, 1
  store i32 %4354, ptr @test_count, align 4, !tbaa !5
  %4355 = call i32 @s2n_setup_handler_to_expect(i32 noundef 0, i8 noundef zeroext 0)
  %4356 = icmp eq i32 %4355, -1
  br i1 %4356, label %4357, label %4410

4357:                                             ; preds = %4352
  br label %4358

4358:                                             ; preds = %4357
  br label %4359

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

4366:                                             ; preds = %4359
  %4367 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4368 = call i32 @fileno(ptr noundef %4367) #10
  %4369 = call i32 @isatty(i32 noundef %4368) #10
  %4370 = icmp ne i32 %4369, 0
  br i1 %4370, label %4371, label %4388

4371:                                             ; preds = %4366
  %4372 = load i32, ptr %101, align 4, !tbaa !5
  %4373 = call ptr @__errno_location() #11
  store i32 %4372, ptr %4373, align 4, !tbaa !5
  %4374 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4375 = load i32, ptr @test_count, align 4, !tbaa !5
  %4376 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4377 = load i32, ptr %4376, align 4, !tbaa !5
  %4378 = call ptr @s2n_strerror(i32 noundef %4377, ptr noundef @.str.24)
  %4379 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4380 = load i32, ptr %4379, align 4, !tbaa !5
  %4381 = call ptr @s2n_strerror_debug(i32 noundef %4380, ptr noundef @.str.24)
  %4382 = call ptr @__errno_location() #11
  %4383 = load i32, ptr %4382, align 4, !tbaa !5
  %4384 = call ptr @strerror(i32 noundef %4383) #10
  %4385 = call ptr @__errno_location() #11
  %4386 = load i32, ptr %4385, align 4, !tbaa !5
  %4387 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4374, ptr noundef @.str.22, i32 noundef %4375, ptr noundef @.str.55, ptr noundef @.str.21, i32 noundef 322, ptr noundef %4378, ptr noundef %4381, ptr noundef %4384, i32 noundef %4386) #10
  br label %4405

4388:                                             ; preds = %4366, %4359
  %4389 = load i32, ptr %101, align 4, !tbaa !5
  %4390 = call ptr @__errno_location() #11
  store i32 %4389, ptr %4390, align 4, !tbaa !5
  %4391 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4392 = load i32, ptr @test_count, align 4, !tbaa !5
  %4393 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4394 = load i32, ptr %4393, align 4, !tbaa !5
  %4395 = call ptr @s2n_strerror(i32 noundef %4394, ptr noundef @.str.24)
  %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_debug(i32 noundef %4397, ptr noundef @.str.24)
  %4399 = call ptr @__errno_location() #11
  %4400 = load i32, ptr %4399, align 4, !tbaa !5
  %4401 = call ptr @strerror(i32 noundef %4400) #10
  %4402 = call ptr @__errno_location() #11
  %4403 = load i32, ptr %4402, align 4, !tbaa !5
  %4404 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4391, ptr noundef @.str.25, i32 noundef %4392, ptr noundef @.str.55, ptr noundef @.str.21, i32 noundef 322, ptr noundef %4395, ptr noundef %4398, ptr noundef %4401, i32 noundef %4403) #10
  br label %4405

4405:                                             ; preds = %4388, %4371
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #10
  br label %4406

4406:                                             ; preds = %4405
  br label %4407

4407:                                             ; preds = %4406
  call void @exit(i32 noundef 1) #12
  unreachable

4408:                                             ; No predecessors!
  br label %4409

4409:                                             ; preds = %4408
  br label %4410

4410:                                             ; preds = %4409, %4352
  br label %4411

4411:                                             ; preds = %4410
  br label %4412

4412:                                             ; preds = %4411
  br label %4413

4413:                                             ; preds = %4412
  %4414 = load i32, ptr @test_count, align 4, !tbaa !5
  %4415 = add nsw i32 %4414, 1
  store i32 %4415, ptr @test_count, align 4, !tbaa !5
  %4416 = call i32 @s2n_test_write_header(ptr noundef %97, i8 noundef zeroext 22, i8 noundef zeroext 1)
  %4417 = icmp eq i32 %4416, -1
  br i1 %4417, label %4418, label %4471

4418:                                             ; preds = %4413
  br label %4419

4419:                                             ; preds = %4418
  br label %4420

4420:                                             ; preds = %4419
  call void @llvm.lifetime.start.p0(i64 4, ptr %102) #10
  %4421 = call ptr @__errno_location() #11
  %4422 = load i32, ptr %4421, align 4, !tbaa !5
  store i32 %4422, ptr %102, align 4, !tbaa !5
  %4423 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4424 = call i32 @s2n_print_stacktrace(ptr noundef %4423)
  %4425 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4426 = trunc i8 %4425 to i1
  br i1 %4426, label %4427, label %4449

4427:                                             ; preds = %4420
  %4428 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4429 = call i32 @fileno(ptr noundef %4428) #10
  %4430 = call i32 @isatty(i32 noundef %4429) #10
  %4431 = icmp ne i32 %4430, 0
  br i1 %4431, label %4432, label %4449

4432:                                             ; preds = %4427
  %4433 = load i32, ptr %102, align 4, !tbaa !5
  %4434 = call ptr @__errno_location() #11
  store i32 %4433, ptr %4434, align 4, !tbaa !5
  %4435 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4436 = load i32, ptr @test_count, align 4, !tbaa !5
  %4437 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4438 = load i32, ptr %4437, align 4, !tbaa !5
  %4439 = call ptr @s2n_strerror(i32 noundef %4438, ptr noundef @.str.24)
  %4440 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4441 = load i32, ptr %4440, align 4, !tbaa !5
  %4442 = call ptr @s2n_strerror_debug(i32 noundef %4441, ptr noundef @.str.24)
  %4443 = call ptr @__errno_location() #11
  %4444 = load i32, ptr %4443, align 4, !tbaa !5
  %4445 = call ptr @strerror(i32 noundef %4444) #10
  %4446 = call ptr @__errno_location() #11
  %4447 = load i32, ptr %4446, align 4, !tbaa !5
  %4448 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4435, ptr noundef @.str.22, i32 noundef %4436, ptr noundef @.str.56, ptr noundef @.str.21, i32 noundef 324, ptr noundef %4439, ptr noundef %4442, ptr noundef %4445, i32 noundef %4447) #10
  br label %4466

4449:                                             ; preds = %4427, %4420
  %4450 = load i32, ptr %102, align 4, !tbaa !5
  %4451 = call ptr @__errno_location() #11
  store i32 %4450, ptr %4451, align 4, !tbaa !5
  %4452 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4453 = load i32, ptr @test_count, align 4, !tbaa !5
  %4454 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4455 = load i32, ptr %4454, align 4, !tbaa !5
  %4456 = call ptr @s2n_strerror(i32 noundef %4455, ptr noundef @.str.24)
  %4457 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4458 = load i32, ptr %4457, align 4, !tbaa !5
  %4459 = call ptr @s2n_strerror_debug(i32 noundef %4458, ptr noundef @.str.24)
  %4460 = call ptr @__errno_location() #11
  %4461 = load i32, ptr %4460, align 4, !tbaa !5
  %4462 = call ptr @strerror(i32 noundef %4461) #10
  %4463 = call ptr @__errno_location() #11
  %4464 = load i32, ptr %4463, align 4, !tbaa !5
  %4465 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4452, ptr noundef @.str.25, i32 noundef %4453, ptr noundef @.str.56, ptr noundef @.str.21, i32 noundef 324, ptr noundef %4456, ptr noundef %4459, ptr noundef %4462, i32 noundef %4464) #10
  br label %4466

4466:                                             ; preds = %4449, %4432
  call void @llvm.lifetime.end.p0(i64 4, ptr %102) #10
  br label %4467

4467:                                             ; preds = %4466
  br label %4468

4468:                                             ; preds = %4467
  call void @exit(i32 noundef 1) #12
  unreachable

4469:                                             ; No predecessors!
  br label %4470

4470:                                             ; preds = %4469
  br label %4471

4471:                                             ; preds = %4470, %4413
  br label %4472

4472:                                             ; preds = %4471
  br label %4473

4473:                                             ; preds = %4472
  br label %4474

4474:                                             ; preds = %4473
  %4475 = load i32, ptr @test_count, align 4, !tbaa !5
  %4476 = add nsw i32 %4475, 1
  store i32 %4476, ptr @test_count, align 4, !tbaa !5
  %4477 = load ptr, ptr %96, align 8, !tbaa !9
  %4478 = call i32 @s2n_handshake_read_io(ptr noundef %4477)
  %4479 = icmp eq i32 %4478, -1
  br i1 %4479, label %4480, label %4533

4480:                                             ; preds = %4474
  br label %4481

4481:                                             ; preds = %4480
  br label %4482

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

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

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

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

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

4529:                                             ; preds = %4528
  br label %4530

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

4531:                                             ; No predecessors!
  br label %4532

4532:                                             ; preds = %4531
  br label %4533

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

4534:                                             ; preds = %4533
  br label %4535

4535:                                             ; preds = %4534
  br label %4536

4536:                                             ; preds = %4535
  %4537 = load i32, ptr @test_count, align 4, !tbaa !5
  %4538 = add nsw i32 %4537, 1
  store i32 %4538, ptr @test_count, align 4, !tbaa !5
  %4539 = load ptr, ptr %96, align 8, !tbaa !9
  %4540 = getelementptr inbounds %struct.s2n_connection, ptr %4539, i32 0, i32 52
  %4541 = getelementptr inbounds %struct.s2n_handshake, ptr %4540, i32 0, i32 7
  %4542 = load i32, ptr %4541, align 8, !tbaa !47
  %4543 = icmp eq i32 %4542, 1
  br i1 %4543, label %4597, label %4544

4544:                                             ; preds = %4536
  br label %4545

4545:                                             ; preds = %4544
  br label %4546

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

4553:                                             ; preds = %4546
  %4554 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4555 = call i32 @fileno(ptr noundef %4554) #10
  %4556 = call i32 @isatty(i32 noundef %4555) #10
  %4557 = icmp ne i32 %4556, 0
  br i1 %4557, label %4558, label %4575

4558:                                             ; preds = %4553
  %4559 = load i32, ptr %104, align 4, !tbaa !5
  %4560 = call ptr @__errno_location() #11
  store i32 %4559, ptr %4560, align 4, !tbaa !5
  %4561 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4562 = load i32, ptr @test_count, align 4, !tbaa !5
  %4563 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4564 = load i32, ptr %4563, align 4, !tbaa !5
  %4565 = call ptr @s2n_strerror(i32 noundef %4564, ptr noundef @.str.24)
  %4566 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4567 = load i32, ptr %4566, align 4, !tbaa !5
  %4568 = call ptr @s2n_strerror_debug(i32 noundef %4567, ptr noundef @.str.24)
  %4569 = call ptr @__errno_location() #11
  %4570 = load i32, ptr %4569, align 4, !tbaa !5
  %4571 = call ptr @strerror(i32 noundef %4570) #10
  %4572 = call ptr @__errno_location() #11
  %4573 = load i32, ptr %4572, align 4, !tbaa !5
  %4574 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4561, ptr noundef @.str.22, i32 noundef %4562, ptr noundef @.str.57, ptr noundef @.str.21, i32 noundef 327, ptr noundef %4565, ptr noundef %4568, ptr noundef %4571, i32 noundef %4573) #10
  br label %4592

4575:                                             ; preds = %4553, %4546
  %4576 = load i32, ptr %104, align 4, !tbaa !5
  %4577 = call ptr @__errno_location() #11
  store i32 %4576, ptr %4577, align 4, !tbaa !5
  %4578 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4579 = load i32, ptr @test_count, align 4, !tbaa !5
  %4580 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4581 = load i32, ptr %4580, align 4, !tbaa !5
  %4582 = call ptr @s2n_strerror(i32 noundef %4581, ptr noundef @.str.24)
  %4583 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4584 = load i32, ptr %4583, align 4, !tbaa !5
  %4585 = call ptr @s2n_strerror_debug(i32 noundef %4584, ptr noundef @.str.24)
  %4586 = call ptr @__errno_location() #11
  %4587 = load i32, ptr %4586, align 4, !tbaa !5
  %4588 = call ptr @strerror(i32 noundef %4587) #10
  %4589 = call ptr @__errno_location() #11
  %4590 = load i32, ptr %4589, align 4, !tbaa !5
  %4591 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4578, ptr noundef @.str.25, i32 noundef %4579, ptr noundef @.str.57, ptr noundef @.str.21, i32 noundef 327, ptr noundef %4582, ptr noundef %4585, ptr noundef %4588, i32 noundef %4590) #10
  br label %4592

4592:                                             ; preds = %4575, %4558
  call void @llvm.lifetime.end.p0(i64 4, ptr %104) #10
  br label %4593

4593:                                             ; preds = %4592
  br label %4594

4594:                                             ; preds = %4593
  call void @exit(i32 noundef 1) #12
  unreachable

4595:                                             ; No predecessors!
  br label %4596

4596:                                             ; preds = %4595
  br label %4597

4597:                                             ; preds = %4596, %4536
  br label %4598

4598:                                             ; preds = %4597
  br label %4599

4599:                                             ; preds = %4598
  br label %4600

4600:                                             ; preds = %4599
  %4601 = load i32, ptr @test_count, align 4, !tbaa !5
  %4602 = add nsw i32 %4601, 1
  store i32 %4602, ptr @test_count, align 4, !tbaa !5
  %4603 = load i32, ptr @unexpected_handler_called, align 4, !tbaa !5
  %4604 = icmp ne i32 %4603, 0
  br i1 %4604, label %4605, label %4658

4605:                                             ; preds = %4600
  br label %4606

4606:                                             ; preds = %4605
  br label %4607

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

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

4619:                                             ; preds = %4614
  %4620 = load i32, ptr %105, align 4, !tbaa !5
  %4621 = call ptr @__errno_location() #11
  store i32 %4620, ptr %4621, align 4, !tbaa !5
  %4622 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4623 = load i32, ptr @test_count, align 4, !tbaa !5
  %4624 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4625 = load i32, ptr %4624, align 4, !tbaa !5
  %4626 = call ptr @s2n_strerror(i32 noundef %4625, ptr noundef @.str.24)
  %4627 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4628 = load i32, ptr %4627, align 4, !tbaa !5
  %4629 = call ptr @s2n_strerror_debug(i32 noundef %4628, ptr noundef @.str.24)
  %4630 = call ptr @__errno_location() #11
  %4631 = load i32, ptr %4630, align 4, !tbaa !5
  %4632 = call ptr @strerror(i32 noundef %4631) #10
  %4633 = call ptr @__errno_location() #11
  %4634 = load i32, ptr %4633, align 4, !tbaa !5
  %4635 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4622, ptr noundef @.str.22, i32 noundef %4623, ptr noundef @.str.45, ptr noundef @.str.21, i32 noundef 328, ptr noundef %4626, ptr noundef %4629, ptr noundef %4632, i32 noundef %4634) #10
  br label %4653

4636:                                             ; preds = %4614, %4607
  %4637 = load i32, ptr %105, align 4, !tbaa !5
  %4638 = call ptr @__errno_location() #11
  store i32 %4637, ptr %4638, align 4, !tbaa !5
  %4639 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4640 = load i32, ptr @test_count, align 4, !tbaa !5
  %4641 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4642 = load i32, ptr %4641, align 4, !tbaa !5
  %4643 = call ptr @s2n_strerror(i32 noundef %4642, ptr noundef @.str.24)
  %4644 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4645 = load i32, ptr %4644, align 4, !tbaa !5
  %4646 = call ptr @s2n_strerror_debug(i32 noundef %4645, ptr noundef @.str.24)
  %4647 = call ptr @__errno_location() #11
  %4648 = load i32, ptr %4647, align 4, !tbaa !5
  %4649 = call ptr @strerror(i32 noundef %4648) #10
  %4650 = call ptr @__errno_location() #11
  %4651 = load i32, ptr %4650, align 4, !tbaa !5
  %4652 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4639, ptr noundef @.str.25, i32 noundef %4640, ptr noundef @.str.45, ptr noundef @.str.21, i32 noundef 328, ptr noundef %4643, ptr noundef %4646, ptr noundef %4649, i32 noundef %4651) #10
  br label %4653

4653:                                             ; preds = %4636, %4619
  call void @llvm.lifetime.end.p0(i64 4, ptr %105) #10
  br label %4654

4654:                                             ; preds = %4653
  br label %4655

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

4656:                                             ; No predecessors!
  br label %4657

4657:                                             ; preds = %4656
  br label %4658

4658:                                             ; preds = %4657, %4600
  br label %4659

4659:                                             ; preds = %4658
  br label %4660

4660:                                             ; preds = %4659
  br label %4661

4661:                                             ; preds = %4660
  %4662 = load i32, ptr @test_count, align 4, !tbaa !5
  %4663 = add nsw i32 %4662, 1
  store i32 %4663, ptr @test_count, align 4, !tbaa !5
  %4664 = load i32, ptr @expected_handler_called, align 4, !tbaa !5
  %4665 = icmp ne i32 %4664, 0
  br i1 %4665, label %4719, label %4666

4666:                                             ; preds = %4661
  br label %4667

4667:                                             ; preds = %4666
  br label %4668

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

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

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

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

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

4715:                                             ; preds = %4714
  br label %4716

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

4717:                                             ; No predecessors!
  br label %4718

4718:                                             ; preds = %4717
  br label %4719

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

4720:                                             ; preds = %4719
  br label %4721

4721:                                             ; preds = %4720
  br label %4722

4722:                                             ; preds = %4721
  %4723 = load i32, ptr @test_count, align 4, !tbaa !5
  %4724 = add nsw i32 %4723, 1
  store i32 %4724, ptr @test_count, align 4, !tbaa !5
  %4725 = call i32 @s2n_stuffer_free(ptr noundef %97)
  %4726 = icmp eq i32 %4725, -1
  br i1 %4726, label %4727, label %4780

4727:                                             ; preds = %4722
  br label %4728

4728:                                             ; preds = %4727
  br label %4729

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

4736:                                             ; preds = %4729
  %4737 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4738 = call i32 @fileno(ptr noundef %4737) #10
  %4739 = call i32 @isatty(i32 noundef %4738) #10
  %4740 = icmp ne i32 %4739, 0
  br i1 %4740, label %4741, label %4758

4741:                                             ; preds = %4736
  %4742 = load i32, ptr %107, align 4, !tbaa !5
  %4743 = call ptr @__errno_location() #11
  store i32 %4742, ptr %4743, align 4, !tbaa !5
  %4744 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4745 = load i32, ptr @test_count, align 4, !tbaa !5
  %4746 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4747 = load i32, ptr %4746, align 4, !tbaa !5
  %4748 = call ptr @s2n_strerror(i32 noundef %4747, ptr noundef @.str.24)
  %4749 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4750 = load i32, ptr %4749, align 4, !tbaa !5
  %4751 = call ptr @s2n_strerror_debug(i32 noundef %4750, ptr noundef @.str.24)
  %4752 = call ptr @__errno_location() #11
  %4753 = load i32, ptr %4752, align 4, !tbaa !5
  %4754 = call ptr @strerror(i32 noundef %4753) #10
  %4755 = call ptr @__errno_location() #11
  %4756 = load i32, ptr %4755, align 4, !tbaa !5
  %4757 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4744, ptr noundef @.str.22, i32 noundef %4745, ptr noundef @.str.51, ptr noundef @.str.21, i32 noundef 331, ptr noundef %4748, ptr noundef %4751, ptr noundef %4754, i32 noundef %4756) #10
  br label %4775

4758:                                             ; preds = %4736, %4729
  %4759 = load i32, ptr %107, align 4, !tbaa !5
  %4760 = call ptr @__errno_location() #11
  store i32 %4759, ptr %4760, align 4, !tbaa !5
  %4761 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4762 = load i32, ptr @test_count, align 4, !tbaa !5
  %4763 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4764 = load i32, ptr %4763, align 4, !tbaa !5
  %4765 = call ptr @s2n_strerror(i32 noundef %4764, ptr noundef @.str.24)
  %4766 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4767 = load i32, ptr %4766, align 4, !tbaa !5
  %4768 = call ptr @s2n_strerror_debug(i32 noundef %4767, ptr noundef @.str.24)
  %4769 = call ptr @__errno_location() #11
  %4770 = load i32, ptr %4769, align 4, !tbaa !5
  %4771 = call ptr @strerror(i32 noundef %4770) #10
  %4772 = call ptr @__errno_location() #11
  %4773 = load i32, ptr %4772, align 4, !tbaa !5
  %4774 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4761, ptr noundef @.str.25, i32 noundef %4762, ptr noundef @.str.51, ptr noundef @.str.21, i32 noundef 331, ptr noundef %4765, ptr noundef %4768, ptr noundef %4771, i32 noundef %4773) #10
  br label %4775

4775:                                             ; preds = %4758, %4741
  call void @llvm.lifetime.end.p0(i64 4, ptr %107) #10
  br label %4776

4776:                                             ; preds = %4775
  br label %4777

4777:                                             ; preds = %4776
  call void @exit(i32 noundef 1) #12
  unreachable

4778:                                             ; No predecessors!
  br label %4779

4779:                                             ; preds = %4778
  br label %4780

4780:                                             ; preds = %4779, %4722
  br label %4781

4781:                                             ; preds = %4780
  br label %4782

4782:                                             ; preds = %4781
  br label %4783

4783:                                             ; preds = %4782
  %4784 = load i32, ptr @test_count, align 4, !tbaa !5
  %4785 = add nsw i32 %4784, 1
  store i32 %4785, ptr @test_count, align 4, !tbaa !5
  %4786 = load ptr, ptr %96, align 8, !tbaa !9
  %4787 = call i32 @s2n_connection_free(ptr noundef %4786)
  %4788 = icmp eq i32 %4787, -1
  br i1 %4788, label %4789, label %4842

4789:                                             ; preds = %4783
  br label %4790

4790:                                             ; preds = %4789
  br label %4791

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

4798:                                             ; preds = %4791
  %4799 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4800 = call i32 @fileno(ptr noundef %4799) #10
  %4801 = call i32 @isatty(i32 noundef %4800) #10
  %4802 = icmp ne i32 %4801, 0
  br i1 %4802, label %4803, label %4820

4803:                                             ; preds = %4798
  %4804 = load i32, ptr %108, align 4, !tbaa !5
  %4805 = call ptr @__errno_location() #11
  store i32 %4804, ptr %4805, align 4, !tbaa !5
  %4806 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4807 = load i32, ptr @test_count, align 4, !tbaa !5
  %4808 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4809 = load i32, ptr %4808, align 4, !tbaa !5
  %4810 = call ptr @s2n_strerror(i32 noundef %4809, ptr noundef @.str.24)
  %4811 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4812 = load i32, ptr %4811, align 4, !tbaa !5
  %4813 = call ptr @s2n_strerror_debug(i32 noundef %4812, ptr noundef @.str.24)
  %4814 = call ptr @__errno_location() #11
  %4815 = load i32, ptr %4814, align 4, !tbaa !5
  %4816 = call ptr @strerror(i32 noundef %4815) #10
  %4817 = call ptr @__errno_location() #11
  %4818 = load i32, ptr %4817, align 4, !tbaa !5
  %4819 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4806, ptr noundef @.str.22, i32 noundef %4807, ptr noundef @.str.33, ptr noundef @.str.21, i32 noundef 332, ptr noundef %4810, ptr noundef %4813, ptr noundef %4816, i32 noundef %4818) #10
  br label %4837

4820:                                             ; preds = %4798, %4791
  %4821 = load i32, ptr %108, align 4, !tbaa !5
  %4822 = call ptr @__errno_location() #11
  store i32 %4821, ptr %4822, align 4, !tbaa !5
  %4823 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4824 = load i32, ptr @test_count, align 4, !tbaa !5
  %4825 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4826 = load i32, ptr %4825, align 4, !tbaa !5
  %4827 = call ptr @s2n_strerror(i32 noundef %4826, ptr noundef @.str.24)
  %4828 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4829 = load i32, ptr %4828, align 4, !tbaa !5
  %4830 = call ptr @s2n_strerror_debug(i32 noundef %4829, ptr noundef @.str.24)
  %4831 = call ptr @__errno_location() #11
  %4832 = load i32, ptr %4831, align 4, !tbaa !5
  %4833 = call ptr @strerror(i32 noundef %4832) #10
  %4834 = call ptr @__errno_location() #11
  %4835 = load i32, ptr %4834, align 4, !tbaa !5
  %4836 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4823, ptr noundef @.str.25, i32 noundef %4824, ptr noundef @.str.33, ptr noundef @.str.21, i32 noundef 332, ptr noundef %4827, ptr noundef %4830, ptr noundef %4833, i32 noundef %4835) #10
  br label %4837

4837:                                             ; preds = %4820, %4803
  call void @llvm.lifetime.end.p0(i64 4, ptr %108) #10
  br label %4838

4838:                                             ; preds = %4837
  br label %4839

4839:                                             ; preds = %4838
  call void @exit(i32 noundef 1) #12
  unreachable

4840:                                             ; No predecessors!
  br label %4841

4841:                                             ; preds = %4840
  br label %4842

4842:                                             ; preds = %4841, %4783
  br label %4843

4843:                                             ; preds = %4842
  br label %4844

4844:                                             ; preds = %4843
  call void @llvm.lifetime.end.p0(i64 40, ptr %97) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %96) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %109) #10
  %4845 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %4845, ptr %109, align 8, !tbaa !9
  %4846 = load ptr, ptr %109, align 8, !tbaa !9
  %4847 = getelementptr inbounds %struct.s2n_connection, ptr %4846, i32 0, i32 23
  store i8 33, ptr %4847, align 4, !tbaa !19
  call void @llvm.lifetime.start.p0(i64 40, ptr %110) #10
  call void @llvm.memset.p0.i64(ptr align 8 %110, i8 0, i64 40, i1 false)
  br label %4848

4848:                                             ; preds = %4844
  %4849 = load i32, ptr @test_count, align 4, !tbaa !5
  %4850 = add nsw i32 %4849, 1
  store i32 %4850, ptr @test_count, align 4, !tbaa !5
  %4851 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %110, i32 noundef 0)
  %4852 = icmp eq i32 %4851, -1
  br i1 %4852, label %4853, label %4906

4853:                                             ; preds = %4848
  br label %4854

4854:                                             ; preds = %4853
  br label %4855

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

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

4867:                                             ; preds = %4862
  %4868 = load i32, ptr %111, align 4, !tbaa !5
  %4869 = call ptr @__errno_location() #11
  store i32 %4868, ptr %4869, align 4, !tbaa !5
  %4870 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4871 = load i32, ptr @test_count, align 4, !tbaa !5
  %4872 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4873 = load i32, ptr %4872, align 4, !tbaa !5
  %4874 = call ptr @s2n_strerror(i32 noundef %4873, ptr noundef @.str.24)
  %4875 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4876 = load i32, ptr %4875, align 4, !tbaa !5
  %4877 = call ptr @s2n_strerror_debug(i32 noundef %4876, ptr noundef @.str.24)
  %4878 = call ptr @__errno_location() #11
  %4879 = load i32, ptr %4878, align 4, !tbaa !5
  %4880 = call ptr @strerror(i32 noundef %4879) #10
  %4881 = call ptr @__errno_location() #11
  %4882 = load i32, ptr %4881, align 4, !tbaa !5
  %4883 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4870, ptr noundef @.str.22, i32 noundef %4871, ptr noundef @.str.39, ptr noundef @.str.21, i32 noundef 341, ptr noundef %4874, ptr noundef %4877, ptr noundef %4880, i32 noundef %4882) #10
  br label %4901

4884:                                             ; preds = %4862, %4855
  %4885 = load i32, ptr %111, align 4, !tbaa !5
  %4886 = call ptr @__errno_location() #11
  store i32 %4885, ptr %4886, align 4, !tbaa !5
  %4887 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4888 = load i32, ptr @test_count, align 4, !tbaa !5
  %4889 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4890 = load i32, ptr %4889, align 4, !tbaa !5
  %4891 = call ptr @s2n_strerror(i32 noundef %4890, ptr noundef @.str.24)
  %4892 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4893 = load i32, ptr %4892, align 4, !tbaa !5
  %4894 = call ptr @s2n_strerror_debug(i32 noundef %4893, ptr noundef @.str.24)
  %4895 = call ptr @__errno_location() #11
  %4896 = load i32, ptr %4895, align 4, !tbaa !5
  %4897 = call ptr @strerror(i32 noundef %4896) #10
  %4898 = call ptr @__errno_location() #11
  %4899 = load i32, ptr %4898, align 4, !tbaa !5
  %4900 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4887, ptr noundef @.str.25, i32 noundef %4888, ptr noundef @.str.39, ptr noundef @.str.21, i32 noundef 341, ptr noundef %4891, ptr noundef %4894, ptr noundef %4897, i32 noundef %4899) #10
  br label %4901

4901:                                             ; preds = %4884, %4867
  call void @llvm.lifetime.end.p0(i64 4, ptr %111) #10
  br label %4902

4902:                                             ; preds = %4901
  br label %4903

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

4904:                                             ; No predecessors!
  br label %4905

4905:                                             ; preds = %4904
  br label %4906

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

4907:                                             ; preds = %4906
  br label %4908

4908:                                             ; preds = %4907
  br label %4909

4909:                                             ; preds = %4908
  %4910 = load i32, ptr @test_count, align 4, !tbaa !5
  %4911 = add nsw i32 %4910, 1
  store i32 %4911, ptr @test_count, align 4, !tbaa !5
  %4912 = load ptr, ptr %109, align 8, !tbaa !9
  %4913 = call i32 @s2n_connection_set_io_stuffers(ptr noundef %110, ptr noundef null, ptr noundef %4912)
  %4914 = icmp eq i32 %4913, -1
  br i1 %4914, label %4915, label %4968

4915:                                             ; preds = %4909
  br label %4916

4916:                                             ; preds = %4915
  br label %4917

4917:                                             ; preds = %4916
  call void @llvm.lifetime.start.p0(i64 4, ptr %112) #10
  %4918 = call ptr @__errno_location() #11
  %4919 = load i32, ptr %4918, align 4, !tbaa !5
  store i32 %4919, ptr %112, align 4, !tbaa !5
  %4920 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4921 = call i32 @s2n_print_stacktrace(ptr noundef %4920)
  %4922 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4923 = trunc i8 %4922 to i1
  br i1 %4923, label %4924, label %4946

4924:                                             ; preds = %4917
  %4925 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4926 = call i32 @fileno(ptr noundef %4925) #10
  %4927 = call i32 @isatty(i32 noundef %4926) #10
  %4928 = icmp ne i32 %4927, 0
  br i1 %4928, label %4929, label %4946

4929:                                             ; preds = %4924
  %4930 = load i32, ptr %112, align 4, !tbaa !5
  %4931 = call ptr @__errno_location() #11
  store i32 %4930, ptr %4931, align 4, !tbaa !5
  %4932 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4933 = load i32, ptr @test_count, align 4, !tbaa !5
  %4934 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4935 = load i32, ptr %4934, align 4, !tbaa !5
  %4936 = call ptr @s2n_strerror(i32 noundef %4935, ptr noundef @.str.24)
  %4937 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4938 = load i32, ptr %4937, align 4, !tbaa !5
  %4939 = call ptr @s2n_strerror_debug(i32 noundef %4938, ptr noundef @.str.24)
  %4940 = call ptr @__errno_location() #11
  %4941 = load i32, ptr %4940, align 4, !tbaa !5
  %4942 = call ptr @strerror(i32 noundef %4941) #10
  %4943 = call ptr @__errno_location() #11
  %4944 = load i32, ptr %4943, align 4, !tbaa !5
  %4945 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4932, ptr noundef @.str.22, i32 noundef %4933, ptr noundef @.str.40, ptr noundef @.str.21, i32 noundef 342, ptr noundef %4936, ptr noundef %4939, ptr noundef %4942, i32 noundef %4944) #10
  br label %4963

4946:                                             ; preds = %4924, %4917
  %4947 = load i32, ptr %112, align 4, !tbaa !5
  %4948 = call ptr @__errno_location() #11
  store i32 %4947, ptr %4948, align 4, !tbaa !5
  %4949 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4950 = load i32, ptr @test_count, align 4, !tbaa !5
  %4951 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4952 = load i32, ptr %4951, align 4, !tbaa !5
  %4953 = call ptr @s2n_strerror(i32 noundef %4952, ptr noundef @.str.24)
  %4954 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4955 = load i32, ptr %4954, align 4, !tbaa !5
  %4956 = call ptr @s2n_strerror_debug(i32 noundef %4955, ptr noundef @.str.24)
  %4957 = call ptr @__errno_location() #11
  %4958 = load i32, ptr %4957, align 4, !tbaa !5
  %4959 = call ptr @strerror(i32 noundef %4958) #10
  %4960 = call ptr @__errno_location() #11
  %4961 = load i32, ptr %4960, align 4, !tbaa !5
  %4962 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4949, ptr noundef @.str.25, i32 noundef %4950, ptr noundef @.str.40, ptr noundef @.str.21, i32 noundef 342, ptr noundef %4953, ptr noundef %4956, ptr noundef %4959, i32 noundef %4961) #10
  br label %4963

4963:                                             ; preds = %4946, %4929
  call void @llvm.lifetime.end.p0(i64 4, ptr %112) #10
  br label %4964

4964:                                             ; preds = %4963
  br label %4965

4965:                                             ; preds = %4964
  call void @exit(i32 noundef 1) #12
  unreachable

4966:                                             ; No predecessors!
  br label %4967

4967:                                             ; preds = %4966
  br label %4968

4968:                                             ; preds = %4967, %4909
  br label %4969

4969:                                             ; preds = %4968
  br label %4970

4970:                                             ; preds = %4969
  %4971 = load ptr, ptr %109, align 8, !tbaa !9
  %4972 = getelementptr inbounds %struct.s2n_connection, ptr %4971, i32 0, i32 52
  %4973 = getelementptr inbounds %struct.s2n_handshake, ptr %4972, i32 0, i32 6
  store i32 0, ptr %4973, align 4, !tbaa !46
  %4974 = load ptr, ptr %109, align 8, !tbaa !9
  %4975 = getelementptr inbounds %struct.s2n_connection, ptr %4974, i32 0, i32 52
  %4976 = getelementptr inbounds %struct.s2n_handshake, ptr %4975, i32 0, i32 7
  store i32 0, ptr %4976, align 8, !tbaa !47
  br label %4977

4977:                                             ; preds = %4970
  %4978 = load i32, ptr @test_count, align 4, !tbaa !5
  %4979 = add nsw i32 %4978, 1
  store i32 %4979, ptr @test_count, align 4, !tbaa !5
  %4980 = load ptr, ptr %109, align 8, !tbaa !9
  %4981 = getelementptr inbounds %struct.s2n_connection, ptr %4980, i32 0, i32 52
  %4982 = getelementptr inbounds %struct.s2n_handshake, ptr %4981, i32 0, i32 12
  %4983 = load i32, ptr %4982, align 4, !tbaa !45
  %4984 = icmp eq i32 %4983, 2
  %4985 = zext i1 %4984 to i64
  %4986 = select i1 %4984, ptr @tls13_handshakes, ptr @handshakes
  %4987 = load ptr, ptr %109, align 8, !tbaa !9
  %4988 = getelementptr inbounds %struct.s2n_connection, ptr %4987, i32 0, i32 52
  %4989 = getelementptr inbounds %struct.s2n_handshake, ptr %4988, i32 0, i32 6
  %4990 = load i32, ptr %4989, align 4, !tbaa !46
  %4991 = zext i32 %4990 to i64
  %4992 = getelementptr inbounds [32 x i32], ptr %4986, i64 %4991
  %4993 = load ptr, ptr %109, align 8, !tbaa !9
  %4994 = getelementptr inbounds %struct.s2n_connection, ptr %4993, i32 0, i32 52
  %4995 = getelementptr inbounds %struct.s2n_handshake, ptr %4994, i32 0, i32 7
  %4996 = load i32, ptr %4995, align 8, !tbaa !47
  %4997 = sext i32 %4996 to i64
  %4998 = getelementptr inbounds [32 x i32], ptr %4992, i64 0, i64 %4997
  %4999 = load i32, ptr %4998, align 4, !tbaa !5
  %5000 = icmp eq i32 %4999, 0
  br i1 %5000, label %5054, label %5001

5001:                                             ; preds = %4977
  br label %5002

5002:                                             ; preds = %5001
  br label %5003

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

5010:                                             ; preds = %5003
  %5011 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5012 = call i32 @fileno(ptr noundef %5011) #10
  %5013 = call i32 @isatty(i32 noundef %5012) #10
  %5014 = icmp ne i32 %5013, 0
  br i1 %5014, label %5015, label %5032

5015:                                             ; preds = %5010
  %5016 = load i32, ptr %113, align 4, !tbaa !5
  %5017 = call ptr @__errno_location() #11
  store i32 %5016, ptr %5017, align 4, !tbaa !5
  %5018 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5019 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %5021, ptr noundef @.str.24)
  %5023 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5024 = load i32, ptr %5023, align 4, !tbaa !5
  %5025 = call ptr @s2n_strerror_debug(i32 noundef %5024, ptr noundef @.str.24)
  %5026 = call ptr @__errno_location() #11
  %5027 = load i32, ptr %5026, align 4, !tbaa !5
  %5028 = call ptr @strerror(i32 noundef %5027) #10
  %5029 = call ptr @__errno_location() #11
  %5030 = load i32, ptr %5029, align 4, !tbaa !5
  %5031 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5018, ptr noundef @.str.22, i32 noundef %5019, ptr noundef @.str.54, ptr noundef @.str.21, i32 noundef 346, ptr noundef %5022, ptr noundef %5025, ptr noundef %5028, i32 noundef %5030) #10
  br label %5049

5032:                                             ; preds = %5010, %5003
  %5033 = load i32, ptr %113, align 4, !tbaa !5
  %5034 = call ptr @__errno_location() #11
  store i32 %5033, ptr %5034, align 4, !tbaa !5
  %5035 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5036 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %5038, ptr noundef @.str.24)
  %5040 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5041 = load i32, ptr %5040, align 4, !tbaa !5
  %5042 = call ptr @s2n_strerror_debug(i32 noundef %5041, ptr noundef @.str.24)
  %5043 = call ptr @__errno_location() #11
  %5044 = load i32, ptr %5043, align 4, !tbaa !5
  %5045 = call ptr @strerror(i32 noundef %5044) #10
  %5046 = call ptr @__errno_location() #11
  %5047 = load i32, ptr %5046, align 4, !tbaa !5
  %5048 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5035, ptr noundef @.str.25, i32 noundef %5036, ptr noundef @.str.54, ptr noundef @.str.21, i32 noundef 346, ptr noundef %5039, ptr noundef %5042, ptr noundef %5045, i32 noundef %5047) #10
  br label %5049

5049:                                             ; preds = %5032, %5015
  call void @llvm.lifetime.end.p0(i64 4, ptr %113) #10
  br label %5050

5050:                                             ; preds = %5049
  br label %5051

5051:                                             ; preds = %5050
  call void @exit(i32 noundef 1) #12
  unreachable

5052:                                             ; No predecessors!
  br label %5053

5053:                                             ; preds = %5052
  br label %5054

5054:                                             ; preds = %5053, %4977
  br label %5055

5055:                                             ; preds = %5054
  br label %5056

5056:                                             ; preds = %5055
  br label %5057

5057:                                             ; preds = %5056
  %5058 = load i32, ptr @test_count, align 4, !tbaa !5
  %5059 = add nsw i32 %5058, 1
  store i32 %5059, ptr @test_count, align 4, !tbaa !5
  %5060 = call i32 @s2n_setup_handler_to_expect(i32 noundef 0, i8 noundef zeroext 0)
  %5061 = icmp eq i32 %5060, -1
  br i1 %5061, label %5062, label %5115

5062:                                             ; preds = %5057
  br label %5063

5063:                                             ; preds = %5062
  br label %5064

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

5071:                                             ; preds = %5064
  %5072 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5073 = call i32 @fileno(ptr noundef %5072) #10
  %5074 = call i32 @isatty(i32 noundef %5073) #10
  %5075 = icmp ne i32 %5074, 0
  br i1 %5075, label %5076, label %5093

5076:                                             ; preds = %5071
  %5077 = load i32, ptr %114, align 4, !tbaa !5
  %5078 = call ptr @__errno_location() #11
  store i32 %5077, ptr %5078, align 4, !tbaa !5
  %5079 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5080 = load i32, ptr @test_count, align 4, !tbaa !5
  %5081 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5082 = load i32, ptr %5081, align 4, !tbaa !5
  %5083 = call ptr @s2n_strerror(i32 noundef %5082, ptr noundef @.str.24)
  %5084 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5085 = load i32, ptr %5084, align 4, !tbaa !5
  %5086 = call ptr @s2n_strerror_debug(i32 noundef %5085, ptr noundef @.str.24)
  %5087 = call ptr @__errno_location() #11
  %5088 = load i32, ptr %5087, align 4, !tbaa !5
  %5089 = call ptr @strerror(i32 noundef %5088) #10
  %5090 = call ptr @__errno_location() #11
  %5091 = load i32, ptr %5090, align 4, !tbaa !5
  %5092 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5079, ptr noundef @.str.22, i32 noundef %5080, ptr noundef @.str.55, ptr noundef @.str.21, i32 noundef 347, ptr noundef %5083, ptr noundef %5086, ptr noundef %5089, i32 noundef %5091) #10
  br label %5110

5093:                                             ; preds = %5071, %5064
  %5094 = load i32, ptr %114, align 4, !tbaa !5
  %5095 = call ptr @__errno_location() #11
  store i32 %5094, ptr %5095, align 4, !tbaa !5
  %5096 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5097 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %5099, ptr noundef @.str.24)
  %5101 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5102 = load i32, ptr %5101, align 4, !tbaa !5
  %5103 = call ptr @s2n_strerror_debug(i32 noundef %5102, ptr noundef @.str.24)
  %5104 = call ptr @__errno_location() #11
  %5105 = load i32, ptr %5104, align 4, !tbaa !5
  %5106 = call ptr @strerror(i32 noundef %5105) #10
  %5107 = call ptr @__errno_location() #11
  %5108 = load i32, ptr %5107, align 4, !tbaa !5
  %5109 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5096, ptr noundef @.str.25, i32 noundef %5097, ptr noundef @.str.55, ptr noundef @.str.21, i32 noundef 347, ptr noundef %5100, ptr noundef %5103, ptr noundef %5106, i32 noundef %5108) #10
  br label %5110

5110:                                             ; preds = %5093, %5076
  call void @llvm.lifetime.end.p0(i64 4, ptr %114) #10
  br label %5111

5111:                                             ; preds = %5110
  br label %5112

5112:                                             ; preds = %5111
  call void @exit(i32 noundef 1) #12
  unreachable

5113:                                             ; No predecessors!
  br label %5114

5114:                                             ; preds = %5113
  br label %5115

5115:                                             ; preds = %5114, %5057
  br label %5116

5116:                                             ; preds = %5115
  br label %5117

5117:                                             ; preds = %5116
  br label %5118

5118:                                             ; preds = %5117
  %5119 = load i32, ptr @test_count, align 4, !tbaa !5
  %5120 = add nsw i32 %5119, 1
  store i32 %5120, ptr @test_count, align 4, !tbaa !5
  %5121 = call i32 @s2n_test_write_header(ptr noundef %110, i8 noundef zeroext 22, i8 noundef zeroext 11)
  %5122 = icmp eq i32 %5121, -1
  br i1 %5122, label %5123, label %5176

5123:                                             ; preds = %5118
  br label %5124

5124:                                             ; preds = %5123
  br label %5125

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

5132:                                             ; preds = %5125
  %5133 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5134 = call i32 @fileno(ptr noundef %5133) #10
  %5135 = call i32 @isatty(i32 noundef %5134) #10
  %5136 = icmp ne i32 %5135, 0
  br i1 %5136, label %5137, label %5154

5137:                                             ; preds = %5132
  %5138 = load i32, ptr %115, align 4, !tbaa !5
  %5139 = call ptr @__errno_location() #11
  store i32 %5138, ptr %5139, align 4, !tbaa !5
  %5140 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5141 = load i32, ptr @test_count, align 4, !tbaa !5
  %5142 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5143 = load i32, ptr %5142, align 4, !tbaa !5
  %5144 = call ptr @s2n_strerror(i32 noundef %5143, ptr noundef @.str.24)
  %5145 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5146 = load i32, ptr %5145, align 4, !tbaa !5
  %5147 = call ptr @s2n_strerror_debug(i32 noundef %5146, ptr noundef @.str.24)
  %5148 = call ptr @__errno_location() #11
  %5149 = load i32, ptr %5148, align 4, !tbaa !5
  %5150 = call ptr @strerror(i32 noundef %5149) #10
  %5151 = call ptr @__errno_location() #11
  %5152 = load i32, ptr %5151, align 4, !tbaa !5
  %5153 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5140, ptr noundef @.str.22, i32 noundef %5141, ptr noundef @.str.58, ptr noundef @.str.21, i32 noundef 349, ptr noundef %5144, ptr noundef %5147, ptr noundef %5150, i32 noundef %5152) #10
  br label %5171

5154:                                             ; preds = %5132, %5125
  %5155 = load i32, ptr %115, align 4, !tbaa !5
  %5156 = call ptr @__errno_location() #11
  store i32 %5155, ptr %5156, align 4, !tbaa !5
  %5157 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5158 = load i32, ptr @test_count, align 4, !tbaa !5
  %5159 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5160 = load i32, ptr %5159, align 4, !tbaa !5
  %5161 = call ptr @s2n_strerror(i32 noundef %5160, ptr noundef @.str.24)
  %5162 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5163 = load i32, ptr %5162, align 4, !tbaa !5
  %5164 = call ptr @s2n_strerror_debug(i32 noundef %5163, ptr noundef @.str.24)
  %5165 = call ptr @__errno_location() #11
  %5166 = load i32, ptr %5165, align 4, !tbaa !5
  %5167 = call ptr @strerror(i32 noundef %5166) #10
  %5168 = call ptr @__errno_location() #11
  %5169 = load i32, ptr %5168, align 4, !tbaa !5
  %5170 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5157, ptr noundef @.str.25, i32 noundef %5158, ptr noundef @.str.58, ptr noundef @.str.21, i32 noundef 349, ptr noundef %5161, ptr noundef %5164, ptr noundef %5167, i32 noundef %5169) #10
  br label %5171

5171:                                             ; preds = %5154, %5137
  call void @llvm.lifetime.end.p0(i64 4, ptr %115) #10
  br label %5172

5172:                                             ; preds = %5171
  br label %5173

5173:                                             ; preds = %5172
  call void @exit(i32 noundef 1) #12
  unreachable

5174:                                             ; No predecessors!
  br label %5175

5175:                                             ; preds = %5174
  br label %5176

5176:                                             ; preds = %5175, %5118
  br label %5177

5177:                                             ; preds = %5176
  br label %5178

5178:                                             ; preds = %5177
  br label %5179

5179:                                             ; preds = %5178
  br label %5180

5180:                                             ; preds = %5179
  br label %5181

5181:                                             ; preds = %5180
  %5182 = load i32, ptr @test_count, align 4, !tbaa !5
  %5183 = add nsw i32 %5182, 1
  store i32 %5183, ptr @test_count, align 4, !tbaa !5
  %5184 = load ptr, ptr %109, align 8, !tbaa !9
  %5185 = call i32 @s2n_handshake_read_io(ptr noundef %5184)
  %5186 = icmp eq i32 %5185, -1
  br i1 %5186, label %5240, label %5187

5187:                                             ; preds = %5181
  br label %5188

5188:                                             ; preds = %5187
  br label %5189

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

5196:                                             ; preds = %5189
  %5197 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5198 = call i32 @fileno(ptr noundef %5197) #10
  %5199 = call i32 @isatty(i32 noundef %5198) #10
  %5200 = icmp ne i32 %5199, 0
  br i1 %5200, label %5201, label %5218

5201:                                             ; preds = %5196
  %5202 = load i32, ptr %116, align 4, !tbaa !5
  %5203 = call ptr @__errno_location() #11
  store i32 %5202, ptr %5203, align 4, !tbaa !5
  %5204 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5205 = load i32, ptr @test_count, align 4, !tbaa !5
  %5206 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5207 = load i32, ptr %5206, align 4, !tbaa !5
  %5208 = call ptr @s2n_strerror(i32 noundef %5207, ptr noundef @.str.24)
  %5209 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5210 = load i32, ptr %5209, align 4, !tbaa !5
  %5211 = call ptr @s2n_strerror_debug(i32 noundef %5210, ptr noundef @.str.24)
  %5212 = call ptr @__errno_location() #11
  %5213 = load i32, ptr %5212, align 4, !tbaa !5
  %5214 = call ptr @strerror(i32 noundef %5213) #10
  %5215 = call ptr @__errno_location() #11
  %5216 = load i32, ptr %5215, align 4, !tbaa !5
  %5217 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5204, ptr noundef @.str.22, i32 noundef %5205, ptr noundef @.str.46, ptr noundef @.str.21, i32 noundef 350, ptr noundef %5208, ptr noundef %5211, ptr noundef %5214, i32 noundef %5216) #10
  br label %5235

5218:                                             ; preds = %5196, %5189
  %5219 = load i32, ptr %116, align 4, !tbaa !5
  %5220 = call ptr @__errno_location() #11
  store i32 %5219, ptr %5220, align 4, !tbaa !5
  %5221 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5222 = load i32, ptr @test_count, align 4, !tbaa !5
  %5223 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5224 = load i32, ptr %5223, align 4, !tbaa !5
  %5225 = call ptr @s2n_strerror(i32 noundef %5224, ptr noundef @.str.24)
  %5226 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5227 = load i32, ptr %5226, align 4, !tbaa !5
  %5228 = call ptr @s2n_strerror_debug(i32 noundef %5227, ptr noundef @.str.24)
  %5229 = call ptr @__errno_location() #11
  %5230 = load i32, ptr %5229, align 4, !tbaa !5
  %5231 = call ptr @strerror(i32 noundef %5230) #10
  %5232 = call ptr @__errno_location() #11
  %5233 = load i32, ptr %5232, align 4, !tbaa !5
  %5234 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5221, ptr noundef @.str.25, i32 noundef %5222, ptr noundef @.str.46, ptr noundef @.str.21, i32 noundef 350, ptr noundef %5225, ptr noundef %5228, ptr noundef %5231, i32 noundef %5233) #10
  br label %5235

5235:                                             ; preds = %5218, %5201
  call void @llvm.lifetime.end.p0(i64 4, ptr %116) #10
  br label %5236

5236:                                             ; preds = %5235
  br label %5237

5237:                                             ; preds = %5236
  call void @exit(i32 noundef 1) #12
  unreachable

5238:                                             ; No predecessors!
  br label %5239

5239:                                             ; preds = %5238
  br label %5240

5240:                                             ; preds = %5239, %5181
  br label %5241

5241:                                             ; preds = %5240
  br label %5242

5242:                                             ; preds = %5241
  br label %5243

5243:                                             ; preds = %5242
  %5244 = load i32, ptr @test_count, align 4, !tbaa !5
  %5245 = add nsw i32 %5244, 1
  store i32 %5245, ptr @test_count, align 4, !tbaa !5
  %5246 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5247 = load i32, ptr %5246, align 4, !tbaa !5
  %5248 = icmp eq i32 %5247, 335544322
  br i1 %5248, label %5302, label %5249

5249:                                             ; preds = %5243
  br label %5250

5250:                                             ; preds = %5249
  br label %5251

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

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

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

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

5297:                                             ; preds = %5280, %5263
  call void @llvm.lifetime.end.p0(i64 4, ptr %117) #10
  br label %5298

5298:                                             ; preds = %5297
  br label %5299

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

5300:                                             ; No predecessors!
  br label %5301

5301:                                             ; preds = %5300
  br label %5302

5302:                                             ; preds = %5301, %5243
  br label %5303

5303:                                             ; preds = %5302
  br label %5304

5304:                                             ; preds = %5303
  br label %5305

5305:                                             ; preds = %5304
  %5306 = load i32, ptr @test_count, align 4, !tbaa !5
  %5307 = add nsw i32 %5306, 1
  store i32 %5307, ptr @test_count, align 4, !tbaa !5
  %5308 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5309 = load i32, ptr %5308, align 4, !tbaa !5
  %5310 = call ptr @s2n_strerror_debug(i32 noundef %5309, ptr noundef @.str.24)
  %5311 = icmp eq ptr %5310, null
  br i1 %5311, label %5312, label %5365

5312:                                             ; preds = %5305
  br label %5313

5313:                                             ; preds = %5312
  br label %5314

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

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

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

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

5360:                                             ; preds = %5343, %5326
  call void @llvm.lifetime.end.p0(i64 4, ptr %118) #10
  br label %5361

5361:                                             ; preds = %5360
  br label %5362

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

5363:                                             ; No predecessors!
  br label %5364

5364:                                             ; preds = %5363
  br label %5365

5365:                                             ; preds = %5364, %5305
  br label %5366

5366:                                             ; preds = %5365
  br label %5367

5367:                                             ; preds = %5366
  br label %5368

5368:                                             ; preds = %5367
  br label %5369

5369:                                             ; preds = %5368
  br label %5370

5370:                                             ; preds = %5369
  %5371 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %5371, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %5372 = call ptr @__errno_location() #11
  store i32 0, ptr %5372, align 4, !tbaa !5
  br label %5373

5373:                                             ; preds = %5370
  br label %5374

5374:                                             ; preds = %5373
  br label %5375

5375:                                             ; preds = %5374
  br label %5376

5376:                                             ; preds = %5375
  br label %5377

5377:                                             ; preds = %5376
  %5378 = load i32, ptr @test_count, align 4, !tbaa !5
  %5379 = add nsw i32 %5378, 1
  store i32 %5379, ptr @test_count, align 4, !tbaa !5
  %5380 = load ptr, ptr %109, align 8, !tbaa !9
  %5381 = getelementptr inbounds %struct.s2n_connection, ptr %5380, i32 0, i32 52
  %5382 = getelementptr inbounds %struct.s2n_handshake, ptr %5381, i32 0, i32 7
  %5383 = load i32, ptr %5382, align 8, !tbaa !47
  %5384 = icmp eq i32 %5383, 0
  br i1 %5384, label %5438, label %5385

5385:                                             ; preds = %5377
  br label %5386

5386:                                             ; preds = %5385
  br label %5387

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

5394:                                             ; preds = %5387
  %5395 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5396 = call i32 @fileno(ptr noundef %5395) #10
  %5397 = call i32 @isatty(i32 noundef %5396) #10
  %5398 = icmp ne i32 %5397, 0
  br i1 %5398, label %5399, label %5416

5399:                                             ; preds = %5394
  %5400 = load i32, ptr %119, align 4, !tbaa !5
  %5401 = call ptr @__errno_location() #11
  store i32 %5400, ptr %5401, align 4, !tbaa !5
  %5402 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5403 = load i32, ptr @test_count, align 4, !tbaa !5
  %5404 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5405 = load i32, ptr %5404, align 4, !tbaa !5
  %5406 = call ptr @s2n_strerror(i32 noundef %5405, ptr noundef @.str.24)
  %5407 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5408 = load i32, ptr %5407, align 4, !tbaa !5
  %5409 = call ptr @s2n_strerror_debug(i32 noundef %5408, ptr noundef @.str.24)
  %5410 = call ptr @__errno_location() #11
  %5411 = load i32, ptr %5410, align 4, !tbaa !5
  %5412 = call ptr @strerror(i32 noundef %5411) #10
  %5413 = call ptr @__errno_location() #11
  %5414 = load i32, ptr %5413, align 4, !tbaa !5
  %5415 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5402, ptr noundef @.str.22, i32 noundef %5403, ptr noundef @.str.59, ptr noundef @.str.21, i32 noundef 352, ptr noundef %5406, ptr noundef %5409, ptr noundef %5412, i32 noundef %5414) #10
  br label %5433

5416:                                             ; preds = %5394, %5387
  %5417 = load i32, ptr %119, align 4, !tbaa !5
  %5418 = call ptr @__errno_location() #11
  store i32 %5417, ptr %5418, align 4, !tbaa !5
  %5419 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5420 = load i32, ptr @test_count, align 4, !tbaa !5
  %5421 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5422 = load i32, ptr %5421, align 4, !tbaa !5
  %5423 = call ptr @s2n_strerror(i32 noundef %5422, ptr noundef @.str.24)
  %5424 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5425 = load i32, ptr %5424, align 4, !tbaa !5
  %5426 = call ptr @s2n_strerror_debug(i32 noundef %5425, ptr noundef @.str.24)
  %5427 = call ptr @__errno_location() #11
  %5428 = load i32, ptr %5427, align 4, !tbaa !5
  %5429 = call ptr @strerror(i32 noundef %5428) #10
  %5430 = call ptr @__errno_location() #11
  %5431 = load i32, ptr %5430, align 4, !tbaa !5
  %5432 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5419, ptr noundef @.str.25, i32 noundef %5420, ptr noundef @.str.59, ptr noundef @.str.21, i32 noundef 352, ptr noundef %5423, ptr noundef %5426, ptr noundef %5429, i32 noundef %5431) #10
  br label %5433

5433:                                             ; preds = %5416, %5399
  call void @llvm.lifetime.end.p0(i64 4, ptr %119) #10
  br label %5434

5434:                                             ; preds = %5433
  br label %5435

5435:                                             ; preds = %5434
  call void @exit(i32 noundef 1) #12
  unreachable

5436:                                             ; No predecessors!
  br label %5437

5437:                                             ; preds = %5436
  br label %5438

5438:                                             ; preds = %5437, %5377
  br label %5439

5439:                                             ; preds = %5438
  br label %5440

5440:                                             ; preds = %5439
  br label %5441

5441:                                             ; preds = %5440
  %5442 = load i32, ptr @test_count, align 4, !tbaa !5
  %5443 = add nsw i32 %5442, 1
  store i32 %5443, ptr @test_count, align 4, !tbaa !5
  %5444 = load i32, ptr @unexpected_handler_called, align 4, !tbaa !5
  %5445 = icmp ne i32 %5444, 0
  br i1 %5445, label %5446, label %5499

5446:                                             ; preds = %5441
  br label %5447

5447:                                             ; preds = %5446
  br label %5448

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

5455:                                             ; preds = %5448
  %5456 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5457 = call i32 @fileno(ptr noundef %5456) #10
  %5458 = call i32 @isatty(i32 noundef %5457) #10
  %5459 = icmp ne i32 %5458, 0
  br i1 %5459, label %5460, label %5477

5460:                                             ; preds = %5455
  %5461 = load i32, ptr %120, align 4, !tbaa !5
  %5462 = call ptr @__errno_location() #11
  store i32 %5461, ptr %5462, align 4, !tbaa !5
  %5463 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5464 = load i32, ptr @test_count, align 4, !tbaa !5
  %5465 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5466 = load i32, ptr %5465, align 4, !tbaa !5
  %5467 = call ptr @s2n_strerror(i32 noundef %5466, ptr noundef @.str.24)
  %5468 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5469 = load i32, ptr %5468, align 4, !tbaa !5
  %5470 = call ptr @s2n_strerror_debug(i32 noundef %5469, ptr noundef @.str.24)
  %5471 = call ptr @__errno_location() #11
  %5472 = load i32, ptr %5471, align 4, !tbaa !5
  %5473 = call ptr @strerror(i32 noundef %5472) #10
  %5474 = call ptr @__errno_location() #11
  %5475 = load i32, ptr %5474, align 4, !tbaa !5
  %5476 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5463, ptr noundef @.str.22, i32 noundef %5464, ptr noundef @.str.45, ptr noundef @.str.21, i32 noundef 353, ptr noundef %5467, ptr noundef %5470, ptr noundef %5473, i32 noundef %5475) #10
  br label %5494

5477:                                             ; preds = %5455, %5448
  %5478 = load i32, ptr %120, align 4, !tbaa !5
  %5479 = call ptr @__errno_location() #11
  store i32 %5478, ptr %5479, align 4, !tbaa !5
  %5480 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5481 = load i32, ptr @test_count, align 4, !tbaa !5
  %5482 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5483 = load i32, ptr %5482, align 4, !tbaa !5
  %5484 = call ptr @s2n_strerror(i32 noundef %5483, ptr noundef @.str.24)
  %5485 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5486 = load i32, ptr %5485, align 4, !tbaa !5
  %5487 = call ptr @s2n_strerror_debug(i32 noundef %5486, ptr noundef @.str.24)
  %5488 = call ptr @__errno_location() #11
  %5489 = load i32, ptr %5488, align 4, !tbaa !5
  %5490 = call ptr @strerror(i32 noundef %5489) #10
  %5491 = call ptr @__errno_location() #11
  %5492 = load i32, ptr %5491, align 4, !tbaa !5
  %5493 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5480, ptr noundef @.str.25, i32 noundef %5481, ptr noundef @.str.45, ptr noundef @.str.21, i32 noundef 353, ptr noundef %5484, ptr noundef %5487, ptr noundef %5490, i32 noundef %5492) #10
  br label %5494

5494:                                             ; preds = %5477, %5460
  call void @llvm.lifetime.end.p0(i64 4, ptr %120) #10
  br label %5495

5495:                                             ; preds = %5494
  br label %5496

5496:                                             ; preds = %5495
  call void @exit(i32 noundef 1) #12
  unreachable

5497:                                             ; No predecessors!
  br label %5498

5498:                                             ; preds = %5497
  br label %5499

5499:                                             ; preds = %5498, %5441
  br label %5500

5500:                                             ; preds = %5499
  br label %5501

5501:                                             ; preds = %5500
  br label %5502

5502:                                             ; preds = %5501
  %5503 = load i32, ptr @test_count, align 4, !tbaa !5
  %5504 = add nsw i32 %5503, 1
  store i32 %5504, ptr @test_count, align 4, !tbaa !5
  %5505 = load i32, ptr @expected_handler_called, align 4, !tbaa !5
  %5506 = icmp ne i32 %5505, 0
  br i1 %5506, label %5507, label %5560

5507:                                             ; preds = %5502
  br label %5508

5508:                                             ; preds = %5507
  br label %5509

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

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

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

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

5555:                                             ; preds = %5538, %5521
  call void @llvm.lifetime.end.p0(i64 4, ptr %121) #10
  br label %5556

5556:                                             ; preds = %5555
  br label %5557

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

5558:                                             ; No predecessors!
  br label %5559

5559:                                             ; preds = %5558
  br label %5560

5560:                                             ; preds = %5559, %5502
  br label %5561

5561:                                             ; preds = %5560
  br label %5562

5562:                                             ; preds = %5561
  br label %5563

5563:                                             ; preds = %5562
  %5564 = load i32, ptr @test_count, align 4, !tbaa !5
  %5565 = add nsw i32 %5564, 1
  store i32 %5565, ptr @test_count, align 4, !tbaa !5
  %5566 = call i32 @s2n_stuffer_free(ptr noundef %110)
  %5567 = icmp eq i32 %5566, -1
  br i1 %5567, label %5568, label %5621

5568:                                             ; preds = %5563
  br label %5569

5569:                                             ; preds = %5568
  br label %5570

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

5577:                                             ; preds = %5570
  %5578 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5579 = call i32 @fileno(ptr noundef %5578) #10
  %5580 = call i32 @isatty(i32 noundef %5579) #10
  %5581 = icmp ne i32 %5580, 0
  br i1 %5581, label %5582, label %5599

5582:                                             ; preds = %5577
  %5583 = load i32, ptr %122, align 4, !tbaa !5
  %5584 = call ptr @__errno_location() #11
  store i32 %5583, ptr %5584, align 4, !tbaa !5
  %5585 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5586 = load i32, ptr @test_count, align 4, !tbaa !5
  %5587 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5588 = load i32, ptr %5587, align 4, !tbaa !5
  %5589 = call ptr @s2n_strerror(i32 noundef %5588, ptr noundef @.str.24)
  %5590 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5591 = load i32, ptr %5590, align 4, !tbaa !5
  %5592 = call ptr @s2n_strerror_debug(i32 noundef %5591, ptr noundef @.str.24)
  %5593 = call ptr @__errno_location() #11
  %5594 = load i32, ptr %5593, align 4, !tbaa !5
  %5595 = call ptr @strerror(i32 noundef %5594) #10
  %5596 = call ptr @__errno_location() #11
  %5597 = load i32, ptr %5596, align 4, !tbaa !5
  %5598 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5585, ptr noundef @.str.22, i32 noundef %5586, ptr noundef @.str.51, ptr noundef @.str.21, i32 noundef 356, ptr noundef %5589, ptr noundef %5592, ptr noundef %5595, i32 noundef %5597) #10
  br label %5616

5599:                                             ; preds = %5577, %5570
  %5600 = load i32, ptr %122, align 4, !tbaa !5
  %5601 = call ptr @__errno_location() #11
  store i32 %5600, ptr %5601, align 4, !tbaa !5
  %5602 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5603 = load i32, ptr @test_count, align 4, !tbaa !5
  %5604 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5605 = load i32, ptr %5604, align 4, !tbaa !5
  %5606 = call ptr @s2n_strerror(i32 noundef %5605, ptr noundef @.str.24)
  %5607 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5608 = load i32, ptr %5607, align 4, !tbaa !5
  %5609 = call ptr @s2n_strerror_debug(i32 noundef %5608, ptr noundef @.str.24)
  %5610 = call ptr @__errno_location() #11
  %5611 = load i32, ptr %5610, align 4, !tbaa !5
  %5612 = call ptr @strerror(i32 noundef %5611) #10
  %5613 = call ptr @__errno_location() #11
  %5614 = load i32, ptr %5613, align 4, !tbaa !5
  %5615 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5602, ptr noundef @.str.25, i32 noundef %5603, ptr noundef @.str.51, ptr noundef @.str.21, i32 noundef 356, ptr noundef %5606, ptr noundef %5609, ptr noundef %5612, i32 noundef %5614) #10
  br label %5616

5616:                                             ; preds = %5599, %5582
  call void @llvm.lifetime.end.p0(i64 4, ptr %122) #10
  br label %5617

5617:                                             ; preds = %5616
  br label %5618

5618:                                             ; preds = %5617
  call void @exit(i32 noundef 1) #12
  unreachable

5619:                                             ; No predecessors!
  br label %5620

5620:                                             ; preds = %5619
  br label %5621

5621:                                             ; preds = %5620, %5563
  br label %5622

5622:                                             ; preds = %5621
  br label %5623

5623:                                             ; preds = %5622
  br label %5624

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

5630:                                             ; preds = %5624
  br label %5631

5631:                                             ; preds = %5630
  br label %5632

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

5639:                                             ; preds = %5632
  %5640 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5641 = call i32 @fileno(ptr noundef %5640) #10
  %5642 = call i32 @isatty(i32 noundef %5641) #10
  %5643 = icmp ne i32 %5642, 0
  br i1 %5643, label %5644, label %5661

5644:                                             ; preds = %5639
  %5645 = load i32, ptr %123, align 4, !tbaa !5
  %5646 = call ptr @__errno_location() #11
  store i32 %5645, ptr %5646, align 4, !tbaa !5
  %5647 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5648 = load i32, ptr @test_count, align 4, !tbaa !5
  %5649 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5650 = load i32, ptr %5649, align 4, !tbaa !5
  %5651 = call ptr @s2n_strerror(i32 noundef %5650, ptr noundef @.str.24)
  %5652 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5653 = load i32, ptr %5652, align 4, !tbaa !5
  %5654 = call ptr @s2n_strerror_debug(i32 noundef %5653, ptr noundef @.str.24)
  %5655 = call ptr @__errno_location() #11
  %5656 = load i32, ptr %5655, align 4, !tbaa !5
  %5657 = call ptr @strerror(i32 noundef %5656) #10
  %5658 = call ptr @__errno_location() #11
  %5659 = load i32, ptr %5658, align 4, !tbaa !5
  %5660 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5647, ptr noundef @.str.22, i32 noundef %5648, ptr noundef @.str.33, ptr noundef @.str.21, i32 noundef 357, ptr noundef %5651, ptr noundef %5654, ptr noundef %5657, i32 noundef %5659) #10
  br label %5678

5661:                                             ; preds = %5639, %5632
  %5662 = load i32, ptr %123, align 4, !tbaa !5
  %5663 = call ptr @__errno_location() #11
  store i32 %5662, ptr %5663, align 4, !tbaa !5
  %5664 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5665 = load i32, ptr @test_count, align 4, !tbaa !5
  %5666 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5667 = load i32, ptr %5666, align 4, !tbaa !5
  %5668 = call ptr @s2n_strerror(i32 noundef %5667, ptr noundef @.str.24)
  %5669 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5670 = load i32, ptr %5669, align 4, !tbaa !5
  %5671 = call ptr @s2n_strerror_debug(i32 noundef %5670, ptr noundef @.str.24)
  %5672 = call ptr @__errno_location() #11
  %5673 = load i32, ptr %5672, align 4, !tbaa !5
  %5674 = call ptr @strerror(i32 noundef %5673) #10
  %5675 = call ptr @__errno_location() #11
  %5676 = load i32, ptr %5675, align 4, !tbaa !5
  %5677 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5664, ptr noundef @.str.25, i32 noundef %5665, ptr noundef @.str.33, ptr noundef @.str.21, i32 noundef 357, ptr noundef %5668, ptr noundef %5671, ptr noundef %5674, i32 noundef %5676) #10
  br label %5678

5678:                                             ; preds = %5661, %5644
  call void @llvm.lifetime.end.p0(i64 4, ptr %123) #10
  br label %5679

5679:                                             ; preds = %5678
  br label %5680

5680:                                             ; preds = %5679
  call void @exit(i32 noundef 1) #12
  unreachable

5681:                                             ; No predecessors!
  br label %5682

5682:                                             ; preds = %5681
  br label %5683

5683:                                             ; preds = %5682, %5624
  br label %5684

5684:                                             ; preds = %5683
  br label %5685

5685:                                             ; preds = %5684
  call void @llvm.lifetime.end.p0(i64 40, ptr %110) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %109) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %124) #10
  %5686 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %5686, ptr %124, align 8, !tbaa !9
  %5687 = load ptr, ptr %124, align 8, !tbaa !9
  %5688 = getelementptr inbounds %struct.s2n_connection, ptr %5687, i32 0, i32 23
  store i8 33, ptr %5688, align 4, !tbaa !19
  call void @llvm.lifetime.start.p0(i64 40, ptr %125) #10
  call void @llvm.memset.p0.i64(ptr align 8 %125, i8 0, i64 40, i1 false)
  br label %5689

5689:                                             ; preds = %5685
  %5690 = load i32, ptr @test_count, align 4, !tbaa !5
  %5691 = add nsw i32 %5690, 1
  store i32 %5691, ptr @test_count, align 4, !tbaa !5
  %5692 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %125, i32 noundef 0)
  %5693 = icmp eq i32 %5692, -1
  br i1 %5693, label %5694, label %5747

5694:                                             ; preds = %5689
  br label %5695

5695:                                             ; preds = %5694
  br label %5696

5696:                                             ; preds = %5695
  call void @llvm.lifetime.start.p0(i64 4, ptr %126) #10
  %5697 = call ptr @__errno_location() #11
  %5698 = load i32, ptr %5697, align 4, !tbaa !5
  store i32 %5698, ptr %126, 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) #10
  %5706 = call i32 @isatty(i32 noundef %5705) #10
  %5707 = icmp ne i32 %5706, 0
  br i1 %5707, label %5708, label %5725

5708:                                             ; preds = %5703
  %5709 = load i32, ptr %126, align 4, !tbaa !5
  %5710 = call ptr @__errno_location() #11
  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() #11
  %5720 = load i32, ptr %5719, align 4, !tbaa !5
  %5721 = call ptr @strerror(i32 noundef %5720) #10
  %5722 = call ptr @__errno_location() #11
  %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.39, ptr noundef @.str.21, i32 noundef 366, ptr noundef %5715, ptr noundef %5718, ptr noundef %5721, i32 noundef %5723) #10
  br label %5742

5725:                                             ; preds = %5703, %5696
  %5726 = load i32, ptr %126, align 4, !tbaa !5
  %5727 = call ptr @__errno_location() #11
  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() #11
  %5737 = load i32, ptr %5736, align 4, !tbaa !5
  %5738 = call ptr @strerror(i32 noundef %5737) #10
  %5739 = call ptr @__errno_location() #11
  %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.39, ptr noundef @.str.21, i32 noundef 366, ptr noundef %5732, ptr noundef %5735, ptr noundef %5738, i32 noundef %5740) #10
  br label %5742

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

5743:                                             ; preds = %5742
  br label %5744

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

5745:                                             ; No predecessors!
  br label %5746

5746:                                             ; preds = %5745
  br label %5747

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

5748:                                             ; preds = %5747
  br label %5749

5749:                                             ; preds = %5748
  br label %5750

5750:                                             ; preds = %5749
  %5751 = load i32, ptr @test_count, align 4, !tbaa !5
  %5752 = add nsw i32 %5751, 1
  store i32 %5752, ptr @test_count, align 4, !tbaa !5
  %5753 = load ptr, ptr %124, align 8, !tbaa !9
  %5754 = call i32 @s2n_connection_set_io_stuffers(ptr noundef %125, ptr noundef null, ptr noundef %5753)
  %5755 = icmp eq i32 %5754, -1
  br i1 %5755, label %5756, label %5809

5756:                                             ; preds = %5750
  br label %5757

5757:                                             ; preds = %5756
  br label %5758

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

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

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

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

5804:                                             ; preds = %5787, %5770
  call void @llvm.lifetime.end.p0(i64 4, ptr %127) #10
  br label %5805

5805:                                             ; preds = %5804
  br label %5806

5806:                                             ; preds = %5805
  call void @exit(i32 noundef 1) #12
  unreachable

5807:                                             ; No predecessors!
  br label %5808

5808:                                             ; preds = %5807
  br label %5809

5809:                                             ; preds = %5808, %5750
  br label %5810

5810:                                             ; preds = %5809
  br label %5811

5811:                                             ; preds = %5810
  %5812 = load ptr, ptr %124, align 8, !tbaa !9
  %5813 = getelementptr inbounds %struct.s2n_connection, ptr %5812, i32 0, i32 52
  %5814 = getelementptr inbounds %struct.s2n_handshake, ptr %5813, i32 0, i32 6
  store i32 0, ptr %5814, align 4, !tbaa !46
  %5815 = load ptr, ptr %124, align 8, !tbaa !9
  %5816 = getelementptr inbounds %struct.s2n_connection, ptr %5815, i32 0, i32 52
  %5817 = getelementptr inbounds %struct.s2n_handshake, ptr %5816, i32 0, i32 7
  store i32 0, ptr %5817, align 8, !tbaa !47
  br label %5818

5818:                                             ; preds = %5811
  %5819 = load i32, ptr @test_count, align 4, !tbaa !5
  %5820 = add nsw i32 %5819, 1
  store i32 %5820, ptr @test_count, align 4, !tbaa !5
  %5821 = load ptr, ptr %124, align 8, !tbaa !9
  %5822 = getelementptr inbounds %struct.s2n_connection, ptr %5821, i32 0, i32 52
  %5823 = getelementptr inbounds %struct.s2n_handshake, ptr %5822, i32 0, i32 12
  %5824 = load i32, ptr %5823, align 4, !tbaa !45
  %5825 = icmp eq i32 %5824, 2
  %5826 = zext i1 %5825 to i64
  %5827 = select i1 %5825, ptr @tls13_handshakes, ptr @handshakes
  %5828 = load ptr, ptr %124, align 8, !tbaa !9
  %5829 = getelementptr inbounds %struct.s2n_connection, ptr %5828, i32 0, i32 52
  %5830 = getelementptr inbounds %struct.s2n_handshake, ptr %5829, i32 0, i32 6
  %5831 = load i32, ptr %5830, align 4, !tbaa !46
  %5832 = zext i32 %5831 to i64
  %5833 = getelementptr inbounds [32 x i32], ptr %5827, i64 %5832
  %5834 = load ptr, ptr %124, align 8, !tbaa !9
  %5835 = getelementptr inbounds %struct.s2n_connection, ptr %5834, i32 0, i32 52
  %5836 = getelementptr inbounds %struct.s2n_handshake, ptr %5835, i32 0, i32 7
  %5837 = load i32, ptr %5836, align 8, !tbaa !47
  %5838 = sext i32 %5837 to i64
  %5839 = getelementptr inbounds [32 x i32], ptr %5833, i64 0, i64 %5838
  %5840 = load i32, ptr %5839, align 4, !tbaa !5
  %5841 = icmp eq i32 %5840, 0
  br i1 %5841, label %5895, label %5842

5842:                                             ; preds = %5818
  br label %5843

5843:                                             ; preds = %5842
  br label %5844

5844:                                             ; preds = %5843
  call void @llvm.lifetime.start.p0(i64 4, ptr %128) #10
  %5845 = call ptr @__errno_location() #11
  %5846 = load i32, ptr %5845, align 4, !tbaa !5
  store i32 %5846, ptr %128, align 4, !tbaa !5
  %5847 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5848 = call i32 @s2n_print_stacktrace(ptr noundef %5847)
  %5849 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5850 = trunc i8 %5849 to i1
  br i1 %5850, label %5851, label %5873

5851:                                             ; preds = %5844
  %5852 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5853 = call i32 @fileno(ptr noundef %5852) #10
  %5854 = call i32 @isatty(i32 noundef %5853) #10
  %5855 = icmp ne i32 %5854, 0
  br i1 %5855, label %5856, label %5873

5856:                                             ; preds = %5851
  %5857 = load i32, ptr %128, align 4, !tbaa !5
  %5858 = call ptr @__errno_location() #11
  store i32 %5857, ptr %5858, align 4, !tbaa !5
  %5859 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5860 = load i32, ptr @test_count, align 4, !tbaa !5
  %5861 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5862 = load i32, ptr %5861, align 4, !tbaa !5
  %5863 = call ptr @s2n_strerror(i32 noundef %5862, ptr noundef @.str.24)
  %5864 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5865 = load i32, ptr %5864, align 4, !tbaa !5
  %5866 = call ptr @s2n_strerror_debug(i32 noundef %5865, ptr noundef @.str.24)
  %5867 = call ptr @__errno_location() #11
  %5868 = load i32, ptr %5867, align 4, !tbaa !5
  %5869 = call ptr @strerror(i32 noundef %5868) #10
  %5870 = call ptr @__errno_location() #11
  %5871 = load i32, ptr %5870, align 4, !tbaa !5
  %5872 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5859, ptr noundef @.str.22, i32 noundef %5860, ptr noundef @.str.54, ptr noundef @.str.21, i32 noundef 371, ptr noundef %5863, ptr noundef %5866, ptr noundef %5869, i32 noundef %5871) #10
  br label %5890

5873:                                             ; preds = %5851, %5844
  %5874 = load i32, ptr %128, align 4, !tbaa !5
  %5875 = call ptr @__errno_location() #11
  store i32 %5874, ptr %5875, align 4, !tbaa !5
  %5876 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5877 = load i32, ptr @test_count, align 4, !tbaa !5
  %5878 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5879 = load i32, ptr %5878, align 4, !tbaa !5
  %5880 = call ptr @s2n_strerror(i32 noundef %5879, ptr noundef @.str.24)
  %5881 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5882 = load i32, ptr %5881, align 4, !tbaa !5
  %5883 = call ptr @s2n_strerror_debug(i32 noundef %5882, ptr noundef @.str.24)
  %5884 = call ptr @__errno_location() #11
  %5885 = load i32, ptr %5884, align 4, !tbaa !5
  %5886 = call ptr @strerror(i32 noundef %5885) #10
  %5887 = call ptr @__errno_location() #11
  %5888 = load i32, ptr %5887, align 4, !tbaa !5
  %5889 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5876, ptr noundef @.str.25, i32 noundef %5877, ptr noundef @.str.54, ptr noundef @.str.21, i32 noundef 371, ptr noundef %5880, ptr noundef %5883, ptr noundef %5886, i32 noundef %5888) #10
  br label %5890

5890:                                             ; preds = %5873, %5856
  call void @llvm.lifetime.end.p0(i64 4, ptr %128) #10
  br label %5891

5891:                                             ; preds = %5890
  br label %5892

5892:                                             ; preds = %5891
  call void @exit(i32 noundef 1) #12
  unreachable

5893:                                             ; No predecessors!
  br label %5894

5894:                                             ; preds = %5893
  br label %5895

5895:                                             ; preds = %5894, %5818
  br label %5896

5896:                                             ; preds = %5895
  br label %5897

5897:                                             ; preds = %5896
  br label %5898

5898:                                             ; preds = %5897
  %5899 = load i32, ptr @test_count, align 4, !tbaa !5
  %5900 = add nsw i32 %5899, 1
  store i32 %5900, ptr @test_count, align 4, !tbaa !5
  %5901 = call i32 @s2n_setup_handler_to_expect(i32 noundef 0, i8 noundef zeroext 0)
  %5902 = icmp eq i32 %5901, -1
  br i1 %5902, label %5903, label %5956

5903:                                             ; preds = %5898
  br label %5904

5904:                                             ; preds = %5903
  br label %5905

5905:                                             ; preds = %5904
  call void @llvm.lifetime.start.p0(i64 4, ptr %129) #10
  %5906 = call ptr @__errno_location() #11
  %5907 = load i32, ptr %5906, align 4, !tbaa !5
  store i32 %5907, ptr %129, align 4, !tbaa !5
  %5908 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5909 = call i32 @s2n_print_stacktrace(ptr noundef %5908)
  %5910 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5911 = trunc i8 %5910 to i1
  br i1 %5911, label %5912, label %5934

5912:                                             ; preds = %5905
  %5913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5914 = call i32 @fileno(ptr noundef %5913) #10
  %5915 = call i32 @isatty(i32 noundef %5914) #10
  %5916 = icmp ne i32 %5915, 0
  br i1 %5916, label %5917, label %5934

5917:                                             ; preds = %5912
  %5918 = load i32, ptr %129, align 4, !tbaa !5
  %5919 = call ptr @__errno_location() #11
  store i32 %5918, ptr %5919, align 4, !tbaa !5
  %5920 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5921 = load i32, ptr @test_count, align 4, !tbaa !5
  %5922 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5923 = load i32, ptr %5922, align 4, !tbaa !5
  %5924 = call ptr @s2n_strerror(i32 noundef %5923, ptr noundef @.str.24)
  %5925 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5926 = load i32, ptr %5925, align 4, !tbaa !5
  %5927 = call ptr @s2n_strerror_debug(i32 noundef %5926, ptr noundef @.str.24)
  %5928 = call ptr @__errno_location() #11
  %5929 = load i32, ptr %5928, align 4, !tbaa !5
  %5930 = call ptr @strerror(i32 noundef %5929) #10
  %5931 = call ptr @__errno_location() #11
  %5932 = load i32, ptr %5931, align 4, !tbaa !5
  %5933 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5920, ptr noundef @.str.22, i32 noundef %5921, ptr noundef @.str.55, ptr noundef @.str.21, i32 noundef 372, ptr noundef %5924, ptr noundef %5927, ptr noundef %5930, i32 noundef %5932) #10
  br label %5951

5934:                                             ; preds = %5912, %5905
  %5935 = load i32, ptr %129, align 4, !tbaa !5
  %5936 = call ptr @__errno_location() #11
  store i32 %5935, ptr %5936, align 4, !tbaa !5
  %5937 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5938 = load i32, ptr @test_count, align 4, !tbaa !5
  %5939 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5940 = load i32, ptr %5939, align 4, !tbaa !5
  %5941 = call ptr @s2n_strerror(i32 noundef %5940, ptr noundef @.str.24)
  %5942 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5943 = load i32, ptr %5942, align 4, !tbaa !5
  %5944 = call ptr @s2n_strerror_debug(i32 noundef %5943, ptr noundef @.str.24)
  %5945 = call ptr @__errno_location() #11
  %5946 = load i32, ptr %5945, align 4, !tbaa !5
  %5947 = call ptr @strerror(i32 noundef %5946) #10
  %5948 = call ptr @__errno_location() #11
  %5949 = load i32, ptr %5948, align 4, !tbaa !5
  %5950 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5937, ptr noundef @.str.25, i32 noundef %5938, ptr noundef @.str.55, ptr noundef @.str.21, i32 noundef 372, ptr noundef %5941, ptr noundef %5944, ptr noundef %5947, i32 noundef %5949) #10
  br label %5951

5951:                                             ; preds = %5934, %5917
  call void @llvm.lifetime.end.p0(i64 4, ptr %129) #10
  br label %5952

5952:                                             ; preds = %5951
  br label %5953

5953:                                             ; preds = %5952
  call void @exit(i32 noundef 1) #12
  unreachable

5954:                                             ; No predecessors!
  br label %5955

5955:                                             ; preds = %5954
  br label %5956

5956:                                             ; preds = %5955, %5898
  br label %5957

5957:                                             ; preds = %5956
  br label %5958

5958:                                             ; preds = %5957
  br label %5959

5959:                                             ; preds = %5958
  %5960 = load i32, ptr @test_count, align 4, !tbaa !5
  %5961 = add nsw i32 %5960, 1
  store i32 %5961, ptr @test_count, align 4, !tbaa !5
  %5962 = call i32 @s2n_test_write_header(ptr noundef %125, i8 noundef zeroext 22, i8 noundef zeroext 1)
  %5963 = icmp eq i32 %5962, -1
  br i1 %5963, label %5964, label %6017

5964:                                             ; preds = %5959
  br label %5965

5965:                                             ; preds = %5964
  br label %5966

5966:                                             ; preds = %5965
  call void @llvm.lifetime.start.p0(i64 4, ptr %130) #10
  %5967 = call ptr @__errno_location() #11
  %5968 = load i32, ptr %5967, align 4, !tbaa !5
  store i32 %5968, ptr %130, align 4, !tbaa !5
  %5969 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5970 = call i32 @s2n_print_stacktrace(ptr noundef %5969)
  %5971 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5972 = trunc i8 %5971 to i1
  br i1 %5972, label %5973, label %5995

5973:                                             ; preds = %5966
  %5974 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5975 = call i32 @fileno(ptr noundef %5974) #10
  %5976 = call i32 @isatty(i32 noundef %5975) #10
  %5977 = icmp ne i32 %5976, 0
  br i1 %5977, label %5978, label %5995

5978:                                             ; preds = %5973
  %5979 = load i32, ptr %130, align 4, !tbaa !5
  %5980 = call ptr @__errno_location() #11
  store i32 %5979, ptr %5980, align 4, !tbaa !5
  %5981 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5982 = load i32, ptr @test_count, align 4, !tbaa !5
  %5983 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5984 = load i32, ptr %5983, align 4, !tbaa !5
  %5985 = call ptr @s2n_strerror(i32 noundef %5984, ptr noundef @.str.24)
  %5986 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5987 = load i32, ptr %5986, align 4, !tbaa !5
  %5988 = call ptr @s2n_strerror_debug(i32 noundef %5987, ptr noundef @.str.24)
  %5989 = call ptr @__errno_location() #11
  %5990 = load i32, ptr %5989, align 4, !tbaa !5
  %5991 = call ptr @strerror(i32 noundef %5990) #10
  %5992 = call ptr @__errno_location() #11
  %5993 = load i32, ptr %5992, align 4, !tbaa !5
  %5994 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5981, ptr noundef @.str.22, i32 noundef %5982, ptr noundef @.str.56, ptr noundef @.str.21, i32 noundef 374, ptr noundef %5985, ptr noundef %5988, ptr noundef %5991, i32 noundef %5993) #10
  br label %6012

5995:                                             ; preds = %5973, %5966
  %5996 = load i32, ptr %130, align 4, !tbaa !5
  %5997 = call ptr @__errno_location() #11
  store i32 %5996, ptr %5997, align 4, !tbaa !5
  %5998 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5999 = load i32, ptr @test_count, align 4, !tbaa !5
  %6000 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6001 = load i32, ptr %6000, align 4, !tbaa !5
  %6002 = call ptr @s2n_strerror(i32 noundef %6001, ptr noundef @.str.24)
  %6003 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6004 = load i32, ptr %6003, align 4, !tbaa !5
  %6005 = call ptr @s2n_strerror_debug(i32 noundef %6004, ptr noundef @.str.24)
  %6006 = call ptr @__errno_location() #11
  %6007 = load i32, ptr %6006, align 4, !tbaa !5
  %6008 = call ptr @strerror(i32 noundef %6007) #10
  %6009 = call ptr @__errno_location() #11
  %6010 = load i32, ptr %6009, align 4, !tbaa !5
  %6011 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5998, ptr noundef @.str.25, i32 noundef %5999, ptr noundef @.str.56, ptr noundef @.str.21, i32 noundef 374, ptr noundef %6002, ptr noundef %6005, ptr noundef %6008, i32 noundef %6010) #10
  br label %6012

6012:                                             ; preds = %5995, %5978
  call void @llvm.lifetime.end.p0(i64 4, ptr %130) #10
  br label %6013

6013:                                             ; preds = %6012
  br label %6014

6014:                                             ; preds = %6013
  call void @exit(i32 noundef 1) #12
  unreachable

6015:                                             ; No predecessors!
  br label %6016

6016:                                             ; preds = %6015
  br label %6017

6017:                                             ; preds = %6016, %5959
  br label %6018

6018:                                             ; preds = %6017
  br label %6019

6019:                                             ; preds = %6018
  br label %6020

6020:                                             ; preds = %6019
  br label %6021

6021:                                             ; preds = %6020
  br label %6022

6022:                                             ; preds = %6021
  %6023 = load i32, ptr @test_count, align 4, !tbaa !5
  %6024 = add nsw i32 %6023, 1
  store i32 %6024, ptr @test_count, align 4, !tbaa !5
  %6025 = load ptr, ptr %124, align 8, !tbaa !9
  %6026 = call i32 @s2n_handshake_read_io(ptr noundef %6025)
  %6027 = icmp eq i32 %6026, -1
  br i1 %6027, label %6081, label %6028

6028:                                             ; preds = %6022
  br label %6029

6029:                                             ; preds = %6028
  br label %6030

6030:                                             ; preds = %6029
  call void @llvm.lifetime.start.p0(i64 4, ptr %131) #10
  %6031 = call ptr @__errno_location() #11
  %6032 = load i32, ptr %6031, align 4, !tbaa !5
  store i32 %6032, ptr %131, align 4, !tbaa !5
  %6033 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6034 = call i32 @s2n_print_stacktrace(ptr noundef %6033)
  %6035 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6036 = trunc i8 %6035 to i1
  br i1 %6036, label %6037, label %6059

6037:                                             ; preds = %6030
  %6038 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6039 = call i32 @fileno(ptr noundef %6038) #10
  %6040 = call i32 @isatty(i32 noundef %6039) #10
  %6041 = icmp ne i32 %6040, 0
  br i1 %6041, label %6042, label %6059

6042:                                             ; preds = %6037
  %6043 = load i32, ptr %131, align 4, !tbaa !5
  %6044 = call ptr @__errno_location() #11
  store i32 %6043, ptr %6044, align 4, !tbaa !5
  %6045 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6046 = load i32, ptr @test_count, align 4, !tbaa !5
  %6047 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6048 = load i32, ptr %6047, align 4, !tbaa !5
  %6049 = call ptr @s2n_strerror(i32 noundef %6048, ptr noundef @.str.24)
  %6050 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6051 = load i32, ptr %6050, align 4, !tbaa !5
  %6052 = call ptr @s2n_strerror_debug(i32 noundef %6051, ptr noundef @.str.24)
  %6053 = call ptr @__errno_location() #11
  %6054 = load i32, ptr %6053, align 4, !tbaa !5
  %6055 = call ptr @strerror(i32 noundef %6054) #10
  %6056 = call ptr @__errno_location() #11
  %6057 = load i32, ptr %6056, align 4, !tbaa !5
  %6058 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6045, ptr noundef @.str.22, i32 noundef %6046, ptr noundef @.str.46, ptr noundef @.str.21, i32 noundef 375, ptr noundef %6049, ptr noundef %6052, ptr noundef %6055, i32 noundef %6057) #10
  br label %6076

6059:                                             ; preds = %6037, %6030
  %6060 = load i32, ptr %131, align 4, !tbaa !5
  %6061 = call ptr @__errno_location() #11
  store i32 %6060, ptr %6061, align 4, !tbaa !5
  %6062 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6063 = load i32, ptr @test_count, align 4, !tbaa !5
  %6064 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6065 = load i32, ptr %6064, align 4, !tbaa !5
  %6066 = call ptr @s2n_strerror(i32 noundef %6065, ptr noundef @.str.24)
  %6067 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6068 = load i32, ptr %6067, align 4, !tbaa !5
  %6069 = call ptr @s2n_strerror_debug(i32 noundef %6068, ptr noundef @.str.24)
  %6070 = call ptr @__errno_location() #11
  %6071 = load i32, ptr %6070, align 4, !tbaa !5
  %6072 = call ptr @strerror(i32 noundef %6071) #10
  %6073 = call ptr @__errno_location() #11
  %6074 = load i32, ptr %6073, align 4, !tbaa !5
  %6075 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6062, ptr noundef @.str.25, i32 noundef %6063, ptr noundef @.str.46, ptr noundef @.str.21, i32 noundef 375, ptr noundef %6066, ptr noundef %6069, ptr noundef %6072, i32 noundef %6074) #10
  br label %6076

6076:                                             ; preds = %6059, %6042
  call void @llvm.lifetime.end.p0(i64 4, ptr %131) #10
  br label %6077

6077:                                             ; preds = %6076
  br label %6078

6078:                                             ; preds = %6077
  call void @exit(i32 noundef 1) #12
  unreachable

6079:                                             ; No predecessors!
  br label %6080

6080:                                             ; preds = %6079
  br label %6081

6081:                                             ; preds = %6080, %6022
  br label %6082

6082:                                             ; preds = %6081
  br label %6083

6083:                                             ; preds = %6082
  br label %6084

6084:                                             ; preds = %6083
  %6085 = load i32, ptr @test_count, align 4, !tbaa !5
  %6086 = add nsw i32 %6085, 1
  store i32 %6086, ptr @test_count, align 4, !tbaa !5
  %6087 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6088 = load i32, ptr %6087, align 4, !tbaa !5
  %6089 = icmp eq i32 %6088, 335544322
  br i1 %6089, label %6143, label %6090

6090:                                             ; preds = %6084
  br label %6091

6091:                                             ; preds = %6090
  br label %6092

6092:                                             ; preds = %6091
  call void @llvm.lifetime.start.p0(i64 4, ptr %132) #10
  %6093 = call ptr @__errno_location() #11
  %6094 = load i32, ptr %6093, align 4, !tbaa !5
  store i32 %6094, ptr %132, align 4, !tbaa !5
  %6095 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6096 = call i32 @s2n_print_stacktrace(ptr noundef %6095)
  %6097 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6098 = trunc i8 %6097 to i1
  br i1 %6098, label %6099, label %6121

6099:                                             ; preds = %6092
  %6100 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6101 = call i32 @fileno(ptr noundef %6100) #10
  %6102 = call i32 @isatty(i32 noundef %6101) #10
  %6103 = icmp ne i32 %6102, 0
  br i1 %6103, label %6104, label %6121

6104:                                             ; preds = %6099
  %6105 = load i32, ptr %132, align 4, !tbaa !5
  %6106 = call ptr @__errno_location() #11
  store i32 %6105, ptr %6106, align 4, !tbaa !5
  %6107 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6108 = load i32, ptr @test_count, align 4, !tbaa !5
  %6109 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6110 = load i32, ptr %6109, align 4, !tbaa !5
  %6111 = call ptr @s2n_strerror(i32 noundef %6110, ptr noundef @.str.24)
  %6112 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6113 = load i32, ptr %6112, align 4, !tbaa !5
  %6114 = call ptr @s2n_strerror_debug(i32 noundef %6113, ptr noundef @.str.24)
  %6115 = call ptr @__errno_location() #11
  %6116 = load i32, ptr %6115, align 4, !tbaa !5
  %6117 = call ptr @strerror(i32 noundef %6116) #10
  %6118 = call ptr @__errno_location() #11
  %6119 = load i32, ptr %6118, align 4, !tbaa !5
  %6120 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6107, ptr noundef @.str.22, i32 noundef %6108, ptr noundef @.str.47, ptr noundef @.str.21, i32 noundef 375, ptr noundef %6111, ptr noundef %6114, ptr noundef %6117, i32 noundef %6119) #10
  br label %6138

6121:                                             ; preds = %6099, %6092
  %6122 = load i32, ptr %132, align 4, !tbaa !5
  %6123 = call ptr @__errno_location() #11
  store i32 %6122, ptr %6123, align 4, !tbaa !5
  %6124 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6125 = load i32, ptr @test_count, align 4, !tbaa !5
  %6126 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6127 = load i32, ptr %6126, align 4, !tbaa !5
  %6128 = call ptr @s2n_strerror(i32 noundef %6127, ptr noundef @.str.24)
  %6129 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6130 = load i32, ptr %6129, align 4, !tbaa !5
  %6131 = call ptr @s2n_strerror_debug(i32 noundef %6130, ptr noundef @.str.24)
  %6132 = call ptr @__errno_location() #11
  %6133 = load i32, ptr %6132, align 4, !tbaa !5
  %6134 = call ptr @strerror(i32 noundef %6133) #10
  %6135 = call ptr @__errno_location() #11
  %6136 = load i32, ptr %6135, align 4, !tbaa !5
  %6137 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6124, ptr noundef @.str.25, i32 noundef %6125, ptr noundef @.str.47, ptr noundef @.str.21, i32 noundef 375, ptr noundef %6128, ptr noundef %6131, ptr noundef %6134, i32 noundef %6136) #10
  br label %6138

6138:                                             ; preds = %6121, %6104
  call void @llvm.lifetime.end.p0(i64 4, ptr %132) #10
  br label %6139

6139:                                             ; preds = %6138
  br label %6140

6140:                                             ; preds = %6139
  call void @exit(i32 noundef 1) #12
  unreachable

6141:                                             ; No predecessors!
  br label %6142

6142:                                             ; preds = %6141
  br label %6143

6143:                                             ; preds = %6142, %6084
  br label %6144

6144:                                             ; preds = %6143
  br label %6145

6145:                                             ; preds = %6144
  br label %6146

6146:                                             ; preds = %6145
  %6147 = load i32, ptr @test_count, align 4, !tbaa !5
  %6148 = add nsw i32 %6147, 1
  store i32 %6148, ptr @test_count, align 4, !tbaa !5
  %6149 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6150 = load i32, ptr %6149, align 4, !tbaa !5
  %6151 = call ptr @s2n_strerror_debug(i32 noundef %6150, ptr noundef @.str.24)
  %6152 = icmp eq ptr %6151, null
  br i1 %6152, label %6153, label %6206

6153:                                             ; preds = %6146
  br label %6154

6154:                                             ; preds = %6153
  br label %6155

6155:                                             ; preds = %6154
  call void @llvm.lifetime.start.p0(i64 4, ptr %133) #10
  %6156 = call ptr @__errno_location() #11
  %6157 = load i32, ptr %6156, align 4, !tbaa !5
  store i32 %6157, ptr %133, align 4, !tbaa !5
  %6158 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6159 = call i32 @s2n_print_stacktrace(ptr noundef %6158)
  %6160 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6161 = trunc i8 %6160 to i1
  br i1 %6161, label %6162, label %6184

6162:                                             ; preds = %6155
  %6163 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6164 = call i32 @fileno(ptr noundef %6163) #10
  %6165 = call i32 @isatty(i32 noundef %6164) #10
  %6166 = icmp ne i32 %6165, 0
  br i1 %6166, label %6167, label %6184

6167:                                             ; preds = %6162
  %6168 = load i32, ptr %133, align 4, !tbaa !5
  %6169 = call ptr @__errno_location() #11
  store i32 %6168, ptr %6169, align 4, !tbaa !5
  %6170 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6171 = load i32, ptr @test_count, align 4, !tbaa !5
  %6172 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6173 = load i32, ptr %6172, align 4, !tbaa !5
  %6174 = call ptr @s2n_strerror(i32 noundef %6173, ptr noundef @.str.24)
  %6175 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6176 = load i32, ptr %6175, align 4, !tbaa !5
  %6177 = call ptr @s2n_strerror_debug(i32 noundef %6176, ptr noundef @.str.24)
  %6178 = call ptr @__errno_location() #11
  %6179 = load i32, ptr %6178, align 4, !tbaa !5
  %6180 = call ptr @strerror(i32 noundef %6179) #10
  %6181 = call ptr @__errno_location() #11
  %6182 = load i32, ptr %6181, align 4, !tbaa !5
  %6183 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6170, ptr noundef @.str.22, i32 noundef %6171, ptr noundef @.str.48, ptr noundef @.str.21, i32 noundef 375, ptr noundef %6174, ptr noundef %6177, ptr noundef %6180, i32 noundef %6182) #10
  br label %6201

6184:                                             ; preds = %6162, %6155
  %6185 = load i32, ptr %133, align 4, !tbaa !5
  %6186 = call ptr @__errno_location() #11
  store i32 %6185, ptr %6186, align 4, !tbaa !5
  %6187 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6188 = load i32, ptr @test_count, align 4, !tbaa !5
  %6189 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6190 = load i32, ptr %6189, align 4, !tbaa !5
  %6191 = call ptr @s2n_strerror(i32 noundef %6190, ptr noundef @.str.24)
  %6192 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6193 = load i32, ptr %6192, align 4, !tbaa !5
  %6194 = call ptr @s2n_strerror_debug(i32 noundef %6193, ptr noundef @.str.24)
  %6195 = call ptr @__errno_location() #11
  %6196 = load i32, ptr %6195, align 4, !tbaa !5
  %6197 = call ptr @strerror(i32 noundef %6196) #10
  %6198 = call ptr @__errno_location() #11
  %6199 = load i32, ptr %6198, align 4, !tbaa !5
  %6200 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6187, ptr noundef @.str.25, i32 noundef %6188, ptr noundef @.str.48, ptr noundef @.str.21, i32 noundef 375, ptr noundef %6191, ptr noundef %6194, ptr noundef %6197, i32 noundef %6199) #10
  br label %6201

6201:                                             ; preds = %6184, %6167
  call void @llvm.lifetime.end.p0(i64 4, ptr %133) #10
  br label %6202

6202:                                             ; preds = %6201
  br label %6203

6203:                                             ; preds = %6202
  call void @exit(i32 noundef 1) #12
  unreachable

6204:                                             ; No predecessors!
  br label %6205

6205:                                             ; preds = %6204
  br label %6206

6206:                                             ; preds = %6205, %6146
  br label %6207

6207:                                             ; preds = %6206
  br label %6208

6208:                                             ; preds = %6207
  br label %6209

6209:                                             ; preds = %6208
  br label %6210

6210:                                             ; preds = %6209
  br label %6211

6211:                                             ; preds = %6210
  %6212 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %6212, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %6213 = call ptr @__errno_location() #11
  store i32 0, ptr %6213, align 4, !tbaa !5
  br label %6214

6214:                                             ; preds = %6211
  br label %6215

6215:                                             ; preds = %6214
  br label %6216

6216:                                             ; preds = %6215
  br label %6217

6217:                                             ; preds = %6216
  br label %6218

6218:                                             ; preds = %6217
  %6219 = load i32, ptr @test_count, align 4, !tbaa !5
  %6220 = add nsw i32 %6219, 1
  store i32 %6220, ptr @test_count, align 4, !tbaa !5
  %6221 = load ptr, ptr %124, align 8, !tbaa !9
  %6222 = getelementptr inbounds %struct.s2n_connection, ptr %6221, i32 0, i32 52
  %6223 = getelementptr inbounds %struct.s2n_handshake, ptr %6222, i32 0, i32 7
  %6224 = load i32, ptr %6223, align 8, !tbaa !47
  %6225 = icmp eq i32 %6224, 0
  br i1 %6225, label %6279, label %6226

6226:                                             ; preds = %6218
  br label %6227

6227:                                             ; preds = %6226
  br label %6228

6228:                                             ; preds = %6227
  call void @llvm.lifetime.start.p0(i64 4, ptr %134) #10
  %6229 = call ptr @__errno_location() #11
  %6230 = load i32, ptr %6229, align 4, !tbaa !5
  store i32 %6230, ptr %134, align 4, !tbaa !5
  %6231 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6232 = call i32 @s2n_print_stacktrace(ptr noundef %6231)
  %6233 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6234 = trunc i8 %6233 to i1
  br i1 %6234, label %6235, label %6257

6235:                                             ; preds = %6228
  %6236 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6237 = call i32 @fileno(ptr noundef %6236) #10
  %6238 = call i32 @isatty(i32 noundef %6237) #10
  %6239 = icmp ne i32 %6238, 0
  br i1 %6239, label %6240, label %6257

6240:                                             ; preds = %6235
  %6241 = load i32, ptr %134, align 4, !tbaa !5
  %6242 = call ptr @__errno_location() #11
  store i32 %6241, ptr %6242, align 4, !tbaa !5
  %6243 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6244 = load i32, ptr @test_count, align 4, !tbaa !5
  %6245 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6246 = load i32, ptr %6245, align 4, !tbaa !5
  %6247 = call ptr @s2n_strerror(i32 noundef %6246, ptr noundef @.str.24)
  %6248 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6249 = load i32, ptr %6248, align 4, !tbaa !5
  %6250 = call ptr @s2n_strerror_debug(i32 noundef %6249, ptr noundef @.str.24)
  %6251 = call ptr @__errno_location() #11
  %6252 = load i32, ptr %6251, align 4, !tbaa !5
  %6253 = call ptr @strerror(i32 noundef %6252) #10
  %6254 = call ptr @__errno_location() #11
  %6255 = load i32, ptr %6254, align 4, !tbaa !5
  %6256 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6243, ptr noundef @.str.22, i32 noundef %6244, ptr noundef @.str.59, ptr noundef @.str.21, i32 noundef 377, ptr noundef %6247, ptr noundef %6250, ptr noundef %6253, i32 noundef %6255) #10
  br label %6274

6257:                                             ; preds = %6235, %6228
  %6258 = load i32, ptr %134, align 4, !tbaa !5
  %6259 = call ptr @__errno_location() #11
  store i32 %6258, ptr %6259, align 4, !tbaa !5
  %6260 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6261 = load i32, ptr @test_count, align 4, !tbaa !5
  %6262 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6263 = load i32, ptr %6262, align 4, !tbaa !5
  %6264 = call ptr @s2n_strerror(i32 noundef %6263, ptr noundef @.str.24)
  %6265 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6266 = load i32, ptr %6265, align 4, !tbaa !5
  %6267 = call ptr @s2n_strerror_debug(i32 noundef %6266, ptr noundef @.str.24)
  %6268 = call ptr @__errno_location() #11
  %6269 = load i32, ptr %6268, align 4, !tbaa !5
  %6270 = call ptr @strerror(i32 noundef %6269) #10
  %6271 = call ptr @__errno_location() #11
  %6272 = load i32, ptr %6271, align 4, !tbaa !5
  %6273 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6260, ptr noundef @.str.25, i32 noundef %6261, ptr noundef @.str.59, ptr noundef @.str.21, i32 noundef 377, ptr noundef %6264, ptr noundef %6267, ptr noundef %6270, i32 noundef %6272) #10
  br label %6274

6274:                                             ; preds = %6257, %6240
  call void @llvm.lifetime.end.p0(i64 4, ptr %134) #10
  br label %6275

6275:                                             ; preds = %6274
  br label %6276

6276:                                             ; preds = %6275
  call void @exit(i32 noundef 1) #12
  unreachable

6277:                                             ; No predecessors!
  br label %6278

6278:                                             ; preds = %6277
  br label %6279

6279:                                             ; preds = %6278, %6218
  br label %6280

6280:                                             ; preds = %6279
  br label %6281

6281:                                             ; preds = %6280
  br label %6282

6282:                                             ; preds = %6281
  %6283 = load i32, ptr @test_count, align 4, !tbaa !5
  %6284 = add nsw i32 %6283, 1
  store i32 %6284, ptr @test_count, align 4, !tbaa !5
  %6285 = load i32, ptr @unexpected_handler_called, align 4, !tbaa !5
  %6286 = icmp ne i32 %6285, 0
  br i1 %6286, label %6287, label %6340

6287:                                             ; preds = %6282
  br label %6288

6288:                                             ; preds = %6287
  br label %6289

6289:                                             ; preds = %6288
  call void @llvm.lifetime.start.p0(i64 4, ptr %135) #10
  %6290 = call ptr @__errno_location() #11
  %6291 = load i32, ptr %6290, align 4, !tbaa !5
  store i32 %6291, ptr %135, align 4, !tbaa !5
  %6292 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6293 = call i32 @s2n_print_stacktrace(ptr noundef %6292)
  %6294 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6295 = trunc i8 %6294 to i1
  br i1 %6295, label %6296, label %6318

6296:                                             ; preds = %6289
  %6297 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6298 = call i32 @fileno(ptr noundef %6297) #10
  %6299 = call i32 @isatty(i32 noundef %6298) #10
  %6300 = icmp ne i32 %6299, 0
  br i1 %6300, label %6301, label %6318

6301:                                             ; preds = %6296
  %6302 = load i32, ptr %135, align 4, !tbaa !5
  %6303 = call ptr @__errno_location() #11
  store i32 %6302, ptr %6303, align 4, !tbaa !5
  %6304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6305 = load i32, ptr @test_count, align 4, !tbaa !5
  %6306 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6307 = load i32, ptr %6306, align 4, !tbaa !5
  %6308 = call ptr @s2n_strerror(i32 noundef %6307, ptr noundef @.str.24)
  %6309 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6310 = load i32, ptr %6309, align 4, !tbaa !5
  %6311 = call ptr @s2n_strerror_debug(i32 noundef %6310, ptr noundef @.str.24)
  %6312 = call ptr @__errno_location() #11
  %6313 = load i32, ptr %6312, align 4, !tbaa !5
  %6314 = call ptr @strerror(i32 noundef %6313) #10
  %6315 = call ptr @__errno_location() #11
  %6316 = load i32, ptr %6315, align 4, !tbaa !5
  %6317 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6304, ptr noundef @.str.22, i32 noundef %6305, ptr noundef @.str.45, ptr noundef @.str.21, i32 noundef 378, ptr noundef %6308, ptr noundef %6311, ptr noundef %6314, i32 noundef %6316) #10
  br label %6335

6318:                                             ; preds = %6296, %6289
  %6319 = load i32, ptr %135, align 4, !tbaa !5
  %6320 = call ptr @__errno_location() #11
  store i32 %6319, ptr %6320, align 4, !tbaa !5
  %6321 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6322 = load i32, ptr @test_count, align 4, !tbaa !5
  %6323 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6324 = load i32, ptr %6323, align 4, !tbaa !5
  %6325 = call ptr @s2n_strerror(i32 noundef %6324, ptr noundef @.str.24)
  %6326 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6327 = load i32, ptr %6326, align 4, !tbaa !5
  %6328 = call ptr @s2n_strerror_debug(i32 noundef %6327, ptr noundef @.str.24)
  %6329 = call ptr @__errno_location() #11
  %6330 = load i32, ptr %6329, align 4, !tbaa !5
  %6331 = call ptr @strerror(i32 noundef %6330) #10
  %6332 = call ptr @__errno_location() #11
  %6333 = load i32, ptr %6332, align 4, !tbaa !5
  %6334 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6321, ptr noundef @.str.25, i32 noundef %6322, ptr noundef @.str.45, ptr noundef @.str.21, i32 noundef 378, ptr noundef %6325, ptr noundef %6328, ptr noundef %6331, i32 noundef %6333) #10
  br label %6335

6335:                                             ; preds = %6318, %6301
  call void @llvm.lifetime.end.p0(i64 4, ptr %135) #10
  br label %6336

6336:                                             ; preds = %6335
  br label %6337

6337:                                             ; preds = %6336
  call void @exit(i32 noundef 1) #12
  unreachable

6338:                                             ; No predecessors!
  br label %6339

6339:                                             ; preds = %6338
  br label %6340

6340:                                             ; preds = %6339, %6282
  br label %6341

6341:                                             ; preds = %6340
  br label %6342

6342:                                             ; preds = %6341
  br label %6343

6343:                                             ; preds = %6342
  %6344 = load i32, ptr @test_count, align 4, !tbaa !5
  %6345 = add nsw i32 %6344, 1
  store i32 %6345, ptr @test_count, align 4, !tbaa !5
  %6346 = load i32, ptr @expected_handler_called, align 4, !tbaa !5
  %6347 = icmp ne i32 %6346, 0
  br i1 %6347, label %6348, label %6401

6348:                                             ; preds = %6343
  br label %6349

6349:                                             ; preds = %6348
  br label %6350

6350:                                             ; preds = %6349
  call void @llvm.lifetime.start.p0(i64 4, ptr %136) #10
  %6351 = call ptr @__errno_location() #11
  %6352 = load i32, ptr %6351, align 4, !tbaa !5
  store i32 %6352, ptr %136, align 4, !tbaa !5
  %6353 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6354 = call i32 @s2n_print_stacktrace(ptr noundef %6353)
  %6355 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6356 = trunc i8 %6355 to i1
  br i1 %6356, label %6357, label %6379

6357:                                             ; preds = %6350
  %6358 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6359 = call i32 @fileno(ptr noundef %6358) #10
  %6360 = call i32 @isatty(i32 noundef %6359) #10
  %6361 = icmp ne i32 %6360, 0
  br i1 %6361, label %6362, label %6379

6362:                                             ; preds = %6357
  %6363 = load i32, ptr %136, align 4, !tbaa !5
  %6364 = call ptr @__errno_location() #11
  store i32 %6363, ptr %6364, align 4, !tbaa !5
  %6365 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6366 = load i32, ptr @test_count, align 4, !tbaa !5
  %6367 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6368 = load i32, ptr %6367, align 4, !tbaa !5
  %6369 = call ptr @s2n_strerror(i32 noundef %6368, ptr noundef @.str.24)
  %6370 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6371 = load i32, ptr %6370, align 4, !tbaa !5
  %6372 = call ptr @s2n_strerror_debug(i32 noundef %6371, ptr noundef @.str.24)
  %6373 = call ptr @__errno_location() #11
  %6374 = load i32, ptr %6373, align 4, !tbaa !5
  %6375 = call ptr @strerror(i32 noundef %6374) #10
  %6376 = call ptr @__errno_location() #11
  %6377 = load i32, ptr %6376, align 4, !tbaa !5
  %6378 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6365, ptr noundef @.str.22, i32 noundef %6366, ptr noundef @.str.49, ptr noundef @.str.21, i32 noundef 379, ptr noundef %6369, ptr noundef %6372, ptr noundef %6375, i32 noundef %6377) #10
  br label %6396

6379:                                             ; preds = %6357, %6350
  %6380 = load i32, ptr %136, align 4, !tbaa !5
  %6381 = call ptr @__errno_location() #11
  store i32 %6380, ptr %6381, align 4, !tbaa !5
  %6382 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6383 = load i32, ptr @test_count, align 4, !tbaa !5
  %6384 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6385 = load i32, ptr %6384, align 4, !tbaa !5
  %6386 = call ptr @s2n_strerror(i32 noundef %6385, ptr noundef @.str.24)
  %6387 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6388 = load i32, ptr %6387, align 4, !tbaa !5
  %6389 = call ptr @s2n_strerror_debug(i32 noundef %6388, ptr noundef @.str.24)
  %6390 = call ptr @__errno_location() #11
  %6391 = load i32, ptr %6390, align 4, !tbaa !5
  %6392 = call ptr @strerror(i32 noundef %6391) #10
  %6393 = call ptr @__errno_location() #11
  %6394 = load i32, ptr %6393, align 4, !tbaa !5
  %6395 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6382, ptr noundef @.str.25, i32 noundef %6383, ptr noundef @.str.49, ptr noundef @.str.21, i32 noundef 379, ptr noundef %6386, ptr noundef %6389, ptr noundef %6392, i32 noundef %6394) #10
  br label %6396

6396:                                             ; preds = %6379, %6362
  call void @llvm.lifetime.end.p0(i64 4, ptr %136) #10
  br label %6397

6397:                                             ; preds = %6396
  br label %6398

6398:                                             ; preds = %6397
  call void @exit(i32 noundef 1) #12
  unreachable

6399:                                             ; No predecessors!
  br label %6400

6400:                                             ; preds = %6399
  br label %6401

6401:                                             ; preds = %6400, %6343
  br label %6402

6402:                                             ; preds = %6401
  br label %6403

6403:                                             ; preds = %6402
  br label %6404

6404:                                             ; preds = %6403
  %6405 = load i32, ptr @test_count, align 4, !tbaa !5
  %6406 = add nsw i32 %6405, 1
  store i32 %6406, ptr @test_count, align 4, !tbaa !5
  %6407 = call i32 @s2n_stuffer_free(ptr noundef %125)
  %6408 = icmp eq i32 %6407, -1
  br i1 %6408, label %6409, label %6462

6409:                                             ; preds = %6404
  br label %6410

6410:                                             ; preds = %6409
  br label %6411

6411:                                             ; preds = %6410
  call void @llvm.lifetime.start.p0(i64 4, ptr %137) #10
  %6412 = call ptr @__errno_location() #11
  %6413 = load i32, ptr %6412, align 4, !tbaa !5
  store i32 %6413, ptr %137, align 4, !tbaa !5
  %6414 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6415 = call i32 @s2n_print_stacktrace(ptr noundef %6414)
  %6416 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6417 = trunc i8 %6416 to i1
  br i1 %6417, label %6418, label %6440

6418:                                             ; preds = %6411
  %6419 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6420 = call i32 @fileno(ptr noundef %6419) #10
  %6421 = call i32 @isatty(i32 noundef %6420) #10
  %6422 = icmp ne i32 %6421, 0
  br i1 %6422, label %6423, label %6440

6423:                                             ; preds = %6418
  %6424 = load i32, ptr %137, align 4, !tbaa !5
  %6425 = call ptr @__errno_location() #11
  store i32 %6424, ptr %6425, align 4, !tbaa !5
  %6426 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6427 = load i32, ptr @test_count, align 4, !tbaa !5
  %6428 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6429 = load i32, ptr %6428, align 4, !tbaa !5
  %6430 = call ptr @s2n_strerror(i32 noundef %6429, ptr noundef @.str.24)
  %6431 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6432 = load i32, ptr %6431, align 4, !tbaa !5
  %6433 = call ptr @s2n_strerror_debug(i32 noundef %6432, ptr noundef @.str.24)
  %6434 = call ptr @__errno_location() #11
  %6435 = load i32, ptr %6434, align 4, !tbaa !5
  %6436 = call ptr @strerror(i32 noundef %6435) #10
  %6437 = call ptr @__errno_location() #11
  %6438 = load i32, ptr %6437, align 4, !tbaa !5
  %6439 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6426, ptr noundef @.str.22, i32 noundef %6427, ptr noundef @.str.51, ptr noundef @.str.21, i32 noundef 381, ptr noundef %6430, ptr noundef %6433, ptr noundef %6436, i32 noundef %6438) #10
  br label %6457

6440:                                             ; preds = %6418, %6411
  %6441 = load i32, ptr %137, align 4, !tbaa !5
  %6442 = call ptr @__errno_location() #11
  store i32 %6441, ptr %6442, align 4, !tbaa !5
  %6443 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6444 = load i32, ptr @test_count, align 4, !tbaa !5
  %6445 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6446 = load i32, ptr %6445, align 4, !tbaa !5
  %6447 = call ptr @s2n_strerror(i32 noundef %6446, ptr noundef @.str.24)
  %6448 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6449 = load i32, ptr %6448, align 4, !tbaa !5
  %6450 = call ptr @s2n_strerror_debug(i32 noundef %6449, ptr noundef @.str.24)
  %6451 = call ptr @__errno_location() #11
  %6452 = load i32, ptr %6451, align 4, !tbaa !5
  %6453 = call ptr @strerror(i32 noundef %6452) #10
  %6454 = call ptr @__errno_location() #11
  %6455 = load i32, ptr %6454, align 4, !tbaa !5
  %6456 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6443, ptr noundef @.str.25, i32 noundef %6444, ptr noundef @.str.51, ptr noundef @.str.21, i32 noundef 381, ptr noundef %6447, ptr noundef %6450, ptr noundef %6453, i32 noundef %6455) #10
  br label %6457

6457:                                             ; preds = %6440, %6423
  call void @llvm.lifetime.end.p0(i64 4, ptr %137) #10
  br label %6458

6458:                                             ; preds = %6457
  br label %6459

6459:                                             ; preds = %6458
  call void @exit(i32 noundef 1) #12
  unreachable

6460:                                             ; No predecessors!
  br label %6461

6461:                                             ; preds = %6460
  br label %6462

6462:                                             ; preds = %6461, %6404
  br label %6463

6463:                                             ; preds = %6462
  br label %6464

6464:                                             ; preds = %6463
  br label %6465

6465:                                             ; preds = %6464
  %6466 = load i32, ptr @test_count, align 4, !tbaa !5
  %6467 = add nsw i32 %6466, 1
  store i32 %6467, ptr @test_count, align 4, !tbaa !5
  %6468 = load ptr, ptr %124, align 8, !tbaa !9
  %6469 = call i32 @s2n_connection_free(ptr noundef %6468)
  %6470 = icmp eq i32 %6469, -1
  br i1 %6470, label %6471, label %6524

6471:                                             ; preds = %6465
  br label %6472

6472:                                             ; preds = %6471
  br label %6473

6473:                                             ; preds = %6472
  call void @llvm.lifetime.start.p0(i64 4, ptr %138) #10
  %6474 = call ptr @__errno_location() #11
  %6475 = load i32, ptr %6474, align 4, !tbaa !5
  store i32 %6475, ptr %138, align 4, !tbaa !5
  %6476 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6477 = call i32 @s2n_print_stacktrace(ptr noundef %6476)
  %6478 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6479 = trunc i8 %6478 to i1
  br i1 %6479, label %6480, label %6502

6480:                                             ; preds = %6473
  %6481 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6482 = call i32 @fileno(ptr noundef %6481) #10
  %6483 = call i32 @isatty(i32 noundef %6482) #10
  %6484 = icmp ne i32 %6483, 0
  br i1 %6484, label %6485, label %6502

6485:                                             ; preds = %6480
  %6486 = load i32, ptr %138, align 4, !tbaa !5
  %6487 = call ptr @__errno_location() #11
  store i32 %6486, ptr %6487, align 4, !tbaa !5
  %6488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6489 = load i32, ptr @test_count, align 4, !tbaa !5
  %6490 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6491 = load i32, ptr %6490, align 4, !tbaa !5
  %6492 = call ptr @s2n_strerror(i32 noundef %6491, ptr noundef @.str.24)
  %6493 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6494 = load i32, ptr %6493, align 4, !tbaa !5
  %6495 = call ptr @s2n_strerror_debug(i32 noundef %6494, ptr noundef @.str.24)
  %6496 = call ptr @__errno_location() #11
  %6497 = load i32, ptr %6496, align 4, !tbaa !5
  %6498 = call ptr @strerror(i32 noundef %6497) #10
  %6499 = call ptr @__errno_location() #11
  %6500 = load i32, ptr %6499, align 4, !tbaa !5
  %6501 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6488, ptr noundef @.str.22, i32 noundef %6489, ptr noundef @.str.33, ptr noundef @.str.21, i32 noundef 382, ptr noundef %6492, ptr noundef %6495, ptr noundef %6498, i32 noundef %6500) #10
  br label %6519

6502:                                             ; preds = %6480, %6473
  %6503 = load i32, ptr %138, align 4, !tbaa !5
  %6504 = call ptr @__errno_location() #11
  store i32 %6503, ptr %6504, align 4, !tbaa !5
  %6505 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6506 = load i32, ptr @test_count, align 4, !tbaa !5
  %6507 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6508 = load i32, ptr %6507, align 4, !tbaa !5
  %6509 = call ptr @s2n_strerror(i32 noundef %6508, ptr noundef @.str.24)
  %6510 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6511 = load i32, ptr %6510, align 4, !tbaa !5
  %6512 = call ptr @s2n_strerror_debug(i32 noundef %6511, ptr noundef @.str.24)
  %6513 = call ptr @__errno_location() #11
  %6514 = load i32, ptr %6513, align 4, !tbaa !5
  %6515 = call ptr @strerror(i32 noundef %6514) #10
  %6516 = call ptr @__errno_location() #11
  %6517 = load i32, ptr %6516, align 4, !tbaa !5
  %6518 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6505, ptr noundef @.str.25, i32 noundef %6506, ptr noundef @.str.33, ptr noundef @.str.21, i32 noundef 382, ptr noundef %6509, ptr noundef %6512, ptr noundef %6515, i32 noundef %6517) #10
  br label %6519

6519:                                             ; preds = %6502, %6485
  call void @llvm.lifetime.end.p0(i64 4, ptr %138) #10
  br label %6520

6520:                                             ; preds = %6519
  br label %6521

6521:                                             ; preds = %6520
  call void @exit(i32 noundef 1) #12
  unreachable

6522:                                             ; No predecessors!
  br label %6523

6523:                                             ; preds = %6522
  br label %6524

6524:                                             ; preds = %6523, %6465
  br label %6525

6525:                                             ; preds = %6524
  br label %6526

6526:                                             ; preds = %6525
  call void @llvm.lifetime.end.p0(i64 40, ptr %125) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %124) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr %139) #10
  %6527 = load i8, ptr getelementptr inbounds (%struct.s2n_handshake_action, ptr getelementptr inbounds ([21 x %struct.s2n_handshake_action], ptr @state_machine, i64 0, i64 14), i32 0, i32 1), align 1, !tbaa !62
  store i8 %6527, ptr %139, align 1, !tbaa !64
  store i8 1, ptr getelementptr inbounds (%struct.s2n_handshake_action, ptr getelementptr inbounds ([21 x %struct.s2n_handshake_action], ptr @state_machine, i64 0, i64 14), i32 0, i32 1), align 1, !tbaa !62
  call void @llvm.lifetime.start.p0(i64 8, ptr %140) #10
  %6528 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %6528, ptr %140, align 8, !tbaa !9
  %6529 = load ptr, ptr %140, align 8, !tbaa !9
  %6530 = getelementptr inbounds %struct.s2n_connection, ptr %6529, i32 0, i32 23
  store i8 33, ptr %6530, align 4, !tbaa !19
  call void @llvm.lifetime.start.p0(i64 40, ptr %141) #10
  call void @llvm.memset.p0.i64(ptr align 8 %141, i8 0, i64 40, i1 false)
  br label %6531

6531:                                             ; preds = %6526
  %6532 = load i32, ptr @test_count, align 4, !tbaa !5
  %6533 = add nsw i32 %6532, 1
  store i32 %6533, ptr @test_count, align 4, !tbaa !5
  %6534 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %141, i32 noundef 0)
  %6535 = icmp eq i32 %6534, -1
  br i1 %6535, label %6536, label %6589

6536:                                             ; preds = %6531
  br label %6537

6537:                                             ; preds = %6536
  br label %6538

6538:                                             ; preds = %6537
  call void @llvm.lifetime.start.p0(i64 4, ptr %142) #10
  %6539 = call ptr @__errno_location() #11
  %6540 = load i32, ptr %6539, align 4, !tbaa !5
  store i32 %6540, ptr %142, align 4, !tbaa !5
  %6541 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6542 = call i32 @s2n_print_stacktrace(ptr noundef %6541)
  %6543 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6544 = trunc i8 %6543 to i1
  br i1 %6544, label %6545, label %6567

6545:                                             ; preds = %6538
  %6546 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6547 = call i32 @fileno(ptr noundef %6546) #10
  %6548 = call i32 @isatty(i32 noundef %6547) #10
  %6549 = icmp ne i32 %6548, 0
  br i1 %6549, label %6550, label %6567

6550:                                             ; preds = %6545
  %6551 = load i32, ptr %142, align 4, !tbaa !5
  %6552 = call ptr @__errno_location() #11
  store i32 %6551, ptr %6552, align 4, !tbaa !5
  %6553 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6554 = load i32, ptr @test_count, align 4, !tbaa !5
  %6555 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6556 = load i32, ptr %6555, align 4, !tbaa !5
  %6557 = call ptr @s2n_strerror(i32 noundef %6556, ptr noundef @.str.24)
  %6558 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6559 = load i32, ptr %6558, align 4, !tbaa !5
  %6560 = call ptr @s2n_strerror_debug(i32 noundef %6559, ptr noundef @.str.24)
  %6561 = call ptr @__errno_location() #11
  %6562 = load i32, ptr %6561, align 4, !tbaa !5
  %6563 = call ptr @strerror(i32 noundef %6562) #10
  %6564 = call ptr @__errno_location() #11
  %6565 = load i32, ptr %6564, align 4, !tbaa !5
  %6566 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6553, ptr noundef @.str.22, i32 noundef %6554, ptr noundef @.str.39, ptr noundef @.str.21, i32 noundef 401, ptr noundef %6557, ptr noundef %6560, ptr noundef %6563, i32 noundef %6565) #10
  br label %6584

6567:                                             ; preds = %6545, %6538
  %6568 = load i32, ptr %142, align 4, !tbaa !5
  %6569 = call ptr @__errno_location() #11
  store i32 %6568, ptr %6569, align 4, !tbaa !5
  %6570 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6571 = load i32, ptr @test_count, align 4, !tbaa !5
  %6572 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6573 = load i32, ptr %6572, align 4, !tbaa !5
  %6574 = call ptr @s2n_strerror(i32 noundef %6573, ptr noundef @.str.24)
  %6575 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6576 = load i32, ptr %6575, align 4, !tbaa !5
  %6577 = call ptr @s2n_strerror_debug(i32 noundef %6576, ptr noundef @.str.24)
  %6578 = call ptr @__errno_location() #11
  %6579 = load i32, ptr %6578, align 4, !tbaa !5
  %6580 = call ptr @strerror(i32 noundef %6579) #10
  %6581 = call ptr @__errno_location() #11
  %6582 = load i32, ptr %6581, align 4, !tbaa !5
  %6583 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6570, ptr noundef @.str.25, i32 noundef %6571, ptr noundef @.str.39, ptr noundef @.str.21, i32 noundef 401, ptr noundef %6574, ptr noundef %6577, ptr noundef %6580, i32 noundef %6582) #10
  br label %6584

6584:                                             ; preds = %6567, %6550
  call void @llvm.lifetime.end.p0(i64 4, ptr %142) #10
  br label %6585

6585:                                             ; preds = %6584
  br label %6586

6586:                                             ; preds = %6585
  call void @exit(i32 noundef 1) #12
  unreachable

6587:                                             ; No predecessors!
  br label %6588

6588:                                             ; preds = %6587
  br label %6589

6589:                                             ; preds = %6588, %6531
  br label %6590

6590:                                             ; preds = %6589
  br label %6591

6591:                                             ; preds = %6590
  br label %6592

6592:                                             ; preds = %6591
  %6593 = load i32, ptr @test_count, align 4, !tbaa !5
  %6594 = add nsw i32 %6593, 1
  store i32 %6594, ptr @test_count, align 4, !tbaa !5
  %6595 = load ptr, ptr %140, align 8, !tbaa !9
  %6596 = call i32 @s2n_connection_set_io_stuffers(ptr noundef %141, ptr noundef null, ptr noundef %6595)
  %6597 = icmp eq i32 %6596, -1
  br i1 %6597, label %6598, label %6651

6598:                                             ; preds = %6592
  br label %6599

6599:                                             ; preds = %6598
  br label %6600

6600:                                             ; preds = %6599
  call void @llvm.lifetime.start.p0(i64 4, ptr %143) #10
  %6601 = call ptr @__errno_location() #11
  %6602 = load i32, ptr %6601, align 4, !tbaa !5
  store i32 %6602, ptr %143, align 4, !tbaa !5
  %6603 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6604 = call i32 @s2n_print_stacktrace(ptr noundef %6603)
  %6605 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6606 = trunc i8 %6605 to i1
  br i1 %6606, label %6607, label %6629

6607:                                             ; preds = %6600
  %6608 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6609 = call i32 @fileno(ptr noundef %6608) #10
  %6610 = call i32 @isatty(i32 noundef %6609) #10
  %6611 = icmp ne i32 %6610, 0
  br i1 %6611, label %6612, label %6629

6612:                                             ; preds = %6607
  %6613 = load i32, ptr %143, align 4, !tbaa !5
  %6614 = call ptr @__errno_location() #11
  store i32 %6613, ptr %6614, align 4, !tbaa !5
  %6615 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6616 = load i32, ptr @test_count, align 4, !tbaa !5
  %6617 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6618 = load i32, ptr %6617, align 4, !tbaa !5
  %6619 = call ptr @s2n_strerror(i32 noundef %6618, ptr noundef @.str.24)
  %6620 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6621 = load i32, ptr %6620, align 4, !tbaa !5
  %6622 = call ptr @s2n_strerror_debug(i32 noundef %6621, ptr noundef @.str.24)
  %6623 = call ptr @__errno_location() #11
  %6624 = load i32, ptr %6623, align 4, !tbaa !5
  %6625 = call ptr @strerror(i32 noundef %6624) #10
  %6626 = call ptr @__errno_location() #11
  %6627 = load i32, ptr %6626, align 4, !tbaa !5
  %6628 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6615, ptr noundef @.str.22, i32 noundef %6616, ptr noundef @.str.40, ptr noundef @.str.21, i32 noundef 402, ptr noundef %6619, ptr noundef %6622, ptr noundef %6625, i32 noundef %6627) #10
  br label %6646

6629:                                             ; preds = %6607, %6600
  %6630 = load i32, ptr %143, align 4, !tbaa !5
  %6631 = call ptr @__errno_location() #11
  store i32 %6630, ptr %6631, align 4, !tbaa !5
  %6632 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6633 = load i32, ptr @test_count, align 4, !tbaa !5
  %6634 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6635 = load i32, ptr %6634, align 4, !tbaa !5
  %6636 = call ptr @s2n_strerror(i32 noundef %6635, ptr noundef @.str.24)
  %6637 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6638 = load i32, ptr %6637, align 4, !tbaa !5
  %6639 = call ptr @s2n_strerror_debug(i32 noundef %6638, ptr noundef @.str.24)
  %6640 = call ptr @__errno_location() #11
  %6641 = load i32, ptr %6640, align 4, !tbaa !5
  %6642 = call ptr @strerror(i32 noundef %6641) #10
  %6643 = call ptr @__errno_location() #11
  %6644 = load i32, ptr %6643, align 4, !tbaa !5
  %6645 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6632, ptr noundef @.str.25, i32 noundef %6633, ptr noundef @.str.40, ptr noundef @.str.21, i32 noundef 402, ptr noundef %6636, ptr noundef %6639, ptr noundef %6642, i32 noundef %6644) #10
  br label %6646

6646:                                             ; preds = %6629, %6612
  call void @llvm.lifetime.end.p0(i64 4, ptr %143) #10
  br label %6647

6647:                                             ; preds = %6646
  br label %6648

6648:                                             ; preds = %6647
  call void @exit(i32 noundef 1) #12
  unreachable

6649:                                             ; No predecessors!
  br label %6650

6650:                                             ; preds = %6649
  br label %6651

6651:                                             ; preds = %6650, %6592
  br label %6652

6652:                                             ; preds = %6651
  br label %6653

6653:                                             ; preds = %6652
  call void @llvm.lifetime.start.p0(i64 1, ptr %144) #10
  store i8 2, ptr %144, align 1, !tbaa !64
  %6654 = load ptr, ptr %140, align 8, !tbaa !9
  %6655 = getelementptr inbounds %struct.s2n_connection, ptr %6654, i32 0, i32 52
  %6656 = getelementptr inbounds %struct.s2n_handshake, ptr %6655, i32 0, i32 6
  store i32 1, ptr %6656, align 4, !tbaa !46
  %6657 = load i8, ptr %144, align 1, !tbaa !64
  %6658 = zext i8 %6657 to i32
  %6659 = load ptr, ptr %140, align 8, !tbaa !9
  %6660 = getelementptr inbounds %struct.s2n_connection, ptr %6659, i32 0, i32 52
  %6661 = getelementptr inbounds %struct.s2n_handshake, ptr %6660, i32 0, i32 7
  store i32 %6658, ptr %6661, align 8, !tbaa !47
  br label %6662

6662:                                             ; preds = %6653
  %6663 = load i32, ptr @test_count, align 4, !tbaa !5
  %6664 = add nsw i32 %6663, 1
  store i32 %6664, ptr @test_count, align 4, !tbaa !5
  %6665 = load ptr, ptr %140, align 8, !tbaa !9
  %6666 = getelementptr inbounds %struct.s2n_connection, ptr %6665, i32 0, i32 52
  %6667 = getelementptr inbounds %struct.s2n_handshake, ptr %6666, i32 0, i32 12
  %6668 = load i32, ptr %6667, align 4, !tbaa !45
  %6669 = icmp eq i32 %6668, 2
  %6670 = zext i1 %6669 to i64
  %6671 = select i1 %6669, ptr @tls13_handshakes, ptr @handshakes
  %6672 = load ptr, ptr %140, align 8, !tbaa !9
  %6673 = getelementptr inbounds %struct.s2n_connection, ptr %6672, i32 0, i32 52
  %6674 = getelementptr inbounds %struct.s2n_handshake, ptr %6673, i32 0, i32 6
  %6675 = load i32, ptr %6674, align 4, !tbaa !46
  %6676 = zext i32 %6675 to i64
  %6677 = getelementptr inbounds [32 x i32], ptr %6671, i64 %6676
  %6678 = load ptr, ptr %140, align 8, !tbaa !9
  %6679 = getelementptr inbounds %struct.s2n_connection, ptr %6678, i32 0, i32 52
  %6680 = getelementptr inbounds %struct.s2n_handshake, ptr %6679, i32 0, i32 7
  %6681 = load i32, ptr %6680, align 8, !tbaa !47
  %6682 = sext i32 %6681 to i64
  %6683 = getelementptr inbounds [32 x i32], ptr %6677, i64 0, i64 %6682
  %6684 = load i32, ptr %6683, align 4, !tbaa !5
  %6685 = icmp eq i32 %6684, 14
  br i1 %6685, label %6739, label %6686

6686:                                             ; preds = %6662
  br label %6687

6687:                                             ; preds = %6686
  br label %6688

6688:                                             ; preds = %6687
  call void @llvm.lifetime.start.p0(i64 4, ptr %145) #10
  %6689 = call ptr @__errno_location() #11
  %6690 = load i32, ptr %6689, align 4, !tbaa !5
  store i32 %6690, ptr %145, align 4, !tbaa !5
  %6691 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6692 = call i32 @s2n_print_stacktrace(ptr noundef %6691)
  %6693 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6694 = trunc i8 %6693 to i1
  br i1 %6694, label %6695, label %6717

6695:                                             ; preds = %6688
  %6696 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6697 = call i32 @fileno(ptr noundef %6696) #10
  %6698 = call i32 @isatty(i32 noundef %6697) #10
  %6699 = icmp ne i32 %6698, 0
  br i1 %6699, label %6700, label %6717

6700:                                             ; preds = %6695
  %6701 = load i32, ptr %145, align 4, !tbaa !5
  %6702 = call ptr @__errno_location() #11
  store i32 %6701, ptr %6702, align 4, !tbaa !5
  %6703 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6704 = load i32, ptr @test_count, align 4, !tbaa !5
  %6705 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6706 = load i32, ptr %6705, align 4, !tbaa !5
  %6707 = call ptr @s2n_strerror(i32 noundef %6706, ptr noundef @.str.24)
  %6708 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6709 = load i32, ptr %6708, align 4, !tbaa !5
  %6710 = call ptr @s2n_strerror_debug(i32 noundef %6709, ptr noundef @.str.24)
  %6711 = call ptr @__errno_location() #11
  %6712 = load i32, ptr %6711, align 4, !tbaa !5
  %6713 = call ptr @strerror(i32 noundef %6712) #10
  %6714 = call ptr @__errno_location() #11
  %6715 = load i32, ptr %6714, align 4, !tbaa !5
  %6716 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6703, ptr noundef @.str.22, i32 noundef %6704, ptr noundef @.str.38, ptr noundef @.str.21, i32 noundef 407, ptr noundef %6707, ptr noundef %6710, ptr noundef %6713, i32 noundef %6715) #10
  br label %6734

6717:                                             ; preds = %6695, %6688
  %6718 = load i32, ptr %145, align 4, !tbaa !5
  %6719 = call ptr @__errno_location() #11
  store i32 %6718, ptr %6719, align 4, !tbaa !5
  %6720 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6721 = load i32, ptr @test_count, align 4, !tbaa !5
  %6722 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6723 = load i32, ptr %6722, align 4, !tbaa !5
  %6724 = call ptr @s2n_strerror(i32 noundef %6723, ptr noundef @.str.24)
  %6725 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6726 = load i32, ptr %6725, align 4, !tbaa !5
  %6727 = call ptr @s2n_strerror_debug(i32 noundef %6726, ptr noundef @.str.24)
  %6728 = call ptr @__errno_location() #11
  %6729 = load i32, ptr %6728, align 4, !tbaa !5
  %6730 = call ptr @strerror(i32 noundef %6729) #10
  %6731 = call ptr @__errno_location() #11
  %6732 = load i32, ptr %6731, align 4, !tbaa !5
  %6733 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6720, ptr noundef @.str.25, i32 noundef %6721, ptr noundef @.str.38, ptr noundef @.str.21, i32 noundef 407, ptr noundef %6724, ptr noundef %6727, ptr noundef %6730, i32 noundef %6732) #10
  br label %6734

6734:                                             ; preds = %6717, %6700
  call void @llvm.lifetime.end.p0(i64 4, ptr %145) #10
  br label %6735

6735:                                             ; preds = %6734
  br label %6736

6736:                                             ; preds = %6735
  call void @exit(i32 noundef 1) #12
  unreachable

6737:                                             ; No predecessors!
  br label %6738

6738:                                             ; preds = %6737
  br label %6739

6739:                                             ; preds = %6738, %6662
  br label %6740

6740:                                             ; preds = %6739
  br label %6741

6741:                                             ; preds = %6740
  br label %6742

6742:                                             ; preds = %6741
  %6743 = load i32, ptr @test_count, align 4, !tbaa !5
  %6744 = add nsw i32 %6743, 1
  store i32 %6744, ptr @test_count, align 4, !tbaa !5
  %6745 = call i32 @s2n_setup_handler_to_expect(i32 noundef 14, i8 noundef zeroext 1)
  %6746 = icmp eq i32 %6745, -1
  br i1 %6746, label %6747, label %6800

6747:                                             ; preds = %6742
  br label %6748

6748:                                             ; preds = %6747
  br label %6749

6749:                                             ; preds = %6748
  call void @llvm.lifetime.start.p0(i64 4, ptr %146) #10
  %6750 = call ptr @__errno_location() #11
  %6751 = load i32, ptr %6750, align 4, !tbaa !5
  store i32 %6751, ptr %146, align 4, !tbaa !5
  %6752 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6753 = call i32 @s2n_print_stacktrace(ptr noundef %6752)
  %6754 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6755 = trunc i8 %6754 to i1
  br i1 %6755, label %6756, label %6778

6756:                                             ; preds = %6749
  %6757 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6758 = call i32 @fileno(ptr noundef %6757) #10
  %6759 = call i32 @isatty(i32 noundef %6758) #10
  %6760 = icmp ne i32 %6759, 0
  br i1 %6760, label %6761, label %6778

6761:                                             ; preds = %6756
  %6762 = load i32, ptr %146, align 4, !tbaa !5
  %6763 = call ptr @__errno_location() #11
  store i32 %6762, ptr %6763, align 4, !tbaa !5
  %6764 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6765 = load i32, ptr @test_count, align 4, !tbaa !5
  %6766 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6767 = load i32, ptr %6766, align 4, !tbaa !5
  %6768 = call ptr @s2n_strerror(i32 noundef %6767, ptr noundef @.str.24)
  %6769 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6770 = load i32, ptr %6769, align 4, !tbaa !5
  %6771 = call ptr @s2n_strerror_debug(i32 noundef %6770, ptr noundef @.str.24)
  %6772 = call ptr @__errno_location() #11
  %6773 = load i32, ptr %6772, align 4, !tbaa !5
  %6774 = call ptr @strerror(i32 noundef %6773) #10
  %6775 = call ptr @__errno_location() #11
  %6776 = load i32, ptr %6775, align 4, !tbaa !5
  %6777 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6764, ptr noundef @.str.22, i32 noundef %6765, ptr noundef @.str.41, ptr noundef @.str.21, i32 noundef 408, ptr noundef %6768, ptr noundef %6771, ptr noundef %6774, i32 noundef %6776) #10
  br label %6795

6778:                                             ; preds = %6756, %6749
  %6779 = load i32, ptr %146, align 4, !tbaa !5
  %6780 = call ptr @__errno_location() #11
  store i32 %6779, ptr %6780, align 4, !tbaa !5
  %6781 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6782 = load i32, ptr @test_count, align 4, !tbaa !5
  %6783 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6784 = load i32, ptr %6783, align 4, !tbaa !5
  %6785 = call ptr @s2n_strerror(i32 noundef %6784, ptr noundef @.str.24)
  %6786 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6787 = load i32, ptr %6786, align 4, !tbaa !5
  %6788 = call ptr @s2n_strerror_debug(i32 noundef %6787, ptr noundef @.str.24)
  %6789 = call ptr @__errno_location() #11
  %6790 = load i32, ptr %6789, align 4, !tbaa !5
  %6791 = call ptr @strerror(i32 noundef %6790) #10
  %6792 = call ptr @__errno_location() #11
  %6793 = load i32, ptr %6792, align 4, !tbaa !5
  %6794 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6781, ptr noundef @.str.25, i32 noundef %6782, ptr noundef @.str.41, ptr noundef @.str.21, i32 noundef 408, ptr noundef %6785, ptr noundef %6788, ptr noundef %6791, i32 noundef %6793) #10
  br label %6795

6795:                                             ; preds = %6778, %6761
  call void @llvm.lifetime.end.p0(i64 4, ptr %146) #10
  br label %6796

6796:                                             ; preds = %6795
  br label %6797

6797:                                             ; preds = %6796
  call void @exit(i32 noundef 1) #12
  unreachable

6798:                                             ; No predecessors!
  br label %6799

6799:                                             ; preds = %6798
  br label %6800

6800:                                             ; preds = %6799, %6742
  br label %6801

6801:                                             ; preds = %6800
  br label %6802

6802:                                             ; preds = %6801
  br label %6803

6803:                                             ; preds = %6802
  %6804 = load i32, ptr @test_count, align 4, !tbaa !5
  %6805 = add nsw i32 %6804, 1
  store i32 %6805, ptr @test_count, align 4, !tbaa !5
  %6806 = load ptr, ptr %140, align 8, !tbaa !9
  %6807 = getelementptr inbounds %struct.s2n_connection, ptr %6806, i32 0, i32 52
  %6808 = getelementptr inbounds %struct.s2n_handshake, ptr %6807, i32 0, i32 12
  %6809 = load i32, ptr %6808, align 4, !tbaa !45
  %6810 = icmp eq i32 %6809, 2
  %6811 = zext i1 %6810 to i64
  %6812 = select i1 %6810, ptr @tls13_state_machine, ptr @state_machine
  %6813 = load ptr, ptr %140, align 8, !tbaa !9
  %6814 = getelementptr inbounds %struct.s2n_connection, ptr %6813, i32 0, i32 52
  %6815 = getelementptr inbounds %struct.s2n_handshake, ptr %6814, i32 0, i32 12
  %6816 = load i32, ptr %6815, align 4, !tbaa !45
  %6817 = icmp eq i32 %6816, 2
  %6818 = zext i1 %6817 to i64
  %6819 = select i1 %6817, ptr @tls13_handshakes, ptr @handshakes
  %6820 = load ptr, ptr %140, align 8, !tbaa !9
  %6821 = getelementptr inbounds %struct.s2n_connection, ptr %6820, i32 0, i32 52
  %6822 = getelementptr inbounds %struct.s2n_handshake, ptr %6821, i32 0, i32 6
  %6823 = load i32, ptr %6822, align 4, !tbaa !46
  %6824 = zext i32 %6823 to i64
  %6825 = getelementptr inbounds [32 x i32], ptr %6819, i64 %6824
  %6826 = load ptr, ptr %140, align 8, !tbaa !9
  %6827 = getelementptr inbounds %struct.s2n_connection, ptr %6826, i32 0, i32 52
  %6828 = getelementptr inbounds %struct.s2n_handshake, ptr %6827, i32 0, i32 7
  %6829 = load i32, ptr %6828, align 8, !tbaa !47
  %6830 = sext i32 %6829 to i64
  %6831 = getelementptr inbounds [32 x i32], ptr %6825, i64 0, i64 %6830
  %6832 = load i32, ptr %6831, align 4, !tbaa !5
  %6833 = zext i32 %6832 to i64
  %6834 = getelementptr inbounds %struct.s2n_handshake_action, ptr %6812, i64 %6833
  %6835 = getelementptr inbounds %struct.s2n_handshake_action, ptr %6834, i32 0, i32 1
  %6836 = load i8, ptr %6835, align 1, !tbaa !62
  %6837 = call i32 @s2n_test_write_header(ptr noundef %141, i8 noundef zeroext 22, i8 noundef zeroext %6836)
  %6838 = icmp eq i32 %6837, -1
  br i1 %6838, label %6839, label %6892

6839:                                             ; preds = %6803
  br label %6840

6840:                                             ; preds = %6839
  br label %6841

6841:                                             ; preds = %6840
  call void @llvm.lifetime.start.p0(i64 4, ptr %147) #10
  %6842 = call ptr @__errno_location() #11
  %6843 = load i32, ptr %6842, align 4, !tbaa !5
  store i32 %6843, ptr %147, align 4, !tbaa !5
  %6844 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6845 = call i32 @s2n_print_stacktrace(ptr noundef %6844)
  %6846 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6847 = trunc i8 %6846 to i1
  br i1 %6847, label %6848, label %6870

6848:                                             ; preds = %6841
  %6849 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6850 = call i32 @fileno(ptr noundef %6849) #10
  %6851 = call i32 @isatty(i32 noundef %6850) #10
  %6852 = icmp ne i32 %6851, 0
  br i1 %6852, label %6853, label %6870

6853:                                             ; preds = %6848
  %6854 = load i32, ptr %147, align 4, !tbaa !5
  %6855 = call ptr @__errno_location() #11
  store i32 %6854, ptr %6855, align 4, !tbaa !5
  %6856 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6857 = load i32, ptr @test_count, align 4, !tbaa !5
  %6858 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6859 = load i32, ptr %6858, align 4, !tbaa !5
  %6860 = call ptr @s2n_strerror(i32 noundef %6859, ptr noundef @.str.24)
  %6861 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6862 = load i32, ptr %6861, align 4, !tbaa !5
  %6863 = call ptr @s2n_strerror_debug(i32 noundef %6862, ptr noundef @.str.24)
  %6864 = call ptr @__errno_location() #11
  %6865 = load i32, ptr %6864, align 4, !tbaa !5
  %6866 = call ptr @strerror(i32 noundef %6865) #10
  %6867 = call ptr @__errno_location() #11
  %6868 = load i32, ptr %6867, align 4, !tbaa !5
  %6869 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6856, ptr noundef @.str.22, i32 noundef %6857, ptr noundef @.str.60, ptr noundef @.str.21, i32 noundef 410, ptr noundef %6860, ptr noundef %6863, ptr noundef %6866, i32 noundef %6868) #10
  br label %6887

6870:                                             ; preds = %6848, %6841
  %6871 = load i32, ptr %147, align 4, !tbaa !5
  %6872 = call ptr @__errno_location() #11
  store i32 %6871, ptr %6872, align 4, !tbaa !5
  %6873 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6874 = load i32, ptr @test_count, align 4, !tbaa !5
  %6875 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6876 = load i32, ptr %6875, align 4, !tbaa !5
  %6877 = call ptr @s2n_strerror(i32 noundef %6876, ptr noundef @.str.24)
  %6878 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6879 = load i32, ptr %6878, align 4, !tbaa !5
  %6880 = call ptr @s2n_strerror_debug(i32 noundef %6879, ptr noundef @.str.24)
  %6881 = call ptr @__errno_location() #11
  %6882 = load i32, ptr %6881, align 4, !tbaa !5
  %6883 = call ptr @strerror(i32 noundef %6882) #10
  %6884 = call ptr @__errno_location() #11
  %6885 = load i32, ptr %6884, align 4, !tbaa !5
  %6886 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6873, ptr noundef @.str.25, i32 noundef %6874, ptr noundef @.str.60, ptr noundef @.str.21, i32 noundef 410, ptr noundef %6877, ptr noundef %6880, ptr noundef %6883, i32 noundef %6885) #10
  br label %6887

6887:                                             ; preds = %6870, %6853
  call void @llvm.lifetime.end.p0(i64 4, ptr %147) #10
  br label %6888

6888:                                             ; preds = %6887
  br label %6889

6889:                                             ; preds = %6888
  call void @exit(i32 noundef 1) #12
  unreachable

6890:                                             ; No predecessors!
  br label %6891

6891:                                             ; preds = %6890
  br label %6892

6892:                                             ; preds = %6891, %6803
  br label %6893

6893:                                             ; preds = %6892
  br label %6894

6894:                                             ; preds = %6893
  br label %6895

6895:                                             ; preds = %6894
  br label %6896

6896:                                             ; preds = %6895
  br label %6897

6897:                                             ; preds = %6896
  %6898 = load i32, ptr @test_count, align 4, !tbaa !5
  %6899 = add nsw i32 %6898, 1
  store i32 %6899, ptr @test_count, align 4, !tbaa !5
  %6900 = load ptr, ptr %140, align 8, !tbaa !9
  %6901 = call i32 @s2n_handshake_read_io(ptr noundef %6900)
  %6902 = icmp eq i32 %6901, -1
  br i1 %6902, label %6956, label %6903

6903:                                             ; preds = %6897
  br label %6904

6904:                                             ; preds = %6903
  br label %6905

6905:                                             ; preds = %6904
  call void @llvm.lifetime.start.p0(i64 4, ptr %148) #10
  %6906 = call ptr @__errno_location() #11
  %6907 = load i32, ptr %6906, align 4, !tbaa !5
  store i32 %6907, ptr %148, align 4, !tbaa !5
  %6908 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6909 = call i32 @s2n_print_stacktrace(ptr noundef %6908)
  %6910 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6911 = trunc i8 %6910 to i1
  br i1 %6911, label %6912, label %6934

6912:                                             ; preds = %6905
  %6913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6914 = call i32 @fileno(ptr noundef %6913) #10
  %6915 = call i32 @isatty(i32 noundef %6914) #10
  %6916 = icmp ne i32 %6915, 0
  br i1 %6916, label %6917, label %6934

6917:                                             ; preds = %6912
  %6918 = load i32, ptr %148, align 4, !tbaa !5
  %6919 = call ptr @__errno_location() #11
  store i32 %6918, ptr %6919, align 4, !tbaa !5
  %6920 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6921 = load i32, ptr @test_count, align 4, !tbaa !5
  %6922 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6923 = load i32, ptr %6922, align 4, !tbaa !5
  %6924 = call ptr @s2n_strerror(i32 noundef %6923, ptr noundef @.str.24)
  %6925 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6926 = load i32, ptr %6925, align 4, !tbaa !5
  %6927 = call ptr @s2n_strerror_debug(i32 noundef %6926, ptr noundef @.str.24)
  %6928 = call ptr @__errno_location() #11
  %6929 = load i32, ptr %6928, align 4, !tbaa !5
  %6930 = call ptr @strerror(i32 noundef %6929) #10
  %6931 = call ptr @__errno_location() #11
  %6932 = load i32, ptr %6931, align 4, !tbaa !5
  %6933 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6920, ptr noundef @.str.22, i32 noundef %6921, ptr noundef @.str.46, ptr noundef @.str.21, i32 noundef 411, ptr noundef %6924, ptr noundef %6927, ptr noundef %6930, i32 noundef %6932) #10
  br label %6951

6934:                                             ; preds = %6912, %6905
  %6935 = load i32, ptr %148, align 4, !tbaa !5
  %6936 = call ptr @__errno_location() #11
  store i32 %6935, ptr %6936, align 4, !tbaa !5
  %6937 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6938 = load i32, ptr @test_count, align 4, !tbaa !5
  %6939 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6940 = load i32, ptr %6939, align 4, !tbaa !5
  %6941 = call ptr @s2n_strerror(i32 noundef %6940, ptr noundef @.str.24)
  %6942 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6943 = load i32, ptr %6942, align 4, !tbaa !5
  %6944 = call ptr @s2n_strerror_debug(i32 noundef %6943, ptr noundef @.str.24)
  %6945 = call ptr @__errno_location() #11
  %6946 = load i32, ptr %6945, align 4, !tbaa !5
  %6947 = call ptr @strerror(i32 noundef %6946) #10
  %6948 = call ptr @__errno_location() #11
  %6949 = load i32, ptr %6948, align 4, !tbaa !5
  %6950 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6937, ptr noundef @.str.25, i32 noundef %6938, ptr noundef @.str.46, ptr noundef @.str.21, i32 noundef 411, ptr noundef %6941, ptr noundef %6944, ptr noundef %6947, i32 noundef %6949) #10
  br label %6951

6951:                                             ; preds = %6934, %6917
  call void @llvm.lifetime.end.p0(i64 4, ptr %148) #10
  br label %6952

6952:                                             ; preds = %6951
  br label %6953

6953:                                             ; preds = %6952
  call void @exit(i32 noundef 1) #12
  unreachable

6954:                                             ; No predecessors!
  br label %6955

6955:                                             ; preds = %6954
  br label %6956

6956:                                             ; preds = %6955, %6897
  br label %6957

6957:                                             ; preds = %6956
  br label %6958

6958:                                             ; preds = %6957
  br label %6959

6959:                                             ; preds = %6958
  %6960 = load i32, ptr @test_count, align 4, !tbaa !5
  %6961 = add nsw i32 %6960, 1
  store i32 %6961, ptr @test_count, align 4, !tbaa !5
  %6962 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6963 = load i32, ptr %6962, align 4, !tbaa !5
  %6964 = icmp eq i32 %6963, 335544322
  br i1 %6964, label %7018, label %6965

6965:                                             ; preds = %6959
  br label %6966

6966:                                             ; preds = %6965
  br label %6967

6967:                                             ; preds = %6966
  call void @llvm.lifetime.start.p0(i64 4, ptr %149) #10
  %6968 = call ptr @__errno_location() #11
  %6969 = load i32, ptr %6968, align 4, !tbaa !5
  store i32 %6969, ptr %149, align 4, !tbaa !5
  %6970 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6971 = call i32 @s2n_print_stacktrace(ptr noundef %6970)
  %6972 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6973 = trunc i8 %6972 to i1
  br i1 %6973, label %6974, label %6996

6974:                                             ; preds = %6967
  %6975 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6976 = call i32 @fileno(ptr noundef %6975) #10
  %6977 = call i32 @isatty(i32 noundef %6976) #10
  %6978 = icmp ne i32 %6977, 0
  br i1 %6978, label %6979, label %6996

6979:                                             ; preds = %6974
  %6980 = load i32, ptr %149, align 4, !tbaa !5
  %6981 = call ptr @__errno_location() #11
  store i32 %6980, ptr %6981, align 4, !tbaa !5
  %6982 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6983 = load i32, ptr @test_count, align 4, !tbaa !5
  %6984 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6985 = load i32, ptr %6984, align 4, !tbaa !5
  %6986 = call ptr @s2n_strerror(i32 noundef %6985, ptr noundef @.str.24)
  %6987 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6988 = load i32, ptr %6987, align 4, !tbaa !5
  %6989 = call ptr @s2n_strerror_debug(i32 noundef %6988, ptr noundef @.str.24)
  %6990 = call ptr @__errno_location() #11
  %6991 = load i32, ptr %6990, align 4, !tbaa !5
  %6992 = call ptr @strerror(i32 noundef %6991) #10
  %6993 = call ptr @__errno_location() #11
  %6994 = load i32, ptr %6993, align 4, !tbaa !5
  %6995 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6982, ptr noundef @.str.22, i32 noundef %6983, ptr noundef @.str.47, ptr noundef @.str.21, i32 noundef 411, ptr noundef %6986, ptr noundef %6989, ptr noundef %6992, i32 noundef %6994) #10
  br label %7013

6996:                                             ; preds = %6974, %6967
  %6997 = load i32, ptr %149, align 4, !tbaa !5
  %6998 = call ptr @__errno_location() #11
  store i32 %6997, ptr %6998, align 4, !tbaa !5
  %6999 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7000 = load i32, ptr @test_count, align 4, !tbaa !5
  %7001 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7002 = load i32, ptr %7001, align 4, !tbaa !5
  %7003 = call ptr @s2n_strerror(i32 noundef %7002, ptr noundef @.str.24)
  %7004 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7005 = load i32, ptr %7004, align 4, !tbaa !5
  %7006 = call ptr @s2n_strerror_debug(i32 noundef %7005, ptr noundef @.str.24)
  %7007 = call ptr @__errno_location() #11
  %7008 = load i32, ptr %7007, align 4, !tbaa !5
  %7009 = call ptr @strerror(i32 noundef %7008) #10
  %7010 = call ptr @__errno_location() #11
  %7011 = load i32, ptr %7010, align 4, !tbaa !5
  %7012 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6999, ptr noundef @.str.25, i32 noundef %7000, ptr noundef @.str.47, ptr noundef @.str.21, i32 noundef 411, ptr noundef %7003, ptr noundef %7006, ptr noundef %7009, i32 noundef %7011) #10
  br label %7013

7013:                                             ; preds = %6996, %6979
  call void @llvm.lifetime.end.p0(i64 4, ptr %149) #10
  br label %7014

7014:                                             ; preds = %7013
  br label %7015

7015:                                             ; preds = %7014
  call void @exit(i32 noundef 1) #12
  unreachable

7016:                                             ; No predecessors!
  br label %7017

7017:                                             ; preds = %7016
  br label %7018

7018:                                             ; preds = %7017, %6959
  br label %7019

7019:                                             ; preds = %7018
  br label %7020

7020:                                             ; preds = %7019
  br label %7021

7021:                                             ; preds = %7020
  %7022 = load i32, ptr @test_count, align 4, !tbaa !5
  %7023 = add nsw i32 %7022, 1
  store i32 %7023, ptr @test_count, align 4, !tbaa !5
  %7024 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7025 = load i32, ptr %7024, align 4, !tbaa !5
  %7026 = call ptr @s2n_strerror_debug(i32 noundef %7025, ptr noundef @.str.24)
  %7027 = icmp eq ptr %7026, null
  br i1 %7027, label %7028, label %7081

7028:                                             ; preds = %7021
  br label %7029

7029:                                             ; preds = %7028
  br label %7030

7030:                                             ; preds = %7029
  call void @llvm.lifetime.start.p0(i64 4, ptr %150) #10
  %7031 = call ptr @__errno_location() #11
  %7032 = load i32, ptr %7031, align 4, !tbaa !5
  store i32 %7032, ptr %150, align 4, !tbaa !5
  %7033 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7034 = call i32 @s2n_print_stacktrace(ptr noundef %7033)
  %7035 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7036 = trunc i8 %7035 to i1
  br i1 %7036, label %7037, label %7059

7037:                                             ; preds = %7030
  %7038 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7039 = call i32 @fileno(ptr noundef %7038) #10
  %7040 = call i32 @isatty(i32 noundef %7039) #10
  %7041 = icmp ne i32 %7040, 0
  br i1 %7041, label %7042, label %7059

7042:                                             ; preds = %7037
  %7043 = load i32, ptr %150, align 4, !tbaa !5
  %7044 = call ptr @__errno_location() #11
  store i32 %7043, ptr %7044, align 4, !tbaa !5
  %7045 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7046 = load i32, ptr @test_count, align 4, !tbaa !5
  %7047 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7048 = load i32, ptr %7047, align 4, !tbaa !5
  %7049 = call ptr @s2n_strerror(i32 noundef %7048, ptr noundef @.str.24)
  %7050 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7051 = load i32, ptr %7050, align 4, !tbaa !5
  %7052 = call ptr @s2n_strerror_debug(i32 noundef %7051, ptr noundef @.str.24)
  %7053 = call ptr @__errno_location() #11
  %7054 = load i32, ptr %7053, align 4, !tbaa !5
  %7055 = call ptr @strerror(i32 noundef %7054) #10
  %7056 = call ptr @__errno_location() #11
  %7057 = load i32, ptr %7056, align 4, !tbaa !5
  %7058 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7045, ptr noundef @.str.22, i32 noundef %7046, ptr noundef @.str.48, ptr noundef @.str.21, i32 noundef 411, ptr noundef %7049, ptr noundef %7052, ptr noundef %7055, i32 noundef %7057) #10
  br label %7076

7059:                                             ; preds = %7037, %7030
  %7060 = load i32, ptr %150, align 4, !tbaa !5
  %7061 = call ptr @__errno_location() #11
  store i32 %7060, ptr %7061, align 4, !tbaa !5
  %7062 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7063 = load i32, ptr @test_count, align 4, !tbaa !5
  %7064 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7065 = load i32, ptr %7064, align 4, !tbaa !5
  %7066 = call ptr @s2n_strerror(i32 noundef %7065, ptr noundef @.str.24)
  %7067 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7068 = load i32, ptr %7067, align 4, !tbaa !5
  %7069 = call ptr @s2n_strerror_debug(i32 noundef %7068, ptr noundef @.str.24)
  %7070 = call ptr @__errno_location() #11
  %7071 = load i32, ptr %7070, align 4, !tbaa !5
  %7072 = call ptr @strerror(i32 noundef %7071) #10
  %7073 = call ptr @__errno_location() #11
  %7074 = load i32, ptr %7073, align 4, !tbaa !5
  %7075 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7062, ptr noundef @.str.25, i32 noundef %7063, ptr noundef @.str.48, ptr noundef @.str.21, i32 noundef 411, ptr noundef %7066, ptr noundef %7069, ptr noundef %7072, i32 noundef %7074) #10
  br label %7076

7076:                                             ; preds = %7059, %7042
  call void @llvm.lifetime.end.p0(i64 4, ptr %150) #10
  br label %7077

7077:                                             ; preds = %7076
  br label %7078

7078:                                             ; preds = %7077
  call void @exit(i32 noundef 1) #12
  unreachable

7079:                                             ; No predecessors!
  br label %7080

7080:                                             ; preds = %7079
  br label %7081

7081:                                             ; preds = %7080, %7021
  br label %7082

7082:                                             ; preds = %7081
  br label %7083

7083:                                             ; preds = %7082
  br label %7084

7084:                                             ; preds = %7083
  br label %7085

7085:                                             ; preds = %7084
  br label %7086

7086:                                             ; preds = %7085
  %7087 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %7087, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %7088 = call ptr @__errno_location() #11
  store i32 0, ptr %7088, align 4, !tbaa !5
  br label %7089

7089:                                             ; preds = %7086
  br label %7090

7090:                                             ; preds = %7089
  br label %7091

7091:                                             ; preds = %7090
  br label %7092

7092:                                             ; preds = %7091
  br label %7093

7093:                                             ; preds = %7092
  %7094 = load i32, ptr @test_count, align 4, !tbaa !5
  %7095 = add nsw i32 %7094, 1
  store i32 %7095, ptr @test_count, align 4, !tbaa !5
  %7096 = load ptr, ptr %140, align 8, !tbaa !9
  %7097 = getelementptr inbounds %struct.s2n_connection, ptr %7096, i32 0, i32 52
  %7098 = getelementptr inbounds %struct.s2n_handshake, ptr %7097, i32 0, i32 7
  %7099 = load i32, ptr %7098, align 8, !tbaa !47
  %7100 = load i8, ptr %144, align 1, !tbaa !64
  %7101 = zext i8 %7100 to i32
  %7102 = icmp eq i32 %7099, %7101
  br i1 %7102, label %7156, label %7103

7103:                                             ; preds = %7093
  br label %7104

7104:                                             ; preds = %7103
  br label %7105

7105:                                             ; preds = %7104
  call void @llvm.lifetime.start.p0(i64 4, ptr %151) #10
  %7106 = call ptr @__errno_location() #11
  %7107 = load i32, ptr %7106, align 4, !tbaa !5
  store i32 %7107, ptr %151, align 4, !tbaa !5
  %7108 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7109 = call i32 @s2n_print_stacktrace(ptr noundef %7108)
  %7110 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7111 = trunc i8 %7110 to i1
  br i1 %7111, label %7112, label %7134

7112:                                             ; preds = %7105
  %7113 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7114 = call i32 @fileno(ptr noundef %7113) #10
  %7115 = call i32 @isatty(i32 noundef %7114) #10
  %7116 = icmp ne i32 %7115, 0
  br i1 %7116, label %7117, label %7134

7117:                                             ; preds = %7112
  %7118 = load i32, ptr %151, align 4, !tbaa !5
  %7119 = call ptr @__errno_location() #11
  store i32 %7118, ptr %7119, align 4, !tbaa !5
  %7120 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7121 = load i32, ptr @test_count, align 4, !tbaa !5
  %7122 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7123 = load i32, ptr %7122, align 4, !tbaa !5
  %7124 = call ptr @s2n_strerror(i32 noundef %7123, ptr noundef @.str.24)
  %7125 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7126 = load i32, ptr %7125, align 4, !tbaa !5
  %7127 = call ptr @s2n_strerror_debug(i32 noundef %7126, ptr noundef @.str.24)
  %7128 = call ptr @__errno_location() #11
  %7129 = load i32, ptr %7128, align 4, !tbaa !5
  %7130 = call ptr @strerror(i32 noundef %7129) #10
  %7131 = call ptr @__errno_location() #11
  %7132 = load i32, ptr %7131, align 4, !tbaa !5
  %7133 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7120, ptr noundef @.str.22, i32 noundef %7121, ptr noundef @.str.61, ptr noundef @.str.21, i32 noundef 413, ptr noundef %7124, ptr noundef %7127, ptr noundef %7130, i32 noundef %7132) #10
  br label %7151

7134:                                             ; preds = %7112, %7105
  %7135 = load i32, ptr %151, align 4, !tbaa !5
  %7136 = call ptr @__errno_location() #11
  store i32 %7135, ptr %7136, align 4, !tbaa !5
  %7137 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7138 = load i32, ptr @test_count, align 4, !tbaa !5
  %7139 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7140 = load i32, ptr %7139, align 4, !tbaa !5
  %7141 = call ptr @s2n_strerror(i32 noundef %7140, ptr noundef @.str.24)
  %7142 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7143 = load i32, ptr %7142, align 4, !tbaa !5
  %7144 = call ptr @s2n_strerror_debug(i32 noundef %7143, ptr noundef @.str.24)
  %7145 = call ptr @__errno_location() #11
  %7146 = load i32, ptr %7145, align 4, !tbaa !5
  %7147 = call ptr @strerror(i32 noundef %7146) #10
  %7148 = call ptr @__errno_location() #11
  %7149 = load i32, ptr %7148, align 4, !tbaa !5
  %7150 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7137, ptr noundef @.str.25, i32 noundef %7138, ptr noundef @.str.61, ptr noundef @.str.21, i32 noundef 413, ptr noundef %7141, ptr noundef %7144, ptr noundef %7147, i32 noundef %7149) #10
  br label %7151

7151:                                             ; preds = %7134, %7117
  call void @llvm.lifetime.end.p0(i64 4, ptr %151) #10
  br label %7152

7152:                                             ; preds = %7151
  br label %7153

7153:                                             ; preds = %7152
  call void @exit(i32 noundef 1) #12
  unreachable

7154:                                             ; No predecessors!
  br label %7155

7155:                                             ; preds = %7154
  br label %7156

7156:                                             ; preds = %7155, %7093
  br label %7157

7157:                                             ; preds = %7156
  br label %7158

7158:                                             ; preds = %7157
  br label %7159

7159:                                             ; preds = %7158
  %7160 = load i32, ptr @test_count, align 4, !tbaa !5
  %7161 = add nsw i32 %7160, 1
  store i32 %7161, ptr @test_count, align 4, !tbaa !5
  %7162 = load i32, ptr @unexpected_handler_called, align 4, !tbaa !5
  %7163 = icmp ne i32 %7162, 0
  br i1 %7163, label %7164, label %7217

7164:                                             ; preds = %7159
  br label %7165

7165:                                             ; preds = %7164
  br label %7166

7166:                                             ; preds = %7165
  call void @llvm.lifetime.start.p0(i64 4, ptr %152) #10
  %7167 = call ptr @__errno_location() #11
  %7168 = load i32, ptr %7167, align 4, !tbaa !5
  store i32 %7168, ptr %152, align 4, !tbaa !5
  %7169 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7170 = call i32 @s2n_print_stacktrace(ptr noundef %7169)
  %7171 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7172 = trunc i8 %7171 to i1
  br i1 %7172, label %7173, label %7195

7173:                                             ; preds = %7166
  %7174 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7175 = call i32 @fileno(ptr noundef %7174) #10
  %7176 = call i32 @isatty(i32 noundef %7175) #10
  %7177 = icmp ne i32 %7176, 0
  br i1 %7177, label %7178, label %7195

7178:                                             ; preds = %7173
  %7179 = load i32, ptr %152, align 4, !tbaa !5
  %7180 = call ptr @__errno_location() #11
  store i32 %7179, ptr %7180, align 4, !tbaa !5
  %7181 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7182 = load i32, ptr @test_count, align 4, !tbaa !5
  %7183 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7184 = load i32, ptr %7183, align 4, !tbaa !5
  %7185 = call ptr @s2n_strerror(i32 noundef %7184, ptr noundef @.str.24)
  %7186 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7187 = load i32, ptr %7186, align 4, !tbaa !5
  %7188 = call ptr @s2n_strerror_debug(i32 noundef %7187, ptr noundef @.str.24)
  %7189 = call ptr @__errno_location() #11
  %7190 = load i32, ptr %7189, align 4, !tbaa !5
  %7191 = call ptr @strerror(i32 noundef %7190) #10
  %7192 = call ptr @__errno_location() #11
  %7193 = load i32, ptr %7192, align 4, !tbaa !5
  %7194 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7181, ptr noundef @.str.22, i32 noundef %7182, ptr noundef @.str.45, ptr noundef @.str.21, i32 noundef 414, ptr noundef %7185, ptr noundef %7188, ptr noundef %7191, i32 noundef %7193) #10
  br label %7212

7195:                                             ; preds = %7173, %7166
  %7196 = load i32, ptr %152, align 4, !tbaa !5
  %7197 = call ptr @__errno_location() #11
  store i32 %7196, ptr %7197, align 4, !tbaa !5
  %7198 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7199 = load i32, ptr @test_count, align 4, !tbaa !5
  %7200 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7201 = load i32, ptr %7200, align 4, !tbaa !5
  %7202 = call ptr @s2n_strerror(i32 noundef %7201, ptr noundef @.str.24)
  %7203 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7204 = load i32, ptr %7203, align 4, !tbaa !5
  %7205 = call ptr @s2n_strerror_debug(i32 noundef %7204, ptr noundef @.str.24)
  %7206 = call ptr @__errno_location() #11
  %7207 = load i32, ptr %7206, align 4, !tbaa !5
  %7208 = call ptr @strerror(i32 noundef %7207) #10
  %7209 = call ptr @__errno_location() #11
  %7210 = load i32, ptr %7209, align 4, !tbaa !5
  %7211 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7198, ptr noundef @.str.25, i32 noundef %7199, ptr noundef @.str.45, ptr noundef @.str.21, i32 noundef 414, ptr noundef %7202, ptr noundef %7205, ptr noundef %7208, i32 noundef %7210) #10
  br label %7212

7212:                                             ; preds = %7195, %7178
  call void @llvm.lifetime.end.p0(i64 4, ptr %152) #10
  br label %7213

7213:                                             ; preds = %7212
  br label %7214

7214:                                             ; preds = %7213
  call void @exit(i32 noundef 1) #12
  unreachable

7215:                                             ; No predecessors!
  br label %7216

7216:                                             ; preds = %7215
  br label %7217

7217:                                             ; preds = %7216, %7159
  br label %7218

7218:                                             ; preds = %7217
  br label %7219

7219:                                             ; preds = %7218
  br label %7220

7220:                                             ; preds = %7219
  %7221 = load i32, ptr @test_count, align 4, !tbaa !5
  %7222 = add nsw i32 %7221, 1
  store i32 %7222, ptr @test_count, align 4, !tbaa !5
  %7223 = load i32, ptr @expected_handler_called, align 4, !tbaa !5
  %7224 = icmp ne i32 %7223, 0
  br i1 %7224, label %7225, label %7278

7225:                                             ; preds = %7220
  br label %7226

7226:                                             ; preds = %7225
  br label %7227

7227:                                             ; preds = %7226
  call void @llvm.lifetime.start.p0(i64 4, ptr %153) #10
  %7228 = call ptr @__errno_location() #11
  %7229 = load i32, ptr %7228, align 4, !tbaa !5
  store i32 %7229, ptr %153, align 4, !tbaa !5
  %7230 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7231 = call i32 @s2n_print_stacktrace(ptr noundef %7230)
  %7232 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7233 = trunc i8 %7232 to i1
  br i1 %7233, label %7234, label %7256

7234:                                             ; preds = %7227
  %7235 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7236 = call i32 @fileno(ptr noundef %7235) #10
  %7237 = call i32 @isatty(i32 noundef %7236) #10
  %7238 = icmp ne i32 %7237, 0
  br i1 %7238, label %7239, label %7256

7239:                                             ; preds = %7234
  %7240 = load i32, ptr %153, align 4, !tbaa !5
  %7241 = call ptr @__errno_location() #11
  store i32 %7240, ptr %7241, align 4, !tbaa !5
  %7242 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7243 = load i32, ptr @test_count, align 4, !tbaa !5
  %7244 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7245 = load i32, ptr %7244, align 4, !tbaa !5
  %7246 = call ptr @s2n_strerror(i32 noundef %7245, ptr noundef @.str.24)
  %7247 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7248 = load i32, ptr %7247, align 4, !tbaa !5
  %7249 = call ptr @s2n_strerror_debug(i32 noundef %7248, ptr noundef @.str.24)
  %7250 = call ptr @__errno_location() #11
  %7251 = load i32, ptr %7250, align 4, !tbaa !5
  %7252 = call ptr @strerror(i32 noundef %7251) #10
  %7253 = call ptr @__errno_location() #11
  %7254 = load i32, ptr %7253, align 4, !tbaa !5
  %7255 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7242, ptr noundef @.str.22, i32 noundef %7243, ptr noundef @.str.49, ptr noundef @.str.21, i32 noundef 415, ptr noundef %7246, ptr noundef %7249, ptr noundef %7252, i32 noundef %7254) #10
  br label %7273

7256:                                             ; preds = %7234, %7227
  %7257 = load i32, ptr %153, align 4, !tbaa !5
  %7258 = call ptr @__errno_location() #11
  store i32 %7257, ptr %7258, align 4, !tbaa !5
  %7259 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7260 = load i32, ptr @test_count, align 4, !tbaa !5
  %7261 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7262 = load i32, ptr %7261, align 4, !tbaa !5
  %7263 = call ptr @s2n_strerror(i32 noundef %7262, ptr noundef @.str.24)
  %7264 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7265 = load i32, ptr %7264, align 4, !tbaa !5
  %7266 = call ptr @s2n_strerror_debug(i32 noundef %7265, ptr noundef @.str.24)
  %7267 = call ptr @__errno_location() #11
  %7268 = load i32, ptr %7267, align 4, !tbaa !5
  %7269 = call ptr @strerror(i32 noundef %7268) #10
  %7270 = call ptr @__errno_location() #11
  %7271 = load i32, ptr %7270, align 4, !tbaa !5
  %7272 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7259, ptr noundef @.str.25, i32 noundef %7260, ptr noundef @.str.49, ptr noundef @.str.21, i32 noundef 415, ptr noundef %7263, ptr noundef %7266, ptr noundef %7269, i32 noundef %7271) #10
  br label %7273

7273:                                             ; preds = %7256, %7239
  call void @llvm.lifetime.end.p0(i64 4, ptr %153) #10
  br label %7274

7274:                                             ; preds = %7273
  br label %7275

7275:                                             ; preds = %7274
  call void @exit(i32 noundef 1) #12
  unreachable

7276:                                             ; No predecessors!
  br label %7277

7277:                                             ; preds = %7276
  br label %7278

7278:                                             ; preds = %7277, %7220
  br label %7279

7279:                                             ; preds = %7278
  br label %7280

7280:                                             ; preds = %7279
  br label %7281

7281:                                             ; preds = %7280
  %7282 = load i32, ptr @test_count, align 4, !tbaa !5
  %7283 = add nsw i32 %7282, 1
  store i32 %7283, ptr @test_count, align 4, !tbaa !5
  %7284 = call i32 @s2n_stuffer_free(ptr noundef %141)
  %7285 = icmp eq i32 %7284, -1
  br i1 %7285, label %7286, label %7339

7286:                                             ; preds = %7281
  br label %7287

7287:                                             ; preds = %7286
  br label %7288

7288:                                             ; preds = %7287
  call void @llvm.lifetime.start.p0(i64 4, ptr %154) #10
  %7289 = call ptr @__errno_location() #11
  %7290 = load i32, ptr %7289, align 4, !tbaa !5
  store i32 %7290, ptr %154, align 4, !tbaa !5
  %7291 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7292 = call i32 @s2n_print_stacktrace(ptr noundef %7291)
  %7293 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7294 = trunc i8 %7293 to i1
  br i1 %7294, label %7295, label %7317

7295:                                             ; preds = %7288
  %7296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7297 = call i32 @fileno(ptr noundef %7296) #10
  %7298 = call i32 @isatty(i32 noundef %7297) #10
  %7299 = icmp ne i32 %7298, 0
  br i1 %7299, label %7300, label %7317

7300:                                             ; preds = %7295
  %7301 = load i32, ptr %154, align 4, !tbaa !5
  %7302 = call ptr @__errno_location() #11
  store i32 %7301, ptr %7302, align 4, !tbaa !5
  %7303 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7304 = load i32, ptr @test_count, align 4, !tbaa !5
  %7305 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7306 = load i32, ptr %7305, align 4, !tbaa !5
  %7307 = call ptr @s2n_strerror(i32 noundef %7306, ptr noundef @.str.24)
  %7308 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7309 = load i32, ptr %7308, align 4, !tbaa !5
  %7310 = call ptr @s2n_strerror_debug(i32 noundef %7309, ptr noundef @.str.24)
  %7311 = call ptr @__errno_location() #11
  %7312 = load i32, ptr %7311, align 4, !tbaa !5
  %7313 = call ptr @strerror(i32 noundef %7312) #10
  %7314 = call ptr @__errno_location() #11
  %7315 = load i32, ptr %7314, align 4, !tbaa !5
  %7316 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7303, ptr noundef @.str.22, i32 noundef %7304, ptr noundef @.str.51, ptr noundef @.str.21, i32 noundef 417, ptr noundef %7307, ptr noundef %7310, ptr noundef %7313, i32 noundef %7315) #10
  br label %7334

7317:                                             ; preds = %7295, %7288
  %7318 = load i32, ptr %154, align 4, !tbaa !5
  %7319 = call ptr @__errno_location() #11
  store i32 %7318, ptr %7319, align 4, !tbaa !5
  %7320 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7321 = load i32, ptr @test_count, align 4, !tbaa !5
  %7322 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7323 = load i32, ptr %7322, align 4, !tbaa !5
  %7324 = call ptr @s2n_strerror(i32 noundef %7323, ptr noundef @.str.24)
  %7325 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7326 = load i32, ptr %7325, align 4, !tbaa !5
  %7327 = call ptr @s2n_strerror_debug(i32 noundef %7326, ptr noundef @.str.24)
  %7328 = call ptr @__errno_location() #11
  %7329 = load i32, ptr %7328, align 4, !tbaa !5
  %7330 = call ptr @strerror(i32 noundef %7329) #10
  %7331 = call ptr @__errno_location() #11
  %7332 = load i32, ptr %7331, align 4, !tbaa !5
  %7333 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7320, ptr noundef @.str.25, i32 noundef %7321, ptr noundef @.str.51, ptr noundef @.str.21, i32 noundef 417, ptr noundef %7324, ptr noundef %7327, ptr noundef %7330, i32 noundef %7332) #10
  br label %7334

7334:                                             ; preds = %7317, %7300
  call void @llvm.lifetime.end.p0(i64 4, ptr %154) #10
  br label %7335

7335:                                             ; preds = %7334
  br label %7336

7336:                                             ; preds = %7335
  call void @exit(i32 noundef 1) #12
  unreachable

7337:                                             ; No predecessors!
  br label %7338

7338:                                             ; preds = %7337
  br label %7339

7339:                                             ; preds = %7338, %7281
  br label %7340

7340:                                             ; preds = %7339
  br label %7341

7341:                                             ; preds = %7340
  br label %7342

7342:                                             ; preds = %7341
  %7343 = load i32, ptr @test_count, align 4, !tbaa !5
  %7344 = add nsw i32 %7343, 1
  store i32 %7344, ptr @test_count, align 4, !tbaa !5
  %7345 = load ptr, ptr %140, align 8, !tbaa !9
  %7346 = call i32 @s2n_connection_free(ptr noundef %7345)
  %7347 = icmp eq i32 %7346, -1
  br i1 %7347, label %7348, label %7401

7348:                                             ; preds = %7342
  br label %7349

7349:                                             ; preds = %7348
  br label %7350

7350:                                             ; preds = %7349
  call void @llvm.lifetime.start.p0(i64 4, ptr %155) #10
  %7351 = call ptr @__errno_location() #11
  %7352 = load i32, ptr %7351, align 4, !tbaa !5
  store i32 %7352, ptr %155, align 4, !tbaa !5
  %7353 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7354 = call i32 @s2n_print_stacktrace(ptr noundef %7353)
  %7355 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7356 = trunc i8 %7355 to i1
  br i1 %7356, label %7357, label %7379

7357:                                             ; preds = %7350
  %7358 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7359 = call i32 @fileno(ptr noundef %7358) #10
  %7360 = call i32 @isatty(i32 noundef %7359) #10
  %7361 = icmp ne i32 %7360, 0
  br i1 %7361, label %7362, label %7379

7362:                                             ; preds = %7357
  %7363 = load i32, ptr %155, align 4, !tbaa !5
  %7364 = call ptr @__errno_location() #11
  store i32 %7363, ptr %7364, align 4, !tbaa !5
  %7365 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7366 = load i32, ptr @test_count, align 4, !tbaa !5
  %7367 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7368 = load i32, ptr %7367, align 4, !tbaa !5
  %7369 = call ptr @s2n_strerror(i32 noundef %7368, ptr noundef @.str.24)
  %7370 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7371 = load i32, ptr %7370, align 4, !tbaa !5
  %7372 = call ptr @s2n_strerror_debug(i32 noundef %7371, ptr noundef @.str.24)
  %7373 = call ptr @__errno_location() #11
  %7374 = load i32, ptr %7373, align 4, !tbaa !5
  %7375 = call ptr @strerror(i32 noundef %7374) #10
  %7376 = call ptr @__errno_location() #11
  %7377 = load i32, ptr %7376, align 4, !tbaa !5
  %7378 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7365, ptr noundef @.str.22, i32 noundef %7366, ptr noundef @.str.33, ptr noundef @.str.21, i32 noundef 418, ptr noundef %7369, ptr noundef %7372, ptr noundef %7375, i32 noundef %7377) #10
  br label %7396

7379:                                             ; preds = %7357, %7350
  %7380 = load i32, ptr %155, align 4, !tbaa !5
  %7381 = call ptr @__errno_location() #11
  store i32 %7380, ptr %7381, align 4, !tbaa !5
  %7382 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7383 = load i32, ptr @test_count, align 4, !tbaa !5
  %7384 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7385 = load i32, ptr %7384, align 4, !tbaa !5
  %7386 = call ptr @s2n_strerror(i32 noundef %7385, ptr noundef @.str.24)
  %7387 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7388 = load i32, ptr %7387, align 4, !tbaa !5
  %7389 = call ptr @s2n_strerror_debug(i32 noundef %7388, ptr noundef @.str.24)
  %7390 = call ptr @__errno_location() #11
  %7391 = load i32, ptr %7390, align 4, !tbaa !5
  %7392 = call ptr @strerror(i32 noundef %7391) #10
  %7393 = call ptr @__errno_location() #11
  %7394 = load i32, ptr %7393, align 4, !tbaa !5
  %7395 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7382, ptr noundef @.str.25, i32 noundef %7383, ptr noundef @.str.33, ptr noundef @.str.21, i32 noundef 418, ptr noundef %7386, ptr noundef %7389, ptr noundef %7392, i32 noundef %7394) #10
  br label %7396

7396:                                             ; preds = %7379, %7362
  call void @llvm.lifetime.end.p0(i64 4, ptr %155) #10
  br label %7397

7397:                                             ; preds = %7396
  br label %7398

7398:                                             ; preds = %7397
  call void @exit(i32 noundef 1) #12
  unreachable

7399:                                             ; No predecessors!
  br label %7400

7400:                                             ; preds = %7399
  br label %7401

7401:                                             ; preds = %7400, %7342
  br label %7402

7402:                                             ; preds = %7401
  br label %7403

7403:                                             ; preds = %7402
  %7404 = load i8, ptr %139, align 1, !tbaa !64
  store i8 %7404, ptr getelementptr inbounds (%struct.s2n_handshake_action, ptr getelementptr inbounds ([21 x %struct.s2n_handshake_action], ptr @state_machine, i64 0, i64 14), i32 0, i32 1), align 1, !tbaa !62
  call void @llvm.lifetime.end.p0(i64 1, ptr %144) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr %141) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %140) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %139) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %156) #10
  store i64 0, ptr %156, align 8, !tbaa !59
  call void @llvm.lifetime.start.p0(i64 8, ptr %157) #10
  store i64 0, ptr %157, align 8, !tbaa !59
  br label %7405

7405:                                             ; preds = %7416, %7403
  %7406 = load i64, ptr %157, align 8, !tbaa !59
  %7407 = icmp ult i64 %7406, 8
  br i1 %7407, label %7409, label %7408

7408:                                             ; preds = %7405
  store i32 723, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %157) #10
  br label %7419

7409:                                             ; preds = %7405
  %7410 = load i64, ptr %157, align 8, !tbaa !59
  %7411 = getelementptr inbounds [8 x ptr], ptr @tls12_handshake_type_names, i64 0, i64 %7410
  %7412 = load ptr, ptr %7411, align 8, !tbaa !9
  %7413 = call i64 @strlen(ptr noundef %7412) #13
  %7414 = load i64, ptr %156, align 8, !tbaa !59
  %7415 = add i64 %7414, %7413
  store i64 %7415, ptr %156, align 8, !tbaa !59
  br label %7416

7416:                                             ; preds = %7409
  %7417 = load i64, ptr %157, align 8, !tbaa !59
  %7418 = add i64 %7417, 1
  store i64 %7418, ptr %157, align 8, !tbaa !59
  br label %7405, !llvm.loop !65

7419:                                             ; preds = %7408
  %7420 = load i64, ptr %156, align 8, !tbaa !59
  %7421 = icmp ugt i64 %7420, 142
  br i1 %7421, label %7422, label %7478

7422:                                             ; preds = %7419
  %7423 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7424 = load i64, ptr %156, align 8, !tbaa !59
  %7425 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7423, ptr noundef @.str.62, i64 noundef %7424) #10
  br label %7426

7426:                                             ; preds = %7422
  br label %7427

7427:                                             ; preds = %7426
  call void @llvm.lifetime.start.p0(i64 4, ptr %158) #10
  %7428 = call ptr @__errno_location() #11
  %7429 = load i32, ptr %7428, align 4, !tbaa !5
  store i32 %7429, ptr %158, align 4, !tbaa !5
  %7430 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7431 = call i32 @s2n_print_stacktrace(ptr noundef %7430)
  %7432 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7433 = trunc i8 %7432 to i1
  br i1 %7433, label %7434, label %7456

7434:                                             ; preds = %7427
  %7435 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7436 = call i32 @fileno(ptr noundef %7435) #10
  %7437 = call i32 @isatty(i32 noundef %7436) #10
  %7438 = icmp ne i32 %7437, 0
  br i1 %7438, label %7439, label %7456

7439:                                             ; preds = %7434
  %7440 = load i32, ptr %158, align 4, !tbaa !5
  %7441 = call ptr @__errno_location() #11
  store i32 %7440, ptr %7441, align 4, !tbaa !5
  %7442 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7443 = load i32, ptr @test_count, align 4, !tbaa !5
  %7444 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7445 = load i32, ptr %7444, align 4, !tbaa !5
  %7446 = call ptr @s2n_strerror(i32 noundef %7445, ptr noundef @.str.24)
  %7447 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7448 = load i32, ptr %7447, align 4, !tbaa !5
  %7449 = call ptr @s2n_strerror_debug(i32 noundef %7448, ptr noundef @.str.24)
  %7450 = call ptr @__errno_location() #11
  %7451 = load i32, ptr %7450, align 4, !tbaa !5
  %7452 = call ptr @strerror(i32 noundef %7451) #10
  %7453 = call ptr @__errno_location() #11
  %7454 = load i32, ptr %7453, align 4, !tbaa !5
  %7455 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7442, ptr noundef @.str.22, i32 noundef %7443, ptr noundef @.str.63, ptr noundef @.str.21, i32 noundef 432, ptr noundef %7446, ptr noundef %7449, ptr noundef %7452, i32 noundef %7454) #10
  br label %7473

7456:                                             ; preds = %7434, %7427
  %7457 = load i32, ptr %158, align 4, !tbaa !5
  %7458 = call ptr @__errno_location() #11
  store i32 %7457, ptr %7458, align 4, !tbaa !5
  %7459 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7460 = load i32, ptr @test_count, align 4, !tbaa !5
  %7461 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7462 = load i32, ptr %7461, align 4, !tbaa !5
  %7463 = call ptr @s2n_strerror(i32 noundef %7462, ptr noundef @.str.24)
  %7464 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7465 = load i32, ptr %7464, align 4, !tbaa !5
  %7466 = call ptr @s2n_strerror_debug(i32 noundef %7465, ptr noundef @.str.24)
  %7467 = call ptr @__errno_location() #11
  %7468 = load i32, ptr %7467, align 4, !tbaa !5
  %7469 = call ptr @strerror(i32 noundef %7468) #10
  %7470 = call ptr @__errno_location() #11
  %7471 = load i32, ptr %7470, align 4, !tbaa !5
  %7472 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7459, ptr noundef @.str.25, i32 noundef %7460, ptr noundef @.str.63, ptr noundef @.str.21, i32 noundef 432, ptr noundef %7463, ptr noundef %7466, ptr noundef %7469, i32 noundef %7471) #10
  br label %7473

7473:                                             ; preds = %7456, %7439
  call void @llvm.lifetime.end.p0(i64 4, ptr %158) #10
  br label %7474

7474:                                             ; preds = %7473
  br label %7475

7475:                                             ; preds = %7474
  call void @exit(i32 noundef 1) #12
  unreachable

7476:                                             ; No predecessors!
  br label %7477

7477:                                             ; preds = %7476
  br label %7478

7478:                                             ; preds = %7477, %7419
  call void @llvm.lifetime.end.p0(i64 8, ptr %156) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %159) #10
  %7479 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %7479, ptr %159, align 8, !tbaa !9
  %7480 = load ptr, ptr %159, align 8, !tbaa !9
  %7481 = getelementptr inbounds %struct.s2n_connection, ptr %7480, i32 0, i32 23
  store i8 33, ptr %7481, align 4, !tbaa !19
  %7482 = load ptr, ptr %159, align 8, !tbaa !9
  %7483 = getelementptr inbounds %struct.s2n_connection, ptr %7482, i32 0, i32 52
  %7484 = getelementptr inbounds %struct.s2n_handshake, ptr %7483, i32 0, i32 6
  store i32 0, ptr %7484, align 4, !tbaa !46
  br label %7485

7485:                                             ; preds = %7478
  %7486 = load i32, ptr @test_count, align 4, !tbaa !5
  %7487 = add nsw i32 %7486, 1
  store i32 %7487, ptr @test_count, align 4, !tbaa !5
  %7488 = load ptr, ptr %159, align 8, !tbaa !9
  %7489 = call ptr @s2n_connection_get_handshake_type_name(ptr noundef %7488)
  %7490 = call i32 @strcmp(ptr noundef @.str.11, ptr noundef %7489) #13
  %7491 = icmp eq i32 %7490, 0
  br i1 %7491, label %7545, label %7492

7492:                                             ; preds = %7485
  br label %7493

7493:                                             ; preds = %7492
  br label %7494

7494:                                             ; preds = %7493
  call void @llvm.lifetime.start.p0(i64 4, ptr %160) #10
  %7495 = call ptr @__errno_location() #11
  %7496 = load i32, ptr %7495, align 4, !tbaa !5
  store i32 %7496, ptr %160, align 4, !tbaa !5
  %7497 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7498 = call i32 @s2n_print_stacktrace(ptr noundef %7497)
  %7499 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7500 = trunc i8 %7499 to i1
  br i1 %7500, label %7501, label %7523

7501:                                             ; preds = %7494
  %7502 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7503 = call i32 @fileno(ptr noundef %7502) #10
  %7504 = call i32 @isatty(i32 noundef %7503) #10
  %7505 = icmp ne i32 %7504, 0
  br i1 %7505, label %7506, label %7523

7506:                                             ; preds = %7501
  %7507 = load i32, ptr %160, align 4, !tbaa !5
  %7508 = call ptr @__errno_location() #11
  store i32 %7507, ptr %7508, align 4, !tbaa !5
  %7509 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7510 = load i32, ptr @test_count, align 4, !tbaa !5
  %7511 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7512 = load i32, ptr %7511, align 4, !tbaa !5
  %7513 = call ptr @s2n_strerror(i32 noundef %7512, ptr noundef @.str.24)
  %7514 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7515 = load i32, ptr %7514, align 4, !tbaa !5
  %7516 = call ptr @s2n_strerror_debug(i32 noundef %7515, ptr noundef @.str.24)
  %7517 = call ptr @__errno_location() #11
  %7518 = load i32, ptr %7517, align 4, !tbaa !5
  %7519 = call ptr @strerror(i32 noundef %7518) #10
  %7520 = call ptr @__errno_location() #11
  %7521 = load i32, ptr %7520, align 4, !tbaa !5
  %7522 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7509, ptr noundef @.str.22, i32 noundef %7510, ptr noundef @.str.64, ptr noundef @.str.21, i32 noundef 442, ptr noundef %7513, ptr noundef %7516, ptr noundef %7519, i32 noundef %7521) #10
  br label %7540

7523:                                             ; preds = %7501, %7494
  %7524 = load i32, ptr %160, align 4, !tbaa !5
  %7525 = call ptr @__errno_location() #11
  store i32 %7524, ptr %7525, align 4, !tbaa !5
  %7526 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7527 = load i32, ptr @test_count, align 4, !tbaa !5
  %7528 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7529 = load i32, ptr %7528, align 4, !tbaa !5
  %7530 = call ptr @s2n_strerror(i32 noundef %7529, ptr noundef @.str.24)
  %7531 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7532 = load i32, ptr %7531, align 4, !tbaa !5
  %7533 = call ptr @s2n_strerror_debug(i32 noundef %7532, ptr noundef @.str.24)
  %7534 = call ptr @__errno_location() #11
  %7535 = load i32, ptr %7534, align 4, !tbaa !5
  %7536 = call ptr @strerror(i32 noundef %7535) #10
  %7537 = call ptr @__errno_location() #11
  %7538 = load i32, ptr %7537, align 4, !tbaa !5
  %7539 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7526, ptr noundef @.str.25, i32 noundef %7527, ptr noundef @.str.64, ptr noundef @.str.21, i32 noundef 442, ptr noundef %7530, ptr noundef %7533, ptr noundef %7536, i32 noundef %7538) #10
  br label %7540

7540:                                             ; preds = %7523, %7506
  call void @llvm.lifetime.end.p0(i64 4, ptr %160) #10
  br label %7541

7541:                                             ; preds = %7540
  br label %7542

7542:                                             ; preds = %7541
  call void @exit(i32 noundef 1) #12
  unreachable

7543:                                             ; No predecessors!
  br label %7544

7544:                                             ; preds = %7543
  br label %7545

7545:                                             ; preds = %7544, %7485
  br label %7546

7546:                                             ; preds = %7545
  br label %7547

7547:                                             ; preds = %7546
  %7548 = load ptr, ptr %159, align 8, !tbaa !9
  %7549 = getelementptr inbounds %struct.s2n_connection, ptr %7548, i32 0, i32 52
  %7550 = getelementptr inbounds %struct.s2n_handshake, ptr %7549, i32 0, i32 6
  store i32 3, ptr %7550, align 4, !tbaa !46
  br label %7551

7551:                                             ; preds = %7547
  %7552 = load i32, ptr @test_count, align 4, !tbaa !5
  %7553 = add nsw i32 %7552, 1
  store i32 %7553, ptr @test_count, align 4, !tbaa !5
  %7554 = load ptr, ptr %159, align 8, !tbaa !9
  %7555 = call ptr @s2n_connection_get_handshake_type_name(ptr noundef %7554)
  %7556 = call i32 @strcmp(ptr noundef @.str.65, ptr noundef %7555) #13
  %7557 = icmp eq i32 %7556, 0
  br i1 %7557, label %7611, label %7558

7558:                                             ; preds = %7551
  br label %7559

7559:                                             ; preds = %7558
  br label %7560

7560:                                             ; preds = %7559
  call void @llvm.lifetime.start.p0(i64 4, ptr %161) #10
  %7561 = call ptr @__errno_location() #11
  %7562 = load i32, ptr %7561, align 4, !tbaa !5
  store i32 %7562, ptr %161, align 4, !tbaa !5
  %7563 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7564 = call i32 @s2n_print_stacktrace(ptr noundef %7563)
  %7565 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7566 = trunc i8 %7565 to i1
  br i1 %7566, label %7567, label %7589

7567:                                             ; preds = %7560
  %7568 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7569 = call i32 @fileno(ptr noundef %7568) #10
  %7570 = call i32 @isatty(i32 noundef %7569) #10
  %7571 = icmp ne i32 %7570, 0
  br i1 %7571, label %7572, label %7589

7572:                                             ; preds = %7567
  %7573 = load i32, ptr %161, align 4, !tbaa !5
  %7574 = call ptr @__errno_location() #11
  store i32 %7573, ptr %7574, align 4, !tbaa !5
  %7575 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7576 = load i32, ptr @test_count, align 4, !tbaa !5
  %7577 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7578 = load i32, ptr %7577, align 4, !tbaa !5
  %7579 = call ptr @s2n_strerror(i32 noundef %7578, ptr noundef @.str.24)
  %7580 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7581 = load i32, ptr %7580, align 4, !tbaa !5
  %7582 = call ptr @s2n_strerror_debug(i32 noundef %7581, ptr noundef @.str.24)
  %7583 = call ptr @__errno_location() #11
  %7584 = load i32, ptr %7583, align 4, !tbaa !5
  %7585 = call ptr @strerror(i32 noundef %7584) #10
  %7586 = call ptr @__errno_location() #11
  %7587 = load i32, ptr %7586, align 4, !tbaa !5
  %7588 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7575, ptr noundef @.str.22, i32 noundef %7576, ptr noundef @.str.66, ptr noundef @.str.21, i32 noundef 445, ptr noundef %7579, ptr noundef %7582, ptr noundef %7585, i32 noundef %7587) #10
  br label %7606

7589:                                             ; preds = %7567, %7560
  %7590 = load i32, ptr %161, align 4, !tbaa !5
  %7591 = call ptr @__errno_location() #11
  store i32 %7590, ptr %7591, align 4, !tbaa !5
  %7592 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7593 = load i32, ptr @test_count, align 4, !tbaa !5
  %7594 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7595 = load i32, ptr %7594, align 4, !tbaa !5
  %7596 = call ptr @s2n_strerror(i32 noundef %7595, ptr noundef @.str.24)
  %7597 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7598 = load i32, ptr %7597, align 4, !tbaa !5
  %7599 = call ptr @s2n_strerror_debug(i32 noundef %7598, ptr noundef @.str.24)
  %7600 = call ptr @__errno_location() #11
  %7601 = load i32, ptr %7600, align 4, !tbaa !5
  %7602 = call ptr @strerror(i32 noundef %7601) #10
  %7603 = call ptr @__errno_location() #11
  %7604 = load i32, ptr %7603, align 4, !tbaa !5
  %7605 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7592, ptr noundef @.str.25, i32 noundef %7593, ptr noundef @.str.66, ptr noundef @.str.21, i32 noundef 445, ptr noundef %7596, ptr noundef %7599, ptr noundef %7602, i32 noundef %7604) #10
  br label %7606

7606:                                             ; preds = %7589, %7572
  call void @llvm.lifetime.end.p0(i64 4, ptr %161) #10
  br label %7607

7607:                                             ; preds = %7606
  br label %7608

7608:                                             ; preds = %7607
  call void @exit(i32 noundef 1) #12
  unreachable

7609:                                             ; No predecessors!
  br label %7610

7610:                                             ; preds = %7609
  br label %7611

7611:                                             ; preds = %7610, %7551
  br label %7612

7612:                                             ; preds = %7611
  br label %7613

7613:                                             ; preds = %7612
  call void @llvm.lifetime.start.p0(i64 8, ptr %162) #10
  store ptr @.str.67, ptr %162, align 8, !tbaa !9
  %7614 = load ptr, ptr %159, align 8, !tbaa !9
  %7615 = getelementptr inbounds %struct.s2n_connection, ptr %7614, i32 0, i32 52
  %7616 = getelementptr inbounds %struct.s2n_handshake, ptr %7615, i32 0, i32 6
  store i32 255, ptr %7616, align 4, !tbaa !46
  br label %7617

7617:                                             ; preds = %7613
  %7618 = load i32, ptr @test_count, align 4, !tbaa !5
  %7619 = add nsw i32 %7618, 1
  store i32 %7619, ptr @test_count, align 4, !tbaa !5
  %7620 = load ptr, ptr %162, align 8, !tbaa !9
  %7621 = load ptr, ptr %159, align 8, !tbaa !9
  %7622 = call ptr @s2n_connection_get_handshake_type_name(ptr noundef %7621)
  %7623 = call i32 @strcmp(ptr noundef %7620, ptr noundef %7622) #13
  %7624 = icmp eq i32 %7623, 0
  br i1 %7624, label %7678, label %7625

7625:                                             ; preds = %7617
  br label %7626

7626:                                             ; preds = %7625
  br label %7627

7627:                                             ; preds = %7626
  call void @llvm.lifetime.start.p0(i64 4, ptr %163) #10
  %7628 = call ptr @__errno_location() #11
  %7629 = load i32, ptr %7628, align 4, !tbaa !5
  store i32 %7629, ptr %163, align 4, !tbaa !5
  %7630 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7631 = call i32 @s2n_print_stacktrace(ptr noundef %7630)
  %7632 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7633 = trunc i8 %7632 to i1
  br i1 %7633, label %7634, label %7656

7634:                                             ; preds = %7627
  %7635 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7636 = call i32 @fileno(ptr noundef %7635) #10
  %7637 = call i32 @isatty(i32 noundef %7636) #10
  %7638 = icmp ne i32 %7637, 0
  br i1 %7638, label %7639, label %7656

7639:                                             ; preds = %7634
  %7640 = load i32, ptr %163, align 4, !tbaa !5
  %7641 = call ptr @__errno_location() #11
  store i32 %7640, ptr %7641, align 4, !tbaa !5
  %7642 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7643 = load i32, ptr @test_count, align 4, !tbaa !5
  %7644 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7645 = load i32, ptr %7644, align 4, !tbaa !5
  %7646 = call ptr @s2n_strerror(i32 noundef %7645, ptr noundef @.str.24)
  %7647 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7648 = load i32, ptr %7647, align 4, !tbaa !5
  %7649 = call ptr @s2n_strerror_debug(i32 noundef %7648, ptr noundef @.str.24)
  %7650 = call ptr @__errno_location() #11
  %7651 = load i32, ptr %7650, align 4, !tbaa !5
  %7652 = call ptr @strerror(i32 noundef %7651) #10
  %7653 = call ptr @__errno_location() #11
  %7654 = load i32, ptr %7653, align 4, !tbaa !5
  %7655 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7642, ptr noundef @.str.22, i32 noundef %7643, ptr noundef @.str.68, ptr noundef @.str.21, i32 noundef 450, ptr noundef %7646, ptr noundef %7649, ptr noundef %7652, i32 noundef %7654) #10
  br label %7673

7656:                                             ; preds = %7634, %7627
  %7657 = load i32, ptr %163, align 4, !tbaa !5
  %7658 = call ptr @__errno_location() #11
  store i32 %7657, ptr %7658, align 4, !tbaa !5
  %7659 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7660 = load i32, ptr @test_count, align 4, !tbaa !5
  %7661 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7662 = load i32, ptr %7661, align 4, !tbaa !5
  %7663 = call ptr @s2n_strerror(i32 noundef %7662, ptr noundef @.str.24)
  %7664 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7665 = load i32, ptr %7664, align 4, !tbaa !5
  %7666 = call ptr @s2n_strerror_debug(i32 noundef %7665, ptr noundef @.str.24)
  %7667 = call ptr @__errno_location() #11
  %7668 = load i32, ptr %7667, align 4, !tbaa !5
  %7669 = call ptr @strerror(i32 noundef %7668) #10
  %7670 = call ptr @__errno_location() #11
  %7671 = load i32, ptr %7670, align 4, !tbaa !5
  %7672 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7659, ptr noundef @.str.25, i32 noundef %7660, ptr noundef @.str.68, ptr noundef @.str.21, i32 noundef 450, ptr noundef %7663, ptr noundef %7666, ptr noundef %7669, i32 noundef %7671) #10
  br label %7673

7673:                                             ; preds = %7656, %7639
  call void @llvm.lifetime.end.p0(i64 4, ptr %163) #10
  br label %7674

7674:                                             ; preds = %7673
  br label %7675

7675:                                             ; preds = %7674
  call void @exit(i32 noundef 1) #12
  unreachable

7676:                                             ; No predecessors!
  br label %7677

7677:                                             ; preds = %7676
  br label %7678

7678:                                             ; preds = %7677, %7617
  br label %7679

7679:                                             ; preds = %7678
  br label %7680

7680:                                             ; preds = %7679
  call void @llvm.lifetime.start.p0(i64 8, ptr %164) #10
  store ptr null, ptr %164, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %165) #10
  store i32 0, ptr %165, align 4, !tbaa !5
  br label %7681

7681:                                             ; preds = %7849, %7680
  %7682 = load i32, ptr %165, align 4, !tbaa !5
  %7683 = load i32, ptr %11, align 4, !tbaa !5
  %7684 = icmp slt i32 %7682, %7683
  br i1 %7684, label %7686, label %7685

7685:                                             ; preds = %7681
  store i32 748, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %165) #10
  br label %7852

7686:                                             ; preds = %7681
  %7687 = load i32, ptr %165, align 4, !tbaa !5
  %7688 = sext i32 %7687 to i64
  %7689 = getelementptr inbounds [256 x i16], ptr %10, i64 0, i64 %7688
  %7690 = load i16, ptr %7689, align 2, !tbaa !15
  %7691 = zext i16 %7690 to i32
  %7692 = load ptr, ptr %159, align 8, !tbaa !9
  %7693 = getelementptr inbounds %struct.s2n_connection, ptr %7692, i32 0, i32 52
  %7694 = getelementptr inbounds %struct.s2n_handshake, ptr %7693, i32 0, i32 6
  store i32 %7691, ptr %7694, align 4, !tbaa !46
  %7695 = load ptr, ptr %159, align 8, !tbaa !9
  %7696 = call ptr @s2n_connection_get_handshake_type_name(ptr noundef %7695)
  store ptr %7696, ptr %164, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %166) #10
  store i32 0, ptr %166, align 4, !tbaa !5
  br label %7697

7697:                                             ; preds = %7845, %7686
  %7698 = load i32, ptr %166, align 4, !tbaa !5
  %7699 = load i32, ptr %11, align 4, !tbaa !5
  %7700 = icmp slt i32 %7698, %7699
  br i1 %7700, label %7702, label %7701

7701:                                             ; preds = %7697
  store i32 751, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %166) #10
  br label %7848

7702:                                             ; preds = %7697
  %7703 = load i32, ptr %166, align 4, !tbaa !5
  %7704 = sext i32 %7703 to i64
  %7705 = getelementptr inbounds [256 x i16], ptr %10, i64 0, i64 %7704
  %7706 = load i16, ptr %7705, align 2, !tbaa !15
  %7707 = zext i16 %7706 to i32
  %7708 = load ptr, ptr %159, align 8, !tbaa !9
  %7709 = getelementptr inbounds %struct.s2n_connection, ptr %7708, i32 0, i32 52
  %7710 = getelementptr inbounds %struct.s2n_handshake, ptr %7709, i32 0, i32 6
  store i32 %7707, ptr %7710, align 4, !tbaa !46
  %7711 = load i32, ptr %165, align 4, !tbaa !5
  %7712 = load i32, ptr %166, align 4, !tbaa !5
  %7713 = icmp eq i32 %7711, %7712
  br i1 %7713, label %7714, label %7779

7714:                                             ; preds = %7702
  br label %7715

7715:                                             ; preds = %7714
  %7716 = load i32, ptr @test_count, align 4, !tbaa !5
  %7717 = add nsw i32 %7716, 1
  store i32 %7717, ptr @test_count, align 4, !tbaa !5
  %7718 = load ptr, ptr %164, align 8, !tbaa !9
  %7719 = load ptr, ptr %159, align 8, !tbaa !9
  %7720 = call ptr @s2n_connection_get_handshake_type_name(ptr noundef %7719)
  %7721 = call i32 @strcmp(ptr noundef %7718, ptr noundef %7720) #13
  %7722 = icmp eq i32 %7721, 0
  br i1 %7722, label %7776, label %7723

7723:                                             ; preds = %7715
  br label %7724

7724:                                             ; preds = %7723
  br label %7725

7725:                                             ; preds = %7724
  call void @llvm.lifetime.start.p0(i64 4, ptr %167) #10
  %7726 = call ptr @__errno_location() #11
  %7727 = load i32, ptr %7726, align 4, !tbaa !5
  store i32 %7727, ptr %167, align 4, !tbaa !5
  %7728 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7729 = call i32 @s2n_print_stacktrace(ptr noundef %7728)
  %7730 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7731 = trunc i8 %7730 to i1
  br i1 %7731, label %7732, label %7754

7732:                                             ; preds = %7725
  %7733 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7734 = call i32 @fileno(ptr noundef %7733) #10
  %7735 = call i32 @isatty(i32 noundef %7734) #10
  %7736 = icmp ne i32 %7735, 0
  br i1 %7736, label %7737, label %7754

7737:                                             ; preds = %7732
  %7738 = load i32, ptr %167, align 4, !tbaa !5
  %7739 = call ptr @__errno_location() #11
  store i32 %7738, ptr %7739, align 4, !tbaa !5
  %7740 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7741 = load i32, ptr @test_count, align 4, !tbaa !5
  %7742 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7743 = load i32, ptr %7742, align 4, !tbaa !5
  %7744 = call ptr @s2n_strerror(i32 noundef %7743, ptr noundef @.str.24)
  %7745 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7746 = load i32, ptr %7745, align 4, !tbaa !5
  %7747 = call ptr @s2n_strerror_debug(i32 noundef %7746, ptr noundef @.str.24)
  %7748 = call ptr @__errno_location() #11
  %7749 = load i32, ptr %7748, align 4, !tbaa !5
  %7750 = call ptr @strerror(i32 noundef %7749) #10
  %7751 = call ptr @__errno_location() #11
  %7752 = load i32, ptr %7751, align 4, !tbaa !5
  %7753 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7740, ptr noundef @.str.22, i32 noundef %7741, ptr noundef @.str.69, ptr noundef @.str.21, i32 noundef 462, ptr noundef %7744, ptr noundef %7747, ptr noundef %7750, i32 noundef %7752) #10
  br label %7771

7754:                                             ; preds = %7732, %7725
  %7755 = load i32, ptr %167, align 4, !tbaa !5
  %7756 = call ptr @__errno_location() #11
  store i32 %7755, ptr %7756, align 4, !tbaa !5
  %7757 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7758 = load i32, ptr @test_count, align 4, !tbaa !5
  %7759 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7760 = load i32, ptr %7759, align 4, !tbaa !5
  %7761 = call ptr @s2n_strerror(i32 noundef %7760, ptr noundef @.str.24)
  %7762 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7763 = load i32, ptr %7762, align 4, !tbaa !5
  %7764 = call ptr @s2n_strerror_debug(i32 noundef %7763, ptr noundef @.str.24)
  %7765 = call ptr @__errno_location() #11
  %7766 = load i32, ptr %7765, align 4, !tbaa !5
  %7767 = call ptr @strerror(i32 noundef %7766) #10
  %7768 = call ptr @__errno_location() #11
  %7769 = load i32, ptr %7768, align 4, !tbaa !5
  %7770 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7757, ptr noundef @.str.25, i32 noundef %7758, ptr noundef @.str.69, ptr noundef @.str.21, i32 noundef 462, ptr noundef %7761, ptr noundef %7764, ptr noundef %7767, i32 noundef %7769) #10
  br label %7771

7771:                                             ; preds = %7754, %7737
  call void @llvm.lifetime.end.p0(i64 4, ptr %167) #10
  br label %7772

7772:                                             ; preds = %7771
  br label %7773

7773:                                             ; preds = %7772
  call void @exit(i32 noundef 1) #12
  unreachable

7774:                                             ; No predecessors!
  br label %7775

7775:                                             ; preds = %7774
  br label %7776

7776:                                             ; preds = %7775, %7715
  br label %7777

7777:                                             ; preds = %7776
  br label %7778

7778:                                             ; preds = %7777
  br label %7844

7779:                                             ; preds = %7702
  br label %7780

7780:                                             ; preds = %7779
  %7781 = load i32, ptr @test_count, align 4, !tbaa !5
  %7782 = add nsw i32 %7781, 1
  store i32 %7782, ptr @test_count, align 4, !tbaa !5
  %7783 = load ptr, ptr %164, align 8, !tbaa !9
  %7784 = load ptr, ptr %159, align 8, !tbaa !9
  %7785 = call ptr @s2n_connection_get_handshake_type_name(ptr noundef %7784)
  %7786 = call i32 @strcmp(ptr noundef %7783, ptr noundef %7785) #13
  %7787 = icmp eq i32 %7786, 0
  br i1 %7787, label %7788, label %7841

7788:                                             ; preds = %7780
  br label %7789

7789:                                             ; preds = %7788
  br label %7790

7790:                                             ; preds = %7789
  call void @llvm.lifetime.start.p0(i64 4, ptr %168) #10
  %7791 = call ptr @__errno_location() #11
  %7792 = load i32, ptr %7791, align 4, !tbaa !5
  store i32 %7792, ptr %168, align 4, !tbaa !5
  %7793 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7794 = call i32 @s2n_print_stacktrace(ptr noundef %7793)
  %7795 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7796 = trunc i8 %7795 to i1
  br i1 %7796, label %7797, label %7819

7797:                                             ; preds = %7790
  %7798 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7799 = call i32 @fileno(ptr noundef %7798) #10
  %7800 = call i32 @isatty(i32 noundef %7799) #10
  %7801 = icmp ne i32 %7800, 0
  br i1 %7801, label %7802, label %7819

7802:                                             ; preds = %7797
  %7803 = load i32, ptr %168, align 4, !tbaa !5
  %7804 = call ptr @__errno_location() #11
  store i32 %7803, ptr %7804, align 4, !tbaa !5
  %7805 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7806 = load i32, ptr @test_count, align 4, !tbaa !5
  %7807 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7808 = load i32, ptr %7807, align 4, !tbaa !5
  %7809 = call ptr @s2n_strerror(i32 noundef %7808, ptr noundef @.str.24)
  %7810 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7811 = load i32, ptr %7810, align 4, !tbaa !5
  %7812 = call ptr @s2n_strerror_debug(i32 noundef %7811, ptr noundef @.str.24)
  %7813 = call ptr @__errno_location() #11
  %7814 = load i32, ptr %7813, align 4, !tbaa !5
  %7815 = call ptr @strerror(i32 noundef %7814) #10
  %7816 = call ptr @__errno_location() #11
  %7817 = load i32, ptr %7816, align 4, !tbaa !5
  %7818 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7805, ptr noundef @.str.22, i32 noundef %7806, ptr noundef @.str.70, ptr noundef @.str.21, i32 noundef 464, ptr noundef %7809, ptr noundef %7812, ptr noundef %7815, i32 noundef %7817) #10
  br label %7836

7819:                                             ; preds = %7797, %7790
  %7820 = load i32, ptr %168, align 4, !tbaa !5
  %7821 = call ptr @__errno_location() #11
  store i32 %7820, ptr %7821, align 4, !tbaa !5
  %7822 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7823 = load i32, ptr @test_count, align 4, !tbaa !5
  %7824 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7825 = load i32, ptr %7824, align 4, !tbaa !5
  %7826 = call ptr @s2n_strerror(i32 noundef %7825, ptr noundef @.str.24)
  %7827 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7828 = load i32, ptr %7827, align 4, !tbaa !5
  %7829 = call ptr @s2n_strerror_debug(i32 noundef %7828, ptr noundef @.str.24)
  %7830 = call ptr @__errno_location() #11
  %7831 = load i32, ptr %7830, align 4, !tbaa !5
  %7832 = call ptr @strerror(i32 noundef %7831) #10
  %7833 = call ptr @__errno_location() #11
  %7834 = load i32, ptr %7833, align 4, !tbaa !5
  %7835 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7822, ptr noundef @.str.25, i32 noundef %7823, ptr noundef @.str.70, ptr noundef @.str.21, i32 noundef 464, ptr noundef %7826, ptr noundef %7829, ptr noundef %7832, i32 noundef %7834) #10
  br label %7836

7836:                                             ; preds = %7819, %7802
  call void @llvm.lifetime.end.p0(i64 4, ptr %168) #10
  br label %7837

7837:                                             ; preds = %7836
  br label %7838

7838:                                             ; preds = %7837
  call void @exit(i32 noundef 1) #12
  unreachable

7839:                                             ; No predecessors!
  br label %7840

7840:                                             ; preds = %7839
  br label %7841

7841:                                             ; preds = %7840, %7780
  br label %7842

7842:                                             ; preds = %7841
  br label %7843

7843:                                             ; preds = %7842
  br label %7844

7844:                                             ; preds = %7843, %7778
  br label %7845

7845:                                             ; preds = %7844
  %7846 = load i32, ptr %166, align 4, !tbaa !5
  %7847 = add nsw i32 %7846, 1
  store i32 %7847, ptr %166, align 4, !tbaa !5
  br label %7697, !llvm.loop !66

7848:                                             ; preds = %7701
  br label %7849

7849:                                             ; preds = %7848
  %7850 = load i32, ptr %165, align 4, !tbaa !5
  %7851 = add nsw i32 %7850, 1
  store i32 %7851, ptr %165, align 4, !tbaa !5
  br label %7681, !llvm.loop !67

7852:                                             ; preds = %7685
  br label %7853

7853:                                             ; preds = %7852
  %7854 = load i32, ptr @test_count, align 4, !tbaa !5
  %7855 = add nsw i32 %7854, 1
  store i32 %7855, ptr @test_count, align 4, !tbaa !5
  %7856 = load ptr, ptr %159, align 8, !tbaa !9
  %7857 = call i32 @s2n_connection_free(ptr noundef %7856)
  %7858 = icmp eq i32 %7857, -1
  br i1 %7858, label %7859, label %7912

7859:                                             ; preds = %7853
  br label %7860

7860:                                             ; preds = %7859
  br label %7861

7861:                                             ; preds = %7860
  call void @llvm.lifetime.start.p0(i64 4, ptr %169) #10
  %7862 = call ptr @__errno_location() #11
  %7863 = load i32, ptr %7862, align 4, !tbaa !5
  store i32 %7863, ptr %169, align 4, !tbaa !5
  %7864 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7865 = call i32 @s2n_print_stacktrace(ptr noundef %7864)
  %7866 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7867 = trunc i8 %7866 to i1
  br i1 %7867, label %7868, label %7890

7868:                                             ; preds = %7861
  %7869 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7870 = call i32 @fileno(ptr noundef %7869) #10
  %7871 = call i32 @isatty(i32 noundef %7870) #10
  %7872 = icmp ne i32 %7871, 0
  br i1 %7872, label %7873, label %7890

7873:                                             ; preds = %7868
  %7874 = load i32, ptr %169, align 4, !tbaa !5
  %7875 = call ptr @__errno_location() #11
  store i32 %7874, ptr %7875, align 4, !tbaa !5
  %7876 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7877 = load i32, ptr @test_count, align 4, !tbaa !5
  %7878 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7879 = load i32, ptr %7878, align 4, !tbaa !5
  %7880 = call ptr @s2n_strerror(i32 noundef %7879, ptr noundef @.str.24)
  %7881 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7882 = load i32, ptr %7881, align 4, !tbaa !5
  %7883 = call ptr @s2n_strerror_debug(i32 noundef %7882, ptr noundef @.str.24)
  %7884 = call ptr @__errno_location() #11
  %7885 = load i32, ptr %7884, align 4, !tbaa !5
  %7886 = call ptr @strerror(i32 noundef %7885) #10
  %7887 = call ptr @__errno_location() #11
  %7888 = load i32, ptr %7887, align 4, !tbaa !5
  %7889 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7876, ptr noundef @.str.22, i32 noundef %7877, ptr noundef @.str.33, ptr noundef @.str.21, i32 noundef 469, ptr noundef %7880, ptr noundef %7883, ptr noundef %7886, i32 noundef %7888) #10
  br label %7907

7890:                                             ; preds = %7868, %7861
  %7891 = load i32, ptr %169, align 4, !tbaa !5
  %7892 = call ptr @__errno_location() #11
  store i32 %7891, ptr %7892, align 4, !tbaa !5
  %7893 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7894 = load i32, ptr @test_count, align 4, !tbaa !5
  %7895 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7896 = load i32, ptr %7895, align 4, !tbaa !5
  %7897 = call ptr @s2n_strerror(i32 noundef %7896, ptr noundef @.str.24)
  %7898 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7899 = load i32, ptr %7898, align 4, !tbaa !5
  %7900 = call ptr @s2n_strerror_debug(i32 noundef %7899, ptr noundef @.str.24)
  %7901 = call ptr @__errno_location() #11
  %7902 = load i32, ptr %7901, align 4, !tbaa !5
  %7903 = call ptr @strerror(i32 noundef %7902) #10
  %7904 = call ptr @__errno_location() #11
  %7905 = load i32, ptr %7904, align 4, !tbaa !5
  %7906 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7893, ptr noundef @.str.25, i32 noundef %7894, ptr noundef @.str.33, ptr noundef @.str.21, i32 noundef 469, ptr noundef %7897, ptr noundef %7900, ptr noundef %7903, i32 noundef %7905) #10
  br label %7907

7907:                                             ; preds = %7890, %7873
  call void @llvm.lifetime.end.p0(i64 4, ptr %169) #10
  br label %7908

7908:                                             ; preds = %7907
  br label %7909

7909:                                             ; preds = %7908
  call void @exit(i32 noundef 1) #12
  unreachable

7910:                                             ; No predecessors!
  br label %7911

7911:                                             ; preds = %7910
  br label %7912

7912:                                             ; preds = %7911, %7853
  br label %7913

7913:                                             ; preds = %7912
  br label %7914

7914:                                             ; preds = %7913
  call void @llvm.lifetime.end.p0(i64 8, ptr %164) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %162) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %159) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %170) #10
  store i32 247, ptr %170, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 136, ptr %171) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %171, ptr align 16 @__const.main.expected, i64 136, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %172) #10
  %7915 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %7915, ptr %172, align 8, !tbaa !9
  %7916 = load i32, ptr %170, align 4, !tbaa !5
  %7917 = load ptr, ptr %172, align 8, !tbaa !9
  %7918 = getelementptr inbounds %struct.s2n_connection, ptr %7917, i32 0, i32 52
  %7919 = getelementptr inbounds %struct.s2n_handshake, ptr %7918, i32 0, i32 6
  store i32 %7916, ptr %7919, align 4, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 8, ptr %173) #10
  store i64 0, ptr %173, align 8, !tbaa !59
  br label %7920

7920:                                             ; preds = %7996, %7914
  %7921 = load i64, ptr %173, align 8, !tbaa !59
  %7922 = icmp ult i64 %7921, 17
  br i1 %7922, label %7924, label %7923

7923:                                             ; preds = %7920
  store i32 772, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %173) #10
  br label %7999

7924:                                             ; preds = %7920
  %7925 = load i64, ptr %173, align 8, !tbaa !59
  %7926 = trunc i64 %7925 to i32
  %7927 = load ptr, ptr %172, align 8, !tbaa !9
  %7928 = getelementptr inbounds %struct.s2n_connection, ptr %7927, i32 0, i32 52
  %7929 = getelementptr inbounds %struct.s2n_handshake, ptr %7928, i32 0, i32 7
  store i32 %7926, ptr %7929, align 8, !tbaa !47
  br label %7930

7930:                                             ; preds = %7924
  %7931 = load i32, ptr @test_count, align 4, !tbaa !5
  %7932 = add nsw i32 %7931, 1
  store i32 %7932, ptr @test_count, align 4, !tbaa !5
  %7933 = load i64, ptr %173, align 8, !tbaa !59
  %7934 = getelementptr inbounds [17 x ptr], ptr %171, i64 0, i64 %7933
  %7935 = load ptr, ptr %7934, align 8, !tbaa !9
  %7936 = load ptr, ptr %172, align 8, !tbaa !9
  %7937 = call ptr @s2n_connection_get_last_message_name(ptr noundef %7936)
  %7938 = call i32 @strcmp(ptr noundef %7935, ptr noundef %7937) #13
  %7939 = icmp eq i32 %7938, 0
  br i1 %7939, label %7993, label %7940

7940:                                             ; preds = %7930
  br label %7941

7941:                                             ; preds = %7940
  br label %7942

7942:                                             ; preds = %7941
  call void @llvm.lifetime.start.p0(i64 4, ptr %174) #10
  %7943 = call ptr @__errno_location() #11
  %7944 = load i32, ptr %7943, align 4, !tbaa !5
  store i32 %7944, ptr %174, align 4, !tbaa !5
  %7945 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7946 = call i32 @s2n_print_stacktrace(ptr noundef %7945)
  %7947 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7948 = trunc i8 %7947 to i1
  br i1 %7948, label %7949, label %7971

7949:                                             ; preds = %7942
  %7950 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7951 = call i32 @fileno(ptr noundef %7950) #10
  %7952 = call i32 @isatty(i32 noundef %7951) #10
  %7953 = icmp ne i32 %7952, 0
  br i1 %7953, label %7954, label %7971

7954:                                             ; preds = %7949
  %7955 = load i32, ptr %174, align 4, !tbaa !5
  %7956 = call ptr @__errno_location() #11
  store i32 %7955, ptr %7956, align 4, !tbaa !5
  %7957 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7958 = load i32, ptr @test_count, align 4, !tbaa !5
  %7959 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7960 = load i32, ptr %7959, align 4, !tbaa !5
  %7961 = call ptr @s2n_strerror(i32 noundef %7960, ptr noundef @.str.24)
  %7962 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7963 = load i32, ptr %7962, align 4, !tbaa !5
  %7964 = call ptr @s2n_strerror_debug(i32 noundef %7963, ptr noundef @.str.24)
  %7965 = call ptr @__errno_location() #11
  %7966 = load i32, ptr %7965, align 4, !tbaa !5
  %7967 = call ptr @strerror(i32 noundef %7966) #10
  %7968 = call ptr @__errno_location() #11
  %7969 = load i32, ptr %7968, align 4, !tbaa !5
  %7970 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7957, ptr noundef @.str.22, i32 noundef %7958, ptr noundef @.str.88, ptr noundef @.str.21, i32 noundef 487, ptr noundef %7961, ptr noundef %7964, ptr noundef %7967, i32 noundef %7969) #10
  br label %7988

7971:                                             ; preds = %7949, %7942
  %7972 = load i32, ptr %174, align 4, !tbaa !5
  %7973 = call ptr @__errno_location() #11
  store i32 %7972, ptr %7973, align 4, !tbaa !5
  %7974 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7975 = load i32, ptr @test_count, align 4, !tbaa !5
  %7976 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7977 = load i32, ptr %7976, align 4, !tbaa !5
  %7978 = call ptr @s2n_strerror(i32 noundef %7977, ptr noundef @.str.24)
  %7979 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7980 = load i32, ptr %7979, align 4, !tbaa !5
  %7981 = call ptr @s2n_strerror_debug(i32 noundef %7980, ptr noundef @.str.24)
  %7982 = call ptr @__errno_location() #11
  %7983 = load i32, ptr %7982, align 4, !tbaa !5
  %7984 = call ptr @strerror(i32 noundef %7983) #10
  %7985 = call ptr @__errno_location() #11
  %7986 = load i32, ptr %7985, align 4, !tbaa !5
  %7987 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7974, ptr noundef @.str.25, i32 noundef %7975, ptr noundef @.str.88, ptr noundef @.str.21, i32 noundef 487, ptr noundef %7978, ptr noundef %7981, ptr noundef %7984, i32 noundef %7986) #10
  br label %7988

7988:                                             ; preds = %7971, %7954
  call void @llvm.lifetime.end.p0(i64 4, ptr %174) #10
  br label %7989

7989:                                             ; preds = %7988
  br label %7990

7990:                                             ; preds = %7989
  call void @exit(i32 noundef 1) #12
  unreachable

7991:                                             ; No predecessors!
  br label %7992

7992:                                             ; preds = %7991
  br label %7993

7993:                                             ; preds = %7992, %7930
  br label %7994

7994:                                             ; preds = %7993
  br label %7995

7995:                                             ; preds = %7994
  br label %7996

7996:                                             ; preds = %7995
  %7997 = load i64, ptr %173, align 8, !tbaa !59
  %7998 = add i64 %7997, 1
  store i64 %7998, ptr %173, align 8, !tbaa !59
  br label %7920, !llvm.loop !68

7999:                                             ; preds = %7923
  br label %8000

8000:                                             ; preds = %7999
  %8001 = load i32, ptr @test_count, align 4, !tbaa !5
  %8002 = add nsw i32 %8001, 1
  store i32 %8002, ptr @test_count, align 4, !tbaa !5
  %8003 = load ptr, ptr %172, align 8, !tbaa !9
  %8004 = call i32 @s2n_connection_free(ptr noundef %8003)
  %8005 = icmp eq i32 %8004, -1
  br i1 %8005, label %8006, label %8059

8006:                                             ; preds = %8000
  br label %8007

8007:                                             ; preds = %8006
  br label %8008

8008:                                             ; preds = %8007
  call void @llvm.lifetime.start.p0(i64 4, ptr %175) #10
  %8009 = call ptr @__errno_location() #11
  %8010 = load i32, ptr %8009, align 4, !tbaa !5
  store i32 %8010, ptr %175, align 4, !tbaa !5
  %8011 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8012 = call i32 @s2n_print_stacktrace(ptr noundef %8011)
  %8013 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8014 = trunc i8 %8013 to i1
  br i1 %8014, label %8015, label %8037

8015:                                             ; preds = %8008
  %8016 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8017 = call i32 @fileno(ptr noundef %8016) #10
  %8018 = call i32 @isatty(i32 noundef %8017) #10
  %8019 = icmp ne i32 %8018, 0
  br i1 %8019, label %8020, label %8037

8020:                                             ; preds = %8015
  %8021 = load i32, ptr %175, align 4, !tbaa !5
  %8022 = call ptr @__errno_location() #11
  store i32 %8021, ptr %8022, align 4, !tbaa !5
  %8023 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8024 = load i32, ptr @test_count, align 4, !tbaa !5
  %8025 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8026 = load i32, ptr %8025, align 4, !tbaa !5
  %8027 = call ptr @s2n_strerror(i32 noundef %8026, ptr noundef @.str.24)
  %8028 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8029 = load i32, ptr %8028, align 4, !tbaa !5
  %8030 = call ptr @s2n_strerror_debug(i32 noundef %8029, ptr noundef @.str.24)
  %8031 = call ptr @__errno_location() #11
  %8032 = load i32, ptr %8031, align 4, !tbaa !5
  %8033 = call ptr @strerror(i32 noundef %8032) #10
  %8034 = call ptr @__errno_location() #11
  %8035 = load i32, ptr %8034, align 4, !tbaa !5
  %8036 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8023, ptr noundef @.str.22, i32 noundef %8024, ptr noundef @.str.33, ptr noundef @.str.21, i32 noundef 490, ptr noundef %8027, ptr noundef %8030, ptr noundef %8033, i32 noundef %8035) #10
  br label %8054

8037:                                             ; preds = %8015, %8008
  %8038 = load i32, ptr %175, align 4, !tbaa !5
  %8039 = call ptr @__errno_location() #11
  store i32 %8038, ptr %8039, align 4, !tbaa !5
  %8040 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8041 = load i32, ptr @test_count, align 4, !tbaa !5
  %8042 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8043 = load i32, ptr %8042, align 4, !tbaa !5
  %8044 = call ptr @s2n_strerror(i32 noundef %8043, ptr noundef @.str.24)
  %8045 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8046 = load i32, ptr %8045, align 4, !tbaa !5
  %8047 = call ptr @s2n_strerror_debug(i32 noundef %8046, ptr noundef @.str.24)
  %8048 = call ptr @__errno_location() #11
  %8049 = load i32, ptr %8048, align 4, !tbaa !5
  %8050 = call ptr @strerror(i32 noundef %8049) #10
  %8051 = call ptr @__errno_location() #11
  %8052 = load i32, ptr %8051, align 4, !tbaa !5
  %8053 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8040, ptr noundef @.str.25, i32 noundef %8041, ptr noundef @.str.33, ptr noundef @.str.21, i32 noundef 490, ptr noundef %8044, ptr noundef %8047, ptr noundef %8050, i32 noundef %8052) #10
  br label %8054

8054:                                             ; preds = %8037, %8020
  call void @llvm.lifetime.end.p0(i64 4, ptr %175) #10
  br label %8055

8055:                                             ; preds = %8054
  br label %8056

8056:                                             ; preds = %8055
  call void @exit(i32 noundef 1) #12
  unreachable

8057:                                             ; No predecessors!
  br label %8058

8058:                                             ; preds = %8057
  br label %8059

8059:                                             ; preds = %8058, %8000
  br label %8060

8060:                                             ; preds = %8059
  br label %8061

8061:                                             ; preds = %8060
  call void @llvm.lifetime.end.p0(i64 8, ptr %172) #10
  call void @llvm.lifetime.end.p0(i64 136, ptr %171) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %170) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %176) #10
  store i64 0, ptr %176, align 8, !tbaa !59
  br label %8062

8062:                                             ; preds = %8252, %8061
  %8063 = load i64, ptr %176, align 8, !tbaa !59
  %8064 = load i32, ptr %11, align 4, !tbaa !5
  %8065 = sext i32 %8064 to i64
  %8066 = icmp ult i64 %8063, %8065
  br i1 %8066, label %8068, label %8067

8067:                                             ; preds = %8062
  store i32 787, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %176) #10
  br label %8255

8068:                                             ; preds = %8062
  call void @llvm.lifetime.start.p0(i64 4, ptr %177) #10
  %8069 = load i64, ptr %176, align 8, !tbaa !59
  %8070 = getelementptr inbounds [256 x i16], ptr %10, i64 0, i64 %8069
  %8071 = load i16, ptr %8070, align 2, !tbaa !15
  %8072 = zext i16 %8071 to i32
  store i32 %8072, ptr %177, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %178) #10
  %8073 = load i32, ptr %177, align 4, !tbaa !5
  %8074 = zext i32 %8073 to i64
  %8075 = getelementptr inbounds [256 x [32 x i32]], ptr @handshakes, i64 0, i64 %8074
  %8076 = getelementptr inbounds [32 x i32], ptr %8075, i64 0, i64 0
  store ptr %8076, ptr %178, align 8, !tbaa !9
  %8077 = load i32, ptr %177, align 4, !tbaa !5
  %8078 = and i32 %8077, 1
  %8079 = icmp ne i32 %8078, 0
  br i1 %8079, label %8080, label %8084

8080:                                             ; preds = %8068
  %8081 = load i32, ptr %177, align 4, !tbaa !5
  %8082 = and i32 %8081, 128
  %8083 = icmp ne i32 %8082, 0
  br i1 %8083, label %8084, label %8085

8084:                                             ; preds = %8080, %8068
  store i32 789, ptr %21, align 4
  br label %8249

8085:                                             ; preds = %8080
  call void @llvm.lifetime.start.p0(i64 4, ptr %179) #10
  %8086 = load i32, ptr %177, align 4, !tbaa !5
  %8087 = or i32 %8086, 128
  store i32 %8087, ptr %179, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %180) #10
  %8088 = load i32, ptr %179, align 4, !tbaa !5
  %8089 = zext i32 %8088 to i64
  %8090 = getelementptr inbounds [256 x [32 x i32]], ptr @handshakes, i64 0, i64 %8089
  %8091 = getelementptr inbounds [32 x i32], ptr %8090, i64 0, i64 0
  store ptr %8091, ptr %180, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %181) #10
  store i64 0, ptr %181, align 8, !tbaa !59
  call void @llvm.lifetime.start.p0(i64 8, ptr %182) #10
  store i64 0, ptr %182, align 8, !tbaa !59
  br label %8092

8092:                                             ; preds = %8243, %8085
  %8093 = load i64, ptr %181, align 8, !tbaa !59
  %8094 = icmp ult i64 %8093, 32
  br i1 %8094, label %8095, label %8098

8095:                                             ; preds = %8092
  %8096 = load i64, ptr %182, align 8, !tbaa !59
  %8097 = icmp ult i64 %8096, 32
  br label %8098

8098:                                             ; preds = %8095, %8092
  %8099 = phi i1 [ false, %8092 ], [ %8097, %8095 ]
  br i1 %8099, label %8101, label %8100

8100:                                             ; preds = %8098
  store i32 790, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %182) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %181) #10
  br label %8248

8101:                                             ; preds = %8098
  br label %8102

8102:                                             ; preds = %8101
  %8103 = load i32, ptr @test_count, align 4, !tbaa !5
  %8104 = add nsw i32 %8103, 1
  store i32 %8104, ptr @test_count, align 4, !tbaa !5
  %8105 = load ptr, ptr %178, align 8, !tbaa !9
  %8106 = load i64, ptr %181, align 8, !tbaa !59
  %8107 = getelementptr inbounds i32, ptr %8105, i64 %8106
  %8108 = load i32, ptr %8107, align 4, !tbaa !5
  %8109 = icmp eq i32 %8108, 12
  br i1 %8109, label %8110, label %8163

8110:                                             ; preds = %8102
  br label %8111

8111:                                             ; preds = %8110
  br label %8112

8112:                                             ; preds = %8111
  call void @llvm.lifetime.start.p0(i64 4, ptr %183) #10
  %8113 = call ptr @__errno_location() #11
  %8114 = load i32, ptr %8113, align 4, !tbaa !5
  store i32 %8114, ptr %183, align 4, !tbaa !5
  %8115 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8116 = call i32 @s2n_print_stacktrace(ptr noundef %8115)
  %8117 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8118 = trunc i8 %8117 to i1
  br i1 %8118, label %8119, label %8141

8119:                                             ; preds = %8112
  %8120 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8121 = call i32 @fileno(ptr noundef %8120) #10
  %8122 = call i32 @isatty(i32 noundef %8121) #10
  %8123 = icmp ne i32 %8122, 0
  br i1 %8123, label %8124, label %8141

8124:                                             ; preds = %8119
  %8125 = load i32, ptr %183, align 4, !tbaa !5
  %8126 = call ptr @__errno_location() #11
  store i32 %8125, ptr %8126, align 4, !tbaa !5
  %8127 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8128 = load i32, ptr @test_count, align 4, !tbaa !5
  %8129 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8130 = load i32, ptr %8129, align 4, !tbaa !5
  %8131 = call ptr @s2n_strerror(i32 noundef %8130, ptr noundef @.str.24)
  %8132 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8133 = load i32, ptr %8132, align 4, !tbaa !5
  %8134 = call ptr @s2n_strerror_debug(i32 noundef %8133, ptr noundef @.str.24)
  %8135 = call ptr @__errno_location() #11
  %8136 = load i32, ptr %8135, align 4, !tbaa !5
  %8137 = call ptr @strerror(i32 noundef %8136) #10
  %8138 = call ptr @__errno_location() #11
  %8139 = load i32, ptr %8138, align 4, !tbaa !5
  %8140 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8127, ptr noundef @.str.22, i32 noundef %8128, ptr noundef @.str.89, ptr noundef @.str.21, i32 noundef 510, ptr noundef %8131, ptr noundef %8134, ptr noundef %8137, i32 noundef %8139) #10
  br label %8158

8141:                                             ; preds = %8119, %8112
  %8142 = load i32, ptr %183, align 4, !tbaa !5
  %8143 = call ptr @__errno_location() #11
  store i32 %8142, ptr %8143, align 4, !tbaa !5
  %8144 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8145 = load i32, ptr @test_count, align 4, !tbaa !5
  %8146 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8147 = load i32, ptr %8146, align 4, !tbaa !5
  %8148 = call ptr @s2n_strerror(i32 noundef %8147, ptr noundef @.str.24)
  %8149 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8150 = load i32, ptr %8149, align 4, !tbaa !5
  %8151 = call ptr @s2n_strerror_debug(i32 noundef %8150, ptr noundef @.str.24)
  %8152 = call ptr @__errno_location() #11
  %8153 = load i32, ptr %8152, align 4, !tbaa !5
  %8154 = call ptr @strerror(i32 noundef %8153) #10
  %8155 = call ptr @__errno_location() #11
  %8156 = load i32, ptr %8155, align 4, !tbaa !5
  %8157 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8144, ptr noundef @.str.25, i32 noundef %8145, ptr noundef @.str.89, ptr noundef @.str.21, i32 noundef 510, ptr noundef %8148, ptr noundef %8151, ptr noundef %8154, i32 noundef %8156) #10
  br label %8158

8158:                                             ; preds = %8141, %8124
  call void @llvm.lifetime.end.p0(i64 4, ptr %183) #10
  br label %8159

8159:                                             ; preds = %8158
  br label %8160

8160:                                             ; preds = %8159
  call void @exit(i32 noundef 1) #12
  unreachable

8161:                                             ; No predecessors!
  br label %8162

8162:                                             ; preds = %8161
  br label %8163

8163:                                             ; preds = %8162, %8102
  br label %8164

8164:                                             ; preds = %8163
  br label %8165

8165:                                             ; preds = %8164
  %8166 = load ptr, ptr %180, align 8, !tbaa !9
  %8167 = load i64, ptr %182, align 8, !tbaa !59
  %8168 = getelementptr inbounds i32, ptr %8166, i64 %8167
  %8169 = load i32, ptr %8168, align 4, !tbaa !5
  %8170 = icmp eq i32 %8169, 12
  br i1 %8170, label %8171, label %8174

8171:                                             ; preds = %8165
  %8172 = load i64, ptr %182, align 8, !tbaa !59
  %8173 = add i64 %8172, 1
  store i64 %8173, ptr %182, align 8, !tbaa !59
  br label %8174

8174:                                             ; preds = %8171, %8165
  br label %8175

8175:                                             ; preds = %8174
  %8176 = load i32, ptr @test_count, align 4, !tbaa !5
  %8177 = add nsw i32 %8176, 1
  store i32 %8177, ptr @test_count, align 4, !tbaa !5
  %8178 = load ptr, ptr %178, align 8, !tbaa !9
  %8179 = load i64, ptr %181, align 8, !tbaa !59
  %8180 = getelementptr inbounds i32, ptr %8178, i64 %8179
  %8181 = load i32, ptr %8180, align 4, !tbaa !5
  %8182 = load ptr, ptr %180, align 8, !tbaa !9
  %8183 = load i64, ptr %182, align 8, !tbaa !59
  %8184 = getelementptr inbounds i32, ptr %8182, i64 %8183
  %8185 = load i32, ptr %8184, align 4, !tbaa !5
  %8186 = icmp eq i32 %8181, %8185
  br i1 %8186, label %8240, label %8187

8187:                                             ; preds = %8175
  br label %8188

8188:                                             ; preds = %8187
  br label %8189

8189:                                             ; preds = %8188
  call void @llvm.lifetime.start.p0(i64 4, ptr %184) #10
  %8190 = call ptr @__errno_location() #11
  %8191 = load i32, ptr %8190, align 4, !tbaa !5
  store i32 %8191, ptr %184, align 4, !tbaa !5
  %8192 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8193 = call i32 @s2n_print_stacktrace(ptr noundef %8192)
  %8194 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8195 = trunc i8 %8194 to i1
  br i1 %8195, label %8196, label %8218

8196:                                             ; preds = %8189
  %8197 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8198 = call i32 @fileno(ptr noundef %8197) #10
  %8199 = call i32 @isatty(i32 noundef %8198) #10
  %8200 = icmp ne i32 %8199, 0
  br i1 %8200, label %8201, label %8218

8201:                                             ; preds = %8196
  %8202 = load i32, ptr %184, align 4, !tbaa !5
  %8203 = call ptr @__errno_location() #11
  store i32 %8202, ptr %8203, align 4, !tbaa !5
  %8204 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8205 = load i32, ptr @test_count, align 4, !tbaa !5
  %8206 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8207 = load i32, ptr %8206, align 4, !tbaa !5
  %8208 = call ptr @s2n_strerror(i32 noundef %8207, ptr noundef @.str.24)
  %8209 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8210 = load i32, ptr %8209, align 4, !tbaa !5
  %8211 = call ptr @s2n_strerror_debug(i32 noundef %8210, ptr noundef @.str.24)
  %8212 = call ptr @__errno_location() #11
  %8213 = load i32, ptr %8212, align 4, !tbaa !5
  %8214 = call ptr @strerror(i32 noundef %8213) #10
  %8215 = call ptr @__errno_location() #11
  %8216 = load i32, ptr %8215, align 4, !tbaa !5
  %8217 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8204, ptr noundef @.str.22, i32 noundef %8205, ptr noundef @.str.90, ptr noundef @.str.21, i32 noundef 518, ptr noundef %8208, ptr noundef %8211, ptr noundef %8214, i32 noundef %8216) #10
  br label %8235

8218:                                             ; preds = %8196, %8189
  %8219 = load i32, ptr %184, align 4, !tbaa !5
  %8220 = call ptr @__errno_location() #11
  store i32 %8219, ptr %8220, align 4, !tbaa !5
  %8221 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8222 = load i32, ptr @test_count, align 4, !tbaa !5
  %8223 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8224 = load i32, ptr %8223, align 4, !tbaa !5
  %8225 = call ptr @s2n_strerror(i32 noundef %8224, ptr noundef @.str.24)
  %8226 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8227 = load i32, ptr %8226, align 4, !tbaa !5
  %8228 = call ptr @s2n_strerror_debug(i32 noundef %8227, ptr noundef @.str.24)
  %8229 = call ptr @__errno_location() #11
  %8230 = load i32, ptr %8229, align 4, !tbaa !5
  %8231 = call ptr @strerror(i32 noundef %8230) #10
  %8232 = call ptr @__errno_location() #11
  %8233 = load i32, ptr %8232, align 4, !tbaa !5
  %8234 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8221, ptr noundef @.str.25, i32 noundef %8222, ptr noundef @.str.90, ptr noundef @.str.21, i32 noundef 518, ptr noundef %8225, ptr noundef %8228, ptr noundef %8231, i32 noundef %8233) #10
  br label %8235

8235:                                             ; preds = %8218, %8201
  call void @llvm.lifetime.end.p0(i64 4, ptr %184) #10
  br label %8236

8236:                                             ; preds = %8235
  br label %8237

8237:                                             ; preds = %8236
  call void @exit(i32 noundef 1) #12
  unreachable

8238:                                             ; No predecessors!
  br label %8239

8239:                                             ; preds = %8238
  br label %8240

8240:                                             ; preds = %8239, %8175
  br label %8241

8241:                                             ; preds = %8240
  br label %8242

8242:                                             ; preds = %8241
  br label %8243

8243:                                             ; preds = %8242
  %8244 = load i64, ptr %181, align 8, !tbaa !59
  %8245 = add i64 %8244, 1
  store i64 %8245, ptr %181, align 8, !tbaa !59
  %8246 = load i64, ptr %182, align 8, !tbaa !59
  %8247 = add i64 %8246, 1
  store i64 %8247, ptr %182, align 8, !tbaa !59
  br label %8092, !llvm.loop !69

8248:                                             ; preds = %8100
  call void @llvm.lifetime.end.p0(i64 8, ptr %180) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %179) #10
  store i32 0, ptr %21, align 4
  br label %8249

8249:                                             ; preds = %8248, %8084
  call void @llvm.lifetime.end.p0(i64 8, ptr %178) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %177) #10
  %8250 = load i32, ptr %21, align 4
  switch i32 %8250, label %8414 [
    i32 0, label %8251
    i32 789, label %8252
  ]

8251:                                             ; preds = %8249
  br label %8252

8252:                                             ; preds = %8251, %8249
  %8253 = load i64, ptr %176, align 8, !tbaa !59
  %8254 = add i64 %8253, 1
  store i64 %8254, ptr %176, align 8, !tbaa !59
  br label %8062, !llvm.loop !70

8255:                                             ; preds = %8067
  br label %8256

8256:                                             ; preds = %8255
  br label %8257

8257:                                             ; preds = %8256
  %8258 = call i32 @s2n_cleanup()
  %8259 = icmp eq i32 %8258, -1
  br i1 %8259, label %8260, label %8313

8260:                                             ; preds = %8257
  br label %8261

8261:                                             ; preds = %8260
  br label %8262

8262:                                             ; preds = %8261
  call void @llvm.lifetime.start.p0(i64 4, ptr %185) #10
  %8263 = call ptr @__errno_location() #11
  %8264 = load i32, ptr %8263, align 4, !tbaa !5
  store i32 %8264, ptr %185, align 4, !tbaa !5
  %8265 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8266 = call i32 @s2n_print_stacktrace(ptr noundef %8265)
  %8267 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8268 = trunc i8 %8267 to i1
  br i1 %8268, label %8269, label %8291

8269:                                             ; preds = %8262
  %8270 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8271 = call i32 @fileno(ptr noundef %8270) #10
  %8272 = call i32 @isatty(i32 noundef %8271) #10
  %8273 = icmp ne i32 %8272, 0
  br i1 %8273, label %8274, label %8291

8274:                                             ; preds = %8269
  %8275 = load i32, ptr %185, align 4, !tbaa !5
  %8276 = call ptr @__errno_location() #11
  store i32 %8275, ptr %8276, align 4, !tbaa !5
  %8277 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8278 = load i32, ptr @test_count, align 4, !tbaa !5
  %8279 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8280 = load i32, ptr %8279, align 4, !tbaa !5
  %8281 = call ptr @s2n_strerror(i32 noundef %8280, ptr noundef @.str.24)
  %8282 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8283 = load i32, ptr %8282, align 4, !tbaa !5
  %8284 = call ptr @s2n_strerror_debug(i32 noundef %8283, ptr noundef @.str.24)
  %8285 = call ptr @__errno_location() #11
  %8286 = load i32, ptr %8285, align 4, !tbaa !5
  %8287 = call ptr @strerror(i32 noundef %8286) #10
  %8288 = call ptr @__errno_location() #11
  %8289 = load i32, ptr %8288, align 4, !tbaa !5
  %8290 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8277, ptr noundef @.str.22, i32 noundef %8278, ptr noundef @.str.91, ptr noundef @.str.21, i32 noundef 523, ptr noundef %8281, ptr noundef %8284, ptr noundef %8287, i32 noundef %8289) #10
  br label %8308

8291:                                             ; preds = %8269, %8262
  %8292 = load i32, ptr %185, align 4, !tbaa !5
  %8293 = call ptr @__errno_location() #11
  store i32 %8292, ptr %8293, align 4, !tbaa !5
  %8294 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8295 = load i32, ptr @test_count, align 4, !tbaa !5
  %8296 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8297 = load i32, ptr %8296, align 4, !tbaa !5
  %8298 = call ptr @s2n_strerror(i32 noundef %8297, ptr noundef @.str.24)
  %8299 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8300 = load i32, ptr %8299, align 4, !tbaa !5
  %8301 = call ptr @s2n_strerror_debug(i32 noundef %8300, ptr noundef @.str.24)
  %8302 = call ptr @__errno_location() #11
  %8303 = load i32, ptr %8302, align 4, !tbaa !5
  %8304 = call ptr @strerror(i32 noundef %8303) #10
  %8305 = call ptr @__errno_location() #11
  %8306 = load i32, ptr %8305, align 4, !tbaa !5
  %8307 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8294, ptr noundef @.str.25, i32 noundef %8295, ptr noundef @.str.91, ptr noundef @.str.21, i32 noundef 523, ptr noundef %8298, ptr noundef %8301, ptr noundef %8304, i32 noundef %8306) #10
  br label %8308

8308:                                             ; preds = %8291, %8274
  call void @llvm.lifetime.end.p0(i64 4, ptr %185) #10
  br label %8309

8309:                                             ; preds = %8308
  br label %8310

8310:                                             ; preds = %8309
  call void @exit(i32 noundef 1) #12
  unreachable

8311:                                             ; No predecessors!
  br label %8312

8312:                                             ; preds = %8311
  br label %8313

8313:                                             ; preds = %8312, %8257
  br label %8314

8314:                                             ; preds = %8313
  br label %8315

8315:                                             ; preds = %8314
  br label %8316

8316:                                             ; preds = %8315
  br label %8317

8317:                                             ; preds = %8316
  %8318 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %8319 = icmp eq i32 %8318, -1
  br i1 %8319, label %8320, label %8373

8320:                                             ; preds = %8317
  br label %8321

8321:                                             ; preds = %8320
  br label %8322

8322:                                             ; preds = %8321
  call void @llvm.lifetime.start.p0(i64 4, ptr %186) #10
  %8323 = call ptr @__errno_location() #11
  %8324 = load i32, ptr %8323, align 4, !tbaa !5
  store i32 %8324, ptr %186, align 4, !tbaa !5
  %8325 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8326 = call i32 @s2n_print_stacktrace(ptr noundef %8325)
  %8327 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8328 = trunc i8 %8327 to i1
  br i1 %8328, label %8329, label %8351

8329:                                             ; preds = %8322
  %8330 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8331 = call i32 @fileno(ptr noundef %8330) #10
  %8332 = call i32 @isatty(i32 noundef %8331) #10
  %8333 = icmp ne i32 %8332, 0
  br i1 %8333, label %8334, label %8351

8334:                                             ; preds = %8329
  %8335 = load i32, ptr %186, align 4, !tbaa !5
  %8336 = call ptr @__errno_location() #11
  store i32 %8335, ptr %8336, align 4, !tbaa !5
  %8337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8338 = load i32, ptr @test_count, align 4, !tbaa !5
  %8339 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8340 = load i32, ptr %8339, align 4, !tbaa !5
  %8341 = call ptr @s2n_strerror(i32 noundef %8340, ptr noundef @.str.24)
  %8342 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8343 = load i32, ptr %8342, align 4, !tbaa !5
  %8344 = call ptr @s2n_strerror_debug(i32 noundef %8343, ptr noundef @.str.24)
  %8345 = call ptr @__errno_location() #11
  %8346 = load i32, ptr %8345, align 4, !tbaa !5
  %8347 = call ptr @strerror(i32 noundef %8346) #10
  %8348 = call ptr @__errno_location() #11
  %8349 = load i32, ptr %8348, align 4, !tbaa !5
  %8350 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8337, ptr noundef @.str.22, i32 noundef %8338, ptr noundef @.str.92, ptr noundef @.str.21, i32 noundef 523, ptr noundef %8341, ptr noundef %8344, ptr noundef %8347, i32 noundef %8349) #10
  br label %8368

8351:                                             ; preds = %8329, %8322
  %8352 = load i32, ptr %186, align 4, !tbaa !5
  %8353 = call ptr @__errno_location() #11
  store i32 %8352, ptr %8353, align 4, !tbaa !5
  %8354 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8355 = load i32, ptr @test_count, align 4, !tbaa !5
  %8356 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8357 = load i32, ptr %8356, align 4, !tbaa !5
  %8358 = call ptr @s2n_strerror(i32 noundef %8357, ptr noundef @.str.24)
  %8359 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8360 = load i32, ptr %8359, align 4, !tbaa !5
  %8361 = call ptr @s2n_strerror_debug(i32 noundef %8360, ptr noundef @.str.24)
  %8362 = call ptr @__errno_location() #11
  %8363 = load i32, ptr %8362, align 4, !tbaa !5
  %8364 = call ptr @strerror(i32 noundef %8363) #10
  %8365 = call ptr @__errno_location() #11
  %8366 = load i32, ptr %8365, align 4, !tbaa !5
  %8367 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8354, ptr noundef @.str.25, i32 noundef %8355, ptr noundef @.str.92, ptr noundef @.str.21, i32 noundef 523, ptr noundef %8358, ptr noundef %8361, ptr noundef %8364, i32 noundef %8366) #10
  br label %8368

8368:                                             ; preds = %8351, %8334
  call void @llvm.lifetime.end.p0(i64 4, ptr %186) #10
  br label %8369

8369:                                             ; preds = %8368
  br label %8370

8370:                                             ; preds = %8369
  call void @exit(i32 noundef 1) #12
  unreachable

8371:                                             ; No predecessors!
  br label %8372

8372:                                             ; preds = %8371
  br label %8373

8373:                                             ; preds = %8372, %8317
  br label %8374

8374:                                             ; preds = %8373
  br label %8375

8375:                                             ; preds = %8374
  %8376 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8377 = trunc i8 %8376 to i1
  br i1 %8377, label %8378, label %8394

8378:                                             ; preds = %8375
  %8379 = load ptr, ptr @stdout, align 8, !tbaa !9
  %8380 = call i32 @fileno(ptr noundef %8379) #10
  %8381 = call i32 @isatty(i32 noundef %8380) #10
  %8382 = icmp ne i32 %8381, 0
  br i1 %8382, label %8383, label %8394

8383:                                             ; preds = %8378
  %8384 = load i32, ptr @test_count, align 4, !tbaa !5
  %8385 = icmp ne i32 %8384, 0
  br i1 %8385, label %8386, label %8390

8386:                                             ; preds = %8383
  %8387 = load ptr, ptr @stdout, align 8, !tbaa !9
  %8388 = load i32, ptr @test_count, align 4, !tbaa !5
  %8389 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8387, ptr noundef @.str.93, i32 noundef %8388) #10
  br label %8393

8390:                                             ; preds = %8383
  %8391 = load ptr, ptr @stdout, align 8, !tbaa !9
  %8392 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8391, ptr noundef @.str.94) #10
  br label %8393

8393:                                             ; preds = %8390, %8386
  br label %8405

8394:                                             ; preds = %8378, %8375
  %8395 = load i32, ptr @test_count, align 4, !tbaa !5
  %8396 = icmp ne i32 %8395, 0
  br i1 %8396, label %8397, label %8401

8397:                                             ; preds = %8394
  %8398 = load ptr, ptr @stdout, align 8, !tbaa !9
  %8399 = load i32, ptr @test_count, align 4, !tbaa !5
  %8400 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8398, ptr noundef @.str.95, i32 noundef %8399) #10
  br label %8404

8401:                                             ; preds = %8394
  %8402 = load ptr, ptr @stdout, align 8, !tbaa !9
  %8403 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8402, ptr noundef @.str.96) #10
  br label %8404

8404:                                             ; preds = %8401, %8397
  br label %8405

8405:                                             ; preds = %8404, %8393
  store i32 0, ptr %3, align 4
  store i32 1, ptr %21, align 4
  br label %8410

8406:                                             ; No predecessors!
  br label %8407

8407:                                             ; preds = %8406
  br label %8408

8408:                                             ; preds = %8407
  br label %8409

8409:                                             ; preds = %8408
  store i32 0, ptr %21, align 4
  br label %8410

8410:                                             ; preds = %8409, %8405
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #10
  call void @llvm.lifetime.end.p0(i64 512, ptr %10) #10
  %8411 = load i32, ptr %21, align 4
  switch i32 %8411, label %8414 [
    i32 0, label %8412
    i32 1, label %8412
  ]

8412:                                             ; preds = %8410, %8410
  %8413 = load i32, ptr %3, align 4
  ret i32 %8413

8414:                                             ; preds = %8410, %8249, %1250
  unreachable
}

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

declare i32 @fflush(ptr noundef) #8

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) #8

declare i32 @s2n_print_stacktrace(ptr noundef) #8

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

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

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

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

declare i32 @s2n_enable_atexit() #8

declare i32 @s2n_init() #8

declare i32 @s2n_disable_tls13_in_test(...) #8

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

declare ptr @s2n_connection_new(i32 noundef) #8

declare i32 @s2n_connection_free(ptr noundef) #8

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_advance_message(ptr noundef) #3

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

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

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_setup_handler_to_expect(i32 noundef, i8 noundef zeroext) #3

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_test_write_header(ptr noundef, i8 noundef zeroext, i8 noundef zeroext) #3

declare void @s2n_debug_info_reset() #8

declare i32 @s2n_stuffer_wipe(ptr noundef) #8

declare i32 @s2n_stuffer_free(ptr noundef) #8

; Function Attrs: nounwind willreturn memory(read)
declare i32 @strcmp(ptr noundef, ptr noundef) #4

declare i32 @s2n_cleanup() #8

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

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

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


; 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_stuffer = type { %struct.s2n_blob, i32, i32, i32, i8 }
%struct.s2n_blob = type { ptr, 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
@.str.11 = external hidden unnamed_addr constant [8 x i8], align 1
@tls12_handshake_type_names = external hidden local_unnamed_addr global [8 x ptr], align 16
@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 [83 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 [56 x i8], align 1
@invalid_handshake = external hidden global [32 x i32], align 16
@.str.29 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [135 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [209 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [209 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [56 x i8], align 1
@expected_handler_called = external hidden local_unnamed_addr global i32, align 4
@.str.44 = external hidden unnamed_addr constant [37 x i8], align 1
@unexpected_handler_called = external hidden local_unnamed_addr global i32, align 4
@.str.45 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [196 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [347 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [110 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [124 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [112 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [105 x i8], align 1
@__const.main.expected = external hidden unnamed_addr constant [17 x ptr], align 16
@.str.88 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.96 = external hidden unnamed_addr constant [25 x i8], align 1
@tls13_handshakes = external hidden local_unnamed_addr global <{ <{ i32, i32, [30 x i32] }>, <{ i32, i32, i32, i32, i32, i32, [26 x i32] }>, [32 x i32], <{ [8 x i32], [24 x i32] }>, [32 x i32], [32 x i32], [32 x i32], <{ [11 x i32], [21 x i32] }>, [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], <{ [10 x i32], [22 x i32] }>, <{ i32, i32, [30 x i32] }>, <{ [8 x i32], [24 x i32] }>, [32 x i32], <{ [10 x i32], [22 x i32] }>, [32 x i32], [32 x i32], [32 x i32], <{ [13 x i32], [19 x i32] }>, [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], <{ [12 x i32], [20 x i32] }>, [32 x i32], <{ [8 x i32], [24 x i32] }>, [32 x i32], <{ [10 x i32], [22 x i32] }>, [32 x i32], [32 x i32], [32 x i32], <{ [13 x i32], [19 x i32] }>, [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], <{ [12 x i32], [20 x i32] }>, [32 x i32], <{ [10 x i32], [22 x i32] }>, [32 x i32], <{ [12 x i32], [20 x i32] }>, [32 x i32], [32 x i32], [32 x i32], <{ [15 x i32], [17 x i32] }>, [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], <{ [14 x i32], [18 x i32] }>, [32 x i32], <{ i32, i32, i32, i32, i32, i32, i32, [25 x i32] }>, [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], <{ [9 x i32], [23 x i32] }>, [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], <{ i32, i32, i32, [29 x i32] }>, <{ [8 x i32], [24 x i32] }>, [32 x i32], <{ [10 x i32], [22 x i32] }>, [32 x i32], [32 x i32], [32 x i32], <{ [13 x i32], [19 x i32] }>, [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], <{ [12 x i32], [20 x i32] }>, <{ i32, i32, i32, [29 x i32] }>, <{ [10 x i32], [22 x i32] }>, [32 x i32], <{ [12 x i32], [20 x i32] }>, [32 x i32], [32 x i32], [32 x i32], <{ [15 x i32], [17 x i32] }>, [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], <{ [14 x i32], [18 x i32] }>, [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], <{ [9 x i32], [23 x i32] }>, [30 x [32 x i32]] }>, align 16
@handshakes = external hidden global <{ <{ i32, i32, [30 x i32] }>, <{ i32, i32, i32, i32, i32, i32, i32, [25 x i32] }>, [32 x i32], <{ [10 x i32], [22 x i32] }>, [32 x i32], [32 x i32], [32 x i32], <{ [13 x i32], [19 x i32] }>, [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], <{ [12 x i32], [20 x i32] }>, [32 x i32], [32 x i32], [32 x i32], <{ [11 x i32], [21 x i32] }>, [32 x i32], [32 x i32], [32 x i32], <{ [14 x i32], [18 x i32] }>, [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], <{ [13 x i32], [19 x i32] }>, [32 x i32], [32 x i32], [32 x i32], <{ [11 x i32], [21 x i32] }>, [32 x i32], [32 x i32], [32 x i32], <{ [14 x i32], [18 x i32] }>, [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], <{ [13 x i32], [19 x i32] }>, [32 x i32], [32 x i32], [32 x i32], <{ [12 x i32], [20 x i32] }>, [32 x i32], [32 x i32], [32 x i32], <{ [15 x i32], [17 x i32] }>, [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], <{ [14 x i32], [18 x i32] }>, [32 x i32], <{ [8 x i32], [24 x i32] }>, [32 x i32], <{ [11 x i32], [21 x i32] }>, [32 x i32], [32 x i32], [32 x i32], <{ [14 x i32], [18 x i32] }>, [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], <{ [13 x i32], [19 x i32] }>, [32 x i32], [32 x i32], [32 x i32], <{ [12 x i32], [20 x i32] }>, [32 x i32], [32 x i32], [32 x i32], <{ [15 x i32], [17 x i32] }>, [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], <{ [14 x i32], [18 x i32] }>, [32 x i32], [32 x i32], [32 x i32], <{ [12 x i32], [20 x i32] }>, [32 x i32], [32 x i32], [32 x i32], <{ [15 x i32], [17 x i32] }>, [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], <{ [14 x i32], [18 x i32] }>, [32 x i32], [32 x i32], [32 x i32], <{ [13 x i32], [19 x i32] }>, [32 x i32], [32 x i32], [32 x i32], <{ [16 x i32], [16 x i32] }>, [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], <{ [15 x i32], [17 x i32] }>, [32 x i32], <{ [8 x i32], [24 x i32] }>, [32 x i32], <{ [11 x i32], [21 x i32] }>, [32 x i32], [32 x i32], [32 x i32], <{ [14 x i32], [18 x i32] }>, [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], <{ [13 x i32], [19 x i32] }>, [32 x i32], [32 x i32], [32 x i32], <{ [12 x i32], [20 x i32] }>, [32 x i32], [32 x i32], [32 x i32], <{ [15 x i32], [17 x i32] }>, [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], <{ [14 x i32], [18 x i32] }>, [32 x i32], [32 x i32], [32 x i32], <{ [12 x i32], [20 x i32] }>, [32 x i32], [32 x i32], [32 x i32], <{ [15 x i32], [17 x i32] }>, [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], <{ [14 x i32], [18 x i32] }>, [32 x i32], [32 x i32], [32 x i32], <{ [13 x i32], [19 x i32] }>, [32 x i32], [32 x i32], [32 x i32], <{ [16 x i32], [16 x i32] }>, [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], <{ [15 x i32], [17 x i32] }>, [32 x i32], <{ [9 x i32], [23 x i32] }>, [32 x i32], <{ [12 x i32], [20 x i32] }>, [32 x i32], [32 x i32], [32 x i32], <{ [15 x i32], [17 x i32] }>, [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], <{ [14 x i32], [18 x i32] }>, [32 x i32], [32 x i32], [32 x i32], <{ [13 x i32], [19 x i32] }>, [32 x i32], [32 x i32], [32 x i32], <{ [16 x i32], [16 x i32] }>, [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], <{ [15 x i32], [17 x i32] }>, [32 x i32], [32 x i32], [32 x i32], <{ [13 x i32], [19 x i32] }>, [32 x i32], [32 x i32], [32 x i32], <{ [16 x i32], [16 x i32] }>, [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], <{ [15 x i32], [17 x i32] }>, [32 x i32], [32 x i32], [32 x i32], <{ [14 x i32], [18 x i32] }>, [32 x i32], [32 x i32], [32 x i32], <{ [17 x i32], [15 x i32] }>, [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], [32 x i32], <{ [16 x i32], [16 x i32] }> }>, align 16

; 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

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

; Function Attrs: nounwind uwtable
declare dso_local ptr @s2n_connection_get_last_message_name(ptr noundef) local_unnamed_addr #3

; Function Attrs: nounwind uwtable
declare dso_local ptr @s2n_connection_get_handshake_type_name(ptr noundef) local_unnamed_addr #3

; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: read)
declare i64 @strlen(ptr nocapture noundef) local_unnamed_addr #4

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

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_handshake_read_io(ptr noundef) local_unnamed_addr #3

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

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

24:                                               ; preds = %17
  %25 = load ptr, ptr @stderr, align 8, !tbaa !9
  %26 = tail call i32 @fileno(ptr noundef %25) #12
  %27 = tail call i32 @isatty(i32 noundef %26) #12
  %.not644 = icmp eq i32 %27, 0
  br i1 %.not644, label %28, label %29

28:                                               ; preds = %24, %17
  br label %29

29:                                               ; preds = %24, %28
  %.str.25.sink = phi ptr [ @.str.25, %28 ], [ @.str.22, %24 ]
  store i32 %19, ptr %18, align 4, !tbaa !5
  %30 = load ptr, ptr @stderr, align 8, !tbaa !9
  %31 = load i32, ptr @test_count, align 4, !tbaa !5
  %32 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %33 = load i32, ptr %32, align 4, !tbaa !5
  %34 = tail call ptr @s2n_strerror(i32 noundef %33, ptr noundef nonnull @.str.24) #12
  %35 = load i32, ptr %32, align 4, !tbaa !5
  %36 = tail call ptr @s2n_strerror_debug(i32 noundef %35, ptr noundef nonnull @.str.24) #12
  %37 = load i32, ptr %18, align 4, !tbaa !5
  %38 = tail call ptr @strerror(i32 noundef %37) #12
  %39 = load i32, ptr %18, align 4, !tbaa !5
  %40 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %30, ptr noundef nonnull %.str.25.sink, i32 noundef %31, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.21, i32 noundef 91, ptr noundef %34, ptr noundef %36, ptr noundef %38, i32 noundef %39) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

41:                                               ; preds = %2
  %42 = load i32, ptr @test_count, align 4, !tbaa !5
  %43 = add nsw i32 %42, 1
  store i32 %43, ptr @test_count, align 4, !tbaa !5
  %44 = tail call i32 @s2n_enable_atexit() #12
  %45 = icmp eq i32 %44, -1
  br i1 %45, label %46, label %70

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

53:                                               ; preds = %46
  %54 = load ptr, ptr @stderr, align 8, !tbaa !9
  %55 = tail call i32 @fileno(ptr noundef %54) #12
  %56 = tail call i32 @isatty(i32 noundef %55) #12
  %.not643 = icmp eq i32 %56, 0
  br i1 %.not643, label %57, label %58

57:                                               ; preds = %53, %46
  br label %58

58:                                               ; preds = %53, %57
  %.str.25.sink826 = phi ptr [ @.str.25, %57 ], [ @.str.22, %53 ]
  store i32 %48, ptr %47, align 4, !tbaa !5
  %59 = load ptr, ptr @stderr, align 8, !tbaa !9
  %60 = load i32, ptr @test_count, align 4, !tbaa !5
  %61 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %62 = load i32, ptr %61, align 4, !tbaa !5
  %63 = tail call ptr @s2n_strerror(i32 noundef %62, ptr noundef nonnull @.str.24) #12
  %64 = load i32, ptr %61, align 4, !tbaa !5
  %65 = tail call ptr @s2n_strerror_debug(i32 noundef %64, ptr noundef nonnull @.str.24) #12
  %66 = load i32, ptr %47, align 4, !tbaa !5
  %67 = tail call ptr @strerror(i32 noundef %66) #12
  %68 = load i32, ptr %47, align 4, !tbaa !5
  %69 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %59, ptr noundef nonnull %.str.25.sink826, i32 noundef %60, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.21, i32 noundef 91, ptr noundef %63, ptr noundef %65, ptr noundef %67, i32 noundef %68) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

70:                                               ; preds = %41
  %71 = tail call i32 @s2n_init() #12
  %72 = icmp eq i32 %71, -1
  br i1 %72, label %73, label %97

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

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

84:                                               ; preds = %80, %73
  br label %85

85:                                               ; preds = %80, %84
  %.str.25.sink837 = phi ptr [ @.str.25, %84 ], [ @.str.22, %80 ]
  store i32 %75, ptr %74, align 4, !tbaa !5
  %86 = load ptr, ptr @stderr, align 8, !tbaa !9
  %87 = load i32, ptr @test_count, align 4, !tbaa !5
  %88 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %89 = load i32, ptr %88, align 4, !tbaa !5
  %90 = tail call ptr @s2n_strerror(i32 noundef %89, ptr noundef nonnull @.str.24) #12
  %91 = load i32, ptr %88, align 4, !tbaa !5
  %92 = tail call ptr @s2n_strerror_debug(i32 noundef %91, ptr noundef nonnull @.str.24) #12
  %93 = load i32, ptr %74, align 4, !tbaa !5
  %94 = tail call ptr @strerror(i32 noundef %93) #12
  %95 = load i32, ptr %74, align 4, !tbaa !5
  %96 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %86, ptr noundef nonnull %.str.25.sink837, i32 noundef %87, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.21, i32 noundef 91, ptr noundef %90, ptr noundef %92, ptr noundef %94, i32 noundef %95) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

97:                                               ; preds = %70
  %98 = load i32, ptr @test_count, align 4, !tbaa !5
  %99 = add nsw i32 %98, 1
  store i32 %99, ptr @test_count, align 4, !tbaa !5
  %100 = tail call i32 (...) @s2n_disable_tls13_in_test() #12
  %101 = icmp eq i32 %100, -1
  br i1 %101, label %102, label %126

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

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

113:                                              ; preds = %109, %102
  br label %114

114:                                              ; preds = %109, %113
  %.str.25.sink848 = phi ptr [ @.str.25, %113 ], [ @.str.22, %109 ]
  store i32 %104, ptr %103, align 4, !tbaa !5
  %115 = load ptr, ptr @stderr, align 8, !tbaa !9
  %116 = load i32, ptr @test_count, align 4, !tbaa !5
  %117 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %118 = load i32, ptr %117, align 4, !tbaa !5
  %119 = tail call ptr @s2n_strerror(i32 noundef %118, ptr noundef nonnull @.str.24) #12
  %120 = load i32, ptr %117, align 4, !tbaa !5
  %121 = tail call ptr @s2n_strerror_debug(i32 noundef %120, ptr noundef nonnull @.str.24) #12
  %122 = load i32, ptr %103, align 4, !tbaa !5
  %123 = tail call ptr @strerror(i32 noundef %122) #12
  %124 = load i32, ptr %103, align 4, !tbaa !5
  %125 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %115, ptr noundef nonnull %.str.25.sink848, i32 noundef %116, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.21, i32 noundef 92, ptr noundef %119, ptr noundef %121, ptr noundef %123, i32 noundef %124) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

126:                                              ; preds = %97
  call void @llvm.lifetime.start.p0(i64 512, ptr nonnull %3) #12
  br label %131

127:                                              ; preds = %138
  %128 = load i32, ptr @test_count, align 4, !tbaa !5
  %129 = add nsw i32 %128, 1
  store i32 %129, ptr @test_count, align 4, !tbaa !5
  %130 = icmp sgt i32 %.1, 0
  br i1 %130, label %163, label %139

131:                                              ; preds = %126, %138
  %indvars.iv = phi i64 [ 0, %126 ], [ %indvars.iv.next, %138 ]
  %.0674 = phi i32 [ 0, %126 ], [ %.1, %138 ]
  %132 = getelementptr inbounds [256 x [32 x i32]], ptr @handshakes, i64 0, i64 %indvars.iv
  %bcmp = tail call i32 @bcmp(ptr noundef nonnull dereferenceable(32) %132, ptr noundef nonnull dereferenceable(32) @invalid_handshake, i64 32)
  %.not640 = icmp eq i32 %bcmp, 0
  br i1 %.not640, label %138, label %133

133:                                              ; preds = %131
  %134 = trunc i64 %indvars.iv to i16
  %135 = sext i32 %.0674 to i64
  %136 = getelementptr inbounds [256 x i16], ptr %3, i64 0, i64 %135
  store i16 %134, ptr %136, align 2, !tbaa !15
  %137 = add nsw i32 %.0674, 1
  br label %138

138:                                              ; preds = %131, %133
  %.1 = phi i32 [ %137, %133 ], [ %.0674, %131 ]
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, 256
  br i1 %exitcond.not, label %127, label %131, !llvm.loop !17

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

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

150:                                              ; preds = %146, %139
  br label %151

151:                                              ; preds = %146, %150
  %.str.25.sink859 = phi ptr [ @.str.25, %150 ], [ @.str.22, %146 ]
  store i32 %141, ptr %140, align 4, !tbaa !5
  %152 = load ptr, ptr @stderr, align 8, !tbaa !9
  %153 = load i32, ptr @test_count, align 4, !tbaa !5
  %154 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %155 = load i32, ptr %154, align 4, !tbaa !5
  %156 = tail call ptr @s2n_strerror(i32 noundef %155, ptr noundef nonnull @.str.24) #12
  %157 = load i32, ptr %154, align 4, !tbaa !5
  %158 = tail call ptr @s2n_strerror_debug(i32 noundef %157, ptr noundef nonnull @.str.24) #12
  %159 = load i32, ptr %140, align 4, !tbaa !5
  %160 = tail call ptr @strerror(i32 noundef %159) #12
  %161 = load i32, ptr %140, align 4, !tbaa !5
  %162 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %152, ptr noundef nonnull %.str.25.sink859, i32 noundef %153, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.21, i32 noundef 103, ptr noundef %156, ptr noundef %158, ptr noundef %160, i32 noundef %161) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

163:                                              ; preds = %127
  %164 = add nsw i32 %128, 2
  store i32 %164, ptr @test_count, align 4, !tbaa !5
  %165 = icmp ult i32 %.1, 256
  br i1 %165, label %190, label %166

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

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

177:                                              ; preds = %173, %166
  br label %178

178:                                              ; preds = %173, %177
  %.str.25.sink870 = phi ptr [ @.str.25, %177 ], [ @.str.22, %173 ]
  store i32 %168, ptr %167, align 4, !tbaa !5
  %179 = load ptr, ptr @stderr, align 8, !tbaa !9
  %180 = load i32, ptr @test_count, align 4, !tbaa !5
  %181 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %182 = load i32, ptr %181, align 4, !tbaa !5
  %183 = tail call ptr @s2n_strerror(i32 noundef %182, ptr noundef nonnull @.str.24) #12
  %184 = load i32, ptr %181, align 4, !tbaa !5
  %185 = tail call ptr @s2n_strerror_debug(i32 noundef %184, ptr noundef nonnull @.str.24) #12
  %186 = load i32, ptr %167, align 4, !tbaa !5
  %187 = tail call ptr @strerror(i32 noundef %186) #12
  %188 = load i32, ptr %167, align 4, !tbaa !5
  %189 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %179, ptr noundef nonnull %.str.25.sink870, i32 noundef %180, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.21, i32 noundef 104, ptr noundef %183, ptr noundef %185, ptr noundef %187, i32 noundef %188) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

190:                                              ; preds = %163
  %191 = tail call ptr @s2n_connection_new(i32 noundef 1) #12
  %192 = getelementptr inbounds i8, ptr %191, i64 220
  store i8 33, ptr %192, align 4, !tbaa !19
  %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 = getelementptr inbounds i8, ptr %191, i64 2204
  %196 = load i32, ptr %195, align 4, !tbaa !45
  %.not501 = icmp eq i32 %196, 2
  br i1 %.not501, label %197, label %221

197:                                              ; preds = %190
  %198 = tail call ptr @__errno_location() #13
  %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) #12
  %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) #12
  %207 = tail call i32 @isatty(i32 noundef %206) #12
  %.not502 = icmp eq i32 %207, 0
  br i1 %.not502, label %208, label %209

208:                                              ; preds = %204, %197
  br label %209

209:                                              ; preds = %204, %208
  %.str.25.sink881 = 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) #12
  %215 = load i32, ptr %212, align 4, !tbaa !5
  %216 = tail call ptr @s2n_strerror_debug(i32 noundef %215, ptr noundef nonnull @.str.24) #12
  %217 = load i32, ptr %198, align 4, !tbaa !5
  %218 = tail call ptr @strerror(i32 noundef %217) #12
  %219 = load i32, ptr %198, align 4, !tbaa !5
  %220 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %210, ptr noundef nonnull %.str.25.sink881, i32 noundef %211, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.21, i32 noundef 110, ptr noundef %214, ptr noundef %216, ptr noundef %218, i32 noundef %219) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

221:                                              ; preds = %190
  %222 = add nsw i32 %193, 3
  store i32 %222, ptr @test_count, align 4, !tbaa !5
  %223 = tail call i32 @s2n_connection_free(ptr noundef nonnull %191) #12
  %224 = icmp eq i32 %223, -1
  br i1 %224, label %225, label %.lr.ph

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

232:                                              ; preds = %225
  %233 = load ptr, ptr @stderr, align 8, !tbaa !9
  %234 = tail call i32 @fileno(ptr noundef %233) #12
  %235 = tail call i32 @isatty(i32 noundef %234) #12
  %.not639 = icmp eq i32 %235, 0
  br i1 %.not639, label %236, label %237

236:                                              ; preds = %232, %225
  br label %237

237:                                              ; preds = %232, %236
  %.str.25.sink892 = phi ptr [ @.str.25, %236 ], [ @.str.22, %232 ]
  store i32 %227, ptr %226, align 4, !tbaa !5
  %238 = load ptr, ptr @stderr, align 8, !tbaa !9
  %239 = load i32, ptr @test_count, align 4, !tbaa !5
  %240 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %241 = load i32, ptr %240, align 4, !tbaa !5
  %242 = tail call ptr @s2n_strerror(i32 noundef %241, ptr noundef nonnull @.str.24) #12
  %243 = load i32, ptr %240, align 4, !tbaa !5
  %244 = tail call ptr @s2n_strerror_debug(i32 noundef %243, ptr noundef nonnull @.str.24) #12
  %245 = load i32, ptr %226, align 4, !tbaa !5
  %246 = tail call ptr @strerror(i32 noundef %245) #12
  %247 = load i32, ptr %226, align 4, !tbaa !5
  %248 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %238, ptr noundef nonnull %.str.25.sink892, i32 noundef %239, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.21, i32 noundef 112, ptr noundef %242, ptr noundef %244, ptr noundef %246, i32 noundef %247) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

.lr.ph:                                           ; preds = %221
  %249 = tail call ptr @s2n_connection_new(i32 noundef 0) #12
  %250 = getelementptr inbounds i8, ptr %249, i64 220
  store i8 33, ptr %250, align 4, !tbaa !19
  %251 = getelementptr inbounds i8, ptr %249, i64 2172
  %252 = getelementptr inbounds i8, ptr %249, i64 2176
  %253 = getelementptr inbounds i8, ptr %249, i64 2204
  %wide.trip.count = zext nneg i32 %.1 to i64
  br label %258

._crit_edge:                                      ; preds = %.loopexit653
  %254 = load i32, ptr @test_count, align 4, !tbaa !5
  %255 = add nsw i32 %254, 1
  store i32 %255, ptr @test_count, align 4, !tbaa !5
  %256 = tail call i32 @s2n_connection_free(ptr noundef %249) #12
  %257 = icmp eq i32 %256, -1
  br i1 %257, label %484, label %.lr.ph685.preheader

.lr.ph685.preheader:                              ; preds = %._crit_edge
  %test_count.promoted679 = load i32, ptr @test_count, align 4, !tbaa !5
  %smax = tail call i32 @llvm.smax.i32(i32 %.1, i32 1)
  %wide.trip.count753 = zext nneg i32 %smax to i64
  br label %.lr.ph685

258:                                              ; preds = %.lr.ph, %.loopexit653
  %indvars.iv743 = phi i64 [ 0, %.lr.ph ], [ %indvars.iv.next744, %.loopexit653 ]
  %259 = getelementptr inbounds [256 x i16], ptr %3, i64 0, i64 %indvars.iv743
  %260 = load i16, ptr %259, align 2, !tbaa !15
  %261 = zext i16 %260 to i32
  store i32 %261, ptr %251, align 4, !tbaa !46
  %262 = zext i16 %260 to i64
  %263 = getelementptr inbounds [256 x [32 x i32]], ptr @handshakes, i64 0, i64 %262, i64 0
  %264 = load i32, ptr %263, align 16, !tbaa !5
  %265 = icmp eq i32 %264, 11
  br i1 %265, label %266, label %360

266:                                              ; preds = %480, %476, %472, %468, %464, %460, %456, %452, %448, %444, %440, %436, %432, %428, %424, %420, %416, %412, %408, %404, %400, %396, %392, %388, %384, %380, %376, %372, %368, %364, %360, %258
  %.0477675.lcssa.wide = phi i32 [ 0, %258 ], [ 1, %360 ], [ 2, %364 ], [ 3, %368 ], [ 4, %372 ], [ 5, %376 ], [ 6, %380 ], [ 7, %384 ], [ 8, %388 ], [ 9, %392 ], [ 10, %396 ], [ 11, %400 ], [ 12, %404 ], [ 13, %408 ], [ 14, %412 ], [ 15, %416 ], [ 16, %420 ], [ 17, %424 ], [ 18, %428 ], [ 19, %432 ], [ 20, %436 ], [ 21, %440 ], [ 22, %444 ], [ 23, %448 ], [ 24, %452 ], [ 25, %456 ], [ 26, %460 ], [ 27, %464 ], [ 28, %468 ], [ 29, %472 ], [ 30, %476 ], [ 31, %480 ]
  %267 = add nsw i32 %.0477675.lcssa.wide, -1
  store i32 %267, ptr %252, align 8, !tbaa !47
  %268 = load i32, ptr @test_count, align 4, !tbaa !5
  %269 = add nsw i32 %268, 1
  store i32 %269, ptr @test_count, align 4, !tbaa !5
  %270 = tail call i32 @s2n_advance_message(ptr noundef nonnull %249)
  %271 = icmp eq i32 %270, -1
  br i1 %271, label %272, label %296

272:                                              ; preds = %266
  %273 = tail call ptr @__errno_location() #13
  %274 = load i32, ptr %273, align 4, !tbaa !5
  %275 = load ptr, ptr @stderr, align 8, !tbaa !9
  %276 = tail call i32 @s2n_print_stacktrace(ptr noundef %275) #12
  %277 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %278 = trunc nuw i8 %277 to i1
  br i1 %278, label %279, label %283

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

283:                                              ; preds = %279, %272
  br label %284

284:                                              ; preds = %279, %283
  %.str.25.sink903 = phi ptr [ @.str.25, %283 ], [ @.str.22, %279 ]
  store i32 %274, ptr %273, align 4, !tbaa !5
  %285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %286 = load i32, ptr @test_count, align 4, !tbaa !5
  %287 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %288 = load i32, ptr %287, align 4, !tbaa !5
  %289 = tail call ptr @s2n_strerror(i32 noundef %288, ptr noundef nonnull @.str.24) #12
  %290 = load i32, ptr %287, align 4, !tbaa !5
  %291 = tail call ptr @s2n_strerror_debug(i32 noundef %290, ptr noundef nonnull @.str.24) #12
  %292 = load i32, ptr %273, align 4, !tbaa !5
  %293 = tail call ptr @strerror(i32 noundef %292) #12
  %294 = load i32, ptr %273, align 4, !tbaa !5
  %295 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %285, ptr noundef nonnull %.str.25.sink903, i32 noundef %286, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.21, i32 noundef 129, ptr noundef %289, ptr noundef %291, ptr noundef %293, i32 noundef %294) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

296:                                              ; preds = %266
  %297 = load i32, ptr @test_count, align 4, !tbaa !5
  %298 = add nsw i32 %297, 1
  store i32 %298, ptr @test_count, align 4, !tbaa !5
  %299 = load i32, ptr %252, align 8, !tbaa !47
  %300 = icmp eq i32 %299, %.0477675.lcssa.wide
  br i1 %300, label %325, label %301

301:                                              ; preds = %296
  %302 = tail call ptr @__errno_location() #13
  %303 = load i32, ptr %302, align 4, !tbaa !5
  %304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %305 = tail call i32 @s2n_print_stacktrace(ptr noundef %304) #12
  %306 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %307 = trunc nuw i8 %306 to i1
  br i1 %307, label %308, label %312

308:                                              ; preds = %301
  %309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %310 = tail call i32 @fileno(ptr noundef %309) #12
  %311 = tail call i32 @isatty(i32 noundef %310) #12
  %.not636 = icmp eq i32 %311, 0
  br i1 %.not636, label %312, label %313

312:                                              ; preds = %308, %301
  br label %313

313:                                              ; preds = %308, %312
  %.str.25.sink914 = phi ptr [ @.str.25, %312 ], [ @.str.22, %308 ]
  store i32 %303, ptr %302, align 4, !tbaa !5
  %314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %315 = load i32, ptr @test_count, align 4, !tbaa !5
  %316 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %317 = load i32, ptr %316, align 4, !tbaa !5
  %318 = tail call ptr @s2n_strerror(i32 noundef %317, ptr noundef nonnull @.str.24) #12
  %319 = load i32, ptr %316, align 4, !tbaa !5
  %320 = tail call ptr @s2n_strerror_debug(i32 noundef %319, ptr noundef nonnull @.str.24) #12
  %321 = load i32, ptr %302, align 4, !tbaa !5
  %322 = tail call ptr @strerror(i32 noundef %321) #12
  %323 = load i32, ptr %302, align 4, !tbaa !5
  %324 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %314, ptr noundef nonnull %.str.25.sink914, i32 noundef %315, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.21, i32 noundef 131, ptr noundef %318, ptr noundef %320, ptr noundef %322, i32 noundef %323) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

325:                                              ; preds = %296
  %326 = add nsw i32 %297, 2
  store i32 %326, ptr @test_count, align 4, !tbaa !5
  %327 = load i32, ptr %253, align 4, !tbaa !45
  %328 = icmp eq i32 %327, 2
  %329 = select i1 %328, ptr @tls13_handshakes, ptr @handshakes
  %330 = load i32, ptr %251, align 4, !tbaa !46
  %331 = zext i32 %330 to i64
  %332 = zext nneg i32 %.0477675.lcssa.wide to i64
  %333 = getelementptr inbounds [32 x i32], ptr %329, i64 %331, i64 %332
  %334 = load i32, ptr %333, align 4, !tbaa !5
  %335 = icmp eq i32 %334, 11
  br i1 %335, label %.loopexit653, label %336

336:                                              ; preds = %325
  %337 = tail call ptr @__errno_location() #13
  %338 = load i32, ptr %337, align 4, !tbaa !5
  %339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %340 = tail call i32 @s2n_print_stacktrace(ptr noundef %339) #12
  %341 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %342 = trunc nuw i8 %341 to i1
  br i1 %342, label %343, label %347

343:                                              ; preds = %336
  %344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %345 = tail call i32 @fileno(ptr noundef %344) #12
  %346 = tail call i32 @isatty(i32 noundef %345) #12
  %.not637 = icmp eq i32 %346, 0
  br i1 %.not637, label %347, label %348

347:                                              ; preds = %343, %336
  br label %348

348:                                              ; preds = %343, %347
  %.str.25.sink925 = phi ptr [ @.str.25, %347 ], [ @.str.22, %343 ]
  store i32 %338, ptr %337, align 4, !tbaa !5
  %349 = load ptr, ptr @stderr, align 8, !tbaa !9
  %350 = load i32, ptr @test_count, align 4, !tbaa !5
  %351 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %352 = load i32, ptr %351, align 4, !tbaa !5
  %353 = tail call ptr @s2n_strerror(i32 noundef %352, ptr noundef nonnull @.str.24) #12
  %354 = load i32, ptr %351, align 4, !tbaa !5
  %355 = tail call ptr @s2n_strerror_debug(i32 noundef %354, ptr noundef nonnull @.str.24) #12
  %356 = load i32, ptr %337, align 4, !tbaa !5
  %357 = tail call ptr @strerror(i32 noundef %356) #12
  %358 = load i32, ptr %337, align 4, !tbaa !5
  %359 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %349, ptr noundef nonnull %.str.25.sink925, i32 noundef %350, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.21, i32 noundef 132, ptr noundef %353, ptr noundef %355, ptr noundef %357, i32 noundef %358) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

360:                                              ; preds = %258
  %361 = getelementptr inbounds [256 x [32 x i32]], ptr @handshakes, i64 0, i64 %262, i64 1
  %362 = load i32, ptr %361, align 4, !tbaa !5
  %363 = icmp eq i32 %362, 11
  br i1 %363, label %266, label %364

364:                                              ; preds = %360
  %365 = getelementptr inbounds [256 x [32 x i32]], ptr @handshakes, i64 0, i64 %262, i64 2
  %366 = load i32, ptr %365, align 8, !tbaa !5
  %367 = icmp eq i32 %366, 11
  br i1 %367, label %266, label %368

368:                                              ; preds = %364
  %369 = getelementptr inbounds [256 x [32 x i32]], ptr @handshakes, i64 0, i64 %262, i64 3
  %370 = load i32, ptr %369, align 4, !tbaa !5
  %371 = icmp eq i32 %370, 11
  br i1 %371, label %266, label %372

372:                                              ; preds = %368
  %373 = getelementptr inbounds [256 x [32 x i32]], ptr @handshakes, i64 0, i64 %262, i64 4
  %374 = load i32, ptr %373, align 16, !tbaa !5
  %375 = icmp eq i32 %374, 11
  br i1 %375, label %266, label %376

376:                                              ; preds = %372
  %377 = getelementptr inbounds [256 x [32 x i32]], ptr @handshakes, i64 0, i64 %262, i64 5
  %378 = load i32, ptr %377, align 4, !tbaa !5
  %379 = icmp eq i32 %378, 11
  br i1 %379, label %266, label %380

380:                                              ; preds = %376
  %381 = getelementptr inbounds [256 x [32 x i32]], ptr @handshakes, i64 0, i64 %262, i64 6
  %382 = load i32, ptr %381, align 8, !tbaa !5
  %383 = icmp eq i32 %382, 11
  br i1 %383, label %266, label %384

384:                                              ; preds = %380
  %385 = getelementptr inbounds [256 x [32 x i32]], ptr @handshakes, i64 0, i64 %262, i64 7
  %386 = load i32, ptr %385, align 4, !tbaa !5
  %387 = icmp eq i32 %386, 11
  br i1 %387, label %266, label %388

388:                                              ; preds = %384
  %389 = getelementptr inbounds [256 x [32 x i32]], ptr @handshakes, i64 0, i64 %262, i64 8
  %390 = load i32, ptr %389, align 16, !tbaa !5
  %391 = icmp eq i32 %390, 11
  br i1 %391, label %266, label %392

392:                                              ; preds = %388
  %393 = getelementptr inbounds [256 x [32 x i32]], ptr @handshakes, i64 0, i64 %262, i64 9
  %394 = load i32, ptr %393, align 4, !tbaa !5
  %395 = icmp eq i32 %394, 11
  br i1 %395, label %266, label %396

396:                                              ; preds = %392
  %397 = getelementptr inbounds [256 x [32 x i32]], ptr @handshakes, i64 0, i64 %262, i64 10
  %398 = load i32, ptr %397, align 8, !tbaa !5
  %399 = icmp eq i32 %398, 11
  br i1 %399, label %266, label %400

400:                                              ; preds = %396
  %401 = getelementptr inbounds [256 x [32 x i32]], ptr @handshakes, i64 0, i64 %262, i64 11
  %402 = load i32, ptr %401, align 4, !tbaa !5
  %403 = icmp eq i32 %402, 11
  br i1 %403, label %266, label %404

404:                                              ; preds = %400
  %405 = getelementptr inbounds [256 x [32 x i32]], ptr @handshakes, i64 0, i64 %262, i64 12
  %406 = load i32, ptr %405, align 16, !tbaa !5
  %407 = icmp eq i32 %406, 11
  br i1 %407, label %266, label %408

408:                                              ; preds = %404
  %409 = getelementptr inbounds [256 x [32 x i32]], ptr @handshakes, i64 0, i64 %262, i64 13
  %410 = load i32, ptr %409, align 4, !tbaa !5
  %411 = icmp eq i32 %410, 11
  br i1 %411, label %266, label %412

412:                                              ; preds = %408
  %413 = getelementptr inbounds [256 x [32 x i32]], ptr @handshakes, i64 0, i64 %262, i64 14
  %414 = load i32, ptr %413, align 8, !tbaa !5
  %415 = icmp eq i32 %414, 11
  br i1 %415, label %266, label %416

416:                                              ; preds = %412
  %417 = getelementptr inbounds [256 x [32 x i32]], ptr @handshakes, i64 0, i64 %262, i64 15
  %418 = load i32, ptr %417, align 4, !tbaa !5
  %419 = icmp eq i32 %418, 11
  br i1 %419, label %266, label %420

420:                                              ; preds = %416
  %421 = getelementptr inbounds [256 x [32 x i32]], ptr @handshakes, i64 0, i64 %262, i64 16
  %422 = load i32, ptr %421, align 16, !tbaa !5
  %423 = icmp eq i32 %422, 11
  br i1 %423, label %266, label %424

424:                                              ; preds = %420
  %425 = getelementptr inbounds [256 x [32 x i32]], ptr @handshakes, i64 0, i64 %262, i64 17
  %426 = load i32, ptr %425, align 4, !tbaa !5
  %427 = icmp eq i32 %426, 11
  br i1 %427, label %266, label %428

428:                                              ; preds = %424
  %429 = getelementptr inbounds [256 x [32 x i32]], ptr @handshakes, i64 0, i64 %262, i64 18
  %430 = load i32, ptr %429, align 8, !tbaa !5
  %431 = icmp eq i32 %430, 11
  br i1 %431, label %266, label %432

432:                                              ; preds = %428
  %433 = getelementptr inbounds [256 x [32 x i32]], ptr @handshakes, i64 0, i64 %262, i64 19
  %434 = load i32, ptr %433, align 4, !tbaa !5
  %435 = icmp eq i32 %434, 11
  br i1 %435, label %266, label %436

436:                                              ; preds = %432
  %437 = getelementptr inbounds [256 x [32 x i32]], ptr @handshakes, i64 0, i64 %262, i64 20
  %438 = load i32, ptr %437, align 16, !tbaa !5
  %439 = icmp eq i32 %438, 11
  br i1 %439, label %266, label %440

440:                                              ; preds = %436
  %441 = getelementptr inbounds [256 x [32 x i32]], ptr @handshakes, i64 0, i64 %262, i64 21
  %442 = load i32, ptr %441, align 4, !tbaa !5
  %443 = icmp eq i32 %442, 11
  br i1 %443, label %266, label %444

444:                                              ; preds = %440
  %445 = getelementptr inbounds [256 x [32 x i32]], ptr @handshakes, i64 0, i64 %262, i64 22
  %446 = load i32, ptr %445, align 8, !tbaa !5
  %447 = icmp eq i32 %446, 11
  br i1 %447, label %266, label %448

448:                                              ; preds = %444
  %449 = getelementptr inbounds [256 x [32 x i32]], ptr @handshakes, i64 0, i64 %262, i64 23
  %450 = load i32, ptr %449, align 4, !tbaa !5
  %451 = icmp eq i32 %450, 11
  br i1 %451, label %266, label %452

452:                                              ; preds = %448
  %453 = getelementptr inbounds [256 x [32 x i32]], ptr @handshakes, i64 0, i64 %262, i64 24
  %454 = load i32, ptr %453, align 16, !tbaa !5
  %455 = icmp eq i32 %454, 11
  br i1 %455, label %266, label %456

456:                                              ; preds = %452
  %457 = getelementptr inbounds [256 x [32 x i32]], ptr @handshakes, i64 0, i64 %262, i64 25
  %458 = load i32, ptr %457, align 4, !tbaa !5
  %459 = icmp eq i32 %458, 11
  br i1 %459, label %266, label %460

460:                                              ; preds = %456
  %461 = getelementptr inbounds [256 x [32 x i32]], ptr @handshakes, i64 0, i64 %262, i64 26
  %462 = load i32, ptr %461, align 8, !tbaa !5
  %463 = icmp eq i32 %462, 11
  br i1 %463, label %266, label %464

464:                                              ; preds = %460
  %465 = getelementptr inbounds [256 x [32 x i32]], ptr @handshakes, i64 0, i64 %262, i64 27
  %466 = load i32, ptr %465, align 4, !tbaa !5
  %467 = icmp eq i32 %466, 11
  br i1 %467, label %266, label %468

468:                                              ; preds = %464
  %469 = getelementptr inbounds [256 x [32 x i32]], ptr @handshakes, i64 0, i64 %262, i64 28
  %470 = load i32, ptr %469, align 16, !tbaa !5
  %471 = icmp eq i32 %470, 11
  br i1 %471, label %266, label %472

472:                                              ; preds = %468
  %473 = getelementptr inbounds [256 x [32 x i32]], ptr @handshakes, i64 0, i64 %262, i64 29
  %474 = load i32, ptr %473, align 4, !tbaa !5
  %475 = icmp eq i32 %474, 11
  br i1 %475, label %266, label %476

476:                                              ; preds = %472
  %477 = getelementptr inbounds [256 x [32 x i32]], ptr @handshakes, i64 0, i64 %262, i64 30
  %478 = load i32, ptr %477, align 8, !tbaa !5
  %479 = icmp eq i32 %478, 11
  br i1 %479, label %266, label %480

480:                                              ; preds = %476
  %481 = getelementptr inbounds [256 x [32 x i32]], ptr @handshakes, i64 0, i64 %262, i64 31
  %482 = load i32, ptr %481, align 4, !tbaa !5
  %483 = icmp eq i32 %482, 11
  br i1 %483, label %266, label %.loopexit653

.loopexit653:                                     ; preds = %480, %325
  %indvars.iv.next744 = add nuw nsw i64 %indvars.iv743, 1
  %exitcond746.not = icmp eq i64 %indvars.iv.next744, %wide.trip.count
  br i1 %exitcond746.not, label %._crit_edge, label %258, !llvm.loop !48

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

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

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

496:                                              ; preds = %491, %495
  %.str.25.sink936 = phi ptr [ @.str.25, %495 ], [ @.str.22, %491 ]
  store i32 %486, ptr %485, align 4, !tbaa !5
  %497 = load ptr, ptr @stderr, align 8, !tbaa !9
  %498 = load i32, ptr @test_count, align 4, !tbaa !5
  %499 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %500 = load i32, ptr %499, align 4, !tbaa !5
  %501 = tail call ptr @s2n_strerror(i32 noundef %500, ptr noundef nonnull @.str.24) #12
  %502 = load i32, ptr %499, align 4, !tbaa !5
  %503 = tail call ptr @s2n_strerror_debug(i32 noundef %502, ptr noundef nonnull @.str.24) #12
  %504 = load i32, ptr %485, align 4, !tbaa !5
  %505 = tail call ptr @strerror(i32 noundef %504) #12
  %506 = load i32, ptr %485, align 4, !tbaa !5
  %507 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %497, ptr noundef nonnull %.str.25.sink936, i32 noundef %498, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.21, i32 noundef 139, ptr noundef %501, ptr noundef %503, ptr noundef %505, i32 noundef %506) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

.lr.ph690:                                        ; preds = %588
  %508 = tail call ptr @s2n_connection_new(i32 noundef 1) #12
  %509 = getelementptr inbounds i8, ptr %508, i64 220
  store i8 33, ptr %509, align 4, !tbaa !19
  %510 = getelementptr inbounds i8, ptr %508, i64 2172
  %511 = getelementptr inbounds i8, ptr %508, i64 2176
  %512 = getelementptr inbounds i8, ptr %508, i64 2204
  %smax762 = tail call i32 @llvm.smax.i32(i32 %.1, i32 1)
  %wide.trip.count763 = zext nneg i32 %smax762 to i64
  br label %593

.lr.ph685:                                        ; preds = %.lr.ph685.preheader, %588
  %indvars.iv750 = phi i64 [ 0, %.lr.ph685.preheader ], [ %indvars.iv.next751, %588 ]
  %test_count.promoted681683 = phi i32 [ %test_count.promoted679, %.lr.ph685.preheader ], [ %test_count.promoted680, %588 ]
  %513 = getelementptr inbounds [256 x i16], ptr %3, i64 0, i64 %indvars.iv750
  %514 = load i16, ptr %513, align 2, !tbaa !15
  %515 = icmp eq i16 %514, 0
  br i1 %515, label %588, label %.preheader651

.preheader651:                                    ; preds = %.lr.ph685
  %516 = zext i16 %514 to i64
  br label %520

517:                                              ; preds = %562
  %518 = add nsw i32 %563, 1
  store i32 %518, ptr @test_count, align 4, !tbaa !5
  %519 = trunc nuw i8 %spec.select.1 to i1
  br i1 %519, label %588, label %564

520:                                              ; preds = %562, %.preheader651
  %indvars.iv747 = phi i64 [ 0, %.preheader651 ], [ %indvars.iv.next748.1, %562 ]
  %.0479678 = phi i8 [ 0, %.preheader651 ], [ %spec.select.1, %562 ]
  %521 = phi i32 [ %test_count.promoted681683, %.preheader651 ], [ %563, %562 ]
  %522 = getelementptr inbounds [256 x [32 x i32]], ptr @handshakes, i64 0, i64 %516, i64 %indvars.iv747
  %523 = load i32, ptr %522, align 8, !tbaa !5
  %524 = icmp eq i32 %523, 11
  %spec.select = select i1 %524, i8 1, i8 %.0479678
  %525 = icmp eq i32 %523, 13
  br i1 %525, label %526, label %553

526:                                              ; preds = %520
  %527 = add nsw i32 %521, 1
  store i32 %527, ptr @test_count, align 4, !tbaa !5
  %528 = trunc nuw i8 %.0479678 to i1
  br i1 %528, label %553, label %529

529:                                              ; preds = %559, %526
  %530 = tail call ptr @__errno_location() #13
  %531 = load i32, ptr %530, align 4, !tbaa !5
  %532 = load ptr, ptr @stderr, align 8, !tbaa !9
  %533 = tail call i32 @s2n_print_stacktrace(ptr noundef %532) #12
  %534 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %535 = trunc nuw i8 %534 to i1
  br i1 %535, label %536, label %540

536:                                              ; preds = %529
  %537 = load ptr, ptr @stderr, align 8, !tbaa !9
  %538 = tail call i32 @fileno(ptr noundef %537) #12
  %539 = tail call i32 @isatty(i32 noundef %538) #12
  %.not634 = icmp eq i32 %539, 0
  br i1 %.not634, label %540, label %541

540:                                              ; preds = %536, %529
  br label %541

541:                                              ; preds = %536, %540
  %.str.25.sink947 = phi ptr [ @.str.25, %540 ], [ @.str.22, %536 ]
  store i32 %531, ptr %530, align 4, !tbaa !5
  %542 = load ptr, ptr @stderr, align 8, !tbaa !9
  %543 = load i32, ptr @test_count, align 4, !tbaa !5
  %544 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %545 = load i32, ptr %544, align 4, !tbaa !5
  %546 = tail call ptr @s2n_strerror(i32 noundef %545, ptr noundef nonnull @.str.24) #12
  %547 = load i32, ptr %544, align 4, !tbaa !5
  %548 = tail call ptr @s2n_strerror_debug(i32 noundef %547, ptr noundef nonnull @.str.24) #12
  %549 = load i32, ptr %530, align 4, !tbaa !5
  %550 = tail call ptr @strerror(i32 noundef %549) #12
  %551 = load i32, ptr %530, align 4, !tbaa !5
  %552 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %542, ptr noundef nonnull %.str.25.sink947, i32 noundef %543, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.21, i32 noundef 159, ptr noundef %546, ptr noundef %548, ptr noundef %550, i32 noundef %551) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

553:                                              ; preds = %520, %526
  %554 = phi i32 [ %521, %520 ], [ %527, %526 ]
  %indvars.iv.next748 = or disjoint i64 %indvars.iv747, 1
  %555 = getelementptr inbounds [256 x [32 x i32]], ptr @handshakes, i64 0, i64 %516, i64 %indvars.iv.next748
  %556 = load i32, ptr %555, align 4, !tbaa !5
  %557 = icmp eq i32 %556, 11
  %spec.select.1 = select i1 %557, i8 1, i8 %spec.select
  %558 = icmp eq i32 %556, 13
  br i1 %558, label %559, label %562

559:                                              ; preds = %553
  %560 = add nsw i32 %554, 1
  store i32 %560, ptr @test_count, align 4, !tbaa !5
  %561 = trunc nuw i8 %spec.select to i1
  br i1 %561, label %562, label %529

562:                                              ; preds = %559, %553
  %563 = phi i32 [ %554, %553 ], [ %560, %559 ]
  %indvars.iv.next748.1 = add nuw nsw i64 %indvars.iv747, 2
  %exitcond749.not.1 = icmp eq i64 %indvars.iv.next748.1, 32
  br i1 %exitcond749.not.1, label %517, label %520, !llvm.loop !49

564:                                              ; preds = %517
  %565 = tail call ptr @__errno_location() #13
  %566 = load i32, ptr %565, align 4, !tbaa !5
  %567 = load ptr, ptr @stderr, align 8, !tbaa !9
  %568 = tail call i32 @s2n_print_stacktrace(ptr noundef %567) #12
  %569 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %570 = trunc nuw i8 %569 to i1
  br i1 %570, label %571, label %575

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

575:                                              ; preds = %571, %564
  br label %576

576:                                              ; preds = %571, %575
  %.str.25.sink958 = phi ptr [ @.str.25, %575 ], [ @.str.22, %571 ]
  store i32 %566, ptr %565, align 4, !tbaa !5
  %577 = load ptr, ptr @stderr, align 8, !tbaa !9
  %578 = load i32, ptr @test_count, align 4, !tbaa !5
  %579 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %580 = load i32, ptr %579, align 4, !tbaa !5
  %581 = tail call ptr @s2n_strerror(i32 noundef %580, ptr noundef nonnull @.str.24) #12
  %582 = load i32, ptr %579, align 4, !tbaa !5
  %583 = tail call ptr @s2n_strerror_debug(i32 noundef %582, ptr noundef nonnull @.str.24) #12
  %584 = load i32, ptr %565, align 4, !tbaa !5
  %585 = tail call ptr @strerror(i32 noundef %584) #12
  %586 = load i32, ptr %565, align 4, !tbaa !5
  %587 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %577, ptr noundef nonnull %.str.25.sink958, i32 noundef %578, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.21, i32 noundef 163, ptr noundef %581, ptr noundef %583, ptr noundef %585, i32 noundef %586) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

588:                                              ; preds = %517, %.lr.ph685
  %test_count.promoted680 = phi i32 [ %518, %517 ], [ %test_count.promoted681683, %.lr.ph685 ]
  %indvars.iv.next751 = add nuw nsw i64 %indvars.iv750, 1
  %exitcond754.not = icmp eq i64 %indvars.iv.next751, %wide.trip.count753
  br i1 %exitcond754.not, label %.lr.ph690, label %.lr.ph685, !llvm.loop !50

._crit_edge691:                                   ; preds = %.loopexit650
  %589 = load i32, ptr @test_count, align 4, !tbaa !5
  %590 = add nsw i32 %589, 1
  store i32 %590, ptr @test_count, align 4, !tbaa !5
  %591 = tail call i32 @s2n_connection_free(ptr noundef %508) #12
  %592 = icmp eq i32 %591, -1
  br i1 %592, label %819, label %843

593:                                              ; preds = %.lr.ph690, %.loopexit650
  %indvars.iv759 = phi i64 [ 0, %.lr.ph690 ], [ %indvars.iv.next760, %.loopexit650 ]
  %594 = getelementptr inbounds [256 x i16], ptr %3, i64 0, i64 %indvars.iv759
  %595 = load i16, ptr %594, align 2, !tbaa !15
  %596 = zext i16 %595 to i32
  store i32 %596, ptr %510, align 4, !tbaa !46
  %597 = zext i16 %595 to i64
  %598 = getelementptr inbounds [256 x [32 x i32]], ptr @handshakes, i64 0, i64 %597, i64 0
  %599 = load i32, ptr %598, align 16, !tbaa !5
  %600 = icmp eq i32 %599, 14
  br i1 %600, label %601, label %695

601:                                              ; preds = %815, %811, %807, %803, %799, %795, %791, %787, %783, %779, %775, %771, %767, %763, %759, %755, %751, %747, %743, %739, %735, %731, %727, %723, %719, %715, %711, %707, %703, %699, %695, %593
  %.0485687.lcssa.wide = phi i32 [ 0, %593 ], [ 1, %695 ], [ 2, %699 ], [ 3, %703 ], [ 4, %707 ], [ 5, %711 ], [ 6, %715 ], [ 7, %719 ], [ 8, %723 ], [ 9, %727 ], [ 10, %731 ], [ 11, %735 ], [ 12, %739 ], [ 13, %743 ], [ 14, %747 ], [ 15, %751 ], [ 16, %755 ], [ 17, %759 ], [ 18, %763 ], [ 19, %767 ], [ 20, %771 ], [ 21, %775 ], [ 22, %779 ], [ 23, %783 ], [ 24, %787 ], [ 25, %791 ], [ 26, %795 ], [ 27, %799 ], [ 28, %803 ], [ 29, %807 ], [ 30, %811 ], [ 31, %815 ]
  %602 = add nsw i32 %.0485687.lcssa.wide, -1
  store i32 %602, ptr %511, align 8, !tbaa !47
  %603 = load i32, ptr @test_count, align 4, !tbaa !5
  %604 = add nsw i32 %603, 1
  store i32 %604, ptr @test_count, align 4, !tbaa !5
  %605 = tail call i32 @s2n_advance_message(ptr noundef nonnull %508)
  %606 = icmp eq i32 %605, -1
  br i1 %606, label %607, label %631

607:                                              ; preds = %601
  %608 = tail call ptr @__errno_location() #13
  %609 = load i32, ptr %608, align 4, !tbaa !5
  %610 = load ptr, ptr @stderr, align 8, !tbaa !9
  %611 = tail call i32 @s2n_print_stacktrace(ptr noundef %610) #12
  %612 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %613 = trunc nuw i8 %612 to i1
  br i1 %613, label %614, label %618

614:                                              ; preds = %607
  %615 = load ptr, ptr @stderr, align 8, !tbaa !9
  %616 = tail call i32 @fileno(ptr noundef %615) #12
  %617 = tail call i32 @isatty(i32 noundef %616) #12
  %.not632 = icmp eq i32 %617, 0
  br i1 %.not632, label %618, label %619

618:                                              ; preds = %614, %607
  br label %619

619:                                              ; preds = %614, %618
  %.str.25.sink969 = phi ptr [ @.str.25, %618 ], [ @.str.22, %614 ]
  store i32 %609, ptr %608, align 4, !tbaa !5
  %620 = load ptr, ptr @stderr, align 8, !tbaa !9
  %621 = load i32, ptr @test_count, align 4, !tbaa !5
  %622 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %623 = load i32, ptr %622, align 4, !tbaa !5
  %624 = tail call ptr @s2n_strerror(i32 noundef %623, ptr noundef nonnull @.str.24) #12
  %625 = load i32, ptr %622, align 4, !tbaa !5
  %626 = tail call ptr @s2n_strerror_debug(i32 noundef %625, ptr noundef nonnull @.str.24) #12
  %627 = load i32, ptr %608, align 4, !tbaa !5
  %628 = tail call ptr @strerror(i32 noundef %627) #12
  %629 = load i32, ptr %608, align 4, !tbaa !5
  %630 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %620, ptr noundef nonnull %.str.25.sink969, i32 noundef %621, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.21, i32 noundef 181, ptr noundef %624, ptr noundef %626, ptr noundef %628, i32 noundef %629) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

631:                                              ; preds = %601
  %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 i32, ptr %511, align 8, !tbaa !47
  %635 = icmp eq i32 %634, %.0485687.lcssa.wide
  br i1 %635, label %660, label %636

636:                                              ; preds = %631
  %637 = tail call ptr @__errno_location() #13
  %638 = load i32, ptr %637, align 4, !tbaa !5
  %639 = load ptr, ptr @stderr, align 8, !tbaa !9
  %640 = tail call i32 @s2n_print_stacktrace(ptr noundef %639) #12
  %641 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %642 = trunc nuw i8 %641 to i1
  br i1 %642, label %643, label %647

643:                                              ; preds = %636
  %644 = load ptr, ptr @stderr, align 8, !tbaa !9
  %645 = tail call i32 @fileno(ptr noundef %644) #12
  %646 = tail call i32 @isatty(i32 noundef %645) #12
  %.not630 = icmp eq i32 %646, 0
  br i1 %.not630, label %647, label %648

647:                                              ; preds = %643, %636
  br label %648

648:                                              ; preds = %643, %647
  %.str.25.sink980 = phi ptr [ @.str.25, %647 ], [ @.str.22, %643 ]
  store i32 %638, ptr %637, align 4, !tbaa !5
  %649 = load ptr, ptr @stderr, align 8, !tbaa !9
  %650 = load i32, ptr @test_count, align 4, !tbaa !5
  %651 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %652 = load i32, ptr %651, align 4, !tbaa !5
  %653 = tail call ptr @s2n_strerror(i32 noundef %652, ptr noundef nonnull @.str.24) #12
  %654 = load i32, ptr %651, align 4, !tbaa !5
  %655 = tail call ptr @s2n_strerror_debug(i32 noundef %654, ptr noundef nonnull @.str.24) #12
  %656 = load i32, ptr %637, align 4, !tbaa !5
  %657 = tail call ptr @strerror(i32 noundef %656) #12
  %658 = load i32, ptr %637, align 4, !tbaa !5
  %659 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %649, ptr noundef nonnull %.str.25.sink980, i32 noundef %650, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.21, i32 noundef 183, ptr noundef %653, ptr noundef %655, ptr noundef %657, i32 noundef %658) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

660:                                              ; preds = %631
  %661 = add nsw i32 %632, 2
  store i32 %661, ptr @test_count, align 4, !tbaa !5
  %662 = load i32, ptr %512, align 4, !tbaa !45
  %663 = icmp eq i32 %662, 2
  %664 = select i1 %663, ptr @tls13_handshakes, ptr @handshakes
  %665 = load i32, ptr %510, align 4, !tbaa !46
  %666 = zext i32 %665 to i64
  %667 = zext nneg i32 %.0485687.lcssa.wide to i64
  %668 = getelementptr inbounds [32 x i32], ptr %664, i64 %666, i64 %667
  %669 = load i32, ptr %668, align 4, !tbaa !5
  %670 = icmp eq i32 %669, 14
  br i1 %670, label %.loopexit650, label %671

671:                                              ; preds = %660
  %672 = tail call ptr @__errno_location() #13
  %673 = load i32, ptr %672, align 4, !tbaa !5
  %674 = load ptr, ptr @stderr, align 8, !tbaa !9
  %675 = tail call i32 @s2n_print_stacktrace(ptr noundef %674) #12
  %676 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %677 = trunc nuw i8 %676 to i1
  br i1 %677, label %678, label %682

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

682:                                              ; preds = %678, %671
  br label %683

683:                                              ; preds = %678, %682
  %.str.25.sink991 = phi ptr [ @.str.25, %682 ], [ @.str.22, %678 ]
  store i32 %673, ptr %672, align 4, !tbaa !5
  %684 = load ptr, ptr @stderr, align 8, !tbaa !9
  %685 = load i32, ptr @test_count, align 4, !tbaa !5
  %686 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %687 = load i32, ptr %686, align 4, !tbaa !5
  %688 = tail call ptr @s2n_strerror(i32 noundef %687, ptr noundef nonnull @.str.24) #12
  %689 = load i32, ptr %686, align 4, !tbaa !5
  %690 = tail call ptr @s2n_strerror_debug(i32 noundef %689, ptr noundef nonnull @.str.24) #12
  %691 = load i32, ptr %672, align 4, !tbaa !5
  %692 = tail call ptr @strerror(i32 noundef %691) #12
  %693 = load i32, ptr %672, align 4, !tbaa !5
  %694 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %684, ptr noundef nonnull %.str.25.sink991, i32 noundef %685, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.21, i32 noundef 184, ptr noundef %688, ptr noundef %690, ptr noundef %692, i32 noundef %693) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

695:                                              ; preds = %593
  %696 = getelementptr inbounds [256 x [32 x i32]], ptr @handshakes, i64 0, i64 %597, i64 1
  %697 = load i32, ptr %696, align 4, !tbaa !5
  %698 = icmp eq i32 %697, 14
  br i1 %698, label %601, label %699

699:                                              ; preds = %695
  %700 = getelementptr inbounds [256 x [32 x i32]], ptr @handshakes, i64 0, i64 %597, i64 2
  %701 = load i32, ptr %700, align 8, !tbaa !5
  %702 = icmp eq i32 %701, 14
  br i1 %702, label %601, label %703

703:                                              ; preds = %699
  %704 = getelementptr inbounds [256 x [32 x i32]], ptr @handshakes, i64 0, i64 %597, i64 3
  %705 = load i32, ptr %704, align 4, !tbaa !5
  %706 = icmp eq i32 %705, 14
  br i1 %706, label %601, label %707

707:                                              ; preds = %703
  %708 = getelementptr inbounds [256 x [32 x i32]], ptr @handshakes, i64 0, i64 %597, i64 4
  %709 = load i32, ptr %708, align 16, !tbaa !5
  %710 = icmp eq i32 %709, 14
  br i1 %710, label %601, label %711

711:                                              ; preds = %707
  %712 = getelementptr inbounds [256 x [32 x i32]], ptr @handshakes, i64 0, i64 %597, i64 5
  %713 = load i32, ptr %712, align 4, !tbaa !5
  %714 = icmp eq i32 %713, 14
  br i1 %714, label %601, label %715

715:                                              ; preds = %711
  %716 = getelementptr inbounds [256 x [32 x i32]], ptr @handshakes, i64 0, i64 %597, i64 6
  %717 = load i32, ptr %716, align 8, !tbaa !5
  %718 = icmp eq i32 %717, 14
  br i1 %718, label %601, label %719

719:                                              ; preds = %715
  %720 = getelementptr inbounds [256 x [32 x i32]], ptr @handshakes, i64 0, i64 %597, i64 7
  %721 = load i32, ptr %720, align 4, !tbaa !5
  %722 = icmp eq i32 %721, 14
  br i1 %722, label %601, label %723

723:                                              ; preds = %719
  %724 = getelementptr inbounds [256 x [32 x i32]], ptr @handshakes, i64 0, i64 %597, i64 8
  %725 = load i32, ptr %724, align 16, !tbaa !5
  %726 = icmp eq i32 %725, 14
  br i1 %726, label %601, label %727

727:                                              ; preds = %723
  %728 = getelementptr inbounds [256 x [32 x i32]], ptr @handshakes, i64 0, i64 %597, i64 9
  %729 = load i32, ptr %728, align 4, !tbaa !5
  %730 = icmp eq i32 %729, 14
  br i1 %730, label %601, label %731

731:                                              ; preds = %727
  %732 = getelementptr inbounds [256 x [32 x i32]], ptr @handshakes, i64 0, i64 %597, i64 10
  %733 = load i32, ptr %732, align 8, !tbaa !5
  %734 = icmp eq i32 %733, 14
  br i1 %734, label %601, label %735

735:                                              ; preds = %731
  %736 = getelementptr inbounds [256 x [32 x i32]], ptr @handshakes, i64 0, i64 %597, i64 11
  %737 = load i32, ptr %736, align 4, !tbaa !5
  %738 = icmp eq i32 %737, 14
  br i1 %738, label %601, label %739

739:                                              ; preds = %735
  %740 = getelementptr inbounds [256 x [32 x i32]], ptr @handshakes, i64 0, i64 %597, i64 12
  %741 = load i32, ptr %740, align 16, !tbaa !5
  %742 = icmp eq i32 %741, 14
  br i1 %742, label %601, label %743

743:                                              ; preds = %739
  %744 = getelementptr inbounds [256 x [32 x i32]], ptr @handshakes, i64 0, i64 %597, i64 13
  %745 = load i32, ptr %744, align 4, !tbaa !5
  %746 = icmp eq i32 %745, 14
  br i1 %746, label %601, label %747

747:                                              ; preds = %743
  %748 = getelementptr inbounds [256 x [32 x i32]], ptr @handshakes, i64 0, i64 %597, i64 14
  %749 = load i32, ptr %748, align 8, !tbaa !5
  %750 = icmp eq i32 %749, 14
  br i1 %750, label %601, label %751

751:                                              ; preds = %747
  %752 = getelementptr inbounds [256 x [32 x i32]], ptr @handshakes, i64 0, i64 %597, i64 15
  %753 = load i32, ptr %752, align 4, !tbaa !5
  %754 = icmp eq i32 %753, 14
  br i1 %754, label %601, label %755

755:                                              ; preds = %751
  %756 = getelementptr inbounds [256 x [32 x i32]], ptr @handshakes, i64 0, i64 %597, i64 16
  %757 = load i32, ptr %756, align 16, !tbaa !5
  %758 = icmp eq i32 %757, 14
  br i1 %758, label %601, label %759

759:                                              ; preds = %755
  %760 = getelementptr inbounds [256 x [32 x i32]], ptr @handshakes, i64 0, i64 %597, i64 17
  %761 = load i32, ptr %760, align 4, !tbaa !5
  %762 = icmp eq i32 %761, 14
  br i1 %762, label %601, label %763

763:                                              ; preds = %759
  %764 = getelementptr inbounds [256 x [32 x i32]], ptr @handshakes, i64 0, i64 %597, i64 18
  %765 = load i32, ptr %764, align 8, !tbaa !5
  %766 = icmp eq i32 %765, 14
  br i1 %766, label %601, label %767

767:                                              ; preds = %763
  %768 = getelementptr inbounds [256 x [32 x i32]], ptr @handshakes, i64 0, i64 %597, i64 19
  %769 = load i32, ptr %768, align 4, !tbaa !5
  %770 = icmp eq i32 %769, 14
  br i1 %770, label %601, label %771

771:                                              ; preds = %767
  %772 = getelementptr inbounds [256 x [32 x i32]], ptr @handshakes, i64 0, i64 %597, i64 20
  %773 = load i32, ptr %772, align 16, !tbaa !5
  %774 = icmp eq i32 %773, 14
  br i1 %774, label %601, label %775

775:                                              ; preds = %771
  %776 = getelementptr inbounds [256 x [32 x i32]], ptr @handshakes, i64 0, i64 %597, i64 21
  %777 = load i32, ptr %776, align 4, !tbaa !5
  %778 = icmp eq i32 %777, 14
  br i1 %778, label %601, label %779

779:                                              ; preds = %775
  %780 = getelementptr inbounds [256 x [32 x i32]], ptr @handshakes, i64 0, i64 %597, i64 22
  %781 = load i32, ptr %780, align 8, !tbaa !5
  %782 = icmp eq i32 %781, 14
  br i1 %782, label %601, label %783

783:                                              ; preds = %779
  %784 = getelementptr inbounds [256 x [32 x i32]], ptr @handshakes, i64 0, i64 %597, i64 23
  %785 = load i32, ptr %784, align 4, !tbaa !5
  %786 = icmp eq i32 %785, 14
  br i1 %786, label %601, label %787

787:                                              ; preds = %783
  %788 = getelementptr inbounds [256 x [32 x i32]], ptr @handshakes, i64 0, i64 %597, i64 24
  %789 = load i32, ptr %788, align 16, !tbaa !5
  %790 = icmp eq i32 %789, 14
  br i1 %790, label %601, label %791

791:                                              ; preds = %787
  %792 = getelementptr inbounds [256 x [32 x i32]], ptr @handshakes, i64 0, i64 %597, i64 25
  %793 = load i32, ptr %792, align 4, !tbaa !5
  %794 = icmp eq i32 %793, 14
  br i1 %794, label %601, label %795

795:                                              ; preds = %791
  %796 = getelementptr inbounds [256 x [32 x i32]], ptr @handshakes, i64 0, i64 %597, i64 26
  %797 = load i32, ptr %796, align 8, !tbaa !5
  %798 = icmp eq i32 %797, 14
  br i1 %798, label %601, label %799

799:                                              ; preds = %795
  %800 = getelementptr inbounds [256 x [32 x i32]], ptr @handshakes, i64 0, i64 %597, i64 27
  %801 = load i32, ptr %800, align 4, !tbaa !5
  %802 = icmp eq i32 %801, 14
  br i1 %802, label %601, label %803

803:                                              ; preds = %799
  %804 = getelementptr inbounds [256 x [32 x i32]], ptr @handshakes, i64 0, i64 %597, i64 28
  %805 = load i32, ptr %804, align 16, !tbaa !5
  %806 = icmp eq i32 %805, 14
  br i1 %806, label %601, label %807

807:                                              ; preds = %803
  %808 = getelementptr inbounds [256 x [32 x i32]], ptr @handshakes, i64 0, i64 %597, i64 29
  %809 = load i32, ptr %808, align 4, !tbaa !5
  %810 = icmp eq i32 %809, 14
  br i1 %810, label %601, label %811

811:                                              ; preds = %807
  %812 = getelementptr inbounds [256 x [32 x i32]], ptr @handshakes, i64 0, i64 %597, i64 30
  %813 = load i32, ptr %812, align 8, !tbaa !5
  %814 = icmp eq i32 %813, 14
  br i1 %814, label %601, label %815

815:                                              ; preds = %811
  %816 = getelementptr inbounds [256 x [32 x i32]], ptr @handshakes, i64 0, i64 %597, i64 31
  %817 = load i32, ptr %816, align 4, !tbaa !5
  %818 = icmp eq i32 %817, 14
  br i1 %818, label %601, label %.loopexit650

.loopexit650:                                     ; preds = %815, %660
  %indvars.iv.next760 = add nuw nsw i64 %indvars.iv759, 1
  %exitcond764.not = icmp eq i64 %indvars.iv.next760, %wide.trip.count763
  br i1 %exitcond764.not, label %._crit_edge691, label %593, !llvm.loop !51

819:                                              ; preds = %._crit_edge691
  %820 = tail call ptr @__errno_location() #13
  %821 = load i32, ptr %820, align 4, !tbaa !5
  %822 = load ptr, ptr @stderr, align 8, !tbaa !9
  %823 = tail call i32 @s2n_print_stacktrace(ptr noundef %822) #12
  %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 = %819
  %827 = load ptr, ptr @stderr, align 8, !tbaa !9
  %828 = tail call i32 @fileno(ptr noundef %827) #12
  %829 = tail call i32 @isatty(i32 noundef %828) #12
  %.not629 = icmp eq i32 %829, 0
  br i1 %.not629, label %830, label %831

830:                                              ; preds = %826, %819
  br label %831

831:                                              ; preds = %826, %830
  %.str.25.sink1002 = phi ptr [ @.str.25, %830 ], [ @.str.22, %826 ]
  store i32 %821, ptr %820, align 4, !tbaa !5
  %832 = load ptr, ptr @stderr, align 8, !tbaa !9
  %833 = load i32, ptr @test_count, align 4, !tbaa !5
  %834 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %835 = load i32, ptr %834, align 4, !tbaa !5
  %836 = tail call ptr @s2n_strerror(i32 noundef %835, ptr noundef nonnull @.str.24) #12
  %837 = load i32, ptr %834, align 4, !tbaa !5
  %838 = tail call ptr @s2n_strerror_debug(i32 noundef %837, ptr noundef nonnull @.str.24) #12
  %839 = load i32, ptr %820, align 4, !tbaa !5
  %840 = tail call ptr @strerror(i32 noundef %839) #12
  %841 = load i32, ptr %820, align 4, !tbaa !5
  %842 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %832, ptr noundef nonnull %.str.25.sink1002, i32 noundef %833, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.21, i32 noundef 191, ptr noundef %836, ptr noundef %838, ptr noundef %840, i32 noundef %841) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

843:                                              ; preds = %._crit_edge691
  %844 = tail call ptr @s2n_connection_new(i32 noundef 1) #12
  %845 = getelementptr inbounds i8, ptr %844, i64 220
  store i8 33, ptr %845, align 4, !tbaa !19
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %4) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %4, i8 0, i64 40, i1 false)
  %846 = load i32, ptr @test_count, align 4, !tbaa !5
  %847 = add nsw i32 %846, 1
  store i32 %847, ptr @test_count, align 4, !tbaa !5
  %848 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %4, i32 noundef 0) #12
  %849 = icmp eq i32 %848, -1
  br i1 %849, label %850, label %874

850:                                              ; preds = %843
  %851 = tail call ptr @__errno_location() #13
  %852 = load i32, ptr %851, align 4, !tbaa !5
  %853 = load ptr, ptr @stderr, align 8, !tbaa !9
  %854 = call i32 @s2n_print_stacktrace(ptr noundef %853) #12
  %855 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %856 = trunc nuw i8 %855 to i1
  br i1 %856, label %857, label %861

857:                                              ; preds = %850
  %858 = load ptr, ptr @stderr, align 8, !tbaa !9
  %859 = call i32 @fileno(ptr noundef %858) #12
  %860 = call i32 @isatty(i32 noundef %859) #12
  %.not628 = icmp eq i32 %860, 0
  br i1 %.not628, label %861, label %862

861:                                              ; preds = %857, %850
  br label %862

862:                                              ; preds = %857, %861
  %.str.25.sink1013 = phi ptr [ @.str.25, %861 ], [ @.str.22, %857 ]
  store i32 %852, ptr %851, align 4, !tbaa !5
  %863 = load ptr, ptr @stderr, align 8, !tbaa !9
  %864 = load i32, ptr @test_count, align 4, !tbaa !5
  %865 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %866 = load i32, ptr %865, align 4, !tbaa !5
  %867 = call ptr @s2n_strerror(i32 noundef %866, ptr noundef nonnull @.str.24) #12
  %868 = load i32, ptr %865, align 4, !tbaa !5
  %869 = call ptr @s2n_strerror_debug(i32 noundef %868, ptr noundef nonnull @.str.24) #12
  %870 = load i32, ptr %851, align 4, !tbaa !5
  %871 = call ptr @strerror(i32 noundef %870) #12
  %872 = load i32, ptr %851, align 4, !tbaa !5
  %873 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %863, ptr noundef nonnull %.str.25.sink1013, i32 noundef %864, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.21, i32 noundef 201, ptr noundef %867, ptr noundef %869, ptr noundef %871, i32 noundef %872) #14
  call void @exit(i32 noundef 1) #15
  unreachable

874:                                              ; preds = %843
  %875 = load i32, ptr @test_count, align 4, !tbaa !5
  %876 = add nsw i32 %875, 1
  store i32 %876, ptr @test_count, align 4, !tbaa !5
  %877 = call i32 @s2n_connection_set_io_stuffers(ptr noundef nonnull %4, ptr noundef null, ptr noundef nonnull %844) #12
  %878 = icmp eq i32 %877, -1
  br i1 %878, label %883, label %.lr.ph694

.lr.ph694:                                        ; preds = %874
  %879 = getelementptr inbounds i8, ptr %844, i64 2172
  %880 = getelementptr inbounds i8, ptr %844, i64 2176
  %881 = getelementptr inbounds i8, ptr %844, i64 1936
  %882 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %smax772 = call i32 @llvm.smax.i32(i32 %.1, i32 1)
  %wide.trip.count773 = zext nneg i32 %smax772 to i64
  br label %911

883:                                              ; preds = %874
  %884 = tail call ptr @__errno_location() #13
  %885 = load i32, ptr %884, align 4, !tbaa !5
  %886 = load ptr, ptr @stderr, align 8, !tbaa !9
  %887 = call i32 @s2n_print_stacktrace(ptr noundef %886) #12
  %888 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %889 = trunc nuw i8 %888 to i1
  br i1 %889, label %890, label %894

890:                                              ; preds = %883
  %891 = load ptr, ptr @stderr, align 8, !tbaa !9
  %892 = call i32 @fileno(ptr noundef %891) #12
  %893 = call i32 @isatty(i32 noundef %892) #12
  %.not627 = icmp eq i32 %893, 0
  br i1 %.not627, label %894, label %895

894:                                              ; preds = %890, %883
  br label %895

895:                                              ; preds = %890, %894
  %.str.25.sink1024 = phi ptr [ @.str.25, %894 ], [ @.str.22, %890 ]
  store i32 %885, ptr %884, align 4, !tbaa !5
  %896 = load ptr, ptr @stderr, align 8, !tbaa !9
  %897 = load i32, ptr @test_count, align 4, !tbaa !5
  %898 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %899 = load i32, ptr %898, align 4, !tbaa !5
  %900 = call ptr @s2n_strerror(i32 noundef %899, ptr noundef nonnull @.str.24) #12
  %901 = load i32, ptr %898, align 4, !tbaa !5
  %902 = call ptr @s2n_strerror_debug(i32 noundef %901, ptr noundef nonnull @.str.24) #12
  %903 = load i32, ptr %884, align 4, !tbaa !5
  %904 = call ptr @strerror(i32 noundef %903) #12
  %905 = load i32, ptr %884, align 4, !tbaa !5
  %906 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %896, ptr noundef nonnull %.str.25.sink1024, i32 noundef %897, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.21, i32 noundef 202, ptr noundef %900, ptr noundef %902, ptr noundef %904, i32 noundef %905) #14
  call void @exit(i32 noundef 1) #15
  unreachable

._crit_edge695:                                   ; preds = %917
  %907 = load i32, ptr @test_count, align 4, !tbaa !5
  %908 = add nsw i32 %907, 1
  store i32 %908, ptr @test_count, align 4, !tbaa !5
  %909 = call i32 @s2n_stuffer_free(ptr noundef nonnull %4) #12
  %910 = icmp eq i32 %909, -1
  br i1 %910, label %1219, label %1243

911:                                              ; preds = %.lr.ph694, %917
  %indvars.iv769 = phi i64 [ 0, %.lr.ph694 ], [ %indvars.iv.next770, %917 ]
  %912 = getelementptr inbounds [256 x i16], ptr %3, i64 0, i64 %indvars.iv769
  %913 = load i16, ptr %912, align 2, !tbaa !15
  %914 = zext i16 %913 to i32
  store i32 %914, ptr %879, align 4, !tbaa !46
  %915 = zext i16 %913 to i64
  br label %918

916:                                              ; preds = %1191
  %indvars.iv.next766 = add nuw nsw i64 %indvars.iv765, 1
  %exitcond768.not = icmp eq i64 %indvars.iv.next766, 32
  br i1 %exitcond768.not, label %917, label %918, !llvm.loop !52

917:                                              ; preds = %916
  %indvars.iv.next770 = add nuw nsw i64 %indvars.iv769, 1
  %exitcond774.not = icmp eq i64 %indvars.iv.next770, %wide.trip.count773
  br i1 %exitcond774.not, label %._crit_edge695, label %911, !llvm.loop !53

918:                                              ; preds = %911, %916
  %indvars.iv765 = phi i64 [ 1, %911 ], [ %indvars.iv.next766, %916 ]
  %919 = load i32, ptr @test_count, align 4, !tbaa !5
  %920 = add nsw i32 %919, 1
  store i32 %920, ptr @test_count, align 4, !tbaa !5
  %921 = call i32 @s2n_setup_handler_to_expect(i32 noundef 14, i8 noundef zeroext 1)
  %922 = icmp eq i32 %921, -1
  br i1 %922, label %923, label %946

923:                                              ; preds = %918
  %924 = tail call ptr @__errno_location() #13
  %925 = load i32, ptr %924, align 4, !tbaa !5
  %926 = load ptr, ptr @stderr, align 8, !tbaa !9
  %927 = call i32 @s2n_print_stacktrace(ptr noundef %926) #12
  %928 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %929 = trunc nuw i8 %928 to i1
  br i1 %929, label %930, label %934

930:                                              ; preds = %923
  %931 = load ptr, ptr @stderr, align 8, !tbaa !9
  %932 = call i32 @fileno(ptr noundef %931) #12
  %933 = call i32 @isatty(i32 noundef %932) #12
  %.not626 = icmp eq i32 %933, 0
  br i1 %.not626, label %934, label %935

934:                                              ; preds = %930, %923
  br label %935

935:                                              ; preds = %930, %934
  %.str.25.sink1035 = phi ptr [ @.str.25, %934 ], [ @.str.22, %930 ]
  store i32 %925, ptr %924, align 4, !tbaa !5
  %936 = load ptr, ptr @stderr, align 8, !tbaa !9
  %937 = load i32, ptr @test_count, align 4, !tbaa !5
  %938 = load i32, ptr %882, align 4, !tbaa !5
  %939 = call ptr @s2n_strerror(i32 noundef %938, ptr noundef nonnull @.str.24) #12
  %940 = load i32, ptr %882, align 4, !tbaa !5
  %941 = call ptr @s2n_strerror_debug(i32 noundef %940, ptr noundef nonnull @.str.24) #12
  %942 = load i32, ptr %924, align 4, !tbaa !5
  %943 = call ptr @strerror(i32 noundef %942) #12
  %944 = load i32, ptr %924, align 4, !tbaa !5
  %945 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %936, ptr noundef nonnull %.str.25.sink1035, i32 noundef %937, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.21, i32 noundef 210, ptr noundef %939, ptr noundef %941, ptr noundef %943, i32 noundef %944) #14
  call void @exit(i32 noundef 1) #15
  unreachable

946:                                              ; preds = %918
  %947 = trunc nuw nsw i64 %indvars.iv765 to i32
  store i32 %947, ptr %880, align 8, !tbaa !47
  store i32 0, ptr %881, align 8, !tbaa !54
  %948 = load i32, ptr @test_count, align 4, !tbaa !5
  %949 = add nsw i32 %948, 1
  store i32 %949, ptr @test_count, align 4, !tbaa !5
  %950 = call i32 @s2n_test_write_header(ptr noundef nonnull %4, i8 noundef zeroext 20, i8 noundef zeroext 0)
  %951 = icmp eq i32 %950, -1
  br i1 %951, label %952, label %975

952:                                              ; preds = %946
  %953 = tail call ptr @__errno_location() #13
  %954 = load i32, ptr %953, align 4, !tbaa !5
  %955 = load ptr, ptr @stderr, align 8, !tbaa !9
  %956 = call i32 @s2n_print_stacktrace(ptr noundef %955) #12
  %957 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %958 = trunc nuw i8 %957 to i1
  br i1 %958, label %959, label %963

959:                                              ; preds = %952
  %960 = load ptr, ptr @stderr, align 8, !tbaa !9
  %961 = call i32 @fileno(ptr noundef %960) #12
  %962 = call i32 @isatty(i32 noundef %961) #12
  %.not625 = icmp eq i32 %962, 0
  br i1 %.not625, label %963, label %964

963:                                              ; preds = %959, %952
  br label %964

964:                                              ; preds = %959, %963
  %.str.25.sink1044 = phi ptr [ @.str.25, %963 ], [ @.str.22, %959 ]
  store i32 %954, ptr %953, align 4, !tbaa !5
  %965 = load ptr, ptr @stderr, align 8, !tbaa !9
  %966 = load i32, ptr @test_count, align 4, !tbaa !5
  %967 = load i32, ptr %882, align 4, !tbaa !5
  %968 = call ptr @s2n_strerror(i32 noundef %967, ptr noundef nonnull @.str.24) #12
  %969 = load i32, ptr %882, align 4, !tbaa !5
  %970 = call ptr @s2n_strerror_debug(i32 noundef %969, ptr noundef nonnull @.str.24) #12
  %971 = load i32, ptr %953, align 4, !tbaa !5
  %972 = call ptr @strerror(i32 noundef %971) #12
  %973 = load i32, ptr %953, align 4, !tbaa !5
  %974 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %965, ptr noundef nonnull %.str.25.sink1044, i32 noundef %966, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.21, i32 noundef 214, ptr noundef %968, ptr noundef %970, ptr noundef %972, i32 noundef %973) #14
  call void @exit(i32 noundef 1) #15
  unreachable

975:                                              ; preds = %946
  %976 = getelementptr inbounds [256 x [32 x i32]], ptr @handshakes, i64 0, i64 %915, i64 %indvars.iv765
  %977 = load i32, ptr %976, align 4, !tbaa !5
  %978 = icmp eq i32 %977, 14
  %979 = load i32, ptr @test_count, align 4, !tbaa !5
  %980 = add nsw i32 %979, 1
  store i32 %980, ptr @test_count, align 4, !tbaa !5
  %981 = call i32 @s2n_handshake_read_io(ptr noundef nonnull %844)
  %982 = icmp eq i32 %981, -1
  br i1 %978, label %983, label %1060

983:                                              ; preds = %975
  br i1 %982, label %984, label %1007

984:                                              ; preds = %983
  %985 = tail call ptr @__errno_location() #13
  %986 = load i32, ptr %985, align 4, !tbaa !5
  %987 = load ptr, ptr @stderr, align 8, !tbaa !9
  %988 = call i32 @s2n_print_stacktrace(ptr noundef %987) #12
  %989 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %990 = trunc nuw i8 %989 to i1
  br i1 %990, label %991, label %995

991:                                              ; preds = %984
  %992 = load ptr, ptr @stderr, align 8, !tbaa !9
  %993 = call i32 @fileno(ptr noundef %992) #12
  %994 = call i32 @isatty(i32 noundef %993) #12
  %.not624 = icmp eq i32 %994, 0
  br i1 %.not624, label %995, label %996

995:                                              ; preds = %991, %984
  br label %996

996:                                              ; preds = %991, %995
  %.str.25.sink1053 = phi ptr [ @.str.25, %995 ], [ @.str.22, %991 ]
  store i32 %986, ptr %985, align 4, !tbaa !5
  %997 = load ptr, ptr @stderr, align 8, !tbaa !9
  %998 = load i32, ptr @test_count, align 4, !tbaa !5
  %999 = load i32, ptr %882, align 4, !tbaa !5
  %1000 = call ptr @s2n_strerror(i32 noundef %999, ptr noundef nonnull @.str.24) #12
  %1001 = load i32, ptr %882, align 4, !tbaa !5
  %1002 = call ptr @s2n_strerror_debug(i32 noundef %1001, ptr noundef nonnull @.str.24) #12
  %1003 = load i32, ptr %985, align 4, !tbaa !5
  %1004 = call ptr @strerror(i32 noundef %1003) #12
  %1005 = load i32, ptr %985, align 4, !tbaa !5
  %1006 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %997, ptr noundef nonnull %.str.25.sink1053, i32 noundef %998, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.21, i32 noundef 217, ptr noundef %1000, ptr noundef %1002, ptr noundef %1004, i32 noundef %1005) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1007:                                             ; preds = %983
  %1008 = load i32, ptr @test_count, align 4, !tbaa !5
  %1009 = add nsw i32 %1008, 1
  store i32 %1009, ptr @test_count, align 4, !tbaa !5
  %1010 = load i32, ptr @expected_handler_called, align 4, !tbaa !5
  %.not619 = icmp eq i32 %1010, 0
  br i1 %.not619, label %1011, label %1034

1011:                                             ; preds = %1007
  %1012 = tail call ptr @__errno_location() #13
  %1013 = load i32, ptr %1012, align 4, !tbaa !5
  %1014 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1015 = call i32 @s2n_print_stacktrace(ptr noundef %1014) #12
  %1016 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1017 = trunc nuw i8 %1016 to i1
  br i1 %1017, label %1018, label %1022

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

1022:                                             ; preds = %1018, %1011
  br label %1023

1023:                                             ; preds = %1018, %1022
  %.str.25.sink1062 = phi ptr [ @.str.25, %1022 ], [ @.str.22, %1018 ]
  store i32 %1013, ptr %1012, align 4, !tbaa !5
  %1024 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1025 = load i32, ptr @test_count, align 4, !tbaa !5
  %1026 = load i32, ptr %882, align 4, !tbaa !5
  %1027 = call ptr @s2n_strerror(i32 noundef %1026, ptr noundef nonnull @.str.24) #12
  %1028 = load i32, ptr %882, align 4, !tbaa !5
  %1029 = call ptr @s2n_strerror_debug(i32 noundef %1028, ptr noundef nonnull @.str.24) #12
  %1030 = load i32, ptr %1012, align 4, !tbaa !5
  %1031 = call ptr @strerror(i32 noundef %1030) #12
  %1032 = load i32, ptr %1012, align 4, !tbaa !5
  %1033 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1024, ptr noundef nonnull %.str.25.sink1062, i32 noundef %1025, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.21, i32 noundef 218, ptr noundef %1027, ptr noundef %1029, ptr noundef %1031, i32 noundef %1032) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1034:                                             ; preds = %1007
  %1035 = add nsw i32 %1008, 2
  store i32 %1035, ptr @test_count, align 4, !tbaa !5
  %1036 = load i32, ptr @unexpected_handler_called, align 4, !tbaa !5
  %.not621 = icmp eq i32 %1036, 0
  br i1 %.not621, label %1191, label %1037

1037:                                             ; preds = %1034
  %1038 = tail call ptr @__errno_location() #13
  %1039 = load i32, ptr %1038, align 4, !tbaa !5
  %1040 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1041 = call i32 @s2n_print_stacktrace(ptr noundef %1040) #12
  %1042 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1043 = trunc nuw i8 %1042 to i1
  br i1 %1043, label %1044, label %1048

1044:                                             ; preds = %1037
  %1045 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1046 = call i32 @fileno(ptr noundef %1045) #12
  %1047 = call i32 @isatty(i32 noundef %1046) #12
  %.not623 = icmp eq i32 %1047, 0
  br i1 %.not623, label %1048, label %1049

1048:                                             ; preds = %1044, %1037
  br label %1049

1049:                                             ; preds = %1044, %1048
  %.str.25.sink1071 = phi ptr [ @.str.25, %1048 ], [ @.str.22, %1044 ]
  store i32 %1039, ptr %1038, align 4, !tbaa !5
  %1050 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1051 = load i32, ptr @test_count, align 4, !tbaa !5
  %1052 = load i32, ptr %882, align 4, !tbaa !5
  %1053 = call ptr @s2n_strerror(i32 noundef %1052, ptr noundef nonnull @.str.24) #12
  %1054 = load i32, ptr %882, align 4, !tbaa !5
  %1055 = call ptr @s2n_strerror_debug(i32 noundef %1054, ptr noundef nonnull @.str.24) #12
  %1056 = load i32, ptr %1038, align 4, !tbaa !5
  %1057 = call ptr @strerror(i32 noundef %1056) #12
  %1058 = load i32, ptr %1038, align 4, !tbaa !5
  %1059 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1050, ptr noundef nonnull %.str.25.sink1071, i32 noundef %1051, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.21, i32 noundef 219, ptr noundef %1053, ptr noundef %1055, ptr noundef %1057, i32 noundef %1058) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1060:                                             ; preds = %975
  br i1 %982, label %1084, label %1061

1061:                                             ; preds = %1060
  %1062 = tail call ptr @__errno_location() #13
  %1063 = load i32, ptr %1062, align 4, !tbaa !5
  %1064 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1065 = call i32 @s2n_print_stacktrace(ptr noundef %1064) #12
  %1066 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1067 = trunc nuw i8 %1066 to i1
  br i1 %1067, label %1068, label %1072

1068:                                             ; preds = %1061
  %1069 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1070 = call i32 @fileno(ptr noundef %1069) #12
  %1071 = call i32 @isatty(i32 noundef %1070) #12
  %.not612 = icmp eq i32 %1071, 0
  br i1 %.not612, label %1072, label %1073

1072:                                             ; preds = %1068, %1061
  br label %1073

1073:                                             ; preds = %1068, %1072
  %.str.25.sink1080 = phi ptr [ @.str.25, %1072 ], [ @.str.22, %1068 ]
  store i32 %1063, ptr %1062, align 4, !tbaa !5
  %1074 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1075 = load i32, ptr @test_count, align 4, !tbaa !5
  %1076 = load i32, ptr %882, align 4, !tbaa !5
  %1077 = call ptr @s2n_strerror(i32 noundef %1076, ptr noundef nonnull @.str.24) #12
  %1078 = load i32, ptr %882, align 4, !tbaa !5
  %1079 = call ptr @s2n_strerror_debug(i32 noundef %1078, ptr noundef nonnull @.str.24) #12
  %1080 = load i32, ptr %1062, align 4, !tbaa !5
  %1081 = call ptr @strerror(i32 noundef %1080) #12
  %1082 = load i32, ptr %1062, align 4, !tbaa !5
  %1083 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1074, ptr noundef nonnull %.str.25.sink1080, i32 noundef %1075, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.21, i32 noundef 221, ptr noundef %1077, ptr noundef %1079, ptr noundef %1081, i32 noundef %1082) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1084:                                             ; preds = %1060
  %1085 = load i32, ptr @test_count, align 4, !tbaa !5
  %1086 = add nsw i32 %1085, 1
  store i32 %1086, ptr @test_count, align 4, !tbaa !5
  %1087 = load i32, ptr %882, align 4, !tbaa !5
  %1088 = icmp eq i32 %1087, 335544322
  br i1 %1088, label %1112, label %1089

1089:                                             ; preds = %1084
  %1090 = tail call ptr @__errno_location() #13
  %1091 = load i32, ptr %1090, align 4, !tbaa !5
  %1092 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1093 = call i32 @s2n_print_stacktrace(ptr noundef %1092) #12
  %1094 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1095 = trunc nuw i8 %1094 to i1
  br i1 %1095, label %1096, label %1100

1096:                                             ; preds = %1089
  %1097 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1098 = call i32 @fileno(ptr noundef %1097) #12
  %1099 = call i32 @isatty(i32 noundef %1098) #12
  %.not613 = icmp eq i32 %1099, 0
  br i1 %.not613, label %1100, label %1101

1100:                                             ; preds = %1096, %1089
  br label %1101

1101:                                             ; preds = %1096, %1100
  %.str.25.sink1089 = phi ptr [ @.str.25, %1100 ], [ @.str.22, %1096 ]
  store i32 %1091, ptr %1090, align 4, !tbaa !5
  %1102 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1103 = load i32, ptr @test_count, align 4, !tbaa !5
  %1104 = load i32, ptr %882, align 4, !tbaa !5
  %1105 = call ptr @s2n_strerror(i32 noundef %1104, ptr noundef nonnull @.str.24) #12
  %1106 = load i32, ptr %882, align 4, !tbaa !5
  %1107 = call ptr @s2n_strerror_debug(i32 noundef %1106, ptr noundef nonnull @.str.24) #12
  %1108 = load i32, ptr %1090, align 4, !tbaa !5
  %1109 = call ptr @strerror(i32 noundef %1108) #12
  %1110 = load i32, ptr %1090, align 4, !tbaa !5
  %1111 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1102, ptr noundef nonnull %.str.25.sink1089, i32 noundef %1103, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.21, i32 noundef 221, ptr noundef %1105, ptr noundef %1107, ptr noundef %1109, i32 noundef %1110) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1112:                                             ; preds = %1084
  %1113 = add nsw i32 %1085, 2
  store i32 %1113, ptr @test_count, align 4, !tbaa !5
  %1114 = call ptr @s2n_strerror_debug(i32 noundef 335544322, ptr noundef nonnull @.str.24) #12
  %1115 = icmp eq ptr %1114, null
  br i1 %1115, label %1116, label %1139

1116:                                             ; preds = %1112
  %1117 = tail call ptr @__errno_location() #13
  %1118 = load i32, ptr %1117, align 4, !tbaa !5
  %1119 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1120 = call i32 @s2n_print_stacktrace(ptr noundef %1119) #12
  %1121 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1122 = trunc nuw i8 %1121 to i1
  br i1 %1122, label %1123, label %1127

1123:                                             ; preds = %1116
  %1124 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1125 = call i32 @fileno(ptr noundef %1124) #12
  %1126 = call i32 @isatty(i32 noundef %1125) #12
  %.not618 = icmp eq i32 %1126, 0
  br i1 %.not618, label %1127, label %1128

1127:                                             ; preds = %1123, %1116
  br label %1128

1128:                                             ; preds = %1123, %1127
  %.str.25.sink1098 = phi ptr [ @.str.25, %1127 ], [ @.str.22, %1123 ]
  store i32 %1118, ptr %1117, align 4, !tbaa !5
  %1129 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1130 = load i32, ptr @test_count, align 4, !tbaa !5
  %1131 = load i32, ptr %882, align 4, !tbaa !5
  %1132 = call ptr @s2n_strerror(i32 noundef %1131, ptr noundef nonnull @.str.24) #12
  %1133 = load i32, ptr %882, align 4, !tbaa !5
  %1134 = call ptr @s2n_strerror_debug(i32 noundef %1133, ptr noundef nonnull @.str.24) #12
  %1135 = load i32, ptr %1117, align 4, !tbaa !5
  %1136 = call ptr @strerror(i32 noundef %1135) #12
  %1137 = load i32, ptr %1117, align 4, !tbaa !5
  %1138 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1129, ptr noundef nonnull %.str.25.sink1098, i32 noundef %1130, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.21, i32 noundef 221, ptr noundef %1132, ptr noundef %1134, ptr noundef %1136, i32 noundef %1137) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1139:                                             ; preds = %1112
  store i32 0, ptr %882, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  %1140 = tail call ptr @__errno_location() #13
  store i32 0, ptr %1140, align 4, !tbaa !5
  %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 i32, ptr @expected_handler_called, align 4, !tbaa !5
  %.not614 = icmp eq i32 %1143, 0
  br i1 %.not614, label %1166, label %1144

1144:                                             ; preds = %1139
  %1145 = load i32, ptr %1140, align 4, !tbaa !5
  %1146 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1147 = call i32 @s2n_print_stacktrace(ptr noundef %1146) #12
  %1148 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1149 = trunc nuw i8 %1148 to i1
  br i1 %1149, label %1150, label %1154

1150:                                             ; preds = %1144
  %1151 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1152 = call i32 @fileno(ptr noundef %1151) #12
  %1153 = call i32 @isatty(i32 noundef %1152) #12
  %.not617 = icmp eq i32 %1153, 0
  br i1 %.not617, label %1154, label %1155

1154:                                             ; preds = %1150, %1144
  br label %1155

1155:                                             ; preds = %1150, %1154
  %.str.25.sink1107 = phi ptr [ @.str.25, %1154 ], [ @.str.22, %1150 ]
  store i32 %1145, ptr %1140, align 4, !tbaa !5
  %1156 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1157 = load i32, ptr @test_count, align 4, !tbaa !5
  %1158 = load i32, ptr %882, align 4, !tbaa !5
  %1159 = call ptr @s2n_strerror(i32 noundef %1158, ptr noundef nonnull @.str.24) #12
  %1160 = load i32, ptr %882, align 4, !tbaa !5
  %1161 = call ptr @s2n_strerror_debug(i32 noundef %1160, ptr noundef nonnull @.str.24) #12
  %1162 = load i32, ptr %1140, align 4, !tbaa !5
  %1163 = call ptr @strerror(i32 noundef %1162) #12
  %1164 = load i32, ptr %1140, align 4, !tbaa !5
  %1165 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1156, ptr noundef nonnull %.str.25.sink1107, i32 noundef %1157, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.21, i32 noundef 222, ptr noundef %1159, ptr noundef %1161, ptr noundef %1163, i32 noundef %1164) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1166:                                             ; preds = %1139
  %1167 = add nsw i32 %1141, 2
  store i32 %1167, ptr @test_count, align 4, !tbaa !5
  %1168 = load i32, ptr @unexpected_handler_called, align 4, !tbaa !5
  %.not615 = icmp eq i32 %1168, 0
  br i1 %.not615, label %1191, label %1169

1169:                                             ; preds = %1166
  %1170 = load i32, ptr %1140, align 4, !tbaa !5
  %1171 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1172 = call i32 @s2n_print_stacktrace(ptr noundef %1171) #12
  %1173 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1174 = trunc nuw i8 %1173 to i1
  br i1 %1174, label %1175, label %1179

1175:                                             ; preds = %1169
  %1176 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1177 = call i32 @fileno(ptr noundef %1176) #12
  %1178 = call i32 @isatty(i32 noundef %1177) #12
  %.not616 = icmp eq i32 %1178, 0
  br i1 %.not616, label %1179, label %1180

1179:                                             ; preds = %1175, %1169
  br label %1180

1180:                                             ; preds = %1175, %1179
  %.str.25.sink1116 = phi ptr [ @.str.25, %1179 ], [ @.str.22, %1175 ]
  store i32 %1170, ptr %1140, align 4, !tbaa !5
  %1181 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1182 = load i32, ptr @test_count, align 4, !tbaa !5
  %1183 = load i32, ptr %882, align 4, !tbaa !5
  %1184 = call ptr @s2n_strerror(i32 noundef %1183, ptr noundef nonnull @.str.24) #12
  %1185 = load i32, ptr %882, align 4, !tbaa !5
  %1186 = call ptr @s2n_strerror_debug(i32 noundef %1185, ptr noundef nonnull @.str.24) #12
  %1187 = load i32, ptr %1140, align 4, !tbaa !5
  %1188 = call ptr @strerror(i32 noundef %1187) #12
  %1189 = load i32, ptr %1140, align 4, !tbaa !5
  %1190 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1181, ptr noundef nonnull %.str.25.sink1116, i32 noundef %1182, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.21, i32 noundef 223, ptr noundef %1184, ptr noundef %1186, ptr noundef %1188, i32 noundef %1189) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1191:                                             ; preds = %1034, %1166
  %1192 = phi i32 [ %1035, %1034 ], [ %1167, %1166 ]
  %1193 = add nsw i32 %1192, 1
  store i32 %1193, ptr @test_count, align 4, !tbaa !5
  %1194 = call i32 @s2n_stuffer_wipe(ptr noundef nonnull %4) #12
  %1195 = icmp eq i32 %1194, -1
  br i1 %1195, label %1196, label %916

1196:                                             ; preds = %1191
  %1197 = tail call ptr @__errno_location() #13
  %1198 = load i32, ptr %1197, align 4, !tbaa !5
  %1199 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1200 = call i32 @s2n_print_stacktrace(ptr noundef %1199) #12
  %1201 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1202 = trunc nuw i8 %1201 to i1
  br i1 %1202, label %1203, label %1207

1203:                                             ; preds = %1196
  %1204 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1205 = call i32 @fileno(ptr noundef %1204) #12
  %1206 = call i32 @isatty(i32 noundef %1205) #12
  %.not622 = icmp eq i32 %1206, 0
  br i1 %.not622, label %1207, label %1208

1207:                                             ; preds = %1203, %1196
  br label %1208

1208:                                             ; preds = %1203, %1207
  %.str.25.sink1125 = phi ptr [ @.str.25, %1207 ], [ @.str.22, %1203 ]
  store i32 %1198, ptr %1197, align 4, !tbaa !5
  %1209 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1210 = load i32, ptr @test_count, align 4, !tbaa !5
  %1211 = load i32, ptr %882, align 4, !tbaa !5
  %1212 = call ptr @s2n_strerror(i32 noundef %1211, ptr noundef nonnull @.str.24) #12
  %1213 = load i32, ptr %882, align 4, !tbaa !5
  %1214 = call ptr @s2n_strerror_debug(i32 noundef %1213, ptr noundef nonnull @.str.24) #12
  %1215 = load i32, ptr %1197, align 4, !tbaa !5
  %1216 = call ptr @strerror(i32 noundef %1215) #12
  %1217 = load i32, ptr %1197, align 4, !tbaa !5
  %1218 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1209, ptr noundef nonnull %.str.25.sink1125, i32 noundef %1210, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.21, i32 noundef 226, ptr noundef %1212, ptr noundef %1214, ptr noundef %1216, i32 noundef %1217) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1219:                                             ; preds = %._crit_edge695
  %1220 = tail call ptr @__errno_location() #13
  %1221 = load i32, ptr %1220, align 4, !tbaa !5
  %1222 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1223 = call i32 @s2n_print_stacktrace(ptr noundef %1222) #12
  %1224 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1225 = trunc nuw i8 %1224 to i1
  br i1 %1225, label %1226, label %1230

1226:                                             ; preds = %1219
  %1227 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1228 = call i32 @fileno(ptr noundef %1227) #12
  %1229 = call i32 @isatty(i32 noundef %1228) #12
  %.not611 = icmp eq i32 %1229, 0
  br i1 %.not611, label %1230, label %1231

1230:                                             ; preds = %1226, %1219
  br label %1231

1231:                                             ; preds = %1226, %1230
  %.str.25.sink1134 = phi ptr [ @.str.25, %1230 ], [ @.str.22, %1226 ]
  store i32 %1221, ptr %1220, align 4, !tbaa !5
  %1232 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1233 = load i32, ptr @test_count, align 4, !tbaa !5
  %1234 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1235 = load i32, ptr %1234, align 4, !tbaa !5
  %1236 = call ptr @s2n_strerror(i32 noundef %1235, ptr noundef nonnull @.str.24) #12
  %1237 = load i32, ptr %1234, align 4, !tbaa !5
  %1238 = call ptr @s2n_strerror_debug(i32 noundef %1237, ptr noundef nonnull @.str.24) #12
  %1239 = load i32, ptr %1220, align 4, !tbaa !5
  %1240 = call ptr @strerror(i32 noundef %1239) #12
  %1241 = load i32, ptr %1220, align 4, !tbaa !5
  %1242 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1232, ptr noundef nonnull %.str.25.sink1134, i32 noundef %1233, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.21, i32 noundef 230, ptr noundef %1236, ptr noundef %1238, ptr noundef %1240, i32 noundef %1241) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1243:                                             ; preds = %._crit_edge695
  %1244 = load i32, ptr @test_count, align 4, !tbaa !5
  %1245 = add nsw i32 %1244, 1
  store i32 %1245, ptr @test_count, align 4, !tbaa !5
  %1246 = call i32 @s2n_connection_free(ptr noundef nonnull %844) #12
  %1247 = icmp eq i32 %1246, -1
  br i1 %1247, label %1248, label %1272

1248:                                             ; preds = %1243
  %1249 = tail call ptr @__errno_location() #13
  %1250 = load i32, ptr %1249, align 4, !tbaa !5
  %1251 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1252 = call i32 @s2n_print_stacktrace(ptr noundef %1251) #12
  %1253 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1254 = trunc nuw i8 %1253 to i1
  br i1 %1254, label %1255, label %1259

1255:                                             ; preds = %1248
  %1256 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1257 = call i32 @fileno(ptr noundef %1256) #12
  %1258 = call i32 @isatty(i32 noundef %1257) #12
  %.not610 = icmp eq i32 %1258, 0
  br i1 %.not610, label %1259, label %1260

1259:                                             ; preds = %1255, %1248
  br label %1260

1260:                                             ; preds = %1255, %1259
  %.str.25.sink1145 = phi ptr [ @.str.25, %1259 ], [ @.str.22, %1255 ]
  store i32 %1250, ptr %1249, align 4, !tbaa !5
  %1261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1262 = load i32, ptr @test_count, align 4, !tbaa !5
  %1263 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1264 = load i32, ptr %1263, align 4, !tbaa !5
  %1265 = call ptr @s2n_strerror(i32 noundef %1264, ptr noundef nonnull @.str.24) #12
  %1266 = load i32, ptr %1263, align 4, !tbaa !5
  %1267 = call ptr @s2n_strerror_debug(i32 noundef %1266, ptr noundef nonnull @.str.24) #12
  %1268 = load i32, ptr %1249, align 4, !tbaa !5
  %1269 = call ptr @strerror(i32 noundef %1268) #12
  %1270 = load i32, ptr %1249, align 4, !tbaa !5
  %1271 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1261, ptr noundef nonnull %.str.25.sink1145, i32 noundef %1262, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.21, i32 noundef 231, ptr noundef %1265, ptr noundef %1267, ptr noundef %1269, i32 noundef %1270) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1272:                                             ; preds = %1243
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %4) #12
  %1273 = call ptr @s2n_connection_new(i32 noundef 0) #12
  %1274 = getelementptr inbounds i8, ptr %1273, i64 220
  store i8 33, ptr %1274, align 4, !tbaa !19
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %5) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %5, i8 0, i64 40, i1 false)
  %1275 = load i32, ptr @test_count, align 4, !tbaa !5
  %1276 = add nsw i32 %1275, 1
  store i32 %1276, ptr @test_count, align 4, !tbaa !5
  %1277 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %5, i32 noundef 0) #12
  %1278 = icmp eq i32 %1277, -1
  br i1 %1278, label %1279, label %1303

1279:                                             ; preds = %1272
  %1280 = tail call ptr @__errno_location() #13
  %1281 = load i32, ptr %1280, align 4, !tbaa !5
  %1282 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1283 = call i32 @s2n_print_stacktrace(ptr noundef %1282) #12
  %1284 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1285 = trunc nuw i8 %1284 to i1
  br i1 %1285, label %1286, label %1290

1286:                                             ; preds = %1279
  %1287 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1288 = call i32 @fileno(ptr noundef %1287) #12
  %1289 = call i32 @isatty(i32 noundef %1288) #12
  %.not609 = icmp eq i32 %1289, 0
  br i1 %.not609, label %1290, label %1291

1290:                                             ; preds = %1286, %1279
  br label %1291

1291:                                             ; preds = %1286, %1290
  %.str.25.sink1156 = phi ptr [ @.str.25, %1290 ], [ @.str.22, %1286 ]
  store i32 %1281, ptr %1280, align 4, !tbaa !5
  %1292 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1293 = load i32, ptr @test_count, align 4, !tbaa !5
  %1294 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1295 = load i32, ptr %1294, align 4, !tbaa !5
  %1296 = call ptr @s2n_strerror(i32 noundef %1295, ptr noundef nonnull @.str.24) #12
  %1297 = load i32, ptr %1294, align 4, !tbaa !5
  %1298 = call ptr @s2n_strerror_debug(i32 noundef %1297, ptr noundef nonnull @.str.24) #12
  %1299 = load i32, ptr %1280, align 4, !tbaa !5
  %1300 = call ptr @strerror(i32 noundef %1299) #12
  %1301 = load i32, ptr %1280, align 4, !tbaa !5
  %1302 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1292, ptr noundef nonnull %.str.25.sink1156, i32 noundef %1293, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.21, i32 noundef 241, ptr noundef %1296, ptr noundef %1298, ptr noundef %1300, i32 noundef %1301) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1303:                                             ; preds = %1272
  %1304 = load i32, ptr @test_count, align 4, !tbaa !5
  %1305 = add nsw i32 %1304, 1
  store i32 %1305, ptr @test_count, align 4, !tbaa !5
  %1306 = call i32 @s2n_connection_set_io_stuffers(ptr noundef nonnull %5, ptr noundef null, ptr noundef nonnull %1273) #12
  %1307 = icmp eq i32 %1306, -1
  br i1 %1307, label %1312, label %.lr.ph698

.lr.ph698:                                        ; preds = %1303
  %1308 = getelementptr inbounds i8, ptr %1273, i64 2172
  %1309 = getelementptr inbounds i8, ptr %1273, i64 2176
  %1310 = getelementptr inbounds i8, ptr %1273, i64 1936
  %1311 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %smax782 = call i32 @llvm.smax.i32(i32 %.1, i32 1)
  %wide.trip.count783 = zext nneg i32 %smax782 to i64
  br label %1340

1312:                                             ; preds = %1303
  %1313 = tail call ptr @__errno_location() #13
  %1314 = load i32, ptr %1313, align 4, !tbaa !5
  %1315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1316 = call i32 @s2n_print_stacktrace(ptr noundef %1315) #12
  %1317 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1318 = trunc nuw i8 %1317 to i1
  br i1 %1318, label %1319, label %1323

1319:                                             ; preds = %1312
  %1320 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1321 = call i32 @fileno(ptr noundef %1320) #12
  %1322 = call i32 @isatty(i32 noundef %1321) #12
  %.not608 = icmp eq i32 %1322, 0
  br i1 %.not608, label %1323, label %1324

1323:                                             ; preds = %1319, %1312
  br label %1324

1324:                                             ; preds = %1319, %1323
  %.str.25.sink1167 = phi ptr [ @.str.25, %1323 ], [ @.str.22, %1319 ]
  store i32 %1314, ptr %1313, align 4, !tbaa !5
  %1325 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1326 = load i32, ptr @test_count, align 4, !tbaa !5
  %1327 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1328 = load i32, ptr %1327, align 4, !tbaa !5
  %1329 = call ptr @s2n_strerror(i32 noundef %1328, ptr noundef nonnull @.str.24) #12
  %1330 = load i32, ptr %1327, align 4, !tbaa !5
  %1331 = call ptr @s2n_strerror_debug(i32 noundef %1330, ptr noundef nonnull @.str.24) #12
  %1332 = load i32, ptr %1313, align 4, !tbaa !5
  %1333 = call ptr @strerror(i32 noundef %1332) #12
  %1334 = load i32, ptr %1313, align 4, !tbaa !5
  %1335 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1325, ptr noundef nonnull %.str.25.sink1167, i32 noundef %1326, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.21, i32 noundef 242, ptr noundef %1329, ptr noundef %1331, ptr noundef %1333, i32 noundef %1334) #14
  call void @exit(i32 noundef 1) #15
  unreachable

._crit_edge699:                                   ; preds = %1346
  %1336 = load i32, ptr @test_count, align 4, !tbaa !5
  %1337 = add nsw i32 %1336, 1
  store i32 %1337, ptr @test_count, align 4, !tbaa !5
  %1338 = call i32 @s2n_stuffer_free(ptr noundef nonnull %5) #12
  %1339 = icmp eq i32 %1338, -1
  br i1 %1339, label %1648, label %1672

1340:                                             ; preds = %.lr.ph698, %1346
  %indvars.iv779 = phi i64 [ 0, %.lr.ph698 ], [ %indvars.iv.next780, %1346 ]
  %1341 = getelementptr inbounds [256 x i16], ptr %3, i64 0, i64 %indvars.iv779
  %1342 = load i16, ptr %1341, align 2, !tbaa !15
  %1343 = zext i16 %1342 to i32
  store i32 %1343, ptr %1308, align 4, !tbaa !46
  %1344 = zext i16 %1342 to i64
  br label %1347

1345:                                             ; preds = %1620
  %indvars.iv.next776 = add nuw nsw i64 %indvars.iv775, 1
  %exitcond778.not = icmp eq i64 %indvars.iv.next776, 32
  br i1 %exitcond778.not, label %1346, label %1347, !llvm.loop !55

1346:                                             ; preds = %1345
  %indvars.iv.next780 = add nuw nsw i64 %indvars.iv779, 1
  %exitcond784.not = icmp eq i64 %indvars.iv.next780, %wide.trip.count783
  br i1 %exitcond784.not, label %._crit_edge699, label %1340, !llvm.loop !56

1347:                                             ; preds = %1340, %1345
  %indvars.iv775 = phi i64 [ 1, %1340 ], [ %indvars.iv.next776, %1345 ]
  %1348 = load i32, ptr @test_count, align 4, !tbaa !5
  %1349 = add nsw i32 %1348, 1
  store i32 %1349, ptr @test_count, align 4, !tbaa !5
  %1350 = call i32 @s2n_setup_handler_to_expect(i32 noundef 11, i8 noundef zeroext 0)
  %1351 = icmp eq i32 %1350, -1
  br i1 %1351, label %1352, label %1375

1352:                                             ; preds = %1347
  %1353 = tail call ptr @__errno_location() #13
  %1354 = load i32, ptr %1353, align 4, !tbaa !5
  %1355 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1356 = call i32 @s2n_print_stacktrace(ptr noundef %1355) #12
  %1357 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1358 = trunc nuw i8 %1357 to i1
  br i1 %1358, label %1359, label %1363

1359:                                             ; preds = %1352
  %1360 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1361 = call i32 @fileno(ptr noundef %1360) #12
  %1362 = call i32 @isatty(i32 noundef %1361) #12
  %.not607 = icmp eq i32 %1362, 0
  br i1 %.not607, label %1363, label %1364

1363:                                             ; preds = %1359, %1352
  br label %1364

1364:                                             ; preds = %1359, %1363
  %.str.25.sink1178 = phi ptr [ @.str.25, %1363 ], [ @.str.22, %1359 ]
  store i32 %1354, ptr %1353, align 4, !tbaa !5
  %1365 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1366 = load i32, ptr @test_count, align 4, !tbaa !5
  %1367 = load i32, ptr %1311, align 4, !tbaa !5
  %1368 = call ptr @s2n_strerror(i32 noundef %1367, ptr noundef nonnull @.str.24) #12
  %1369 = load i32, ptr %1311, align 4, !tbaa !5
  %1370 = call ptr @s2n_strerror_debug(i32 noundef %1369, ptr noundef nonnull @.str.24) #12
  %1371 = load i32, ptr %1353, align 4, !tbaa !5
  %1372 = call ptr @strerror(i32 noundef %1371) #12
  %1373 = load i32, ptr %1353, align 4, !tbaa !5
  %1374 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1365, ptr noundef nonnull %.str.25.sink1178, i32 noundef %1366, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.21, i32 noundef 250, ptr noundef %1368, ptr noundef %1370, ptr noundef %1372, i32 noundef %1373) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1375:                                             ; preds = %1347
  %1376 = trunc nuw nsw i64 %indvars.iv775 to i32
  store i32 %1376, ptr %1309, align 8, !tbaa !47
  store i32 0, ptr %1310, align 8, !tbaa !54
  %1377 = load i32, ptr @test_count, align 4, !tbaa !5
  %1378 = add nsw i32 %1377, 1
  store i32 %1378, ptr @test_count, align 4, !tbaa !5
  %1379 = call i32 @s2n_test_write_header(ptr noundef nonnull %5, i8 noundef zeroext 20, i8 noundef zeroext 0)
  %1380 = icmp eq i32 %1379, -1
  br i1 %1380, label %1381, label %1404

1381:                                             ; preds = %1375
  %1382 = tail call ptr @__errno_location() #13
  %1383 = load i32, ptr %1382, align 4, !tbaa !5
  %1384 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1385 = call i32 @s2n_print_stacktrace(ptr noundef %1384) #12
  %1386 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1387 = trunc nuw i8 %1386 to i1
  br i1 %1387, label %1388, label %1392

1388:                                             ; preds = %1381
  %1389 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1390 = call i32 @fileno(ptr noundef %1389) #12
  %1391 = call i32 @isatty(i32 noundef %1390) #12
  %.not606 = icmp eq i32 %1391, 0
  br i1 %.not606, label %1392, label %1393

1392:                                             ; preds = %1388, %1381
  br label %1393

1393:                                             ; preds = %1388, %1392
  %.str.25.sink1187 = phi ptr [ @.str.25, %1392 ], [ @.str.22, %1388 ]
  store i32 %1383, ptr %1382, align 4, !tbaa !5
  %1394 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1395 = load i32, ptr @test_count, align 4, !tbaa !5
  %1396 = load i32, ptr %1311, align 4, !tbaa !5
  %1397 = call ptr @s2n_strerror(i32 noundef %1396, ptr noundef nonnull @.str.24) #12
  %1398 = load i32, ptr %1311, align 4, !tbaa !5
  %1399 = call ptr @s2n_strerror_debug(i32 noundef %1398, ptr noundef nonnull @.str.24) #12
  %1400 = load i32, ptr %1382, align 4, !tbaa !5
  %1401 = call ptr @strerror(i32 noundef %1400) #12
  %1402 = load i32, ptr %1382, align 4, !tbaa !5
  %1403 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1394, ptr noundef nonnull %.str.25.sink1187, i32 noundef %1395, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.21, i32 noundef 254, ptr noundef %1397, ptr noundef %1399, ptr noundef %1401, i32 noundef %1402) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1404:                                             ; preds = %1375
  %1405 = getelementptr inbounds [256 x [32 x i32]], ptr @handshakes, i64 0, i64 %1344, i64 %indvars.iv775
  %1406 = load i32, ptr %1405, align 4, !tbaa !5
  %1407 = icmp eq i32 %1406, 11
  %1408 = load i32, ptr @test_count, align 4, !tbaa !5
  %1409 = add nsw i32 %1408, 1
  store i32 %1409, ptr @test_count, align 4, !tbaa !5
  %1410 = call i32 @s2n_handshake_read_io(ptr noundef nonnull %1273)
  %1411 = icmp eq i32 %1410, -1
  br i1 %1407, label %1412, label %1489

1412:                                             ; preds = %1404
  br i1 %1411, label %1413, label %1436

1413:                                             ; preds = %1412
  %1414 = tail call ptr @__errno_location() #13
  %1415 = load i32, ptr %1414, align 4, !tbaa !5
  %1416 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1417 = call i32 @s2n_print_stacktrace(ptr noundef %1416) #12
  %1418 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1419 = trunc nuw i8 %1418 to i1
  br i1 %1419, label %1420, label %1424

1420:                                             ; preds = %1413
  %1421 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1422 = call i32 @fileno(ptr noundef %1421) #12
  %1423 = call i32 @isatty(i32 noundef %1422) #12
  %.not605 = icmp eq i32 %1423, 0
  br i1 %.not605, label %1424, label %1425

1424:                                             ; preds = %1420, %1413
  br label %1425

1425:                                             ; preds = %1420, %1424
  %.str.25.sink1196 = phi ptr [ @.str.25, %1424 ], [ @.str.22, %1420 ]
  store i32 %1415, ptr %1414, align 4, !tbaa !5
  %1426 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1427 = load i32, ptr @test_count, align 4, !tbaa !5
  %1428 = load i32, ptr %1311, align 4, !tbaa !5
  %1429 = call ptr @s2n_strerror(i32 noundef %1428, ptr noundef nonnull @.str.24) #12
  %1430 = load i32, ptr %1311, align 4, !tbaa !5
  %1431 = call ptr @s2n_strerror_debug(i32 noundef %1430, ptr noundef nonnull @.str.24) #12
  %1432 = load i32, ptr %1414, align 4, !tbaa !5
  %1433 = call ptr @strerror(i32 noundef %1432) #12
  %1434 = load i32, ptr %1414, align 4, !tbaa !5
  %1435 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1426, ptr noundef nonnull %.str.25.sink1196, i32 noundef %1427, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.21, i32 noundef 257, ptr noundef %1429, ptr noundef %1431, ptr noundef %1433, i32 noundef %1434) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1436:                                             ; preds = %1412
  %1437 = load i32, ptr @test_count, align 4, !tbaa !5
  %1438 = add nsw i32 %1437, 1
  store i32 %1438, ptr @test_count, align 4, !tbaa !5
  %1439 = load i32, ptr @expected_handler_called, align 4, !tbaa !5
  %.not600 = icmp eq i32 %1439, 0
  br i1 %.not600, label %1440, label %1463

1440:                                             ; preds = %1436
  %1441 = tail call ptr @__errno_location() #13
  %1442 = load i32, ptr %1441, align 4, !tbaa !5
  %1443 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1444 = call i32 @s2n_print_stacktrace(ptr noundef %1443) #12
  %1445 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1446 = trunc nuw i8 %1445 to i1
  br i1 %1446, label %1447, label %1451

1447:                                             ; preds = %1440
  %1448 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1449 = call i32 @fileno(ptr noundef %1448) #12
  %1450 = call i32 @isatty(i32 noundef %1449) #12
  %.not601 = icmp eq i32 %1450, 0
  br i1 %.not601, label %1451, label %1452

1451:                                             ; preds = %1447, %1440
  br label %1452

1452:                                             ; preds = %1447, %1451
  %.str.25.sink1205 = phi ptr [ @.str.25, %1451 ], [ @.str.22, %1447 ]
  store i32 %1442, ptr %1441, align 4, !tbaa !5
  %1453 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1454 = load i32, ptr @test_count, align 4, !tbaa !5
  %1455 = load i32, ptr %1311, align 4, !tbaa !5
  %1456 = call ptr @s2n_strerror(i32 noundef %1455, ptr noundef nonnull @.str.24) #12
  %1457 = load i32, ptr %1311, align 4, !tbaa !5
  %1458 = call ptr @s2n_strerror_debug(i32 noundef %1457, ptr noundef nonnull @.str.24) #12
  %1459 = load i32, ptr %1441, align 4, !tbaa !5
  %1460 = call ptr @strerror(i32 noundef %1459) #12
  %1461 = load i32, ptr %1441, align 4, !tbaa !5
  %1462 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1453, ptr noundef nonnull %.str.25.sink1205, i32 noundef %1454, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.21, i32 noundef 258, ptr noundef %1456, ptr noundef %1458, ptr noundef %1460, i32 noundef %1461) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1463:                                             ; preds = %1436
  %1464 = add nsw i32 %1437, 2
  store i32 %1464, ptr @test_count, align 4, !tbaa !5
  %1465 = load i32, ptr @unexpected_handler_called, align 4, !tbaa !5
  %.not602 = icmp eq i32 %1465, 0
  br i1 %.not602, label %1620, label %1466

1466:                                             ; preds = %1463
  %1467 = tail call ptr @__errno_location() #13
  %1468 = load i32, ptr %1467, align 4, !tbaa !5
  %1469 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1470 = call i32 @s2n_print_stacktrace(ptr noundef %1469) #12
  %1471 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1472 = trunc nuw i8 %1471 to i1
  br i1 %1472, label %1473, label %1477

1473:                                             ; preds = %1466
  %1474 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1475 = call i32 @fileno(ptr noundef %1474) #12
  %1476 = call i32 @isatty(i32 noundef %1475) #12
  %.not604 = icmp eq i32 %1476, 0
  br i1 %.not604, label %1477, label %1478

1477:                                             ; preds = %1473, %1466
  br label %1478

1478:                                             ; preds = %1473, %1477
  %.str.25.sink1214 = phi ptr [ @.str.25, %1477 ], [ @.str.22, %1473 ]
  store i32 %1468, ptr %1467, align 4, !tbaa !5
  %1479 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1480 = load i32, ptr @test_count, align 4, !tbaa !5
  %1481 = load i32, ptr %1311, align 4, !tbaa !5
  %1482 = call ptr @s2n_strerror(i32 noundef %1481, ptr noundef nonnull @.str.24) #12
  %1483 = load i32, ptr %1311, align 4, !tbaa !5
  %1484 = call ptr @s2n_strerror_debug(i32 noundef %1483, ptr noundef nonnull @.str.24) #12
  %1485 = load i32, ptr %1467, align 4, !tbaa !5
  %1486 = call ptr @strerror(i32 noundef %1485) #12
  %1487 = load i32, ptr %1467, align 4, !tbaa !5
  %1488 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1479, ptr noundef nonnull %.str.25.sink1214, i32 noundef %1480, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.21, i32 noundef 259, ptr noundef %1482, ptr noundef %1484, ptr noundef %1486, i32 noundef %1487) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1489:                                             ; preds = %1404
  br i1 %1411, label %1513, label %1490

1490:                                             ; preds = %1489
  %1491 = tail call ptr @__errno_location() #13
  %1492 = load i32, ptr %1491, align 4, !tbaa !5
  %1493 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1494 = call i32 @s2n_print_stacktrace(ptr noundef %1493) #12
  %1495 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1496 = trunc nuw i8 %1495 to i1
  br i1 %1496, label %1497, label %1501

1497:                                             ; preds = %1490
  %1498 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1499 = call i32 @fileno(ptr noundef %1498) #12
  %1500 = call i32 @isatty(i32 noundef %1499) #12
  %.not593 = icmp eq i32 %1500, 0
  br i1 %.not593, label %1501, label %1502

1501:                                             ; preds = %1497, %1490
  br label %1502

1502:                                             ; preds = %1497, %1501
  %.str.25.sink1223 = phi ptr [ @.str.25, %1501 ], [ @.str.22, %1497 ]
  store i32 %1492, ptr %1491, align 4, !tbaa !5
  %1503 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1504 = load i32, ptr @test_count, align 4, !tbaa !5
  %1505 = load i32, ptr %1311, align 4, !tbaa !5
  %1506 = call ptr @s2n_strerror(i32 noundef %1505, ptr noundef nonnull @.str.24) #12
  %1507 = load i32, ptr %1311, align 4, !tbaa !5
  %1508 = call ptr @s2n_strerror_debug(i32 noundef %1507, ptr noundef nonnull @.str.24) #12
  %1509 = load i32, ptr %1491, align 4, !tbaa !5
  %1510 = call ptr @strerror(i32 noundef %1509) #12
  %1511 = load i32, ptr %1491, align 4, !tbaa !5
  %1512 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1503, ptr noundef nonnull %.str.25.sink1223, i32 noundef %1504, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.21, i32 noundef 261, ptr noundef %1506, ptr noundef %1508, ptr noundef %1510, i32 noundef %1511) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1513:                                             ; preds = %1489
  %1514 = load i32, ptr @test_count, align 4, !tbaa !5
  %1515 = add nsw i32 %1514, 1
  store i32 %1515, ptr @test_count, align 4, !tbaa !5
  %1516 = load i32, ptr %1311, align 4, !tbaa !5
  %1517 = icmp eq i32 %1516, 335544322
  br i1 %1517, label %1541, label %1518

1518:                                             ; preds = %1513
  %1519 = tail call ptr @__errno_location() #13
  %1520 = load i32, ptr %1519, align 4, !tbaa !5
  %1521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1522 = call i32 @s2n_print_stacktrace(ptr noundef %1521) #12
  %1523 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1524 = trunc nuw i8 %1523 to i1
  br i1 %1524, label %1525, label %1529

1525:                                             ; preds = %1518
  %1526 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1527 = call i32 @fileno(ptr noundef %1526) #12
  %1528 = call i32 @isatty(i32 noundef %1527) #12
  %.not594 = icmp eq i32 %1528, 0
  br i1 %.not594, label %1529, label %1530

1529:                                             ; preds = %1525, %1518
  br label %1530

1530:                                             ; preds = %1525, %1529
  %.str.25.sink1232 = phi ptr [ @.str.25, %1529 ], [ @.str.22, %1525 ]
  store i32 %1520, ptr %1519, align 4, !tbaa !5
  %1531 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1532 = load i32, ptr @test_count, align 4, !tbaa !5
  %1533 = load i32, ptr %1311, align 4, !tbaa !5
  %1534 = call ptr @s2n_strerror(i32 noundef %1533, ptr noundef nonnull @.str.24) #12
  %1535 = load i32, ptr %1311, align 4, !tbaa !5
  %1536 = call ptr @s2n_strerror_debug(i32 noundef %1535, ptr noundef nonnull @.str.24) #12
  %1537 = load i32, ptr %1519, align 4, !tbaa !5
  %1538 = call ptr @strerror(i32 noundef %1537) #12
  %1539 = load i32, ptr %1519, align 4, !tbaa !5
  %1540 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1531, ptr noundef nonnull %.str.25.sink1232, i32 noundef %1532, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.21, i32 noundef 261, ptr noundef %1534, ptr noundef %1536, ptr noundef %1538, i32 noundef %1539) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1541:                                             ; preds = %1513
  %1542 = add nsw i32 %1514, 2
  store i32 %1542, ptr @test_count, align 4, !tbaa !5
  %1543 = call ptr @s2n_strerror_debug(i32 noundef 335544322, ptr noundef nonnull @.str.24) #12
  %1544 = icmp eq ptr %1543, null
  br i1 %1544, label %1545, label %1568

1545:                                             ; preds = %1541
  %1546 = tail call ptr @__errno_location() #13
  %1547 = load i32, ptr %1546, align 4, !tbaa !5
  %1548 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1549 = call i32 @s2n_print_stacktrace(ptr noundef %1548) #12
  %1550 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1551 = trunc nuw i8 %1550 to i1
  br i1 %1551, label %1552, label %1556

1552:                                             ; preds = %1545
  %1553 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1554 = call i32 @fileno(ptr noundef %1553) #12
  %1555 = call i32 @isatty(i32 noundef %1554) #12
  %.not599 = icmp eq i32 %1555, 0
  br i1 %.not599, label %1556, label %1557

1556:                                             ; preds = %1552, %1545
  br label %1557

1557:                                             ; preds = %1552, %1556
  %.str.25.sink1241 = phi ptr [ @.str.25, %1556 ], [ @.str.22, %1552 ]
  store i32 %1547, ptr %1546, align 4, !tbaa !5
  %1558 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1559 = load i32, ptr @test_count, align 4, !tbaa !5
  %1560 = load i32, ptr %1311, align 4, !tbaa !5
  %1561 = call ptr @s2n_strerror(i32 noundef %1560, ptr noundef nonnull @.str.24) #12
  %1562 = load i32, ptr %1311, align 4, !tbaa !5
  %1563 = call ptr @s2n_strerror_debug(i32 noundef %1562, ptr noundef nonnull @.str.24) #12
  %1564 = load i32, ptr %1546, align 4, !tbaa !5
  %1565 = call ptr @strerror(i32 noundef %1564) #12
  %1566 = load i32, ptr %1546, align 4, !tbaa !5
  %1567 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1558, ptr noundef nonnull %.str.25.sink1241, i32 noundef %1559, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.21, i32 noundef 261, ptr noundef %1561, ptr noundef %1563, ptr noundef %1565, i32 noundef %1566) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1568:                                             ; preds = %1541
  store i32 0, ptr %1311, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  %1569 = tail call ptr @__errno_location() #13
  store i32 0, ptr %1569, align 4, !tbaa !5
  %1570 = load i32, ptr @test_count, align 4, !tbaa !5
  %1571 = add nsw i32 %1570, 1
  store i32 %1571, ptr @test_count, align 4, !tbaa !5
  %1572 = load i32, ptr @expected_handler_called, align 4, !tbaa !5
  %.not595 = icmp eq i32 %1572, 0
  br i1 %.not595, label %1595, label %1573

1573:                                             ; preds = %1568
  %1574 = load i32, ptr %1569, align 4, !tbaa !5
  %1575 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1576 = call i32 @s2n_print_stacktrace(ptr noundef %1575) #12
  %1577 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1578 = trunc nuw i8 %1577 to i1
  br i1 %1578, label %1579, label %1583

1579:                                             ; preds = %1573
  %1580 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1581 = call i32 @fileno(ptr noundef %1580) #12
  %1582 = call i32 @isatty(i32 noundef %1581) #12
  %.not598 = icmp eq i32 %1582, 0
  br i1 %.not598, label %1583, label %1584

1583:                                             ; preds = %1579, %1573
  br label %1584

1584:                                             ; preds = %1579, %1583
  %.str.25.sink1250 = phi ptr [ @.str.25, %1583 ], [ @.str.22, %1579 ]
  store i32 %1574, ptr %1569, align 4, !tbaa !5
  %1585 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1586 = load i32, ptr @test_count, align 4, !tbaa !5
  %1587 = load i32, ptr %1311, align 4, !tbaa !5
  %1588 = call ptr @s2n_strerror(i32 noundef %1587, ptr noundef nonnull @.str.24) #12
  %1589 = load i32, ptr %1311, align 4, !tbaa !5
  %1590 = call ptr @s2n_strerror_debug(i32 noundef %1589, ptr noundef nonnull @.str.24) #12
  %1591 = load i32, ptr %1569, align 4, !tbaa !5
  %1592 = call ptr @strerror(i32 noundef %1591) #12
  %1593 = load i32, ptr %1569, align 4, !tbaa !5
  %1594 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1585, ptr noundef nonnull %.str.25.sink1250, i32 noundef %1586, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.21, i32 noundef 262, ptr noundef %1588, ptr noundef %1590, ptr noundef %1592, i32 noundef %1593) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1595:                                             ; preds = %1568
  %1596 = add nsw i32 %1570, 2
  store i32 %1596, ptr @test_count, align 4, !tbaa !5
  %1597 = load i32, ptr @unexpected_handler_called, align 4, !tbaa !5
  %.not596 = icmp eq i32 %1597, 0
  br i1 %.not596, label %1620, label %1598

1598:                                             ; preds = %1595
  %1599 = load i32, ptr %1569, align 4, !tbaa !5
  %1600 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1601 = call i32 @s2n_print_stacktrace(ptr noundef %1600) #12
  %1602 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1603 = trunc nuw i8 %1602 to i1
  br i1 %1603, label %1604, label %1608

1604:                                             ; preds = %1598
  %1605 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1606 = call i32 @fileno(ptr noundef %1605) #12
  %1607 = call i32 @isatty(i32 noundef %1606) #12
  %.not597 = icmp eq i32 %1607, 0
  br i1 %.not597, label %1608, label %1609

1608:                                             ; preds = %1604, %1598
  br label %1609

1609:                                             ; preds = %1604, %1608
  %.str.25.sink1259 = phi ptr [ @.str.25, %1608 ], [ @.str.22, %1604 ]
  store i32 %1599, ptr %1569, align 4, !tbaa !5
  %1610 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1611 = load i32, ptr @test_count, align 4, !tbaa !5
  %1612 = load i32, ptr %1311, align 4, !tbaa !5
  %1613 = call ptr @s2n_strerror(i32 noundef %1612, ptr noundef nonnull @.str.24) #12
  %1614 = load i32, ptr %1311, align 4, !tbaa !5
  %1615 = call ptr @s2n_strerror_debug(i32 noundef %1614, ptr noundef nonnull @.str.24) #12
  %1616 = load i32, ptr %1569, align 4, !tbaa !5
  %1617 = call ptr @strerror(i32 noundef %1616) #12
  %1618 = load i32, ptr %1569, align 4, !tbaa !5
  %1619 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1610, ptr noundef nonnull %.str.25.sink1259, i32 noundef %1611, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.21, i32 noundef 263, ptr noundef %1613, ptr noundef %1615, ptr noundef %1617, i32 noundef %1618) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1620:                                             ; preds = %1463, %1595
  %1621 = phi i32 [ %1464, %1463 ], [ %1596, %1595 ]
  %1622 = add nsw i32 %1621, 1
  store i32 %1622, ptr @test_count, align 4, !tbaa !5
  %1623 = call i32 @s2n_stuffer_wipe(ptr noundef nonnull %5) #12
  %1624 = icmp eq i32 %1623, -1
  br i1 %1624, label %1625, label %1345

1625:                                             ; preds = %1620
  %1626 = tail call ptr @__errno_location() #13
  %1627 = load i32, ptr %1626, align 4, !tbaa !5
  %1628 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1629 = call i32 @s2n_print_stacktrace(ptr noundef %1628) #12
  %1630 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1631 = trunc nuw i8 %1630 to i1
  br i1 %1631, label %1632, label %1636

1632:                                             ; preds = %1625
  %1633 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1634 = call i32 @fileno(ptr noundef %1633) #12
  %1635 = call i32 @isatty(i32 noundef %1634) #12
  %.not603 = icmp eq i32 %1635, 0
  br i1 %.not603, label %1636, label %1637

1636:                                             ; preds = %1632, %1625
  br label %1637

1637:                                             ; preds = %1632, %1636
  %.str.25.sink1268 = phi ptr [ @.str.25, %1636 ], [ @.str.22, %1632 ]
  store i32 %1627, ptr %1626, align 4, !tbaa !5
  %1638 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1639 = load i32, ptr @test_count, align 4, !tbaa !5
  %1640 = load i32, ptr %1311, align 4, !tbaa !5
  %1641 = call ptr @s2n_strerror(i32 noundef %1640, ptr noundef nonnull @.str.24) #12
  %1642 = load i32, ptr %1311, align 4, !tbaa !5
  %1643 = call ptr @s2n_strerror_debug(i32 noundef %1642, ptr noundef nonnull @.str.24) #12
  %1644 = load i32, ptr %1626, align 4, !tbaa !5
  %1645 = call ptr @strerror(i32 noundef %1644) #12
  %1646 = load i32, ptr %1626, align 4, !tbaa !5
  %1647 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1638, ptr noundef nonnull %.str.25.sink1268, i32 noundef %1639, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.21, i32 noundef 266, ptr noundef %1641, ptr noundef %1643, ptr noundef %1645, i32 noundef %1646) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1648:                                             ; preds = %._crit_edge699
  %1649 = tail call ptr @__errno_location() #13
  %1650 = load i32, ptr %1649, align 4, !tbaa !5
  %1651 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1652 = call i32 @s2n_print_stacktrace(ptr noundef %1651) #12
  %1653 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1654 = trunc nuw i8 %1653 to i1
  br i1 %1654, label %1655, label %1659

1655:                                             ; preds = %1648
  %1656 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1657 = call i32 @fileno(ptr noundef %1656) #12
  %1658 = call i32 @isatty(i32 noundef %1657) #12
  %.not592 = icmp eq i32 %1658, 0
  br i1 %.not592, label %1659, label %1660

1659:                                             ; preds = %1655, %1648
  br label %1660

1660:                                             ; preds = %1655, %1659
  %.str.25.sink1277 = phi ptr [ @.str.25, %1659 ], [ @.str.22, %1655 ]
  store i32 %1650, ptr %1649, align 4, !tbaa !5
  %1661 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1662 = load i32, ptr @test_count, align 4, !tbaa !5
  %1663 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1664 = load i32, ptr %1663, align 4, !tbaa !5
  %1665 = call ptr @s2n_strerror(i32 noundef %1664, ptr noundef nonnull @.str.24) #12
  %1666 = load i32, ptr %1663, align 4, !tbaa !5
  %1667 = call ptr @s2n_strerror_debug(i32 noundef %1666, ptr noundef nonnull @.str.24) #12
  %1668 = load i32, ptr %1649, align 4, !tbaa !5
  %1669 = call ptr @strerror(i32 noundef %1668) #12
  %1670 = load i32, ptr %1649, align 4, !tbaa !5
  %1671 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1661, ptr noundef nonnull %.str.25.sink1277, i32 noundef %1662, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.21, i32 noundef 270, ptr noundef %1665, ptr noundef %1667, ptr noundef %1669, i32 noundef %1670) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1672:                                             ; preds = %._crit_edge699
  %1673 = load i32, ptr @test_count, align 4, !tbaa !5
  %1674 = add nsw i32 %1673, 1
  store i32 %1674, ptr @test_count, align 4, !tbaa !5
  %1675 = call i32 @s2n_connection_free(ptr noundef nonnull %1273) #12
  %1676 = icmp eq i32 %1675, -1
  br i1 %1676, label %1677, label %1701

1677:                                             ; preds = %1672
  %1678 = tail call ptr @__errno_location() #13
  %1679 = load i32, ptr %1678, align 4, !tbaa !5
  %1680 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1681 = call i32 @s2n_print_stacktrace(ptr noundef %1680) #12
  %1682 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1683 = trunc nuw i8 %1682 to i1
  br i1 %1683, label %1684, label %1688

1684:                                             ; preds = %1677
  %1685 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1686 = call i32 @fileno(ptr noundef %1685) #12
  %1687 = call i32 @isatty(i32 noundef %1686) #12
  %.not591 = icmp eq i32 %1687, 0
  br i1 %.not591, label %1688, label %1689

1688:                                             ; preds = %1684, %1677
  br label %1689

1689:                                             ; preds = %1684, %1688
  %.str.25.sink1288 = phi ptr [ @.str.25, %1688 ], [ @.str.22, %1684 ]
  store i32 %1679, ptr %1678, align 4, !tbaa !5
  %1690 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1691 = load i32, ptr @test_count, align 4, !tbaa !5
  %1692 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1693 = load i32, ptr %1692, align 4, !tbaa !5
  %1694 = call ptr @s2n_strerror(i32 noundef %1693, ptr noundef nonnull @.str.24) #12
  %1695 = load i32, ptr %1692, align 4, !tbaa !5
  %1696 = call ptr @s2n_strerror_debug(i32 noundef %1695, ptr noundef nonnull @.str.24) #12
  %1697 = load i32, ptr %1678, align 4, !tbaa !5
  %1698 = call ptr @strerror(i32 noundef %1697) #12
  %1699 = load i32, ptr %1678, align 4, !tbaa !5
  %1700 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1690, ptr noundef nonnull %.str.25.sink1288, i32 noundef %1691, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.21, i32 noundef 271, ptr noundef %1694, ptr noundef %1696, ptr noundef %1698, i32 noundef %1699) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1701:                                             ; preds = %1672
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %5) #12
  %1702 = call ptr @s2n_connection_new(i32 noundef 1) #12
  %1703 = getelementptr inbounds i8, ptr %1702, i64 220
  store i8 33, ptr %1703, align 4, !tbaa !19
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %6) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %6, i8 0, i64 40, i1 false)
  %1704 = load i32, ptr @test_count, align 4, !tbaa !5
  %1705 = add nsw i32 %1704, 1
  store i32 %1705, ptr @test_count, align 4, !tbaa !5
  %1706 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %6, i32 noundef 0) #12
  %1707 = icmp eq i32 %1706, -1
  br i1 %1707, label %1708, label %1732

1708:                                             ; preds = %1701
  %1709 = tail call ptr @__errno_location() #13
  %1710 = load i32, ptr %1709, align 4, !tbaa !5
  %1711 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1712 = call i32 @s2n_print_stacktrace(ptr noundef %1711) #12
  %1713 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1714 = trunc nuw i8 %1713 to i1
  br i1 %1714, label %1715, label %1719

1715:                                             ; preds = %1708
  %1716 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1717 = call i32 @fileno(ptr noundef %1716) #12
  %1718 = call i32 @isatty(i32 noundef %1717) #12
  %.not590 = icmp eq i32 %1718, 0
  br i1 %.not590, label %1719, label %1720

1719:                                             ; preds = %1715, %1708
  br label %1720

1720:                                             ; preds = %1715, %1719
  %.str.25.sink1299 = phi ptr [ @.str.25, %1719 ], [ @.str.22, %1715 ]
  store i32 %1710, ptr %1709, align 4, !tbaa !5
  %1721 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1722 = load i32, ptr @test_count, align 4, !tbaa !5
  %1723 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1724 = load i32, ptr %1723, align 4, !tbaa !5
  %1725 = call ptr @s2n_strerror(i32 noundef %1724, ptr noundef nonnull @.str.24) #12
  %1726 = load i32, ptr %1723, align 4, !tbaa !5
  %1727 = call ptr @s2n_strerror_debug(i32 noundef %1726, ptr noundef nonnull @.str.24) #12
  %1728 = load i32, ptr %1709, align 4, !tbaa !5
  %1729 = call ptr @strerror(i32 noundef %1728) #12
  %1730 = load i32, ptr %1709, align 4, !tbaa !5
  %1731 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1721, ptr noundef nonnull %.str.25.sink1299, i32 noundef %1722, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.21, i32 noundef 280, ptr noundef %1725, ptr noundef %1727, ptr noundef %1729, i32 noundef %1730) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1732:                                             ; preds = %1701
  %1733 = load i32, ptr @test_count, align 4, !tbaa !5
  %1734 = add nsw i32 %1733, 1
  store i32 %1734, ptr @test_count, align 4, !tbaa !5
  %1735 = call i32 @s2n_connection_set_io_stuffers(ptr noundef nonnull %6, ptr noundef null, ptr noundef nonnull %1702) #12
  %1736 = icmp eq i32 %1735, -1
  br i1 %1736, label %1741, label %.preheader647

.preheader647:                                    ; preds = %1732
  %1737 = getelementptr inbounds i8, ptr %1702, i64 2176
  %1738 = getelementptr inbounds i8, ptr %1702, i64 1936
  %1739 = getelementptr inbounds i8, ptr %1702, i64 2172
  %1740 = call i32 @llvm.umax.i32(i32 %.1, i32 1)
  %umax = zext nneg i32 %1740 to i64
  br label %1769

1741:                                             ; preds = %1732
  %1742 = tail call ptr @__errno_location() #13
  %1743 = load i32, ptr %1742, align 4, !tbaa !5
  %1744 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1745 = call i32 @s2n_print_stacktrace(ptr noundef %1744) #12
  %1746 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1747 = trunc nuw i8 %1746 to i1
  br i1 %1747, label %1748, label %1752

1748:                                             ; preds = %1741
  %1749 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1750 = call i32 @fileno(ptr noundef %1749) #12
  %1751 = call i32 @isatty(i32 noundef %1750) #12
  %.not589 = icmp eq i32 %1751, 0
  br i1 %.not589, label %1752, label %1753

1752:                                             ; preds = %1748, %1741
  br label %1753

1753:                                             ; preds = %1748, %1752
  %.str.25.sink1310 = phi ptr [ @.str.25, %1752 ], [ @.str.22, %1748 ]
  store i32 %1743, ptr %1742, align 4, !tbaa !5
  %1754 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1755 = load i32, ptr @test_count, align 4, !tbaa !5
  %1756 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1757 = load i32, ptr %1756, align 4, !tbaa !5
  %1758 = call ptr @s2n_strerror(i32 noundef %1757, ptr noundef nonnull @.str.24) #12
  %1759 = load i32, ptr %1756, align 4, !tbaa !5
  %1760 = call ptr @s2n_strerror_debug(i32 noundef %1759, ptr noundef nonnull @.str.24) #12
  %1761 = load i32, ptr %1742, align 4, !tbaa !5
  %1762 = call ptr @strerror(i32 noundef %1761) #12
  %1763 = load i32, ptr %1742, align 4, !tbaa !5
  %1764 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1754, ptr noundef nonnull %.str.25.sink1310, i32 noundef %1755, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.21, i32 noundef 281, ptr noundef %1758, ptr noundef %1760, ptr noundef %1762, i32 noundef %1763) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1765:                                             ; preds = %1897
  %1766 = load i32, ptr @test_count, align 4, !tbaa !5
  %1767 = add nsw i32 %1766, 1
  store i32 %1767, ptr @test_count, align 4, !tbaa !5
  %1768 = load i32, ptr @unexpected_handler_called, align 4, !tbaa !5
  %.not505 = icmp eq i32 %1768, 0
  br i1 %.not505, label %1923, label %1899

1769:                                             ; preds = %.preheader647, %1897
  %.0492701 = phi i64 [ 0, %.preheader647 ], [ %1898, %1897 ]
  %1770 = getelementptr inbounds [256 x i16], ptr %3, i64 0, i64 %.0492701
  %1771 = load i16, ptr %1770, align 2, !tbaa !15
  %1772 = zext i16 %1771 to i64
  %1773 = zext i16 %1771 to i32
  br label %1776

1774:                                             ; preds = %1869
  %1775 = add nuw nsw i64 %.0493700, 1
  %exitcond785.not = icmp eq i64 %1775, 32
  br i1 %exitcond785.not, label %1897, label %1776, !llvm.loop !57

1776:                                             ; preds = %1769, %1774
  %.0493700 = phi i64 [ 0, %1769 ], [ %1775, %1774 ]
  %1777 = getelementptr inbounds [256 x [32 x i32]], ptr @handshakes, i64 0, i64 %1772, i64 %.0493700
  %1778 = load i32, ptr %1777, align 4, !tbaa !5
  %1779 = icmp eq i32 %1778, 20
  br i1 %1779, label %1897, label %1780

1780:                                             ; preds = %1776
  %1781 = trunc nuw nsw i64 %.0493700 to i32
  store i32 %1781, ptr %1737, align 8, !tbaa !47
  store i32 0, ptr %1738, align 8, !tbaa !54
  store i32 %1773, ptr %1739, align 4, !tbaa !46
  %1782 = load i32, ptr @test_count, align 4, !tbaa !5
  %1783 = add nsw i32 %1782, 1
  store i32 %1783, ptr @test_count, align 4, !tbaa !5
  %1784 = call i32 @s2n_test_write_header(ptr noundef nonnull %6, i8 noundef zeroext 22, i8 noundef zeroext 0)
  %1785 = icmp eq i32 %1784, -1
  br i1 %1785, label %1786, label %1810

1786:                                             ; preds = %1780
  %1787 = tail call ptr @__errno_location() #13
  %1788 = load i32, ptr %1787, align 4, !tbaa !5
  %1789 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1790 = call i32 @s2n_print_stacktrace(ptr noundef %1789) #12
  %1791 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1792 = trunc nuw i8 %1791 to i1
  br i1 %1792, label %1793, label %1797

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

1797:                                             ; preds = %1793, %1786
  br label %1798

1798:                                             ; preds = %1793, %1797
  %.str.25.sink1321 = phi ptr [ @.str.25, %1797 ], [ @.str.22, %1793 ]
  store i32 %1788, ptr %1787, align 4, !tbaa !5
  %1799 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1800 = load i32, ptr @test_count, align 4, !tbaa !5
  %1801 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1802 = load i32, ptr %1801, align 4, !tbaa !5
  %1803 = call ptr @s2n_strerror(i32 noundef %1802, ptr noundef nonnull @.str.24) #12
  %1804 = load i32, ptr %1801, align 4, !tbaa !5
  %1805 = call ptr @s2n_strerror_debug(i32 noundef %1804, ptr noundef nonnull @.str.24) #12
  %1806 = load i32, ptr %1787, align 4, !tbaa !5
  %1807 = call ptr @strerror(i32 noundef %1806) #12
  %1808 = load i32, ptr %1787, align 4, !tbaa !5
  %1809 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1799, ptr noundef nonnull %.str.25.sink1321, i32 noundef %1800, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.21, i32 noundef 295, ptr noundef %1803, ptr noundef %1805, ptr noundef %1807, i32 noundef %1808) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1810:                                             ; preds = %1780
  %1811 = load i32, ptr @test_count, align 4, !tbaa !5
  %1812 = add nsw i32 %1811, 1
  store i32 %1812, ptr @test_count, align 4, !tbaa !5
  %1813 = call i32 @s2n_handshake_read_io(ptr noundef nonnull %1702)
  %1814 = icmp eq i32 %1813, -1
  br i1 %1814, label %1815, label %1839

1815:                                             ; preds = %1810
  %1816 = tail call ptr @__errno_location() #13
  %1817 = load i32, ptr %1816, align 4, !tbaa !5
  %1818 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1819 = call i32 @s2n_print_stacktrace(ptr noundef %1818) #12
  %1820 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1821 = trunc nuw i8 %1820 to i1
  br i1 %1821, label %1822, label %1826

1822:                                             ; preds = %1815
  %1823 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1824 = call i32 @fileno(ptr noundef %1823) #12
  %1825 = call i32 @isatty(i32 noundef %1824) #12
  %.not587 = icmp eq i32 %1825, 0
  br i1 %.not587, label %1826, label %1827

1826:                                             ; preds = %1822, %1815
  br label %1827

1827:                                             ; preds = %1822, %1826
  %.str.25.sink1332 = phi ptr [ @.str.25, %1826 ], [ @.str.22, %1822 ]
  store i32 %1817, ptr %1816, align 4, !tbaa !5
  %1828 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1829 = load i32, ptr @test_count, align 4, !tbaa !5
  %1830 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1831 = load i32, ptr %1830, align 4, !tbaa !5
  %1832 = call ptr @s2n_strerror(i32 noundef %1831, ptr noundef nonnull @.str.24) #12
  %1833 = load i32, ptr %1830, align 4, !tbaa !5
  %1834 = call ptr @s2n_strerror_debug(i32 noundef %1833, ptr noundef nonnull @.str.24) #12
  %1835 = load i32, ptr %1816, align 4, !tbaa !5
  %1836 = call ptr @strerror(i32 noundef %1835) #12
  %1837 = load i32, ptr %1816, align 4, !tbaa !5
  %1838 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1828, ptr noundef nonnull %.str.25.sink1332, i32 noundef %1829, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.21, i32 noundef 296, ptr noundef %1832, ptr noundef %1834, ptr noundef %1836, i32 noundef %1837) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1839:                                             ; preds = %1810
  %1840 = load i32, ptr @test_count, align 4, !tbaa !5
  %1841 = add nsw i32 %1840, 1
  store i32 %1841, ptr @test_count, align 4, !tbaa !5
  %1842 = load i32, ptr %1737, align 8, !tbaa !47
  %1843 = sext i32 %1842 to i64
  %1844 = icmp eq i64 %.0493700, %1843
  br i1 %1844, label %1869, label %1845

1845:                                             ; preds = %1839
  %1846 = tail call ptr @__errno_location() #13
  %1847 = load i32, ptr %1846, align 4, !tbaa !5
  %1848 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1849 = call i32 @s2n_print_stacktrace(ptr noundef %1848) #12
  %1850 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1851 = trunc nuw i8 %1850 to i1
  br i1 %1851, label %1852, label %1856

1852:                                             ; preds = %1845
  %1853 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1854 = call i32 @fileno(ptr noundef %1853) #12
  %1855 = call i32 @isatty(i32 noundef %1854) #12
  %.not585 = icmp eq i32 %1855, 0
  br i1 %.not585, label %1856, label %1857

1856:                                             ; preds = %1852, %1845
  br label %1857

1857:                                             ; preds = %1852, %1856
  %.str.25.sink1343 = phi ptr [ @.str.25, %1856 ], [ @.str.22, %1852 ]
  store i32 %1847, ptr %1846, align 4, !tbaa !5
  %1858 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1859 = load i32, ptr @test_count, align 4, !tbaa !5
  %1860 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1861 = load i32, ptr %1860, align 4, !tbaa !5
  %1862 = call ptr @s2n_strerror(i32 noundef %1861, ptr noundef nonnull @.str.24) #12
  %1863 = load i32, ptr %1860, align 4, !tbaa !5
  %1864 = call ptr @s2n_strerror_debug(i32 noundef %1863, ptr noundef nonnull @.str.24) #12
  %1865 = load i32, ptr %1846, align 4, !tbaa !5
  %1866 = call ptr @strerror(i32 noundef %1865) #12
  %1867 = load i32, ptr %1846, align 4, !tbaa !5
  %1868 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1858, ptr noundef nonnull %.str.25.sink1343, i32 noundef %1859, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.21, i32 noundef 297, ptr noundef %1862, ptr noundef %1864, ptr noundef %1866, i32 noundef %1867) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1869:                                             ; preds = %1839
  %1870 = add nsw i32 %1840, 2
  store i32 %1870, ptr @test_count, align 4, !tbaa !5
  %1871 = call i32 @s2n_stuffer_wipe(ptr noundef nonnull %6) #12
  %1872 = icmp eq i32 %1871, -1
  br i1 %1872, label %1873, label %1774

1873:                                             ; preds = %1869
  %1874 = tail call ptr @__errno_location() #13
  %1875 = load i32, ptr %1874, align 4, !tbaa !5
  %1876 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1877 = call i32 @s2n_print_stacktrace(ptr noundef %1876) #12
  %1878 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1879 = trunc nuw i8 %1878 to i1
  br i1 %1879, label %1880, label %1884

1880:                                             ; preds = %1873
  %1881 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1882 = call i32 @fileno(ptr noundef %1881) #12
  %1883 = call i32 @isatty(i32 noundef %1882) #12
  %.not586 = icmp eq i32 %1883, 0
  br i1 %.not586, label %1884, label %1885

1884:                                             ; preds = %1880, %1873
  br label %1885

1885:                                             ; preds = %1880, %1884
  %.str.25.sink1354 = phi ptr [ @.str.25, %1884 ], [ @.str.22, %1880 ]
  store i32 %1875, ptr %1874, align 4, !tbaa !5
  %1886 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1887 = load i32, ptr @test_count, align 4, !tbaa !5
  %1888 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1889 = load i32, ptr %1888, align 4, !tbaa !5
  %1890 = call ptr @s2n_strerror(i32 noundef %1889, ptr noundef nonnull @.str.24) #12
  %1891 = load i32, ptr %1888, align 4, !tbaa !5
  %1892 = call ptr @s2n_strerror_debug(i32 noundef %1891, ptr noundef nonnull @.str.24) #12
  %1893 = load i32, ptr %1874, align 4, !tbaa !5
  %1894 = call ptr @strerror(i32 noundef %1893) #12
  %1895 = load i32, ptr %1874, align 4, !tbaa !5
  %1896 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1886, ptr noundef nonnull %.str.25.sink1354, i32 noundef %1887, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.21, i32 noundef 299, ptr noundef %1890, ptr noundef %1892, ptr noundef %1894, i32 noundef %1895) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1897:                                             ; preds = %1776, %1774
  %1898 = add nuw nsw i64 %.0492701, 1
  %exitcond786.not = icmp eq i64 %1898, %umax
  br i1 %exitcond786.not, label %1765, label %1769, !llvm.loop !58

1899:                                             ; preds = %1765
  %1900 = tail call ptr @__errno_location() #13
  %1901 = load i32, ptr %1900, align 4, !tbaa !5
  %1902 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1903 = call i32 @s2n_print_stacktrace(ptr noundef %1902) #12
  %1904 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1905 = trunc nuw i8 %1904 to i1
  br i1 %1905, label %1906, label %1910

1906:                                             ; preds = %1899
  %1907 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1908 = call i32 @fileno(ptr noundef %1907) #12
  %1909 = call i32 @isatty(i32 noundef %1908) #12
  %.not584 = icmp eq i32 %1909, 0
  br i1 %.not584, label %1910, label %1911

1910:                                             ; preds = %1906, %1899
  br label %1911

1911:                                             ; preds = %1906, %1910
  %.str.25.sink1365 = phi ptr [ @.str.25, %1910 ], [ @.str.22, %1906 ]
  store i32 %1901, ptr %1900, align 4, !tbaa !5
  %1912 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1913 = load i32, ptr @test_count, align 4, !tbaa !5
  %1914 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1915 = load i32, ptr %1914, align 4, !tbaa !5
  %1916 = call ptr @s2n_strerror(i32 noundef %1915, ptr noundef nonnull @.str.24) #12
  %1917 = load i32, ptr %1914, align 4, !tbaa !5
  %1918 = call ptr @s2n_strerror_debug(i32 noundef %1917, ptr noundef nonnull @.str.24) #12
  %1919 = load i32, ptr %1900, align 4, !tbaa !5
  %1920 = call ptr @strerror(i32 noundef %1919) #12
  %1921 = load i32, ptr %1900, align 4, !tbaa !5
  %1922 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1912, ptr noundef nonnull %.str.25.sink1365, i32 noundef %1913, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.21, i32 noundef 303, ptr noundef %1916, ptr noundef %1918, ptr noundef %1920, i32 noundef %1921) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1923:                                             ; preds = %1765
  %1924 = add nsw i32 %1766, 2
  store i32 %1924, ptr @test_count, align 4, !tbaa !5
  %1925 = call i32 @s2n_stuffer_free(ptr noundef nonnull %6) #12
  %1926 = icmp eq i32 %1925, -1
  br i1 %1926, label %1927, label %1951

1927:                                             ; preds = %1923
  %1928 = tail call ptr @__errno_location() #13
  %1929 = load i32, ptr %1928, align 4, !tbaa !5
  %1930 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1931 = call i32 @s2n_print_stacktrace(ptr noundef %1930) #12
  %1932 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1933 = trunc nuw i8 %1932 to i1
  br i1 %1933, label %1934, label %1938

1934:                                             ; preds = %1927
  %1935 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1936 = call i32 @fileno(ptr noundef %1935) #12
  %1937 = call i32 @isatty(i32 noundef %1936) #12
  %.not583 = icmp eq i32 %1937, 0
  br i1 %.not583, label %1938, label %1939

1938:                                             ; preds = %1934, %1927
  br label %1939

1939:                                             ; preds = %1934, %1938
  %.str.25.sink1376 = phi ptr [ @.str.25, %1938 ], [ @.str.22, %1934 ]
  store i32 %1929, ptr %1928, align 4, !tbaa !5
  %1940 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1941 = load i32, ptr @test_count, align 4, !tbaa !5
  %1942 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1943 = load i32, ptr %1942, align 4, !tbaa !5
  %1944 = call ptr @s2n_strerror(i32 noundef %1943, ptr noundef nonnull @.str.24) #12
  %1945 = load i32, ptr %1942, align 4, !tbaa !5
  %1946 = call ptr @s2n_strerror_debug(i32 noundef %1945, ptr noundef nonnull @.str.24) #12
  %1947 = load i32, ptr %1928, align 4, !tbaa !5
  %1948 = call ptr @strerror(i32 noundef %1947) #12
  %1949 = load i32, ptr %1928, align 4, !tbaa !5
  %1950 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1940, ptr noundef nonnull %.str.25.sink1376, i32 noundef %1941, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.21, i32 noundef 304, ptr noundef %1944, ptr noundef %1946, ptr noundef %1948, i32 noundef %1949) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1951:                                             ; preds = %1923
  %1952 = load i32, ptr @test_count, align 4, !tbaa !5
  %1953 = add nsw i32 %1952, 1
  store i32 %1953, ptr @test_count, align 4, !tbaa !5
  %1954 = call i32 @s2n_connection_free(ptr noundef %1702) #12
  %1955 = icmp eq i32 %1954, -1
  br i1 %1955, label %1956, label %1980

1956:                                             ; preds = %1951
  %1957 = tail call ptr @__errno_location() #13
  %1958 = load i32, ptr %1957, align 4, !tbaa !5
  %1959 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1960 = call i32 @s2n_print_stacktrace(ptr noundef %1959) #12
  %1961 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1962 = trunc nuw i8 %1961 to i1
  br i1 %1962, label %1963, label %1967

1963:                                             ; preds = %1956
  %1964 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1965 = call i32 @fileno(ptr noundef %1964) #12
  %1966 = call i32 @isatty(i32 noundef %1965) #12
  %.not582 = icmp eq i32 %1966, 0
  br i1 %.not582, label %1967, label %1968

1967:                                             ; preds = %1963, %1956
  br label %1968

1968:                                             ; preds = %1963, %1967
  %.str.25.sink1387 = phi ptr [ @.str.25, %1967 ], [ @.str.22, %1963 ]
  store i32 %1958, ptr %1957, align 4, !tbaa !5
  %1969 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1970 = load i32, ptr @test_count, align 4, !tbaa !5
  %1971 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1972 = load i32, ptr %1971, align 4, !tbaa !5
  %1973 = call ptr @s2n_strerror(i32 noundef %1972, ptr noundef nonnull @.str.24) #12
  %1974 = load i32, ptr %1971, align 4, !tbaa !5
  %1975 = call ptr @s2n_strerror_debug(i32 noundef %1974, ptr noundef nonnull @.str.24) #12
  %1976 = load i32, ptr %1957, align 4, !tbaa !5
  %1977 = call ptr @strerror(i32 noundef %1976) #12
  %1978 = load i32, ptr %1957, align 4, !tbaa !5
  %1979 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1969, ptr noundef nonnull %.str.25.sink1387, i32 noundef %1970, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.21, i32 noundef 305, ptr noundef %1973, ptr noundef %1975, ptr noundef %1977, i32 noundef %1978) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1980:                                             ; preds = %1951
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %6) #12
  %1981 = call ptr @s2n_connection_new(i32 noundef 0) #12
  %1982 = getelementptr inbounds i8, ptr %1981, i64 220
  store i8 33, ptr %1982, align 4, !tbaa !19
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %7) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %7, i8 0, i64 40, i1 false)
  %1983 = load i32, ptr @test_count, align 4, !tbaa !5
  %1984 = add nsw i32 %1983, 1
  store i32 %1984, ptr @test_count, align 4, !tbaa !5
  %1985 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %7, i32 noundef 0) #12
  %1986 = icmp eq i32 %1985, -1
  br i1 %1986, label %1987, label %2011

1987:                                             ; preds = %1980
  %1988 = tail call ptr @__errno_location() #13
  %1989 = load i32, ptr %1988, align 4, !tbaa !5
  %1990 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1991 = call i32 @s2n_print_stacktrace(ptr noundef %1990) #12
  %1992 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1993 = trunc nuw i8 %1992 to i1
  br i1 %1993, label %1994, label %1998

1994:                                             ; preds = %1987
  %1995 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1996 = call i32 @fileno(ptr noundef %1995) #12
  %1997 = call i32 @isatty(i32 noundef %1996) #12
  %.not581 = icmp eq i32 %1997, 0
  br i1 %.not581, label %1998, label %1999

1998:                                             ; preds = %1994, %1987
  br label %1999

1999:                                             ; preds = %1994, %1998
  %.str.25.sink1398 = phi ptr [ @.str.25, %1998 ], [ @.str.22, %1994 ]
  store i32 %1989, ptr %1988, align 4, !tbaa !5
  %2000 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2001 = load i32, ptr @test_count, align 4, !tbaa !5
  %2002 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2003 = load i32, ptr %2002, align 4, !tbaa !5
  %2004 = call ptr @s2n_strerror(i32 noundef %2003, ptr noundef nonnull @.str.24) #12
  %2005 = load i32, ptr %2002, align 4, !tbaa !5
  %2006 = call ptr @s2n_strerror_debug(i32 noundef %2005, ptr noundef nonnull @.str.24) #12
  %2007 = load i32, ptr %1988, align 4, !tbaa !5
  %2008 = call ptr @strerror(i32 noundef %2007) #12
  %2009 = load i32, ptr %1988, align 4, !tbaa !5
  %2010 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2000, ptr noundef nonnull %.str.25.sink1398, i32 noundef %2001, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.21, i32 noundef 316, ptr noundef %2004, ptr noundef %2006, ptr noundef %2008, i32 noundef %2009) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2011:                                             ; preds = %1980
  %2012 = load i32, ptr @test_count, align 4, !tbaa !5
  %2013 = add nsw i32 %2012, 1
  store i32 %2013, ptr @test_count, align 4, !tbaa !5
  %2014 = call i32 @s2n_connection_set_io_stuffers(ptr noundef nonnull %7, ptr noundef null, ptr noundef nonnull %1981) #12
  %2015 = icmp eq i32 %2014, -1
  br i1 %2015, label %2016, label %2040

2016:                                             ; preds = %2011
  %2017 = tail call ptr @__errno_location() #13
  %2018 = load i32, ptr %2017, align 4, !tbaa !5
  %2019 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2020 = call i32 @s2n_print_stacktrace(ptr noundef %2019) #12
  %2021 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2022 = trunc nuw i8 %2021 to i1
  br i1 %2022, label %2023, label %2027

2023:                                             ; preds = %2016
  %2024 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2025 = call i32 @fileno(ptr noundef %2024) #12
  %2026 = call i32 @isatty(i32 noundef %2025) #12
  %.not580 = icmp eq i32 %2026, 0
  br i1 %.not580, label %2027, label %2028

2027:                                             ; preds = %2023, %2016
  br label %2028

2028:                                             ; preds = %2023, %2027
  %.str.25.sink1409 = phi ptr [ @.str.25, %2027 ], [ @.str.22, %2023 ]
  store i32 %2018, ptr %2017, align 4, !tbaa !5
  %2029 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2030 = load i32, ptr @test_count, align 4, !tbaa !5
  %2031 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2032 = load i32, ptr %2031, align 4, !tbaa !5
  %2033 = call ptr @s2n_strerror(i32 noundef %2032, ptr noundef nonnull @.str.24) #12
  %2034 = load i32, ptr %2031, align 4, !tbaa !5
  %2035 = call ptr @s2n_strerror_debug(i32 noundef %2034, ptr noundef nonnull @.str.24) #12
  %2036 = load i32, ptr %2017, align 4, !tbaa !5
  %2037 = call ptr @strerror(i32 noundef %2036) #12
  %2038 = load i32, ptr %2017, align 4, !tbaa !5
  %2039 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2029, ptr noundef nonnull %.str.25.sink1409, i32 noundef %2030, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.21, i32 noundef 317, ptr noundef %2033, ptr noundef %2035, ptr noundef %2037, i32 noundef %2038) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2040:                                             ; preds = %2011
  %2041 = getelementptr inbounds i8, ptr %1981, i64 2172
  store i32 0, ptr %2041, align 4, !tbaa !46
  %2042 = getelementptr inbounds i8, ptr %1981, i64 2176
  store i32 0, ptr %2042, align 8, !tbaa !47
  %2043 = load i32, ptr @test_count, align 4, !tbaa !5
  %2044 = add nsw i32 %2043, 1
  store i32 %2044, ptr @test_count, align 4, !tbaa !5
  %2045 = getelementptr inbounds i8, ptr %1981, i64 2204
  %2046 = load i32, ptr %2045, align 4, !tbaa !45
  %2047 = icmp eq i32 %2046, 2
  %tls13_handshakes.val = load i32, ptr @tls13_handshakes, align 16
  %handshakes.val = load i32, ptr @handshakes, align 16
  %2048 = select i1 %2047, i32 %tls13_handshakes.val, i32 %handshakes.val
  %2049 = icmp eq i32 %2048, 0
  br i1 %2049, label %2074, label %2050

2050:                                             ; preds = %2040
  %2051 = tail call ptr @__errno_location() #13
  %2052 = load i32, ptr %2051, align 4, !tbaa !5
  %2053 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2054 = call i32 @s2n_print_stacktrace(ptr noundef %2053) #12
  %2055 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2056 = trunc nuw i8 %2055 to i1
  br i1 %2056, label %2057, label %2061

2057:                                             ; preds = %2050
  %2058 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2059 = call i32 @fileno(ptr noundef %2058) #12
  %2060 = call i32 @isatty(i32 noundef %2059) #12
  %.not506 = icmp eq i32 %2060, 0
  br i1 %.not506, label %2061, label %2062

2061:                                             ; preds = %2057, %2050
  br label %2062

2062:                                             ; preds = %2057, %2061
  %.str.25.sink1420 = phi ptr [ @.str.25, %2061 ], [ @.str.22, %2057 ]
  store i32 %2052, ptr %2051, 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 nonnull @.str.24) #12
  %2068 = load i32, ptr %2065, align 4, !tbaa !5
  %2069 = call ptr @s2n_strerror_debug(i32 noundef %2068, ptr noundef nonnull @.str.24) #12
  %2070 = load i32, ptr %2051, align 4, !tbaa !5
  %2071 = call ptr @strerror(i32 noundef %2070) #12
  %2072 = load i32, ptr %2051, align 4, !tbaa !5
  %2073 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2063, ptr noundef nonnull %.str.25.sink1420, i32 noundef %2064, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.21, i32 noundef 321, ptr noundef %2067, ptr noundef %2069, ptr noundef %2071, i32 noundef %2072) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2074:                                             ; preds = %2040
  %2075 = add nsw i32 %2043, 2
  store i32 %2075, ptr @test_count, align 4, !tbaa !5
  %2076 = call i32 @s2n_setup_handler_to_expect(i32 noundef 0, i8 noundef zeroext 0)
  %2077 = icmp eq i32 %2076, -1
  br i1 %2077, label %2078, label %2102

2078:                                             ; preds = %2074
  %2079 = tail call ptr @__errno_location() #13
  %2080 = load i32, ptr %2079, align 4, !tbaa !5
  %2081 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2082 = call i32 @s2n_print_stacktrace(ptr noundef %2081) #12
  %2083 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2084 = trunc nuw i8 %2083 to i1
  br i1 %2084, label %2085, label %2089

2085:                                             ; preds = %2078
  %2086 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2087 = call i32 @fileno(ptr noundef %2086) #12
  %2088 = call i32 @isatty(i32 noundef %2087) #12
  %.not579 = icmp eq i32 %2088, 0
  br i1 %.not579, label %2089, label %2090

2089:                                             ; preds = %2085, %2078
  br label %2090

2090:                                             ; preds = %2085, %2089
  %.str.25.sink1431 = phi ptr [ @.str.25, %2089 ], [ @.str.22, %2085 ]
  store i32 %2080, ptr %2079, align 4, !tbaa !5
  %2091 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2092 = load i32, ptr @test_count, align 4, !tbaa !5
  %2093 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2094 = load i32, ptr %2093, align 4, !tbaa !5
  %2095 = call ptr @s2n_strerror(i32 noundef %2094, ptr noundef nonnull @.str.24) #12
  %2096 = load i32, ptr %2093, align 4, !tbaa !5
  %2097 = call ptr @s2n_strerror_debug(i32 noundef %2096, ptr noundef nonnull @.str.24) #12
  %2098 = load i32, ptr %2079, align 4, !tbaa !5
  %2099 = call ptr @strerror(i32 noundef %2098) #12
  %2100 = load i32, ptr %2079, align 4, !tbaa !5
  %2101 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2091, ptr noundef nonnull %.str.25.sink1431, i32 noundef %2092, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.21, i32 noundef 322, ptr noundef %2095, ptr noundef %2097, ptr noundef %2099, i32 noundef %2100) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2102:                                             ; preds = %2074
  %2103 = load i32, ptr @test_count, align 4, !tbaa !5
  %2104 = add nsw i32 %2103, 1
  store i32 %2104, ptr @test_count, align 4, !tbaa !5
  %2105 = call i32 @s2n_test_write_header(ptr noundef nonnull %7, i8 noundef zeroext 22, i8 noundef zeroext 1)
  %2106 = icmp eq i32 %2105, -1
  br i1 %2106, label %2107, label %2131

2107:                                             ; preds = %2102
  %2108 = tail call ptr @__errno_location() #13
  %2109 = load i32, ptr %2108, align 4, !tbaa !5
  %2110 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2111 = call i32 @s2n_print_stacktrace(ptr noundef %2110) #12
  %2112 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2113 = trunc nuw i8 %2112 to i1
  br i1 %2113, label %2114, label %2118

2114:                                             ; preds = %2107
  %2115 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2116 = call i32 @fileno(ptr noundef %2115) #12
  %2117 = call i32 @isatty(i32 noundef %2116) #12
  %.not578 = icmp eq i32 %2117, 0
  br i1 %.not578, label %2118, label %2119

2118:                                             ; preds = %2114, %2107
  br label %2119

2119:                                             ; preds = %2114, %2118
  %.str.25.sink1442 = phi ptr [ @.str.25, %2118 ], [ @.str.22, %2114 ]
  store i32 %2109, ptr %2108, align 4, !tbaa !5
  %2120 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2121 = load i32, ptr @test_count, align 4, !tbaa !5
  %2122 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2123 = load i32, ptr %2122, align 4, !tbaa !5
  %2124 = call ptr @s2n_strerror(i32 noundef %2123, ptr noundef nonnull @.str.24) #12
  %2125 = load i32, ptr %2122, align 4, !tbaa !5
  %2126 = call ptr @s2n_strerror_debug(i32 noundef %2125, ptr noundef nonnull @.str.24) #12
  %2127 = load i32, ptr %2108, align 4, !tbaa !5
  %2128 = call ptr @strerror(i32 noundef %2127) #12
  %2129 = load i32, ptr %2108, align 4, !tbaa !5
  %2130 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2120, ptr noundef nonnull %.str.25.sink1442, i32 noundef %2121, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.21, i32 noundef 324, ptr noundef %2124, ptr noundef %2126, ptr noundef %2128, i32 noundef %2129) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2131:                                             ; preds = %2102
  %2132 = load i32, ptr @test_count, align 4, !tbaa !5
  %2133 = add nsw i32 %2132, 1
  store i32 %2133, ptr @test_count, align 4, !tbaa !5
  %2134 = call i32 @s2n_handshake_read_io(ptr noundef nonnull %1981)
  %2135 = icmp eq i32 %2134, -1
  br i1 %2135, label %2136, label %2160

2136:                                             ; preds = %2131
  %2137 = tail call ptr @__errno_location() #13
  %2138 = load i32, ptr %2137, align 4, !tbaa !5
  %2139 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2140 = call i32 @s2n_print_stacktrace(ptr noundef %2139) #12
  %2141 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2142 = trunc nuw i8 %2141 to i1
  br i1 %2142, label %2143, label %2147

2143:                                             ; preds = %2136
  %2144 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2145 = call i32 @fileno(ptr noundef %2144) #12
  %2146 = call i32 @isatty(i32 noundef %2145) #12
  %.not577 = icmp eq i32 %2146, 0
  br i1 %.not577, label %2147, label %2148

2147:                                             ; preds = %2143, %2136
  br label %2148

2148:                                             ; preds = %2143, %2147
  %.str.25.sink1453 = phi ptr [ @.str.25, %2147 ], [ @.str.22, %2143 ]
  store i32 %2138, ptr %2137, align 4, !tbaa !5
  %2149 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2150 = load i32, ptr @test_count, align 4, !tbaa !5
  %2151 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2152 = load i32, ptr %2151, align 4, !tbaa !5
  %2153 = call ptr @s2n_strerror(i32 noundef %2152, ptr noundef nonnull @.str.24) #12
  %2154 = load i32, ptr %2151, align 4, !tbaa !5
  %2155 = call ptr @s2n_strerror_debug(i32 noundef %2154, ptr noundef nonnull @.str.24) #12
  %2156 = load i32, ptr %2137, align 4, !tbaa !5
  %2157 = call ptr @strerror(i32 noundef %2156) #12
  %2158 = load i32, ptr %2137, align 4, !tbaa !5
  %2159 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2149, ptr noundef nonnull %.str.25.sink1453, i32 noundef %2150, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.21, i32 noundef 325, ptr noundef %2153, ptr noundef %2155, ptr noundef %2157, i32 noundef %2158) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2160:                                             ; preds = %2131
  %2161 = load i32, ptr @test_count, align 4, !tbaa !5
  %2162 = add nsw i32 %2161, 1
  store i32 %2162, ptr @test_count, align 4, !tbaa !5
  %2163 = load i32, ptr %2042, align 8, !tbaa !47
  %2164 = icmp eq i32 %2163, 1
  br i1 %2164, label %2189, label %2165

2165:                                             ; preds = %2160
  %2166 = tail call ptr @__errno_location() #13
  %2167 = load i32, ptr %2166, align 4, !tbaa !5
  %2168 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2169 = call i32 @s2n_print_stacktrace(ptr noundef %2168) #12
  %2170 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2171 = trunc nuw i8 %2170 to i1
  br i1 %2171, label %2172, label %2176

2172:                                             ; preds = %2165
  %2173 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2174 = call i32 @fileno(ptr noundef %2173) #12
  %2175 = call i32 @isatty(i32 noundef %2174) #12
  %.not507 = icmp eq i32 %2175, 0
  br i1 %.not507, label %2176, label %2177

2176:                                             ; preds = %2172, %2165
  br label %2177

2177:                                             ; preds = %2172, %2176
  %.str.25.sink1464 = phi ptr [ @.str.25, %2176 ], [ @.str.22, %2172 ]
  store i32 %2167, ptr %2166, align 4, !tbaa !5
  %2178 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2179 = load i32, ptr @test_count, align 4, !tbaa !5
  %2180 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2181 = load i32, ptr %2180, align 4, !tbaa !5
  %2182 = call ptr @s2n_strerror(i32 noundef %2181, ptr noundef nonnull @.str.24) #12
  %2183 = load i32, ptr %2180, align 4, !tbaa !5
  %2184 = call ptr @s2n_strerror_debug(i32 noundef %2183, ptr noundef nonnull @.str.24) #12
  %2185 = load i32, ptr %2166, align 4, !tbaa !5
  %2186 = call ptr @strerror(i32 noundef %2185) #12
  %2187 = load i32, ptr %2166, align 4, !tbaa !5
  %2188 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2178, ptr noundef nonnull %.str.25.sink1464, i32 noundef %2179, ptr noundef nonnull @.str.57, ptr noundef nonnull @.str.21, i32 noundef 327, ptr noundef %2182, ptr noundef %2184, ptr noundef %2186, i32 noundef %2187) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2189:                                             ; preds = %2160
  %2190 = add nsw i32 %2161, 2
  store i32 %2190, ptr @test_count, align 4, !tbaa !5
  %2191 = load i32, ptr @unexpected_handler_called, align 4, !tbaa !5
  %.not508 = icmp eq i32 %2191, 0
  br i1 %.not508, label %2216, label %2192

2192:                                             ; preds = %2189
  %2193 = tail call ptr @__errno_location() #13
  %2194 = load i32, ptr %2193, align 4, !tbaa !5
  %2195 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2196 = call i32 @s2n_print_stacktrace(ptr noundef %2195) #12
  %2197 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2198 = trunc nuw i8 %2197 to i1
  br i1 %2198, label %2199, label %2203

2199:                                             ; preds = %2192
  %2200 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2201 = call i32 @fileno(ptr noundef %2200) #12
  %2202 = call i32 @isatty(i32 noundef %2201) #12
  %.not576 = icmp eq i32 %2202, 0
  br i1 %.not576, label %2203, label %2204

2203:                                             ; preds = %2199, %2192
  br label %2204

2204:                                             ; preds = %2199, %2203
  %.str.25.sink1475 = phi ptr [ @.str.25, %2203 ], [ @.str.22, %2199 ]
  store i32 %2194, ptr %2193, align 4, !tbaa !5
  %2205 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2206 = load i32, ptr @test_count, align 4, !tbaa !5
  %2207 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2208 = load i32, ptr %2207, align 4, !tbaa !5
  %2209 = call ptr @s2n_strerror(i32 noundef %2208, ptr noundef nonnull @.str.24) #12
  %2210 = load i32, ptr %2207, align 4, !tbaa !5
  %2211 = call ptr @s2n_strerror_debug(i32 noundef %2210, ptr noundef nonnull @.str.24) #12
  %2212 = load i32, ptr %2193, align 4, !tbaa !5
  %2213 = call ptr @strerror(i32 noundef %2212) #12
  %2214 = load i32, ptr %2193, align 4, !tbaa !5
  %2215 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2205, ptr noundef nonnull %.str.25.sink1475, i32 noundef %2206, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.21, i32 noundef 328, ptr noundef %2209, ptr noundef %2211, ptr noundef %2213, i32 noundef %2214) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2216:                                             ; preds = %2189
  %2217 = add nsw i32 %2161, 3
  store i32 %2217, ptr @test_count, align 4, !tbaa !5
  %2218 = load i32, ptr @expected_handler_called, align 4, !tbaa !5
  %.not509 = icmp eq i32 %2218, 0
  br i1 %.not509, label %2219, label %2243

2219:                                             ; preds = %2216
  %2220 = tail call ptr @__errno_location() #13
  %2221 = load i32, ptr %2220, align 4, !tbaa !5
  %2222 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2223 = call i32 @s2n_print_stacktrace(ptr noundef %2222) #12
  %2224 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2225 = trunc nuw i8 %2224 to i1
  br i1 %2225, label %2226, label %2230

2226:                                             ; preds = %2219
  %2227 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2228 = call i32 @fileno(ptr noundef %2227) #12
  %2229 = call i32 @isatty(i32 noundef %2228) #12
  %.not510 = icmp eq i32 %2229, 0
  br i1 %.not510, label %2230, label %2231

2230:                                             ; preds = %2226, %2219
  br label %2231

2231:                                             ; preds = %2226, %2230
  %.str.25.sink1486 = phi ptr [ @.str.25, %2230 ], [ @.str.22, %2226 ]
  store i32 %2221, ptr %2220, align 4, !tbaa !5
  %2232 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2233 = load i32, ptr @test_count, align 4, !tbaa !5
  %2234 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2235 = load i32, ptr %2234, align 4, !tbaa !5
  %2236 = call ptr @s2n_strerror(i32 noundef %2235, ptr noundef nonnull @.str.24) #12
  %2237 = load i32, ptr %2234, align 4, !tbaa !5
  %2238 = call ptr @s2n_strerror_debug(i32 noundef %2237, ptr noundef nonnull @.str.24) #12
  %2239 = load i32, ptr %2220, align 4, !tbaa !5
  %2240 = call ptr @strerror(i32 noundef %2239) #12
  %2241 = load i32, ptr %2220, align 4, !tbaa !5
  %2242 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2232, ptr noundef nonnull %.str.25.sink1486, i32 noundef %2233, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.21, i32 noundef 329, ptr noundef %2236, ptr noundef %2238, ptr noundef %2240, i32 noundef %2241) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2243:                                             ; preds = %2216
  %2244 = add nsw i32 %2161, 4
  store i32 %2244, ptr @test_count, align 4, !tbaa !5
  %2245 = call i32 @s2n_stuffer_free(ptr noundef nonnull %7) #12
  %2246 = icmp eq i32 %2245, -1
  br i1 %2246, label %2247, label %2271

2247:                                             ; preds = %2243
  %2248 = tail call ptr @__errno_location() #13
  %2249 = load i32, ptr %2248, align 4, !tbaa !5
  %2250 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2251 = call i32 @s2n_print_stacktrace(ptr noundef %2250) #12
  %2252 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2253 = trunc nuw i8 %2252 to i1
  br i1 %2253, label %2254, label %2258

2254:                                             ; preds = %2247
  %2255 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2256 = call i32 @fileno(ptr noundef %2255) #12
  %2257 = call i32 @isatty(i32 noundef %2256) #12
  %.not575 = icmp eq i32 %2257, 0
  br i1 %.not575, label %2258, label %2259

2258:                                             ; preds = %2254, %2247
  br label %2259

2259:                                             ; preds = %2254, %2258
  %.str.25.sink1497 = phi ptr [ @.str.25, %2258 ], [ @.str.22, %2254 ]
  store i32 %2249, ptr %2248, align 4, !tbaa !5
  %2260 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2261 = load i32, ptr @test_count, align 4, !tbaa !5
  %2262 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2263 = load i32, ptr %2262, align 4, !tbaa !5
  %2264 = call ptr @s2n_strerror(i32 noundef %2263, ptr noundef nonnull @.str.24) #12
  %2265 = load i32, ptr %2262, align 4, !tbaa !5
  %2266 = call ptr @s2n_strerror_debug(i32 noundef %2265, ptr noundef nonnull @.str.24) #12
  %2267 = load i32, ptr %2248, align 4, !tbaa !5
  %2268 = call ptr @strerror(i32 noundef %2267) #12
  %2269 = load i32, ptr %2248, align 4, !tbaa !5
  %2270 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2260, ptr noundef nonnull %.str.25.sink1497, i32 noundef %2261, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.21, i32 noundef 331, ptr noundef %2264, ptr noundef %2266, ptr noundef %2268, i32 noundef %2269) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2271:                                             ; preds = %2243
  %2272 = load i32, ptr @test_count, align 4, !tbaa !5
  %2273 = add nsw i32 %2272, 1
  store i32 %2273, ptr @test_count, align 4, !tbaa !5
  %2274 = call i32 @s2n_connection_free(ptr noundef nonnull %1981) #12
  %2275 = icmp eq i32 %2274, -1
  br i1 %2275, label %2276, label %2300

2276:                                             ; preds = %2271
  %2277 = tail call ptr @__errno_location() #13
  %2278 = load i32, ptr %2277, align 4, !tbaa !5
  %2279 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2280 = call i32 @s2n_print_stacktrace(ptr noundef %2279) #12
  %2281 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2282 = trunc nuw i8 %2281 to i1
  br i1 %2282, label %2283, label %2287

2283:                                             ; preds = %2276
  %2284 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2285 = call i32 @fileno(ptr noundef %2284) #12
  %2286 = call i32 @isatty(i32 noundef %2285) #12
  %.not574 = icmp eq i32 %2286, 0
  br i1 %.not574, label %2287, label %2288

2287:                                             ; preds = %2283, %2276
  br label %2288

2288:                                             ; preds = %2283, %2287
  %.str.25.sink1508 = phi ptr [ @.str.25, %2287 ], [ @.str.22, %2283 ]
  store i32 %2278, ptr %2277, align 4, !tbaa !5
  %2289 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2290 = load i32, ptr @test_count, align 4, !tbaa !5
  %2291 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2292 = load i32, ptr %2291, align 4, !tbaa !5
  %2293 = call ptr @s2n_strerror(i32 noundef %2292, ptr noundef nonnull @.str.24) #12
  %2294 = load i32, ptr %2291, align 4, !tbaa !5
  %2295 = call ptr @s2n_strerror_debug(i32 noundef %2294, ptr noundef nonnull @.str.24) #12
  %2296 = load i32, ptr %2277, align 4, !tbaa !5
  %2297 = call ptr @strerror(i32 noundef %2296) #12
  %2298 = load i32, ptr %2277, align 4, !tbaa !5
  %2299 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2289, ptr noundef nonnull %.str.25.sink1508, i32 noundef %2290, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.21, i32 noundef 332, ptr noundef %2293, ptr noundef %2295, ptr noundef %2297, i32 noundef %2298) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2300:                                             ; preds = %2271
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %7) #12
  %2301 = call ptr @s2n_connection_new(i32 noundef 0) #12
  %2302 = getelementptr inbounds i8, ptr %2301, i64 220
  store i8 33, ptr %2302, align 4, !tbaa !19
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %8) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %8, i8 0, i64 40, i1 false)
  %2303 = load i32, ptr @test_count, align 4, !tbaa !5
  %2304 = add nsw i32 %2303, 1
  store i32 %2304, ptr @test_count, align 4, !tbaa !5
  %2305 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %8, i32 noundef 0) #12
  %2306 = icmp eq i32 %2305, -1
  br i1 %2306, label %2307, label %2331

2307:                                             ; preds = %2300
  %2308 = tail call ptr @__errno_location() #13
  %2309 = load i32, ptr %2308, align 4, !tbaa !5
  %2310 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2311 = call i32 @s2n_print_stacktrace(ptr noundef %2310) #12
  %2312 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2313 = trunc nuw i8 %2312 to i1
  br i1 %2313, label %2314, label %2318

2314:                                             ; preds = %2307
  %2315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2316 = call i32 @fileno(ptr noundef %2315) #12
  %2317 = call i32 @isatty(i32 noundef %2316) #12
  %.not573 = icmp eq i32 %2317, 0
  br i1 %.not573, label %2318, label %2319

2318:                                             ; preds = %2314, %2307
  br label %2319

2319:                                             ; preds = %2314, %2318
  %.str.25.sink1519 = phi ptr [ @.str.25, %2318 ], [ @.str.22, %2314 ]
  store i32 %2309, ptr %2308, align 4, !tbaa !5
  %2320 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2321 = load i32, ptr @test_count, align 4, !tbaa !5
  %2322 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2323 = load i32, ptr %2322, align 4, !tbaa !5
  %2324 = call ptr @s2n_strerror(i32 noundef %2323, ptr noundef nonnull @.str.24) #12
  %2325 = load i32, ptr %2322, align 4, !tbaa !5
  %2326 = call ptr @s2n_strerror_debug(i32 noundef %2325, ptr noundef nonnull @.str.24) #12
  %2327 = load i32, ptr %2308, align 4, !tbaa !5
  %2328 = call ptr @strerror(i32 noundef %2327) #12
  %2329 = load i32, ptr %2308, align 4, !tbaa !5
  %2330 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2320, ptr noundef nonnull %.str.25.sink1519, i32 noundef %2321, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.21, i32 noundef 341, ptr noundef %2324, ptr noundef %2326, ptr noundef %2328, i32 noundef %2329) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2331:                                             ; preds = %2300
  %2332 = load i32, ptr @test_count, align 4, !tbaa !5
  %2333 = add nsw i32 %2332, 1
  store i32 %2333, ptr @test_count, align 4, !tbaa !5
  %2334 = call i32 @s2n_connection_set_io_stuffers(ptr noundef nonnull %8, ptr noundef null, ptr noundef nonnull %2301) #12
  %2335 = icmp eq i32 %2334, -1
  br i1 %2335, label %2336, label %2360

2336:                                             ; preds = %2331
  %2337 = tail call ptr @__errno_location() #13
  %2338 = load i32, ptr %2337, align 4, !tbaa !5
  %2339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2340 = call i32 @s2n_print_stacktrace(ptr noundef %2339) #12
  %2341 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2342 = trunc nuw i8 %2341 to i1
  br i1 %2342, label %2343, label %2347

2343:                                             ; preds = %2336
  %2344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2345 = call i32 @fileno(ptr noundef %2344) #12
  %2346 = call i32 @isatty(i32 noundef %2345) #12
  %.not572 = icmp eq i32 %2346, 0
  br i1 %.not572, label %2347, label %2348

2347:                                             ; preds = %2343, %2336
  br label %2348

2348:                                             ; preds = %2343, %2347
  %.str.25.sink1530 = phi ptr [ @.str.25, %2347 ], [ @.str.22, %2343 ]
  store i32 %2338, ptr %2337, align 4, !tbaa !5
  %2349 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2350 = load i32, ptr @test_count, align 4, !tbaa !5
  %2351 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2352 = load i32, ptr %2351, align 4, !tbaa !5
  %2353 = call ptr @s2n_strerror(i32 noundef %2352, ptr noundef nonnull @.str.24) #12
  %2354 = load i32, ptr %2351, align 4, !tbaa !5
  %2355 = call ptr @s2n_strerror_debug(i32 noundef %2354, ptr noundef nonnull @.str.24) #12
  %2356 = load i32, ptr %2337, align 4, !tbaa !5
  %2357 = call ptr @strerror(i32 noundef %2356) #12
  %2358 = load i32, ptr %2337, align 4, !tbaa !5
  %2359 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2349, ptr noundef nonnull %.str.25.sink1530, i32 noundef %2350, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.21, i32 noundef 342, ptr noundef %2353, ptr noundef %2355, ptr noundef %2357, i32 noundef %2358) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2360:                                             ; preds = %2331
  %2361 = getelementptr inbounds i8, ptr %2301, i64 2172
  store i32 0, ptr %2361, align 4, !tbaa !46
  %2362 = getelementptr inbounds i8, ptr %2301, i64 2176
  store i32 0, ptr %2362, align 8, !tbaa !47
  %2363 = load i32, ptr @test_count, align 4, !tbaa !5
  %2364 = add nsw i32 %2363, 1
  store i32 %2364, ptr @test_count, align 4, !tbaa !5
  %2365 = getelementptr inbounds i8, ptr %2301, i64 2204
  %2366 = load i32, ptr %2365, align 4, !tbaa !45
  %2367 = icmp eq i32 %2366, 2
  %tls13_handshakes.val801 = load i32, ptr @tls13_handshakes, align 16
  %handshakes.val802 = load i32, ptr @handshakes, align 16
  %2368 = select i1 %2367, i32 %tls13_handshakes.val801, i32 %handshakes.val802
  %2369 = icmp eq i32 %2368, 0
  br i1 %2369, label %2394, label %2370

2370:                                             ; preds = %2360
  %2371 = tail call ptr @__errno_location() #13
  %2372 = load i32, ptr %2371, align 4, !tbaa !5
  %2373 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2374 = call i32 @s2n_print_stacktrace(ptr noundef %2373) #12
  %2375 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2376 = trunc nuw i8 %2375 to i1
  br i1 %2376, label %2377, label %2381

2377:                                             ; preds = %2370
  %2378 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2379 = call i32 @fileno(ptr noundef %2378) #12
  %2380 = call i32 @isatty(i32 noundef %2379) #12
  %.not511 = icmp eq i32 %2380, 0
  br i1 %.not511, label %2381, label %2382

2381:                                             ; preds = %2377, %2370
  br label %2382

2382:                                             ; preds = %2377, %2381
  %.str.25.sink1541 = phi ptr [ @.str.25, %2381 ], [ @.str.22, %2377 ]
  store i32 %2372, ptr %2371, align 4, !tbaa !5
  %2383 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2384 = load i32, ptr @test_count, align 4, !tbaa !5
  %2385 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2386 = load i32, ptr %2385, align 4, !tbaa !5
  %2387 = call ptr @s2n_strerror(i32 noundef %2386, ptr noundef nonnull @.str.24) #12
  %2388 = load i32, ptr %2385, align 4, !tbaa !5
  %2389 = call ptr @s2n_strerror_debug(i32 noundef %2388, ptr noundef nonnull @.str.24) #12
  %2390 = load i32, ptr %2371, align 4, !tbaa !5
  %2391 = call ptr @strerror(i32 noundef %2390) #12
  %2392 = load i32, ptr %2371, align 4, !tbaa !5
  %2393 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2383, ptr noundef nonnull %.str.25.sink1541, i32 noundef %2384, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.21, i32 noundef 346, ptr noundef %2387, ptr noundef %2389, ptr noundef %2391, i32 noundef %2392) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2394:                                             ; preds = %2360
  %2395 = add nsw i32 %2363, 2
  store i32 %2395, ptr @test_count, align 4, !tbaa !5
  %2396 = call i32 @s2n_setup_handler_to_expect(i32 noundef 0, i8 noundef zeroext 0)
  %2397 = icmp eq i32 %2396, -1
  br i1 %2397, label %2398, label %2422

2398:                                             ; preds = %2394
  %2399 = tail call ptr @__errno_location() #13
  %2400 = load i32, ptr %2399, align 4, !tbaa !5
  %2401 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2402 = call i32 @s2n_print_stacktrace(ptr noundef %2401) #12
  %2403 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2404 = trunc nuw i8 %2403 to i1
  br i1 %2404, label %2405, label %2409

2405:                                             ; preds = %2398
  %2406 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2407 = call i32 @fileno(ptr noundef %2406) #12
  %2408 = call i32 @isatty(i32 noundef %2407) #12
  %.not571 = icmp eq i32 %2408, 0
  br i1 %.not571, label %2409, label %2410

2409:                                             ; preds = %2405, %2398
  br label %2410

2410:                                             ; preds = %2405, %2409
  %.str.25.sink1552 = phi ptr [ @.str.25, %2409 ], [ @.str.22, %2405 ]
  store i32 %2400, ptr %2399, align 4, !tbaa !5
  %2411 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2412 = load i32, ptr @test_count, align 4, !tbaa !5
  %2413 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2414 = load i32, ptr %2413, align 4, !tbaa !5
  %2415 = call ptr @s2n_strerror(i32 noundef %2414, ptr noundef nonnull @.str.24) #12
  %2416 = load i32, ptr %2413, align 4, !tbaa !5
  %2417 = call ptr @s2n_strerror_debug(i32 noundef %2416, ptr noundef nonnull @.str.24) #12
  %2418 = load i32, ptr %2399, align 4, !tbaa !5
  %2419 = call ptr @strerror(i32 noundef %2418) #12
  %2420 = load i32, ptr %2399, align 4, !tbaa !5
  %2421 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2411, ptr noundef nonnull %.str.25.sink1552, i32 noundef %2412, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.21, i32 noundef 347, ptr noundef %2415, ptr noundef %2417, ptr noundef %2419, i32 noundef %2420) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2422:                                             ; preds = %2394
  %2423 = load i32, ptr @test_count, align 4, !tbaa !5
  %2424 = add nsw i32 %2423, 1
  store i32 %2424, ptr @test_count, align 4, !tbaa !5
  %2425 = call i32 @s2n_test_write_header(ptr noundef nonnull %8, i8 noundef zeroext 22, i8 noundef zeroext 11)
  %2426 = icmp eq i32 %2425, -1
  br i1 %2426, label %2427, label %2451

2427:                                             ; preds = %2422
  %2428 = tail call ptr @__errno_location() #13
  %2429 = load i32, ptr %2428, align 4, !tbaa !5
  %2430 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2431 = call i32 @s2n_print_stacktrace(ptr noundef %2430) #12
  %2432 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2433 = trunc nuw i8 %2432 to i1
  br i1 %2433, label %2434, label %2438

2434:                                             ; preds = %2427
  %2435 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2436 = call i32 @fileno(ptr noundef %2435) #12
  %2437 = call i32 @isatty(i32 noundef %2436) #12
  %.not570 = icmp eq i32 %2437, 0
  br i1 %.not570, label %2438, label %2439

2438:                                             ; preds = %2434, %2427
  br label %2439

2439:                                             ; preds = %2434, %2438
  %.str.25.sink1563 = phi ptr [ @.str.25, %2438 ], [ @.str.22, %2434 ]
  store i32 %2429, ptr %2428, align 4, !tbaa !5
  %2440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2441 = load i32, ptr @test_count, align 4, !tbaa !5
  %2442 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2443 = load i32, ptr %2442, align 4, !tbaa !5
  %2444 = call ptr @s2n_strerror(i32 noundef %2443, ptr noundef nonnull @.str.24) #12
  %2445 = load i32, ptr %2442, align 4, !tbaa !5
  %2446 = call ptr @s2n_strerror_debug(i32 noundef %2445, ptr noundef nonnull @.str.24) #12
  %2447 = load i32, ptr %2428, align 4, !tbaa !5
  %2448 = call ptr @strerror(i32 noundef %2447) #12
  %2449 = load i32, ptr %2428, align 4, !tbaa !5
  %2450 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2440, ptr noundef nonnull %.str.25.sink1563, i32 noundef %2441, ptr noundef nonnull @.str.58, ptr noundef nonnull @.str.21, i32 noundef 349, ptr noundef %2444, ptr noundef %2446, ptr noundef %2448, i32 noundef %2449) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2451:                                             ; preds = %2422
  %2452 = load i32, ptr @test_count, align 4, !tbaa !5
  %2453 = add nsw i32 %2452, 1
  store i32 %2453, ptr @test_count, align 4, !tbaa !5
  %2454 = call i32 @s2n_handshake_read_io(ptr noundef nonnull %2301)
  %2455 = icmp eq i32 %2454, -1
  br i1 %2455, label %2480, label %2456

2456:                                             ; preds = %2451
  %2457 = tail call ptr @__errno_location() #13
  %2458 = load i32, ptr %2457, align 4, !tbaa !5
  %2459 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2460 = call i32 @s2n_print_stacktrace(ptr noundef %2459) #12
  %2461 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2462 = trunc nuw i8 %2461 to i1
  br i1 %2462, label %2463, label %2467

2463:                                             ; preds = %2456
  %2464 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2465 = call i32 @fileno(ptr noundef %2464) #12
  %2466 = call i32 @isatty(i32 noundef %2465) #12
  %.not512 = icmp eq i32 %2466, 0
  br i1 %.not512, label %2467, label %2468

2467:                                             ; preds = %2463, %2456
  br label %2468

2468:                                             ; preds = %2463, %2467
  %.str.25.sink1574 = phi ptr [ @.str.25, %2467 ], [ @.str.22, %2463 ]
  store i32 %2458, ptr %2457, align 4, !tbaa !5
  %2469 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2470 = load i32, ptr @test_count, align 4, !tbaa !5
  %2471 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2472 = load i32, ptr %2471, align 4, !tbaa !5
  %2473 = call ptr @s2n_strerror(i32 noundef %2472, ptr noundef nonnull @.str.24) #12
  %2474 = load i32, ptr %2471, align 4, !tbaa !5
  %2475 = call ptr @s2n_strerror_debug(i32 noundef %2474, ptr noundef nonnull @.str.24) #12
  %2476 = load i32, ptr %2457, align 4, !tbaa !5
  %2477 = call ptr @strerror(i32 noundef %2476) #12
  %2478 = load i32, ptr %2457, align 4, !tbaa !5
  %2479 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2469, ptr noundef nonnull %.str.25.sink1574, i32 noundef %2470, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.21, i32 noundef 350, ptr noundef %2473, ptr noundef %2475, ptr noundef %2477, i32 noundef %2478) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2480:                                             ; preds = %2451
  %2481 = load i32, ptr @test_count, align 4, !tbaa !5
  %2482 = add nsw i32 %2481, 1
  store i32 %2482, ptr @test_count, align 4, !tbaa !5
  %2483 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2484 = load i32, ptr %2483, align 4, !tbaa !5
  %2485 = icmp eq i32 %2484, 335544322
  br i1 %2485, label %2509, label %2486

2486:                                             ; preds = %2480
  %2487 = tail call ptr @__errno_location() #13
  %2488 = load i32, ptr %2487, align 4, !tbaa !5
  %2489 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2490 = call i32 @s2n_print_stacktrace(ptr noundef %2489) #12
  %2491 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2492 = trunc nuw i8 %2491 to i1
  br i1 %2492, label %2493, label %2497

2493:                                             ; preds = %2486
  %2494 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2495 = call i32 @fileno(ptr noundef %2494) #12
  %2496 = call i32 @isatty(i32 noundef %2495) #12
  %.not513 = icmp eq i32 %2496, 0
  br i1 %.not513, label %2497, label %2498

2497:                                             ; preds = %2493, %2486
  br label %2498

2498:                                             ; preds = %2493, %2497
  %.str.25.sink1585 = phi ptr [ @.str.25, %2497 ], [ @.str.22, %2493 ]
  store i32 %2488, ptr %2487, align 4, !tbaa !5
  %2499 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2500 = load i32, ptr @test_count, align 4, !tbaa !5
  %2501 = load i32, ptr %2483, align 4, !tbaa !5
  %2502 = call ptr @s2n_strerror(i32 noundef %2501, ptr noundef nonnull @.str.24) #12
  %2503 = load i32, ptr %2483, align 4, !tbaa !5
  %2504 = call ptr @s2n_strerror_debug(i32 noundef %2503, ptr noundef nonnull @.str.24) #12
  %2505 = load i32, ptr %2487, align 4, !tbaa !5
  %2506 = call ptr @strerror(i32 noundef %2505) #12
  %2507 = load i32, ptr %2487, align 4, !tbaa !5
  %2508 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2499, ptr noundef nonnull %.str.25.sink1585, i32 noundef %2500, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.21, i32 noundef 350, ptr noundef %2502, ptr noundef %2504, ptr noundef %2506, i32 noundef %2507) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2509:                                             ; preds = %2480
  %2510 = add nsw i32 %2481, 2
  store i32 %2510, ptr @test_count, align 4, !tbaa !5
  %2511 = call ptr @s2n_strerror_debug(i32 noundef 335544322, ptr noundef nonnull @.str.24) #12
  %2512 = icmp eq ptr %2511, null
  br i1 %2512, label %2513, label %2536

2513:                                             ; preds = %2509
  %2514 = tail call ptr @__errno_location() #13
  %2515 = load i32, ptr %2514, align 4, !tbaa !5
  %2516 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2517 = call i32 @s2n_print_stacktrace(ptr noundef %2516) #12
  %2518 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2519 = trunc nuw i8 %2518 to i1
  br i1 %2519, label %2520, label %2524

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

2524:                                             ; preds = %2520, %2513
  br label %2525

2525:                                             ; preds = %2520, %2524
  %.str.25.sink1594 = phi ptr [ @.str.25, %2524 ], [ @.str.22, %2520 ]
  store i32 %2515, ptr %2514, align 4, !tbaa !5
  %2526 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2527 = load i32, ptr @test_count, align 4, !tbaa !5
  %2528 = load i32, ptr %2483, align 4, !tbaa !5
  %2529 = call ptr @s2n_strerror(i32 noundef %2528, ptr noundef nonnull @.str.24) #12
  %2530 = load i32, ptr %2483, align 4, !tbaa !5
  %2531 = call ptr @s2n_strerror_debug(i32 noundef %2530, ptr noundef nonnull @.str.24) #12
  %2532 = load i32, ptr %2514, align 4, !tbaa !5
  %2533 = call ptr @strerror(i32 noundef %2532) #12
  %2534 = load i32, ptr %2514, align 4, !tbaa !5
  %2535 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2526, ptr noundef nonnull %.str.25.sink1594, i32 noundef %2527, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.21, i32 noundef 350, ptr noundef %2529, ptr noundef %2531, ptr noundef %2533, i32 noundef %2534) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2536:                                             ; preds = %2509
  store i32 0, ptr %2483, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  %2537 = tail call ptr @__errno_location() #13
  store i32 0, ptr %2537, align 4, !tbaa !5
  %2538 = load i32, ptr @test_count, align 4, !tbaa !5
  %2539 = add nsw i32 %2538, 1
  store i32 %2539, ptr @test_count, align 4, !tbaa !5
  %2540 = load i32, ptr %2362, align 8, !tbaa !47
  %2541 = icmp eq i32 %2540, 0
  br i1 %2541, label %2564, label %2542

2542:                                             ; preds = %2536
  %2543 = load i32, ptr %2537, align 4, !tbaa !5
  %2544 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2545 = call i32 @s2n_print_stacktrace(ptr noundef %2544) #12
  %2546 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2547 = trunc nuw i8 %2546 to i1
  br i1 %2547, label %2548, label %2552

2548:                                             ; preds = %2542
  %2549 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2550 = call i32 @fileno(ptr noundef %2549) #12
  %2551 = call i32 @isatty(i32 noundef %2550) #12
  %.not514 = icmp eq i32 %2551, 0
  br i1 %.not514, label %2552, label %2553

2552:                                             ; preds = %2548, %2542
  br label %2553

2553:                                             ; preds = %2548, %2552
  %.str.25.sink1603 = phi ptr [ @.str.25, %2552 ], [ @.str.22, %2548 ]
  store i32 %2543, ptr %2537, align 4, !tbaa !5
  %2554 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2555 = load i32, ptr @test_count, align 4, !tbaa !5
  %2556 = load i32, ptr %2483, align 4, !tbaa !5
  %2557 = call ptr @s2n_strerror(i32 noundef %2556, ptr noundef nonnull @.str.24) #12
  %2558 = load i32, ptr %2483, align 4, !tbaa !5
  %2559 = call ptr @s2n_strerror_debug(i32 noundef %2558, ptr noundef nonnull @.str.24) #12
  %2560 = load i32, ptr %2537, align 4, !tbaa !5
  %2561 = call ptr @strerror(i32 noundef %2560) #12
  %2562 = load i32, ptr %2537, align 4, !tbaa !5
  %2563 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2554, ptr noundef nonnull %.str.25.sink1603, i32 noundef %2555, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.21, i32 noundef 352, ptr noundef %2557, ptr noundef %2559, ptr noundef %2561, i32 noundef %2562) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2564:                                             ; preds = %2536
  %2565 = add nsw i32 %2538, 2
  store i32 %2565, ptr @test_count, align 4, !tbaa !5
  %2566 = load i32, ptr @unexpected_handler_called, align 4, !tbaa !5
  %.not515 = icmp eq i32 %2566, 0
  br i1 %.not515, label %2589, label %2567

2567:                                             ; preds = %2564
  %2568 = load i32, ptr %2537, align 4, !tbaa !5
  %2569 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2570 = call i32 @s2n_print_stacktrace(ptr noundef %2569) #12
  %2571 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2572 = trunc nuw i8 %2571 to i1
  br i1 %2572, label %2573, label %2577

2573:                                             ; preds = %2567
  %2574 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2575 = call i32 @fileno(ptr noundef %2574) #12
  %2576 = call i32 @isatty(i32 noundef %2575) #12
  %.not568 = icmp eq i32 %2576, 0
  br i1 %.not568, label %2577, label %2578

2577:                                             ; preds = %2573, %2567
  br label %2578

2578:                                             ; preds = %2573, %2577
  %.str.25.sink1612 = phi ptr [ @.str.25, %2577 ], [ @.str.22, %2573 ]
  store i32 %2568, ptr %2537, align 4, !tbaa !5
  %2579 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2580 = load i32, ptr @test_count, align 4, !tbaa !5
  %2581 = load i32, ptr %2483, align 4, !tbaa !5
  %2582 = call ptr @s2n_strerror(i32 noundef %2581, ptr noundef nonnull @.str.24) #12
  %2583 = load i32, ptr %2483, align 4, !tbaa !5
  %2584 = call ptr @s2n_strerror_debug(i32 noundef %2583, ptr noundef nonnull @.str.24) #12
  %2585 = load i32, ptr %2537, align 4, !tbaa !5
  %2586 = call ptr @strerror(i32 noundef %2585) #12
  %2587 = load i32, ptr %2537, align 4, !tbaa !5
  %2588 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2579, ptr noundef nonnull %.str.25.sink1612, i32 noundef %2580, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.21, i32 noundef 353, ptr noundef %2582, ptr noundef %2584, ptr noundef %2586, i32 noundef %2587) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2589:                                             ; preds = %2564
  %2590 = add nsw i32 %2538, 3
  store i32 %2590, ptr @test_count, align 4, !tbaa !5
  %2591 = load i32, ptr @expected_handler_called, align 4, !tbaa !5
  %.not516 = icmp eq i32 %2591, 0
  br i1 %.not516, label %2614, label %2592

2592:                                             ; preds = %2589
  %2593 = load i32, ptr %2537, align 4, !tbaa !5
  %2594 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2595 = call i32 @s2n_print_stacktrace(ptr noundef %2594) #12
  %2596 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2597 = trunc nuw i8 %2596 to i1
  br i1 %2597, label %2598, label %2602

2598:                                             ; preds = %2592
  %2599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2600 = call i32 @fileno(ptr noundef %2599) #12
  %2601 = call i32 @isatty(i32 noundef %2600) #12
  %.not567 = icmp eq i32 %2601, 0
  br i1 %.not567, label %2602, label %2603

2602:                                             ; preds = %2598, %2592
  br label %2603

2603:                                             ; preds = %2598, %2602
  %.str.25.sink1621 = phi ptr [ @.str.25, %2602 ], [ @.str.22, %2598 ]
  store i32 %2593, ptr %2537, align 4, !tbaa !5
  %2604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2605 = load i32, ptr @test_count, align 4, !tbaa !5
  %2606 = load i32, ptr %2483, align 4, !tbaa !5
  %2607 = call ptr @s2n_strerror(i32 noundef %2606, ptr noundef nonnull @.str.24) #12
  %2608 = load i32, ptr %2483, align 4, !tbaa !5
  %2609 = call ptr @s2n_strerror_debug(i32 noundef %2608, ptr noundef nonnull @.str.24) #12
  %2610 = load i32, ptr %2537, align 4, !tbaa !5
  %2611 = call ptr @strerror(i32 noundef %2610) #12
  %2612 = load i32, ptr %2537, align 4, !tbaa !5
  %2613 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2604, ptr noundef nonnull %.str.25.sink1621, i32 noundef %2605, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.21, i32 noundef 354, ptr noundef %2607, ptr noundef %2609, ptr noundef %2611, i32 noundef %2612) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2614:                                             ; preds = %2589
  %2615 = add nsw i32 %2538, 4
  store i32 %2615, ptr @test_count, align 4, !tbaa !5
  %2616 = call i32 @s2n_stuffer_free(ptr noundef nonnull %8) #12
  %2617 = icmp eq i32 %2616, -1
  br i1 %2617, label %2618, label %2640

2618:                                             ; preds = %2614
  %2619 = load i32, ptr %2537, align 4, !tbaa !5
  %2620 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2621 = call i32 @s2n_print_stacktrace(ptr noundef %2620) #12
  %2622 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2623 = trunc nuw i8 %2622 to i1
  br i1 %2623, label %2624, label %2628

2624:                                             ; preds = %2618
  %2625 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2626 = call i32 @fileno(ptr noundef %2625) #12
  %2627 = call i32 @isatty(i32 noundef %2626) #12
  %.not566 = icmp eq i32 %2627, 0
  br i1 %.not566, label %2628, label %2629

2628:                                             ; preds = %2624, %2618
  br label %2629

2629:                                             ; preds = %2624, %2628
  %.str.25.sink1630 = phi ptr [ @.str.25, %2628 ], [ @.str.22, %2624 ]
  store i32 %2619, ptr %2537, align 4, !tbaa !5
  %2630 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2631 = load i32, ptr @test_count, align 4, !tbaa !5
  %2632 = load i32, ptr %2483, align 4, !tbaa !5
  %2633 = call ptr @s2n_strerror(i32 noundef %2632, ptr noundef nonnull @.str.24) #12
  %2634 = load i32, ptr %2483, align 4, !tbaa !5
  %2635 = call ptr @s2n_strerror_debug(i32 noundef %2634, ptr noundef nonnull @.str.24) #12
  %2636 = load i32, ptr %2537, align 4, !tbaa !5
  %2637 = call ptr @strerror(i32 noundef %2636) #12
  %2638 = load i32, ptr %2537, align 4, !tbaa !5
  %2639 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2630, ptr noundef nonnull %.str.25.sink1630, i32 noundef %2631, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.21, i32 noundef 356, ptr noundef %2633, ptr noundef %2635, ptr noundef %2637, i32 noundef %2638) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2640:                                             ; preds = %2614
  %2641 = load i32, ptr @test_count, align 4, !tbaa !5
  %2642 = add nsw i32 %2641, 1
  store i32 %2642, ptr @test_count, align 4, !tbaa !5
  %2643 = call i32 @s2n_connection_free(ptr noundef nonnull %2301) #12
  %2644 = icmp eq i32 %2643, -1
  br i1 %2644, label %2645, label %2667

2645:                                             ; preds = %2640
  %2646 = load i32, ptr %2537, align 4, !tbaa !5
  %2647 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2648 = call i32 @s2n_print_stacktrace(ptr noundef %2647) #12
  %2649 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2650 = trunc nuw i8 %2649 to i1
  br i1 %2650, label %2651, label %2655

2651:                                             ; preds = %2645
  %2652 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2653 = call i32 @fileno(ptr noundef %2652) #12
  %2654 = call i32 @isatty(i32 noundef %2653) #12
  %.not565 = icmp eq i32 %2654, 0
  br i1 %.not565, label %2655, label %2656

2655:                                             ; preds = %2651, %2645
  br label %2656

2656:                                             ; preds = %2651, %2655
  %.str.25.sink1639 = phi ptr [ @.str.25, %2655 ], [ @.str.22, %2651 ]
  store i32 %2646, ptr %2537, align 4, !tbaa !5
  %2657 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2658 = load i32, ptr @test_count, align 4, !tbaa !5
  %2659 = load i32, ptr %2483, align 4, !tbaa !5
  %2660 = call ptr @s2n_strerror(i32 noundef %2659, ptr noundef nonnull @.str.24) #12
  %2661 = load i32, ptr %2483, align 4, !tbaa !5
  %2662 = call ptr @s2n_strerror_debug(i32 noundef %2661, ptr noundef nonnull @.str.24) #12
  %2663 = load i32, ptr %2537, align 4, !tbaa !5
  %2664 = call ptr @strerror(i32 noundef %2663) #12
  %2665 = load i32, ptr %2537, align 4, !tbaa !5
  %2666 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2657, ptr noundef nonnull %.str.25.sink1639, i32 noundef %2658, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.21, i32 noundef 357, ptr noundef %2660, ptr noundef %2662, ptr noundef %2664, i32 noundef %2665) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2667:                                             ; preds = %2640
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %8) #12
  %2668 = call ptr @s2n_connection_new(i32 noundef 1) #12
  %2669 = getelementptr inbounds i8, ptr %2668, i64 220
  store i8 33, ptr %2669, align 4, !tbaa !19
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %9) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %9, i8 0, i64 40, i1 false)
  %2670 = load i32, ptr @test_count, align 4, !tbaa !5
  %2671 = add nsw i32 %2670, 1
  store i32 %2671, ptr @test_count, align 4, !tbaa !5
  %2672 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %9, i32 noundef 0) #12
  %2673 = icmp eq i32 %2672, -1
  br i1 %2673, label %2674, label %2696

2674:                                             ; preds = %2667
  %2675 = load i32, ptr %2537, align 4, !tbaa !5
  %2676 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2677 = call i32 @s2n_print_stacktrace(ptr noundef %2676) #12
  %2678 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2679 = trunc nuw i8 %2678 to i1
  br i1 %2679, label %2680, label %2684

2680:                                             ; preds = %2674
  %2681 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2682 = call i32 @fileno(ptr noundef %2681) #12
  %2683 = call i32 @isatty(i32 noundef %2682) #12
  %.not564 = icmp eq i32 %2683, 0
  br i1 %.not564, label %2684, label %2685

2684:                                             ; preds = %2680, %2674
  br label %2685

2685:                                             ; preds = %2680, %2684
  %.str.25.sink1648 = phi ptr [ @.str.25, %2684 ], [ @.str.22, %2680 ]
  store i32 %2675, ptr %2537, align 4, !tbaa !5
  %2686 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2687 = load i32, ptr @test_count, align 4, !tbaa !5
  %2688 = load i32, ptr %2483, align 4, !tbaa !5
  %2689 = call ptr @s2n_strerror(i32 noundef %2688, ptr noundef nonnull @.str.24) #12
  %2690 = load i32, ptr %2483, align 4, !tbaa !5
  %2691 = call ptr @s2n_strerror_debug(i32 noundef %2690, ptr noundef nonnull @.str.24) #12
  %2692 = load i32, ptr %2537, align 4, !tbaa !5
  %2693 = call ptr @strerror(i32 noundef %2692) #12
  %2694 = load i32, ptr %2537, align 4, !tbaa !5
  %2695 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2686, ptr noundef nonnull %.str.25.sink1648, i32 noundef %2687, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.21, i32 noundef 366, ptr noundef %2689, ptr noundef %2691, ptr noundef %2693, i32 noundef %2694) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2696:                                             ; preds = %2667
  %2697 = load i32, ptr @test_count, align 4, !tbaa !5
  %2698 = add nsw i32 %2697, 1
  store i32 %2698, ptr @test_count, align 4, !tbaa !5
  %2699 = call i32 @s2n_connection_set_io_stuffers(ptr noundef nonnull %9, ptr noundef null, ptr noundef nonnull %2668) #12
  %2700 = icmp eq i32 %2699, -1
  br i1 %2700, label %2701, label %2723

2701:                                             ; preds = %2696
  %2702 = load i32, ptr %2537, align 4, !tbaa !5
  %2703 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2704 = call i32 @s2n_print_stacktrace(ptr noundef %2703) #12
  %2705 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2706 = trunc nuw i8 %2705 to i1
  br i1 %2706, label %2707, label %2711

2707:                                             ; preds = %2701
  %2708 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2709 = call i32 @fileno(ptr noundef %2708) #12
  %2710 = call i32 @isatty(i32 noundef %2709) #12
  %.not563 = icmp eq i32 %2710, 0
  br i1 %.not563, label %2711, label %2712

2711:                                             ; preds = %2707, %2701
  br label %2712

2712:                                             ; preds = %2707, %2711
  %.str.25.sink1657 = phi ptr [ @.str.25, %2711 ], [ @.str.22, %2707 ]
  store i32 %2702, ptr %2537, align 4, !tbaa !5
  %2713 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2714 = load i32, ptr @test_count, align 4, !tbaa !5
  %2715 = load i32, ptr %2483, align 4, !tbaa !5
  %2716 = call ptr @s2n_strerror(i32 noundef %2715, ptr noundef nonnull @.str.24) #12
  %2717 = load i32, ptr %2483, align 4, !tbaa !5
  %2718 = call ptr @s2n_strerror_debug(i32 noundef %2717, ptr noundef nonnull @.str.24) #12
  %2719 = load i32, ptr %2537, align 4, !tbaa !5
  %2720 = call ptr @strerror(i32 noundef %2719) #12
  %2721 = load i32, ptr %2537, align 4, !tbaa !5
  %2722 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2713, ptr noundef nonnull %.str.25.sink1657, i32 noundef %2714, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.21, i32 noundef 367, ptr noundef %2716, ptr noundef %2718, ptr noundef %2720, i32 noundef %2721) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2723:                                             ; preds = %2696
  %2724 = getelementptr inbounds i8, ptr %2668, i64 2172
  store i32 0, ptr %2724, align 4, !tbaa !46
  %2725 = getelementptr inbounds i8, ptr %2668, i64 2176
  store i32 0, ptr %2725, align 8, !tbaa !47
  %2726 = load i32, ptr @test_count, align 4, !tbaa !5
  %2727 = add nsw i32 %2726, 1
  store i32 %2727, ptr @test_count, align 4, !tbaa !5
  %2728 = getelementptr inbounds i8, ptr %2668, i64 2204
  %2729 = load i32, ptr %2728, align 4, !tbaa !45
  %2730 = icmp eq i32 %2729, 2
  %tls13_handshakes.val803 = load i32, ptr @tls13_handshakes, align 16
  %handshakes.val804 = load i32, ptr @handshakes, align 16
  %2731 = select i1 %2730, i32 %tls13_handshakes.val803, i32 %handshakes.val804
  %2732 = icmp eq i32 %2731, 0
  br i1 %2732, label %2755, label %2733

2733:                                             ; preds = %2723
  %2734 = load i32, ptr %2537, align 4, !tbaa !5
  %2735 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2736 = call i32 @s2n_print_stacktrace(ptr noundef %2735) #12
  %2737 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2738 = trunc nuw i8 %2737 to i1
  br i1 %2738, label %2739, label %2743

2739:                                             ; preds = %2733
  %2740 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2741 = call i32 @fileno(ptr noundef %2740) #12
  %2742 = call i32 @isatty(i32 noundef %2741) #12
  %.not517 = icmp eq i32 %2742, 0
  br i1 %.not517, label %2743, label %2744

2743:                                             ; preds = %2739, %2733
  br label %2744

2744:                                             ; preds = %2739, %2743
  %.str.25.sink1666 = phi ptr [ @.str.25, %2743 ], [ @.str.22, %2739 ]
  store i32 %2734, ptr %2537, align 4, !tbaa !5
  %2745 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2746 = load i32, ptr @test_count, align 4, !tbaa !5
  %2747 = load i32, ptr %2483, align 4, !tbaa !5
  %2748 = call ptr @s2n_strerror(i32 noundef %2747, ptr noundef nonnull @.str.24) #12
  %2749 = load i32, ptr %2483, align 4, !tbaa !5
  %2750 = call ptr @s2n_strerror_debug(i32 noundef %2749, ptr noundef nonnull @.str.24) #12
  %2751 = load i32, ptr %2537, align 4, !tbaa !5
  %2752 = call ptr @strerror(i32 noundef %2751) #12
  %2753 = load i32, ptr %2537, align 4, !tbaa !5
  %2754 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2745, ptr noundef nonnull %.str.25.sink1666, i32 noundef %2746, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.21, i32 noundef 371, ptr noundef %2748, ptr noundef %2750, ptr noundef %2752, i32 noundef %2753) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2755:                                             ; preds = %2723
  %2756 = add nsw i32 %2726, 2
  store i32 %2756, ptr @test_count, align 4, !tbaa !5
  %2757 = call i32 @s2n_setup_handler_to_expect(i32 noundef 0, i8 noundef zeroext 0)
  %2758 = icmp eq i32 %2757, -1
  br i1 %2758, label %2759, label %2781

2759:                                             ; preds = %2755
  %2760 = load i32, ptr %2537, align 4, !tbaa !5
  %2761 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2762 = call i32 @s2n_print_stacktrace(ptr noundef %2761) #12
  %2763 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2764 = trunc nuw i8 %2763 to i1
  br i1 %2764, label %2765, label %2769

2765:                                             ; preds = %2759
  %2766 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2767 = call i32 @fileno(ptr noundef %2766) #12
  %2768 = call i32 @isatty(i32 noundef %2767) #12
  %.not562 = icmp eq i32 %2768, 0
  br i1 %.not562, label %2769, label %2770

2769:                                             ; preds = %2765, %2759
  br label %2770

2770:                                             ; preds = %2765, %2769
  %.str.25.sink1675 = phi ptr [ @.str.25, %2769 ], [ @.str.22, %2765 ]
  store i32 %2760, ptr %2537, align 4, !tbaa !5
  %2771 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2772 = load i32, ptr @test_count, align 4, !tbaa !5
  %2773 = load i32, ptr %2483, align 4, !tbaa !5
  %2774 = call ptr @s2n_strerror(i32 noundef %2773, ptr noundef nonnull @.str.24) #12
  %2775 = load i32, ptr %2483, align 4, !tbaa !5
  %2776 = call ptr @s2n_strerror_debug(i32 noundef %2775, ptr noundef nonnull @.str.24) #12
  %2777 = load i32, ptr %2537, align 4, !tbaa !5
  %2778 = call ptr @strerror(i32 noundef %2777) #12
  %2779 = load i32, ptr %2537, align 4, !tbaa !5
  %2780 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2771, ptr noundef nonnull %.str.25.sink1675, i32 noundef %2772, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.21, i32 noundef 372, ptr noundef %2774, ptr noundef %2776, ptr noundef %2778, i32 noundef %2779) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2781:                                             ; preds = %2755
  %2782 = load i32, ptr @test_count, align 4, !tbaa !5
  %2783 = add nsw i32 %2782, 1
  store i32 %2783, ptr @test_count, align 4, !tbaa !5
  %2784 = call i32 @s2n_test_write_header(ptr noundef nonnull %9, i8 noundef zeroext 22, i8 noundef zeroext 1)
  %2785 = icmp eq i32 %2784, -1
  br i1 %2785, label %2786, label %2808

2786:                                             ; preds = %2781
  %2787 = load i32, ptr %2537, align 4, !tbaa !5
  %2788 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2789 = call i32 @s2n_print_stacktrace(ptr noundef %2788) #12
  %2790 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2791 = trunc nuw i8 %2790 to i1
  br i1 %2791, label %2792, label %2796

2792:                                             ; preds = %2786
  %2793 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2794 = call i32 @fileno(ptr noundef %2793) #12
  %2795 = call i32 @isatty(i32 noundef %2794) #12
  %.not561 = icmp eq i32 %2795, 0
  br i1 %.not561, label %2796, label %2797

2796:                                             ; preds = %2792, %2786
  br label %2797

2797:                                             ; preds = %2792, %2796
  %.str.25.sink1684 = phi ptr [ @.str.25, %2796 ], [ @.str.22, %2792 ]
  store i32 %2787, ptr %2537, align 4, !tbaa !5
  %2798 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2799 = load i32, ptr @test_count, align 4, !tbaa !5
  %2800 = load i32, ptr %2483, align 4, !tbaa !5
  %2801 = call ptr @s2n_strerror(i32 noundef %2800, ptr noundef nonnull @.str.24) #12
  %2802 = load i32, ptr %2483, align 4, !tbaa !5
  %2803 = call ptr @s2n_strerror_debug(i32 noundef %2802, ptr noundef nonnull @.str.24) #12
  %2804 = load i32, ptr %2537, align 4, !tbaa !5
  %2805 = call ptr @strerror(i32 noundef %2804) #12
  %2806 = load i32, ptr %2537, align 4, !tbaa !5
  %2807 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2798, ptr noundef nonnull %.str.25.sink1684, i32 noundef %2799, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.21, i32 noundef 374, ptr noundef %2801, ptr noundef %2803, ptr noundef %2805, i32 noundef %2806) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2808:                                             ; preds = %2781
  %2809 = load i32, ptr @test_count, align 4, !tbaa !5
  %2810 = add nsw i32 %2809, 1
  store i32 %2810, ptr @test_count, align 4, !tbaa !5
  %2811 = call i32 @s2n_handshake_read_io(ptr noundef nonnull %2668)
  %2812 = icmp eq i32 %2811, -1
  br i1 %2812, label %2835, label %2813

2813:                                             ; preds = %2808
  %2814 = load i32, ptr %2537, align 4, !tbaa !5
  %2815 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2816 = call i32 @s2n_print_stacktrace(ptr noundef %2815) #12
  %2817 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2818 = trunc nuw i8 %2817 to i1
  br i1 %2818, label %2819, label %2823

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

2823:                                             ; preds = %2819, %2813
  br label %2824

2824:                                             ; preds = %2819, %2823
  %.str.25.sink1693 = phi ptr [ @.str.25, %2823 ], [ @.str.22, %2819 ]
  store i32 %2814, ptr %2537, align 4, !tbaa !5
  %2825 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2826 = load i32, ptr @test_count, align 4, !tbaa !5
  %2827 = load i32, ptr %2483, align 4, !tbaa !5
  %2828 = call ptr @s2n_strerror(i32 noundef %2827, ptr noundef nonnull @.str.24) #12
  %2829 = load i32, ptr %2483, align 4, !tbaa !5
  %2830 = call ptr @s2n_strerror_debug(i32 noundef %2829, ptr noundef nonnull @.str.24) #12
  %2831 = load i32, ptr %2537, align 4, !tbaa !5
  %2832 = call ptr @strerror(i32 noundef %2831) #12
  %2833 = load i32, ptr %2537, align 4, !tbaa !5
  %2834 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2825, ptr noundef nonnull %.str.25.sink1693, i32 noundef %2826, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.21, i32 noundef 375, ptr noundef %2828, ptr noundef %2830, ptr noundef %2832, i32 noundef %2833) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2835:                                             ; preds = %2808
  %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 = load i32, ptr %2483, align 4, !tbaa !5
  %2839 = icmp eq i32 %2838, 335544322
  br i1 %2839, label %2862, label %2840

2840:                                             ; preds = %2835
  %2841 = load i32, ptr %2537, align 4, !tbaa !5
  %2842 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2843 = call i32 @s2n_print_stacktrace(ptr noundef %2842) #12
  %2844 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2845 = trunc nuw i8 %2844 to i1
  br i1 %2845, label %2846, label %2850

2846:                                             ; preds = %2840
  %2847 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2848 = call i32 @fileno(ptr noundef %2847) #12
  %2849 = call i32 @isatty(i32 noundef %2848) #12
  %.not519 = icmp eq i32 %2849, 0
  br i1 %.not519, label %2850, label %2851

2850:                                             ; preds = %2846, %2840
  br label %2851

2851:                                             ; preds = %2846, %2850
  %.str.25.sink1702 = phi ptr [ @.str.25, %2850 ], [ @.str.22, %2846 ]
  store i32 %2841, ptr %2537, align 4, !tbaa !5
  %2852 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2853 = load i32, ptr @test_count, align 4, !tbaa !5
  %2854 = load i32, ptr %2483, align 4, !tbaa !5
  %2855 = call ptr @s2n_strerror(i32 noundef %2854, ptr noundef nonnull @.str.24) #12
  %2856 = load i32, ptr %2483, align 4, !tbaa !5
  %2857 = call ptr @s2n_strerror_debug(i32 noundef %2856, ptr noundef nonnull @.str.24) #12
  %2858 = load i32, ptr %2537, align 4, !tbaa !5
  %2859 = call ptr @strerror(i32 noundef %2858) #12
  %2860 = load i32, ptr %2537, align 4, !tbaa !5
  %2861 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2852, ptr noundef nonnull %.str.25.sink1702, i32 noundef %2853, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.21, i32 noundef 375, ptr noundef %2855, ptr noundef %2857, ptr noundef %2859, i32 noundef %2860) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2862:                                             ; preds = %2835
  %2863 = add nsw i32 %2836, 2
  store i32 %2863, ptr @test_count, align 4, !tbaa !5
  %2864 = call ptr @s2n_strerror_debug(i32 noundef 335544322, ptr noundef nonnull @.str.24) #12
  %2865 = icmp eq ptr %2864, null
  br i1 %2865, label %2866, label %2888

2866:                                             ; preds = %2862
  %2867 = load i32, ptr %2537, align 4, !tbaa !5
  %2868 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2869 = call i32 @s2n_print_stacktrace(ptr noundef %2868) #12
  %2870 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2871 = trunc nuw i8 %2870 to i1
  br i1 %2871, label %2872, label %2876

2872:                                             ; preds = %2866
  %2873 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2874 = call i32 @fileno(ptr noundef %2873) #12
  %2875 = call i32 @isatty(i32 noundef %2874) #12
  %.not560 = icmp eq i32 %2875, 0
  br i1 %.not560, label %2876, label %2877

2876:                                             ; preds = %2872, %2866
  br label %2877

2877:                                             ; preds = %2872, %2876
  %.str.25.sink1711 = phi ptr [ @.str.25, %2876 ], [ @.str.22, %2872 ]
  store i32 %2867, ptr %2537, align 4, !tbaa !5
  %2878 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2879 = load i32, ptr @test_count, align 4, !tbaa !5
  %2880 = load i32, ptr %2483, align 4, !tbaa !5
  %2881 = call ptr @s2n_strerror(i32 noundef %2880, ptr noundef nonnull @.str.24) #12
  %2882 = load i32, ptr %2483, align 4, !tbaa !5
  %2883 = call ptr @s2n_strerror_debug(i32 noundef %2882, ptr noundef nonnull @.str.24) #12
  %2884 = load i32, ptr %2537, align 4, !tbaa !5
  %2885 = call ptr @strerror(i32 noundef %2884) #12
  %2886 = load i32, ptr %2537, align 4, !tbaa !5
  %2887 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2878, ptr noundef nonnull %.str.25.sink1711, i32 noundef %2879, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.21, i32 noundef 375, ptr noundef %2881, ptr noundef %2883, ptr noundef %2885, i32 noundef %2886) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2888:                                             ; preds = %2862
  store i32 0, ptr %2483, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %2537, align 4, !tbaa !5
  %2889 = load i32, ptr @test_count, align 4, !tbaa !5
  %2890 = add nsw i32 %2889, 1
  store i32 %2890, ptr @test_count, align 4, !tbaa !5
  %2891 = load i32, ptr %2725, align 8, !tbaa !47
  %2892 = icmp eq i32 %2891, 0
  br i1 %2892, label %2915, label %2893

2893:                                             ; preds = %2888
  %2894 = load i32, ptr %2537, align 4, !tbaa !5
  %2895 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2896 = call i32 @s2n_print_stacktrace(ptr noundef %2895) #12
  %2897 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2898 = trunc nuw i8 %2897 to i1
  br i1 %2898, label %2899, label %2903

2899:                                             ; preds = %2893
  %2900 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2901 = call i32 @fileno(ptr noundef %2900) #12
  %2902 = call i32 @isatty(i32 noundef %2901) #12
  %.not520 = icmp eq i32 %2902, 0
  br i1 %.not520, label %2903, label %2904

2903:                                             ; preds = %2899, %2893
  br label %2904

2904:                                             ; preds = %2899, %2903
  %.str.25.sink1720 = phi ptr [ @.str.25, %2903 ], [ @.str.22, %2899 ]
  store i32 %2894, ptr %2537, align 4, !tbaa !5
  %2905 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2906 = load i32, ptr @test_count, align 4, !tbaa !5
  %2907 = load i32, ptr %2483, align 4, !tbaa !5
  %2908 = call ptr @s2n_strerror(i32 noundef %2907, ptr noundef nonnull @.str.24) #12
  %2909 = load i32, ptr %2483, align 4, !tbaa !5
  %2910 = call ptr @s2n_strerror_debug(i32 noundef %2909, ptr noundef nonnull @.str.24) #12
  %2911 = load i32, ptr %2537, align 4, !tbaa !5
  %2912 = call ptr @strerror(i32 noundef %2911) #12
  %2913 = load i32, ptr %2537, align 4, !tbaa !5
  %2914 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2905, ptr noundef nonnull %.str.25.sink1720, i32 noundef %2906, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.21, i32 noundef 377, ptr noundef %2908, ptr noundef %2910, ptr noundef %2912, i32 noundef %2913) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2915:                                             ; preds = %2888
  %2916 = add nsw i32 %2889, 2
  store i32 %2916, ptr @test_count, align 4, !tbaa !5
  %2917 = load i32, ptr @unexpected_handler_called, align 4, !tbaa !5
  %.not521 = icmp eq i32 %2917, 0
  br i1 %.not521, label %2940, label %2918

2918:                                             ; preds = %2915
  %2919 = load i32, ptr %2537, align 4, !tbaa !5
  %2920 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2921 = call i32 @s2n_print_stacktrace(ptr noundef %2920) #12
  %2922 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2923 = trunc nuw i8 %2922 to i1
  br i1 %2923, label %2924, label %2928

2924:                                             ; preds = %2918
  %2925 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2926 = call i32 @fileno(ptr noundef %2925) #12
  %2927 = call i32 @isatty(i32 noundef %2926) #12
  %.not559 = icmp eq i32 %2927, 0
  br i1 %.not559, label %2928, label %2929

2928:                                             ; preds = %2924, %2918
  br label %2929

2929:                                             ; preds = %2924, %2928
  %.str.25.sink1729 = phi ptr [ @.str.25, %2928 ], [ @.str.22, %2924 ]
  store i32 %2919, ptr %2537, align 4, !tbaa !5
  %2930 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2931 = load i32, ptr @test_count, align 4, !tbaa !5
  %2932 = load i32, ptr %2483, align 4, !tbaa !5
  %2933 = call ptr @s2n_strerror(i32 noundef %2932, ptr noundef nonnull @.str.24) #12
  %2934 = load i32, ptr %2483, align 4, !tbaa !5
  %2935 = call ptr @s2n_strerror_debug(i32 noundef %2934, ptr noundef nonnull @.str.24) #12
  %2936 = load i32, ptr %2537, align 4, !tbaa !5
  %2937 = call ptr @strerror(i32 noundef %2936) #12
  %2938 = load i32, ptr %2537, align 4, !tbaa !5
  %2939 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2930, ptr noundef nonnull %.str.25.sink1729, i32 noundef %2931, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.21, i32 noundef 378, ptr noundef %2933, ptr noundef %2935, ptr noundef %2937, i32 noundef %2938) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2940:                                             ; preds = %2915
  %2941 = add nsw i32 %2889, 3
  store i32 %2941, ptr @test_count, align 4, !tbaa !5
  %2942 = load i32, ptr @expected_handler_called, align 4, !tbaa !5
  %.not522 = icmp eq i32 %2942, 0
  br i1 %.not522, label %2965, label %2943

2943:                                             ; preds = %2940
  %2944 = load i32, ptr %2537, align 4, !tbaa !5
  %2945 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2946 = call i32 @s2n_print_stacktrace(ptr noundef %2945) #12
  %2947 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2948 = trunc nuw i8 %2947 to i1
  br i1 %2948, label %2949, label %2953

2949:                                             ; preds = %2943
  %2950 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2951 = call i32 @fileno(ptr noundef %2950) #12
  %2952 = call i32 @isatty(i32 noundef %2951) #12
  %.not558 = icmp eq i32 %2952, 0
  br i1 %.not558, label %2953, label %2954

2953:                                             ; preds = %2949, %2943
  br label %2954

2954:                                             ; preds = %2949, %2953
  %.str.25.sink1738 = phi ptr [ @.str.25, %2953 ], [ @.str.22, %2949 ]
  store i32 %2944, ptr %2537, align 4, !tbaa !5
  %2955 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2956 = load i32, ptr @test_count, align 4, !tbaa !5
  %2957 = load i32, ptr %2483, align 4, !tbaa !5
  %2958 = call ptr @s2n_strerror(i32 noundef %2957, ptr noundef nonnull @.str.24) #12
  %2959 = load i32, ptr %2483, align 4, !tbaa !5
  %2960 = call ptr @s2n_strerror_debug(i32 noundef %2959, ptr noundef nonnull @.str.24) #12
  %2961 = load i32, ptr %2537, align 4, !tbaa !5
  %2962 = call ptr @strerror(i32 noundef %2961) #12
  %2963 = load i32, ptr %2537, align 4, !tbaa !5
  %2964 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2955, ptr noundef nonnull %.str.25.sink1738, i32 noundef %2956, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.21, i32 noundef 379, ptr noundef %2958, ptr noundef %2960, ptr noundef %2962, i32 noundef %2963) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2965:                                             ; preds = %2940
  %2966 = add nsw i32 %2889, 4
  store i32 %2966, ptr @test_count, align 4, !tbaa !5
  %2967 = call i32 @s2n_stuffer_free(ptr noundef nonnull %9) #12
  %2968 = icmp eq i32 %2967, -1
  br i1 %2968, label %2969, label %2991

2969:                                             ; preds = %2965
  %2970 = load i32, ptr %2537, align 4, !tbaa !5
  %2971 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2972 = call i32 @s2n_print_stacktrace(ptr noundef %2971) #12
  %2973 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2974 = trunc nuw i8 %2973 to i1
  br i1 %2974, label %2975, label %2979

2975:                                             ; preds = %2969
  %2976 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2977 = call i32 @fileno(ptr noundef %2976) #12
  %2978 = call i32 @isatty(i32 noundef %2977) #12
  %.not557 = icmp eq i32 %2978, 0
  br i1 %.not557, label %2979, label %2980

2979:                                             ; preds = %2975, %2969
  br label %2980

2980:                                             ; preds = %2975, %2979
  %.str.25.sink1747 = phi ptr [ @.str.25, %2979 ], [ @.str.22, %2975 ]
  store i32 %2970, ptr %2537, align 4, !tbaa !5
  %2981 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2982 = load i32, ptr @test_count, align 4, !tbaa !5
  %2983 = load i32, ptr %2483, align 4, !tbaa !5
  %2984 = call ptr @s2n_strerror(i32 noundef %2983, ptr noundef nonnull @.str.24) #12
  %2985 = load i32, ptr %2483, align 4, !tbaa !5
  %2986 = call ptr @s2n_strerror_debug(i32 noundef %2985, ptr noundef nonnull @.str.24) #12
  %2987 = load i32, ptr %2537, align 4, !tbaa !5
  %2988 = call ptr @strerror(i32 noundef %2987) #12
  %2989 = load i32, ptr %2537, align 4, !tbaa !5
  %2990 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2981, ptr noundef nonnull %.str.25.sink1747, i32 noundef %2982, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.21, i32 noundef 381, ptr noundef %2984, ptr noundef %2986, ptr noundef %2988, i32 noundef %2989) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2991:                                             ; preds = %2965
  %2992 = load i32, ptr @test_count, align 4, !tbaa !5
  %2993 = add nsw i32 %2992, 1
  store i32 %2993, ptr @test_count, align 4, !tbaa !5
  %2994 = call i32 @s2n_connection_free(ptr noundef nonnull %2668) #12
  %2995 = icmp eq i32 %2994, -1
  br i1 %2995, label %2996, label %3018

2996:                                             ; preds = %2991
  %2997 = load i32, ptr %2537, align 4, !tbaa !5
  %2998 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2999 = call i32 @s2n_print_stacktrace(ptr noundef %2998) #12
  %3000 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3001 = trunc nuw i8 %3000 to i1
  br i1 %3001, label %3002, label %3006

3002:                                             ; preds = %2996
  %3003 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3004 = call i32 @fileno(ptr noundef %3003) #12
  %3005 = call i32 @isatty(i32 noundef %3004) #12
  %.not556 = icmp eq i32 %3005, 0
  br i1 %.not556, label %3006, label %3007

3006:                                             ; preds = %3002, %2996
  br label %3007

3007:                                             ; preds = %3002, %3006
  %.str.25.sink1756 = phi ptr [ @.str.25, %3006 ], [ @.str.22, %3002 ]
  store i32 %2997, ptr %2537, align 4, !tbaa !5
  %3008 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3009 = load i32, ptr @test_count, align 4, !tbaa !5
  %3010 = load i32, ptr %2483, align 4, !tbaa !5
  %3011 = call ptr @s2n_strerror(i32 noundef %3010, ptr noundef nonnull @.str.24) #12
  %3012 = load i32, ptr %2483, align 4, !tbaa !5
  %3013 = call ptr @s2n_strerror_debug(i32 noundef %3012, ptr noundef nonnull @.str.24) #12
  %3014 = load i32, ptr %2537, align 4, !tbaa !5
  %3015 = call ptr @strerror(i32 noundef %3014) #12
  %3016 = load i32, ptr %2537, align 4, !tbaa !5
  %3017 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3008, ptr noundef nonnull %.str.25.sink1756, i32 noundef %3009, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.21, i32 noundef 382, ptr noundef %3011, ptr noundef %3013, ptr noundef %3015, i32 noundef %3016) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3018:                                             ; preds = %2991
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %9) #12
  %3019 = load i8, ptr getelementptr inbounds (i8, ptr @state_machine, i64 337), align 1, !tbaa !59
  store i8 1, ptr getelementptr inbounds (i8, ptr @state_machine, i64 337), align 1, !tbaa !59
  %3020 = call ptr @s2n_connection_new(i32 noundef 1) #12
  %3021 = getelementptr inbounds i8, ptr %3020, i64 220
  store i8 33, ptr %3021, align 4, !tbaa !19
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %10) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %10, i8 0, i64 40, i1 false)
  %3022 = load i32, ptr @test_count, align 4, !tbaa !5
  %3023 = add nsw i32 %3022, 1
  store i32 %3023, ptr @test_count, align 4, !tbaa !5
  %3024 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %10, i32 noundef 0) #12
  %3025 = icmp eq i32 %3024, -1
  br i1 %3025, label %3026, label %3048

3026:                                             ; preds = %3018
  %3027 = load i32, ptr %2537, align 4, !tbaa !5
  %3028 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3029 = call i32 @s2n_print_stacktrace(ptr noundef %3028) #12
  %3030 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3031 = trunc nuw i8 %3030 to i1
  br i1 %3031, label %3032, label %3036

3032:                                             ; preds = %3026
  %3033 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3034 = call i32 @fileno(ptr noundef %3033) #12
  %3035 = call i32 @isatty(i32 noundef %3034) #12
  %.not555 = icmp eq i32 %3035, 0
  br i1 %.not555, label %3036, label %3037

3036:                                             ; preds = %3032, %3026
  br label %3037

3037:                                             ; preds = %3032, %3036
  %.str.25.sink1765 = phi ptr [ @.str.25, %3036 ], [ @.str.22, %3032 ]
  store i32 %3027, ptr %2537, align 4, !tbaa !5
  %3038 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3039 = load i32, ptr @test_count, align 4, !tbaa !5
  %3040 = load i32, ptr %2483, align 4, !tbaa !5
  %3041 = call ptr @s2n_strerror(i32 noundef %3040, ptr noundef nonnull @.str.24) #12
  %3042 = load i32, ptr %2483, align 4, !tbaa !5
  %3043 = call ptr @s2n_strerror_debug(i32 noundef %3042, ptr noundef nonnull @.str.24) #12
  %3044 = load i32, ptr %2537, align 4, !tbaa !5
  %3045 = call ptr @strerror(i32 noundef %3044) #12
  %3046 = load i32, ptr %2537, align 4, !tbaa !5
  %3047 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3038, ptr noundef nonnull %.str.25.sink1765, i32 noundef %3039, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.21, i32 noundef 401, ptr noundef %3041, ptr noundef %3043, ptr noundef %3045, i32 noundef %3046) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3048:                                             ; preds = %3018
  %3049 = load i32, ptr @test_count, align 4, !tbaa !5
  %3050 = add nsw i32 %3049, 1
  store i32 %3050, ptr @test_count, align 4, !tbaa !5
  %3051 = call i32 @s2n_connection_set_io_stuffers(ptr noundef nonnull %10, ptr noundef null, ptr noundef nonnull %3020) #12
  %3052 = icmp eq i32 %3051, -1
  br i1 %3052, label %3053, label %3075

3053:                                             ; preds = %3048
  %3054 = load i32, ptr %2537, align 4, !tbaa !5
  %3055 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3056 = call i32 @s2n_print_stacktrace(ptr noundef %3055) #12
  %3057 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3058 = trunc nuw i8 %3057 to i1
  br i1 %3058, label %3059, label %3063

3059:                                             ; preds = %3053
  %3060 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3061 = call i32 @fileno(ptr noundef %3060) #12
  %3062 = call i32 @isatty(i32 noundef %3061) #12
  %.not554 = icmp eq i32 %3062, 0
  br i1 %.not554, label %3063, label %3064

3063:                                             ; preds = %3059, %3053
  br label %3064

3064:                                             ; preds = %3059, %3063
  %.str.25.sink1774 = phi ptr [ @.str.25, %3063 ], [ @.str.22, %3059 ]
  store i32 %3054, ptr %2537, align 4, !tbaa !5
  %3065 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3066 = load i32, ptr @test_count, align 4, !tbaa !5
  %3067 = load i32, ptr %2483, align 4, !tbaa !5
  %3068 = call ptr @s2n_strerror(i32 noundef %3067, ptr noundef nonnull @.str.24) #12
  %3069 = load i32, ptr %2483, align 4, !tbaa !5
  %3070 = call ptr @s2n_strerror_debug(i32 noundef %3069, ptr noundef nonnull @.str.24) #12
  %3071 = load i32, ptr %2537, align 4, !tbaa !5
  %3072 = call ptr @strerror(i32 noundef %3071) #12
  %3073 = load i32, ptr %2537, align 4, !tbaa !5
  %3074 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3065, ptr noundef nonnull %.str.25.sink1774, i32 noundef %3066, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.21, i32 noundef 402, ptr noundef %3068, ptr noundef %3070, ptr noundef %3072, i32 noundef %3073) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3075:                                             ; preds = %3048
  %3076 = getelementptr inbounds i8, ptr %3020, i64 2172
  store i32 1, ptr %3076, align 4, !tbaa !46
  %3077 = getelementptr inbounds i8, ptr %3020, i64 2176
  store i32 2, ptr %3077, align 8, !tbaa !47
  %3078 = load i32, ptr @test_count, align 4, !tbaa !5
  %3079 = add nsw i32 %3078, 1
  store i32 %3079, ptr @test_count, align 4, !tbaa !5
  %3080 = getelementptr inbounds i8, ptr %3020, i64 2204
  %3081 = load i32, ptr %3080, align 4, !tbaa !45
  %3082 = icmp eq i32 %3081, 2
  %.val = load i32, ptr getelementptr inbounds (i8, ptr @tls13_handshakes, i64 136), align 8
  %.val805 = load i32, ptr getelementptr inbounds (i8, ptr @handshakes, i64 136), align 8
  %3083 = select i1 %3082, i32 %.val, i32 %.val805
  %3084 = icmp eq i32 %3083, 14
  br i1 %3084, label %3107, label %3085

3085:                                             ; preds = %3075
  %3086 = load i32, ptr %2537, align 4, !tbaa !5
  %3087 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3088 = call i32 @s2n_print_stacktrace(ptr noundef %3087) #12
  %3089 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3090 = trunc nuw i8 %3089 to i1
  br i1 %3090, label %3091, label %3095

3091:                                             ; preds = %3085
  %3092 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3093 = call i32 @fileno(ptr noundef %3092) #12
  %3094 = call i32 @isatty(i32 noundef %3093) #12
  %.not523 = icmp eq i32 %3094, 0
  br i1 %.not523, label %3095, label %3096

3095:                                             ; preds = %3091, %3085
  br label %3096

3096:                                             ; preds = %3091, %3095
  %.str.25.sink1783 = phi ptr [ @.str.25, %3095 ], [ @.str.22, %3091 ]
  store i32 %3086, ptr %2537, align 4, !tbaa !5
  %3097 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3098 = load i32, ptr @test_count, align 4, !tbaa !5
  %3099 = load i32, ptr %2483, align 4, !tbaa !5
  %3100 = call ptr @s2n_strerror(i32 noundef %3099, ptr noundef nonnull @.str.24) #12
  %3101 = load i32, ptr %2483, align 4, !tbaa !5
  %3102 = call ptr @s2n_strerror_debug(i32 noundef %3101, ptr noundef nonnull @.str.24) #12
  %3103 = load i32, ptr %2537, align 4, !tbaa !5
  %3104 = call ptr @strerror(i32 noundef %3103) #12
  %3105 = load i32, ptr %2537, align 4, !tbaa !5
  %3106 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3097, ptr noundef nonnull %.str.25.sink1783, i32 noundef %3098, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.21, i32 noundef 407, ptr noundef %3100, ptr noundef %3102, ptr noundef %3104, i32 noundef %3105) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3107:                                             ; preds = %3075
  %3108 = add nsw i32 %3078, 2
  store i32 %3108, ptr @test_count, align 4, !tbaa !5
  %3109 = call i32 @s2n_setup_handler_to_expect(i32 noundef 14, i8 noundef zeroext 1)
  %3110 = icmp eq i32 %3109, -1
  br i1 %3110, label %3111, label %3133

3111:                                             ; preds = %3107
  %3112 = load i32, ptr %2537, align 4, !tbaa !5
  %3113 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3114 = call i32 @s2n_print_stacktrace(ptr noundef %3113) #12
  %3115 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3116 = trunc nuw i8 %3115 to i1
  br i1 %3116, label %3117, label %3121

3117:                                             ; preds = %3111
  %3118 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3119 = call i32 @fileno(ptr noundef %3118) #12
  %3120 = call i32 @isatty(i32 noundef %3119) #12
  %.not553 = icmp eq i32 %3120, 0
  br i1 %.not553, label %3121, label %3122

3121:                                             ; preds = %3117, %3111
  br label %3122

3122:                                             ; preds = %3117, %3121
  %.str.25.sink1792 = phi ptr [ @.str.25, %3121 ], [ @.str.22, %3117 ]
  store i32 %3112, ptr %2537, align 4, !tbaa !5
  %3123 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3124 = load i32, ptr @test_count, align 4, !tbaa !5
  %3125 = load i32, ptr %2483, align 4, !tbaa !5
  %3126 = call ptr @s2n_strerror(i32 noundef %3125, ptr noundef nonnull @.str.24) #12
  %3127 = load i32, ptr %2483, align 4, !tbaa !5
  %3128 = call ptr @s2n_strerror_debug(i32 noundef %3127, ptr noundef nonnull @.str.24) #12
  %3129 = load i32, ptr %2537, align 4, !tbaa !5
  %3130 = call ptr @strerror(i32 noundef %3129) #12
  %3131 = load i32, ptr %2537, align 4, !tbaa !5
  %3132 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3123, ptr noundef nonnull %.str.25.sink1792, i32 noundef %3124, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.21, i32 noundef 408, ptr noundef %3126, ptr noundef %3128, ptr noundef %3130, i32 noundef %3131) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3133:                                             ; preds = %3107
  %3134 = load i32, ptr @test_count, align 4, !tbaa !5
  %3135 = add nsw i32 %3134, 1
  store i32 %3135, ptr @test_count, align 4, !tbaa !5
  %3136 = load i32, ptr %3080, align 4, !tbaa !45
  %3137 = icmp eq i32 %3136, 2
  %3138 = select i1 %3137, ptr @tls13_state_machine, ptr @state_machine
  %3139 = select i1 %3137, ptr @tls13_handshakes, ptr @handshakes
  %3140 = load i32, ptr %3076, align 4, !tbaa !46
  %3141 = zext i32 %3140 to i64
  %3142 = load i32, ptr %3077, align 8, !tbaa !47
  %3143 = sext i32 %3142 to i64
  %3144 = getelementptr inbounds [32 x i32], ptr %3139, i64 %3141, i64 %3143
  %3145 = load i32, ptr %3144, align 4, !tbaa !5
  %3146 = zext i32 %3145 to i64
  %3147 = getelementptr inbounds %struct.s2n_handshake_action, ptr %3138, i64 %3146, i32 1
  %3148 = load i8, ptr %3147, align 1, !tbaa !59
  %3149 = call i32 @s2n_test_write_header(ptr noundef nonnull %10, i8 noundef zeroext 22, i8 noundef zeroext %3148)
  %3150 = icmp eq i32 %3149, -1
  br i1 %3150, label %3151, label %3173

3151:                                             ; preds = %3133
  %3152 = load i32, ptr %2537, align 4, !tbaa !5
  %3153 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3154 = call i32 @s2n_print_stacktrace(ptr noundef %3153) #12
  %3155 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3156 = trunc nuw i8 %3155 to i1
  br i1 %3156, label %3157, label %3161

3157:                                             ; preds = %3151
  %3158 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3159 = call i32 @fileno(ptr noundef %3158) #12
  %3160 = call i32 @isatty(i32 noundef %3159) #12
  %.not552 = icmp eq i32 %3160, 0
  br i1 %.not552, label %3161, label %3162

3161:                                             ; preds = %3157, %3151
  br label %3162

3162:                                             ; preds = %3157, %3161
  %.str.25.sink1801 = phi ptr [ @.str.25, %3161 ], [ @.str.22, %3157 ]
  store i32 %3152, ptr %2537, align 4, !tbaa !5
  %3163 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3164 = load i32, ptr @test_count, align 4, !tbaa !5
  %3165 = load i32, ptr %2483, align 4, !tbaa !5
  %3166 = call ptr @s2n_strerror(i32 noundef %3165, ptr noundef nonnull @.str.24) #12
  %3167 = load i32, ptr %2483, align 4, !tbaa !5
  %3168 = call ptr @s2n_strerror_debug(i32 noundef %3167, ptr noundef nonnull @.str.24) #12
  %3169 = load i32, ptr %2537, align 4, !tbaa !5
  %3170 = call ptr @strerror(i32 noundef %3169) #12
  %3171 = load i32, ptr %2537, align 4, !tbaa !5
  %3172 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3163, ptr noundef nonnull %.str.25.sink1801, i32 noundef %3164, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.21, i32 noundef 410, ptr noundef %3166, ptr noundef %3168, ptr noundef %3170, i32 noundef %3171) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3173:                                             ; preds = %3133
  %3174 = load i32, ptr @test_count, align 4, !tbaa !5
  %3175 = add nsw i32 %3174, 1
  store i32 %3175, ptr @test_count, align 4, !tbaa !5
  %3176 = call i32 @s2n_handshake_read_io(ptr noundef nonnull %3020)
  %3177 = icmp eq i32 %3176, -1
  br i1 %3177, label %3200, label %3178

3178:                                             ; preds = %3173
  %3179 = load i32, ptr %2537, align 4, !tbaa !5
  %3180 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3181 = call i32 @s2n_print_stacktrace(ptr noundef %3180) #12
  %3182 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3183 = trunc nuw i8 %3182 to i1
  br i1 %3183, label %3184, label %3188

3184:                                             ; preds = %3178
  %3185 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3186 = call i32 @fileno(ptr noundef %3185) #12
  %3187 = call i32 @isatty(i32 noundef %3186) #12
  %.not524 = icmp eq i32 %3187, 0
  br i1 %.not524, label %3188, label %3189

3188:                                             ; preds = %3184, %3178
  br label %3189

3189:                                             ; preds = %3184, %3188
  %.str.25.sink1810 = phi ptr [ @.str.25, %3188 ], [ @.str.22, %3184 ]
  store i32 %3179, ptr %2537, align 4, !tbaa !5
  %3190 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3191 = load i32, ptr @test_count, align 4, !tbaa !5
  %3192 = load i32, ptr %2483, align 4, !tbaa !5
  %3193 = call ptr @s2n_strerror(i32 noundef %3192, ptr noundef nonnull @.str.24) #12
  %3194 = load i32, ptr %2483, align 4, !tbaa !5
  %3195 = call ptr @s2n_strerror_debug(i32 noundef %3194, ptr noundef nonnull @.str.24) #12
  %3196 = load i32, ptr %2537, align 4, !tbaa !5
  %3197 = call ptr @strerror(i32 noundef %3196) #12
  %3198 = load i32, ptr %2537, align 4, !tbaa !5
  %3199 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3190, ptr noundef nonnull %.str.25.sink1810, i32 noundef %3191, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.21, i32 noundef 411, ptr noundef %3193, ptr noundef %3195, ptr noundef %3197, i32 noundef %3198) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3200:                                             ; preds = %3173
  %3201 = load i32, ptr @test_count, align 4, !tbaa !5
  %3202 = add nsw i32 %3201, 1
  store i32 %3202, ptr @test_count, align 4, !tbaa !5
  %3203 = load i32, ptr %2483, align 4, !tbaa !5
  %3204 = icmp eq i32 %3203, 335544322
  br i1 %3204, label %3227, label %3205

3205:                                             ; preds = %3200
  %3206 = load i32, ptr %2537, align 4, !tbaa !5
  %3207 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3208 = call i32 @s2n_print_stacktrace(ptr noundef %3207) #12
  %3209 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3210 = trunc nuw i8 %3209 to i1
  br i1 %3210, label %3211, label %3215

3211:                                             ; preds = %3205
  %3212 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3213 = call i32 @fileno(ptr noundef %3212) #12
  %3214 = call i32 @isatty(i32 noundef %3213) #12
  %.not525 = icmp eq i32 %3214, 0
  br i1 %.not525, label %3215, label %3216

3215:                                             ; preds = %3211, %3205
  br label %3216

3216:                                             ; preds = %3211, %3215
  %.str.25.sink1819 = phi ptr [ @.str.25, %3215 ], [ @.str.22, %3211 ]
  store i32 %3206, ptr %2537, align 4, !tbaa !5
  %3217 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3218 = load i32, ptr @test_count, align 4, !tbaa !5
  %3219 = load i32, ptr %2483, align 4, !tbaa !5
  %3220 = call ptr @s2n_strerror(i32 noundef %3219, ptr noundef nonnull @.str.24) #12
  %3221 = load i32, ptr %2483, align 4, !tbaa !5
  %3222 = call ptr @s2n_strerror_debug(i32 noundef %3221, ptr noundef nonnull @.str.24) #12
  %3223 = load i32, ptr %2537, align 4, !tbaa !5
  %3224 = call ptr @strerror(i32 noundef %3223) #12
  %3225 = load i32, ptr %2537, align 4, !tbaa !5
  %3226 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3217, ptr noundef nonnull %.str.25.sink1819, i32 noundef %3218, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.21, i32 noundef 411, ptr noundef %3220, ptr noundef %3222, ptr noundef %3224, i32 noundef %3225) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3227:                                             ; preds = %3200
  %3228 = add nsw i32 %3201, 2
  store i32 %3228, ptr @test_count, align 4, !tbaa !5
  %3229 = call ptr @s2n_strerror_debug(i32 noundef 335544322, ptr noundef nonnull @.str.24) #12
  %3230 = icmp eq ptr %3229, null
  br i1 %3230, label %3231, label %3253

3231:                                             ; preds = %3227
  %3232 = load i32, ptr %2537, align 4, !tbaa !5
  %3233 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3234 = call i32 @s2n_print_stacktrace(ptr noundef %3233) #12
  %3235 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3236 = trunc nuw i8 %3235 to i1
  br i1 %3236, label %3237, label %3241

3237:                                             ; preds = %3231
  %3238 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3239 = call i32 @fileno(ptr noundef %3238) #12
  %3240 = call i32 @isatty(i32 noundef %3239) #12
  %.not551 = icmp eq i32 %3240, 0
  br i1 %.not551, label %3241, label %3242

3241:                                             ; preds = %3237, %3231
  br label %3242

3242:                                             ; preds = %3237, %3241
  %.str.25.sink1828 = phi ptr [ @.str.25, %3241 ], [ @.str.22, %3237 ]
  store i32 %3232, ptr %2537, align 4, !tbaa !5
  %3243 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3244 = load i32, ptr @test_count, align 4, !tbaa !5
  %3245 = load i32, ptr %2483, align 4, !tbaa !5
  %3246 = call ptr @s2n_strerror(i32 noundef %3245, ptr noundef nonnull @.str.24) #12
  %3247 = load i32, ptr %2483, align 4, !tbaa !5
  %3248 = call ptr @s2n_strerror_debug(i32 noundef %3247, ptr noundef nonnull @.str.24) #12
  %3249 = load i32, ptr %2537, align 4, !tbaa !5
  %3250 = call ptr @strerror(i32 noundef %3249) #12
  %3251 = load i32, ptr %2537, align 4, !tbaa !5
  %3252 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3243, ptr noundef nonnull %.str.25.sink1828, i32 noundef %3244, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.21, i32 noundef 411, ptr noundef %3246, ptr noundef %3248, ptr noundef %3250, i32 noundef %3251) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3253:                                             ; preds = %3227
  store i32 0, ptr %2483, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %2537, align 4, !tbaa !5
  %3254 = load i32, ptr @test_count, align 4, !tbaa !5
  %3255 = add nsw i32 %3254, 1
  store i32 %3255, ptr @test_count, align 4, !tbaa !5
  %3256 = load i32, ptr %3077, align 8, !tbaa !47
  %3257 = icmp eq i32 %3256, 2
  br i1 %3257, label %3280, label %3258

3258:                                             ; preds = %3253
  %3259 = load i32, ptr %2537, align 4, !tbaa !5
  %3260 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3261 = call i32 @s2n_print_stacktrace(ptr noundef %3260) #12
  %3262 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3263 = trunc nuw i8 %3262 to i1
  br i1 %3263, label %3264, label %3268

3264:                                             ; preds = %3258
  %3265 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3266 = call i32 @fileno(ptr noundef %3265) #12
  %3267 = call i32 @isatty(i32 noundef %3266) #12
  %.not526 = icmp eq i32 %3267, 0
  br i1 %.not526, label %3268, label %3269

3268:                                             ; preds = %3264, %3258
  br label %3269

3269:                                             ; preds = %3264, %3268
  %.str.25.sink1837 = phi ptr [ @.str.25, %3268 ], [ @.str.22, %3264 ]
  store i32 %3259, ptr %2537, align 4, !tbaa !5
  %3270 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3271 = load i32, ptr @test_count, align 4, !tbaa !5
  %3272 = load i32, ptr %2483, align 4, !tbaa !5
  %3273 = call ptr @s2n_strerror(i32 noundef %3272, ptr noundef nonnull @.str.24) #12
  %3274 = load i32, ptr %2483, align 4, !tbaa !5
  %3275 = call ptr @s2n_strerror_debug(i32 noundef %3274, ptr noundef nonnull @.str.24) #12
  %3276 = load i32, ptr %2537, align 4, !tbaa !5
  %3277 = call ptr @strerror(i32 noundef %3276) #12
  %3278 = load i32, ptr %2537, align 4, !tbaa !5
  %3279 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3270, ptr noundef nonnull %.str.25.sink1837, i32 noundef %3271, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.21, i32 noundef 413, ptr noundef %3273, ptr noundef %3275, ptr noundef %3277, i32 noundef %3278) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3280:                                             ; preds = %3253
  %3281 = add nsw i32 %3254, 2
  store i32 %3281, ptr @test_count, align 4, !tbaa !5
  %3282 = load i32, ptr @unexpected_handler_called, align 4, !tbaa !5
  %.not527 = icmp eq i32 %3282, 0
  br i1 %.not527, label %3305, label %3283

3283:                                             ; preds = %3280
  %3284 = load i32, ptr %2537, align 4, !tbaa !5
  %3285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3286 = call i32 @s2n_print_stacktrace(ptr noundef %3285) #12
  %3287 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3288 = trunc nuw i8 %3287 to i1
  br i1 %3288, label %3289, label %3293

3289:                                             ; preds = %3283
  %3290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3291 = call i32 @fileno(ptr noundef %3290) #12
  %3292 = call i32 @isatty(i32 noundef %3291) #12
  %.not550 = icmp eq i32 %3292, 0
  br i1 %.not550, label %3293, label %3294

3293:                                             ; preds = %3289, %3283
  br label %3294

3294:                                             ; preds = %3289, %3293
  %.str.25.sink1846 = phi ptr [ @.str.25, %3293 ], [ @.str.22, %3289 ]
  store i32 %3284, ptr %2537, align 4, !tbaa !5
  %3295 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3296 = load i32, ptr @test_count, align 4, !tbaa !5
  %3297 = load i32, ptr %2483, align 4, !tbaa !5
  %3298 = call ptr @s2n_strerror(i32 noundef %3297, ptr noundef nonnull @.str.24) #12
  %3299 = load i32, ptr %2483, align 4, !tbaa !5
  %3300 = call ptr @s2n_strerror_debug(i32 noundef %3299, ptr noundef nonnull @.str.24) #12
  %3301 = load i32, ptr %2537, align 4, !tbaa !5
  %3302 = call ptr @strerror(i32 noundef %3301) #12
  %3303 = load i32, ptr %2537, align 4, !tbaa !5
  %3304 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3295, ptr noundef nonnull %.str.25.sink1846, i32 noundef %3296, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.21, i32 noundef 414, ptr noundef %3298, ptr noundef %3300, ptr noundef %3302, i32 noundef %3303) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3305:                                             ; preds = %3280
  %3306 = add nsw i32 %3254, 3
  store i32 %3306, ptr @test_count, align 4, !tbaa !5
  %3307 = load i32, ptr @expected_handler_called, align 4, !tbaa !5
  %.not528 = icmp eq i32 %3307, 0
  br i1 %.not528, label %3330, label %3308

3308:                                             ; preds = %3305
  %3309 = load i32, ptr %2537, align 4, !tbaa !5
  %3310 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3311 = call i32 @s2n_print_stacktrace(ptr noundef %3310) #12
  %3312 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3313 = trunc nuw i8 %3312 to i1
  br i1 %3313, label %3314, label %3318

3314:                                             ; preds = %3308
  %3315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3316 = call i32 @fileno(ptr noundef %3315) #12
  %3317 = call i32 @isatty(i32 noundef %3316) #12
  %.not549 = icmp eq i32 %3317, 0
  br i1 %.not549, label %3318, label %3319

3318:                                             ; preds = %3314, %3308
  br label %3319

3319:                                             ; preds = %3314, %3318
  %.str.25.sink1855 = phi ptr [ @.str.25, %3318 ], [ @.str.22, %3314 ]
  store i32 %3309, ptr %2537, align 4, !tbaa !5
  %3320 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3321 = load i32, ptr @test_count, align 4, !tbaa !5
  %3322 = load i32, ptr %2483, align 4, !tbaa !5
  %3323 = call ptr @s2n_strerror(i32 noundef %3322, ptr noundef nonnull @.str.24) #12
  %3324 = load i32, ptr %2483, align 4, !tbaa !5
  %3325 = call ptr @s2n_strerror_debug(i32 noundef %3324, ptr noundef nonnull @.str.24) #12
  %3326 = load i32, ptr %2537, align 4, !tbaa !5
  %3327 = call ptr @strerror(i32 noundef %3326) #12
  %3328 = load i32, ptr %2537, align 4, !tbaa !5
  %3329 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3320, ptr noundef nonnull %.str.25.sink1855, i32 noundef %3321, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.21, i32 noundef 415, ptr noundef %3323, ptr noundef %3325, ptr noundef %3327, i32 noundef %3328) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3330:                                             ; preds = %3305
  %3331 = add nsw i32 %3254, 4
  store i32 %3331, ptr @test_count, align 4, !tbaa !5
  %3332 = call i32 @s2n_stuffer_free(ptr noundef nonnull %10) #12
  %3333 = icmp eq i32 %3332, -1
  br i1 %3333, label %3334, label %3356

3334:                                             ; preds = %3330
  %3335 = load i32, ptr %2537, align 4, !tbaa !5
  %3336 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3337 = call i32 @s2n_print_stacktrace(ptr noundef %3336) #12
  %3338 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3339 = trunc nuw i8 %3338 to i1
  br i1 %3339, label %3340, label %3344

3340:                                             ; preds = %3334
  %3341 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3342 = call i32 @fileno(ptr noundef %3341) #12
  %3343 = call i32 @isatty(i32 noundef %3342) #12
  %.not548 = icmp eq i32 %3343, 0
  br i1 %.not548, label %3344, label %3345

3344:                                             ; preds = %3340, %3334
  br label %3345

3345:                                             ; preds = %3340, %3344
  %.str.25.sink1864 = phi ptr [ @.str.25, %3344 ], [ @.str.22, %3340 ]
  store i32 %3335, ptr %2537, align 4, !tbaa !5
  %3346 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3347 = load i32, ptr @test_count, align 4, !tbaa !5
  %3348 = load i32, ptr %2483, align 4, !tbaa !5
  %3349 = call ptr @s2n_strerror(i32 noundef %3348, ptr noundef nonnull @.str.24) #12
  %3350 = load i32, ptr %2483, align 4, !tbaa !5
  %3351 = call ptr @s2n_strerror_debug(i32 noundef %3350, ptr noundef nonnull @.str.24) #12
  %3352 = load i32, ptr %2537, align 4, !tbaa !5
  %3353 = call ptr @strerror(i32 noundef %3352) #12
  %3354 = load i32, ptr %2537, align 4, !tbaa !5
  %3355 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3346, ptr noundef nonnull %.str.25.sink1864, i32 noundef %3347, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.21, i32 noundef 417, ptr noundef %3349, ptr noundef %3351, ptr noundef %3353, i32 noundef %3354) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3356:                                             ; preds = %3330
  %3357 = load i32, ptr @test_count, align 4, !tbaa !5
  %3358 = add nsw i32 %3357, 1
  store i32 %3358, ptr @test_count, align 4, !tbaa !5
  %3359 = call i32 @s2n_connection_free(ptr noundef nonnull %3020) #12
  %3360 = icmp eq i32 %3359, -1
  br i1 %3360, label %3361, label %3383

3361:                                             ; preds = %3356
  %3362 = load i32, ptr %2537, align 4, !tbaa !5
  %3363 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3364 = call i32 @s2n_print_stacktrace(ptr noundef %3363) #12
  %3365 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3366 = trunc nuw i8 %3365 to i1
  br i1 %3366, label %3367, label %3371

3367:                                             ; preds = %3361
  %3368 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3369 = call i32 @fileno(ptr noundef %3368) #12
  %3370 = call i32 @isatty(i32 noundef %3369) #12
  %.not547 = icmp eq i32 %3370, 0
  br i1 %.not547, label %3371, label %3372

3371:                                             ; preds = %3367, %3361
  br label %3372

3372:                                             ; preds = %3367, %3371
  %.str.25.sink1873 = phi ptr [ @.str.25, %3371 ], [ @.str.22, %3367 ]
  store i32 %3362, ptr %2537, align 4, !tbaa !5
  %3373 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3374 = load i32, ptr @test_count, align 4, !tbaa !5
  %3375 = load i32, ptr %2483, align 4, !tbaa !5
  %3376 = call ptr @s2n_strerror(i32 noundef %3375, ptr noundef nonnull @.str.24) #12
  %3377 = load i32, ptr %2483, align 4, !tbaa !5
  %3378 = call ptr @s2n_strerror_debug(i32 noundef %3377, ptr noundef nonnull @.str.24) #12
  %3379 = load i32, ptr %2537, align 4, !tbaa !5
  %3380 = call ptr @strerror(i32 noundef %3379) #12
  %3381 = load i32, ptr %2537, align 4, !tbaa !5
  %3382 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3373, ptr noundef nonnull %.str.25.sink1873, i32 noundef %3374, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.21, i32 noundef 418, ptr noundef %3376, ptr noundef %3378, ptr noundef %3380, i32 noundef %3381) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3383:                                             ; preds = %3356
  store i8 %3019, ptr getelementptr inbounds (i8, ptr @state_machine, i64 337), align 1, !tbaa !59
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %10) #12
  %3384 = load ptr, ptr @tls12_handshake_type_names, align 16, !tbaa !9
  %3385 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %3384) #16
  %3386 = load ptr, ptr getelementptr inbounds (i8, ptr @tls12_handshake_type_names, i64 8), align 8, !tbaa !9
  %3387 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %3386) #16
  %3388 = add i64 %3387, %3385
  %3389 = load ptr, ptr getelementptr inbounds (i8, ptr @tls12_handshake_type_names, i64 16), align 16, !tbaa !9
  %3390 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %3389) #16
  %3391 = add i64 %3390, %3388
  %3392 = load ptr, ptr getelementptr inbounds (i8, ptr @tls12_handshake_type_names, i64 24), align 8, !tbaa !9
  %3393 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %3392) #16
  %3394 = add i64 %3393, %3391
  %3395 = load ptr, ptr getelementptr inbounds (i8, ptr @tls12_handshake_type_names, i64 32), align 16, !tbaa !9
  %3396 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %3395) #16
  %3397 = add i64 %3396, %3394
  %3398 = load ptr, ptr getelementptr inbounds (i8, ptr @tls12_handshake_type_names, i64 40), align 8, !tbaa !9
  %3399 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %3398) #16
  %3400 = add i64 %3399, %3397
  %3401 = load ptr, ptr getelementptr inbounds (i8, ptr @tls12_handshake_type_names, i64 48), align 16, !tbaa !9
  %3402 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %3401) #16
  %3403 = add i64 %3402, %3400
  %3404 = load ptr, ptr getelementptr inbounds (i8, ptr @tls12_handshake_type_names, i64 56), align 8, !tbaa !9
  %3405 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %3404) #16
  %3406 = add i64 %3405, %3403
  %3407 = icmp ugt i64 %3406, 142
  br i1 %3407, label %3408, label %3432

3408:                                             ; preds = %3383
  %3409 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3410 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3409, ptr noundef nonnull @.str.62, i64 noundef %3406) #14
  %3411 = load i32, ptr %2537, align 4, !tbaa !5
  %3412 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3413 = call i32 @s2n_print_stacktrace(ptr noundef %3412) #12
  %3414 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3415 = trunc nuw i8 %3414 to i1
  br i1 %3415, label %3416, label %3420

3416:                                             ; preds = %3408
  %3417 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3418 = call i32 @fileno(ptr noundef %3417) #12
  %3419 = call i32 @isatty(i32 noundef %3418) #12
  %.not546 = icmp eq i32 %3419, 0
  br i1 %.not546, label %3420, label %3421

3420:                                             ; preds = %3416, %3408
  br label %3421

3421:                                             ; preds = %3416, %3420
  %.str.25.sink1882 = phi ptr [ @.str.25, %3420 ], [ @.str.22, %3416 ]
  store i32 %3411, ptr %2537, align 4, !tbaa !5
  %3422 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3423 = load i32, ptr @test_count, align 4, !tbaa !5
  %3424 = load i32, ptr %2483, align 4, !tbaa !5
  %3425 = call ptr @s2n_strerror(i32 noundef %3424, ptr noundef nonnull @.str.24) #12
  %3426 = load i32, ptr %2483, align 4, !tbaa !5
  %3427 = call ptr @s2n_strerror_debug(i32 noundef %3426, ptr noundef nonnull @.str.24) #12
  %3428 = load i32, ptr %2537, align 4, !tbaa !5
  %3429 = call ptr @strerror(i32 noundef %3428) #12
  %3430 = load i32, ptr %2537, align 4, !tbaa !5
  %3431 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3422, ptr noundef nonnull %.str.25.sink1882, i32 noundef %3423, ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.21, i32 noundef 432, ptr noundef %3425, ptr noundef %3427, ptr noundef %3429, i32 noundef %3430) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3432:                                             ; preds = %3383
  %3433 = call ptr @s2n_connection_new(i32 noundef 0) #12
  %3434 = getelementptr inbounds i8, ptr %3433, i64 220
  store i8 33, ptr %3434, align 4, !tbaa !19
  %3435 = getelementptr inbounds i8, ptr %3433, i64 2172
  store i32 0, ptr %3435, align 4, !tbaa !46
  %3436 = load i32, ptr @test_count, align 4, !tbaa !5
  %3437 = add nsw i32 %3436, 1
  store i32 %3437, ptr @test_count, align 4, !tbaa !5
  %3438 = call ptr @s2n_connection_get_handshake_type_name(ptr noundef %3433)
  %3439 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) @.str.11, ptr noundef nonnull dereferenceable(1) %3438) #16
  %3440 = icmp eq i32 %3439, 0
  br i1 %3440, label %3463, label %3441

3441:                                             ; preds = %3432
  %3442 = load i32, ptr %2537, align 4, !tbaa !5
  %3443 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3444 = call i32 @s2n_print_stacktrace(ptr noundef %3443) #12
  %3445 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3446 = trunc nuw i8 %3445 to i1
  br i1 %3446, label %3447, label %3451

3447:                                             ; preds = %3441
  %3448 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3449 = call i32 @fileno(ptr noundef %3448) #12
  %3450 = call i32 @isatty(i32 noundef %3449) #12
  %.not529 = icmp eq i32 %3450, 0
  br i1 %.not529, label %3451, label %3452

3451:                                             ; preds = %3447, %3441
  br label %3452

3452:                                             ; preds = %3447, %3451
  %.str.25.sink1891 = phi ptr [ @.str.25, %3451 ], [ @.str.22, %3447 ]
  store i32 %3442, ptr %2537, align 4, !tbaa !5
  %3453 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3454 = load i32, ptr @test_count, align 4, !tbaa !5
  %3455 = load i32, ptr %2483, align 4, !tbaa !5
  %3456 = call ptr @s2n_strerror(i32 noundef %3455, ptr noundef nonnull @.str.24) #12
  %3457 = load i32, ptr %2483, align 4, !tbaa !5
  %3458 = call ptr @s2n_strerror_debug(i32 noundef %3457, ptr noundef nonnull @.str.24) #12
  %3459 = load i32, ptr %2537, align 4, !tbaa !5
  %3460 = call ptr @strerror(i32 noundef %3459) #12
  %3461 = load i32, ptr %2537, align 4, !tbaa !5
  %3462 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3453, ptr noundef nonnull %.str.25.sink1891, i32 noundef %3454, ptr noundef nonnull @.str.64, ptr noundef nonnull @.str.21, i32 noundef 442, ptr noundef %3456, ptr noundef %3458, ptr noundef %3460, i32 noundef %3461) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3463:                                             ; preds = %3432
  store i32 3, ptr %3435, align 4, !tbaa !46
  %3464 = load i32, ptr @test_count, align 4, !tbaa !5
  %3465 = add nsw i32 %3464, 1
  store i32 %3465, ptr @test_count, align 4, !tbaa !5
  %3466 = call ptr @s2n_connection_get_handshake_type_name(ptr noundef nonnull %3433)
  %3467 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) @.str.65, ptr noundef nonnull dereferenceable(1) %3466) #16
  %3468 = icmp eq i32 %3467, 0
  br i1 %3468, label %3491, label %3469

3469:                                             ; preds = %3463
  %3470 = load i32, ptr %2537, align 4, !tbaa !5
  %3471 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3472 = call i32 @s2n_print_stacktrace(ptr noundef %3471) #12
  %3473 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3474 = trunc nuw i8 %3473 to i1
  br i1 %3474, label %3475, label %3479

3475:                                             ; preds = %3469
  %3476 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3477 = call i32 @fileno(ptr noundef %3476) #12
  %3478 = call i32 @isatty(i32 noundef %3477) #12
  %.not530 = icmp eq i32 %3478, 0
  br i1 %.not530, label %3479, label %3480

3479:                                             ; preds = %3475, %3469
  br label %3480

3480:                                             ; preds = %3475, %3479
  %.str.25.sink1900 = phi ptr [ @.str.25, %3479 ], [ @.str.22, %3475 ]
  store i32 %3470, ptr %2537, align 4, !tbaa !5
  %3481 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3482 = load i32, ptr @test_count, align 4, !tbaa !5
  %3483 = load i32, ptr %2483, align 4, !tbaa !5
  %3484 = call ptr @s2n_strerror(i32 noundef %3483, ptr noundef nonnull @.str.24) #12
  %3485 = load i32, ptr %2483, align 4, !tbaa !5
  %3486 = call ptr @s2n_strerror_debug(i32 noundef %3485, ptr noundef nonnull @.str.24) #12
  %3487 = load i32, ptr %2537, align 4, !tbaa !5
  %3488 = call ptr @strerror(i32 noundef %3487) #12
  %3489 = load i32, ptr %2537, align 4, !tbaa !5
  %3490 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3481, ptr noundef nonnull %.str.25.sink1900, i32 noundef %3482, ptr noundef nonnull @.str.66, ptr noundef nonnull @.str.21, i32 noundef 445, ptr noundef %3484, ptr noundef %3486, ptr noundef %3488, i32 noundef %3489) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3491:                                             ; preds = %3463
  store i32 255, ptr %3435, align 4, !tbaa !46
  %3492 = load i32, ptr @test_count, align 4, !tbaa !5
  %3493 = add nsw i32 %3492, 1
  store i32 %3493, ptr @test_count, align 4, !tbaa !5
  %3494 = call ptr @s2n_connection_get_handshake_type_name(ptr noundef nonnull %3433)
  %3495 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) @.str.67, ptr noundef nonnull dereferenceable(1) %3494) #16
  %3496 = icmp eq i32 %3495, 0
  br i1 %3496, label %.lr.ph706.us.preheader, label %3514

.lr.ph706.us.preheader:                           ; preds = %3491
  %smax791 = call i32 @llvm.smax.i32(i32 %.1, i32 1)
  %wide.trip.count797 = zext nneg i32 %smax791 to i64
  br label %.lr.ph706.us

.lr.ph706.us:                                     ; preds = %.lr.ph706.us.preheader, %._crit_edge707.us
  %indvars.iv794 = phi i64 [ 0, %.lr.ph706.us.preheader ], [ %indvars.iv.next795, %._crit_edge707.us ]
  %3497 = getelementptr inbounds [256 x i16], ptr %3, i64 0, i64 %indvars.iv794
  %3498 = load i16, ptr %3497, align 2, !tbaa !15
  %3499 = zext i16 %3498 to i32
  store i32 %3499, ptr %3435, align 4, !tbaa !46
  %3500 = call ptr @s2n_connection_get_handshake_type_name(ptr noundef nonnull %3433)
  br label %3501

3501:                                             ; preds = %.lr.ph706.us, %3513
  %indvars.iv788 = phi i64 [ 0, %.lr.ph706.us ], [ %indvars.iv.next789, %3513 ]
  %3502 = getelementptr inbounds [256 x i16], ptr %3, i64 0, i64 %indvars.iv788
  %3503 = load i16, ptr %3502, align 2, !tbaa !15
  %3504 = zext i16 %3503 to i32
  store i32 %3504, ptr %3435, align 4, !tbaa !46
  %3505 = icmp eq i64 %indvars.iv794, %indvars.iv788
  %3506 = load i32, ptr @test_count, align 4, !tbaa !5
  %3507 = add nsw i32 %3506, 1
  store i32 %3507, ptr @test_count, align 4, !tbaa !5
  %3508 = call ptr @s2n_connection_get_handshake_type_name(ptr noundef nonnull %3433)
  %3509 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %3500, ptr noundef nonnull dereferenceable(1) %3508) #16
  %3510 = icmp eq i32 %3509, 0
  br i1 %3505, label %3512, label %3511

3511:                                             ; preds = %3501
  br i1 %3510, label %.split.us, label %3513

3512:                                             ; preds = %3501
  br i1 %3510, label %3513, label %.split712.us

3513:                                             ; preds = %3512, %3511
  %indvars.iv.next789 = add nuw nsw i64 %indvars.iv788, 1
  %exitcond793.not = icmp eq i64 %indvars.iv.next789, %wide.trip.count797
  br i1 %exitcond793.not, label %._crit_edge707.us, label %3501, !llvm.loop !61

._crit_edge707.us:                                ; preds = %3513
  %indvars.iv.next795 = add nuw nsw i64 %indvars.iv794, 1
  %exitcond798.not = icmp eq i64 %indvars.iv.next795, %wide.trip.count797
  br i1 %exitcond798.not, label %._crit_edge710, label %.lr.ph706.us, !llvm.loop !62

3514:                                             ; preds = %3491
  %3515 = load i32, ptr %2537, align 4, !tbaa !5
  %3516 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3517 = call i32 @s2n_print_stacktrace(ptr noundef %3516) #12
  %3518 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3519 = trunc nuw i8 %3518 to i1
  br i1 %3519, label %3520, label %3524

3520:                                             ; preds = %3514
  %3521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3522 = call i32 @fileno(ptr noundef %3521) #12
  %3523 = call i32 @isatty(i32 noundef %3522) #12
  %.not531 = icmp eq i32 %3523, 0
  br i1 %.not531, label %3524, label %3525

3524:                                             ; preds = %3520, %3514
  br label %3525

3525:                                             ; preds = %3520, %3524
  %.str.25.sink1909 = phi ptr [ @.str.25, %3524 ], [ @.str.22, %3520 ]
  store i32 %3515, ptr %2537, align 4, !tbaa !5
  %3526 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3527 = load i32, ptr @test_count, align 4, !tbaa !5
  %3528 = load i32, ptr %2483, align 4, !tbaa !5
  %3529 = call ptr @s2n_strerror(i32 noundef %3528, ptr noundef nonnull @.str.24) #12
  %3530 = load i32, ptr %2483, align 4, !tbaa !5
  %3531 = call ptr @s2n_strerror_debug(i32 noundef %3530, ptr noundef nonnull @.str.24) #12
  %3532 = load i32, ptr %2537, align 4, !tbaa !5
  %3533 = call ptr @strerror(i32 noundef %3532) #12
  %3534 = load i32, ptr %2537, align 4, !tbaa !5
  %3535 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3526, ptr noundef nonnull %.str.25.sink1909, i32 noundef %3527, ptr noundef nonnull @.str.68, ptr noundef nonnull @.str.21, i32 noundef 450, ptr noundef %3529, ptr noundef %3531, ptr noundef %3533, i32 noundef %3534) #14
  call void @exit(i32 noundef 1) #15
  unreachable

._crit_edge710:                                   ; preds = %._crit_edge707.us
  %3536 = load i32, ptr @test_count, align 4, !tbaa !5
  %3537 = add nsw i32 %3536, 1
  store i32 %3537, ptr @test_count, align 4, !tbaa !5
  %3538 = call i32 @s2n_connection_free(ptr noundef nonnull %3433) #12
  %3539 = icmp eq i32 %3538, -1
  br i1 %3539, label %3582, label %3604

.split712.us:                                     ; preds = %3512
  %3540 = load i32, ptr %2537, align 4, !tbaa !5
  %3541 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3542 = call i32 @s2n_print_stacktrace(ptr noundef %3541) #12
  %3543 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3544 = trunc nuw i8 %3543 to i1
  br i1 %3544, label %3545, label %3549

3545:                                             ; preds = %.split712.us
  %3546 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3547 = call i32 @fileno(ptr noundef %3546) #12
  %3548 = call i32 @isatty(i32 noundef %3547) #12
  %.not545 = icmp eq i32 %3548, 0
  br i1 %.not545, label %3549, label %3550

3549:                                             ; preds = %3545, %.split712.us
  br label %3550

3550:                                             ; preds = %3545, %3549
  %.str.25.sink1918 = phi ptr [ @.str.25, %3549 ], [ @.str.22, %3545 ]
  store i32 %3540, ptr %2537, align 4, !tbaa !5
  %3551 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3552 = load i32, ptr @test_count, align 4, !tbaa !5
  %3553 = load i32, ptr %2483, align 4, !tbaa !5
  %3554 = call ptr @s2n_strerror(i32 noundef %3553, ptr noundef nonnull @.str.24) #12
  %3555 = load i32, ptr %2483, align 4, !tbaa !5
  %3556 = call ptr @s2n_strerror_debug(i32 noundef %3555, ptr noundef nonnull @.str.24) #12
  %3557 = load i32, ptr %2537, align 4, !tbaa !5
  %3558 = call ptr @strerror(i32 noundef %3557) #12
  %3559 = load i32, ptr %2537, align 4, !tbaa !5
  %3560 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3551, ptr noundef nonnull %.str.25.sink1918, i32 noundef %3552, ptr noundef nonnull @.str.69, ptr noundef nonnull @.str.21, i32 noundef 462, ptr noundef %3554, ptr noundef %3556, ptr noundef %3558, i32 noundef %3559) #14
  call void @exit(i32 noundef 1) #15
  unreachable

.split.us:                                        ; preds = %3511
  %3561 = load i32, ptr %2537, align 4, !tbaa !5
  %3562 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3563 = call i32 @s2n_print_stacktrace(ptr noundef %3562) #12
  %3564 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3565 = trunc nuw i8 %3564 to i1
  br i1 %3565, label %3566, label %3570

3566:                                             ; preds = %.split.us
  %3567 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3568 = call i32 @fileno(ptr noundef %3567) #12
  %3569 = call i32 @isatty(i32 noundef %3568) #12
  %.not544 = icmp eq i32 %3569, 0
  br i1 %.not544, label %3570, label %3571

3570:                                             ; preds = %3566, %.split.us
  br label %3571

3571:                                             ; preds = %3566, %3570
  %.str.25.sink1927 = phi ptr [ @.str.25, %3570 ], [ @.str.22, %3566 ]
  store i32 %3561, ptr %2537, align 4, !tbaa !5
  %3572 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3573 = load i32, ptr @test_count, align 4, !tbaa !5
  %3574 = load i32, ptr %2483, align 4, !tbaa !5
  %3575 = call ptr @s2n_strerror(i32 noundef %3574, ptr noundef nonnull @.str.24) #12
  %3576 = load i32, ptr %2483, align 4, !tbaa !5
  %3577 = call ptr @s2n_strerror_debug(i32 noundef %3576, ptr noundef nonnull @.str.24) #12
  %3578 = load i32, ptr %2537, align 4, !tbaa !5
  %3579 = call ptr @strerror(i32 noundef %3578) #12
  %3580 = load i32, ptr %2537, align 4, !tbaa !5
  %3581 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3572, ptr noundef nonnull %.str.25.sink1927, i32 noundef %3573, ptr noundef nonnull @.str.70, ptr noundef nonnull @.str.21, i32 noundef 464, ptr noundef %3575, ptr noundef %3577, ptr noundef %3579, i32 noundef %3580) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3582:                                             ; preds = %._crit_edge710
  %3583 = load i32, ptr %2537, align 4, !tbaa !5
  %3584 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3585 = call i32 @s2n_print_stacktrace(ptr noundef %3584) #12
  %3586 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3587 = trunc nuw i8 %3586 to i1
  br i1 %3587, label %3588, label %3592

3588:                                             ; preds = %3582
  %3589 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3590 = call i32 @fileno(ptr noundef %3589) #12
  %3591 = call i32 @isatty(i32 noundef %3590) #12
  %.not543 = icmp eq i32 %3591, 0
  br i1 %.not543, label %3592, label %3593

3592:                                             ; preds = %3588, %3582
  br label %3593

3593:                                             ; preds = %3588, %3592
  %.str.25.sink1936 = phi ptr [ @.str.25, %3592 ], [ @.str.22, %3588 ]
  store i32 %3583, ptr %2537, align 4, !tbaa !5
  %3594 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3595 = load i32, ptr @test_count, align 4, !tbaa !5
  %3596 = load i32, ptr %2483, align 4, !tbaa !5
  %3597 = call ptr @s2n_strerror(i32 noundef %3596, ptr noundef nonnull @.str.24) #12
  %3598 = load i32, ptr %2483, align 4, !tbaa !5
  %3599 = call ptr @s2n_strerror_debug(i32 noundef %3598, ptr noundef nonnull @.str.24) #12
  %3600 = load i32, ptr %2537, align 4, !tbaa !5
  %3601 = call ptr @strerror(i32 noundef %3600) #12
  %3602 = load i32, ptr %2537, align 4, !tbaa !5
  %3603 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3594, ptr noundef nonnull %.str.25.sink1936, i32 noundef %3595, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.21, i32 noundef 469, ptr noundef %3597, ptr noundef %3599, ptr noundef %3601, i32 noundef %3602) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3604:                                             ; preds = %._crit_edge710
  %3605 = call ptr @s2n_connection_new(i32 noundef 0) #12
  %3606 = getelementptr inbounds i8, ptr %3605, i64 2172
  store i32 247, ptr %3606, align 4, !tbaa !46
  %3607 = getelementptr inbounds i8, ptr %3605, i64 2176
  store i32 0, ptr %3607, align 8, !tbaa !47
  %3608 = load i32, ptr @test_count, align 4, !tbaa !5
  %3609 = add nsw i32 %3608, 1
  store i32 %3609, ptr @test_count, align 4, !tbaa !5
  %3610 = load ptr, ptr @__const.main.expected, align 16, !tbaa !9
  %3611 = call ptr @s2n_connection_get_last_message_name(ptr noundef nonnull %3605)
  %3612 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %3610, ptr noundef nonnull dereferenceable(1) %3611) #16
  %3613 = icmp eq i32 %3612, 0
  br i1 %3613, label %3614, label %3731

3614:                                             ; preds = %3604
  store i32 1, ptr %3607, align 8, !tbaa !47
  %3615 = load i32, ptr @test_count, align 4, !tbaa !5
  %3616 = add nsw i32 %3615, 1
  store i32 %3616, ptr @test_count, align 4, !tbaa !5
  %3617 = load ptr, ptr getelementptr inbounds (i8, ptr @__const.main.expected, i64 8), align 8, !tbaa !9
  %3618 = call ptr @s2n_connection_get_last_message_name(ptr noundef nonnull %3605)
  %3619 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %3617, ptr noundef nonnull dereferenceable(1) %3618) #16
  %3620 = icmp eq i32 %3619, 0
  br i1 %3620, label %3621, label %3731

3621:                                             ; preds = %3614
  store i32 2, ptr %3607, align 8, !tbaa !47
  %3622 = load i32, ptr @test_count, align 4, !tbaa !5
  %3623 = add nsw i32 %3622, 1
  store i32 %3623, ptr @test_count, align 4, !tbaa !5
  %3624 = load ptr, ptr getelementptr inbounds (i8, ptr @__const.main.expected, i64 16), align 16, !tbaa !9
  %3625 = call ptr @s2n_connection_get_last_message_name(ptr noundef nonnull %3605)
  %3626 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %3624, ptr noundef nonnull dereferenceable(1) %3625) #16
  %3627 = icmp eq i32 %3626, 0
  br i1 %3627, label %3628, label %3731

3628:                                             ; preds = %3621
  store i32 3, ptr %3607, align 8, !tbaa !47
  %3629 = load i32, ptr @test_count, align 4, !tbaa !5
  %3630 = add nsw i32 %3629, 1
  store i32 %3630, ptr @test_count, align 4, !tbaa !5
  %3631 = load ptr, ptr getelementptr inbounds (i8, ptr @__const.main.expected, i64 24), align 8, !tbaa !9
  %3632 = call ptr @s2n_connection_get_last_message_name(ptr noundef nonnull %3605)
  %3633 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %3631, ptr noundef nonnull dereferenceable(1) %3632) #16
  %3634 = icmp eq i32 %3633, 0
  br i1 %3634, label %3635, label %3731

3635:                                             ; preds = %3628
  store i32 4, ptr %3607, align 8, !tbaa !47
  %3636 = load i32, ptr @test_count, align 4, !tbaa !5
  %3637 = add nsw i32 %3636, 1
  store i32 %3637, ptr @test_count, align 4, !tbaa !5
  %3638 = load ptr, ptr getelementptr inbounds (i8, ptr @__const.main.expected, i64 32), align 16, !tbaa !9
  %3639 = call ptr @s2n_connection_get_last_message_name(ptr noundef nonnull %3605)
  %3640 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %3638, ptr noundef nonnull dereferenceable(1) %3639) #16
  %3641 = icmp eq i32 %3640, 0
  br i1 %3641, label %3642, label %3731

3642:                                             ; preds = %3635
  store i32 5, ptr %3607, align 8, !tbaa !47
  %3643 = load i32, ptr @test_count, align 4, !tbaa !5
  %3644 = add nsw i32 %3643, 1
  store i32 %3644, ptr @test_count, align 4, !tbaa !5
  %3645 = load ptr, ptr getelementptr inbounds (i8, ptr @__const.main.expected, i64 40), align 8, !tbaa !9
  %3646 = call ptr @s2n_connection_get_last_message_name(ptr noundef nonnull %3605)
  %3647 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %3645, ptr noundef nonnull dereferenceable(1) %3646) #16
  %3648 = icmp eq i32 %3647, 0
  br i1 %3648, label %3649, label %3731

3649:                                             ; preds = %3642
  store i32 6, ptr %3607, align 8, !tbaa !47
  %3650 = load i32, ptr @test_count, align 4, !tbaa !5
  %3651 = add nsw i32 %3650, 1
  store i32 %3651, ptr @test_count, align 4, !tbaa !5
  %3652 = load ptr, ptr getelementptr inbounds (i8, ptr @__const.main.expected, i64 48), align 16, !tbaa !9
  %3653 = call ptr @s2n_connection_get_last_message_name(ptr noundef nonnull %3605)
  %3654 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %3652, ptr noundef nonnull dereferenceable(1) %3653) #16
  %3655 = icmp eq i32 %3654, 0
  br i1 %3655, label %3656, label %3731

3656:                                             ; preds = %3649
  store i32 7, ptr %3607, align 8, !tbaa !47
  %3657 = load i32, ptr @test_count, align 4, !tbaa !5
  %3658 = add nsw i32 %3657, 1
  store i32 %3658, ptr @test_count, align 4, !tbaa !5
  %3659 = load ptr, ptr getelementptr inbounds (i8, ptr @__const.main.expected, i64 56), align 8, !tbaa !9
  %3660 = call ptr @s2n_connection_get_last_message_name(ptr noundef nonnull %3605)
  %3661 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %3659, ptr noundef nonnull dereferenceable(1) %3660) #16
  %3662 = icmp eq i32 %3661, 0
  br i1 %3662, label %3663, label %3731

3663:                                             ; preds = %3656
  store i32 8, ptr %3607, align 8, !tbaa !47
  %3664 = load i32, ptr @test_count, align 4, !tbaa !5
  %3665 = add nsw i32 %3664, 1
  store i32 %3665, ptr @test_count, align 4, !tbaa !5
  %3666 = load ptr, ptr getelementptr inbounds (i8, ptr @__const.main.expected, i64 64), align 16, !tbaa !9
  %3667 = call ptr @s2n_connection_get_last_message_name(ptr noundef nonnull %3605)
  %3668 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %3666, ptr noundef nonnull dereferenceable(1) %3667) #16
  %3669 = icmp eq i32 %3668, 0
  br i1 %3669, label %3670, label %3731

3670:                                             ; preds = %3663
  store i32 9, ptr %3607, align 8, !tbaa !47
  %3671 = load i32, ptr @test_count, align 4, !tbaa !5
  %3672 = add nsw i32 %3671, 1
  store i32 %3672, ptr @test_count, align 4, !tbaa !5
  %3673 = load ptr, ptr getelementptr inbounds (i8, ptr @__const.main.expected, i64 72), align 8, !tbaa !9
  %3674 = call ptr @s2n_connection_get_last_message_name(ptr noundef nonnull %3605)
  %3675 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %3673, ptr noundef nonnull dereferenceable(1) %3674) #16
  %3676 = icmp eq i32 %3675, 0
  br i1 %3676, label %3677, label %3731

3677:                                             ; preds = %3670
  store i32 10, ptr %3607, align 8, !tbaa !47
  %3678 = load i32, ptr @test_count, align 4, !tbaa !5
  %3679 = add nsw i32 %3678, 1
  store i32 %3679, ptr @test_count, align 4, !tbaa !5
  %3680 = load ptr, ptr getelementptr inbounds (i8, ptr @__const.main.expected, i64 80), align 16, !tbaa !9
  %3681 = call ptr @s2n_connection_get_last_message_name(ptr noundef nonnull %3605)
  %3682 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %3680, ptr noundef nonnull dereferenceable(1) %3681) #16
  %3683 = icmp eq i32 %3682, 0
  br i1 %3683, label %3684, label %3731

3684:                                             ; preds = %3677
  store i32 11, ptr %3607, align 8, !tbaa !47
  %3685 = load i32, ptr @test_count, align 4, !tbaa !5
  %3686 = add nsw i32 %3685, 1
  store i32 %3686, ptr @test_count, align 4, !tbaa !5
  %3687 = load ptr, ptr getelementptr inbounds (i8, ptr @__const.main.expected, i64 88), align 8, !tbaa !9
  %3688 = call ptr @s2n_connection_get_last_message_name(ptr noundef nonnull %3605)
  %3689 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %3687, ptr noundef nonnull dereferenceable(1) %3688) #16
  %3690 = icmp eq i32 %3689, 0
  br i1 %3690, label %3691, label %3731

3691:                                             ; preds = %3684
  store i32 12, ptr %3607, align 8, !tbaa !47
  %3692 = load i32, ptr @test_count, align 4, !tbaa !5
  %3693 = add nsw i32 %3692, 1
  store i32 %3693, ptr @test_count, align 4, !tbaa !5
  %3694 = load ptr, ptr getelementptr inbounds (i8, ptr @__const.main.expected, i64 96), align 16, !tbaa !9
  %3695 = call ptr @s2n_connection_get_last_message_name(ptr noundef nonnull %3605)
  %3696 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %3694, ptr noundef nonnull dereferenceable(1) %3695) #16
  %3697 = icmp eq i32 %3696, 0
  br i1 %3697, label %3698, label %3731

3698:                                             ; preds = %3691
  store i32 13, ptr %3607, align 8, !tbaa !47
  %3699 = load i32, ptr @test_count, align 4, !tbaa !5
  %3700 = add nsw i32 %3699, 1
  store i32 %3700, ptr @test_count, align 4, !tbaa !5
  %3701 = load ptr, ptr getelementptr inbounds (i8, ptr @__const.main.expected, i64 104), align 8, !tbaa !9
  %3702 = call ptr @s2n_connection_get_last_message_name(ptr noundef nonnull %3605)
  %3703 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %3701, ptr noundef nonnull dereferenceable(1) %3702) #16
  %3704 = icmp eq i32 %3703, 0
  br i1 %3704, label %3705, label %3731

3705:                                             ; preds = %3698
  store i32 14, ptr %3607, align 8, !tbaa !47
  %3706 = load i32, ptr @test_count, align 4, !tbaa !5
  %3707 = add nsw i32 %3706, 1
  store i32 %3707, ptr @test_count, align 4, !tbaa !5
  %3708 = load ptr, ptr getelementptr inbounds (i8, ptr @__const.main.expected, i64 112), align 16, !tbaa !9
  %3709 = call ptr @s2n_connection_get_last_message_name(ptr noundef nonnull %3605)
  %3710 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %3708, ptr noundef nonnull dereferenceable(1) %3709) #16
  %3711 = icmp eq i32 %3710, 0
  br i1 %3711, label %3712, label %3731

3712:                                             ; preds = %3705
  store i32 15, ptr %3607, align 8, !tbaa !47
  %3713 = load i32, ptr @test_count, align 4, !tbaa !5
  %3714 = add nsw i32 %3713, 1
  store i32 %3714, ptr @test_count, align 4, !tbaa !5
  %3715 = load ptr, ptr getelementptr inbounds (i8, ptr @__const.main.expected, i64 120), align 8, !tbaa !9
  %3716 = call ptr @s2n_connection_get_last_message_name(ptr noundef nonnull %3605)
  %3717 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %3715, ptr noundef nonnull dereferenceable(1) %3716) #16
  %3718 = icmp eq i32 %3717, 0
  br i1 %3718, label %3719, label %3731

3719:                                             ; preds = %3712
  store i32 16, ptr %3607, align 8, !tbaa !47
  %3720 = load i32, ptr @test_count, align 4, !tbaa !5
  %3721 = add nsw i32 %3720, 1
  store i32 %3721, ptr @test_count, align 4, !tbaa !5
  %3722 = load ptr, ptr getelementptr inbounds (i8, ptr @__const.main.expected, i64 128), align 16, !tbaa !9
  %3723 = call ptr @s2n_connection_get_last_message_name(ptr noundef nonnull %3605)
  %3724 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %3722, ptr noundef nonnull dereferenceable(1) %3723) #16
  %3725 = icmp eq i32 %3724, 0
  br i1 %3725, label %3726, label %3731

3726:                                             ; preds = %3719
  %3727 = load i32, ptr @test_count, align 4, !tbaa !5
  %3728 = add nsw i32 %3727, 1
  store i32 %3728, ptr @test_count, align 4, !tbaa !5
  %3729 = call i32 @s2n_connection_free(ptr noundef nonnull %3605) #12
  %3730 = icmp eq i32 %3729, -1
  br i1 %3730, label %3753, label %.preheader

.preheader:                                       ; preds = %3726
  %test_count.promoted719 = load i32, ptr @test_count, align 4, !tbaa !5
  br label %3778

3731:                                             ; preds = %3719, %3712, %3705, %3698, %3691, %3684, %3677, %3670, %3663, %3656, %3649, %3642, %3635, %3628, %3621, %3614, %3604
  %3732 = load i32, ptr %2537, align 4, !tbaa !5
  %3733 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3734 = call i32 @s2n_print_stacktrace(ptr noundef %3733) #12
  %3735 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3736 = trunc nuw i8 %3735 to i1
  br i1 %3736, label %3737, label %3741

3737:                                             ; preds = %3731
  %3738 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3739 = call i32 @fileno(ptr noundef %3738) #12
  %3740 = call i32 @isatty(i32 noundef %3739) #12
  %.not542 = icmp eq i32 %3740, 0
  br i1 %.not542, label %3741, label %3742

3741:                                             ; preds = %3737, %3731
  br label %3742

3742:                                             ; preds = %3737, %3741
  %.str.25.sink1945 = phi ptr [ @.str.25, %3741 ], [ @.str.22, %3737 ]
  store i32 %3732, ptr %2537, align 4, !tbaa !5
  %3743 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3744 = load i32, ptr @test_count, align 4, !tbaa !5
  %3745 = load i32, ptr %2483, align 4, !tbaa !5
  %3746 = call ptr @s2n_strerror(i32 noundef %3745, ptr noundef nonnull @.str.24) #12
  %3747 = load i32, ptr %2483, align 4, !tbaa !5
  %3748 = call ptr @s2n_strerror_debug(i32 noundef %3747, ptr noundef nonnull @.str.24) #12
  %3749 = load i32, ptr %2537, align 4, !tbaa !5
  %3750 = call ptr @strerror(i32 noundef %3749) #12
  %3751 = load i32, ptr %2537, align 4, !tbaa !5
  %3752 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3743, ptr noundef nonnull %.str.25.sink1945, i32 noundef %3744, ptr noundef nonnull @.str.88, ptr noundef nonnull @.str.21, i32 noundef 487, ptr noundef %3746, ptr noundef %3748, ptr noundef %3750, i32 noundef %3751) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3753:                                             ; preds = %3726
  %3754 = load i32, ptr %2537, align 4, !tbaa !5
  %3755 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3756 = call i32 @s2n_print_stacktrace(ptr noundef %3755) #12
  %3757 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3758 = trunc nuw i8 %3757 to i1
  br i1 %3758, label %3759, label %3763

3759:                                             ; preds = %3753
  %3760 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3761 = call i32 @fileno(ptr noundef %3760) #12
  %3762 = call i32 @isatty(i32 noundef %3761) #12
  %.not541 = icmp eq i32 %3762, 0
  br i1 %.not541, label %3763, label %3764

3763:                                             ; preds = %3759, %3753
  br label %3764

3764:                                             ; preds = %3759, %3763
  %.str.25.sink1954 = phi ptr [ @.str.25, %3763 ], [ @.str.22, %3759 ]
  store i32 %3754, ptr %2537, align 4, !tbaa !5
  %3765 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3766 = load i32, ptr @test_count, align 4, !tbaa !5
  %3767 = load i32, ptr %2483, align 4, !tbaa !5
  %3768 = call ptr @s2n_strerror(i32 noundef %3767, ptr noundef nonnull @.str.24) #12
  %3769 = load i32, ptr %2483, align 4, !tbaa !5
  %3770 = call ptr @s2n_strerror_debug(i32 noundef %3769, ptr noundef nonnull @.str.24) #12
  %3771 = load i32, ptr %2537, align 4, !tbaa !5
  %3772 = call ptr @strerror(i32 noundef %3771) #12
  %3773 = load i32, ptr %2537, align 4, !tbaa !5
  %3774 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3765, ptr noundef nonnull %.str.25.sink1954, i32 noundef %3766, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.21, i32 noundef 490, ptr noundef %3768, ptr noundef %3770, ptr noundef %3772, i32 noundef %3773) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3775:                                             ; preds = %3853
  %3776 = call i32 @s2n_cleanup() #12
  %3777 = icmp eq i32 %3776, -1
  br i1 %3777, label %3855, label %3877

3778:                                             ; preds = %.preheader, %3853
  %.0481723 = phi i64 [ 0, %.preheader ], [ %3854, %3853 ]
  %.lcssa718721722 = phi i32 [ %test_count.promoted719, %.preheader ], [ %.lcssa718720, %3853 ]
  %3779 = getelementptr inbounds [256 x i16], ptr %3, i64 0, i64 %.0481723
  %3780 = load i16, ptr %3779, align 2, !tbaa !15
  %3781 = zext i16 %3780 to i32
  %3782 = zext i16 %3780 to i64
  %3783 = getelementptr inbounds [256 x [32 x i32]], ptr @handshakes, i64 0, i64 %3782
  %3784 = and i32 %3781, 129
  %or.cond = icmp eq i32 %3784, 1
  br i1 %or.cond, label %3785, label %3853

3785:                                             ; preds = %3778
  %3786 = or disjoint i32 %3781, 128
  %3787 = zext nneg i32 %3786 to i64
  %3788 = getelementptr inbounds [256 x [32 x i32]], ptr @handshakes, i64 0, i64 %3787
  br label %3789

3789:                                             ; preds = %3785, %3848
  %.0474715 = phi i64 [ 0, %3785 ], [ %3850, %3848 ]
  %.0476714 = phi i64 [ 0, %3785 ], [ %3849, %3848 ]
  %3790 = phi i32 [ %.lcssa718721722, %3785 ], [ %3822, %3848 ]
  %3791 = getelementptr inbounds i32, ptr %3783, i64 %.0476714
  %3792 = load i32, ptr %3791, align 4, !tbaa !5
  %3793 = icmp eq i32 %3792, 12
  br i1 %3793, label %3794, label %3817

3794:                                             ; preds = %3789
  %3795 = add nsw i32 %3790, 1
  store i32 %3795, ptr @test_count, align 4, !tbaa !5
  %3796 = load i32, ptr %2537, align 4, !tbaa !5
  %3797 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3798 = call i32 @s2n_print_stacktrace(ptr noundef %3797) #12
  %3799 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3800 = trunc nuw i8 %3799 to i1
  br i1 %3800, label %3801, label %3805

3801:                                             ; preds = %3794
  %3802 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3803 = call i32 @fileno(ptr noundef %3802) #12
  %3804 = call i32 @isatty(i32 noundef %3803) #12
  %.not540 = icmp eq i32 %3804, 0
  br i1 %.not540, label %3805, label %3806

3805:                                             ; preds = %3801, %3794
  br label %3806

3806:                                             ; preds = %3801, %3805
  %.str.25.sink1963 = phi ptr [ @.str.25, %3805 ], [ @.str.22, %3801 ]
  store i32 %3796, ptr %2537, align 4, !tbaa !5
  %3807 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3808 = load i32, ptr @test_count, align 4, !tbaa !5
  %3809 = load i32, ptr %2483, align 4, !tbaa !5
  %3810 = call ptr @s2n_strerror(i32 noundef %3809, ptr noundef nonnull @.str.24) #12
  %3811 = load i32, ptr %2483, align 4, !tbaa !5
  %3812 = call ptr @s2n_strerror_debug(i32 noundef %3811, ptr noundef nonnull @.str.24) #12
  %3813 = load i32, ptr %2537, align 4, !tbaa !5
  %3814 = call ptr @strerror(i32 noundef %3813) #12
  %3815 = load i32, ptr %2537, align 4, !tbaa !5
  %3816 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3807, ptr noundef nonnull %.str.25.sink1963, i32 noundef %3808, ptr noundef nonnull @.str.89, ptr noundef nonnull @.str.21, i32 noundef 510, ptr noundef %3810, ptr noundef %3812, ptr noundef %3814, i32 noundef %3815) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3817:                                             ; preds = %3789
  %3818 = getelementptr inbounds i32, ptr %3788, i64 %.0474715
  %3819 = load i32, ptr %3818, align 4, !tbaa !5
  %3820 = icmp eq i32 %3819, 12
  %3821 = zext i1 %3820 to i64
  %spec.select645 = add nuw nsw i64 %.0474715, %3821
  %3822 = add nsw i32 %3790, 2
  %3823 = getelementptr inbounds i32, ptr %3788, i64 %spec.select645
  %3824 = load i32, ptr %3823, align 4, !tbaa !5
  %3825 = icmp eq i32 %3792, %3824
  br i1 %3825, label %3848, label %3826

3826:                                             ; preds = %3817
  store i32 %3822, ptr @test_count, align 4, !tbaa !5
  %3827 = load i32, ptr %2537, align 4, !tbaa !5
  %3828 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3829 = call i32 @s2n_print_stacktrace(ptr noundef %3828) #12
  %3830 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3831 = trunc nuw i8 %3830 to i1
  br i1 %3831, label %3832, label %3836

3832:                                             ; preds = %3826
  %3833 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3834 = call i32 @fileno(ptr noundef %3833) #12
  %3835 = call i32 @isatty(i32 noundef %3834) #12
  %.not539 = icmp eq i32 %3835, 0
  br i1 %.not539, label %3836, label %3837

3836:                                             ; preds = %3832, %3826
  br label %3837

3837:                                             ; preds = %3832, %3836
  %.str.25.sink1972 = phi ptr [ @.str.25, %3836 ], [ @.str.22, %3832 ]
  store i32 %3827, ptr %2537, align 4, !tbaa !5
  %3838 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3839 = load i32, ptr @test_count, align 4, !tbaa !5
  %3840 = load i32, ptr %2483, align 4, !tbaa !5
  %3841 = call ptr @s2n_strerror(i32 noundef %3840, ptr noundef nonnull @.str.24) #12
  %3842 = load i32, ptr %2483, align 4, !tbaa !5
  %3843 = call ptr @s2n_strerror_debug(i32 noundef %3842, ptr noundef nonnull @.str.24) #12
  %3844 = load i32, ptr %2537, align 4, !tbaa !5
  %3845 = call ptr @strerror(i32 noundef %3844) #12
  %3846 = load i32, ptr %2537, align 4, !tbaa !5
  %3847 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3838, ptr noundef nonnull %.str.25.sink1972, i32 noundef %3839, ptr noundef nonnull @.str.90, ptr noundef nonnull @.str.21, i32 noundef 518, ptr noundef %3841, ptr noundef %3843, ptr noundef %3845, i32 noundef %3846) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3848:                                             ; preds = %3817
  %3849 = add nuw nsw i64 %.0476714, 1
  %3850 = add nuw nsw i64 %spec.select645, 1
  %3851 = or i64 %3850, %3849
  %3852 = icmp ult i64 %3851, 32
  br i1 %3852, label %3789, label %.loopexit, !llvm.loop !63

.loopexit:                                        ; preds = %3848
  store i32 %3822, ptr @test_count, align 4, !tbaa !5
  br label %3853

3853:                                             ; preds = %.loopexit, %3778
  %.lcssa718720 = phi i32 [ %3822, %.loopexit ], [ %.lcssa718721722, %3778 ]
  %3854 = add nuw nsw i64 %.0481723, 1
  %exitcond800.not = icmp eq i64 %3854, %umax
  br i1 %exitcond800.not, label %3775, label %3778, !llvm.loop !64

3855:                                             ; preds = %3775
  %3856 = load i32, ptr %2537, align 4, !tbaa !5
  %3857 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3858 = call i32 @s2n_print_stacktrace(ptr noundef %3857) #12
  %3859 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3860 = trunc nuw i8 %3859 to i1
  br i1 %3860, label %3861, label %3865

3861:                                             ; preds = %3855
  %3862 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3863 = call i32 @fileno(ptr noundef %3862) #12
  %3864 = call i32 @isatty(i32 noundef %3863) #12
  %.not536 = icmp eq i32 %3864, 0
  br i1 %.not536, label %3865, label %3866

3865:                                             ; preds = %3861, %3855
  br label %3866

3866:                                             ; preds = %3861, %3865
  %.str.25.sink1981 = phi ptr [ @.str.25, %3865 ], [ @.str.22, %3861 ]
  store i32 %3856, ptr %2537, align 4, !tbaa !5
  %3867 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3868 = load i32, ptr @test_count, align 4, !tbaa !5
  %3869 = load i32, ptr %2483, align 4, !tbaa !5
  %3870 = call ptr @s2n_strerror(i32 noundef %3869, ptr noundef nonnull @.str.24) #12
  %3871 = load i32, ptr %2483, align 4, !tbaa !5
  %3872 = call ptr @s2n_strerror_debug(i32 noundef %3871, ptr noundef nonnull @.str.24) #12
  %3873 = load i32, ptr %2537, align 4, !tbaa !5
  %3874 = call ptr @strerror(i32 noundef %3873) #12
  %3875 = load i32, ptr %2537, align 4, !tbaa !5
  %3876 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3867, ptr noundef nonnull %.str.25.sink1981, i32 noundef %3868, ptr noundef nonnull @.str.91, ptr noundef nonnull @.str.21, i32 noundef 523, ptr noundef %3870, ptr noundef %3872, ptr noundef %3874, i32 noundef %3875) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3877:                                             ; preds = %3775
  %3878 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #12
  %3879 = icmp eq i32 %3878, -1
  br i1 %3879, label %3880, label %3902

3880:                                             ; preds = %3877
  %3881 = load i32, ptr %2537, align 4, !tbaa !5
  %3882 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3883 = call i32 @s2n_print_stacktrace(ptr noundef %3882) #12
  %3884 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3885 = trunc nuw i8 %3884 to i1
  br i1 %3885, label %3886, label %3890

3886:                                             ; preds = %3880
  %3887 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3888 = call i32 @fileno(ptr noundef %3887) #12
  %3889 = call i32 @isatty(i32 noundef %3888) #12
  %.not535 = icmp eq i32 %3889, 0
  br i1 %.not535, label %3890, label %3891

3890:                                             ; preds = %3886, %3880
  br label %3891

3891:                                             ; preds = %3886, %3890
  %.str.25.sink1990 = phi ptr [ @.str.25, %3890 ], [ @.str.22, %3886 ]
  store i32 %3881, ptr %2537, align 4, !tbaa !5
  %3892 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3893 = load i32, ptr @test_count, align 4, !tbaa !5
  %3894 = load i32, ptr %2483, align 4, !tbaa !5
  %3895 = call ptr @s2n_strerror(i32 noundef %3894, ptr noundef nonnull @.str.24) #12
  %3896 = load i32, ptr %2483, align 4, !tbaa !5
  %3897 = call ptr @s2n_strerror_debug(i32 noundef %3896, ptr noundef nonnull @.str.24) #12
  %3898 = load i32, ptr %2537, align 4, !tbaa !5
  %3899 = call ptr @strerror(i32 noundef %3898) #12
  %3900 = load i32, ptr %2537, align 4, !tbaa !5
  %3901 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3892, ptr noundef nonnull %.str.25.sink1990, i32 noundef %3893, ptr noundef nonnull @.str.92, ptr noundef nonnull @.str.21, i32 noundef 523, ptr noundef %3895, ptr noundef %3897, ptr noundef %3899, i32 noundef %3900) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3902:                                             ; preds = %3877
  %3903 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3904 = trunc nuw i8 %3903 to i1
  br i1 %3904, label %3905, label %3916

3905:                                             ; preds = %3902
  %3906 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3907 = call i32 @fileno(ptr noundef %3906) #12
  %3908 = call i32 @isatty(i32 noundef %3907) #12
  %.not532 = icmp eq i32 %3908, 0
  br i1 %.not532, label %3916, label %3909

3909:                                             ; preds = %3905
  %3910 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not534 = icmp eq i32 %3910, 0
  %3911 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not534, label %3914, label %3912

3912:                                             ; preds = %3909
  %3913 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3911, ptr noundef nonnull @.str.93, i32 noundef %3910) #12
  br label %3923

3914:                                             ; preds = %3909
  %3915 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3911, ptr noundef nonnull @.str.94) #12
  br label %3923

3916:                                             ; preds = %3905, %3902
  %3917 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not533 = icmp eq i32 %3917, 0
  %3918 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not533, label %3921, label %3919

3919:                                             ; preds = %3916
  %3920 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3918, ptr noundef nonnull @.str.95, i32 noundef %3917) #12
  br label %3923

3921:                                             ; preds = %3916
  %3922 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3918, ptr noundef nonnull @.str.96) #12
  br label %3923

3923:                                             ; preds = %3919, %3921, %3912, %3914
  call void @llvm.lifetime.end.p0(i64 512, ptr nonnull %3) #12
  ret i32 0
}

; Function Attrs: nofree nounwind
declare noundef i32 @fprintf(ptr nocapture noundef, ptr nocapture noundef readonly, ...) local_unnamed_addr #6

; Function Attrs: nofree nounwind
declare noundef i32 @fflush(ptr nocapture noundef) local_unnamed_addr #6

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) local_unnamed_addr #7

declare i32 @s2n_print_stacktrace(ptr noundef) local_unnamed_addr #7

; 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 #6

declare ptr @s2n_strerror(i32 noundef, ptr noundef) local_unnamed_addr #7

declare ptr @s2n_strerror_debug(i32 noundef, ptr noundef) local_unnamed_addr #7

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

declare i32 @s2n_init() local_unnamed_addr #7

declare i32 @s2n_disable_tls13_in_test(...) local_unnamed_addr #7

declare ptr @s2n_connection_new(i32 noundef) local_unnamed_addr #7

declare i32 @s2n_connection_free(ptr noundef) local_unnamed_addr #7

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_advance_message(ptr noundef) local_unnamed_addr #3

declare i32 @s2n_stuffer_growable_alloc(ptr noundef, i32 noundef) local_unnamed_addr #7

declare i32 @s2n_connection_set_io_stuffers(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #7

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_setup_handler_to_expect(i32 noundef, i8 noundef zeroext) local_unnamed_addr #3

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_test_write_header(ptr noundef, i8 noundef zeroext, i8 noundef zeroext) local_unnamed_addr #3

declare void @s2n_debug_info_reset() local_unnamed_addr #7

declare i32 @s2n_stuffer_wipe(ptr noundef) local_unnamed_addr #7

declare i32 @s2n_stuffer_free(ptr noundef) local_unnamed_addr #7

; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: read)
declare i32 @strcmp(ptr nocapture noundef, ptr nocapture noundef) local_unnamed_addr #4

declare i32 @s2n_cleanup() local_unnamed_addr #7

; Function Attrs: nofree nounwind willreturn memory(argmem: read)
declare i32 @bcmp(ptr nocapture, ptr nocapture, i64) local_unnamed_addr #10

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.smax.i32(i32, i32) #11

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.umax.i32(i32, i32) #11

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

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

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


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopInstSimplifyPass,LoopRotatePass,LoopSimplifyCFGPass,LoopSimplifyPass,LoopUnrollPass,PostOrderFunctionAttrsPass,ReassociatePass,SCCPPass,SROAPass,SimplifyCFGPass,TailCallElimPass